classes versus individuals

16 messages Options
Embed this post
Permalink
Anthony McCallum

classes versus individuals

Reply Threaded More More options
Print post
Permalink
Hi,
What is the fundamental difference between these two concepts?  I am  
planning to store a large amount of taxonomy data where there is a set  
of families each containing a set of subfamilies.  I will create  
classes for "Family" and "Sub-family", however, I'm confused about  
whether the individual family and subfamily data (i.e. each subfamily  
name and which family it is part of) will also be separate classes, or  
should these be individuals?

Thanks!
_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Reiner Jung-4

[SPAM][PROB=50%] Re: classes versus individuals

Reply Threaded More More options
Print post
Permalink
You could think about classes as concepts. For example the word person  
represents a certain concept. While Clara would be a specific element  
of that concept.
However, it depends very often on the context if it is more  
appropriate to use a concept or a individual.
As swrl allows primarily to reason/query on individuals, I used to  
define the items I wanted to search for
as individuals while I defined all other nouns as concepts.

Hope that helps
    Reiner

Von meinem iPhone gesendet

Am 07.11.2009 um 20:46 schrieb Anthony McCallum <[hidden email]
 >:

> Hi,
> What is the fundamental difference between these two concepts?  I am  
> planning to store a large amount of taxonomy data where there is a  
> set of families each containing a set of subfamilies.  I will create  
> classes for "Family" and "Sub-family", however, I'm confused about  
> whether the individual family and subfamily data (i.e. each  
> subfamily name and which family it is part of) will also be separate  
> classes, or should these be individuals?
>
> Thanks!
> _______________________________________________
> protege-owl mailing list
> [hidden email]
> https://mailman.stanford.edu/mailman/listinfo/protege-owl
>
> Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Pitonyak, Andrew D

Re: classes versus individuals

Reply Threaded More More options
Print post
Permalink
In reply to this post by Anthony McCallum
This is very dependent on what you intend to accomplish.

What is the difference between a class and an individual?

A class is of type Class and may have sub-class type relationships. For example, class Dog.

A class has a class extension that contains individuals. For example, Rover is of type Dog.

I do not expect Rover to have sub-class type relationships.

I expect properties to connect individuals (not classes) to other individuals or data elements. For example, I expect that Rover may have an individual owner, but the class Dog would not.


*************************

Consider a discussion that we had on a concept called a "meta-class".

The members of a meta-class are classes themselves. Consider a standard biological taxonomy. Different levels of the hierarchy are given different names, such as species, genus, family, phylum, etc. Now consider a Wolf:

1.Kingdom: Animalia
2.Phylum: Chordata
3.Class: Mammalia
4.Order: Carnivora
5.Family: Canidae
6.Genus: Canis
7.Species: Canis lupus
8.Subspecies: familiaris

First, consider a sub-class relationship (you do mention them).

*************************

Should I use a subclass relationship for?

Kingdom > Phylum > Class > Order > Family > Genus > Species > Subspecies

If you are thinking of adding the assertion:

B sub-class-of A

Then you should be happy saying

every B is an A

The definition using predicate logic would be

   subclass-of(B, A) <=>  forall.x: B(x) -> A(x)

It is NOT true that every class is a phylum, so you do not want a sub-class-of relation. How about for

Animalae > Chordata > Mammalia > Carnivora > Canidae > Canis > Canis Lupus ...

It is true that every Lupus is a Canis, and every Canis is a Canidae. It makes sense to use a subClass relationship here.

The basic principle is that you do not want to use the class hierarchy to express relationships that are not true class/subclass (or set/subset) relations. This is because the subclass relation has a particular defined meaning that the reasoners use, and if you apply it in situations where that meaning does not hold, the reasoners produce undesirable inferences.

If, for example, one were to say that Wolf was a subclass of Species, then when one asked what were all the species, then all individual wolves would be returned.  But that is not what you would really want to get.  So you must respect the semantics of the language constructs so as not to mislead the reasoner.

*************************

OK, so sometimes "sub-class" works fine, and sometimes you might prefer to use a meta-class.

The class Wolf (Canis Lupus) has the meta-type species, but it is NOT a subclass of species; Canis Lupus is a subclass of the genus Canis. This is because any individual wolf is also an individual of  type Canis, and so on including being an individual of type Mammal.

If Wolf is a class, and Canis Lupus is a class, the two classes have the same class extension - both class extensions contain exactly the same set of individuals. You can, therefore, link the two classes using owl:equivalentClass. This does not mean that they have the same concept, just that they have the same class extension. For true class equality in an OWL full ontology, you can use owl:sameAs.

An individual wolf would not be an individual of type species.  It is the class Wolf that is an individual of type species.  So that makes Species, Genus, etc. meta-classes - since they have classes and individuals.

*************************

So, how does a meta-class look?

Canis is of type Genus, and it is a class.

Canis rdf:type Genus
Canis rdf:type owl:Class
Canis rdfs:subClassOf Canidae

Canis is an individual of type Genus, so Genus is the meta-class, and it is also a Class with a hierarchy.

Just something to consider...

-----Original Message-----
From: [hidden email] [mailto:[hidden email]] On Behalf Of Anthony McCallum
Sent: Saturday, November 07, 2009 2:47 PM
To: [hidden email]
Subject: [protege-owl] classes versus individuals

Hi,
What is the fundamental difference between these two concepts?  I am  
planning to store a large amount of taxonomy data where there is a set  
of families each containing a set of subfamilies.  I will create  
classes for "Family" and "Sub-family", however, I'm confused about  
whether the individual family and subfamily data (i.e. each subfamily  
name and which family it is part of) will also be separate classes, or  
should these be individuals?
_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Anthony McCallum

Re: classes versus individuals

Reply Threaded More More options
Print post
Permalink
In reply to this post by Anthony McCallum
Some javascript/style in this post has been disabled (why?)
This is exactly the explanation I was looking for.  However, in my context, I cannot say, using your example, that an individual of Family "is an" individual of its associated Order.  I gather that this would eliminate the meta-class option.  Would I be correct in saying that each of Kingdom, Phylum, Class, etc.  would all be sibling classes?  And the only way in which the real-world taxonomy hierarchy is captured is through use of object properties?  As such, properties will relate individuals of these various classes, correct?

Thanks,
Anthony

On 9-Nov-09, at 10:44 AM, [hidden email] wrote:

Message: 2
Date: Mon, 09 Nov 2009 11:45:50 -0500
From: "Pitonyak, Andrew D" <[hidden email]>
To: User support for the Protege-OWL editor
<[hidden email]>
Subject: Re: [protege-owl] classes versus individuals
Message-ID:
<[hidden email]>

Content-Type: text/plain; charset=us-ascii

This is very dependent on what you intend to accomplish. 

What is the difference between a class and an individual?

A class is of type Class and may have sub-class type relationships. For example, class Dog.

A class has a class extension that contains individuals. For example, Rover is of type Dog.

I do not expect Rover to have sub-class type relationships. 

I expect properties to connect individuals (not classes) to other individuals or data elements. For example, I expect that Rover may have an individual owner, but the class Dog would not. 


*************************

Consider a discussion that we had on a concept called a "meta-class". 

The members of a meta-class are classes themselves. Consider a standard biological taxonomy. Different levels of the hierarchy are given different names, such as species, genus, family, phylum, etc. Now consider a Wolf:

1.Kingdom: Animalia
2.Phylum: Chordata
3.Class: Mammalia
4.Order: Carnivora
5.Family: Canidae
6.Genus: Canis
7.Species: Canis lupus
8.Subspecies: familiaris

First, consider a sub-class relationship (you do mention them).

*************************

Should I use a subclass relationship for?

Kingdom > Phylum > Class > Order > Family > Genus > Species > Subspecies

If you are thinking of adding the assertion:

B sub-class-of A

Then you should be happy saying

every B is an A

The definition using predicate logic would be

  subclass-of(B, A) <=>  forall.x: B(x) -> A(x)

It is NOT true that every class is a phylum, so you do not want a sub-class-of relation. How about for 

Animalae > Chordata > Mammalia > Carnivora > Canidae > Canis > Canis Lupus ...

It is true that every Lupus is a Canis, and every Canis is a Canidae. It makes sense to use a subClass relationship here.

The basic principle is that you do not want to use the class hierarchy to express relationships that are not true class/subclass (or set/subset) relations. This is because the subclass relation has a particular defined meaning that the reasoners use, and if you apply it in situations where that meaning does not hold, the reasoners produce undesirable inferences.

If, for example, one were to say that Wolf was a subclass of Species, then when one asked what were all the species, then all individual wolves would be returned.  But that is not what you would really want to get.  So you must respect the semantics of the language constructs so as not to mislead the reasoner.

*************************

OK, so sometimes "sub-class" works fine, and sometimes you might prefer to use a meta-class.

The class Wolf (Canis Lupus) has the meta-type species, but it is NOT a subclass of species; Canis Lupus is a subclass of the genus Canis. This is because any individual wolf is also an individual of type Canis, and so on including being an individual of type Mammal.

If Wolf is a class, and Canis Lupus is a class, the two classes have the same class extension - both class extensions contain exactly the same set of individuals. You can, therefore, link the two classes using owl:equivalentClass. This does not mean that they have the same concept, just that they have the same class extension. For true class equality in an OWL full ontology, you can use owl:sameAs.

An individual wolf would not be an individual of type species.  It is the class Wolf that is an individual of type species.  So that makes Species, Genus, etc. meta-classes - since they have classes and individuals.

*************************

So, how does a meta-class look?

Canis is of type Genus, and it is a class. 

Canis rdf:type Genus
Canis rdf:type owl:Class
Canis rdfs:subClassOf Canidae

Canis is an individual of type Genus, so Genus is the meta-class, and it is also a Class with a hierarchy.

Just something to consider...


_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Anthony McCallum

Re: classes versus individuals

Reply Threaded More More options
Print post
Permalink
In reply to this post by Anthony McCallum
Some javascript/style in this post has been disabled (why?)
Yes, this seems to make intuitive sense, thanks.  As far as adding large amounts of data goes, is it easier to input individual data as opposed to classes.  I can't seem to find the individual form tab in Protege 4.0.  Has this functionality been removed?  Also, is there a good way to import individuals from a tab delimited text file using protege, or would the simplest method be to use the OWL api directly?

Thanks,
Anthony

On 9-Nov-09, at 10:44 AM, [hidden email] wrote:

Message: 3
Date: Sun, 8 Nov 2009 21:49:43 +0100
From: Uni Oldenburg <[hidden email]>
To: User support for the Protege-OWL editor
<[hidden email]>
Subject: [protege-owl] [SPAM][PROB=50%] Re:  classes versus
individuals
Message-ID:
<[hidden email]>

Content-Type: text/plain; charset=us-ascii; format=flowed; delsp=yes

You could think about classes as concepts. For example the word person  
represents a certain concept. While Clara would be a specific element  
of that concept.
However, it depends very often on the context if it is more  
appropriate to use a concept or a individual.
As swrl allows primarily to reason/query on individuals, I used to  
define the items I wanted to search for
as individuals while I defined all other nouns as concepts.

Hope that helps
   Reiner


_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Pitonyak, Andrew D

Re: classes versus individuals

Reply Threaded More More options
Print post
Permalink
In reply to this post by Anthony McCallum
Some javascript/style in this post has been disabled (why?)

Is something a class or an individual? You can ask simple questions that may help:

 

1.  Does there exist a thing of type P? Fluffy is of type Dog, so Dog should be a class. Nothing is of type Fluffy, so Fluffy should probably not be of type class.

 

2.  Does there exist a thing that will have a sub-class relationship with P? Every Canis lupus is a Canis, so I probably want a class.

 

3.  What properties use P or individuals of type P? In general, properties associate individuals to individuals, not classes to classes. The pet dog Toto has a name and a specific owner named Dorothy; both are probably individuals.

 

With thought, there are more.

 

In the example with the kingdom, phylum, class, etc., there are some interesting examples where things such a Wolf named Howler of type Canis Lupus, which has type Species. Canis Lupus is a meta-class (an individual and a class).  I call the Ontology full, but there is not universal agreement on this (Thomas Russ stated that he was not able to find anything conclusive in the OWL standards that mandate that the use of meta-classes alone cause an ontology to be OWL Full rather than OWL DL).

 

 

 

From: [hidden email] [mailto:[hidden email]] On Behalf Of Anthony McCallum
Sent: Tuesday, November 10, 2009 11:48 PM
To: [hidden email]
Subject: Re: [protege-owl] classes versus individuals

 

This is exactly the explanation I was looking for.  However, in my context, I cannot say, using your example, that an individual of Family "is an" individual of its associated Order.  I gather that this would eliminate the meta-class option.  Would I be correct in saying that each of Kingdom, Phylum, Class, etc.  would all be sibling classes?  And the only way in which the real-world taxonomy hierarchy is captured is through use of object properties?  As such, properties will relate individuals of these various classes, correct?

 

Thanks,

Anthony

 

On 9-Nov-09, at 10:44 AM, [hidden email] wrote:



Message: 2
Date: Mon, 09 Nov 2009 11:45:50 -0500
From: "Pitonyak, Andrew D" <[hidden email]>
To: User support for the Protege-OWL editor
          <[hidden email]>
Subject: Re: [protege-owl] classes versus individuals
Message-ID:
          <[hidden email]>
         
Content-Type: text/plain; charset=us-ascii

This is very dependent on what you intend to accomplish. 

What is the difference between a class and an individual?

A class is of type Class and may have sub-class type relationships. For example, class Dog.

A class has a class extension that contains individuals. For example, Rover is of type Dog.

I do not expect Rover to have sub-class type relationships. 

I expect properties to connect individuals (not classes) to other individuals or data elements. For example, I expect that Rover may have an individual owner, but the class Dog would not. 


*************************

Consider a discussion that we had on a concept called a "meta-class". 

The members of a meta-class are classes themselves. Consider a standard biological taxonomy. Different levels of the hierarchy are given different names, such as species, genus, family, phylum, etc. Now consider a Wolf:

1.Kingdom: Animalia
2.Phylum: Chordata
3.Class: Mammalia
4.Order: Carnivora
5.Family: Canidae
6.Genus: Canis
7.Species: Canis lupus
8.Subspecies: familiaris

First, consider a sub-class relationship (you do mention them).

*************************

Should I use a subclass relationship for?

Kingdom > Phylum > Class > Order > Family > Genus > Species > Subspecies

If you are thinking of adding the assertion:

B sub-class-of A

Then you should be happy saying

every B is an A

The definition using predicate logic would be

  subclass-of(B, A) <=>  forall.x: B(x) -> A(x)

It is NOT true that every class is a phylum, so you do not want a sub-class-of relation. How about for 

Animalae > Chordata > Mammalia > Carnivora > Canidae > Canis > Canis Lupus ...

It is true that every Lupus is a Canis, and every Canis is a Canidae. It makes sense to use a subClass relationship here.

The basic principle is that you do not want to use the class hierarchy to express relationships that are not true class/subclass (or set/subset) relations. This is because the subclass relation has a particular defined meaning that the reasoners use, and if you apply it in situations where that meaning does not hold, the reasoners produce undesirable inferences.

If, for example, one were to say that Wolf was a subclass of Species, then when one asked what were all the species, then all individual wolves would be returned.  But that is not what you would really want to get.  So you must respect the semantics of the language constructs so as not to mislead the reasoner.

*************************

OK, so sometimes "sub-class" works fine, and sometimes you might prefer to use a meta-class.

The class Wolf (Canis Lupus) has the meta-type species, but it is NOT a subclass of species; Canis Lupus is a subclass of the genus Canis. This is because any individual wolf is also an individual of type Canis, and so on including being an individual of type Mammal.

If Wolf is a class, and Canis Lupus is a class, the two classes have the same class extension - both class extensions contain exactly the same set of individuals. You can, therefore, link the two classes using owl:equivalentClass. This does not mean that they have the same concept, just that they have the same class extension. For true class equality in an OWL full ontology, you can use owl:sameAs.

An individual wolf would not be an individual of type species.  It is the class Wolf that is an individual of type species.  So that makes Species, Genus, etc. meta-classes - since they have classes and individuals.

*************************

So, how does a meta-class look?

Canis is of type Genus, and it is a class. 

Canis rdf:type Genus
Canis rdf:type owl:Class
Canis rdfs:subClassOf Canidae

Canis is an individual of type Genus, so Genus is the meta-class, and it is also a Class with a hierarchy.

Just something to consider...

 


_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Thomas Russ

Re: classes versus individuals

Reply Threaded More More options
Print post
Permalink
In reply to this post by Anthony McCallum

On Nov 10, 2009, at 8:48 PM, Anthony McCallum wrote:

> This is exactly the explanation I was looking for.  However, in my  
> context, I cannot say, using your example, that an individual of  
> Family "is an" individual of its associated Order.  I gather that  
> this would eliminate the meta-class option.  Would I be correct in  
> saying that each of Kingdom, Phylum, Class, etc.  would all be  
> sibling classes?  And the only way in which the real-world taxonomy  
> hierarchy is captured is through use of object properties?  As such,  
> properties will relate individuals of these various classes, correct?

No.  I think the meta-class option remains valid.

The way you get the real-world taxonomy hierarchy is through the  
subclass-of relations between the classes that are the "individuals"  
of your meta classes.

OWL-DL doesn't have the expressive power to express such requirements,  
so you will need to ensure them manually.

So what you would end up with is the following sorts of structure:


Metaclasses:
    Order
    Family
    Genus
    Species

These meta-classes are not hierarchically related to each other, since  
they are not subclasses of each other.  You may wish to create an  
AnnotationProperty to link them into the proper hierarchy, by being  
able to assert, for example, that "Species subordinateTo Genus", etc.  
and making this annotation property transitive.

With the metaclasses, you then create individual classes that belong  
to them and it is those individual classes that are related  
hierarchically with subclassOf and provide the taxonomic  
classification.  The metaclasses are used only to describe which  
"level" of the taxonomic hierarchy a particular OWL class is in:

Classes:
   Carnivora:   rdf:type Order,  rdfs:subclassOf Mammalia
   Canidae:     rdf:type Family, rdfs:subclassOf Carnivora
   Canis:       rdf:type Genus,  rdfs:subclassOf Canidae

etc.


_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Anthony McCallum

Re: classes versus individuals

Reply Threaded More More options
Print post
Permalink
In reply to this post by Anthony McCallum
Some javascript/style in this post has been disabled (why?)
I see what you mean.  So a meta class is basically just a regular class which is allowed to have individuals that are also classes?  Are there any disadvantages of using classes as individuals?
I'm still not convinced that I can use this method as in my case Canis would not be a subclass of Canidae.  Basically, I have three classes, Class, Family, and TF.  Where a given TF is in a Class, and a given Class is in a Family.  However, I cannot say that an instance of TF "is a" instance of Class.  I suppose in that sense, what I am building is not quite as much a taxonomy as it is a classification.  My apologies for any confusion.

Thanks for all your help.

Anthony

On 12-Nov-09, at 10:43 AM, [hidden email] wrote:


Message: 3
Date: Thu, 12 Nov 2009 09:58:34 -0800
From: Thomas Russ <[hidden email]>
To: User support for the Protege-OWL editor
<[hidden email]>
Subject: Re: [protege-owl] classes versus individuals
Message-ID: <[hidden email]>
Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes


On Nov 10, 2009, at 8:48 PM, Anthony McCallum wrote:

This is exactly the explanation I was looking for.  However, in my  
context, I cannot say, using your example, that an individual of  
Family "is an" individual of its associated Order.  I gather that  
this would eliminate the meta-class option.  Would I be correct in  
saying that each of Kingdom, Phylum, Class, etc.  would all be  
sibling classes?  And the only way in which the real-world taxonomy  
hierarchy is captured is through use of object properties?  As such,  
properties will relate individuals of these various classes, correct?

No.  I think the meta-class option remains valid.

The way you get the real-world taxonomy hierarchy is through the  
subclass-of relations between the classes that are the "individuals"  
of your meta classes.

OWL-DL doesn't have the expressive power to express such requirements,  
so you will need to ensure them manually.

So what you would end up with is the following sorts of structure:


Metaclasses:
   Order
   Family
   Genus
   Species

These meta-classes are not hierarchically related to each other, since  
they are not subclasses of each other.  You may wish to create an  
AnnotationProperty to link them into the proper hierarchy, by being  
able to assert, for example, that "Species subordinateTo Genus", etc.  
and making this annotation property transitive.

With the metaclasses, you then create individual classes that belong  
to them and it is those individual classes that are related  
hierarchically with subclassOf and provide the taxonomic  
classification.  The metaclasses are used only to describe which  
"level" of the taxonomic hierarchy a particular OWL class is in:

Classes:
  Carnivora:   rdf:type Order,  rdfs:subclassOf Mammalia
  Canidae:     rdf:type Family, rdfs:subclassOf Carnivora
  Canis:       rdf:type Genus,  rdfs:subclassOf Canidae

etc.



_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Anthony McCallum

Re: classes versus individuals

Reply Threaded More More options
Print post
Permalink
In reply to this post by Anthony McCallum
Some javascript/style in this post has been disabled (why?)
Also, just to follow up the example you've given.  In this case, you would have to manually added the subClass relationship each time you add individual classes correct?  Or would there be a way to automatically require that let's say a Genus individual class has a superclass that is a Family individual class?

Thanks again,
Anthony

On 12-Nov-09, at 10:43 AM, [hidden email] wrote:


Message: 3
Date: Thu, 12 Nov 2009 09:58:34 -0800
From: Thomas Russ <[hidden email]>
To: User support for the Protege-OWL editor
<[hidden email]>
Subject: Re: [protege-owl] classes versus individuals
Message-ID: <[hidden email]>
Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes


On Nov 10, 2009, at 8:48 PM, Anthony McCallum wrote:

This is exactly the explanation I was looking for.  However, in my  
context, I cannot say, using your example, that an individual of  
Family "is an" individual of its associated Order.  I gather that  
this would eliminate the meta-class option.  Would I be correct in  
saying that each of Kingdom, Phylum, Class, etc.  would all be  
sibling classes?  And the only way in which the real-world taxonomy  
hierarchy is captured is through use of object properties?  As such,  
properties will relate individuals of these various classes, correct?

No.  I think the meta-class option remains valid.

The way you get the real-world taxonomy hierarchy is through the  
subclass-of relations between the classes that are the "individuals"  
of your meta classes.

OWL-DL doesn't have the expressive power to express such requirements,  
so you will need to ensure them manually.

So what you would end up with is the following sorts of structure:


Metaclasses:
   Order
   Family
   Genus
   Species

These meta-classes are not hierarchically related to each other, since  
they are not subclasses of each other.  You may wish to create an  
AnnotationProperty to link them into the proper hierarchy, by being  
able to assert, for example, that "Species subordinateTo Genus", etc.  
and making this annotation property transitive.

With the metaclasses, you then create individual classes that belong  
to them and it is those individual classes that are related  
hierarchically with subclassOf and provide the taxonomic  
classification.  The metaclasses are used only to describe which  
"level" of the taxonomic hierarchy a particular OWL class is in:

Classes:
  Carnivora:   rdf:type Order,  rdfs:subclassOf Mammalia
  Canidae:     rdf:type Family, rdfs:subclassOf Carnivora
  Canis:       rdf:type Genus,  rdfs:subclassOf Canidae

etc.


_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Pitonyak, Andrew D

Re: classes versus individuals

Reply Threaded More More options
Print post
Permalink
In reply to this post by Anthony McCallum
Some javascript/style in this post has been disabled (why?)

Although there is disagreement on this point, my reading of a meta-class (treating a class as an individual) makes your Ontology FULL.  That said, unless you have an application where this is a problem (or if it is a problem that a class may be an individual), then there is no reason to not do this.

 

 

 

From: [hidden email] [mailto:[hidden email]] On Behalf Of Anthony McCallum
Sent: Tuesday, November 17, 2009 1:34 AM
To: [hidden email]
Subject: Re: [protege-owl] classes versus individuals

 

I see what you mean.  So a meta class is basically just a regular class which is allowed to have individuals that are also classes?  Are there any disadvantages of using classes as individuals?

I'm still not convinced that I can use this method as in my case Canis would not be a subclass of Canidae.  Basically, I have three classes, Class, Family, and TF.  Where a given TF is in a Class, and a given Class is in a Family.  However, I cannot say that an instance of TF "is a" instance of Class.  I suppose in that sense, what I am building is not quite as much a taxonomy as it is a classification.  My apologies for any confusion.

 

Thanks for all your help.

 

Anthony

 

On 12-Nov-09, at 10:43 AM, [hidden email] wrote:




Message: 3
Date: Thu, 12 Nov 2009 09:58:34 -0800
From: Thomas Russ <[hidden email]>
To: User support for the Protege-OWL editor
          <[hidden email]>
Subject: Re: [protege-owl] classes versus individuals
Message-ID: <[hidden email]>
Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes


On Nov 10, 2009, at 8:48 PM, Anthony McCallum wrote:


This is exactly the explanation I was looking for.  However, in my  

context, I cannot say, using your example, that an individual of  

Family "is an" individual of its associated Order.  I gather that  

this would eliminate the meta-class option.  Would I be correct in  

saying that each of Kingdom, Phylum, Class, etc.  would all be  

sibling classes?  And the only way in which the real-world taxonomy  

hierarchy is captured is through use of object properties?  As such,  

properties will relate individuals of these various classes, correct?


No.  I think the meta-class option remains valid.

The way you get the real-world taxonomy hierarchy is through the  
subclass-of relations between the classes that are the "individuals"  
of your meta classes.

OWL-DL doesn't have the expressive power to express such requirements,  
so you will need to ensure them manually.

So what you would end up with is the following sorts of structure:


Metaclasses:
   Order
   Family
   Genus
   Species

These meta-classes are not hierarchically related to each other, since  
they are not subclasses of each other.  You may wish to create an  
AnnotationProperty to link them into the proper hierarchy, by being  
able to assert, for example, that "Species subordinateTo Genus", etc.  
and making this annotation property transitive.

With the metaclasses, you then create individual classes that belong  
to them and it is those individual classes that are related  
hierarchically with subclassOf and provide the taxonomic  
classification.  The metaclasses are used only to describe which  
"level" of the taxonomic hierarchy a particular OWL class is in:

Classes:
  Carnivora:   rdf:type Order,  rdfs:subclassOf Mammalia
  Canidae:     rdf:type Family, rdfs:subclassOf Carnivora
  Canis:       rdf:type Genus,  rdfs:subclassOf Canidae

etc.


 


_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Thomas Russ

Re: classes versus individuals

Reply Threaded More More options
Print post
Permalink
In reply to this post by Anthony McCallum

On Nov 16, 2009, at 11:00 PM, Anthony McCallum wrote:

> Also, just to follow up the example you've given.  In this case, you  
> would have to manually added the subClass relationship each time you  
> add individual classes correct?

Yes.

>  Or would there be a way to automatically require that let's say a  
> Genus individual class has a superclass that is a Family individual  
> class?

I don't think OWL-DL allows you to specify restrictions like that  
through the use of meta-classes.  The meta-classes will, IIRC put you  
into OWL-Full, and most DL reasoners just ignore the restrictions that  
make the ontology OWL-Full.

But even if you could make that restriction, it wouldn't help you too  
much.  All you would be able to say is that there must be SOME  
superclass that is an instance of Family.  It wouldn't allow you to  
automatically infer which of your superclasses was of meta-type  
Family, since there isn't any notion of "direct superclass" in the OWL  
language.

So you really are effectively required to make all of the assertions  
explicitly.


>
> Thanks again,
> Anthony
>
> On 12-Nov-09, at 10:43 AM, [hidden email]  
> wrote:
>
>>
>> Message: 3
>> Date: Thu, 12 Nov 2009 09:58:34 -0800
>> From: Thomas Russ <[hidden email]>
>> To: User support for the Protege-OWL editor
>> <[hidden email]>
>> Subject: Re: [protege-owl] classes versus individuals
>> Message-ID: <[hidden email]>
>> Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes
>>
>>
>> On Nov 10, 2009, at 8:48 PM, Anthony McCallum wrote:
>>
>>> This is exactly the explanation I was looking for.  However, in my
>>> context, I cannot say, using your example, that an individual of
>>> Family "is an" individual of its associated Order.  I gather that
>>> this would eliminate the meta-class option.  Would I be correct in
>>> saying that each of Kingdom, Phylum, Class, etc.  would all be
>>> sibling classes?  And the only way in which the real-world taxonomy
>>> hierarchy is captured is through use of object properties?  As such,
>>> properties will relate individuals of these various classes,  
>>> correct?
>>
>> No.  I think the meta-class option remains valid.
>>
>> The way you get the real-world taxonomy hierarchy is through the
>> subclass-of relations between the classes that are the "individuals"
>> of your meta classes.
>>
>> OWL-DL doesn't have the expressive power to express such  
>> requirements,
>> so you will need to ensure them manually.
>>
>> So what you would end up with is the following sorts of structure:
>>
>>
>> Metaclasses:
>>    Order
>>    Family
>>    Genus
>>    Species
>>
>> These meta-classes are not hierarchically related to each other,  
>> since
>> they are not subclasses of each other.  You may wish to create an
>> AnnotationProperty to link them into the proper hierarchy, by being
>> able to assert, for example, that "Species subordinateTo Genus", etc.
>> and making this annotation property transitive.
>>
>> With the metaclasses, you then create individual classes that belong
>> to them and it is those individual classes that are related
>> hierarchically with subclassOf and provide the taxonomic
>> classification.  The metaclasses are used only to describe which
>> "level" of the taxonomic hierarchy a particular OWL class is in:
>>
>> Classes:
>>   Carnivora:   rdf:type Order,  rdfs:subclassOf Mammalia
>>   Canidae:     rdf:type Family, rdfs:subclassOf Carnivora
>>   Canis:       rdf:type Genus,  rdfs:subclassOf Canidae
>>
>> etc.
>
> _______________________________________________
> protege-owl mailing list
> [hidden email]
> https://mailman.stanford.edu/mailman/listinfo/protege-owl
>
> Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03

_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Thomas Russ

Re: classes versus individuals

Reply Threaded More More options
Print post
Permalink
In reply to this post by Anthony McCallum

On Nov 16, 2009, at 10:34 PM, Anthony McCallum wrote:

> I see what you mean.  So a meta class is basically just a regular  
> class which is allowed to have individuals that are also classes?

Yes.

>  Are there any disadvantages of using classes as individuals?

It makes your ontology OWL-Full.  This may not matter.  See Anton's  
reply.

> I'm still not convinced that I can use this method as in my case  
> Canis would not be a subclass of Canidae.

Why not?
Every individual Canis is also an individual of Canidae, isn't it?

>  Basically, I have three classes, Class, Family, and TF.  Where a  
> given TF is in a Class, and a given Class is in a Family.  However,  
> I cannot say that an instance of TF "is a" instance of Class.  I  
> suppose in that sense, what I am building is not quite as much a  
> taxonomy as it is a classification.  My apologies for any confusion.

OK, I didn't quite follow this, so I can't really comment.  Perhaps an  
example with real names would help.


>
> Thanks for all your help.
>
> Anthony
>
> On 12-Nov-09, at 10:43 AM, [hidden email]  
> wrote:
>
>>
>> Message: 3
>> Date: Thu, 12 Nov 2009 09:58:34 -0800
>> From: Thomas Russ <[hidden email]>
>> To: User support for the Protege-OWL editor
>> <[hidden email]>
>> Subject: Re: [protege-owl] classes versus individuals
>> Message-ID: <[hidden email]>
>> Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes
>>
>>
>> On Nov 10, 2009, at 8:48 PM, Anthony McCallum wrote:
>>
>>> This is exactly the explanation I was looking for.  However, in my
>>> context, I cannot say, using your example, that an individual of
>>> Family "is an" individual of its associated Order.  I gather that
>>> this would eliminate the meta-class option.  Would I be correct in
>>> saying that each of Kingdom, Phylum, Class, etc.  would all be
>>> sibling classes?  And the only way in which the real-world taxonomy
>>> hierarchy is captured is through use of object properties?  As such,
>>> properties will relate individuals of these various classes,  
>>> correct?
>>
>> No.  I think the meta-class option remains valid.
>>
>> The way you get the real-world taxonomy hierarchy is through the
>> subclass-of relations between the classes that are the "individuals"
>> of your meta classes.
>>
>> OWL-DL doesn't have the expressive power to express such  
>> requirements,
>> so you will need to ensure them manually.
>>
>> So what you would end up with is the following sorts of structure:
>>
>>
>> Metaclasses:
>>    Order
>>    Family
>>    Genus
>>    Species
>>
>> These meta-classes are not hierarchically related to each other,  
>> since
>> they are not subclasses of each other.  You may wish to create an
>> AnnotationProperty to link them into the proper hierarchy, by being
>> able to assert, for example, that "Species subordinateTo Genus", etc.
>> and making this annotation property transitive.
>>
>> With the metaclasses, you then create individual classes that belong
>> to them and it is those individual classes that are related
>> hierarchically with subclassOf and provide the taxonomic
>> classification.  The metaclasses are used only to describe which
>> "level" of the taxonomic hierarchy a particular OWL class is in:
>>
>> Classes:
>>   Carnivora:   rdf:type Order,  rdfs:subclassOf Mammalia
>>   Canidae:     rdf:type Family, rdfs:subclassOf Carnivora
>>   Canis:       rdf:type Genus,  rdfs:subclassOf Canidae
>>
>> etc.
>>
>
> _______________________________________________
> protege-owl mailing list
> [hidden email]
> https://mailman.stanford.edu/mailman/listinfo/protege-owl
>
> Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03

_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Anthony McCallum

Re: classes versus individuals

Reply Threaded More More options
Print post
Permalink
In reply to this post by Anthony McCallum
Some javascript/style in this post has been disabled (why?)
Are meta-classes supported by the latest OWL api?  It seems the easiest way for me to construct and populate this ontology would be programmatically.

Thanks,
Anthony

On 17-Nov-09, at 6:39 AM, [hidden email] wrote:

Message: 4
Date: Tue, 17 Nov 2009 09:39:23 -0500
From: "Pitonyak, Andrew D" <[hidden email]>
To: User support for the Protege-OWL editor
<[hidden email]>
Subject: Re: [protege-owl] classes versus individuals
Message-ID:
<[hidden email]>

Content-Type: text/plain; charset="us-ascii"

Although there is disagreement on this point, my reading of a meta-class (treating a class as an individual) makes your Ontology FULL.  That said, unless you have an application where this is a problem (or if it is a problem that a class may be an individual), then there is no reason to not do this.



From: [hidden email] [[hidden email]] On Behalf Of Anthony McCallum
Sent: Tuesday, November 17, 2009 1:34 AM
To: [hidden email]
Subject: Re: [protege-owl] classes versus individuals

I see what you mean.  So a meta class is basically just a regular class which is allowed to have individuals that are also classes?  Are there any disadvantages of using classes as individuals?
I'm still not convinced that I can use this method as in my case Canis would not be a subclass of Canidae.  Basically, I have three classes, Class, Family, and TF.  Where a given TF is in a Class, and a given Class is in a Family.  However, I cannot say that an instance of TF "is a" instance of Class.  I suppose in that sense, what I am building is not quite as much a taxonomy as it is a classification. My apologies for any confusion.

Thanks for all your help.

Anthony

On 12-Nov-09, at 10:43 AM, [hidden email]<[hidden email]> wrote:



Message: 3
Date: Thu, 12 Nov 2009 09:58:34 -0800
From: Thomas Russ <[hidden email]<[hidden email]>>
To: User support for the Protege-OWL editor
         <[hidden email]<[hidden email]>>
Subject: Re: [protege-owl] classes versus individuals
Message-ID: <[hidden email]<[hidden email]>>
Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes


On Nov 10, 2009, at 8:48 PM, Anthony McCallum wrote:


This is exactly the explanation I was looking for.  However, in my
context, I cannot say, using your example, that an individual of
Family "is an" individual of its associated Order.  I gather that
this would eliminate the meta-class option.  Would I be correct in
saying that each of Kingdom, Phylum, Class, etc.  would all be
sibling classes?  And the only way in which the real-world taxonomy
hierarchy is captured is through use of object properties?  As such,
properties will relate individuals of these various classes, correct?

No.  I think the meta-class option remains valid.

The way you get the real-world taxonomy hierarchy is through the
subclass-of relations between the classes that are the "individuals"
of your meta classes.

OWL-DL doesn't have the expressive power to express such requirements,
so you will need to ensure them manually.

So what you would end up with is the following sorts of structure:


Metaclasses:
  Order
  Family
  Genus
  Species

These meta-classes are not hierarchically related to each other, since
they are not subclasses of each other.  You may wish to create an
AnnotationProperty to link them into the proper hierarchy, by being
able to assert, for example, that "Species subordinateTo Genus", etc.
and making this annotation property transitive.

With the metaclasses, you then create individual classes that belong
to them and it is those individual classes that are related
hierarchically with subclassOf and provide the taxonomic
classification.  The metaclasses are used only to describe which
"level" of the taxonomic hierarchy a particular OWL class is in:

Classes:
 Carnivora:   rdf:type Order,  rdfs:subclassOf Mammalia
 Canidae:     rdf:type Family, rdfs:subclassOf Carnivora
 Canis:       rdf:type Genus,  rdfs:subclassOf Canidae

etc.



_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Anthony McCallum

Re: classes versus individuals

Reply Threaded More More options
Print post
Permalink
In reply to this post by Anthony McCallum
Some javascript/style in this post has been disabled (why?)
It turns out that this is a valid model the project I am working on.  One more question for now.  If I define properties such as a "hasName" in the superclass (i.e. the Species class), will those properties be automatically required in the child class (i.e. "wolf").  Thanks for everyone's help so far!

Thanks,
Anthony

On 17-Nov-09, at 12:09 PM, [hidden email] wrote:


Message: 3
Date: Tue, 17 Nov 2009 09:10:48 -0800
From: Thomas Russ <[hidden email]>
To: User support for the Protege-OWL editor
<[hidden email]>
Subject: Re: [protege-owl] classes versus individuals
Message-ID: <[hidden email]>
Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes


On Nov 16, 2009, at 10:34 PM, Anthony McCallum wrote:

I see what you mean.  So a meta class is basically just a regular  
class which is allowed to have individuals that are also classes?

Yes.

Are there any disadvantages of using classes as individuals?

It makes your ontology OWL-Full.  This may not matter.  See Anton's  
reply.

I'm still not convinced that I can use this method as in my case  
Canis would not be a subclass of Canidae.

Why not?
Every individual Canis is also an individual of Canidae, isn't it?

Basically, I have three classes, Class, Family, and TF.  Where a  
given TF is in a Class, and a given Class is in a Family.  However,  
I cannot say that an instance of TF "is a" instance of Class.  I  
suppose in that sense, what I am building is not quite as much a  
taxonomy as it is a classification.  My apologies for any confusion.

OK, I didn't quite follow this, so I can't really comment.  Perhaps an  
example with real names would help.



_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Thomas Russ

Re: classes versus individuals

Reply Threaded More More options
Print post
Permalink
In reply to this post by Anthony McCallum

On Nov 17, 2009, at 6:35 PM, Anthony McCallum wrote:

> Are meta-classes supported by the latest OWL api?  It seems the  
> easiest way for me to construct and populate this ontology would be  
> programmatic

Yes.

_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03
Anthony McCallum

Re: classes versus individuals

Reply Threaded More More options
Print post
Permalink
In reply to this post by Anthony McCallum
OK, I think I understand what you mean.  After I experiment a bit more  
I should have a better feel for how meta classes work, and will ask  
further questions at that point.  Thanks!

On 18-Nov-09, at 10:30 AM, [hidden email] wrote:

>
>
> On Nov 17, 2009, at 6:42 PM, Anthony McCallum wrote:
>
>> One more question for now.  If I define properties such as a
>> "hasName" in the superclass (i.e. the Species class), will those
>> properties be automatically required in the child class (i.e.  
>> "wolf").
>
> Assuming I understand the question properly, the answer is yes.
>
> But I'm not completely clear on which classes and which relationships
> we are talking about.  Generally you wouldn't really define properties
> (which I interpret to mean:  add property restrictions) on the meta-
> class because they would then apply to the class, and you generally
> won't have properties (other than of type AnnotationProperty) on a
> Class.
>
> What you would get is that any restrictions you place on a Class will
> apply to any sub-classes.  But restrictions only restrict the types or
> cardinality of properties on individuals of those respective classes.
>
> So I guess a definitive answer would require a more specific example
> of what you want to accomplish.

_______________________________________________
protege-owl mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-owl

Instructions for unsubscribing: http://protege.stanford.edu/doc/faq.html#01a.03