Modeling WordNet with OWL Full?

Hi All,

 

I am working on an OWL Wordnet Metamodel that models synsets as classes.
Most of the other work on this models Wordnet with a lexical strategy (types
of words) except for the Web KB 2 project (which is an RDFS model).  My work
will be an extension of the metamodel used in the Web KB project.

 

Here is a sample:

<owl:Class rdf:ID='causal_agent'>

      <rdfs:isDefinedBy>any entity that causes events to
happen</rdfs:isDefinedBy>

      <rdfs:label xml:lang='en'>causal agent</rdfs:label>

      <rdfs:label xml:lang='en'>cause</rdfs:label>

      <rdfs:label xml:lang='en'>causal agency</rdfs:label>

      <rdfs:subClassOf>

            <owl:Class rdf:about='#entity' />

      </rdfs:subClassOf>

</owl:Class>

<owl:Class rdf:ID='person'>

      <rdfs:isDefinedBy>a human being; &quot;there was too much for one
person to do&quot;</rdfs:isDefinedBy>

      <rdfs:label xml:lang='en'>person</rdfs:label>

      <rdfs:label xml:lang='en'>individual</rdfs:label>

      <rdfs:label xml:lang='en'>someone</rdfs:label>

      <rdfs:label xml:lang='en'>somebody</rdfs:label>

      <rdfs:label xml:lang='en'>mortal</rdfs:label>

      <rdfs:label xml:lang='en'>human</rdfs:label>

      <rdfs:label xml:lang='en'>soul</rdfs:label>

      <rdfs:subClassOf>

            <owl:Class rdf:about='#organism' />

      </rdfs:subClassOf>

      <rdfs:subClassOf>

            <owl:Class rdf:about='#causal_agent' />

      </rdfs:subClassOf>

</owl:Class>

 

Ok, so classes and subclasses are the easy part.  Today I tackled the
meronyms (part).  The key problem is that "part" should be a property of a
Class that is allowed multiple times and has a range of other Wordnet
classes.  

Here are the two methods I tried:

 

Method #1

---------

<owl:ObjectProperty rdf:ID='part'>

      <rdf:type rdf:resource="&owl;TransitiveProperty" />

      <rdfs:domain rdf:resource='#cell'/>

      <rdfs:range rdf:resource='#cell_wall'/>

</owl:ObjectProperty>                           

 

<owl:ObjectProperty rdf:ID='part'>

      <rdf:type rdf:resource="&owl;TransitiveProperty" />

      <rdfs:domain rdf:resource='#cell'/>

      <rdfs:range rdf:resource='#cytoplasm'/>

</owl:ObjectProperty>                           

 

Result: Unable to load into protege (duplicate "part").  In OWL Full we are
supposed to be able to model classes as individuals (which I think is what I
want). So, how would I model the above in OWL Full?

 

The other route is to make Part a subclass of Association and create Part
Individuals.  This is method 2.

 

Method #2

---------

 

<owl:Class rdf:ID='Association' />

<owl:ObjectProperty rdf:ID='source'>

      <rdfs:domain rdf:resource='#Association'/>

      <rdfs:range rdf:resource='http://www.w3.org/2002/07/owl#Class'/>

</owl:ObjectProperty>

<owl:ObjectProperty rdf:ID='target'>

      <rdfs:domain rdf:resource='#Association'/>

      <rdfs:range rdf:resource='http://www.w3.org/2002/07/owl#Class'/>

</owl:ObjectProperty>

<owl:Class rdf:ID='Part'>

      <rdfs:subClassOf>

            <owl:Class rdf:about='#Association' />

      </rdfs:subClassOf>

</owl:Class>

 

...

<Part rdf:ID='part-1'>

      <source rdf:resource='#cell'/>

      <target rdf:resource='#cell_wall'/>

</Part>

<Part rdf:ID='part-2'>

      <source rdf:resource='#cell'/>

      <target rdf:resource='#cytoplasm'/>

</Part>

 

Result: successfully loads into protege

 

While I can live with Parts as individuals, I would have preferred to model
them as a repeating property of the specific Wordnet Class.

 

Suggestions appreciated,

 

 - Mike

----------------------------

Michael C. Daconta

Chief Scientist, APG, McDonald Bradley, Inc.

www.daconta.net

 

Received on Saturday, 7 February 2004 13:36:25 UTC