BH14.14/FedX

提供:TogoWiki

移動: 案内, 検索

目次

問題例

ある対象に対して情報なし、あるいはこの対象の詳しい情報をretrieveする場合は、 ?s ?p ?oを使っています。 この中に、tripple pattern ?s ?p ?oのどちらでも情報ない(変数はboundされない)queryはFedX常に返事が返ってこないです。


select ?s1 ?o1 ?o2

where{

?s1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://bio2rdf.org/omim_vocabulary:Gene>.

?s1 ?p ?o1.

?o1 <http://bio2rdf.org/omim_vocabulary:x-snomed> ?o2.

<http://bio2rdf.org/pharmgkb:PA446359> <http://bio2rdf.org/pharmgkb_vocabulary:x-snomedct> ?o2.

}

Reference:

1. Federated SPARQL query BenchMark

2. FedX

失敗の原因

Fedxは同じgroup化されっているtriple pattern "?s1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://bio2rdf.org/omim_vocabulary:Gene>." と "?o1 <http://bio2rdf.org/omim_vocabulary:x-snomed> ?o2."はcross joinなので、結果が多いです. Bio2RDFのendpointは返る結果の数制限があって、最後の結果とつながる ?o1は帰られなかったです。


解決策

同じgroupのjoinするtripple patternの変数をcheckして、共有変数がなければ、groupから外します。


結果

以上queryは結果が正しく返りました。

benchmarkの例をテストして、悪い影響がなかったです。benchmarkのquery

これから

こういうようなpatternが全部解決されるか?疑問

FEDXの効率化に引き続き作業。

問い合わせするsparqlの情報(boundされる変数)はもっと少なくなるについての問題のcheck

/mw/BH14.14/FedX」より作成