- From: Bijan Parsia <bparsia@cs.man.ac.uk>
- Date: Tue, 27 Nov 2007 20:27:22 +0000
- To: "Boris Motik" <boris.motik@comlab.ox.ac.uk>
- Cc: "'Web Ontology Language \(OWL\) Working Group WG'" <public-owl-wg@w3.org>
Boris and I are in strong agreement overall. I have a few tweaks that are friendly amendments.... On 27 Nov 2007, at 19:56, Boris Motik wrote: [snip] > - The users of OWL 1.1 DL never ask queries containing ABoxes that > contain anonymous individuals. If some form of querying is > required, people use some explicit query language. I'm confused by this point. I certainly expect them to query (using sparql) ABoxes containing anonymous *individuals* (aka, skolem constants). Did you mean that they don't write queries *as ABoxes?* That's very true. My experience is that users expect bnode labels (even if gensym-ed) to show up in classification/realization results, bindings to queries, etc....pretty much the way they do in RDF. Generally, I do not find users who think of Bnodes as sugar for existentials. There are some cases where leaning a graph *does* occur, but these are typically in fairly specific contexts where there is extra information about the redundancy. > - No OWL DL parser (to my knowledge at least) actually checks > whether the anonymous individuals are really tree-like or not. More importantly, the validators don't (see my test case below [1]) [snip] > Therefore, a viable option might really be to either > > - drop anonymous individuals explicitly in OWL 1.1 DL (and perhaps > say in some note that such individuals can be dealt with for all > practical intents and purposes by Skolemization), or I find manual Skolemization to be a bit of a non-starter. People migrating from RDF use BNodes rather freely, so I imagine pellet (for example) will always have a mode wherein it treats them as skolem constants. I also imagine that this will be the default setting. Furthermore, that's certainly how I propose to deal with them when querying with SPARQL/OWL. > - allow for arbitrary individuals in the ABox, but treat them as > Skolem constants. Yay! Drinks all around. Note that this is, I believe, pretty close to saying that we support the "if" but not the "only if" half of the equivalence between Bnodes and someValuesFrom constructions. But we cover far more patterns and in a user intuitive way that ups our compatibility with RDF in the field. Big Wins! > Regardless of which of these two solutions we pick, we are going to > get much closer to what the implementations are supporting and > what the users really need. Thus, such a solution is bound to be of > higher practical value than adding some complex restriction on > anonymous individuals being necessarily tree-like. In a way, this > justifies the reason for developing OWL 1.1 DL in the first place. > Technically speaking, such a specification would be backwards > incompatible; One could always opt in for the full equivalence. And if there is an undecidable superset of what DL reasoners expect to handle anyway, one could always let bnodes *there* be full existentially quantified variables. We'd just have readjusted how the decidable subset works. > however, practically speaking, nobody will care, so this > is at best an academic issue. And I predict they will care, loudly, if we force a variable reading on it. It's a non-starter for implementations I work on, by and large, except as a non-default mode to show people why they don't want it. :) Another way to put this is that while it might be slightly incompatible with prior specs, it is far more compatible with practice both existing and, I would argue, "good". Cheers, Bijan. [1] -------- Validates as OWL DL/Lite in the wonder web validator and Pellet web form <?xml version="1.0"?> <rdf:RDF xmlns="http://www.cs.man.ac.uk/~bparsia/ontologies/ Ontology1196083056850.owl#" xml:base="http://www.cs.man.ac.uk/~bparsia/ontologies/ Ontology1196083056850.owl" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:owl="http://www.w3.org/2002/07/owl#"> <owl:Ontology rdf:about=""/> <owl:ObjectProperty rdf:about="#p"/> <owl:Thing rdf:about="#x"> <p rdf:resource="#y"/> </owl:Thing> <owl:Thing rdf:about="#y"> <p rdf:resource="#z"/> </owl:Thing> <owl:Thing rdf:about="#z"> <p rdf:resource="#x"/> </owl:Thing> </rdf:RDF>
Received on Tuesday, 27 November 2007 20:26:04 UTC