如何將搜索的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」的實體,我通常必須假定關係位於相對於每個實體的固定位置,在相對於每個實體的任意位置搜索三元組「根」要困難得多。那是對的嗎?