Получать данные с помощью SPARQL в Protege - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь разобраться в выводе данных RDF. Скажем, у меня есть эти тройки (RDF Turtle), которые я создал с помощью Protege:

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

:hasSpouse rdf:type owl:ObjectProperty ,
                    owl:SymmetricProperty ;
           rdfs:domain :People ;
           rdfs:range :People .

:People rdf:type owl:Class .

:Jane_Doe rdf:type owl:NamedIndividual ,
                   :People .

:John_Doe rdf:type owl:NamedIndividual ,
                   :People ;
          :hasSpouse :Jane_Doe .

Мыслитель в Протеже будет любезно выделить ожидаемый вывод, то есть :Jane_Doe :hasSpouse :John_Doe.

Protege screenshot

Как я могу увидеть этот вывод с помощью SPARQL? Если я выполню этот запрос в Protege (вкладка SPARQL):

SELECT ?subject
    WHERE {?subject hasSpouse ?object .}

Показывает утвержденную тройку, а не предполагаемую. Я понимаю, как это сделать вручную, например :

CONSTRUCT {?object ?prop ?subject }
    WHERE { ?prop rdf:type owl:SymmetricProperty .
            ?subject ?prop ?object .}

Теперь я вижу ожидаемые данные, которые я ожидаю, но 1) которые потеряют точку imho (т.е. заново изобретать колесо) 2) У меня не может быть 2 запросов на этой вкладке (построить, затем выбрать). Должен быть способ сделать это автоматически, точно так же, как это сделал разум.

Я прочитал в Stack Overflow сообщение о том, что в Protege используется плагин Snap SPARQL. Я пытался, но простые запросы не работают (как первый выше). Это как будто это другой язык. Как это работает?

Итак, как я могу получить преимущества этих свойств совы с SPARQL? Как я могу иметь OWL-ориентированный SPARQL в Protege? Я правильно понял? Какой правильный путь?

спасибо за вашу помощь. Николя

...