Вариант 1 (SWRL)
Определить skos:broaderTransitive
:
skos:broaderTransitive a owl:TransitiveProperty .
skos:broader rdfs:subPropertyOf skos:broaderTransitive .
Затем используйте SWRL:
ex:hasKindOfMovement(?a, ?b) ^ skos:broaderTransitive(?b, ?c) -> ex:hasKindOfMovement(?a, ?c)
Вариант 2 (глобальная рефлексивность)
Определить skos:broaderTransitiveAndReflexive:
skos:broaderTransitiveAndReflexive a owl:TransitiveProperty, owl:ReflexiveProperty .
skos:broader rdfs:subPropertyOf skos:broaderTransitiveAndReflexive .
Затем объявите ex:hasKindOfMovementTransitiveAndReflexive
как цепочку свойств:
ex:hasKindOfMovementTransitiveAndReflexive a owl:ObjectProperty ;
owl:propertyChainAxiom
(
ex:hasKindOfMovement
skos:broaderTransitiveAndReflexive
) .
Наконец, определите ex:Dance
следующим образом:
ex:Dance rdfs:subClassOf ex:Movement ;
owl:equivalentClass [ rdf:type owl:Restriction ;
owl:onProperty ex:hasKindOfMovementTransitiveAndReflexive ;
owl:hasValue concepts:Dance
] .
К сожалению, рефлексивность - это глобальная характеристика , умозаключение также выведет, что
ex:someInstance skos:broaderTransitiveAndReflexive ex:someInstance
Вариант 3 (местная рефлексивность)
Как декларировать рефлексивность локально, т.е. е. только для skos:Concept
? Определите skos:notNarrower
следующим образом:
skos:broader rdfs:subPropertyOf skos:notNarrower .
skos:notNarrower rdfs:subPropertyOf skos:broaderTransitiveAndReflexive .
Тогда скажите:
skos:Concept rdfs:subClassOf [ rdf:type owl:Restriction ;
owl:onProperty skos:notNarrower ;
owl:hasSelf true
] .
Зачем вам нужна эта иерархия свойств? Почему бы не сказать просто (1) или (2)? -
skos:Concept rdfs:subClassOf [ rdf:type owl:Restriction ;
owl:onProperty skos:broader ;
owl:hasSelf true
] .
или
skos:Concept rdfs:subClassOf [ rdf:type owl:Restriction ;
owl:onProperty skos:broaderTransitiveAndReflexive ;
owl:hasSelf true
] .
Причины:
Первый игнорирует семантику SKOS.
Последний игнорирует OWL 2 DL ограничения . Размышляющий скажет что-то вроде:
Непростое свойство skos:broaderTransitiveAndReflexive
появляется в самоограничении
Грубо говоря, простое выражение свойства объекта не имеет прямых или косвенных подвойств, которые являются либо транзитивными, либо определяются с помощью цепочек свойств.
Вариант 4 (классы OWL вместо концепций SKOS)
Как предложено AKSW, замените иерархию понятий на иерархию классов.
Если у вас есть устаревшая таксономия SKOS, используйте OWL punning или аннотаций для взаимосвязи.
ОБНОВЛЕНИЕ
Полные онтологии в синтаксисе Манчестера:
- Вариант 1 (SWRL)
- Вариант 2 (глобальная рефлексивность) - используйте HermiT, а не Pellet
- Опция 3 (местная рефлексивность) - используйте HermiT, а не Pellet
- Опция 4 (аннотации и штамповка) - используйте DL Query, чтобы увидеть, что
ex:anotherInstance a ex:Dance
.