SPARQL查询提供意外的结果

2024-05-16 05:54:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望有人能帮我解决这个很容易解决的问题:

我想对以下RDF运行SPARQL查询(在N3中,RDF/XMl位于here)。以下是对一篇期刊文章的描述以及对期刊、作者和出版商的描述:

 @prefix bibo: <http://purl.org/ontology/bibo/> .
 @prefix dc: <http://purl.org/dc/elements/1.1/> .
 @prefix ex: <http://example.org/thesis/> .
 @prefix foaf: <http://xmlns.com/foaf/0.1/> .
 @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

<ex:XY>     a bibo:Article;
     dc:creator ex:umstaetter;
     dc:date "2008-11-01";
     dc:isPartOf ex:bibdienst;
     dc:title "DDC in Europa"@de;
     bibo:endPage "1221";
     bibo:issue "11";
     bibo:language "de";
     bibo:pageStart "1194";
     bibo:uri <http://www.zlb.de/Erschliessung020309BD.pdf>;
     bibo:volume "42" .

<ex:bibdienst>     a bibo:Journal;
     dc:publisher ex:zlb;
     dc:title "Bibliotheksdienst"@de;
     bibo:issn "00061972" .

<ex:umstaetter>     a foaf:person;
     foaf:birthday "1941-06-12";
     foaf:gender "Male";
     foaf:givenName "Walther";
     foaf:homepage <http://www.ib.hu-berlin.de/~wumsta/index.html>;
     foaf:img "http://libreas.eu/ausgabe7/pictures/wumstaetter1.jpg";
     foaf:name "Walther Umst\u00E4tter";
     foaf:surname "Umst\u00E4tter";
     foaf:title "Prof. Dr. rer. nat." .

<ex:zlb>     a foaf:Organization;
     foaf:homepage <http://www.zlb.de>;
     foaf:name "Zentral- und Landesbibliothek Berlin"@de .

出于测试目的,我想读出foaf:主页of例如:zlb-我要运行的SPARQL是:

^{pr2}$

(再次声明:这将只用于测试,因为文章只有一个实体。)

用Python和RDflib在本地机器上运行它并没有给我一个结果。在线的redlandsparql查询演示也没有。在

有谁能找到解决办法?我是走对了路还是完全错了?在


Tags: orghttpprefixtitlewww文章derdf
2条回答

我不认为可以在XML属性值中使用QName;例如rdf:about的值。因此,请考虑RDF/XML文件中的这一行:

 <bibo:Journal rdf:about="ex:bibdienst">

我认为这实际上是在说主题URI是“ex:bibdienst”。这是一个语法上有效的URI,但它与以下行对应的三元组的对象显示的URI不同:

^{pr2}$

尝试用相应的uri替换XML属性值中的QNames,看看这是否解决了您的问题。在

是的,Stephen C是完全正确的,你不能在XML属性中使用QName,你可以使用XML实体来代替你在文档顶部的DTD块中定义的,如下所示:

例如

<!DOCTYPE rdf:RDF[
    <!ENTITY rdf 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
    <!ENTITY rdfs 'http://www.w3.org/2000/01/rdf-schema#'>
    <!ENTITY xsd 'http://www.w3.org/2001/XMLSchema#'>
    <!ENTITY ex 'http://example.org/thesis/'>
    <!ENTITY dc 'http://purl.org/dc/elements/1.1/'>
    <!ENTITY foaf 'http://xmlns.com/foaf/0.1/'>
    <!ENTITY bibo 'http://purl.org/ontology/bibo/'>
]>

然后您可以定义如下属性:

^{pr2}$

相关问题 更多 >