Search Mailing List Archives

Limit search to: Subject & Body Subject Author
Sort by: Reverse Sort
Limit to: All This Week Last Week This Month Last Month
Select Date Range     through    

[protege-owl] Inference of class type based on keyword andModeling data types

Thomas Russ tar at ISI.EDU
Sat Jan 2 11:42:28 PST 2010

On Jan 2, 2010, at 1:06 AM, Saiprasad, Sundar wrote:

> Thanks Thomas R.
> Equivalence or the reverse action is good. That worked. Regarding  
> Thomas
> S's point , I had responded as to why I need to model it this way.  
> Here
> is the note
> --------------
> Thomas
> Thanks a ton for your response. My use case is a bit unique. The  
> animal
> example is an analogy for my actual use case and let me try to explain
> it better. I will get a unique URI for an individual and a bunch of
> keywords as input.  These keywords can be something like "Lion" ,
> "Brown" , "500Kg" etc. I will get a bunch of keywords for each
> individual. There can be many individuals. The keywords are  
> available as
> "hasKeyword" property from the individual.
> I have a base class called Animal in my ontology and assume that the
> first individual that I get as input has the URI urn:animal1234. I  
> know
> for sure that urn:annimal1234 is of type test:Animal. Every individual
> is of type test:Animal.  There are subclasses of Animal like  
> Carnivore ,
> BrownAnimals , HeavyAnimals etc. Based on the keywords that I get for
> each individual , each individual becomes a member of these subclasses
> too. Your point is very valid. I can create something like the  
> following
> Test:CarnivoreText owl:equivalent [ a owl:Restriction ;
>                                   Owl:onProperty  Test:hasKeyword ;
>                                   Owl:hasValue "Lion" ]
> Test:CarnivoreText rdfs:subclassof Test:Carnivore

This will work.  You may also be able to build the restriction  
directly as an anonymous class and save the need for introducing  
additional names.  But that's just a minor observation.

> This would mean if I get a keyword Lion for the individual , it will
> also infer that the individual is a subclass of Carnivore.
> Similar associations can be created for BrownAnimals and other classes
> too.
> I would like to know if there is a way to list a bunch of keywords  
> that
> I can have as an enumerated datatype and if one of it matches ,  
> then the
> class association is made.

It looks like the OWL specification allows the use of enumerated  
Datatype values, so this should, in theory, be possible.  What I'm  
not sure about is what level of support the reasoning engines have  
for using enumerated datatype classes as restrictions.

Assuming the reasoning engine support is there, you could create an  
enumerated datatype class and use it as the class in a someValuesFrom  
restriction in your definition:

Test:CarnivoreText owl:equivalent [ a owl:Restriction ;
                                   Owl:onProperty  Test:hasKeyword ;
                                   Owl:someValuesFrom {"Lion",  
"Tiger", "Canine", ...} ]

The OWL specification has an example showing enumerated datatypes,  
<> but I can't figure  
out how to add them using the Protege editor.

> Basically , I don't want my application to code these rules and  
> make the
> associations. I want to express it in the data itself

More information about the protege-owl mailing list