- From: Jeremy Carroll <jjc@hpl.hp.com>
- Date: Mon, 27 Jan 2003 17:44:36 +0100
- To: www-webont-wg@w3.org
(Given the length of the detailed exposition of the mapping rules, I am
replying separately on the other point Dan raised).
> * a test case/document, d
> * an excerpt from one of our specs that
> clearly showed P(d) for some P.
> * another excerpt from one of our specs
> that clearly showed not(P(d))
Guide:
(22 January 2003)
http://www.w3.org/2001/sw/WebOnt/guide-src/Guide.html#SetOperators
[
Set Operators
intersectionOf, unionOf, complementOf [OWL DL]
]
followed by section 5.1.1 on intersection of ending with test case document
d:
<owl:Class rdf:ID="WhiteBurgundy">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Burgundy" />
<owl:Class rdf:about="#WhiteWine" />
</owl:intersectionOf>
</owl:Class>
Read AS&S (24 January 2003) section 2
[[
ontology ::= 'Ontology(' { directive } ')'
directive ::= 'Annotation(' URIreference URIreference ')'
| 'Annotation(' URIreference dataLiteral ')'
| 'Imports(' URI ')'
| axiom
| fact
axiom ::= 'Class(' classID modality { annotation } { super } ')'
modality ::= 'complete' | 'partial'
super ::= classID | restriction
]]
(these are all taken from the OWL Lite section).
This allows us to construct an OWL Lite abstract ontology
Ontology(
Class( <#WhiteBurgundy>, complete,
<#Burgundy>,
<#WhiteWine> ) )
(Note that all three URIrefs are classIDs, you need this in the mapping
rules).
Apply the mapping rules to this and you get:
T(Ontology(
Class( <#WhiteBurgundy>, complete,
<#Burgundy>,
<#WhiteWine> ) ))
=
T(Class( <#WhiteBurgundy>, complete,
<#Burgundy>,
<#WhiteWine> ) )
=
<#WhiteBurgundy> rdf:type owl:Class .
<#WhiteBurgundy> owl:intersectionOf T(
SEQ <#Burgundy> <#WhiteWine> ).
=
<#WhiteBurgundy> rdf:type owl:Class .
<#WhiteBurgundy> owl:intersectionOf _:l1 .
_:l1 rdf:type rdf:List
_:l1 rdf:first T(<#Burgundy>) .
_:l1 rdf:rest _:l2 .
_:l2 rdf:type rdf:List .
_:l2 rdf:first T(<#WhiteWine>) .
_:l2 rdf:rest rdf:nil .
=
(remembering that the two URIrefs are classIDs)
<#WhiteBurgundy> rdf:type owl:Class .
<#WhiteBurgundy> owl:intersectionOf _:l1 .
_:l1 rdf:type rdf:List
_:l1 rdf:first <#Burgundy> .
_:l1 rdf:rest _:l2 .
_:l2 rdf:type rdf:List .
_:l2 rdf:first <#WhiteWine> .
_:l2 rdf:rest rdf:nil .
<#Burgundy> rdf:type owl:Class .
<#WhiteWine> rdf:type owl:Class .
=
(applying the W3C RDF validator once it is fixed)
<owl:Class rdf:ID="WhiteBurgundy">
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Burgundy" />
<owl:Class rdf:about="#WhiteWine" />
</owl:intersectionOf>
</owl:Class>
===========================
If we reopen the issue and clarify that complete classes are in OWL Lite
then this example document d should be moved forward in the guide, and new
text will be needed to explain the difference between this one and the
anonymous intersection which is only in OWL DL.
I would be happy with that (and corresponding changes in Features and
Overview), but would prefer the resolution I proposed.
Jeremy
Received on Monday, 27 January 2003 11:45:34 UTC