Punning Inference не работает в graphdb

Я загрузил в репозиторий GraphDB следующие операторы:

@prefix foo: <http://fopo.com#> .
@prefix bar: <http://dd.com#> .

foo:Car a owl:Class .

foo:Animal a owl:Class ;
owl:disjointWith foo:Car .

foo:isEndangered a owl:ObjectProperty ;
rdf:domain foo:Animal ;
rdf:range bar:SomeSpecies .

foo:Ape a owl:Class ;
foo:isEndangered bar:SomeSpecies .

Если я не ошибаюсь, поскольку OWL2 представил каламбур (т. Е. Использование того же IRI класса для индивида для метамоделирования), следует вывести следующие утверждения:

foo:Ape a foo:Animal .

Но этого не происходит. Я также безуспешно пробовал разные настройки репозиториев.

Есть ли способ сделать такие выводы или я что-то делаю не так?


person floatingpurr    schedule 21.07.2017    source источник
comment
Вы правы насчет вывода, но что вы имеете в виду, говоря, что этого не происходит? Тот факт, что что-то логически следует из посылок, не означает, что что-то должно произойти. Не могли бы вы подробнее объяснить, что вы сделали и чего ожидаете?   -  person Antoine Zimmermann    schedule 22.07.2017
comment
@AntoineZimmermann Я ожидал увидеть предполагаемую аксиому в базе знаний (в graphdb есть встроенный механизм рассуждений), но ее там не было.   -  person floatingpurr    schedule 22.07.2017
comment
rdfs:domain, а не rdf:domain.   -  person Stanislav Kralin    schedule 22.07.2017
comment
И rdfs:range: D   -  person UninformedUser    schedule 22.07.2017
comment
@ superciccio14 как вы проверяете данные? Вы используете запрос SPARQL? Если это так, он должен работать, как только вы исправите проблемы с неправильным префиксом для домена и диапазона.   -  person UninformedUser    schedule 22.07.2017
comment
После замены rdf:domain на rdfs:domain он работает как в режиме визуального графика, так и в режиме SPARQL. В режиме SPARQL убедитесь, что второй > в >> не отмечен точками. Он работает с наборами правил RDFS и OWL-Max (другие не проверял). Кстати, из-за каламбура OWL 2 DL ваши данные просто недействительны или несовместимы с наборами правил OWL. Необходимое вам утверждение выводится из-за _5 _ Шаблон RDFS.   -  person Stanislav Kralin    schedule 22.07.2017
comment
@StanislavKralin Этот комментарий достаточно полный, чтобы быть ответом   -  person Ignazio    schedule 22.07.2017
comment
@ superciccio14 каламбур разрешен, но не позволяет делать выводы. Вывод, который вам нужен, исходит из объявления домена.   -  person Ignazio    schedule 22.07.2017
comment
Идеальные парни. Спасибо! Если вы хотите добавить ответ, я помечу его как принятый!   -  person floatingpurr    schedule 23.07.2017


Ответы (1)


Вам просто нужно заменить это выражение:

foo:isEndangered rdf:domain foo:Animal .

с этим:

foo:isEndangered rdfs:domain foo:Animal .

После замены следует сделать вывод foo:Ape a foo:Animal:

В режиме SPARQL убедитесь, что второй > в значке >> не отмечен точками, в противном случае щелкните значок.

У меня работает с наборами правил RDFS и OWL-Max, другие не проверял.


Как сказал @Ignazio, каламбур в OWL 2 DL не дает выводов, цель каламбура скорее противоположна. OWL 2 DL позволяет сущностям быть классами и индивидами одновременно, не считая онтологию несовместимой (то есть полной выводов) или недействительной.

OWL-каламбур - лишь небольшая часть свободы RDF (S). >:

RDFS не разделяет вселенную на непересекающиеся категории классов, свойств и индивидов. Все, что есть во вселенной, может использоваться как класс, или как свойство, или и то, и другое, сохраняя при этом свой статус индивидуума, который может находиться в классах и иметь свойства. Таким образом, RDFS разрешает классы, которые содержат другие классы, классы свойств, свойства классов и т. Д.

Фактически, необходимый вам вывод предоставляется rdfs2 Шаблон вывода RDFS.


Я надеюсь, что приведенная ниже мнемоническая таблица будет вам полезна. Он показывает, какой термин, упомянутый в словаре RDFS, относится к какому префиксу.

+--------------------+----------------+
|       rdfs:        |      rdf:      |
+--------------------+----------------+
|                Classes              |
+--------------------+----------------+
| rdfs:Resource      | rdf:Property   |
| rdfs:Class         | rdf:langString |
| rdfs:Literal       | rdf:HTML       |
| rdfs:Datatype      | rdf:XMLLiteral |
+--------------------+----------------+
|               Properties            |
+--------------------+----------------+
| rdfs:range         | rdf:type       |
| rdfs:domain        |                |
| rdfs:subClassOf    |                |
| rdfs:subPropertyOf |                |
| rdfs:label         |                |
| rdfs:comment       |                |
+--------------------+----------------+
|             Other Vocabulary        |
+--------------------+----------------+
| rdfs:Container     | rdf:Bag        |
| rdfs:member        | rdf:Seq        |
| rdfs:seeAlso       | rdf:Alt        |
| rdfs:isdDefinedBy  | rdf:List       |
|                    | rdf:first      |
|                    | rdf:rest       |
|                    | rdf:nil        |
|                    | rdf:_1         |
|                    | rdf:Statement  |
|                    | rdf:subject    |
|                    | rdf:predicate  |
|                    | rdf:object     |
|                    | rdf:value      |
+--------------------+----------------+

P.S. Даже если нужная вам инструкция не выводится, это не является ошибкой :

Например, хотя словарь RDF может утверждать, что свойство author используется для обозначения ресурсов, которые являются экземплярами класса Person, он не говорит, должно ли и как приложение действовать при обработке этой информации диапазона. Разные приложения будут использовать эту информацию по-разному. Например, инструменты проверки данных могут использовать это, чтобы помочь обнаружить ошибки в некотором наборе данных, интерактивный редактор может предложить подходящие значения, а приложение рассуждений может использовать его для вывода дополнительной информации из данных экземпляра.

:-)

person Stanislav Kralin    schedule 22.07.2017
comment
Отличный ответ Станислав! :) Другими словами, когда мы используем каламбур в OWL2, ресурсы строго разделяются в ABox и TBox без какой-либо нечеткости. Независимо от двойного использования IRI. OWL Inference работает в обычном режиме. - person floatingpurr; 24.07.2017