* Description

  • Use no prior knowledge such as predicates and statistics information of the source endpoints -- up-to-date information of each source
  • Contact each source with "ask" query in real time to determine the target source -- no predicates bound limitation
  • Save the predicate information in cache for future use
  • Join order: a heuristics-based cost estimation(based on a variation of the variable counting technique)

  • Use exclusive group and bound join technology to minimize the number of requests sent to federation members

* source code:

FedX3.1

 http://www.fluidops.com/en/company/training/open_source

* execute:

example:

[fsearch@cl38 FedX]$ java -jar FedX3.1.jar -d bio2RDF.ttl -f STDOUT -q  "select  ?s1 ?o1 ?o2 where{ ?s1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://bio2rdf.org/omim_vocabulary:Gene>.?s1   <http://bio2rdf.org/omim_vocabulary:refers-to> ?o1. ?o1   <http://bio2rdf.org/omim_vocabulary:x-snomed> ?o2.
<http://bio2rdf.org/pharmgkb:PA446359> <http://bio2rdf.org/pharmgkb_vocabulary:x-snomedct> ?o2.}"

Result:

query1: return 5 results query2: return 40 results

query3: return 790 results

query4: return 9492 results

query5: return 111962 results

Query\time(ms) time 1 time 2 time 3 time 4time 5 average*
q1 11624 9469 10377 8978 93559545
q247152 43902435694241843393 43321
q3 113629 108622109989109297 109796109426
q4 106218 108579109989107731 106713107310
q5792628 794677806516819745812255 801519
q3s 109541 105442109989105650 106808106972
q5s 27390 17186111769099 740611216

*here we calculate the average by excluding the maximum in the five values.

添付ファイル