rdf:Lists

I've got a question about lists in rdf and owl that I'm hoping someone can
help me with.

The list:

_:l1 rdf:type rdf:List
_:l1 rdf:first ex:item1
_:l1 rdf:rest _:l2
_:l2 rdf:first ex:item2
_:l2 rdf:rest rdf:nil

isn't equivalent to:

_:l1 rdf:type rdf:List
_:l1 rdf:first ex:item2
_:l1 rdf:rest _:l2
_:l2 rdf:first ex:item1
_:l2 rdf:rest rdf:nil

or to:

_:l1 rdf:type rdf:List
_:l1 rdf:first ex:item1
_:l1 rdf:rest _:l2
_:l2 rdf:first ex:item2
_:l2 rdf:rest _:l3
_:l3 rdf:first ex:item2
_:l3 rdf:rest rdf:nil

is it?

But presumably:

ex:c1 rdf:type owl:Class
ex:c1 disjointUnionOf _:l1
_:l1 rdf:type rdf:List
_:l1 rdf:first ex:c2
_:l1 rdf:rest _:l2
_:l2 rdf:first ex:c3
_:l2 rdf:rest rdf:nil
ex:c4 rdf:type  owl:Class
ex:c4 disjointUnionOf _:l3
_:l3 rdf:type rdf:List
_:l3 rdf:first ex:c3
_:l3 rdf:rest _:l4
_:l4 rdf:first ex:c2
_:l4 rdf:rest rdf:nil

implies:

ex:c1 owl:sameClassAs ex:c4

If that's so, would it be better to use something other than rdf:List in the
owl syntax so that it would be clear that they were meant as sets, not
ordered, possibly repeating lists? wouldn't it make it easier if you're
trying to create axioms for owl in another language? (btw, I looked at the
kif axiomatization of daml and didn't see how this was dealt with there, but
that's likely more an indication of the limits of my kif understanding than
of its actual absence from the document:-)

Thanks,

Geoff Chappell

Received on Thursday, 8 August 2002 22:16:44 UTC