Что нужно сделать, чтобы сделать этот вывод?

Если я хочу сделать вывод, что "Обама родился в США" из этих фактов:

 Obama bornIn Hawaii 
 Hawaii partOf USA

Достаточно ли этих двух фактов, чтобы сделать вывод? Если да, следует ли использовать RDFS или OWL для представления фактов? Есть ли какой-нибудь онлайн-инструмент SPARQL, с помощью которого я могу быстро протестировать эти спецификации и выводы на основе фактов?

1 ответ

Решение

Никто не знает что такое bornIn или же partOf, Вы должны найти подходящую онтологию или смоделировать этот материал самостоятельно. Есть несколько способов сделать это.

Возможности OWL 2

Возможности OWL 2 DL достаточны, чтобы сделать вывод, который вы хотите.
Все, что вам нужно, это цепочка собственности.

Здесь ниже образец онтологии, сериализованный в формат RDF Turtle.

@prefix : <http://www.semanticweb.org/ontologies/ontology#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

<http://www.semanticweb.org/ontologies/ontology> rdf:type owl:Ontology .

:Obama    rdf:type owl:NamedIndividual ; :bornIn :Honolulu .
:Honolulu rdf:type owl:NamedIndividual ; :partOf :Hawaii .
:Hawaii   rdf:type owl:NamedIndividual ; :partOf :USA .
:USA      rdf:type owl:NamedIndividual .

:bornIn rdf:type owl:ObjectProperty ; owl:propertyChainAxiom ( :bornIn :partOf ) .

:partOf rdf:type owl:ObjectProperty .

Общие правила языков

Вы можете заменить аксиому цепочки свойств следующим правилом SWRL.

bornIn(?person, ?place1) ^ partOf(?place1, ?place2) -> bornIn(?person, ?place2)

SWRL работает на онтологическом уровне. Другие более или менее распространенные языки правил (например, SPIN) работают на уровне сериализации RDF.

Специфичные для триплетов языки правил

В GraphDB вы можете определить "набор правил" такого типа:

Prefices { obama: http://www.semanticweb.org/ontologies/ontology# }

Axioms { }

Rules
{
    Id: custom
      a <obama:bornIn> b
      b <obama:partOf> c
    -----------------------
      a <obama:bornIn> c
}

Есть ли какой-нибудь онлайн-инструмент SPARQL, с помощью которого я могу быстро протестировать эти спецификации и выводы на основе фактов?

Вопросы с просьбой рекомендовать или найти инструмент или другой сторонний ресурс не по теме для SO. Тем не менее, таблица ниже сравнивает некоторые популярные инструменты.

+---------+-----+------+-----+-------+
|         | OWL | SWRL |  …  | rules |
+---------+-----+------+-----+-------+
| Protege |  +  |  +   |  …  |   –   |
| Stardog |  +  |  +   |  …  |   +   |
| GraphDB |  ±  |  –   |  …  |   +   |
|    …    |  …  |  …   |  …  |   …   |
+---------+-----+------+-----+-------+

Я бы посоветовал вам попробовать GraphDB Cloud. При создании хранилища:

  • загрузите набор правил выше, если вы хотите использовать язык правил GraphDB, или
  • выберите встроенный набор правил OWL-RL, если вы хотите использовать возможности OWL 2.
Другие вопросы по тегам