我正在使用此SPARQL查询来检索资源的所有属性,例如,资源 http://dbpedia.org/resource/Suez 此查询不会检索 http://dbpedia.org/page/Suez 中的所有属性,我知道该页面与资源不同。
如何检索 html 页面中的所有属性?
这是我没有前缀的查询:
SELECT DISTINCT ?property ?Label
WHERE
{
{
<http://dbpedia.org/resource/Suez> ?property ?o .
} union
{
?o ?property <http://dbpedia.org/resource/Suez>
}
?property rdfs:label ?Label.
FILTER (lang(?Label) = 'en').
}
你没有提到你没有看到哪些属性,但你要求每个属性实际上都有一个rdfs:label 的值,但并非所有属性都有。 例如,此查询返回 16 个结果:
select distinct ?property {
{ dbr:Suez ?property ?o }
union
{ ?s ?property dbr:Suez }
filter not exists { ?property rdfs:label ?label }
}
SPARQL结果
您需要更新查询以检查属性是否具有标签,然后获取英文标签(如果有):
select distinct ?property ?label {
{ dbr:Suez ?property ?o }
union
{ ?s ?property dbr:Suez }
optional {
?property rdfs:label ?label .
filter langMatches(lang(?label), 'en')
}
}
SPARQL结果
以下 sparql 查询将显示资源苏伊士的所有属性和值。
select distinct ?property ?value{
dbr:Suez ?property ?value
}
SPARQL结果
您可以使用链接 Suez 将上述查询的结果与通过任何 Web 浏览器提供的实际资源属性进行比较。
关于上述查询的结果,请注意如下:
具有多个值的属性将显示多次。例如,属性"dct:subject"有八个不同的值,因此将在结果中显示八次。
"dbo:abstract"将在不同语言的摘要结果中多次显示。
希望对您有所帮助。
干杯安比。