gpt4 book ai didi

SPARQL:一个查询有效;类似的查询失败

转载 作者:行者123 更新时间:2023-12-01 15:42:23 25 4
gpt4 key购买 nike

有两个使用 W3C pyRdfa 提取器的 SPARQL 查询。

1:这个查询产生了预期的结果:

    PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?Content ?Author
FROM <http://www.w3.org/2007/08/pyRdfa/extract?uri=http://www.3kbo.com/examples/rdfa/simple.html>
WHERE {
?s dc:creator ?o .
?s dc:title ?Content .
?o foaf:name ?Author .
}
ORDER BY ?Content

结果如下:

http://www.sparql.org/sparql?query=PREFIX+dc%3A+%3Chttp%3A%2F%2Fpurl.org%2Fdc%2Felements%2F1.1%2F%3E%0D%0APREFIX+foaf%3A+%3Chttp%3A%2F%2Fxmlns.com%2Ffoaf%2F0.1%2F%3E%0D%0ASELECT+%3FContent+%3FAuthor%0D%0AFROM+%3Chttp%3A%2F%2Fwww.w3.org%2F2007%2F08%2FpyRdfa%2Fextract%3Furi%3Dhttp%3A%2F%2Fwww.3kbo.com%2Fexamples%2Frdfa%2Fsimple.html%3E%0D%0AWHERE+{%0D%0A%09%3Fs+dc%3Acreator+%3Fo+.%0D%0A%09%3Fs+dc%3Atitle+%3FContent+.%0D%0A%09%3Fo+foaf%3Aname+%3FAuthor+.%0D%0A%09}%0D%0AORDER+BY+%3FContent&default-graph-uri=&output=text&stylesheet=%2Fxml-to-html.xsl

2:这个查询不会产生类似于上面的结果:

PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?Content ?Author
FROM <http://www.w3.org/2007/08/pyRdfa/extract?uri=http://www.w3.org/2013/Talks/0902-Lisbon-IH/>
WHERE {
?s dc:author ?o .
?s dc:title ?Content .
?o foaf:name ?Author .
}
ORDER BY ?Content

结果如下:

http://www.sparql.org/sparql?query=PREFIX+dc%3A+%3Chttp%3A%2F%2Fpurl.org%2Fdc%2Felements%2F1.1%2F%3E%0D%0APREFIX+foaf%3A+%3Chttp%3A%2F%2Fxmlns.com%2Ffoaf%2F0.1%2F%3E%0D%0ASELECT+%3FContent+%3FAuthor%0D%0AFROM+%3Chttp%3A%2F%2Fwww.w3.org%2F2007%2F08%2FpyRdfa%2Fextract%3Furi%3Dhttp%3A%2F%2Fwww.w3.org%2F2013%2FTalks%2F0902-Lisbon-IH%2F%3E%0D%0AWHERE+{%0D%0A%09%3Fs+dc%3Aauthor+%3Fo+.%0D%0A%09%3Fs+dc%3Atitle+%3FContent+.%0D%0A%09%3Fo+foaf%3Aname+%3FAuthor+.%0D%0A%09}%0D%0AORDER+BY+%3FContent%0D%0A&default-graph-uri=&output=text&stylesheet=%2Fxml-to-html.xsl

为什么 #2 无法产生像 #1 这样的结果?

#2 的 SPARQL 代码是否有错误?

或者与#1 和#2 关联的 RDFa 的结构是否存在语义差异?

我在示例中使用了这个 pyRdfa 版本:

http://www.w3.org/2007/08/pyRdfa/extract?uri=

不使用这个偶尔会混淆 SPARQL 处理器的版本:

http://www.w3.org/2012/pyRdfa/extract?uri=

TY 在这里提供指导。

最佳答案

http://www.w3.org/2013/Talks/0902-Lisbon-IH/使用 RDFa 1.1,但是 http://www.w3.org/2007/08/pyRdfa/extract?uri=支持 RDFa 1.0。

您使用的结果是:

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:xhv="http://www.w3.org/1999/xhtml/vocab#"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
>
<rdf:Description rdf:about="talk:">
<xhv:icon rdf:resource="http://www.w3.org/2001/sw/favicon-sw.png"/>
<xhv:stylesheet rdf:resource="http://www.w3.org/2006/02/charter-style.css"/>
<xhv:stylesheet rdf:resource="http://www.w3.org/Guide/pubrules-style.css"/>
<xhv:copyright rdf:resource="http://creativecommons.org/licenses/by-nd/3.0/"/>
</rdf:Description>
</rdf:RDF>

即没有三元利息。这是因为源使用 RDFa 1.1 @prefix 声明前缀RDFa 1.0 中不存在的属性。因此,根据较旧的解析器,大多数缩写的 URL 都会被破坏。

随着newer parser你会发现更多的三元组,包括:

...
talk: a ore:ResourceMap;
dc:author <http://www.ivan-herman.net/foaf#me>;
dc:date "$Date: 2013-08-27 07:51:24 $";
dc:title "Introduction to Linked Open Data";
ore:describes <http://www.w3.org/2012/0902-Lisbon-IH/#talk> .
...

这就是您正在寻找的。

但是

美中不足的是,这两个文档使用了不同版本的都柏林核心命名空间。 RDFa 1.1 绑定(bind) dc更新后的前缀 http://purl.org/dc/terms/默认情况下,这会抛出您的查询。

所以尝试:

PREFIX dc: <http://purl.org/dc/terms/> # FIXED dc
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?Content ?Author
# Use RDFa 1.1 parser
FROM <http://www.w3.org/2012/pyRdfa/extract?uri=http://www.w3.org/2013/Talks/0902-Lisbon-IH/>
WHERE {
?s dc:author ?o .
?s dc:title ?Content .
?o foaf:name ?Author .
}
ORDER BY ?Content

Tada , 结果。

关于SPARQL:一个查询有效;类似的查询失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25365266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com