OWL: реализация абстрактного класса с ObjectUnionOf, похоже, не справляется - PullRequest
1 голос
/ 09 февраля 2012

Предполагая, что GeographicArea объединяет Планету, Континент и Регион:

<EquivalentClasses>
    <Class IRI="#GeographicArea"/>
    <ObjectUnionOf>
        <Class IRI="#Continent"/>
        <Class IRI="#Planet"/>
        <Class IRI="#Region"/>
    </ObjectUnionOf>
</EquivalentClasses>

тогда не должно быть ни одного человека класса GeopgraphicArea

<ClassAssertion>
    <Class IRI="#GeographicArea"/>
    <NamedIndividual IRI="#Bad"/>
</ClassAssertion>

Плохо, очевидно, НЕ континент, планета или регион.

тем не менее, ее рассудитель n Протеже не сообщает об ошибке.

Почему? Как я могу ограничить то, что ни одно лицо не может быть указано только как «Географическая зона»?

См. Образец в: http://www.arcdev.hu/test/helloworld.owl

Ответы [ 2 ]

2 голосов
/ 10 февраля 2012

OWL использует Предположение об открытом мире , что означает, что то, что Bad еще не определено как континент, планета или регион, не означает, что его не будет в будущем.Чтобы побудивший сообщить об ошибке, вы должны определить Bad как экземпляр класса, который не пересекается с другими классами.

1 голос
/ 10 февраля 2012

Как я могу ограничить то, что ни одно лицо не может быть указано только как "GeographicArea"?

Вы не можете, и на самом деле не имеет смысла делать это логически.среда (которая, в конце концов, OWL).OWL рассуждает о логическом выводе, а не о проверке типов.

Если вам требуется такая функциональность, вам придется использовать собственный механизм проверки (я думаю, что вы могли бы сделать что-то подобное, используя некоторые умные запросы SPARQL или правила SPIN).

...