Any open-world manipulation must (by definition) be performed from outside the closed system associated with the Dataspace, and thus will be based on the reason the Database exists. This reason will involve either or both of:
- Reflection - making sure that the information in the Dataspace is consistent with some external world
- Projection - where the data defines the world, albeit a virtual or simulated one, so updating the data updates the world
Any closed-world manipulation will have a purpose grounded in computational costs because one may neither gain nor lose real information and continue calling the manipulation closed-world, and thus will be either or both of:
- Inference - creates more value from existing data. One might use induction or deduction to obtain valuable information from less-valuable data (e.g. in response to a query), or attempt to shift anticipated computational costs from a time when they are more expensive to a time when they are less expensive (e.g. in anticipation of a query). The latter could include performing induction or deduction ahead of time, but also includes such things as indexing, which is a form of inference in the sense that it adds a data-object (in particular a meta-data-object, the index) to the database.
- Maintenance - where unneeded facts are removed, generally with the intent to reduce computational costs associated (usually space and search-time). Data items are unneeded when they may be derived from other facts in the Dataspace or when they will never be relevant to any future queries.
- Query - In a sense, Inference always grows the data set while Maintenance always shrinks it. However, not all inference needs to add to the persistent data set. Making a volatile inference logically rolls inference and maintenance into one action - you derive new facts, fire those off to whomever requested them, then immediately remove those facts as unnecessary to future queries. This sort of volatile inference most closely corresponds to the notion of a query response.