如何过滤 SPARQL 查询中的简单主题
How to filter the simple Subject in a SPARQL Query
我想我还停留在 SPARQL 的基础知识上。有人可以帮忙吗?
我只是想过滤所有包含 RDS 数据库 "Mountain" 的主题。
Prefix lgdr:<http://linkedgeodata.org/triplify/> Prefix lgdo:<http://linkedgeodata.org/ontology/>
Select * where {
?s ?p ?o .
filter (contains(?s, "Mountain"))
} Limit 1000
查询导致错误:
Virtuoso 22023 Error SL001: The SPARQL 1.1 function CONTAINS() needs a string value as first argument
您可以使用以下方式将其发送至 "work":
Prefix lgdr:<http://linkedgeodata.org/triplify/> Prefix lgdo:<http://linkedgeodata.org/ontology/>
Select * where {
?s ?p ?o .
filter (contains(str(?s), "Mountain"))
} Limit 1000
请注意查询中的附加 str
。
然而,这会导致
Virtuoso S1T00 Error SR171: Transaction timed out
我不知道该如何处理。
但原则上可行:当您使用
Limit 1
你得到
s p o
http://linkedgeodata.org/ontology/MountainRescue http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://www.w3.org/2002/07/owl#Class
我想我还停留在 SPARQL 的基础知识上。有人可以帮忙吗?
我只是想过滤所有包含 RDS 数据库 "Mountain" 的主题。
Prefix lgdr:<http://linkedgeodata.org/triplify/> Prefix lgdo:<http://linkedgeodata.org/ontology/>
Select * where {
?s ?p ?o .
filter (contains(?s, "Mountain"))
} Limit 1000
查询导致错误:
Virtuoso 22023 Error SL001: The SPARQL 1.1 function CONTAINS() needs a string value as first argument
您可以使用以下方式将其发送至 "work":
Prefix lgdr:<http://linkedgeodata.org/triplify/> Prefix lgdo:<http://linkedgeodata.org/ontology/>
Select * where {
?s ?p ?o .
filter (contains(str(?s), "Mountain"))
} Limit 1000
请注意查询中的附加 str
。
然而,这会导致
Virtuoso S1T00 Error SR171: Transaction timed out
我不知道该如何处理。
但原则上可行:当您使用
Limit 1
你得到
s p o
http://linkedgeodata.org/ontology/MountainRescue http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://www.w3.org/2002/07/owl#Class