Converting a class into an individual or an individual into a class

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Converting a class into an individual or an individual into a class

Jos Lehmann-2

Hi there

 

A general question: are there (implemented) operations of conversions in OWL-DL of:

 

1.       An individual into a class

2.       A class into an individual

 

If so, what are they called? Could you direct me to relevant references in the literature describing these operations?

 

My hunch at the moment is that in Protégé 1. and 2. above would be refactoring operations, although in the Refactoring Menu I can’t see any obvious options that would suggest 1. or 2..

 

More generally I would think that the following terminology may have been used for such operations:

 

a.       Abstraction       or  Conceptualization

                    Vs.                            Vs.

b.      Concretization  or  Reification

 

 

( Note that reification would normally be applied to relations/properties rather than classes. Then again, if a class can be considered as a 1-ary relation (can it?), one could reify a class as well )

                      

Thanks, Jos


_______________________________________________
protege-dev mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-dev
Reply | Threaded
Open this post in threaded view
|

Re: Converting a class into an individual or an individual into a class

Lorenz Buehmann
As long as there are only declaration of individuals and classes it's
more or less simply removing the old triple and add the new one.


But, once those entities are used in other OWL axioms, it's not that
simple and depends on the ontology. For example

1. How to convert subClassOf relationships between classes when
converting to individuals?
2. How to handle relationships between individuals when converting to
classes?

And this are just the most basic axioms.

I don't see any automatic approach.

Hi there

 

A general question: are there (implemented) operations of conversions in OWL-DL of:

 

1.       An individual into a class

2.       A class into an individual

 

If so, what are they called? Could you direct me to relevant references in the literature describing these operations?

 

My hunch at the moment is that in Protégé 1. and 2. above would be refactoring operations, although in the Refactoring Menu I can’t see any obvious options that would suggest 1. or 2..

 

More generally I would think that the following terminology may have been used for such operations:

 

a.       Abstraction       or  Conceptualization

                    Vs.                            Vs.

b.      Concretization  or  Reification

 

 

( Note that reification would normally be applied to relations/properties rather than classes. Then again, if a class can be considered as a 1-ary relation (can it?), one could reify a class as well )

                      

Thanks, Jos



_______________________________________________
protege-dev mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-dev
-- 
Lorenz Bühmann
AKSW group, University of Leipzig
Group: http://aksw.org - semantic web research center

_______________________________________________
protege-dev mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-dev
Reply | Threaded
Open this post in threaded view
|

Re: Converting a class into an individual or an individual into a class

Simon Spero-2
It's either more or less complicated than that, and I'm not sure which :) Here's a discussion of some of the issues, plus a look at SKOS, which in the abstract is an example of what the OP talking about. 

[Note: for this message , I'm going to assume we're only talking about named classes. If there are anonymous class expressions, expand conjunctions, turn unions into subclasses of a new named class (weaker), apply "Name All The Things!", and turn everything complicated into an rdfs:comment (lazy mode) ] 

A "Class" automatically becomes an "Individual" if you use "it" in some context where an individual is expected - for example, if you make some data property or class assertion about "it". 

That's a lot of "scare quotes". The reason is that technically the previous paragraph is a lie. Treating a Class as an Individual uses an OWL 2 DL feature called punning. In DL's eyes, there are now two different entities that happen to have the same name(IRI). One of them is a class; the other is a named individual. 

Inferences made by a reasoner about the individual don't affect reasoning about the class. This is necessary in order to preserve the termination and complexity guarantees made by OWL.  Punning can still be used as the basis for meta-ontology programming, but it requires custom code. 

Also, Protégé is very strict about separating views of the individual and the class. This can cause confusion, especially to users who are used to ontology languages where this separation is not made. 


The most important relationships to map are the ones mentioned; the #$genls /subClassOf  property, and the #$isa/rdf:type property.  The subclass relationship should in general  be transitive, and there should usually be a role chain axiom stating that instances of subclasses are also instances of superclasses. 

Instance object properties will need new domains and ranges; this is done by using anonymous classes using restrictions on isa. 

An example of an ontology that is both an example of using individuals to model a subsumption hierarchy, and of some of the issues caused by punning is SKOS. 

SKOS, in its original conception, was an ontology for modeling the domain of controlled vocabularies for Knowledge Organization. In this domain, the rough equivalent of an OWL Class is a SKOS Concept. 

A Class can be thought of as something  that names or specifies a set of things that are instances of that class(the extension); for example, the extension of the class Butterflies is the set of all Butterflies. 

A Concept, is a "unit of thought"; the extension of the concept Butterflies is not the set of all butterflies; it is instead the set of all Documents that are about Butterflies. Let's abbreviate by saying that a concept is about something. 

In Knowledge Organization Systems, Concepts are organized hierarchies via "The Hierarchical Relation", more commonly referred to as "BT"  (broader term), or simply "broader" (in the 2004 version of skos, this relationship was named "broader- In the 2009 recommendation, the name was changed to "broaderTransitive". Let's call it BT :). 

BT is similar to subClassOf.  

Similarly, instead of rdf:type, documents are related to Concepts with the "subject" property. 

If a BT b, everything that is about a is also about b. 
If a BT b and b BT c, a BT c. 

In the standards for KOS, there are specializations of BT, that indicate more specifically the reasons why one concept is a broader term of another.
 It could be that one concept is about things that are a subclass of what the other concept is about. (BTG) 
 It could also be because one concept is about things that are necessarily part of what the other concept is about. (BTP) 

This is correct for concepts, but not for classes. 

SKOS illustrates some punning problems with the way that many, but not all,  of the key properties in the vocabulary were made annotation properties instead of data properties. These properties are often applied to owl classes, which is a different kind of punning :) 

The annotation properties like skos:prefLabel are invisible to reasoners, despite being part of the domain of KOS. 
The data properties, like skos-xl:prefLabel, when applied to a "class" are in fact being applied to an individual with the same name, and do not show up in the same places. 

HTH 
Simon

On Mar 6, 2017 6:32 AM, "Lorenz B." <[hidden email]> wrote:
As long as there are only declaration of individuals and classes it's
more or less simply removing the old triple and add the new one.


But, once those entities are used in other OWL axioms, it's not that
simple and depends on the ontology. For example

1. How to convert subClassOf relationships between classes when
converting to individuals?
2. How to handle relationships between individuals when converting to
classes?

And this are just the most basic axioms.

I don't see any automatic approach.

Hi there

 

A general question: are there (implemented) operations of conversions in OWL-DL of:

 

1.       An individual into a class

2.       A class into an individual

 

If so, what are they called? Could you direct me to relevant references in the literature describing these operations?

 

My hunch at the moment is that in Protégé 1. and 2. above would be refactoring operations, although in the Refactoring Menu I can’t see any obvious options that would suggest 1. or 2..

 

More generally I would think that the following terminology may have been used for such operations:

 

a.       Abstraction       or  Conceptualization

                    Vs.                            Vs.

b.      Concretization  or  Reification

 

 

( Note that reification would normally be applied to relations/properties rather than classes. Then again, if a class can be considered as a 1-ary relation (can it?), one could reify a class as well )

                      

Thanks, Jos



_______________________________________________
protege-dev mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-dev
-- 
Lorenz Bühmann
AKSW group, University of Leipzig
Group: http://aksw.org - semantic web research center

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



_______________________________________________
protege-dev mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-dev
Reply | Threaded
Open this post in threaded view
|

Re: Converting a class into an individual or an individual into a class

Jos Lehmann-2

Hi Simon

 

Thank you for your reply: useful esp. to get a sense of the general motivation behind a class/individual conversion (going back and forth subClassOf an BT hierarchies).

 

I am now looking into meta-modeling as in the reference below, to try out methodic approaches to the conversion.

 

http://www.cs.ox.ac.uk/files/3129/paper.pdf

 

Jos

 

 

Von: protege-dev [mailto:[hidden email]] Im Auftrag von Simon Spero
Gesendet: Montag, 6. März 2017 19:34
An: Developer support for WebProtege and Protege Desktop
Cc: [hidden email]
Betreff: Re: [protege-dev] Converting a class into an individual or an individual into a class

 

It's either more or less complicated than that, and I'm not sure which :) Here's a discussion of some of the issues, plus a look at SKOS, which in the abstract is an example of what the OP talking about. 

 

[Note: for this message , I'm going to assume we're only talking about named classes. If there are anonymous class expressions, expand conjunctions, turn unions into subclasses of a new named class (weaker), apply "Name All The Things!", and turn everything complicated into an rdfs:comment (lazy mode) ] 

 

A "Class" automatically becomes an "Individual" if you use "it" in some context where an individual is expected - for example, if you make some data property or class assertion about "it". 

 

That's a lot of "scare quotes". The reason is that technically the previous paragraph is a lie. Treating a Class as an Individual uses an OWL 2 DL feature called punning. In DL's eyes, there are now two different entities that happen to have the same name(IRI). One of them is a class; the other is a named individual. 

 

Inferences made by a reasoner about the individual don't affect reasoning about the class. This is necessary in order to preserve the termination and complexity guarantees made by OWL.  Punning can still be used as the basis for meta-ontology programming, but it requires custom code. 

 

Also, Protégé is very strict about separating views of the individual and the class. This can cause confusion, especially to users who are used to ontology languages where this separation is not made. 

 

 

The most important relationships to map are the ones mentioned; the #$genls /subClassOf  property, and the #$isa/rdf:type property.  The subclass relationship should in general  be transitive, and there should usually be a role chain axiom stating that instances of subclasses are also instances of superclasses. 

 

Instance object properties will need new domains and ranges; this is done by using anonymous classes using restrictions on isa. 

 

An example of an ontology that is both an example of using individuals to model a subsumption hierarchy, and of some of the issues caused by punning is SKOS. 

 

SKOS, in its original conception, was an ontology for modeling the domain of controlled vocabularies for Knowledge Organization. In this domain, the rough equivalent of an OWL Class is a SKOS Concept. 

 

A Class can be thought of as something  that names or specifies a set of things that are instances of that class(the extension); for example, the extension of the class Butterflies is the set of all Butterflies. 

 

A Concept, is a "unit of thought"; the extension of the concept Butterflies is not the set of all butterflies; it is instead the set of all Documents that are about Butterflies. Let's abbreviate by saying that a concept is about something. 

 

In Knowledge Organization Systems, Concepts are organized hierarchies via "The Hierarchical Relation", more commonly referred to as "BT"  (broader term), or simply "broader" (in the 2004 version of skos, this relationship was named "broader- In the 2009 recommendation, the name was changed to "broaderTransitive". Let's call it BT :). 

 

BT is similar to subClassOf.  

 

Similarly, instead of rdf:type, documents are related to Concepts with the "subject" property. 

 

If a BT b, everything that is about a is also about b. 

If a BT b and b BT c, a BT c. 

 

In the standards for KOS, there are specializations of BT, that indicate more specifically the reasons why one concept is a broader term of another.

 It could be that one concept is about things that are a subclass of what the other concept is about. (BTG) 

 It could also be because one concept is about things that are necessarily part of what the other concept is about. (BTP) 

 

This is correct for concepts, but not for classes. 

 

SKOS illustrates some punning problems with the way that many, but not all,  of the key properties in the vocabulary were made annotation properties instead of data properties. These properties are often applied to owl classes, which is a different kind of punning :) 

 

The annotation properties like skos:prefLabel are invisible to reasoners, despite being part of the domain of KOS. 

The data properties, like skos-xl:prefLabel, when applied to a "class" are in fact being applied to an individual with the same name, and do not show up in the same places. 

 

HTH 

Simon

 

On Mar 6, 2017 6:32 AM, "Lorenz B." <[hidden email]> wrote:

As long as there are only declaration of individuals and classes it's
more or less simply removing the old triple and add the new one.
 
 
But, once those entities are used in other OWL axioms, it's not that
simple and depends on the ontology. For example
 
1. How to convert subClassOf relationships between classes when
converting to individuals?
2. How to handle relationships between individuals when converting to
classes?
 
And this are just the most basic axioms.
 
I don't see any automatic approach.



Hi there

 

A general question: are there (implemented) operations of conversions in OWL-DL of:

 

1.       An individual into a class

2.       A class into an individual

 

If so, what are they called? Could you direct me to relevant references in the literature describing these operations?

 

My hunch at the moment is that in Protégé 1. and 2. above would be refactoring operations, although in the Refactoring Menu I can’t see any obvious options that would suggest 1. or 2..

 

More generally I would think that the following terminology may have been used for such operations:

 

a.       Abstraction       or  Conceptualization

                    Vs.                            Vs.

b.      Concretization  or  Reification

 

 

( Note that reification would normally be applied to relations/properties rather than classes. Then again, if a class can be considered as a 1-ary relation (can it?), one could reify a class as well )

                      

Thanks, Jos

 

_______________________________________________
protege-dev mailing list
[hidden email]
https://mailman.stanford.edu/mailman/listinfo/protege-dev
-- 
Lorenz Bühmann
AKSW group, University of Leipzig
Group: http://aksw.org - semantic web research center


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

 


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