简体   繁体   English

在SPARQL查询中的图上使用FILTER

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM