Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 在SPARQL中使用FILTER-on属性_Database_Sparql_Wikidata - Fatal编程技术网

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:)