Re: owl:Thing and RDF

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