我有一个skos:Concept
的层次结构,并且想要定义一个owl:Class
,其中包括那些通过特定概念与特定概念或其狭义术语之一相关联的个人属性。
我设法创建了一个owl:Restriction
,它适用于一个特定的概念,但不适用于概念的层次结构:
# Concept hierarchy
concepts:Dance a skos:Concept .
concepts:FolkDance a skos:Concept ;
skos:broaderTransitive concepts:Dance .
concepts:SquareDance a skos:Concept ;
skos:broaderTransitive concepts:FolkDance .
# owl axioms
ex:Dance rdfs:subClassOf ex:Movement ;
owl:equivalentClass [
a owl:Restriction ;
owl:onProperty ex:hasKindOfMovement ;
owl:hasValue concepts:Dance
] .
# Assertions
ex:SomeInstance ex:hasKindOfMovement concepts:Dance .
以上内容正确地使ex:someInstance
成为ex:Dance
的实例。但是,如果我有断言,如何使ex:anotherInstance
成为ex:Dance
的成员
ex:anotherInstance ex:hasKindOfMovement concepts:SquareDance
?即其中owl:hasValue
中的个人是比限制中指定的概念更狭窄的概念。
这个问题似乎与OWL restrictions - defining classes that only contains properties with a specific property value类似,但我无法从那里解决...非常感谢您的帮助。