我设置了一个Sesame(openrdf.org)服务器并尝试通过Java API访问它。不理解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 freieEnzyklopä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的网址:约。我也尝试过不同的变体,比如“dc:title”而不是“title”,但我根本没有得到任何结果。
我已经在网上查了很多文档。但不知何故,我真的没有得到SERQL语法。
你有一些指针吗? 如何从特定发布商那里获取所有标题?
非常感谢!