I've added a new file on a new branch:
https://github.com/vangelisv/thea/blob/newrdf/owl2_from_rdf_direct.pl
this is highly incomplete and more of a proof of principle. But the basic idea is to serve up facts like subClassOf/2 directly from rdf_db, without owl/4. At the same time, it should still be possible to compile/materialize an owl2_model from an existing db.
I'm using DCGs for the mapping rules, which provides a nice way of generating the list of triples required to make an axiom or expression.
More details as this matures, it's still a bit of an experiment.
On Feb 24, 2011, at 12:40 AM, Vangelis Vassiliadis wrote:
> Hi Chris,
>
> I had a look the the code. I think it is in a very good direction and in principle we could generalise to get dynamic owl_model axioms from any
> triple store. Regarding monotonicity I do not thing it is a problem for this kind of (query) applications. It is a problem only if you want to materialise
> (produce a complete ontology) from a given - static- graph. When you just query a dynamic rdf store for axioms, in my view, you should not even
> consume the triples.
one of the challenges is being able to distinguish triples that are true DL propertyAssertions, and those which are owl syntax. This is useful even for ad-hoc-queries, and consuming the triples gives us one way of doing this.
For I'm getting around that right now by just eliminating any property assertions in which one of the arguments is an entity in the rdf, rdfs and owl vocabularies.
I've made some commits and changed the name to owl2_rdf.pl. Reading and writing are both (partially) supported. Using DCGs turns out to be a nice way of doing a bidirectional mapping.
This is still on the newrdf branch. I'm using it a lot in an existing application and uncovering bugs as I go.
I think the main challenge will be in supporting a mixture of a dynamic rdf_store plus wl2_model facts.