[英]use FILTER on graph in SPARQL query
I have thousands of quads/triples in knowledgebase Allegro Graph. 我在知识库Allegro Graph中有成千上万个四边形/三元组。 I am using the following SPARQL query to find out the specific graph from knowledge base 我正在使用以下SPARQL查询从知识库中查找特定的图
SELECT ?subject ?predicate ?object ?graph
FROM Named <http://www.abc.com/xyz/abc123graphname>
WHERE {GRAPH ?graph
{?subject ?predicate ?object .}}
This shows all quads that has graph name = http://www.abc.com/xyz/abc123graphname . 这将显示所有具有图形名称= http://www.abc.com/xyz/abc123graphname的四边形。 But now I want to use FILTER to show only those quads that has graph name start with abc*. 但是现在我想使用FILTER仅显示图形名称以abc *开头的那些四边形。
such as 如
<http://www.abc.com/xyz/abc123graphname>
<http://www.abc.com/xyz/abc425graphname>
<http://www.abc.com/xyz/abc324graphname>
Please note that I have many graph names in my knowledge base such as 请注意,我的知识库中有许多图形名称,例如
<http://www.abc.com/xyz/abc123graphname>
<http://www.abc.com/xyz/abc425graphname>
<http://www.abc.com/xyz/abc324graphname>
<http://www.abc.com/xyz/xyz123graphname>
<http://www.abc.com/xyz/samplegraphname>
<http://www.abc.com/xyz/vibergraphname>
Many Thanks in advance 提前谢谢了
You can filter on the graph name with some variation on: 您可以对图表名称进行过滤,其中包括:
{ GRAPH ?graph {?subject ?predicate ?object .}
FILTER( contains(str(?graph), "abc") )
}
or use a different string test. 或使用其他字符串测试。 Note the str(...)
. 注意str(...)
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.