as written in the mail of Brian McBride form the 18 Oct
the RDFCore WG has decided to allow cycles of subClassOf and
subPropertyOf relationships.

We tried to clear out what this exactly means for RDF.


If we have a cycle in the schema definition for a set of classes,
e.g. C1 < C2 < C3 < C1. In the RDF Schema Spec. we can find in 2.1
'The Type System' that elements of subclasses are also elements of the
corresponding superclass. This means when we view the set of elements
for C1-C3 they are all equal and all elements have the corresponding
type declarations.

Let us further assume that there is a Property P1 defined for the
class C1. This is done in RDF by declaring the domain (and/or range)
definition of P1 to be C1. The constraints domain/range are defined in
the RDF Schema Spec. 3.1 and it is forced that the value of a property
is a member of the defined domain (and/or range) class. As we have
seen above the members of the class C1 are extended by the members of
C2 and C3. So, as a consequence of the cycle all properties defined
for the single classes C1, C2 and C3 are now valid for all of them.

So, what does it mean semantically? A cycle for classes ends up in a
single class containing all members of the corresponding classes and
having all the corresponding properties. (A merge of the classes with
keeping the names.)

Do we really need a cycle to provide different names for the same class?

One aim of RDF is always to give the user of RDF as much freedom as
possible. But if these cycle declarations are spread over different
namespaces (schemas) it will easily will get quite messy. ... and the
question always arises if the additional namespace I need to load to
validate my previous file is really trustful.


Also for properties a cycle would mean that we have different names
for properties expressing the same.  But for properties cycles even
make less sense. So fare the RDF WG does not even states how to handle
different domain/range definitions for properties and their
subproperties. When we allow cycles it should at least be constraint
that the properties have equal domain/range definitions.


C1 --p1--> C2
C3 --p2--> C4
in the case p1 < p2 < p1
C3 --p1--> C2 would be valid

There might be cases this would be ok. But there is a high risk that
it ends up in a semantic mess.

Best regards

Vassilis Christophides

Karsten Tolle

Received on Friday, 26 October 2001 07:29:48 UTC