AW: {Disarmed} Re: blank nodes (once again)

Hi Sandro!

Sandro Hawke wrote:

>I guess the important question: is OWL 2 Full okay with people
>Skolemizing the ontology?

Short answer: NO, OWL 2 Full would NOT be ok with people doing this.

Longer answer: I think I have already made clear in general that "blindly skolemizing" RDF graphs may be a bad idea, at least when they may later be used as the conclusion part of an entailment check (and you never know for what your graphs are being used by people, right?). The problem is that what originally was a positive entailment might not be an entailment anymore after skolemizing the conclusion graph. Specifically for OWL 2 Full, I can give a few examples of entailments that would not hold anymore, as they inherently depend on blank nodes being seen as existentially quantified variables. I am starting with two examples which show that blank nodes in the conclusion part  can already be useful for RDFS entailment (which is part of OWL 2 Full entailment) and will later extend the taken approach to OWL 2 Full, where I will show that blank nodes in the conclusion can be *very useful*. I will also give a specific example of an OWL 2 Full entailment where the OWL 2 Full semantics of a certain language feature depends on existential blank node semantics.

RDFS allows you to create "ASK queries", e.g. whether a given named class ex:C is non-empty:

    _:x rdf:type ex:C .

If there is /any/ resource in the queried knowledge base (actually the left hand side graph of an entailment check, which may be the content of a large triple store) that is an instance of ex:C, then the entailment will hold. You don't need to check through all possible individuals, there just needs to /exist/ an individual with this feature. And this is more than pure data querying, since it takes the full RDFS semantics into account, e.g. making use of sub classes and the domains and ranges of properties. So this is actually an implementation of SPARQL 1.1 ASK with the RDFS entailment regime that you get for free from every compliant RDFS reasoner that implements existential blank nodes. Cool, isn't it?

Another example would be to check whether Bob has any friends at all:

    ex:bob foaf:knows _:x .
    _:x foaf:knows ex:bob .

Note that, unlike the example above, this simple query cannot even be stated in OWL 2 DL (non-tree-like use of blank nodes). But it's possible to get a positive answer in RDFS, if there /exists/ any friend of bob (someone who bob knows who knows bob).

In OWL 2 Full, this ASK query method can be used for much more sophisticated queries, such as

    Is there any property with a domain and a range 
    being both sub classes of the named class ex:C 
    while being mutually disjoint from each other?

This can be written as

    _:p rdfs:domain _:d .
    _:p rdfs:range _:r .
    _:d rdfs:subClassOf ex:C .
    _:r rdfs:subClassOf ex:C .
    _:d owl:disjointWith _:r .

With the many language features of OWL 2 compared to RDFS, it should become clear how powerful this method can become, provided that there is a compliant OWL 2 Full reasoner that supports entailment checking.

This method would not (properly) work without existential semantics of blank nodes. More drastically, if you skolemize the conclusion graph /in advance/, as you have proposed in another mail, then you will /never/ get a positive result from these ASK queries.

So far, all examples only depend on the existential blank node semantics as it is already defined by RDF Simple entailment. The larger flexibility and expressive power in OWL 2 Full queries compared to RDFS only stems from the additional language features provided by OWL 2 Full. However, as said, the semantics specification of OWL 2 Full itself has some language features that provide certain entailments only under existential blank node semantics. One of these features is the semantics of /negative property assertions/. Here is an example: 

    If Alice is married with Bob, then she cannot also be married with Charly,
    provided that one can be married with at most one person 
    and that Bob is distinct from Charly.

        ex:isMarriedWith rdf:type owl:FunctionalProperty .
        ex:alice ex:isMarriedWith ex:bob .
        ex:charly owl:differentFrom ex:bob .

        _:x rdf:type owl:NegativePropertyAssertion .
        _:x owl:sourceIndividual ex:alice .
        _:x owl:assertionProperty ex:isMarriedWith .
        _:x owl:targetIndividual ex:charly .

Here, the new blank node "_:x" is introduced in the conclusion, corresponding to an existential variable, following the semantics given in


So, even if one would dismiss my claim that the above ASK queries are useful, then dropping existential blank node semantics would most probably break some of the functionality of OWL 2 Full, and would make it weaker in expressivity than OWL 2 DL, since the above example is also a valid OWL 2 DL entailment.


Dipl.-Inform. Michael Schneider
Research Scientist, Information Process Engineering (IPE)
Tel  : +49-721-9654-726
Fax  : +49-721-9654-727
WWW  :
FZI Forschungszentrum Informatik an der Universität Karlsruhe
Haid-und-Neu-Str. 10-14, D-76131 Karlsruhe
Tel.: +49-721-9654-0, Fax: +49-721-9654-959
Stiftung des bürgerlichen Rechts
Stiftung Az: 14-0563.1 Regierungspräsidium Karlsruhe
Vorstand: Dipl. Wi.-Ing. Michael Flor, Prof. Dr. rer. nat. Ralf Reussner,
Prof. Dr. rer. nat. Dr. h.c. Wolffried Stucky, Prof. Dr. rer. nat. Rudi Studer
Vorsitzender des Kuratoriums: Ministerialdirigent Günther Leßnerkraus

Received on Friday, 25 March 2011 12:20:26 UTC