W3C home > Mailing lists > Public > www-webont-wg@w3.org > March 2002

LANG: Nested Class definitions and the RDF striped syntax

From: Jonathan Borden <jonathan@openhealth.org>
Date: Fri, 22 Mar 2002 09:53:15 -0500
Message-ID: <012a01c1d1b1$4d20db20$0301a8c0@ne.client2.attbi.com>
To: "WebOnt WG" <www-webont-wg@w3.org>
It has been claimed that allowing nested class definitions in OWL would give
difficulties for tools that wish to roundtrip ontologies. I don't think that
that alone would be the case for the following reason:

One of the properties of the RDF/XML syntax is that an OWL class definition
with nested class definitions can be converted into a form consisting of
multiple 'top level' classes. For example:

<ont:Class rdf:ID="foo">
    <ont:subClassOf>
            <ont:Class>
                    <ont:subClassOf>
                            <ont:Class>
                                    <ont:Restriction>
                                            <ont:onPropery rdf:ID="this"/>
                                            <ont:toValue>12345</ont:toValue>
                                    </ont:Restriction>
                            </ont:Class>
                    </ont:subClassOf>
                    <ont:subClassOf>
                        <ont:Class>
                                ...
                        </ont:Class>
                    </ont:subClassOf>
            </ont:Class>
    </ont:subClassOf>
</ont:Class>

each class is labelled with rdf:ID i.e.

<ont:Class rdf:ID="foo">
    <ont:subClassOf>
            <ont:Class rdf:ID="bar">
                    <ont:subClassOf>
                            <ont:Class rdf:ID="baz">
                                    <ont:Restriction>
                                            <ont:onPropery rdf:ID="this"/>
                                            <ont:toValue>12345</ont:toValue>
                                    </ont:Restriction>
                            </ont:Class>
                    </ont:subClassOf>
                    <ont:subClassOf>
                        <ont:Class rdf:ID="bop">
                                ...
                        </ont:Class>
                    </ont:subClassOf>
            </ont:Class>
    </ont:subClassOf>
</ont:Class>

and then the class hierarchy can be flattened:

<ont:Class rdf:ID="foo">
    <ont:subClassOf rdf:resource="#bar" />
</ont:Class>
>
<ont:Class rdf:ID="bar">
       <ont:subClassOf rdf:resource="#baz" />
       <ont:subClassOf rdf:resource="#bop"/>
</ont:Class>
<ont:Class rdf:ID="baz">
        <ont:Restriction>
              <ont:onPropery rdf:ID="this"/>
               <ont:toValue>12345</ont:toValue>
       </ont:Restriction>
</ont:Class>
<ont:Class rdf:ID="bop">
       ...
</ont:Class>

So certainly tools that wish to 'roundtrip' ontologies would use the
labelled, flattened structure.

Jonathan
Received on Thursday, 21 March 2002 21:47:07 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:57:48 GMT