RE: ISSUE 5.2 Language Compliance Levels - proposed clarification

(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