RE: Legal Persons

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