#### Local schema @prefix xsd: . @prefix schema: . @prefix owl: . @prefix gn: . schema:lineorder_node a schema:lineorder ; schema:lo_orderkey schema:lineorder_value; schema:lo_custkey schema:customer_value ; schema:lo_partkey schema:part_value ; schema:lo_suppkey schema:supplier_value ; schema:lo_orderdate schema:date_value ; schema:lo_quantity schema:quantity_value ; schema:lo_revenue schema:revenue_value . schema:customer_value a schema:customer ; schema:custkey schema:customer_key ; schema:custname schema:customer_name ; schema:custcity schema:city_value ; schema:custnation schema:country_value ; schema:custregion schema:reg_value . schema:supplier_value a schema:supplier ; schema:supkey schema:supplier_key ; schema:supname schema:supplier_name ; schema:supcity schema:city_value ; schema:supnation schema:country_value ; schema:supregion schema:reg_value . schema:part_value a schema:part ; schema:partkey schema:part_key ; schema:mfgr schema:mfgr_value ; schema:category schema:category_value ; schema:brand1 schema:brand_value . schema:date_value a schema:date ; schema:datekey schema:date_key ; schema:date schema:date_name ; schema:month schema:month_name ; schema:year schema:year_value ; schema:yearmonthnum schema:yearmonthnum_value ; schema:yearmonth schema:yearmonth_name . schema:city_value owl:sameAs schema:geoname_cityvalue . schema:country_value owl:sameAs schema:geoname_country_value . schema:geoname_cityvalue gn:parentADM1 schema:geoname_adm1_value . schema:geoname_adm1_value gn:parentCountry schema:geoname_country_value . schema:geoname_country_value gn:parentFeature schema:geoname_continent_value . #### Global Schema @prefix xsd: . @prefix global: . @prefix ext: . @prefix qb: . @prefix skos: . @prefix rdfs: . global:observation_node a qb:Observation ; global:obs_customer global:customer_value ; global:obs_part global:part_value ; global:obs_suppkey global:supplier_value ; global:obs_orderdate global:date_value ; global:obs_quantity global:quantity_value ; global:obs_revenue global:revenue_value . global:customer_value a global:customer ; global:custkey global:customer_key ; global:custname global:customer_name ; skos:broader global:custcity_value . global:custcity_value a global:city; skos:broader global:custcountry_value . global:custcountry_value a global:country ; skos:broader global:custreg_value . global:custreg_value a global:region. global:custcity_value skos:broader ext:admdiv1_value . ext:admdiv1_value a ext:ADM1 . ext:admdiv1_value skos:broader ext:country_value . ext:country_value a ext:Country . ext:country_value skos:broader ext:continent_value . ext:continent_value a ext:Continent . global:supplier_value a global:supplier ; global:supkey global:supplier_key ; global:supname global:supplier_name ; skos:broader global:supcity_value . global:supcity_value a global:city; skos:broader global:supcountry_value . global:supcountry_value a global:country ; skos:broader global:supreg_value . global:supreg_value a global:region . global:supcity_value skos:broader ext:admdiv1_value . global:part_value a global:part ; global:partkey global:part_key ; skos:broader global:brand_value . global:brand_value a global:brand ; skos:broader global:category_value . global:category_value a global:category ; skos:broader global:mfgr_value . global:mfgr_value a global:mfgr . global:date_value a schema:date ; global:datekey global:date_key ; global:date global:date_name ; global:yearmonthnum global:yearmonthnum_value ; global:yearmonth global:yearmonth_name . skos:broader global:month . global:month skos:broader global:year ; rdfs:label global:month_name . global:year rdfs:label global:year_value . #### Example Mapping of Global/Local schemas ### Global Schema representation ex:gsmt1 fs:pattern [sp:subject global:observation_node; sp:predicate rdf:type; sp:object qb:Observation ] . ex:gsmt2 fs:pattern [sp:subject global:observation_node; sp:predicate global:obs_customer; sp:object global:customer_value ] . ex:gsmt3 fs:pattern [sp:subject global:observation_node; sp:predicate global:obs_part; sp:object global:part_value ] . ex:gsmt4 fs:pattern [sp:subject global:observation_node; sp:predicate global:obs_suppkey; sp:object global:supplier_value ] . ex:gsmt5 fs:pattern [sp:subject global:observation_node; sp:predicate global:obs_orderdate; sp:object global:date_value ] . ex:gsmt6 fs:pattern [sp:subject global:observation_node; sp:predicate global:obs_revenue; sp:object global:revenue_value ] . ex:gsmt11 fs:pattern [sp:subject global:customer_value; sp:predicate rdf:type; sp:object global:customer ] . ex:gsmt12 fs:pattern [sp:subject global:customer_value; sp:predicate skos:broader; sp:object global:custcity_value ] . ex:gsmt13 fs:pattern [sp:subject global:custcity_value; sp:predicate rdf:type; sp:object global:city ] . ex:gsmt14 fs:pattern [sp:subject global:custcity_value; sp:predicate skos:broader; sp:object global:custcountry_value ] . ex:gsmt15 fs:pattern [sp:subject global:custcountry_value; sp:predicate rdf:type; sp:object global:country ] . ex:gsmt16 fs:pattern [sp:subject global:custcountry_value; sp:predicate skos:broader; sp:object global:custreg_value ] . ex:gsmt17 fs:pattern [sp:subject global:custreg_value; sp:predicate rdf:type; sp:object global:region ] . ex:gsmt18 fs:pattern [sp:subject global:custcity_value; sp:predicate skos:broader; sp:object ext:admdiv1_value ] . ex:gsmt19 fs:pattern [sp:subject ext:admdiv1_value; sp:predicate rdf:type; sp:object ext:ADM1 ] . ex:gsmt20 fs:pattern [sp:subject ext:admdiv1_value; sp:predicate skos:broader; sp:object ext:country_value ] . ex:gsmt21 fs:pattern [sp:subject ext:country_value; sp:predicate rdf:type; sp:object ext:Country ] . ex:gsmt22 fs:pattern [sp:subject ext:country_value; sp:predicate skos:broader; sp:object ext:continent_value ] . ex:gsmt23 fs:pattern [sp:subject ext:continent_value; sp:predicate rdf:type; sp:object ext:Continent ] . ex:gsmt24 fs:pattern [sp:subject ext:admdiv1_value; sp:predicate rdfs:label; sp:object ext:admdivision1_name ] . ex:gsmt25 fs:pattern [sp:subject global:supcity_value; sp:predicate skos:broader; sp:object ext:admdiv1_value ] . ### Local Schema representation ex:lsmt1 fs:pattern [sp:subject schema:lineorder_node; sp:predicate rdf:type; sp:object schema:lineorder ] . ex:lsmt2 fs:pattern [sp:subject schema:lineorder_node; sp:predicate schema:lo_orderkey; sp:object schema:lineorder_value ] . ex:lsmt3 fs:pattern [sp:subject schema:lineorder_node; sp:predicate schema:lo_custkey; sp:object schema:customer_value ] . ex:lsmt4 fs:pattern [sp:subject schema:lineorder_node; sp:predicate schema:lo_partkey; sp:object schema:part_value ] . ex:lsmt5 fs:pattern [sp:subject schema:lineorder_node; sp:predicate schema:lo_suppkey; sp:object schema:supplier_value ] . ex:lsmt6 fs:pattern [sp:subject schema:lineorder_node; sp:predicate schema:lo_orderdate; sp:object schema:date_value ] . ex:lsmt7 fs:pattern [sp:subject schema:lineorder_node; sp:predicate schema:lo_revenue; sp:object schema:revenue_value ] . ex:lsmt8 fs:pattern [sp:subject schema:customer_value; sp:predicate rdf:type; sp:object schema:customer ] . ex:lsmt9 fs:pattern [sp:subject schema:customer_value; sp:predicate schema:custkey; sp:object schema:customer_key ] . ex:lsmt10 fs:pattern [sp:subject schema:customer_value; sp:predicate schema:custname; sp:object schema:customer_name ] . ex:lsmt11 fs:pattern [sp:subject schema:customer_value; sp:predicate schema:custcity; sp:object schema:ccity_value ] . ex:lsmt12 fs:pattern [sp:subject schema:customer_value; sp:predicate schema:custnation; sp:object schema:ccountry_value ] . ex:lsmt13 fs:pattern [sp:subject schema:customer_value; sp:predicate schema:custregion; sp:object schema:creg_value ] . ex:lsmt14 fs:pattern [sp:subject schema:ccity_value; sp:predicate schema:cityname; sp:object schema:cityname_value ] . ex:lsmt15 fs:pattern [sp:subject schema:ccity_value; sp:predicate owl:sameAs; sp:object schema:geoname_cityvalue ] . ex:lsmt16 fs:pattern [sp:subject schema:geoname_cityvalue; sp:predicate gn:parentADM1; sp:object schema:geoname_adm1_value ] . ex:lsmt17 fs:pattern [sp:subject schema:geoname_adm1_value; sp:predicate gn:parentCountry; sp:object schema:geoname_country_value ] . ex:lsmt18 fs:pattern [sp:subject schema:geoname_adm1_value; sp:predicate gn:name; sp:object schema:geoname_adm1_name ] . ex:lsmt19 fs:pattern [sp:subject schema:geoname_country_value; sp:predicate gn:parentFeature; sp:object schema:geoname_continent_value ] . ### Global-to-Local mappings ex:glist1 sp:elements ex:gsmt1, ex:gsmt2 . ex:llist1 sp:elements ex:lsmt1, ex:lsmt2, ex:lsmt3 . ex:glist1 fs:schemaMatch ex:llist1 . global:customer_value fs:sameConcept schema:customer_value . ex:glist2 sp:elements ex:gsmt1, ex:gsmt3 . ex:llist2 sp:elements ex:lsmt1, ex:lsmt2, ex:lsmt4 . ex:glist2 fs:schemaMatch ex:llist2 . global:part_value fs:sameConcept schema:part_value . ex:glist3 sp:elements ex:gsmt1, ex:gsmt4 . ex:llist3 sp:elements ex:lsmt1, ex:lsmt2, ex:lsmt5 . ex:glist3 fs:schemaMatch ex:llist3 . global:supplier_value fs:sameConcept schema:supplier_value . ex:glist4 sp:elements ex:gsmt1, ex:gsmt6 . ex:llist4 sp:elements ex:lsmt1, ex:lsmt2, ex:lsmt7 . ex:glist4 fs:schemaMatch ex:llist4 . global:revenue_value fs:sameConcept schema:revenue_value . ex:glist5 sp:elements ex:gsmt12, ex:gsmt13 . ex:llist5 sp:elements ex:lsmt11 . ex:glist5 fs:schemaMatch ex:llist5 . global:custcity_value fs:sameConcept schema:ccity_value . ex:glist6 sp:elements ex:gsmt12, ex:gsmt13 ex:gsmt14, ex:gsmt15 . ex:llist6 sp:elements ex:lsmt12 . ex:glist6 fs:schemaMatch ex:llist6 . global:custcountry_value fs:sameConcept schema:ccountry_value . ex:glist7 sp:elements ex:gsmt18, ex:gsmt19 . ex:llist7 sp:elements ex:lsmt15, ex:lsmt16 . ex:glist7 fs:schemaMatch ex:llist7 . ext:admdiv1_value fs:sameConcept schema:geoname_adm1_value . ex:glist8 sp:elements ex:gsmt24 . ex:llist8 sp:elements ex:lsmt18 . ex:glist8 fs:schemaMatch ex:llist8 . ext:admdivision1_name fs:sameConcept schema:geoname_adm1_name . ex:geonameService rdf:type sp:Service . ex:geonameService sp:serviceURI ex:geonameService sp:elements ex:lsmt16, ex:lsmt17, ex:lsmt18, ex:lsmt19 . #### Global Query PREFIX ext: PREFIX global: PREFIX qb: PREFIX skos: PREFIX rdfs: SELECT ?c_admdiv_value (SUM(?revenue) AS ?lo_revenue) WHERE { ?li a qb:Observation ; global:obs_customer ?custkey ; global:obs_suppkey ?suppkey ; global:obs_orderdate ?orderdatekey ; global:obs_revenue ?revenue . ?custkey skos:broader ?c_city . ?c_city skos:broader ?c_admdiv . ?c_admdiv a ext:ADM1 . ?c_admdiv rdfs:label ?c_admdiv_value . } GROUP BY ?c_admdiv_value ORDER BY DESC(?lo_revenue) ### patterns that are engaged during the execution of global query over global schema ex:gsmt1 fs:pattern [sp:subject global:observation_node; sp:predicate rdf:type; sp:object qb:Observation ] . ex:gsmt2 fs:pattern [sp:subject global:observation_node; sp:predicate global:obs_customer; sp:object global:customer_value ] . ex:gsmt4 fs:pattern [sp:subject global:observation_node; sp:predicate global:obs_suppkey; sp:object global:supplier_value ] . ex:gsmt5 fs:pattern [sp:subject global:observation_node; sp:predicate global:obs_orderdate; sp:object global:date_value ] . ex:gsmt6 fs:pattern [sp:subject global:observation_node; sp:predicate global:obs_revenue; sp:object global:revenue_value ] . ex:gsmt12 fs:pattern [sp:subject global:customer_value; sp:predicate skos:broader; sp:object global:custcity_value ] . ex:gsmt18 fs:pattern [sp:subject global:custcity_value; sp:predicate skos:broader; sp:object ext:admdiv1_value ] . ex:gsmt19 fs:pattern [sp:subject ext:admdiv1_value; sp:predicate rdf:type; sp:object ext:ADM1 ] . ex:gsmt24 fs:pattern [sp:subject ext:admdiv1_value; sp:predicate rdfs:label; sp:object ext:admdivision1_name ] . ### patterns that are engaged for finding local schema using global subschema ex:lsmt1 fs:pattern [sp:subject schema:lineorder_node; sp:predicate rdf:type; sp:object schema:lineorder ] . ex:lsmt2 fs:pattern [sp:subject schema:lineorder_node; sp:predicate schema:lo_orderkey; sp:object schema:lineorder_value ] . ex:lsmt3 fs:pattern [sp:subject schema:lineorder_node; sp:predicate schema:lo_custkey; sp:object schema:customer_value ] . ex:lsmt5 fs:pattern [sp:subject schema:lineorder_node; sp:predicate schema:lo_suppkey; sp:object schema:supplier_value ] . ex:lsmt6 fs:pattern [sp:subject schema:lineorder_node; sp:predicate schema:lo_orderdate; sp:object schema:date_value ] . ex:lsmt7 fs:pattern [sp:subject schema:lineorder_node; sp:predicate schema:lo_revenue; sp:object schema:revenue_value ] . ex:lsmt8 fs:pattern [sp:subject schema:customer_value; sp:predicate rdf:type; sp:object schema:customer ] . ex:lsmt11 fs:pattern [sp:subject schema:customer_value; sp:predicate schema:custcity; sp:object schema:ccity_value ] . ex:lsmt15 fs:pattern [sp:subject schema:ccity_value; sp:predicate owl:sameAs; sp:object schema:geoname_cityvalue ] . ex:lsmt16 fs:pattern [sp:subject schema:geoname_cityvalue; sp:predicate gn:parentADM1; sp:object schema:geoname_adm1_value ] . ex:lsmt18 fs:pattern [sp:subject schema:geoname_adm1_value; sp:predicate gn:name; sp:object schema:geoname_adm1_name ] . ### ex:lsmt18 and ex:lsmt16 are in #### Local Query PREFIX xsd: PREFIX schema: PREFIX inst: PREFIX owl: PREFIX gn: SELECT ?c_admdiv_value (SUM(?revenue) AS ?lo_revenue) WHERE { ?li a schema:lineorder ; schema:lo_orderdate ?orderdatekey ; schema:lo_custkey ?custkey ; schema:lo_suppkey ?suppkey ; schema:lo_revenue ?revenue . ?custkey schema:custcity ?c_city . ?c_city owl:sameAs ?geo_ccity . SERVICE { ?geo_ccity gn:parentADM1 ?c_adm1 . ?c_adm1 gn:name ?c_admdiv_value . } } GROUP BY ?c_admdiv_value ORDER BY DESC(?lo_revenue)