Database 在SPARQL中使用FILTER-on属性
如何选择以特定前缀开头的所有属性,例如Database 在SPARQL中使用FILTER-on属性,database,sparql,wikidata,Database,Sparql,Wikidata,如何选择以特定前缀开头的所有属性,例如wdt:?我想获取与某个项相关的所有属性,但对模式:、rdf:、p:等不感兴趣 SELECT DISTINCT ?p WHERE { wd:Q2 ?p ?entity. } 此查询将返回所有属性。我尝试使用FILTER(STRSTARTS(?p),wdt:),FILTER(STRSTARTS(str(?p),“wdt:)和FILTER(STRSTARTS(xsd:string(?p),“wdt:)来检查属性是否以wdt:开头,但结果总是空的。wdt:是
wdt:
?我想获取与某个项相关的所有属性,但对模式:
、rdf:
、p:
等不感兴趣
SELECT DISTINCT ?p
WHERE {
wd:Q2 ?p ?entity.
}
此查询将返回所有属性。我尝试使用
FILTER(STRSTARTS(?p),wdt:)
,FILTER(STRSTARTS(str(?p),“wdt:)
和FILTER(STRSTARTS(xsd:string(?p),“wdt:)
来检查属性是否以wdt:
开头,但结果总是空的。wdt:是前缀,意味着它是一种缩写较长内容的方法
wdt:P31实际上存储为
http://www.wikidata.org/prop/direct/P31
原则上,您可以在查询中指定不同的前缀,如下所示:
前缀hello:
然后你会有hello:P31作为你的财产
因此,请尝试使用以下方法:
SELECT DISTINCT ?p
WHERE {
wd:Q2 ?p ?entity.
FILTER(STRSTARTS(STR(?p), "http://www.wikidata.org/prop/direct/"))
}
有关前缀的详细信息:
列出并解释每个前缀:
prefx的完整列表:
[]wikibase:directClaim?p
或过滤器STRSTARTS(STR(?.p),STR(wdt:)
。