Включить Reasoning для запроса SPARQL через Jena?

Проблемная среда:

Мне нужно получить доступ к некоторым данным RDF, хранящимся на виртуальном сервере, через SPARQL. Для того графика, к которому я хочу получить доступ, должно быть включено рассуждение. На стороне клиента должна использоваться jena 2.11.x.

Теперь проблема:

Чтобы включить рассуждения, я должен добавить строку define input:inference „http://examplegraphIRI“ в качестве первой строки запроса SPARQL в соответствии с http://docs.openlinksw.com/virtuoso/rdfsparqlrule.html. Если я использую Jena QueryExecutionFactory для выполнения запроса, он будет отклонен, поскольку ARQ не может проанализировать данную строку.

Теперь вопросы:

Обязательно ли использовать виртуальный поставщик Jena (http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtJenaProvider#Bypass%20Jena/ARQ%20parser)? Будет ли это работать для моей проблемы (последняя версия (http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VOSDownload#Jena%20Provider) заявляет, что он предназначен для jena 2.10.x)?

Есть ли другие возможности для включения аргументации для конечной точки SPARQL?


person mschenk74    schedule 04.07.2014    source источник
comment
Вопрос также задавали на форумах поддержки OpenLink.   -  person TallTed    schedule 07.07.2014
comment
@Tallted Да, я также разместил его на форуме поддержки, но ответ там занял больше времени, чем мое собственное исследование, и ответ больше похож на обходной путь, поскольку он требует использования специфичных для поставщика библиотек.   -  person mschenk74    schedule 07.07.2014


Ответы (1)


Я нашел решение, просмотрев исходный код Jena и ARQ:

вместо использования final QueryEngineHTTP request = QueryExecutionFactory.createServiceRequest(String,Query) я мог бы обойти парсер, используя final QueryEngineHTTP request = new QueryEngineHTTP (this.endpoint, fullQueryString) напрямую.

person mschenk74    schedule 04.07.2014