GDD-Nantes / FedShop

Code for FedShop: The Federated Shop Benchmark
GNU General Public License v3.0
8 stars 1 forks source link

Use Apache Jena as baseline #28

Closed mhoangvslev closed 1 year ago

mhoangvslev commented 1 year ago

PREFIX rdfs: http://www.w3.org/2000/01/rdf-schema# PREFIX rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# PREFIX bsbm: http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/ PREFIX owl: http://www.w3.org/2002/07/owl#

SELECT DISTINCT ?product ?localProductLabel WHERE {

VALUES (?bgp1 ?bgp2) {
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.vendor12.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite66.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite22.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.vendor23.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite61.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.vendor23.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.vendor4.fr/>  <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.vendor23.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite21.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.vendor23.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite27.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.vendor23.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite44.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.vendor23.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite92.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.vendor23.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite22.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.vendor3.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite61.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.vendor3.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.vendor4.fr/>  <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.vendor3.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite21.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.vendor3.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite27.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.vendor3.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite44.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.vendor3.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite92.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.vendor3.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.vendor39.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.vendor23.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite82.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.vendor23.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite22.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite66.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite61.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite66.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.vendor4.fr/>  <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite66.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite21.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite66.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite27.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite66.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite44.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite66.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite92.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite66.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.vendor39.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.vendor3.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite82.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.vendor3.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.vendor12.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.vendor3.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.vendor12.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite28.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.vendor39.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite66.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite82.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite66.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.vendor39.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite28.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite44.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite28.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite82.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite28.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite22.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite28.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite61.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite28.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.vendor4.fr/>  <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite28.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite21.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite28.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite27.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite28.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite92.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.ratingsite28.fr/> )
    ( <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.vendor12.fr/> <http://host.docker.internal:34202/sparql/?default-graph-uri=http://www.vendor23.fr/> )
}

SERVICE ?bgp2 {
    # const bsbm:Product40995
    ?localProductXYZ owl:sameAs bsbm:Product40995  .
    ?localProductXYZ bsbm:productFeature ?localProdFeatureXYZ . 
    ?localProdFeatureXYZ owl:sameAs ?prodFeature .
    ?localProductXYZ bsbm:productPropertyNumeric1 ?origProperty1  .
    ?localProductXYZ bsbm:productPropertyNumeric2 ?origProperty2  .
} .

SERVICE ?bgp1 {
    ?localProduct owl:sameAs ?product  .
    FILTER (bsbm:Product40995 != ?product)        
    ?localProduct rdfs:label ?localProductLabel  .
    ?localProduct bsbm:productFeature ?localProdFeature  .
    ?localProdFeature owl:sameAs ?prodFeature .
    ?localProduct bsbm:productPropertyNumeric1 ?simProperty1  .
    ?localProduct bsbm:productPropertyNumeric2 ?simProperty2  .    
} .

# Values are pre-determined because we knew the boundaries from the normal distribution
FILTER(?simProperty1 < (?origProperty1 + 20) && ?simProperty1 > (?origProperty1 - 20))
FILTER(?simProperty2 < (?origProperty2 + 70) && ?simProperty2 > (?origProperty2 - 70))

}

ORDER BY ?localProductLabel

LIMIT 5

mhoangvslev commented 1 year ago

https://jena.apache.org/documentation/query/explain.html