如何将搜索的RDF数据库来寻找重叠的最有样品图图的部分?搜索RDF图部分匹配
例如,说我的数据库存储以下任意图表:
entity1 [
type "TOP" ;
attr1 [
attr11 [
attr111 "apple" ;
] ;
attr12 [
attr121 "orange" ;
] ;
attr13 [
attr131 "banana" ;
] ;
] ;
attr2 [
attr21 [
attr211 "falcon" ;
] ;
attr22 [
attr221 "pigeon" ;
] ;
attr23 [
attr231 "parrot" ;
] ;
] ;
] .
entity2 [
type "TOP" ;
attr11 [
attr111 "apple" ;
] ;
attr12 [
attr121 "orange" ;
] ;
] .
entity3 [
type "TOP" ;
attr2 [
attr_middle [
attr21 [
attr211 "falcon" ;
] ;
attr22 [
attr221 "pigeon" ;
] ;
attr23 [
attr231 "parrot" ;
] ;
] ;
] ;
] .
现在说我有样品图:
sample [
type "TOP" ;
attr11 [
attr111 "apple" ;
] ;
attr12 [
attr121 "orange" ;
] ;
attr13 [
attr131 "banana" ;
] ;
attr21 [
attr211 "falcon" ;
] ;
attr22 [
attr221 "pigeon" ;
] ;
attr23 [
attr231 "parrot" ;
] ;
] .
显然,没有在数据库中的样本完美匹配,但是每个实体都会对其进行部分匹配,即使每个图中的comman三元组都存在于不同的级别。
我将如何找到样本最接近的比赛吗?在这种情况下,我期望查询返回,首先排序最佳匹配,[entity1, entity3, entity2]
。
我还是有点新RDF,所以原谅我,如果我的术语是关闭的。正如我目前了解RDF数据库一样,我试图做的并不是它们如何使用。如果我想使用SPARQL查询来查找包含关系attr111 =“apple”的实体,我通常必须假定关系位于相对于每个实体的固定位置,在相对于每个实体的任意位置搜索三元组“根”要困难得多。那是对的吗?