|
|
|
Anthony McCallum
|
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
|
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
|
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
|
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 _______________________________________________ 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
|
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 _______________________________________________ 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
|
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 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 _______________________________________________ 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
|
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
|
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:
_______________________________________________ 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
|
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:
_______________________________________________ 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
|
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 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:
This is exactly the explanation I was looking for. However,
in my
_______________________________________________ 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
|
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
|
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
|
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 _______________________________________________ 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
|
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:
_______________________________________________ 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
|
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
|
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 |
||||||||||||||||
| Free Embeddable Forum Powered by Nabble | Help |