- From: Sean B. Palmer <sean@mysterylights.com>
- Date: Sat, 5 May 2001 22:29:09 +0100
- To: <www-rdf-logic@w3.org>
> Apologies if this has been raised a million times before. Well, not a million, but very nearly (O.K., three references). http://lists.w3.org/Archives/Public/www-rdf-comments/2000AprJun/0045 http://lists.w3.org/Archives/Public/www-rdf-logic/2001Feb/0106 http://www.w3.org/2000/03/rdf-tracking/#rdfs-no-cycles-in-subClassOf Sure is an interesting topic though. The RDF Schema specification only restricts this by prose, which makes it very difficult for people to reason with... how much more expressive would RDFS need to be in order to constrain this properly? You can do this with log:implies and so forth. <> log:forAll :x , :y . { :x rdfs:subClassOf :y . :y rdfs:subClassOf :x } a log:Inconsistency . An additional problem is that if you let class hierarchies by cyclic, then you might start getting inconsistencies quite easily - RDFS works well on a principle of least power. Couldn't DAML or something introduce a daml:CyclicClass / daml:CyclicProperty? daml:CyclicProperty a rdfs:Class; rdfs:subClassOf rdf:Resource . daml:subPropOf a daml:CyclicProperty . daml:samePropertyAs a daml:CyclicProperty; daml:subPropOf daml:equivalentTo, daml:subPropOf . Then the original issue goes away, because you get:- daml:samePropertyAs daml:inverseOf daml:samePropertyAs . { :x :daml:samePropertyAs :y } log:implies { :x daml:subPropOf :y . :y daml:subPropOf :x } . Which is permitted because daml:subPropOf is an instance of daml:CyclicProperty. Unfortunately, all instances of rdf:Property and daml:CyclicProperty would have to be daml:Disjoint... [ a daml:Disjoint; daml:first rdf:Property; daml:rest (daml:CyclicProperty) ] . -- Kindest Regards, Sean B. Palmer @prefix : <http://webns.net/roughterms/> . :Sean :hasHomepage <http://purl.org/net/sbp/> .
Received on Saturday, 5 May 2001 17:29:46 UTC