- From: Turner, David <davidt@hp.com>
- Date: Wed, 29 Aug 2007 08:59:26 +0100
- To: "Owl Dev" <public-owl-dev@w3.org>
Two apologies. Firstly, this is drifting off-topic for OWL-dev, so this is the last public message from me on the subject. Secondly, I made an earlier statement that turns out to be wrong. > However, note that using a container immediately puts > you into OWL Full, so a DL reasoner will refuse to talk to > you. This is, on closer inspection, incorrect: Now AIUI the container vocabulary is ok in OWL DL. Sorry about that. > Maybe you know > other reasons why I shouldn't create a class, say > ex:Audience rdfs:subClassOf rdf:Bag That may be what you want, and if so, fine. The semantics of RDF (OWL) classes is fairly strong, and has good tool support. The semantics of RDF containers is very weak, but if that's what you want then that's ok. Notably, pure RDFS and OWL reasoners should not do reordering the elements of a rdf:Bag, so if you want that kind of semantics you probably want to use classes instead. > >Again, no, lists are collections, containers are containers. > My turn to be picky... Containers, suggestively, have *list > items* (smile). Yes, I can see the confusion. The rdf:li syntax was in use in 1998 when I was still in high school, so I can't authoritatively say anything about why it's there; here's my understanding of the discussions on the www-rdf-comments mailing list. Containers were a topic of some contention in the development of RDF, and there was some belief that they should be dropped completely on the grounds that it was hard to reach consensus on a sensible semantics. As a compromise with the parties who were already using them, they were left in but without much formal meaning. > >note that using a container immediately puts you into OWL > Full, so a DL > >reasoner will refuse to talk to you. > > Is this true for rdf:Alt, rdf:Seq, and rdf:Bag, or just for > rdf:Container? The citation above focuses on the graphs for > ontology definitions not instance documents, and it seems to > say it's okay to use those 3 classes (but not their common > superclass, rdf:Container) in ontologies and instance documents. Yes, you're right, see earlier apology. > (Interestingly the Disallowed Vocabulary includes references > to rdf:List !) And rdf:first, rdf:rest and rdf:nil, yes. RDF lists are used extensively in translating the abstract-syntax form of OWL into its RDF syntax. The disallowed vocabulary consists of things you're not allowed to mention *in the abstract-syntax form*, but of course it appears when you translate the abstract syntax into the RDF syntax. For example, you're allowed to utter the abstract syntax unionOf(ex:a ex:b) which translates to _:x rdf:type owl:Class _:x owl:unionOf _:l0 _:l0 rdf:type rdf:List _:l0 rdf:first ex:a _:l0 rdf:rest _:l1 _:l1 rdf:first ex:b _:l1 rdf:rest rdf:nil which is legal OWL DL because it's a translation of a legal bit of abstract syntax. But you're not allowed to say EquivalentClasses(rdf:List owl:Thing) even though rdf:List is a (RDFS) class, nor ObjectProperty(rdf:first range(owl:Thing)) Cheers, Dave -- Dave Turner Cube T400, HP Labs Bristol, Filton Road, Bristol BS34 8QZ davidt@hp.com +44 117 3129104 (Work) +44 7962 811627 (Mobile) Hewlett-Packard Limited. Registered No: 690597 England Registered Office: Cain Road, Bracknell, Berks RG12 1HN
Received on Wednesday, 29 August 2007 07:59:50 UTC