- From: Bijan Parsia <bparsia@cs.man.ac.uk>
- Date: Wed, 23 Jan 2008 10:37:21 +0000
- To: OWL Working Group WG <public-owl-wg@w3.org>
Let me present a slightly different perspective on the impact on users. A user makes the following RDF graph test and tries to process it with Pellet: G: _:x p _:y. _:y p _:x. User(U): Pellet's broken! It can't handle my simple test G! Bijan(B): Did you have species validation on? You'll find that that's OWLFull U: OWL Full? Why! It's just RDF with no OWL at all! B: BNodes...variable interpretation...[600 lines with examples]...undecidable....queries...see my presentation, blog post, email thread and these 17 papers U: So OWL DL is broken? B: No, blha blahll... U: So I can *never* use BNodes? But I have to in restrictions. B: Translation...syntax...[900 lines]... U: Ok, so I can *only* use BNodes in syntax. B: No, you can use tree like patterns in the ABox. U: Tree like? B: Yes, e.g., x p _:y. _:y p _:z. (and that last could be z). But you're probably better off without bnodes at all... U: YAY! BNODES Then user creates another test case G': x p _:y. _:y. _:y p _:z. MyClass subClassOf [a Restriction; someValuesFrom Thing; onProperty p] U: Pellet's broken! When I classify G', I get that x rdf:type MyClass, but not _:y! B: _:y is a BNode. U: But you said I could use bnodes! It species validates. B: Yes, but remember bnodes are variables and they have restricted scope. Think of bnodes in answers to sparql queries. U: Oh, you mean I should see _:G12 or some gensym. B: No. U: Why not?!?!?!? Pellet's broken! B: Think of it this way, what you wrote is a notational variant of: x rdf:type [ onProperty p; someValuesFrom [ onProperty p; someValuesFrom]]. U: Right, I can replace the node label with []. B: Uhm...no. See the [] Bnode is a *syntax* bnode, Ok? U: Ok. B: But the *someValuesFrom* is replacing your _:y and _:z. If you were just replacing the labels, it'd be x p [p []]. U: .... B: So just as you wouldn't expect to see a label in the class tree off the somevaluesfrom, you shouldn't with the bnode. U: ... B: I can back this all up from the specs! U: ... B: Is that a knife in your hand, or you just happy to stab me? U: ... B: We have a switch in Pellet that Does The Better Thing. Use it. U: Thank you. Please make that switch being on the default. This is a bit of an abstraction of Many Many conversations I've had :) Except without the knives, and usually a heck of a lot more disparagement of Bnodes as variables from me. Cheers, Bijan.
Received on Wednesday, 23 January 2008 10:35:38 UTC