- From: Frank Manola <fmanola@acm.org>
- Date: Thu, 27 Oct 2005 17:36:29 -0400
- To: Hans Teijgeler <hans.teijgeler@quicknet.nl>
- CC: "Herman, Ivan" <ivan@w3.org>, semantic-web@w3.org
Hans-- See embedded comments below. Hans Teijgeler wrote: > Hi Frank and Ivan, > > > > Thank you for your responses! > > > > Two opinions, and this poor newbie must make a choice, where he had > hoped for a solution: > > > > ========================================== > > Ivan Herman wrote: > > > > I think that > > > > - if you use OWL Full, then owl:Thing is equivalent to rdf:Resource, you > can't be more general than that:-) > > - if you use OWL DL or Lite, than you *have* to use owl:Thing, this is > the way you identify individuals > > > > Ie: the safe bet is to use owl:Thing. You do not loose anything and, if > at some point you have a smaller ontology that turns out DL or Lite, > then you are all set. > > > > Just my personal opinion... > > > > Ivan > > ========================================= > > Frank Manola wrote: > > > > Hi Hans-- > > > > I'm probably not the most reliable guide on OWL dialects, and I'm not > sure I fully understand what you're doing. However, I don't see the > need to use owl:Thing explicitly at all. My understanding is, if you > create a user-defined OWL class, e.g., > > > > <owl:Class rdf:ID="UserDefinedClass"/> > > > > or as a triple > > > > ex:UserDefinedClass rdf:type owl:Class . > > > > then UserDefinedClass is implicitly a subclass of owl:Thing; you need > not say anything else. Then, if you create an instance myInstance and > type it as a member of that OWL class, e.g., > > > > ex:myInstance rdf:type ex:UserDefinedClass . > > > > then myInstance is implicitly an instance of owl:Thing. This is true in > any of the OWL dialects. > > > > --Frank > > ============================================= > > > > Since both seem OK to me, the question arises why this is possible at > all. Why has the SW been made so complex? Time for a clean-up? > I'm not sure I understand your concern. If the problem is that there are equivalent ways to say the same thing in the SW, and you expect there to be only one way, I don't think that's a very realistic expectation if the SW is to get anywhere expressing reasonably complex things. After all, there are certainly lots of ways to say the same thing in English (or Dutch, or C), right? > > > Frank, if I would follow Ivan's advice, and typically use something > explicit like: > > > > <owl:Thing rdf:ID="PHO-387392"/> > > <owl:Thing rdf:about="#PHO-387392"> > > <rdf:type > rdf:resource="http://www.iso15926.org/part2/2003-12#PhysicalObject"/> > > <rdfs:label>Joe Blogg</rdfs:label> > > </owl:Thing> > > > > do you see any REAL disadvantage (other than the neglect of RDF)? Given > the fact that we use OWL very rigorously by superimposing the ISO > 15926-2 data model, clearly and consistently distinguishing individuals > from classes by using owl:Thing seems to fit in that rigor (or rigour, > if you want). > Perhaps I'm missing something (or I didn't explain myself very well), but I don't really understand the dilemma. Of course you can use the syntax above (and I don't really think that it "neglects" RDF in any awful way!). The only possible disadvantage I see is extra syntax. There is an example in Section 3.1.2 of the OWL Guide (http://www.w3.org/TR/owl-guide/) that seems to exactly parallel your example. In that example, the Guide notes that, in defining an instance, the syntax <Region rdf:ID="CentralCoastRegion" /> is exactly equivalent in meaning to <owl:Thing rdf:ID="CentralCoastRegion" /> <owl:Thing rdf:about="#CentralCoastRegion"> <rdf:type rdf:resource="#Region"/> </owl:Thing> Thus it seems to me that instead of writing your example <owl:Thing rdf:ID="PHO-387392"/> <owl:Thing rdf:about="#PHO-387392"> <rdf:type rdf:resource="http://www.iso15926.org/part2/2003-12#PhysicalObject"/> <rdfs:label>Joe Blogg</rdfs:label> </owl:Thing> you could write it instead as something like: <iso:PhysicalObject rdf:ID="PHO-387392"> <rdfs:label>Joe Blogg</rdfs:label> </iso:PhysicalObject> (where iso: is the namespace prefix that gives you the rest of the full ISO URI). This is a typical RDF "typed node" abbreviation, and it works the same way in OWL (as an RDF language). This is what I meant by saying I didn't see the need to use owl:Thing explicitly. I'm assuming that http://www.iso15926.org/part2/2003-12#PhysicalObject is already defined as an OWL class, since your original message spoke of rdf:typing the instances with the applicable OWL classes. That being the case, if you define the instance as an instance of that OWL class, the OWL semantics specify that it's also an instance of owl:Thing, without you having to explicitly say so. Thus as I see it the issue isn't about whether or not you want to be rigorous in distinguishing instances from classes (doing so is always a good idea), it's about whether or not you want to take advantage of built-in OWL semantics to simplify the syntax you write. However, as I said above, I may be missing something, and it won't hurt to write owl:Thing explicitly if you want. > > We have to work with IDs like PHO-387392 anyway, since we deal with more > than 20,000 classes and hundreds of thousands of individuals (all the > things that make up an entire oil refinery, and the components thereof, > and the process streams). We had a discussion about naming, and rejected > human-understandable names. What would be the human-understandable name > for a Ford Focus with a wide (not yet made) selection of engines, > colors, accessories, etc? And what if that selection has been made? > No problem. Lots of things are identified (for given applications) by non-human understandable names (very few people refer to me in conversation by my drivers license number, although the Registry of Motor Vehicles insists that I have one anyway). Cheers. --Frank > > > Regards, > > Hans > >
Received on Thursday, 27 October 2005 21:37:47 UTC