我擁有如下所示的RDF三元組集合。在SPARQL中查找星形子圖模式
id#7289587 ex:getInfectedBy id#7748320
id#7694711 ex:getInfectedBy id#7748320
id#7748322 ex:getInfectedBy id#7748320
id#7748887 ex:getInfectedBy id#7748320
id#7746679 ex:getInfectedBy id#7748510
id#6434108 ex:getInfectedBy id#7748510
id#7458397 ex:getInfectedBy id#7748510
我的目標是計算各種節點長度(4,5,6,...,20)的星形子圖形。例如,我寫下面的查詢來查找節點長度爲4的星形子圖模式(?s1?s2?s3?o)。
SELECT ?o count(distinct ?o)
WHERE
{
?s1 ?p ?o.
?s2 ?p ?o.
?s3 ?p ?o.FILTER((?s1!=?s2) && (?s1!=?s3) && (?s2!=?s3))
} group by ?o
節點4的上述查詢計數星形圖案長度爲兩個節點id#7748320
和id#7748510
。但是,它假設給我只有節點id#7748510
的結果。如果我使用5節點星型模式修改查詢,那麼節點id#7748320
也會顯示在那裏。你能幫我解決嗎?
是否有可能用一個查詢計算各種節點長度(4,5,6,...,20)的星形子圖形?請告訴我。我感謝您的幫助。
只需使用'SELECT * WHERE'用你的查詢來看看爲什麼這在SPARQL中是正確的。很明顯,節點id#7748320'的數據也與SPARQL查詢的模式相匹配,它只是要求在查詢中滿足「至少」該要求的內容。 – AKSW