我指的是SPARQL - Find objects with the most similar properties和Sparql query: find objects with same property objects
我的问题可能介于上述两个中间:我想找到属性和属性值的精确(不相似)匹配。我事先知道我要匹配的输入实体,但属性是任意变量(值也是如此)。
我将属性级别限制在一个级别(最多为对象值的类型),但是看到基本上找到实体匹配的解决方案(基于属性值)肯定会有所帮助。
chicago:store1 :sells :Music1 ;
:employees 2 ;
:code "123" .
:Music1 a :Music .
# should not match - # employees different
nyc:store2 :sells :Music2 ;
:employees 1 ;
:code "123" .
:Music2 a :Music .
# should not match - # code string different
nyc:store3 :sells :Music3 ;
:employees 2 ;
:code "12" .
:Music3 a :Music .
# should not match - # type of sells value is not same
nyc:store4 :sells :Music4 ;
:employees 2 ;
:code "123" .
:Music4 a :DisjointThing .
# exact match
nyc:store5 :sells :Music5 ;
:employees 2 ;
:code "123" .
:Music5 a :Music .
用于展示我想要的伪查询:
Given the store in chicago
Find me all other stores in nyc that have exactly the same properties (no more, no less)
类似的问题也是"列出相等",在这种情况下,可以认为存在被比较的属性列表。但是,:store
的其中一个属性可能有一个实际列表,例如chicago:store1 :inventory "Blues" , "Rock"
。那么我实际上也在寻找列表相等性。请随意忽略最后一个(直到我们能够理解上面这个问题中突出显示的主要问题)。