- From: Bene Rodriguez-Castro <beroca@gmail.com>
- Date: Thu, 29 Apr 2010 20:02:10 +0100
- To: "[ontolog-forum]" <ontolog-forum@ontolog.cim3.net>, public-owl-dev <public-owl-dev@w3.org>
- Cc: doug@foxvog.org, rector@cs.man.ac.uk
- Message-ID: <i2jea8cd28f1004291202s57fd1991ufff31ac94faa0460@mail.gmail.com>
Hi Doug, I found very useful reference [3] from your first reply ( Instances of Instances Modeled via Higher-Order Classes<http://www.foxvog.org/doug/higher-order2.pdf>). I realized I tend to tangle the concept of instance/individual and class/meta-class but the definitions in the paper together with the ontology of levels of meta-classes definitely help to clarify these concepts. (Reference [4] in the same email does not seem to be publicly available yet). Some comments in-line below and some requests for clarification if possible. Thanks, Bene On Sun, Apr 25, 2010 at 6:08 AM, doug foxvog <doug@foxvog.org> wrote: > Benedicto Rodriguez <br205r@ecs.soton.ac.uk> <br205r@ecs.soton.ac.uk>wrote: > > > :Independent_Entity (aka :Self_Standing_Entity) > > > |-- :Grape > > |-- :WineGrape > > |-- :MerlotGrape > > |-- :ChardonnayGrape > ? |-- (etc...) > > > |-- :Wine > > |-- :MerlotWine > > |-- :ChardonnayWine > > |-- (etc... meaning rest of "wines by grape") > > > |-- :RedWine > > |-- :RoseWine > > > |-- (etc... meaning rest of "wines by color" > > although in this case, only :WhiteWine is left) > > > |-- :SpecificMerlotWineClass > > |-- :SpecificRedWineClass > > > |-- :SpecificMerlotAndRedWineClass > > |-- :SpecificChardonnayWineClass > > |-- :SpecificWhiteWineClass > > |-- :SpecificChardonnayAndWhiteWineClass > > |-- (etc... meaning rest of "specific" wine classes that > > we would need to represent and automatically classify > > by the reasoner based on their "grape" and "color") > > > :Dependent_Entity (aka :Refining_Entity) > > |-- :Value_Partition > > > |-- :WineColor > > |-- :Red > > |-- :Rose > > |-- :White > > I question this. Is WineColor a subclass of Value_Partition, an > instance of Value_Partition, or something else? Also, are :Red, > > :Rose, and :White subclasses of :WineColor, instances of :WineColor, > or do they have some other relationship with :WineColorPartition? > > In this example :Red, :Rose and :White are subclasses of :WineColor. This is modelled following Pattern 2 (variant 2) in the cited W3C note: http://www.w3.org/TR/swbp-specified-values/. The relationship between :Value_Partition and :WineColor is an interesting point. It seems to me now, after the comments in this thread, that the representation of :Value_Partition as a class is controversial for the same reasons that classes such as :WineByGrape, :WineByColor and in general XbyY are. They seem to provide "meta-knowledge". Knowledge about other classes in the ontology and that cannot be represented as a "class" using OWL DL set-based semantics. And although the Normalization mechanism suggests to include the notion of value partition (or refiner) as a class in the inheritance structure of the ontology, I realized Alan Rector already referred to this controversy in the cited paper. (Section "Issues and Problems" in "Modularisation of domain ontologies Implemented indescription logics and related formalisms including OWL"). > Normally, a partition is an instance that identifies a base class > and a set of mutually disjoint subclasses which span the base class. > > This is a binary relationship between a class and a set of classes. > > OWL-DL disallows the first argument of a relation from being a class. > It also does not allow sets of classes to be defined. So, defining > the partition as a relation in OWL-DL is not possible. > > I agree with this but then I guess I am misinterpreting something regarding the OWL DL semantics or the elements that participate in the binary relationship of the partition. Going back to the W3C note: http://www.w3.org/TR/swbp-specified-values/. It defines two patterns to represent a partition that can be expressed in OWL DL. I would interpret the partition in Pattern 1 as a binary relationship between a class :Health_Value and a set of mutually disjoint *individuals* that cover the class {:poor_health, :medium_health, good_health}. I would interpret the partition in Pattern 2 (both variant 1 and 2) as a binary relationship between a class :Health_Value and a set of mutually disjoint *subclasses* that cover the parent class {:Good_health_value, :Medium_health_value, :Poor_health_value}. The definition of partition that you give (which *cannot* be expressed in OWL-DL) "seems to align" to the definition in Pattern 2 (which *can* be expressed in OWL DL). That's why I think I must be misunderstanding something. Defining the > partition as a class means that there are a number of instances of > the partition, which seems to violate the meaning of partition, > instantiation, or both. The partition could be defined as an > instance, but relating the instance to a rule defining the meaning of > the partition is problematic. > > > Some notes/clarifications about this model: > > > * For space and simplicity, some important aspects of the Normalisation > > mechanism have not been fully specified, such as the fact that the > > > subclasses of :Wine associated to a classification criterion are "defined > > classes" (:MerlotWine, ..., WhiteWine) and the specific wine subclasses > > to be automatically classified by the reasoner are "primitive classes" > > > (:SpecificXxxWineClass). For example, [1] and [2] show the definitions > > of :MerlotWine and :SpecificMerlotWineClass respectively. > > This apparently is intended allow for a future definition of a WhiteMerlotWine. > > > These definitions would cause the reasoner to infer that > > :SpecificMerlotWineClass is a subclass of :MerlotWine. (Perhaps this link > > might help illustrate what I'm trying to refer to: > > http://www.gong.manchester.ac.uk/odp/html/Normalisation.html). > > This reference does not duplicate classes with differently named subclasses > with the same apparent meaning. > > I'm afraid I'm not sure which classes from the :Wine example fit into that description. > > * The "wine by color" classification criteria is represented using the > > "Specified Values" value partition pattern. > > And again, looking at the inheritance structure of the :Wine hierarchy now > > *normalised*, it presents the *same* issue mentioned at the beginning of > > my original email! > > This is because the partitions were defined as subclasses of the classes > which they were intended to partition. The partitions are objects which > can not be represented in OWL-DL. > > > Which was that we could argue that the inheritance structure is not > > satisfactory because "different concepts are represented by classes at > > the same level". Sorry for repeating myself, but the structure seems to > > be "asking" for some classes to separate these different concept groups. > > The classes it is asking for are classes of classes ("meta-classes"). But > since such can not be defined in OWL-DL, you have a problem. > > Yes, I can see this now. > > The already mentioned :WineByColor, :WineByGrape and now maybe even a > > :SpecificWine or :NamedWine or for consistency :WineByName classes. > These are classes of classes, not subclasses of Wine; therefore, > the below structure does not work. > > Agreed. > > The hypothetical inheritance structure would be: > > > |-- :Wine > > |-- :WineByGrape > > |-- :MerlotWine > > |-- :ChardonnayWine > > |-- (etc...) > > ... > > > And so, this is my dilemma. The ontology is normalised and still > > seems to "need" this :WineByClassificationCriterion classes. > > You are using a tool that is unable to express such meta-classes. > > Yes. > > Based on the replies gathered so far, the consensus seems to be > > that using a class is not the best approach to represent a > > "classification criterion" in OWL DL. > > Correct. > > > Allow me to recap. The suggestion instead, is to use a restriction > > on a property to define the classes that form the "classification > > criterion". > > Not quite. Classes defined by a given *pattern* of rule are all > classes of one meta-type. Classes defined by a different pattern > are of a different meta-type. OWL-DL allows one to define > multiple rules of the same pattern, but it does not allow the > definition of the rule *patterns*. > > I'm afraid I'm not sure what the generic terms "pattern", "rule", "meta-type" refer to in this case or how to interpret the statements in the paragraph in terms of OWL. It would be very helpful if you could you point out a specific example to help illustrate what it is being referred to by "meta-type", "pattern of rule", "multiple rules of the same pattern", "the definition of the rule patterns"... > > > For example, :MerlotWine is the restriction of the property > > :madeFromGrape to :MerlotGrape (see [1]), > > Not the restriction itself, but the class defined by the restriction. > > > :RedWine is the restriction of the property :hasColor to :Red, > Again, :RedWine is the class *defined* by the restriction. > > > and so on. However, as part of the Normalisation mechanism, all > > these properties and restrictions are already asserted in the > > ontology model! > Sure. > > > This leaves me thinking that the "vision" of separating the > > post-normalisation flat hierarchy of subclasses of :Wine (or > > :Person or in general any other normalised :DomainConcept) into > > homogeneous subgroups is *not really necessary or possible* after > > all, given the semantics of OWL DL. > > It is not possible using the semantics of OWL-DL. > > The classes from the different meta-classes are not necessarily > disjoint, so making a flat hierarchy instead of a directed > acyclic graph is not possible. > > It is possible to define the meta-classes in more powerful languages, > howerver. > > -- doug > > > Not sure if everyone would agree with that as the final conclusion > > but if that was the case, it would feel somehow kind of hard to accept. > > ... > > Any comments or feedback are indeed very welcome. > > Regards, > > Bene Rodriguez-Castro > > > The following two definitions are identical. I'm guessing that > you intended to make the second one a rdfs:subClassOf :RedWine ; > -- doug > > I don't think they are *identical* thou. These are the intended definitions. There is one difference: The class :MerlotWine is *equivalent* to the class defined by the someValue restriction on the the property :madeFromGrape. The class :SpecificMerlotWineClass is a *subclass* of the class defined by the same restriction of the same property. This representation allows a reasoner to infer that :SpecificMerlotWineClass is a subclass of :MerlotWine. This sort of "pattern" is one of the keys in the Normalization mechanism in order to enable a reasoner to infer all multiple inheritance relations among the classes involved in an ontology model. > > ---- > > [1] Definition of :MerlotWine. > > :MerlotWine rdf:type owl:Class ; > rdfs:subClassOf :Wine ; > owl:equivalentClass [ rdf:type owl:Restriction ; > owl:onProperty :madeFromGrape ; > owl:someValuesFrom :MerlotGrape ] . > > [2] Defintion of :SpecificMerlotWineClass. > > :SpecificMerlotWineClass rdf:type owl:Class ; > > rdfs:subClassOf :Wine , > [ rdf:type owl:Restriction ; > owl:onProperty :madeFromGrape ; > owl:someValuesFrom :MerlotGrape ] . > >
Received on Thursday, 29 April 2010 19:02:47 UTC