Запрос SPARQL-DL с owl-api

Я пишу приложение, используя OWL-API и Hermit Reasoner. Я хотел бы запросить данные с помощью SPARQL-DL, отправив запрос, например:

PREFIX wine: <http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#>
SELECT ?i
 WHERE { Type(?i, wine:PinotBlanc) }
 OR WHERE { Type(?i, wine:DryRedWine) }

Могу ли я сделать это напрямую с помощью owl-api или мне следует использовать внешнюю библиотеку (http://www.derivo.de/en/resources/sparql-dl-api/ )? (Мне нужно что-то вроде queryEngine.query(my_query);)


person Discipulos    schedule 10.07.2013    source источник


Ответы (3)


Как и в июле 2013 года, OWL-API изначально не поддерживает SPARQL-DL. Вам нужно подключить стороннюю библиотеку, чтобы она работала.

Я знаю о двух реализациях (их может быть больше): одну от Derivo (ваша ссылка) и другую от Pellet. .

person loopasam    schedule 11.07.2013
comment
Да, я нашел даже OWL2QueryTab. - person Discipulos; 28.07.2013

Я использовал OWL-API с Hermit и Pellet; оба работали нормально. Преимущество Pellet перед Hermit в том, что он поддерживает встроенные модули.

то есть в Pellet для некоторого класса Teenager вы можете получить семнадцатилетних людей, используя следующий запрос:

Person and (hasAge value "17.0"^^double) 

Если вас (или кого-то) все еще интересует, я могу предоставить для него класс Java.

person Krishna Sapkota    schedule 09.10.2014

Чистый OWL-API-impl не может предоставить обходной способ поддержки SPARQL, поскольку это решение не основано на графе. Теперь, начиная с v5, существует ONT-API, основанный на OWL-API на основе jena. импл.

person ssz    schedule 18.04.2018
comment
Но можно ли использовать Reasoner при запросе? - person Marcelo Machado; 26.04.2021
comment
Да, почему бы и нет? здесь нет никакой разницы с OWL-API-impl. - person ssz; 27.04.2021