- From: Jeremy Carroll <jjc@hplb.hpl.hp.com>
- Date: Thu, 08 May 2003 13:23:56 +0100
- To: w3c-rdfcore-wg@w3.org
Here are some comments:
(Note this largely duplicates a report I have sent to jena-devel
- I took the same action for two groups)
Blank Nodes in OWL DL
=====================
Here is a report on blank nodes with potential review comments.
Blank nodes in OWL Lite/DL can be categorized as:
- unnamed individuals
- unnamed class descriptions (DL only)
- unnamed ontologies
- data ranges (DL only)
- restrictions
- all different (highly restricted idiom)
- various sorts of lists
- lists of named individuals
- lists of descriptions/restrictions/classIDs
- lists of literal values (DL only)
They are subject to a variety of restrictions,
i.e. excluding all triples with predicate
owl:equivalentClass and owl:disjointWith we have:
- no blank node can be the object of more than one triple
- no cycles of blank nodes are permitted
- lists and data ranges must be the object of at least one triple
In OWL DL restriction and description blank nodes and classIDs
may participate in subgraphs labelled with owl:equivalentClass
and owl:disjointWith. Blank nodes in such graphs may not be
the object of any other triples. They may be the object of
many triples in such subgraphs, and such subgraphs may contain
cycles. However, the subgraph of an OWL DL graph, consisting
of the edges labelled with owl:disjointWith, when viewed as
an undirected graph, must be the union of complete subgraphs
(i.e. in which every node is connected to every other node)
where each pair of subgraphs in the union only intersect
in classID nodes (i.e. urirefs).
The constraints on the subgraph of an OWL DL graph
consisting of the edges labelled with owl:equivalentClass
is worse, and involves Hamiltonians cycles, and I don't think
I can write it down. Recognizing such structures is NP
complete.
See
http://lists.w3.org/Archives/Public/www-webont-wg/2003Apr/0003
Two options for simplifying the blank node structures
are:
A permit description and restriction nodes to be the
object of multiple triples (still forbidding cycles)
B permit unnamed individual nodes to be used cyclically
and to be the object of multiple triples.
Option A can be achieved by the following addition
to the preamble to the mapping rules in section 4.1:
[[
Bnode identifiers here are local to each transformation.
When the construct being transformed matches the *restriction* or
*description* productions from the abstract syntax then
the bnode may be shared between multiple identical transformations of
identical *restriction*s or *description*s.
Otherwise the bnode used in each transformation
should be unique for each invocation of a transformation rule.
]]
This complete simplifies the mess to do with owl:disjointWith
and owl:equivalentClass (The rule becomes that cycles of blank
nodes must include an edge labelled with owl:disjointWith or
owl:equivalentClass)
There are technical difficulties in one of the proofs.
These difficulties amount to the validity of the following
entailment in OWL Full:
<owl:Thing rdf:about="eg:a">
<rdf:type>
<owl:Restriction>
<owl:onProperty rdf:about="eg:p"/>
<owl:allValuesFrom>
<owl:Class>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="eg:C"/>
</owl:intersectionOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
</rdf:type>
</owl:Thing>
<owl:Thing rdf:about="eg:b">
<rdf:type>
<owl:Restriction>
<owl:onProperty rdf:about="eg:p"/>
<owl:allValuesFrom>
<owl:Class>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="eg:C"/>
</owl:intersectionOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
</rdf:type>
</owl:Thing>
OWL Full entails
<owl:Thing rdf:about="eg:a">
<rdf:type>
<owl:Restriction rdf:nodeID="a">
<owl:onProperty rdf:about="eg:p"/>
<owl:allValuesFrom>
<owl:Class>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="eg:C"/>
</owl:intersectionOf>
</owl:Class>
</owl:allValuesFrom>
</owl:Restriction>
</rdf:type>
</owl:Thing>
<owl:Thing rdf:about="eg:b">
<rdf:type>
<owl:Restriction rdf:nodeID="a"/>
</rdf:type>
</owl:Thing>
The inverse entailment is trivial.
(The pattern is a complex description used
twice - the premises have two different unnamed
instances of the complex description, the conclusions
have a single unnamed instance)
If this entailment holds (in general), then the suggested change is
correct, and a (significant) improvement. If the entailment is not
true in general then the OWL Test Cases should include one
of the examples of a non-entailment.
(Triples with object being a blank description or restriction node
must have property:
owl:equivalentClass
owl:disjointWith
rdfs:subClassOf
rdf:type
owl:someValuesFrom
owl:allValuesFrom
rdf:first (in a list of description, which
is then used in an owl:unionOf or owl:intersectionOf triple)
Option B
concerning unnamed individuals could be achieved by
having a semantics for OWL DL which treated blank nodes
as existentially quantified names, like in the RDF semantics.
Then locally scoped identifiers would be included in
the OWL abtstract syntax, and could be used to
construct abstract syntax trees that map onto cyclic
RDF graphs e.g.
individual( locally-scoped-name-A
value( #property locally-scoped-name-A ) )
would map onto the triple:
_:A <#property> _:A .
Comments summary:
- It is a mistake that owl:equivalentClass rules
make OWL DL recognition an NP complete problem.
This should be fixed.
- The rules concerning blank nodes and
triples labelled with owl:disjointWith and
owl:equivalentClass are very complicated.
S&AS should articulate them. This would help
for example when building an OWL DL recogizer.
- Permitting blank nodes representing descriptions
and restrictions to be used as the object of
more than one triple should be considered.
A rationale for not doing so should be given
preferably as a test case in OWL Full showing
an OWL Full non-entailment that would hold in
OWL DL if such a change were made. A sample
test case is included.
- RDF Core have found it a mistake to have a
limited syntax for bnodes.
We suggest that permitting cycles of
unnamed individuals, and permitting
unnamed individuals to be the object
of more than one triple would be
advantageous.
Jeremy
Received on Thursday, 8 May 2003 08:24:23 UTC