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] How to inherit value-based class properties to individuals?

James Howison james at howison.name
Wed Oct 1 15:09:25 PDT 2008


On 1 Oct 2008, at 4:54 PM, Patrick McCrae wrote:

> Dear Protege List -
>
> Can anyone please help me with the following modelling question today:
>
> In Protege 4 I have created a class which is defined by the property
>
>   has_Lexicalisation value Lex_word.

What is Lex_word? is it a Literal (ie datavalue) or a Resource (ie a  
URI)?

> This is analogous to
>
>   has_Lexicalisation has Lex_word
>
> in the Protege 3.x world.

by that do you mean the non-OWL 'slot' world?

> I was now hoping that when I create an instance of the above class,  
> that instance would have the very same property. This, however,  
> turned out not to be the case. It seems that such class properties  
> are not propagated by inheritance.
>
> I am hence wondering how I can inherit properties of the above kind  
> from the class to its individuals.
>
> Thanks in advance for your help!

Warning, Warning basic, yet common, misunderstanding alert (I think :)

OWL works the opposite way to this.

I think you've defined a class restriction, which lets a reasoner  
infer that *if* an Individual has that property, then it is a member  
of that class.  Let's call the class :YourClass.

You assert your class restriction, and

:ind1 :has_Lexicalisation "some value" .

And the reasoner infers:

:ind1 rdf:type :YourClass .

When you say:

> I was now hoping that when I create an instance of the above class,  
> that instance would have the very same property.

Do you mean that you want the reasoner to infer that if something is  
an instance of a sub class, that you want it to also infer that the  
individual has a property (with what value?) that belongs to a super- 
class?

Assuming that Lex_word is a Literal, you assert:

:SuperClass rdf:type owl:Class ;
             :has_Lexicalisation "lex word" .

:SubClass rdf:type owl:Class ;
           rdfs:subClassOf :SuperClass .

and

:individual1 rdf:type :SubClass .

and you want the reasoner to infer the existence of the triple

:individual1 :has_Lexicalisation "lex word" .

Is that it?  (Actually perhaps without the :SubClass stuff, but the  
logic is the same.)

--J

ps. providing snippets of your ontology in n3/Turtle can help these  
discussions, as well as working out what you want to assert and what  
you want inferred.

pps. Have you done the Pizza Tutorial?





More information about the protege-owl mailing list