- From: Bijan Parsia <bparsia@cs.man.ac.uk>
- Date: Wed, 11 Jun 2008 19:49:56 +0100
- To: "Johnson, Matthew C. (LNG-HBE)" <Matthew.C.Johnson@lexisnexis.com>
- Cc: <semantic-web@w3.org>
On 11 Jun 2008, at 19:29, Johnson, Matthew C. (LNG-HBE) wrote: [snip] > mysch:p1 rdfs:domain mysch:A . > myinst:me mysch:p1 “something” . > > Would allow one to infer: > > myinst:me rdf:type mysch:A . > > without explicitly providing that triple. Yes. > Furthermore, an additional domain statement of: > > mysch:p1 rdfs:domain mysch:B . > > would cause: > > myinst:me rdf:type mysch:B . > > to also be inferred. Yes. And even, in OWL, that me is an instance of the conjuction. > Assuming this is good so far, is it safe to assume that one should > specify a class as a part of a property’s domain ONLY IF one is > prepared to say that all subjects that use that property are in ALL > of the classes specified by the domain regardless of whether that > typing is explicitly stated? Yes. domain and range are what are known as "global restrictions". In OWL, you can define "local" restrictions, that is, you can say that *for a certain class* (C) all the values of P are D where was for a different class (E) you can make the range of P be not D. Thus you could consistently have the triples: x type C. x P a. y type E. y P b. a would be inferred to be in D and b in not D. > My use-case that started this is common/generic properties such as > Dublin Core’s “dc:title”, “dc:identifier”, etc. My original OO- > inspired approach had me explicitly stating the domain of these > properties [within my schema] based on classes that might use > them. Since this was just a sandbox for me, no harm was done but I > now believe that I was incorrectly providing class inferences based > those domain statements. My thinking now is that these types of > properties should really never have a domain specified since it is > very likely that such properties will be used on a wide variety of > classes. Is there a flaw in this statement? You can also (in OWL) make disjunctive ranges and domains, e.g., P domain A *OR* B. Which is a way of being liberal about it. But then you won't get the inferences you were getting before. Cheers, Bijan.
Received on Wednesday, 11 June 2008 18:47:47 UTC