Что нужно сделать, чтобы сделать этот вывод?
Если я хочу сделать вывод, что "Обама родился в США" из этих фактов:
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.