Я хочу создать класс D, который представляет любой А, который содержит свойство P1 объекта, значение которого равно любой объект недвижимости P2 содержавшимся В.
Я думаю, что вы» повторно ищу выражение класса, как это (в DL и Манчестер синтаксисах):
D ≡ ⊓ ∃ & thinsp; р . (∃ & thinsp; р 2 -1 .B)
D equivalentClass (А и (р1 некоторые (обратное (р2) некоторые В)))
Это говорит о том, что что-то есть D тогда и только тогда, когда оно является A, и имеет некоторое значение для p1, которое является значением p2 некоторые экземпляр B.
Если домены Р1 и Р2 А и В, соответственно, то вы можете упростить, что:
D ≡ ∃ & thinsp; р . ∃ & thinsp; р -1
D equivalentClass р1 некоторые (обратное (р2) некоторые вещь)
Вот что первая выглядит как в N3 RDF-сериализация OWL.
@prefix : <http://stackoverflow.com/q/28506192/1281433/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
:A a owl:Class .
:B a owl:Class .
:p a owl:ObjectProperty .
:q a owl:ObjectProperty .
:D a owl:Class ;
owl:equivalentClass [ a owl:Class ;
owl:intersectionOf (:A _:b0)
] .
_:b0 a owl:Restriction ;
owl:onProperty :p ;
owl:someValuesFrom [ a owl:Restriction ;
owl:onProperty [ owl:inverseOf :q ] ;
owl:someValuesFrom :B
] .
Если у вас есть домен и диапазон аксиомам, так что вы можете использовать более простую форму, это было бы:
@prefix : <http://stackoverflow.com/q/28506192/1281433/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
:A a owl:Class .
:B a owl:Class .
:p a owl:ObjectProperty ;
rdfs:domain :A .
:q a owl:ObjectProperty ;
rdfs:domain :B .
:D a owl:Class ;
owl:equivalentClass [ a owl:Restriction ;
owl:onProperty :p ;
owl:someValuesFrom [ a owl:Restriction ;
owl:onProperty [ owl:inverseOf :q ] ;
owl:someValuesFrom owl:Thing
]
] .
«Они оба имеют два различных свойства объекта P1 и P2, чьи диапазоны класс С. " Что ты хочешь этим сказать? Свойства не относятся к классам; OWL не является объектно-ориентированным языком программирования. Вы имеете в виду, что * домены * P1 и P2 являются A и B соответственно? –
Да, именно это я и имел в виду. Новое в этой области, как это можно наблюдать. – user1364591