2012-04-30 4 views
0

Я хочу создать небольшой общий интерфейс запросов для моей скомпилированной модели RDF.Каков наилучший способ запроса модели RDF в jena в общем виде? (sparql или использование коллекции и итераторы)

Я должен путь доступа мои данные:

1- с использованием встроенного в Йене itertors/statemetns/resrources/и т.д ....

2 создающей некоторые SPARQL

но для создания SPARQL или RDQL Я должен вызвать привязку переменных SPARQL к java-переменным, и поскольку в моем SPARQL я могу иметь множество переменных, я не знаю, как сделать их обобщенными.

так что это лучший способ сделать интерфейс запроса RDF общим?

+1

Я думаю, вам нужно объяснить, что вы подразумеваете под «незначительным (общим)». –

+0

только ради того, чтобы не менять мою бизнес-логику так часто. Я хочу создать несколько общий способ извлечения данных из RDF. –

ответ

4

Используйте SPARQL, а не RDQL. Большинство систем сегодня реализуют SPARQL, который является стандартом W3C. С помощью SPARQL, как и в SQL, вы можете использовать * для привязки всей переменной, которая встречается в тройных шаблонах. Пример:

SELECT * WHERE { 
    ?s a :Person . 
    ?s :name ?name . 
    ?s :birthdate ?birthdate . 
} 

Большинство клиентских библиотек SPARQL позволяют получить все переменные. Например, в Jena ARQ вы обнаружите, что QuerySolution имеет метод Iterator<String> varNames(), этот метод вернет вам все имена переменных. Вы можете пройти их и использовать метод get в том же классе, чтобы получить значения строк.

Большое преимущество SPARQL состоит в том, что, поскольку он является стандартом, вы можете использовать различные триместные магазины, которые следуют спецификации.

+0

Спасибо, я возьму ваш совет, но из любопытства хочу знать, как извлекать данные с помощью jena API (итератор/и т. Д.) (Как, например, кошмар для этого ...), какой ресурс я должен прочитать по этому поводу ? (jena DOC кажется запутанным специально для поиска подкласса класса, и такие вещи, как Jena DOC, не помогут!) –

+3

Если вы хотите отправить электронное письмо электронной почте в список адресов электронной почты jena, в котором указаны биты документации нашло смущение, мы можем попытаться что-то предпринять. Создание обобщенных жалоб о том, что что-то не достаточно хорошо, затрудняет нам улучшение того, что необходимо улучшить. Чтобы подписаться на пользователей jena, см. Http://incubator.apache.org/jena/help_and_support/index.html –