RE: Apply Ontology Automatically (was: Ontology editor + why RDF?)

Hi All,

I've also (as I think I've said) found OMG proposed specification
"Ontology Definition Metamodel" very useful for thinking of practical
ways of dealing with Ontologies, especially for referencing from the
non-onotolgy UML FuGE (Functional Genomics) model.  I've included an
image of the class diagram.

All the classes in FuGE derive from Describable so have an 0..n
association to OntologyTerm.  The desired design is to associate Objects
in FuGE with Individuals, not directly with Ontology Classes.

So for a rather contrived example, a garage object might be associated
to two cars described in the following example:

Imagine a vehicle Ontology and the class Car, a Car has_roof which
points to a class Roof, has_engine which points to a class Engine, and
has_hemi which is true or false but has no default value and is
optional.

In this example the ontology itself defines no Individuals.

So an application might define an Individual of Mustang whose has_roof
slot points to a Roof Individual of Canvas/Retractable, a has_engine
slot that points to an Engine Individual of 425cc and has_hemi which
takes the value true.

It also might define an Individual of Camry whose has_roof slot points
to a Roof Individual of Metal, a has_engine slot that points to an
Engine Individual of 245cc and does not define a has_hemi value.

Based on the XML that would be generated for these classes, it becomes:

<FuGE-OM>

<OntologyIndividual identifier = "www.ford.com:detroit:Mustang" name =
"Mustang"
  ontologyURI ="www.vehicle_ontology.org::vo" ontologyTermURI =
"www.vehicle_ontology.org::#Car">
  
  <Properties_assnreflist>
    <ObjectProperty_ref identifier =
"www.ford.com:detroit:has_roof_slot"/>
    <ObjectProperty_ref identifier =
"www.ford.com:detroit:has_engine_slot"/>
    <DataProperty_ref identifier =
"www.ford.com:detroit:has_hemi_slot"/>
  </Properties_assnreflist>
  
</OntologyIndividual>

<ObjectProperty identifier = "www.ford.com:detroit:has_roof_slot" name =
"has_roof_slot"
  ontologyURI ="www.vehicle_ontology.org::vo" ontologyTermURI =
"www.vehicle_ontology.org::#has_roof">
  
  <Content_assn>
    <OntologyIndividual_ref identifier =
"www.ford.com:detroit:Canvas/Retractable"/>
  </Content_assn>
  
</ObjectProperty>

<ObjectProperty identifier = "www.ford.com:detroit:has_engine_slot" name
= "has_engine_slot"
  ontologyURI ="www.vehicle_ontology.org::vo" ontologyTermURI =
"www.vehicle_ontology.org::#has_engine">
  
  <Content_assn>
    <OntologyIndividual_ref identifier = "www.ford.com:detroit:425cc"/>
  </Content_assn>
  
</ObjectProperty>

<DataProperty identifier = "www.ford.com:detroit:has_hemi_slot" name =
"has_hemi_slot"
  ontologyURI ="www.vehicle_ontology.org::vo" ontologyTermURI =
"www.vehicle_ontology.org::#has_hemi_slot" 
  value = "true" datatype = "boolean" />

<OntologyIndividual identifier =
"www.ford.com:detroit:Canvas/Retractable" name = "Canvas/Retractable"
  ontologyURI ="www.vehicle_ontology.org::vo" ontologyTermURI =
"www.vehicle_ontology.org::#Roof"/>

<OntologyIndividual identifier = "www.ford.com:detroit:425cc" name =
"425cc"
  ontologyURI ="www.vehicle_ontology.org::vo" ontologyTermURI =
"www.vehicle_ontology.org::#Engine"/>
  
<!--  -->

<OntologyIndividual identifier = "www.toyota.com:tokyo:Camry" name =
"Camry"
  ontologyURI ="www.vehicle_ontology.org::vo" ontologyTermURI =
"www.vehicle_ontology.org::#Car">
  
  <Properties_assnreflist>
    <ObjectProperty_ref identifier =
"www.toyota.com:tokyo:has_roof_slot"/>
    <ObjectProperty_ref identifier =
"www.toyota.com:tokyo:has_engine_slot"/>
  </Properties_assnreflist>
  
</OntologyIndividual>

<ObjectProperty identifier = "www.toyota.com:tokyo:has_roof_slot" name =
"has_roof_slot"
  ontologyURI ="www.vehicle_ontology.org::vo" ontologyTermURI =
"www.vehicle_ontology.org::#has_roof">
  
  <Content_assn>
    <OntologyIndividual_ref identifier = "www.toyota.com:tokyo:Metal"/>
  </Content_assn>
  
</ObjectProperty>

<ObjectProperty identifier = "www.toyota.com:tokyo:has_engine_slot" name
= "has_engine_slot"
  ontologyURI ="www.vehicle_ontology.org::vo" ontologyTermURI =
"www.vehicle_ontology.org::#has_engine">
  
  <Content_assn>
    <OntologyIndividual_ref identifier = "www.toyota.com:tokyo:245cc"/>
  </Content_assn>
  
</ObjectProperty>

<OntologyIndividual identifier = "www.toyota.com:tokyo:Metal" name =
"Metal"
  ontologyURI ="www.vehicle_ontology.org::vo" ontologyTermURI =
"www.vehicle_ontology.org::#Roof"/>

<OntologyIndividual identifier = "www.toyota.com:tokyo:245cc" name =
"245cc"
  ontologyURI ="www.vehicle_ontology.org::vo" ontologyTermURI =
"www.vehicle_ontology.org::#Engine"/>

</FuGE-OM>

(FuGE has an Identifiable class from which the identifier attribute is
inherited, the *_ref are typically URI LSID-like constructions which
have the added semantics that they are references to the actual object,
which may or may not be in the current document but should be resolvable
somewhere in the real world)

cheers,
Michael

Michael Miller
Lead Software Developer
Rosetta Biosoftware Business Unit
www.rosettabio.com


> -----Original Message-----
> From: public-semweb-lifesci-request@w3.org 
> [mailto:public-semweb-lifesci-request@w3.org] On Behalf Of 
> matt@biomedcentral.com
> Sent: Monday, April 03, 2006 8:52 AM
> To: ibl@snet.net; phillip.lord@newcastle.ac.uk
> Cc: public-semweb-lifesci@w3.org
> Subject: RE: Apply Ontology Automatically (was: Ontology 
> editor + why RDF?)
> 
> 
> 
> Here's my favorite example of useful automated ontology 
> application, achieved by combining two readily available technologies:
> 
> http://www.hackdiary.com/archives/000070.html
> 
> Matt
> 
> > -----Original Message-----
> > From: public-semweb-lifesci-request@w3.org
> > [mailto:public-semweb-lifesci-request@w3.org]On Behalf Of Internet
> > Business Logic
> > Sent: 03 April 2006 16:44
> > To: Phillip Lord
> > Cc: public-semweb-lifesci@w3.org
> > Subject: Re: Apply Ontology Automatically (was: Ontology 
> editor + why
> > RDF?)
> > 
> > 
> > 
> > Phillip --
> > 
> > You wrote (below) "ability ... to be able to apply the 
> > ontology automatically in some circumstances"
> > 
> > This could be the major selling point.  Otherwise, the value 
> > of the ontology depends on how well programmers read, 
> > understand, and use it.  And, if they did that well, was it 
> > their value-add, not that of the ontology?
> > 
> > Do you have examples in which an ontology has been applied 
> > automatically to do a significant real world task?
> > 
> > (Questions intended constructively).
> > 
> >                          Thanks    -- Adrian Walker
> > 
> > -- 
> > 
> > Internet Business Logic (R)
> > Executable open vocabulary English
> > Online at www.reengineeringllc.com
> > Shared use is free
> > 
> > Reengineering,  PO Box 1412,  Bristol,  CT 06011-1412,  USA
> > 
> > Phone 860 583 9677     Mobile 860 830 2085     Fax 860 314 1029
> > 
> > 
> > 
> > 
> > Phillip Lord wrote:
> > 
> > >>>>>>"Anita" == deWaard, Anita (ELS) 
> <A.dewaard@elsevier.com> writes:
> > >>>>>>            
> > >>>>>>
> > > 
> > >  Anita> I am reminded of a saying on a Dutch proverb calendar: "If
> > >  Anita> love is the answer, could you please repeat the 
> > question?" If
> > >  Anita> semantics are the answer - what is the problem 
> that is being
> > >  Anita> solved, in a way no other technology lets you? b
> > >
> > >To be honest, I think that this is a recipe of despair; I 
> don't think
> > >that there is any one thing that SW enables you do to that 
> could not
> > >do in another way. It's a question of whether you can do 
> things more
> > >conveniently, or with more commonality than other wise; 
> > after all, XML
> > >is just an extensible syntax and, indeed, could do exactly nothing
> > >that SGML could not do (when it came out -- XML standards 
> exceed SGML
> > >ones now). XML has still been successful. 
> > >
> > >It's more a question of whether, RDF or OWL provides a 
> combination of
> > >things that we would not get otherwise. With OWL (DL and lite), I
> > >rather like the ability to check my model with a reasoner, 
> and to be
> > >able to apply the ontology automatically in some 
> circumstances. With
> > >RDF, you have a convenient technology for building a hyperlinked
> > >resource, but with added link types. 
> > >
> > >Of course, you could do the latter with straight XML 
> (well, since RDF
> > >is XML, you are doing so). And the former could be done 
> without OWL,
> > >just with a raw DL; of course, then you wouldn't get some of the
> > >additional features of OWL (such as multi-lingual support which
> > >derives directly from the XML). 
> > >
> > >  Anita> Perhaps if we can find a way to nail this down (I also
> > >  Anita> believe the use cases of this working group, and 
> > the group as
> > >  Anita> a whole is certainly working towards that aim!) 
> we could try
> > >  Anita> to not just preach the semantic gospel, but
> > >  Anita> actually sell it (forgive the mixed metaphor)... 
> > >
> > >Having said all that went before, I agree with this; 
> having a set of
> > >RDF/OWL life sciences success stories which explained why the
> > >technology was appropriate (if not uniquely appropriate) would be a
> > >good thing, if it has not been done before. 
> > >
> > >Cheers
> > >
> > >Phil
> > >
> > >
> > >  
> > >
> > 
> > 
> > 
> This email has been scanned by Postini.
> For more information please visit http://www.postini.com
> 
> 
> 
> 
> 

Received on Monday, 3 April 2006 16:43:52 UTC