$$%% examples \newcommand{\exGraph}{\graph_{\mathrm{ex}}} \newcommand{\exOnto}{\onto_{\mathrm{ex}}} \newcommand{\exMappings}{\mappings_{\mathrm{ex}}} \newcommand{\exExtensions}{\extensions_{\mathrm{ex}}} \newcommand{\exRule}{r_{\mathrm{ex}}} \newcommand{\RDFSrules}{\rules_{\mathrm{RDFS}}} %% RDF \newcommand{\triple}[3]{(#1, #2, #3)} \newcommand{\tuple}[1]{\langle #1 \rangle} \newcommand{\subject}{\mathtt{s}} \newcommand{\prop}{\mathtt{p}} \newcommand{\object}{\mathtt{o}} \newcommand{\blank}{\_{:}b} \newcommand{\blankn}[1]{\_{:}#1} \newcommand{\irin}[1]{{:}\mathrm{#1}} \newcommand{\class}{\mathtt{c}} \newcommand{\nsrdf}{\mathrm{rdf{:}}} \newcommand{\nsrdfs}{\mathrm{rdfs{:}}} \newcommand{\rdftype}{\mathrm{rdf{:}type}} \newcommand{\rdfLiteral}{\mathrm{rdf{:}Literal}} \newcommand{\rdfssubClassOf}{\mathrm{rdfs{:}subClassOf}} \newcommand{\rdfssubPropertyOf}{\mathrm{rdfs{:}subPropertyOf}} \newcommand{\rdfsdomain}{\mathrm{rdfs{:}domain}} \newcommand{\rdfsrange}{\mathrm{rdfs{:}range}} \newcommand{\rdfsClass}{\mathrm{rdfs{:}Class}} \newcommand{\rdfProperty}{\mathrm{rdf{:}Property}} \newcommand{\xsdint}{\mathrm{xsd{:}int}} %% \newcommand{\type}{\tau} \newcommand{\subclass}{\prec_{sc}} \newcommand{\subproperty}{\prec_{sp}} \newcommand{\domain}{\hookleftarrow_{d}} \newcommand{\range}{\hookrightarrow_{r}} \newcommand{\rdfentailment}{\vdash_{^\mathrm{RDF}}} \newcommand{\RDFS}[1]{\mathrm{RDFS}(#1)} \newcommand{\aka}{a.k.a.~} \newcommand{\etc}{etc} \newcommand{\wrt}{w.r.t.~} \newcommand{\st}{s.t.~} \newcommand{\ie}{i.e.,~} \newcommand{\eg}{e.g.,~} \newcommand{\graph}{G} \newcommand{\rules}{\mathcal{R}} \newcommand{\sources}{\mathcal{S}} \newcommand{\views}{\mathcal{V}} \newcommand{\extensions}{\mathcal{E}} \newcommand{\onto}{\mathcal{O}} \newcommand{\mappings}{\mathcal{M}} \newcommand{\modelsrdf}{\models_\rules} \newcommand{\bgp}{P} \newcommand{\Bl}[1]{\mathrm{Bl}(#1)} \newcommand{\Val}[1]{\mathrm{Val}(#1)} \newcommand{\Var}[1]{\mathrm{Var(#1)}} \newcommand{\ext}[1]{\mathrm{ext}(#1)} \newcommand{\cert}{\mathrm{cert}} \newcommand{\ans}{\mathrm{ans}} \newcommand{\query}{\leftarrow} \newcommand{\body}[1]{\textrm{body}(#1)} \newcommand{\head}[1]{\textrm{head}(#1)} \newcommand{\cs}{\mathrm{cs}} \newcommand{\lcs}{\mathrm{lcs}} \newcommand{\cl}{\mathrm{cl}} \newcommand{\lua}{\mathrm{lua}} \newcommand{\lur}{\mathrm{lur}} \newtheorem{lemma}{Lemma} \newtheorem{definition}{Definition} \newtheorem{problem}{Problem} \newtheorem{property}{Property} \newtheorem{corollary}{Corollary} \newtheorem{example}{Example} \newtheorem{theorem}{Theorem} \newcommand{\URIs}{\mathscr U} \newcommand{\IRIs}{\mathscr I} \newcommand{\BNodes}{\mathscr B} \newcommand{\Literals}{\mathscr L} \newcommand{\Variables}{\mathscr V} % DB \newcommand{\CQ}{\ensuremath{\mathtt{CQ}}\xspace} \newcommand{\UCQ}{\ensuremath{\mathtt{UCQ}}\xspace} \newcommand{\SQL}{\ensuremath{\mathtt{SQL}}\xspace} \newcommand{\rel}[1]{\mathsf{#1}} % Cost model \newcommand{\cans}[1]{|#1|_t} \newcommand{\cref}[1]{|#1|_r} \newcommand{\db}{\mathtt{db}} % DL \newcommand{\cn}{\ensuremath{N_{C}}\xspace} \newcommand{\rn}{\ensuremath{N_{R}}\xspace} \newcommand{\inds}{\ensuremath{N_{I}}\xspace} \newcommand{\ainds}{\ensuremath{\mathrm{Ind}}\xspace} \newcommand{\funct}{\mathit{funct} \ } \newcommand{\KB}{\mathcal{K}\xspace} \newcommand{\dlr}{DL-Lite$_{\mathcal{R}}$\xspace} % Logics \newcommand{\FOL}{\ensuremath{\mathtt{FOL}}\xspace} \newcommand{\datalog}{\ensuremath{\mathtt{Datalog}}\xspace} \newcommand{\dllite}{DL-Lite\xspace} \newcommand{\true}{\mathrm{true}} \newcommand{\false}{\mathrm{false}} \newcommand{\dis}{\mathtt{dis}} \newcommand{\vars}[1]{\ensuremath{\mathrm{vars}(#1)}} %\newcommand{\terms}[1]{\ensuremath{\mathrm{terms}(#1)}} %math \renewcommand{\phi}{\varphi} \newcommand\eqdef{\stackrel{\mathclap{\normalfont\mbox{def}}}{=}} \newcommand\restr[2]{#1_{|#2}} \newcommand{\ontoBody}[1]{\mathrm{body}_\onto(#1)} %proof of the rewriting theorem \newcommand{\rdfGraph}{\graph^{\mappings}_{\extensions}} \newcommand\systemGraph{\graph^{\mappings \cup \mappings^{\text{STD}}_\onto}_{\extensions \cup \extensions_\onto}} \newcommand\viewsGraph{\graph^{\mappings^{\rules,\onto} \cup \mappings^{\text{STD}}_\onto}_{\extensions \cup \extensions_\onto}} \newcommand{\standMappings}{\mappings^{\text{STD}}_\onto} \newcommand{\reminder}[1]{[\vadjust{\vbox to0pt{\vss\hbox to0pt{\hss{\Large $\Longrightarrow$}}}}{{\textsf{\small #1}}}]} %\newcommand{\FG}[1]{\textcolor{blue}{\reminder{FG:~#1}}} \newcommand{\extVersion}{false} \newcommand{\printIfExtVersion}[2] { \ifthenelse{\equal{\extVersion}{true}}{#1}{} \ifthenelse{\equal{\extVersion}{false}}{#2}{} } \newcommand{\bda}{\true} \newcommand{\ifBDA}[2]% {% \ifthenelse{\equal{\bda}{true}}{#1}{}% \ifthenelse{\equal{\bda}{false}}{#2}{}% } %%% Local Variables: %%% TeX-master: "paper" %%% End: $$

Experiments 27-03 BSBM existential 1M

This experiments are made on the RDF integration system using GLAV mappings on BSBM 1M.

Methods Comparison

Total time

It is the total query answering time.

total-time-comparison.png

Rewriting time

The rewriting time is the time to build complete set of rewriting of the query according to mappings. It doesn't include optimizations.

rewriting-time-comparison.png

Rewritings Processing Time

Rewritings processing is the part of query answering that concerns only rewriting building and rewriting optimization. It doesn't includes the query plan optimization and evaluation.

rewriting-processing-time.png

Query Plan Processing Time

Query plan processing time are the sum of query plan optimization and query plan evaluation. Since the two method returns minimal equivalent rewriting set, we expect that there is no time different between the two method at this step.

query-plan-time.png

Reformulation Based Method

Raw Statistics

This statistics are build from 5 runs after 1 dry run.

INPUT NANS NTRI NREF NREW NCLASH NCOVER TREF TREW TCLASH TCOVER TCORE TOP TQEV TTOTAL
Q01 1272.0 5.0 7.0 8.0 6.0 2.0 0.0 34.4 0.2 0.4 12.4 2.8 40.4 90.6
Q01a 4376.0 5.0 21.0 16.0 12.0 4.0 0.2 98.4 0.2 0.6 23.8 4.8 87.6 215.6
Q01b 22738.0 5.0 175.0 128.0 96.0 32.0 2.8 832.2 1.2 8.4 196.8 34.6 608.6 1684.6
Q02 16.0 6.0 21.0 16.0 12.0 4.0 0.4 465.8 0.2 0.6 22.6 5.4 50.0 545.0
Q02a 56.0 6.0 49.0 32.0 24.0 8.0 1.0 1080.0 0.6 2.0 50.8 11.0 97.2 1242.6
Q02b 174.0 6.0 147.0 64.0 48.0 16.0 3.4 3195.8 0.6 5.4 88.8 19.6 191.8 3505.4
Q02c 1342.0 6.0 1225.0 512.0 384.0 128.0 27.8 26524.4 4.4 57.0 750.8 180.0 1492.0 29036.4
Q03 19.0 5.0 525.0 128.0 nan 64.0 7.8 8664.4 1.6 40.6 1092.8 111.4 763.4 10682.0
Q04 91.0 2.0 1.0 8.0 6.0 2.0 0.2 2.6 0.0 0.0 1.2 1.0 7.8 12.8
Q05 56200.0 4.0 1.0 8.0 7.0 1.0 0.0 2.4 0.0 0.0 3.4 2.2 321.4 329.4
Q05a 33089.0 4.0 3.0 2.0 nan 2.0 0.0 30.6 0.0 0.0 1.4 1.0 189.0 222.0
Q05b 50958.0 4.0 7.0 4.0 nan 4.0 0.2 70.2 0.0 0.0 3.8 1.8 355.4 431.4
Q06 52208.0 3.0 5.0 2.0 nan 2.0 0.4 24.4 0.0 0.6 4.0 1.4 376.6 407.4
Q06a 29377.0 6.0 15.0 4.0 nan 4.0 0.4 356.2 0.2 0.8 8.2 4.8 365.2 735.8
Q06b 17815.0 6.0 35.0 8.0 nan 8.0 0.8 815.4 0.6 1.6 17.0 9.2 405.4 1250.0
Q07 2.0 3.0 5.0 194.0 nan 194.0 0.2 48.4 0.2 12.0 16.4 99.8 992.8 1169.8
Q07a 3.0 3.0 19.0 776.0 nan 388.0 0.0 172.4 0.4 105.0 32.4 248.2 2089.6 2648.0
Q08 56200.0 3.0 1.0 1.0 nan 1.0 0.0 2.2 0.0 0.0 4.8 1.8 348.0 356.8
Q09 5617.0 1.0 7.0 2.0 nan 2.0 0.2 13.8 0.0 0.0 5.4 0.4 29.6 49.4
Q10 9.0 3.0 670.0 786.0 nan 586.0 5.0 5301.8 1.4 183.6 61.2 246.4 3149.4 8948.8
Q10a 14.0 3.0 2132.0 3144.0 nan 1172.0 18.2 16907.4 3.8 1148.0 128.2 723.0 6730.2 25658.8
Q10b 24.0 3.0 5300.0 9432.0 nan 2344.0 49.2 42350.2 12.2 5598.4 260.2 2399.8 14269.6 64939.6
Q11 116.0 5.0 11052.0 48.0 42.0 1.0 173.2 101074.8 9.2 4.0 2.0 1.0 7.4 101271.6
Q14 56200.0 3.0 1.0 1.0 nan 1.0 0.4 11.4 0.0 0.0 4.0 1.6 343.8 361.2
Q15 28100.0 5.0 1.0 4.0 3.0 1.0 0.0 9.4 0.0 0.0 4.2 2.2 298.2 314.0
Q16 8114.0 4.0 25.0 16.0 nan 16.0 0.2 152.4 0.0 0.4 55.8 13.4 443.4 665.6
Q17 52208.0 2.0 5.0 2.0 nan 2.0 0.0 19.8 0.0 0.4 3.6 1.0 342.0 366.8
Q18 56200.0 4.0 1.0 4.0 3.0 1.0 0.0 8.0 0.0 0.0 6.2 2.0 470.6 486.8
Q19 2015.0 9.0 63.0 56.0 nan 16.0 1.8 2852.0 1.0 111.4 120.0 119.6 526.4 3732.2
Q19a 3515.0 9.0 147.0 112.0 nan 32.0 4.0 6598.0 1.0 218.8 242.4 243.2 1038.6 8346.0
Q19b 15511.0 9.0 525.0 448.0 nan 128.0 15.0 23436.0 3.8 897.6 1013.2 1003.8 4213.8 30583.2
Q20 0.0 11.0 21.0 4.0 nan 4.0 0.6 1322.8 0.2 47.2 40.4 58.4 427.2 1896.8
Q20a 236.0 11.0 63.0 8.0 nan 8.0 1.8 3939.2 0.0 96.8 81.2 116.8 1081.4 5317.2
Q20b 2312.0 11.0 525.0 64.0 nan 64.0 17.0 32608.4 3.8 778.2 684.2 953.6 8437.6 43482.8
Q20c 7564.0 11.0 1225.0 128.0 nan 128.0 46.4 75972.0 7.0 1567.8 1396.4 1926.8 17105.0 98021.4
Q21 1085.0 3.0 670.0 1060.0 566.0 385.0 6.0 793.4 2.0 103.4 53.6 178.2 2733.8 3870.4

Reformulation and Rewriting Numbers

reformulation-rewritings-numbers.png

Rewriting Processing Times

The label on bar represents the number of reformulations.

times-for-rewriting-ref.png

Rewriting Time According to Reformulation Number

rewriting time per reformulation number.png

Query Plan Processing Times

times-for-plan-evaluation-ref.png

Method Based on Mapping Saturation

Raw Statistics

INPUT NANS NTRI NREF NREW NCLASH NCOVER TREF TREW TCLASH TCOVER TCORE TOP TQEV TTOTAL
Q01 1272.0 5.0 nan 8.0 6.0 2.0 nan 34.4 0.0 0.4 12.0 2.0 38.0 86.8
Q01a 4376.0 5.0 nan 16.0 12.0 4.0 nan 37.2 0.0 0.8 23.4 4.4 84.8 150.6
Q01b 22738.0 5.0 nan 128.0 96.0 32.0 nan 38.8 0.4 5.0 189.8 35.2 581.2 850.4
Q02 16.0 6.0 nan 16.0 12.0 4.0 nan 49.2 0.0 0.6 22.2 5.6 48.4 126.0
Q02a 56.0 6.0 nan 32.0 24.0 8.0 nan 49.4 0.0 1.8 46.4 10.2 96.0 203.8
Q02b 174.0 6.0 nan 64.0 48.0 16.0 nan 52.6 0.0 2.8 97.6 21.2 188.2 362.4
Q02c 1342.0 6.0 nan 512.0 384.0 128.0 nan 68.0 1.2 32.2 899.0 192.2 1482.0 2674.6
Q03 19.0 5.0 nan 128.0 nan 64.0 nan 49.8 0.8 22.6 1306.0 102.0 745.0 2226.2
Q04 91.0 2.0 nan 8.0 6.0 2.0 nan 6.6 0.0 0.0 1.6 0.8 8.4 17.4
Q05 56200.0 4.0 nan 8.0 7.0 1.0 nan 6.2 0.2 0.0 3.6 2.0 318.8 330.8
Q05a 33089.0 4.0 nan 2.0 nan 2.0 nan 24.6 0.0 0.0 1.8 1.0 191.4 218.8
Q05b 50958.0 4.0 nan 4.0 nan 4.0 nan 24.6 0.2 0.0 2.8 2.0 348.6 378.2
Q06 52208.0 3.0 nan 2.0 nan 2.0 nan 14.6 0.0 0.0 3.8 1.4 363.4 383.2
Q06a 29377.0 6.0 nan 4.0 nan 4.0 nan 42.0 0.0 0.8 8.2 4.8 368.6 424.4
Q06b 17815.0 6.0 nan 8.0 nan 8.0 nan 43.8 0.0 1.0 16.0 9.2 412.0 482.0
Q07 2.0 3.0 nan 194.0 nan 194.0 nan 32.4 0.6 15.0 17.8 85.6 1016.2 1167.6
Q07a 3.0 3.0 nan 388.0 nan 388.0 nan 33.0 0.6 59.0 38.0 270.0 2095.2 2495.8
Q08 56200.0 3.0 nan 1.0 nan 1.0 nan 6.2 0.0 0.0 5.0 1.6 337.6 350.4
Q09 5617.0 1.0 nan 2.0 nan 2.0 nan 14.4 0.0 0.0 3.8 0.4 30.2 48.8
Q10 9.0 3.0 nan 586.0 nan 586.0 nan 81.6 0.4 160.8 67.0 260.8 3177.4 3748.0
Q10a 14.0 3.0 nan 1172.0 nan 1172.0 nan 90.4 0.8 639.6 143.8 878.4 6768.8 8521.8
Q10b 24.0 3.0 nan 2344.0 nan 2344.0 nan 102.8 1.8 2515.8 280.4 2811.6 14431.0 20143.4
Q11 116.0 5.0 nan 16.0 14.0 1.0 nan 135.2 0.0 0.0 2.0 0.6 6.0 143.8
Q14 56200.0 3.0 nan 1.0 nan 1.0 nan 24.6 0.0 0.0 4.6 1.6 367.0 397.8
Q15 28100.0 5.0 nan 4.0 3.0 1.0 nan 19.6 0.0 0.0 4.2 2.2 292.2 318.2
Q16 8114.0 4.0 nan 16.0 nan 16.0 nan 20.2 0.2 0.0 70.6 13.8 430.0 534.8
Q17 52208.0 2.0 nan 2.0 nan 2.0 nan 12.0 0.0 0.6 3.2 1.2 362.2 379.2
Q18 56200.0 4.0 nan 4.0 3.0 1.0 nan 16.8 0.0 0.0 6.6 2.0 435.8 461.2
Q19 2015.0 9.0 nan 56.0 nan 16.0 nan 93.2 0.4 138.6 121.6 115.8 524.6 994.2
Q19a 3515.0 9.0 nan 112.0 nan 32.0 nan 94.8 1.0 283.0 255.0 260.4 1037.0 1931.2
Q19b 15511.0 9.0 nan 448.0 nan 128.0 nan 143.4 2.0 1170.4 1039.2 977.4 4155.8 7488.2
Q20 0.0 11.0 nan 4.0 nan 4.0 nan 145.6 0.2 43.4 40.2 55.6 439.0 724.0
Q20a 236.0 11.0 nan 8.0 nan 8.0 nan 116.0 0.0 86.6 121.6 111.6 1045.6 1481.4
Q20b 2312.0 11.0 nan 64.0 nan 64.0 nan 128.4 0.4 709.4 683.2 913.4 8600.0 11034.8
Q20c 7564.0 11.0 nan 128.0 nan 128.0 nan 127.8 0.4 1420.4 1526.4 1962.0 17209.4 22246.4
Q21 1085.0 3.0 nan 929.0 539.0 385.0 nan 55.8 1.2 74.4 53.4 209.6 2770.8 3165.2

Rewriting Numbers

rewritings-numbers.png

Rewriting Processing Times

times-for-rewriting-rew.png

Query Plan Processing Times

times-for-plan-evaluation-rew.png

Queries

Queries are build by groups of Q, Qa, Qb … where Qb is always more general than Qa according to the ontology.

Q01<$label, $featureLabel, $value> :-
              triple($product, <rdfs:label>, $label),
              triple($product, <rdf:type>, <bsbm-int:ProductType110>),
              triple($product, <bsbm:productFeature>, $productFeature),
              triple($productFeature, <rdfs:label>, $featureLabel),
              triple($product, <bsbm:productPropertyNumeric>, $value);

Q01a<$label, $featureLabel, $value> :-
              triple($product, <rdfs:label>, $label),
              triple($product, <rdf:type>, <bsbm-int:ProductType8>),
              triple($product, <bsbm:productFeature>, $productFeature),
              triple($productFeature, <rdfs:label>, $featureLabel),
              triple($product, <bsbm:productPropertyNumeric>, $value);

Q01b<$label, $featureLabel, $value> :-
              triple($product, <rdfs:label>, $label),
              triple($product, <rdf:type>, <bsbm-int:ProductType4>),
              triple($product, <bsbm:productFeature>, $productFeature),
              triple($productFeature, <rdfs:label>, $featureLabel),
              triple($product, <bsbm:productPropertyNumeric>, $value);

Q02<$label, $value, $country> :-
              triple($product, <rdfs:label>, $label),
              triple($product, <rdf:type>, <bsbm-int:ProductType110>),
              triple($product, <bsbm:productPropertyNumeric>, $value),
              triple($product, <bsbm:producer>, $producer),
              triple($producer,<bsbm:country>, $country),
              triple($country, <rdf:type>, <bsbm:CountryType12>);

Q02a<$label, $value, $country> :-
              triple($product, <rdfs:label>, $label),
              triple($product, <rdf:type>, <bsbm-int:ProductType110>),
              triple($product, <bsbm:productPropertyNumeric>, $value),
              triple($product, <bsbm:producer>, $producer),
              triple($producer,<bsbm:country>, $country),
              triple($country, <rdf:type>, <bsbm:CountryType1>);

Q02b<$label, $value, $country> :-
              triple($product, <rdfs:label>, $label),
              triple($product, <rdf:type>, <bsbm-int:ProductType8>),
              triple($product, <bsbm:productPropertyNumeric>, $value),
              triple($product, <bsbm:producer>, $producer),
              triple($producer,<bsbm:country>, $country),
              triple($country, <rdf:type>, <bsbm:CountryType1>);

Q02c<$label, $value, $country> :-
              triple($product, <rdfs:label>, $label),
              triple($product, <rdf:type>, <bsbm-int:ProductType2>),
              triple($product, <bsbm:productPropertyNumeric>, $value),
              triple($product, <bsbm:producer>, $producer),
              triple($producer,<bsbm:country>, $country),
              triple($country, <rdf:type>, <bsbm:CountryType1>);

Q03<$product1, $product2> :-
           triple($product1, <rdf:type>, <bsbm-int:ProductType12>),
           triple($product1, <bsbm:productPropertyNumeric>, "774"),
           triple($product1, <bsbm:producer>, $producer),
           triple($product2, <rdf:type>, <bsbm-int:ProductType2>),
           triple($product2, <bsbm:producer>, $producer);

Q04<$vendor, $vendorLabel, $vendorHomepage> :-
             triple($vendor, <rdfs:label>, $vendorLabel),
             triple($vendor, <foaf:homepage>, $vendorHomepage);

Q05<$offer, $offerURL, $vendor, $vendorLabel, $vendorHomepage> :-
             triple($offer, <bsbm:vendor>, $vendor),
             triple($offer, <bsbm:offerWebpage>, $offerURL),
             triple($vendor, <rdfs:label>, $vendorLabel),
             triple($vendor, <foaf:homepage>, $vendorHomepage);

Q05a<$offer, $offerURL> :-
             triple($offer, <bsbm:vendor>, $vendor),
             triple($offer, <bsbm:offerWebpage>, $offerURL),
             triple($vendor, <bsbm:country>, $country),
             triple($country, <rdf:type>, <bsbm:CountryType11>);

Q05b<$offer, $offerURL> :-
             triple($offer, <bsbm:vendor>, $vendor),
             triple($offer, <bsbm:offerWebpage>, $offerURL),
             triple($vendor, <bsbm:country>, $country),
             triple($country, <rdf:type>, <bsbm:CountryType1>);

Q06<$review, $product, $rating> :-
             triple($review, <bsbm:reviewFor>, $product),
             triple($review, <http://purl.org/stuff/rev#reviewer>, $reviewer),
             triple($review, <bsbm:rating>, $rating);

Q06a<$review, $product, $rating> :-
             triple($review, <bsbm:reviewFor>, $product),
             triple($review, <http://purl.org/stuff/rev#reviewer>, $reviewer),
             triple($review, <bsbm:rating>, $rating),
             triple($product, <bsbm:producer>, $producer),
             triple($producer,<bsbm:country>, $country),
             triple($country, <rdf:type>, <bsbm:CountryType11>);

Q06b<$review, $product, $rating> :-
             triple($review, <bsbm:reviewFor>, $product),
             triple($review, <http://purl.org/stuff/rev#reviewer>, $reviewer),
             triple($review, <bsbm:rating>, $rating),
             triple($product, <bsbm:producer>, $producer),
             triple($producer,<bsbm:country>, $country),
             triple($country, <rdf:type>, <bsbm:CountryType2>);

Q07<$country> :-
            triple($org, <rdf:type>, <foaf:Organization>),
            triple($org, <bsbm:country>, $country),
            triple($country, <rdf:type>, <bsbm:CountryType222>);

Q07a<$country> :-
            triple($org, <rdf:type>, <foaf:Organization>),
            triple($org, <bsbm:country>, $country),
            triple($country, <rdf:type>, <bsbm:CountryType22>);

Q08<$offer, $offerURL, $price, $deliveryDays> :-
             triple($offer, <bsbm:offerWebpage>, $offerURL),
             triple($offer, <bsbm:price>, $price),
             triple($offer, <bsbm:deliveryDays>, $deliveryDays);

Q09<$product, $value> :-
              triple($product, <bsbm:productPropertyNumeric>, $value);

Q10<$country, $agentType> :-
            triple($agent, <rdf:type>, $agentType),
            triple($agent, <bsbm:country>, $country),
            triple($country, <rdf:type>, <bsbm:CountryType222>);

Q10a<$country, $agentType> :-
            triple($agent, <rdf:type>, $agentType),
            triple($agent, <bsbm:country>, $country),
            triple($country, <rdf:type>, <bsbm:CountryType22>);

Q10b<$country, $agentType> :-
            triple($agent, <rdf:type>, $agentType),
            triple($agent, <bsbm:country>, $country),
            triple($country, <rdf:type>, <bsbm:CountryType2>);

Q11<$label, $p, $country> :-
            triple($x, <rdfs:label>, $label),
            triple($x, $p, $org),
            triple($org, <rdf:type>, <foaf:Organization>),
            triple($org, <bsbm:country>, $country),
            triple($country, <rdf:type>, <bsbm:CountryType222>);

Q14<$product, $p, $offer, $vendor> :-
              triple($product, <bsbm:producer>, $p),
              triple($offer, <bsbm:product>, $product),
              triple($offer, <bsbm:vendor>, $vendor);

Q15<$review, $product, $label, $personName, $title> :-
             triple($product, <rdfs:label>, $label),
             triple($review, <bsbm:reviewFor>, $product),
             triple($review, <http://purl.org/stuff/rev#reviewer>, $person),
             triple($person, <foaf:name>, $personName),
             triple($review, <http://purl.org/dc/elements/1.1/title>, $title);

Q16<$review, $product, $title, $text> :-
             triple($review, <bsbm:reviewFor>, $product),
             triple($product, <rdf:type>, <bsbm-int:ProductType2>),
             triple($review, <http://purl.org/dc/elements/1.1/title>, $title),
             triple($review, <http://purl.org/stuff/rev#text>, $text);

Q17<$review, $product, $rating> :-
             triple($review, <bsbm:reviewFor>, $product),
             triple($review, <bsbm:rating>, $rating);

Q18<$offer, $product, $label, $vendor, $price> :-
              triple($offer, <bsbm:product>, $product),
              triple($product, <rdfs:label>, $label),
              triple($offer, <bsbm:vendor>, $vendor),
              triple($offer, <bsbm:price>, $price);

Q19<$offer, $offerURL, $price, $deliveryDays, $value> :-
             triple($offer, <bsbm:offerWebpage>, $offerURL),
             triple($offer, <bsbm:price>, $price),
             triple($offer, <bsbm:deliveryDays>, $deliveryDays),
             triple($offer, <bsbm:product>, $product),
             triple($product, <rdf:type>, <bsbm-int:ProductType8>),
             triple($product, <bsbm:productPropertyNumeric>, $value),
             triple($product, <bsbm:producer>, $producer),
             triple($producer,<bsbm:country>, $country),
             triple($country, <rdf:type>, <bsbm:CountryType12>);

Q19a<$offer, $offerURL, $price, $deliveryDays, $value> :-
             triple($offer, <bsbm:offerWebpage>, $offerURL),
             triple($offer, <bsbm:price>, $price),
             triple($offer, <bsbm:deliveryDays>, $deliveryDays),
             triple($offer, <bsbm:product>, $product),
             triple($product, <rdf:type>, <bsbm-int:ProductType8>),
             
             triple($product, <bsbm:productPropertyNumeric>, $value),
             triple($product, <bsbm:producer>, $producer),
             triple($producer,<bsbm:country>, $country),
             triple($country, <rdf:type>, <bsbm:CountryType2>);

Q19b<$offer, $offerURL, $price, $deliveryDays, $value> :-
             triple($offer, <bsbm:offerWebpage>, $offerURL),
             triple($offer, <bsbm:price>, $price),
             triple($offer, <bsbm:deliveryDays>, $deliveryDays),
             triple($offer, <bsbm:product>, $product),
             triple($product, <rdf:type>, <bsbm-int:ProductType3>),
             triple($product, <bsbm:productPropertyNumeric>, $value),
             triple($product, <bsbm:producer>, $producer),
             triple($producer,<bsbm:country>, $country),
             triple($country, <rdf:type>, <bsbm:CountryType12>);

Q20<$offer, $offerURL, $price, $deliveryDays, $value> :-
             triple($offer, <bsbm:offerWebpage>, $offerURL),
             triple($offer, <bsbm:price>, $price),
             triple($offer, <bsbm:deliveryDays>, $deliveryDays),
             triple($offer, <bsbm:product>, $product),
             triple($product, <bsbm:productFeature>, $productFeature),
             triple($productFeature, <rdfs:label>, "biographies"),
             triple($product, <rdf:type>, <bsbm-int:ProductType110>),
             triple($product, <bsbm:productPropertyNumeric>, $value),
             triple($product, <bsbm:producer>, $producer),
             triple($producer,<bsbm:country>, $country),
             triple($country, <rdf:type>, <bsbm:CountryType12>);

Q20a<$offer, $offerURL, $price, $deliveryDays, $value> :-
             triple($offer, <bsbm:offerWebpage>, $offerURL),
             triple($offer, <bsbm:price>, $price),
             triple($offer, <bsbm:deliveryDays>, $deliveryDays),
             triple($offer, <bsbm:product>, $product),
             triple($product, <bsbm:productFeature>, $productFeature),
             triple($productFeature, <rdfs:label>, "biographies"),
             triple($product, <rdf:type>, <bsbm-int:ProductType8>),
             triple($product, <bsbm:productPropertyNumeric>, $value),
             triple($product, <bsbm:producer>, $producer),
             triple($producer,<bsbm:country>, $country),
             triple($country, <rdf:type>, <bsbm:CountryType12>);

Q20b<$offer, $offerURL, $price, $deliveryDays, $value> :-
             triple($offer, <bsbm:offerWebpage>, $offerURL),
             triple($offer, <bsbm:price>, $price),
             triple($offer, <bsbm:deliveryDays>, $deliveryDays),
             triple($offer, <bsbm:product>, $product),
             triple($product, <bsbm:productFeature>, $productFeature),
             triple($productFeature, <rdfs:label>, "biographies"),
             triple($product, <rdf:type>, <bsbm-int:ProductType2>),
             triple($product, <bsbm:productPropertyNumeric>, $value),
             triple($product, <bsbm:producer>, $producer),
             triple($producer,<bsbm:country>, $country),
             triple($country, <rdf:type>, <bsbm:CountryType12>);

Q20c<$offer, $offerURL, $price, $deliveryDays, $value> :-
             triple($offer, <bsbm:offerWebpage>, $offerURL),
             triple($offer, <bsbm:price>, $price),
             triple($offer, <bsbm:deliveryDays>, $deliveryDays),
             triple($offer, <bsbm:product>, $product),
             triple($product, <bsbm:productFeature>, $productFeature),
             triple($productFeature, <rdfs:label>, "biographies"),
             triple($product, <rdf:type>, <bsbm-int:ProductType2>),
             triple($product, <bsbm:productPropertyNumeric>, $value),
             triple($product, <bsbm:producer>, $producer),
             triple($producer,<bsbm:country>, $country),
             triple($country, <rdf:type>, <bsbm:CountryType1>);

Q21<$product, $type> :-
             triple($product, <bsbm:productFeature>, $productFeature),
             triple($productFeature, <rdfs:label>, "biographies"),
             triple($product, <rdf:type>, $type);

number of answers.png

Query Plans

  • Q01a

Q01a.png

  • Q01b

Q01b.png

  • Q01

Q01.png

  • Q02a

Q02a.png

  • Q02b

Q02b.png

  • Q02c

Q02c.png

  • Q02

Q02.png

  • Q03

Q03.png

  • Q04

Q04.png

  • Q05a

Q05a.png

  • Q05b

Q05b.png

  • Q05

Q05.png

  • Q06a

Q06a.png

  • Q06b

Q06b.png

  • Q06

Q06.png

  • Q07a

Q07a.png

  • Q07

Q07.png

  • Q08

Q08.png

  • Q09

Q09.png

  • Q10a

Q10a.png

  • Q10

Q10.png

  • Q11

Q11.png

  • Q14

Q14.png

  • Q15

Q15.png

  • Q16

Q16.png

  • Q17

Q17.png

  • Q18

Q18.png

  • Q19a

Q19a.png

  • Q19b

Q19b.png

  • Q19c

Q19c.png

  • Q19

Q19.png

  • Q20a

Q20a.png

  • Q20b

Q20b.png

  • Q20c

Q20c.png

  • Q20

Q20.png

  • Q21

Q21.png