#### View 1: Manufacturer; Month; C_City; Supplier #Original (stored in the system) view PREFIX xsd: PREFIX qb: PREFIX skos: PREFIX ssb: PREFIX ssb-inst: CONSTRUCT { ?id a qb:Observation ; qb:dataSet ssb-inst:dataset-aggview_1 ; ssb:part_manufacturer ?manufacturer ; ssb:date_month ?month ; ssb:supplier_supplier ?supplier ; ssb:customer_city ?c_city ; ssb:revenue ?revenue ; ssb:profit ?profit . } WHERE { SELECT ?id ?manufacturer ?month ?c_city ?supplier (SUM(?lo_revenue) AS ?revenue) (SUM(?lo_revenue - ?lo_supplycost) AS ?profit) WHERE { ?li a qb:Observation ; ssb:l_revenue ?lo_revenue ; ssb:l_supplycost ?lo_supplycost; ssb:l_part ?part ; ssb:l_customer ?customer ; ssb:l_supplier ?supplier ; ssb:l_orderdate ?date . ?part skos:broader ?brand . ?brand skos:broader ?category . ?category skos:broader ?manufacturer . ?customer skos:broader ?c_city . ?date skos:broader ?month . BIND(IRI(CONCAT('http://ssb.org/', STRAFTER(str(?c_city), 'http://ssb.org'), STRAFTER(str(?supplier), 'http://ssb.org'), STRAFTER(str(?month), 'http://ssb.org/'), STRAFTER(str(?manufacturer), 'http://ssb.org'))) AS ?id) . } GROUP BY ?id ?manufacturer ?month ?c_city ?supplier } #Schema-based (rewritten to include all information) view PREFIX xsd: PREFIX qb: PREFIX skos: PREFIX ssb: PREFIX ssb-inst: CONSTRUCT { ?id a qb:Observation ; qb:dataSet ssb-inst:dataset-aggview_1 ; ssb:part_manufacturer ?manufacturer ; ssb:date_month ?month ; ssb:supplier_supplier ?supplier ; ssb:customer_city ?c_city ; ssb:revenue ?revenue ; ssb:profit ?profit . } WHERE { SELECT ?id ?manufacturer ?month ?c_city ?supplier (SUM(?lo_revenue) AS ?revenue) (SUM(?lo_revenue - ?lo_supplycost) AS ?profit) WHERE { { SELECT ?manufacturer ?month ?c_city ?supplier ?lo_revenue ?lo_supplycost WHERE { ?li a qb:Observation ; ssb:l_revenue ?lo_revenue ; ssb:l_supplycost ?lo_supplycost; ssb:l_part ?part ; ssb:l_customer ?customer ; ssb:l_supplier ?supplier ; ssb:l_orderdate ?date . ?part skos:broader ?brand . ?brand skos:broader ?category . ?category skos:broader ?manufacturer . ?customer skos:broader ?c_city . ?date skos:broader ?month . } } UNION { SELECT ?manufacturer ?month ?c_city ?supplier ?lo_revenue ?lo_supplycost WHERE { ?li a qb:Observation ; ssb:l_revenue ?lo_revenue ; ssb:l_supplycost ?lo_supplycost; ssb:l_part ?part ; ssb:l_customer ?customer ; ssb:l_supplier ?supplier ; ssb:l_orderdate ?date . ?part ssb:p_category ?category . ?category skos:broader ?manufacturer . ?customer skos:broader ?c_city . ?date skos:broader ?month . } } BIND(IRI(CONCAT('http://ssb.org/', STRAFTER(str(?c_city), 'http://ssb.org'), STRAFTER(str(?supplier), 'http://ssb.org'), STRAFTER(str(?month), 'http://ssb.org/'), STRAFTER(str(?manufacturer), 'http://ssb.org'))) AS ?id) . } GROUP BY ?id ?manufacturer ?month ?c_city ?supplier } #### View 2: Part; Month; Customer; S_Nation #Original (stored in the system) view PREFIX xsd: PREFIX qb: PREFIX skos: PREFIX ssb: PREFIX ssb-inst: CONSTRUCT { ?id a qb:Observation ; qb:dataSet ssb-inst:dataset-aggview_2 ; ssb:part_part ?part ; ssb:date_month ?month ; ssb:supplier_nation ?s_nation ; ssb:customer_customer ?customer ; ssb:revenue ?revenue ; ssb:profit ?profit . } WHERE { SELECT ?id ?part ?month ?customer ?s_nation (SUM(?lo_revenue) AS ?revenue) (SUM(?lo_revenue - ?lo_supplycost) AS ?profit) WHERE { ?li a qb:Observation ; ssb:l_revenue ?lo_revenue ; ssb:l_supplycost ?lo_supplycost; ssb:l_part ?part ; ssb:l_customer ?customer ; ssb:l_supplier ?supplier ; ssb:l_orderdate ?date . ?date skos:broader ?month . ?supplier skos:broader ?s_city . ?s_city skos:broader ?s_nation . BIND(IRI(CONCAT('http://ssb.org/', STRAFTER(str(?customer), 'http://ssb.org'), STRAFTER(str(?s_nation), 'http://ssb.org'), STRAFTER(str(?month), 'http://ssb.org/'), STRAFTER(str(?part), 'http://ssb.org'))) AS ?id) . } GROUP BY ?id ?part ?month ?customer ?s_nation } #Schema-based (rewritten to include all information) view PREFIX xsd: PREFIX qb: PREFIX skos: PREFIX ssb: PREFIX ssb-inst: CONSTRUCT { ?id a qb:Observation ; qb:dataSet ssb-inst:dataset-aggview_2 ; ssb:part_part ?part ; ssb:date_month ?month ; ssb:supplier_nation ?s_nation ; ssb:customer_customer ?customer ; ssb:revenue ?revenue ; ssb:profit ?profit . } WHERE { SELECT ?id ?part ?month ?customer ?s_nation (SUM(?lo_revenue) AS ?revenue) (SUM(?lo_revenue - ?lo_supplycost) AS ?profit) WHERE { { SELECT ?part ?month ?customer ?s_nation ?lo_revenue ?lo_supplycost WHERE { ?li a qb:Observation ; ssb:l_revenue ?lo_revenue ; ssb:l_supplycost ?lo_supplycost; ssb:l_part ?part ; ssb:l_customer ?customer ; ssb:l_supplier ?supplier ; ssb:l_orderdate ?date . ?date skos:broader ?month . ?supplier skos:broader ?s_city . ?s_city skos:broader ?s_nation . } } UNION { SELECT ?part ?month ?customer ?s_nation ?lo_revenue ?lo_supplycost WHERE { ?li a qb:Observation ; ssb:l_revenue ?lo_revenue ; ssb:l_supplycost ?lo_supplycost; ssb:l_part ?part ; ssb:l_customer ?customer ; ssb:l_supplier ?supplier ; ssb:l_orderdate ?date . ?date skos:broader ?month . ?supplier ssb:s_nation ?s_nation . } } BIND(IRI(CONCAT('http://ssb.org/', STRAFTER(str(?customer), 'http://ssb.org'), STRAFTER(str(?s_nation), 'http://ssb.org'), STRAFTER(str(?month), 'http://ssb.org/'), STRAFTER(str(?part), 'http://ssb.org'))) AS ?id) . } GROUP BY ?id ?part ?month ?customer ?s_nation } #### View 3: Category; Year; C_City; Supplier #Original (stored in the system) view PREFIX qb: PREFIX xsd: PREFIX skos: PREFIX ssb: PREFIX ssb-inst: CONSTRUCT { ?id a qb:Observation ; qb:dataSet ssb-inst:dataset-aggview_3 ; ssb:part_category ?category ; ssb:date_year ?year ; ssb:supplier_supplier ?supplier ; ssb:customer_city ?c_city ; ssb:revenue ?revenue ; ssb:profit ?profit . } WHERE { SELECT ?id ?category ?year ?c_city ?supplier (SUM(?lo_revenue) AS ?revenue) (SUM(?lo_revenue - ?lo_supplycost) AS ?profit) WHERE { ?li a qb:Observation ; ssb:l_revenue ?lo_revenue ; ssb:l_supplycost ?lo_supplycost; ssb:l_part ?part ; ssb:l_customer ?customer ; ssb:l_supplier ?supplier ; ssb:l_orderdate ?date . ?part skos:broader ?brand . ?brand skos:broader ?category . ?customer skos:broader ?c_city . ?date skos:broader ?month . ?month skos:broader ?year . BIND(IRI(CONCAT('http://ssb.org/', STRAFTER(str(?c_city), 'http://ssb.org'), STRAFTER(str(?supplier), 'http://ssb.org'), STRAFTER(str(?year), 'http://ssb.org/'), STRAFTER(str(?category), 'http://ssb.org'))) AS ?id) . } GROUP BY ?id ?category ?year ?c_city ?supplier } #Schema-based (rewritten to include all information) view PREFIX qb: PREFIX xsd: PREFIX skos: PREFIX ssb: PREFIX ssb-inst: CONSTRUCT { ?id a qb:Observation ; qb:dataSet ssb-inst:dataset-aggview_3 ; ssb:part_category ?category ; ssb:date_year ?year ; ssb:supplier_supplier ?supplier ; ssb:customer_city ?c_city ; ssb:revenue ?revenue ; ssb:profit ?profit . } WHERE { SELECT ?id ?category ?year ?c_city ?supplier (SUM(?lo_revenue) AS ?revenue) (SUM(?lo_revenue - ?lo_supplycost) AS ?profit) WHERE { { SELECT ?category ?year ?c_city ?supplier ?lo_revenue ?lo_supplycost WHERE { ?li a qb:Observation ; ssb:l_revenue ?lo_revenue ; ssb:l_supplycost ?lo_supplycost; ssb:l_part ?part ; ssb:l_customer ?customer ; ssb:l_supplier ?supplier ; ssb:l_orderdate ?date . ?part skos:broader ?brand . ?brand skos:broader ?category . ?customer skos:broader ?c_city . ?date skos:broader ?month . ?month skos:broader ?year . } } UNION { SELECT ?category ?year ?c_city ?supplier ?lo_revenue ?lo_supplycost WHERE { ?li a qb:Observation ; ssb:l_revenue ?lo_revenue ; ssb:l_supplycost ?lo_supplycost; ssb:l_part ?part ; ssb:l_customer ?customer ; ssb:l_supplier ?supplier ; ssb:l_orderdate ?date . ?part ssb:p_category ?category . ?customer skos:broader ?c_city . ?date skos:broader ?month . ?month skos:broader ?year . } } BIND(IRI(CONCAT('http://ssb.org/', STRAFTER(str(?c_city), 'http://ssb.org'), STRAFTER(str(?supplier), 'http://ssb.org'), STRAFTER(str(?year), 'http://ssb.org/'), STRAFTER(str(?category), 'http://ssb.org'))) AS ?id) . } GROUP BY ?id ?category ?year ?c_city ?supplier } #### View 4: Part; Month; C_Nation; S_City #Original (stored in the system) view PREFIX xsd: PREFIX qb: PREFIX skos: PREFIX ssb: PREFIX ssb-inst: CONSTRUCT { ?id a qb:Observation ; qb:dataSet ssb-inst:dataset-aggview_2 ; ssb:part_part ?part ; ssb:date_month ?month ; ssb:supplier_city ?s_city ; ssb:customer_nation ?c_nation ; ssb:revenue ?revenue ; ssb:profit ?profit . } WHERE { SELECT ?id ?part ?month ?c_nation ?s_city (SUM(?lo_revenue) AS ?revenue) (SUM(?lo_revenue - ?lo_supplycost) AS ?profit) WHERE { ?li a qb:Observation ; ssb:l_revenue ?lo_revenue ; ssb:l_supplycost ?lo_supplycost; ssb:l_part ?part ; ssb:l_customer ?customer ; ssb:l_supplier ?supplier ; ssb:l_orderdate ?date . ?date skos:broader ?month . ?supplier skos:broader ?s_city . ?customer skos:broader ?c_city . ?c_city skos:broader ?c_nation . BIND(IRI(CONCAT('http://ssb.org/', STRAFTER(str(?c_nation), 'http://ssb.org'), STRAFTER(str(?s_city), 'http://ssb.org'), STRAFTER(str(?month), 'http://ssb.org/'), STRAFTER(str(?part), 'http://ssb.org'))) AS ?id) . } GROUP BY ?id ?part ?month ?c_nation ?s_city } #Schema-based (rewritten to include all information) view PREFIX xsd: PREFIX qb: PREFIX skos: PREFIX ssb: PREFIX ssb-inst: CONSTRUCT { ?id a qb:Observation ; qb:dataSet ssb-inst:dataset-aggview_2 ; ssb:part_part ?part ; ssb:date_month ?month ; ssb:supplier_city ?s_city ; ssb:customer_nation ?c_nation ; ssb:revenue ?revenue ; ssb:profit ?profit . } WHERE { SELECT ?id ?part ?month ?c_nation ?s_city (SUM(?lo_revenue) AS ?revenue) (SUM(?lo_revenue - ?lo_supplycost) AS ?profit) WHERE { ?li a qb:Observation ; ssb:l_revenue ?lo_revenue ; ssb:l_supplycost ?lo_supplycost; ssb:l_part ?part ; ssb:l_customer ?customer ; ssb:l_supplier ?supplier ; ssb:l_orderdate ?date . ?date skos:broader ?month . ?supplier skos:broader ?s_city . ?customer skos:broader ?c_city . ?c_city skos:broader ?c_nation . BIND(IRI(CONCAT('http://ssb.org/', STRAFTER(str(?c_nation), 'http://ssb.org'), STRAFTER(str(?s_city), 'http://ssb.org'), STRAFTER(str(?month), 'http://ssb.org/'), STRAFTER(str(?part), 'http://ssb.org'))) AS ?id) . } GROUP BY ?id ?part ?month ?c_nation ?s_city } #### View 5: Part; Year; C_Region; S_Nation #Original (stored in the system) view PREFIX xsd: PREFIX qb: PREFIX skos: PREFIX ssb: PREFIX ssb-inst: CONSTRUCT { ?id a qb:Observation ; qb:dataSet ssb-inst:dataset-aggview_2 ; ssb:part_part ?part ; ssb:date_year ?year ; ssb:supplier_nation ?s_nation ; ssb:customer_region ?c_region ; ssb:revenue ?revenue ; ssb:profit ?profit . } WHERE { SELECT ?id ?part ?year ?c_region ?s_nation (SUM(?lo_revenue) AS ?revenue) (SUM(?lo_revenue - ?lo_supplycost) AS ?profit) WHERE { ?li a qb:Observation ; ssb:l_revenue ?lo_revenue ; ssb:l_supplycost ?lo_supplycost; ssb:l_part ?part ; ssb:l_customer ?customer ; ssb:l_supplier ?supplier ; ssb:l_orderdate ?date . ?date skos:broader ?month . ?month skos:broader ?year . ?supplier skos:broader ?s_city . ?s_city skos:broader ?s_nation . ?customer skos:broader ?c_city . ?c_city skos:broader ?c_nation . ?c_nation skos:broader ?c_region . BIND(IRI(CONCAT('http://ssb.org/', STRAFTER(str(?c_region), 'http://ssb.org'), STRAFTER(str(?s_nation), 'http://ssb.org'), STRAFTER(str(?year), 'http://ssb.org/'), STRAFTER(str(?part), 'http://ssb.org'))) AS ?id) . } GROUP BY ?id ?part ?year ?c_region ?s_nation } #Schema-based (rewritten to include all information) view PREFIX xsd: PREFIX qb: PREFIX skos: PREFIX ssb: PREFIX ssb-inst: CONSTRUCT { ?id a qb:Observation ; qb:dataSet ssb-inst:dataset-aggview_2 ; ssb:part_part ?part ; ssb:date_year ?year ; ssb:supplier_nation ?s_nation ; ssb:customer_region ?c_region ; ssb:revenue ?revenue ; ssb:profit ?profit . } WHERE { SELECT ?id ?part ?year ?c_region ?s_nation (SUM(?lo_revenue) AS ?revenue) (SUM(?lo_revenue - ?lo_supplycost) AS ?profit) WHERE { { SELECT ?part ?year ?c_region ?s_nation ?lo_revenue ?lo_supplycost WHERE { ?li a qb:Observation ; ssb:l_revenue ?lo_revenue ; ssb:l_supplycost ?lo_supplycost; ssb:l_part ?part ; ssb:l_customer ?customer ; ssb:l_supplier ?supplier ; ssb:l_orderdate ?date . ?date skos:broader ?month . ?month skos:broader ?year . ?supplier skos:broader ?s_city . ?s_city skos:broader ?s_nation . ?customer skos:broader ?c_city . ?c_city skos:broader ?c_nation . ?c_nation skos:broader ?c_region . } } UNION { SELECT ?part ?year ?c_region ?s_nation ?lo_revenue ?lo_supplycost WHERE { ?li a qb:Observation ; ssb:l_revenue ?lo_revenue ; ssb:l_supplycost ?lo_supplycost; ssb:l_part ?part ; ssb:l_customer ?customer ; ssb:l_supplier ?supplier ; ssb:l_orderdate ?date . ?date skos:broader ?month . ?month skos:broader ?year . ?supplier ssb:s_nation ?s_nation . ?customer skos:broader ?c_city . ?c_city skos:broader ?c_nation . ?c_nation skos:broader ?c_region . } } BIND(IRI(CONCAT('http://ssb.org/', STRAFTER(str(?c_region), 'http://ssb.org'), STRAFTER(str(?s_nation), 'http://ssb.org'), STRAFTER(str(?year), 'http://ssb.org/'), STRAFTER(str(?part), 'http://ssb.org'))) AS ?id) . } GROUP BY ?id ?part ?year ?c_region ?s_nation } #### View 6: Manufacturer; Date; Customer #Original (stored in the system) view PREFIX qb: PREFIX xsd: PREFIX skos: PREFIX ssb: PREFIX ssb-inst: CONSTRUCT { ?id a qb:Observation ; qb:dataSet ssb-inst:dataset-aggview_3 ; ssb:part_manufacturer ?manufacturer ; ssb:date_date ?date ; ssb:customer_customer ?customer ; ssb:revenue ?revenue ; ssb:profit ?profit . } WHERE { SELECT ?id ?manufacturer ?date ?customer (SUM(?lo_revenue) AS ?revenue) (SUM(?lo_revenue - ?lo_supplycost) AS ?profit) WHERE { ?li a qb:Observation ; ssb:l_revenue ?lo_revenue ; ssb:l_supplycost ?lo_supplycost; ssb:l_part ?part ; ssb:l_customer ?customer ; ssb:l_orderdate ?date . ?part skos:broader ?brand . ?brand skos:broader ?category . ?category skos:broader ?manufacturer . BIND(IRI(CONCAT('http://ssb.org/', STRAFTER(str(?customer), 'http://ssb.org'), STRAFTER(str(?date), 'http://ssb.org/'), STRAFTER(str(?manufacturer), 'http://ssb.org'))) AS ?id) . } GROUP BY ?id ?manufacturer ?date ?customer } #Schema-based (rewritten to include all information) view PREFIX qb: PREFIX xsd: PREFIX skos: PREFIX ssb: PREFIX ssb-inst: CONSTRUCT { ?id a qb:Observation ; qb:dataSet ssb-inst:dataset-aggview_3 ; ssb:part_manufacturer ?manufacturer ; ssb:date_date ?date ; ssb:customer_customer ?customer ; ssb:revenue ?revenue ; ssb:profit ?profit . } WHERE { SELECT ?id ?manufacturer ?date ?customer (SUM(?lo_revenue) AS ?revenue) (SUM(?lo_revenue - ?lo_supplycost) AS ?profit) WHERE { { SELECT ?manufacturer ?date ?customer ?lo_revenue ?lo_supplycost WHERE { ?li a qb:Observation ; ssb:l_revenue ?lo_revenue ; ssb:l_supplycost ?lo_supplycost; ssb:l_part ?part ; ssb:l_customer ?customer ; ssb:l_orderdate ?date . ?part skos:broader ?brand . ?brand skos:broader ?category . ?category skos:broader ?manufacturer . } } UNION { SELECT ?manufacturer ?date ?customer ?lo_revenue ?lo_supplycost WHERE { ?li a qb:Observation ; ssb:l_revenue ?lo_revenue ; ssb:l_supplycost ?lo_supplycost; ssb:l_part ?part ; ssb:l_customer ?customer ; ssb:l_orderdate ?date . ?part ssb:p_category ?category . ?category skos:broader ?manufacturer . } } BIND(IRI(CONCAT('http://ssb.org/', STRAFTER(str(?customer), 'http://ssb.org'), STRAFTER(str(?date), 'http://ssb.org/'), STRAFTER(str(?manufacturer), 'http://ssb.org'))) AS ?id) . } GROUP BY ?id ?manufacturer ?date ?customer }