--
--- You received this message because you are subscribed to the Google Groups "fma-owl-2009" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fma-owl-2009+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Hi Todd,I don't speak Frames, and don't understand this syntax:
[ex:pentatholon_events_completed owl:minCardinality 0]
[ex:pentatholon_events_completed owl:maxCardinality 5]
<owl:Restriction> <owl:onProperty rdf:resource="...#pentathlon_events_completed" /> <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">5</owl:maxCardinality> </owl:Restriction>
Stating mincardinality of 0 is equivalent to saying nothing.
If you want to say that nothing has completed more than 5 pentanthlon events, then say:
Thing SubClassOf pentathlon_events_completed max 5
But presumably this property already has a domain, so it's cleaner to assert this from the domain class. E.g.
Person SubClassOf pentathlon_events_completed max 5
Your object property is a little suspect and suggests a mismatch. Why not have a class Pentathlon and say
Person SubClassOf events_completed max 5 PentathlonEvent
What exactly is the problem here?
On Tue, Jan 28, 2014 at 11:17 AM, Todd Detwiler <detw...@gmail.com> wrote:
Hey folks, just looking for a bit of OWL expertise. In frames, there is the notion of the cardinality of a slot, irrespective of where it is used.
In OWL, some characteristics of a property are specified for the property in general (i.e. domain, range, data type, symmetric, transitive, ...). But some of these characteristics can be refined to be more specific at a particular class level, by subclassing restrictions. Similarly, in frames there are characterstics of a slot in general and refinements at a class level. In frames, cardinality min and max can be expressed in general. So, for example, if I had a slot called pentatholon_events_completed, it might make sense to set the min cardinality to 0 and the max to 5. However, in OWL I only know how to assert cardinality at the class level, by subclassing restrictions such as:
[ex:pentatholon_events_completed owl:minCardinality 0]
[ex:pentatholon_events_completed owl:maxCardinality 5]
If this were a reusable property, I'd have to recreate the above restrictions every time I used them (or name them and make them a named part of the ontology). Am I missing something. Is there a property cardinality axiom, in the same way you'd declare that a property is symmetric, or declare its domain?
Thanks,
Todd
--
--- You received this message because you are subscribed to the Google Groups "fma-owl-2009" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fma-owl-2009...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
--
---
You received this message because you are subscribed to the Google Groups "fma-owl-2009" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fma-owl-2009...@googlegroups.com.
On 1/29/14, 8:26 AM, Chris Mungall wrote:
Hi Todd,I don't speak Frames, and don't understand this syntax:
[ex:pentatholon_events_completed owl:minCardinality 0]
[ex:pentatholon_events_completed owl:maxCardinality 5]
They were intended to be shorthand for class expressions, the latter shorthand for:
<owl:Restriction> <owl:onProperty rdf:resource="...#pentathlon_events_completed" /> <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">5</owl:maxCardinality> </owl:Restriction>It may be trivially true, but that does not make it invalid.
Stating mincardinality of 0 is equivalent to saying nothing.
Consider it there for completeness. My fictitious "Olympics" property was pentathlon_events_competed, which I chose because the name suggests a property with specific cardinality (in this case between 0 and 5).
If you want to say that nothing has completed more than 5 pentanthlon events, then say:
Thing SubClassOf pentathlon_events_completed max 5
But presumably this property already has a domain, so it's cleaner to assert this from the domain class. E.g.Person SubClassOf pentathlon_events_completed max 5
The latter is what I am trying to avoid. Suppose that this were a more reusable property with a bunch of places where it is used. I would need to recreate the Restriction at each.
The former would work, but I was wondering if there was something that could just be asserted about the property. Take for analogy the range of a property. At the level of a property, independent of where it is used, I can assert a domain:
fma:regional_part rdfs:domain fma:Anatomical_entity
but I can refine this at the level of a particular class
fma:Organ rdfs:subClassOf (fma:regional_part all fma:Organ_part)
Now, perhaps I could have used a class in the first expression (much as you used owl:Thing in the pentathlon example):
owl:Thing rdfs:subClassOf (fma:regional_part all fma:Anatomical_entity)
but there was a way of asserting it as a characteristic of a property independent of class involved.
So, the nature of my question was whether or not such a construct exists for min and max cardinality. Extrapolating upon an email exchange that I had with Christine Golbreich, I'm wondering if the following is valid, and if it says what I want. Can you confirm that the following says the same thing as owl:Thing rdfs:subClassOf (fma:cell_shape owl:maxCardinality '3')?:
<owl:ObjectProperty rdf:about="http://si.uw.edu/ont/fma.owl#cell_shape">
<rdfs:domain>
<owl:Restriction>
<owl:onProperty rdf:resource="http://si.uw.edu/ont/fma.owl#cell_shape"/>
<owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">3</owl:maxCardinality>
</owl:Restriction>
</rdfs:domain>
</owl:ObjectProperty>
I am not choosing the classes and properties involved exactly, see below.Your object property is a little suspect and suggests a mismatch. Why not have a class Pentathlon and say
Person SubClassOf events_completed max 5 PentathlonEvent
This isn't a single problem, meaning that this isn't about a single property or class. Rather I am trying to come up with a general pattern by which knowledge in frames is converted into OWL. You mentioned that you don't speak frames, but, in a nutshell, the characteristics (facets) of a property (slot) are present in two different places. Those that are part of the slot independent of where it is used, and more specific facets at the level of a specific class. I am trying to sort out how to convert some of the former, specifically min and max cardinality.
What exactly is the problem here?
Thanks again for taking time to read through and offer feedback.
If you want to say that nothing has completed more than 5 pentanthlon events, then say:
Thing SubClassOf pentathlon_events_completed max 5
But presumably this property already has a domain, so it's cleaner to assert this from the domain class. E.g.Person SubClassOf pentathlon_events_completed max 5
The latter is what I am trying to avoid. Suppose that this were a more reusable property with a bunch of places where it is used. I would need to recreate the Restriction at each.No you wouldn't. Using "Person" in the LHS is optional. You can use Thing, or any common subsumer of all the places where it is used.
The former would work, but I was wondering if there was something that could just be asserted about the property. Take for analogy the range of a property. At the level of a property, independent of where it is used, I can assert a domain:
fma:regional_part rdfs:domain fma:Anatomical_entityI don't think this is a good idea. Why not use a generic parthood relation and constrain at a higher level?You can always have GCIs like: the only things that are part of fma anatomical entities are fma anatomical entitiesThis violates your desire to have everything "asserted about the property", but I think you're thinking too Frame-y
but I can refine this at the level of a particular class
fma:Organ rdfs:subClassOf (fma:regional_part all fma:Organ_part)
?
Now, perhaps I could have used a class in the first expression (much as you used owl:Thing in the pentathlon example):
owl:Thing rdfs:subClassOf (fma:regional_part all fma:Anatomical_entity)This is wrong I'm afraid
I think you mean "has regional part" here
Now, perhaps I could have used a class in the first expression (much as you used owl:Thing in the pentathlon example):
owl:Thing rdfs:subClassOf (fma:regional_part all fma:Anatomical_entity)
This is wrong I'm afraid
Assuming all = allValuesFrom, this isn't correct, as given
Jupiter part_of Solar-system
You entail
Solar-system instance-of Anatomical_entity
On 1/29/14, 2:13 PM, Chris Mungall wrote:Yes, in the FMA it is just "regional part" which is the inverse of "regional part of".
I think you mean "has regional part" here
Yes I mean allValuesFrom (using Manchester syntax). I'm not defining regional part, I'm just using the definition that it currently has which states that its range is Anatomical entity (that isn't quite true, and it is not that simple, there are actually several classes in its range). Therefore, this is not the generic regional part that would pertain to solar system, but one that is specific to anatomy. Again, I'm not modeling it, just converting the model. So, for the sake of discussion let's call it antomical_regional_part. Then it would follow if you stated Jupiter anatomical_regional_part Solar_system that Solar-system instance-of Anatomical_entity. The conclusion is incorrect, but because the premise is incorrect.
Now, perhaps I could have used a class in the first expression (much as you used owl:Thing in the pentathlon example):
owl:Thing rdfs:subClassOf (fma:regional_part all fma:Anatomical_entity)
This is wrong I'm afraid
Assuming all = allValuesFrom, this isn't correct, as given
Jupiter part_of Solar-system
You entail
Solar-system instance-of Anatomical_entity
In any case, I understand what you were saying.