Разные результаты рассуждений между Stardog и Protege
Я пытаюсь понять, почему я получаю разные результаты между рассуждениями Stardog и Protege.
У меня есть следующая онтология в обоих инструментах:
Число
Class: Number
Number DisjointUnionOf OddNumber,EvenNumber
Нечетное число
OddNumber subClassOf Number
Четное число
EvenNumber subClassOf Number
EvenNumber EquivalentTo hasValue {"2", "4", "6" }
HasValue
DataProperty: hasValue
hasValue Range xsd:string
hasValue SubPropertyOf: owl:topDataProperty
hasValue Domain Number
Functional: hasValue
Затем я создаю два экземпляра с именами num1 и num2, которые определены следующим образом:
num1
num1 hasValue "1"^^xsd:string
individual: num1
num1 Type Number
num2
num2 hasValue "2"^^xsd:string
individual: num2
num2 Type Number
При применении рассуждений в Protege и Stardog оба рассуждения показывают, что num2 является экземпляром EvenNumber и Number. При применении аргументов с num1 Protege говорит, что num1 - это экземпляр OddNumber и Number, а Stardog говорит, что num1 - это просто экземпляр Number.
Мне нужно, чтобы Stardog также классифицировал num1 как OddNumber. Я пропускаю некоторые ограничения, чтобы добиться такого поведения? Можно ли настроить Stardog на такое поведение?
Примечание: я использую стандартную установку Stardog (версия 4.2.3) и Protege (версия 5.1.0) по умолчанию с решением Hermit 1.3.8.
Благодарю.
1 ответ
Причина, по которой Stardog не дает результатов, заключается в том, что в вашей онтологии существует неподдерживаемая аксиома (EvenNumber EquivalentTo hasValue {"2", "4", "6" }
), который игнорируется. В вашем файле stardog.log должна быть строка с таким же количеством слов.
Есть два возможных решения этого:
Сконфигурируйте свой сервер Stardog, чтобы приблизить аксиомы, которые поддерживаются, вместо того, чтобы просто игнорировать неподдерживаемые (через
reasoning.approximate=true
). Это не гарантируется, но в этом случае это может сработать.Замените эту аксиому поддерживаемой; Правило Stardog будет работать хорошо.
Чтобы получить дополнительную помощь по любому из этих вопросов, не стесняйтесь размещать сообщения на форумах поддержки сообщества Stardog.