SPARQL图形模式比较

时间:2014-02-13 13:08:11

标签: rdf sparql semantic-web

SPARQL图形模式是UBVxUVxUBVL形式的三重模式的组合。 其中U是URI,B是空节点V是变量,L是文字。

实施例

查询q1

Select ?author where
?author ex:wrote ?book

查询q2

Select ?author where
?author ex:wrote ?book
?book ex:title "Eaters of the dead"

比较两种基本图形模式的最佳算法是什么?例如,q2的图形模式的结果是q1的那些的子集。我怎么能以编程方式确定这个?

2 个答案:

答案 0 :(得分:1)

您可以通过将where子句转换为图形来完成您正在尝试的操作。然后,您可以使用标准图算法来比较查询,例如使用同构来查看它们是否是同一个。

答案 1 :(得分:0)

如果q2是q1的一部分,则更具体的模式应该返回更小的结果集。因此,计算两组并从计数(q1)中减去计数(q2)将显示q1中不在q2中的作者数,表明q2更具体。如果结果是否定的,则Q2更具体。

例如:

 SELECT ((?countQ1 - ?countQ2) as ?result) WHERE {

       {SELECT (count(distinct ?author) as ?countQ1) WHERE {
              ?author ex:wrote ?book .
       }}

       {SELECT (count(distinct ?author) as ?countQ2) WHERE {
              ?author ex:wrote ?book .
              ?book ex:title "Eaters of the dead"
       }}
 }