* 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 4 | time 5 | average* |
q1 | 11624 | 9469 | 10377 | 8978 | 9355 | 9545 |
q2 | 47152 | 43902 | 43569 | 42418 | 43393 | 43321 |
q3 | 113629 | 108622 | 109989 | 109297 | 109796 | 109426 |
q4 | 106218 | 108579 | 109989 | 107731 | 106713 | 107310 |
q5 | 792628 | 794677 | 806516 | 819745 | 812255 | 801519 |
q3s | 109541 | 105442 | 109989 | 105650 | 106808 | 106972 |
q5s | 27390 | 17186 | 11176 | 9099 | 7406 | 11216 |
*here we calculate the average by excluding the maximum in the five values.
添付ファイル
- bio2RDF.ttl (0.6 KB) - 登録者 wu 10 年 前.