LANG: Nested Class definitions and the RDF striped syntax

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 UTC