* 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 .?s1 ?o1. ?o1 ?o2. ?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.