2010-11-30 3 views
1

Я установил сервер Sesame (openrdf.org) и попытаюсь получить к нему доступ через API Java.Не понимает запросы SERQL

Для целей тестирования я использовал очень простой пример из Википедии:

<?xml version="1.0" encoding="UTF-8" ?> 
    <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
    xmlns:dc="http://purl.org/dc/elements/1.1/"> 
    <rdf:Description rdf:about="http://de.wikipedia.org/wiki/Resource_Description_Framework"> 
<dc:title>Resource Description Framework</dc:title> 
<dc:publisher>Wikipedia - Die freie Enzyklopädie</dc:publisher> 
</rdf:Description> 
</rdf:RDF> 

и

<?xml version="1.0" encoding="UTF-8" ?> 
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
     xmlns:dc="http://purl.org/dc/elements/1.1/"> 
    <rdf:Description rdf:about="http://de.wikipedia.org/wiki/Resource_Description_Framework"> 
    <dc:title>Resource Description Framework 2</dc:title> 
    <dc:publisher>Wikipedia - Die freie Enzyklopädie</dc:publisher> 
    </rdf:Description> 
</rdf:RDF> 

SPARQL запрос на Сезам верстаке работает, как ожидалось:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX dc: <http://purl.org/dc/elements/1.1/> 
SELECT ?title 
WHERE{ 
?res dc:publisher ?pub . 
?res dc:title ?title 

FILTER (
sameTerm(?pub, "Wikipedia - Die freie Enzyklopädie") 
) 
} 

возвращает все название от издателя «Википедия - Die freie Enzyklopädie».

Теперь для Java API я пытаюсь перевести этот пример в SERQL.

Я попробовал следующий запрос:

SELECT title 
FROM {title} dc:publisher {"Wikipedia - Die freie Enzyklopädie"} 
USING NAMESPACE 
rdf = <http://www.w3.org/1999/02/22-rdf-syntax-ns#>, 
dc = <http://purl.org/dc/elements/1.1/> 

Но это возвращает все данные и не название, но в URL из ФРР: о. Я также пробовал разные варианты, такие как «dc: title» вместо «title», но я вообще не получаю никакого результата.

Я уже проверил сеть и прочитал много документации. Но почему-то я не получаю синтаксис SERQL.

У вас есть стрелка для меня? Как получить все название от определенного издателя в результате?

Большое спасибо!

ответ

0

Прежде всего, есть SeRQL manual, доступный в Sesame user documentation, так что это должно помочь вам понять синтаксис SeRQL.

Что касается вашего конкретного запроса, проблема в том, что ваш запрос SeRQL запрашивает что-то отличное от запрошенного вами запроса SPARQL. Я не буду вдаваться в подробности, но SeRQL-эквивалент запроса SPARQL будет:

SELECT title 
FROM {res} dc:publisher {"Wikipedia - Die freie Enzyklopädie"}; 
      dc:title {title} 
USING NAMESPACE 
rdf = <http://www.w3.org/1999/02/22-rdf-syntax-ns#>, 
dc = <http://purl.org/dc/elements/1.1/> 

SeRQL представляет собой тройные образцы в виде {subject} predicate {object}.

Смежные вопросы