Пути к свойствам SPARQL в Oracle Jena Adaptor и Jena ARQ

Я использую адаптер Oracle Jena. Моя проблема связана с путями свойств в запросах SPARQL. Когда я пытался запросить

SELECT * WHERE {
  ?t rdf:type owl:ObjectProperty.
  ?t rdfs:domain ?o.
  ?o owl:unionOf ?union.
  ?union rdf:rest*/rdf:first ?member.
}

от ModelOracleSem это дает мне ошибку парсера. Но, если я попробую использовать модель в памяти Jena, она будет отлично работать, как показано ниже:

hybridGraph = OracleGraphWrapperForOntModel.getInstance(graph1);
model = ModelFactory.createModelForGraph(hybridGraph);
ontModel = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM, model);

Я также пробовал функцию списка ARQ как ?union list:member ?member. Он не возвращает никаких результатов от ModelOracleSem. Но когда я пробую его на модели в памяти Йены, он снова работает отлично.

Может ли кто-нибудь помочь мне решить эту проблему?

Изменить: точное сообщение об ошибке можно увидеть ниже. Информация о версии: Jena 2.6.4, ARQ 2.8.8, Jena Adapter 11.2.0.3 Спасибо,

2013-06-10 16:54:42 сообщение: java.sql.SQLException: ORA-29532: вызов Java завершен неперехваченным исключением Java: oracle.spatial.rdf.server.ParseException: обнаружено ‹в строке 1, столбце 2.

Ожидал одного из:

 <URI> ... 
 <QNAME> ... 
 <VAR> ...

ORA-06512: в MDSYS.RDF_MATCH_IMPL_T, строка 203 ORA-06512: в MDSYS.RDF_MATCH_IMPL_T, строка 67 ORA-06512: в строке 4


person Mehmet Aydın    schedule 10.06.2013    source источник
comment
Я не использовал адаптер Jena Oracle, но мне интересно, проблема в том, какие версии поддерживает адаптер и какую версию ARQ вы используете. Какую версию адаптера Jena Oracle вы используете? Какую версию Jena / ARQ вы используете для тестов памяти? Кроме того, не могли бы вы столкнуться с ошибкой синтаксического анализа, которую вы получаете? Это может помочь определить, какие версии языка ожидают разные парсеры.   -  person Joshua Taylor    schedule 10.06.2013
comment
Я отредактировал вопрос @JoshuaTaylor. Спасибо еще раз.   -  person Mehmet Aydın    schedule 11.06.2013
comment
Я думаю, что мы еще чего-то не видим. Либо эта ошибка синтаксического анализа вызвана чем-то другим, либо запрос, который вы нам показываете, не является полным. Ошибка синтаксического анализа говорит Encountered "<" at line 1, column 2., но в запросе, который вы нам показали, нет <.   -  person Joshua Taylor    schedule 11.06.2013
comment
Я в курсе, что это очень странно. Но когда я запускаю запрос как ?union rdf:rest/rdf:first ?member. (без *), он работает отлично. А также при запуске запроса с тем же кодом с использованием модели jena в памяти, он снова работает без ошибок.   -  person Mehmet Aydın    schedule 11.06.2013
comment
После некоторого поиска в Google по MDSYS.RDF_MATCH_IMPL_T и просмотра таких сообщений, как этот, он похоже, что адаптер переводит некоторые вещи, поэтому я ожидаю, что в некоторых переведенных запросах есть текст, вызывающий ошибку парсера. (Это не очень помогает для решения, но может быть началом.)   -  person Joshua Taylor    schedule 11.06.2013


Ответы (2)


Как сказал Джошуа, в вашем вопросе отсутствует важная информация, например. указана ошибка парсера.

Адаптер Oracle Jena должен поддерживать пути к свойствам, если цитировать их документацию:

Адаптер Jena поддерживает все типы путей к свойствам Jena за счет интеграции с механизмом запросов Jena ARQ.

Поэтому, как предполагает Джошуа, это может быть случай несоответствия версий, если вы используете старую версию адаптера Oracle Jena Adapter, но более новую версию Jena.

Что касается list:member, это функция свойства ARQ, которая является нестандартным расширением SPARQL. В документации об этом вообще не упоминается, поэтому я предполагаю, что это не поддерживается.

person RobV    schedule 10.06.2013

Я использовал адаптер jena и могу подтвердить, что адаптер jena чувствителен к используемой версии jena. Я не сталкивался с этой конкретной проблемой, но у меня возникли аналогичные проблемы при использовании более новой версии jena со старой версией адаптера jena.

Адаптер jena (сейчас я не помню номер версии), совместимый с jena 2.6.4 и ARQ 2.8.8, вызывал исключение времени выполнения, когда мы пытались выполнить CONSTRUCT-запросы с использованием Jena 2.9.2. Нам пришлось перейти на более раннюю версию, чтобы она работала должным образом.

С правильными версиями адаптера jena / jena мы испытали, что пути к свойствам с * работают, но они работают очень медленно (слишком медленно для нас;)).

person Lotta    schedule 27.06.2013