3 ms·
But why? We can trivially modify any point in a graph at any time.
by Der_Einzige 4y ago
But why? We can trivially modify any point in a graph at any time.
- PaulHoule 4y agoIt’s certainly possible but you don’t have a lot of help in doing so. OWL from the RDF world has quite a few reason it hasn’t gotten traction but one is that it doesn’t have answers for many problems of ‘agentic’ reasoning which would be useful to agents that are doing things in the world. There are problems with the management of a database in practice. A document database lets you update a document at a time, a relational database a row at a time. If you are adding edges and nodes to a graph there needs to be a transaction facility so that you never see inconsistent states. Deleting a ‘record’ is not just a matter of deleting a ‘node’ or an ‘edge’ but may involve deleting some set of nodes and edges which graph databases don’t have in their model. In the case of OWL I think you need a transaction mechanism to make the data and ontology checking abilities of the standard useful. In a normal OWL database you put junk in and now you have an invalid database, error messages that don’t make any sense, and no systematic answer to fix it. Really in that case it should revert the transaction or maybe let you work in an invalid branch but never be able to commit an invalid branch. So far as I know most OWL products today have no real answer for this problem but it seems to me they could. Generally in common sense reasoning there are many issues like ‘what was the state of the world on Nov 4: 1975?’ Or ‘what does John believe about X?’ or ‘it is necessarily true that…’ or ‘what would happen if?’ that go beyond first order logic. Many knowledge graphs build structures that let you query who was president at a particular time because there are records that say ‘X was president between date A and date B’ but this only works when it is spelled out explicitly, you can’t ask questions about the world as a whole at a certain time. Some of these problems could be solved by the use of persistent data structures, that is, fork the world when you put in facts so you can’t break the world, fork it to do a simulation, etc.