PREFIX aocat: PREFIX rdfs: PREFIX skos: PREFIX mine: PREFIX onto: PREFIX owl: CONSTRUCT { ?record mine:resourcetype "AriadneCatalogEntry" . ?record mine:identifier ?record . ?record mine:publisher ?x . ?x a mine:AgentInfo . ?x mine:name ?publisherName . ?x mine:type ?publisherType . ?archeologicalResourceType a mine:archeologicalResourceType . ?record mine:archeologicalResourceType ?archeologicalResourceType . ?archeologicalResourceType mine:name ?archeologicalResourceTypeName . ?record mine:issued ?issued . ?record mine:resourceType ?resourceType . ?record mine:modified ?modified . ?record mine:nativeSubject ?natSub . ?natSub a mine:NativeSubject . #?natSub mine:prefLabel ?nativeSbj . ?natSub mine:aat ?aat . ?aat mine:aatLabel ?aatLabel . ?spatial a mine:Spatial . ?record mine:spatial ?spatial . ?spatial mine:placeName ?spatialPlaceName . ?spatial mine:location ?blocation . ?blocation a mine:AriadneGeoPoint . ?blocation mine:lat ?spatialLocationLat . ?blocation mine:lon ?spatialLocationLon . ?record mine:accessPolicy ?accessPolicy . ?record mine:landingPage ?landingPage . ?record mine:title ?title . ?record mine:accessRights ?accessRights . ?record mine:description ?description . ?record mine:contributor ?contributor . ?contributor a mine:AgentInfo . ?contributor mine:name ?contributorName . ?contributor mine:email ?contributorEmail . ?contributor mine:type ?contributorType . ?record mine:originalId ?originalId . ?record mine:temporal ?t . ?t a mine:AriadneTemporal . ?t mine:periodName ?temporalPeriodName . ?t mine:from ?from . ?t mine:until ?until . ?record mine:language ?language . ?record mine:partOf ?collection . } from from #from onto:explain where { #mandatory statements in our model, to be added in all datasources #?record aocat:has_title ?title ; # aocat:has_access_rights ?accessRights ; # aocat:has_creator / aocat:has_name ?contributorName ; # aocat:has_creator / aocat:has_email ?contributorEmail ; # aocat:has_native_subject / skos:prefLabel ?nativeSbj ; # aocat:has_original_id ?originalId ; ?record aocat:has_spatial_coverage ?spatial ; aocat:has_language / skos:prefLabel ?language . optional { { ?record aocat:has_original_id ?originalId . } union { ?record aocat:has_native_subject ?natSub . ?natSub skos:prefLabel ?nativeSbj . } union { ?natSub owl:sameAs ?aat . ?aat skos:prefLabel ?aatLabel } union { ?record aocat:has_creator / aocat:has_name ?contributorName . } union { ?record aocat:has_title ?title . } union { ?record aocat:has_creator / aocat:has_email ?contributorEmail . } union { ?record aocat:has_access_rights ?accessRights . } union { ?record aocat:has_description ?description . } union { ?record aocat:has_access_policy / rdfs:label ?accessPolicy . } union { ?record aocat:has_landing_page / rdfs:label ?landingPage . } union { ?record aocat:is_part_of ?collection . } union { ?record aocat:has_temporal_coverage ?t . ?t aocat:has_period / skos:prefLabel ?temporalPeriodName . } union { ?record aocat:has_temporal_coverage ?t . ?t aocat:from ?from . } union { ?record aocat:has_temporal_coverage ?t . ?t aocat:until ?until . } } { select * where { #mandatory statements in our model, to be added in all datasources #?collection aocat:has_publisher / rdfs:label ?publisherName ; # aocat:has_ARIADNE_subject ?archeologicalResourceType ; # aocat:has_type / skos:prefLabel ?type . ?collection aocat:was_issued ?issued . optional { { ?collection aocat:has_publisher / rdfs:label ?publisherName . } union { ?collection aocat:has_ARIADNE_subject ?archeologicalResourceType . ?archeologicalResourceType skos:prefLabel ?archeologicalResourceTypeName . } union { ?collection aocat:has_type / skos:prefLabel ?type . } } #?archeologicalResourceType skos:prefLabel ?archeologicalResourceTypeName . } } { select * where { ?spatial aocat:has_place_name ?spatialPlaceName . optional { { ?spatial aocat:has_place_name ?spatialPlaceName . ?spatial aocat:has_latitude ?spatialLocationLat . BIND(uri(concat('http://www.myprefix/location/', md5(str(?spatialLocationLat)))) as ?blocation) } union { ?spatial aocat:has_place_name ?spatialPlaceName . ?spatial aocat:has_longitude ?spatialLocationLon . BIND(uri(concat('http://www.myprefix/location/', md5(str(?spatialLocationLon)))) as ?blocation) } union { ?spatial aocat:has_latitude ?spatialLocationLat ; aocat:has_longitude ?spatialLocationLon . BIND(uri(concat('http://www.myprefix/location/', md5(concat(str(?spatialLocationLat), str(?spatialLocationLon))))) as ?blocation) } } } } BIND("organization" as ?contributorType) . BIND("organization" as ?publisherType) . }