不了解SERQL查询

时间:2010-11-30 08:30:35

标签: api sesame

我设置了一个Sesame(openrdf.org)服务器并尝试通过Java API访问它。

出于测试目的,我使用了维基百科的一个非常简单的例子:

<?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>

Sesame工作台上的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")
)
}

返回出版商“维基百科 - DiefreieEnzyklopä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/>

但是这会返回所有数据,而不是标题,而是来自rdf:about的URL。我也尝试过不同的变体,比如“dc:title”而不是“title”,但我得不到任何结果。

我已经在网上搜索并阅读了大量文档。但不知何故,我并没有真正得到SERQL语法。

你有指针给我吗? 我如何获得特定出版商的所有头衔?

非常感谢!

1 个答案:

答案 0 :(得分:0)

首先,SeRQL manual中有一个完整的Sesame user documentation,这样可以帮助您了解SeRQL的语法。

至于您的特定查询,问题是您的SeRQL查询会询问与您之前提供的SPARQL查询不同的内容。我不会在这里详细介绍,但是你的SPARQL查询的SeRQL等价物是:

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}形式的三重模式。