Как добавить файл онтологии в rdf sesame на Android?

Мне нужно запросить онтологию из 70 000 троек, используя кунжут на Android. Все эти проблемы были решены путем создания парсера и последующего его использования. Теперь возникла та же проблема с запросом SPARQL, которую я разместил здесь. Как сделать запрос в Sesame openrdf, используя SPARQL в Android?


person user3556249    schedule 21.04.2014    source источник
comment
Здесь недостаточно информации, чтобы сказать, что происходит не так или как это можно решить. Вам нужно будет показать точную ошибку (stacktrace). Также было бы полезно, если бы вы могли сообщить нам, какую версию Sesame вы используете. Однако в качестве общего замечания я должен сказать, что Sesame официально не поддерживается для использования на Android. Вероятно, вы получаете ошибки, потому что Sesame требует чего-то, что Android SDK просто не поддерживает. Чтобы определить, есть ли обходной путь, требуется больше подробностей о вашей проблеме (и больше знаний об Android SDK, чем у меня есть).   -  person Jeen Broekstra    schedule 22.04.2014
comment
Я использую Сезам 2.4.2. Независимо от того, поддерживается ли Sesame, я видел, что многие люди используют sesame на Android так же, как я пытаюсь использовать. Моя точная трассировка стека выглядит следующим образом.   -  person user3556249    schedule 22.04.2014
comment
Я не могу добавить трассировку стека, потому что она слишком длинная.   -  person user3556249    schedule 22.04.2014
comment
Не пытайтесь добавить трассировку стека в комментарий. Вместо этого вы можете отредактировать свой вопрос, добавив больше деталей. Если он очень длинный, обрежьте его до основных частей. Также убедитесь, что вы используете форматирование кода, чтобы его было легко читать.   -  person Jeen Broekstra    schedule 22.04.2014
comment
2.4.2 довольно старая, последняя версия на данный момент 2.7.11. Не сказать, что это решит проблему, но обновление может быть неплохой идеей.   -  person Jeen Broekstra    schedule 22.04.2014
comment
Возможно связанный вопрос: stackoverflow.com/questions/5760607/   -  person Jeen Broekstra    schedule 30.04.2014
comment
Предоставьте ответ с решением вашей проблемы, а не заменяйте текст вопроса. Если вы замените текст вопроса, его станет трудно понять, так как тогда у вас будет ответ без вопроса!   -  person Jeen Broekstra    schedule 05.05.2014


Ответы (1)


UnsupportedRDFFormatException указывает, что синтаксический анализатор RDF/XML не может быть обнаружен. Это означает, что фактическая банка (sesame-rio-rdfxml.jar, если вы используете отдельные файлы jar Sesame, или просто openrdf-sesame-onejar-2.7.11.jar, если вы используете дистрибутив onejar) не может быть обнаружена. Чтобы исправить это, убедитесь, что в вашем пути к классам присутствуют необходимые файлы jar.

Другая возможная причина заключается в том, что синтаксический анализатор находится на самом деле в вашем пути к классам, но не может быть загружен. Sesame использует интерфейс поставщика услуг Java (SPI) для динамической загрузки анализатора. Это, в свою очередь, требует наличия файла META-INF/services/org.openrdf.rio.RDFParserFactory в файле jar. Если вы каким-то образом переупаковали официальный jar-файл дистрибутива Sesame и удалили или изменили этот файл, Sesame не сможет найти парсер. Дополнительную информацию см. в документации по Android в ServiceLoader.

person Jeen Broekstra    schedule 27.04.2014
comment
Спасибо за ответ, но я пробовал эти варианты, и это не сработало. Я не переупаковывал файл jar дистрибутива кунжута, я не понимаю, почему он все еще выдает ошибки. Пожалуйста, направьте меня, как я могу избавиться от этой проблемы. - person user3556249; 29.04.2014
comment
Я не разработчик Android, но здесь есть несколько связанных вопросов об использовании ServiceLoader на Android, которые могут быть вам полезны, например stackoverflow.com/questions/5760607/ . Надеюсь, это поможет вам в дальнейшем. - person Jeen Broekstra; 30.04.2014
comment
На самом деле я загружаю свой файл как fis = getAssets().open(File.rdf); а затем добавить соединение как con.add(fis, baseURI,RDFFormat.RDFXML); Возможно ли, что проблема существует с загрузкой файла? - person user3556249; 30.04.2014