Could we use owl:sameAs in an OWL restriction?

邮差的信 提交于 2019-12-12 20:43:04

问题


For example, I have three classes: Flock, Bird, Velocity. I also have two properties: hasMember (the domain is Flock, range is Bird), and hasAttribute (the domain is Bird, and the range is Velocity). Now I want to add a EquivalentClass restriction to Flock class as the definition. Let consider a very simple definition: in a flock, all birds have the same velocity. How to express this in OWL?


回答1:


Warning: this answer is in fact incorrect, please look at the comments to see why.

To the question "Could we use owl:sameAs in an OWL restriction?" the answer is no, not in an OWL (2) ontology. However, you can do whatever you like in an OWL Full ontology (i.e., an RDF graph interpreted according to the OWL RDF-based semantics). Yet, this is irrelevant to the details of your question where you want to say something about the velocity of the birds in a flock.

There is a solution to your problem within the limits of OWL 2 DL. Introduce a property flockVelocity and make the property chain hasMember o hasAttribute a subproperty of flockVelocity. Make flockVelocity a functional property and you're done. Alternatively, you could define a cardinality restriction on flockVelocity. In Turtle:

:hasMember a owl:ObjectProperty;
    rdfs:domain :Flock;
    rdfs:range :Bird .
 :hasAttribute a owl:ObjectProperty; # why not :hasVelocity?
    rdfs:domain :Bird;
    rdfs:range :Velocity .
 :flockVelocity a owl:ObjectProperty, owl:FunctionalProperty;
    owl:propertyChainAxiom (:hasMember :hasAttribute) .

Done. If you don't care about being in OWL DL and allow yourself total OWL Full freedom, you could use a blank node instead of :flockVelocity such that you don't have to introduce an artificial property name.



来源:https://stackoverflow.com/questions/43839793/could-we-use-owlsameas-in-an-owl-restriction

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!