diff --git a/dnet-ariadneplus-graphdb-publisher/src/main/resources/query.txt b/dnet-ariadneplus-graphdb-publisher/src/main/resources/query.txt index 67ebca1..e8425fb 100644 --- a/dnet-ariadneplus-graphdb-publisher/src/main/resources/query.txt +++ b/dnet-ariadneplus-graphdb-publisher/src/main/resources/query.txt @@ -4,9 +4,8 @@ PREFIX rdfs: PREFIX skos: PREFIX mine: PREFIX onto: -PREFIX owl: - PREFIX ariadneplus: + CONSTRUCT { ?record mine:resourcetype "AriadneCatalogEntry" . ?record mine:identifier ?record . @@ -31,50 +30,63 @@ CONSTRUCT { ?publisher mine:email ?publisherEmail . ?record mine:accessPolicy ?accessPolicy . ?record mine:accessRights ?accessRights . -?record mine:landingPage ?landingPage . +?record mine:landingPage ?landingPage . +?record mine:spatial ?spatial . +?spatial mine:placeName ?spatialPlaceName . +?spatial mine:spatialCoordinateSystem ?spatialCoordinateSystem . +?spatial mine:location ?location . +?location mine:lat ?spatialLocationLat . +?location mine:lon ?spatialLocationLon . +?spatial mine:boxlocation ?boxlocation . +?boxlocation mine:boxMaxLat ?spatialLocationBBMaxLat . +?boxlocation mine:boxMaxLon ?spatialLocationBBMaxLon . +?boxlocation mine:boxMinLat ?spatialLocationBBMinLat . +?boxlocation mine:boxMinLon ?spatialLocationBBMinLon . +?record mine:temporal ?temporal . +?temporal mine:uri ?temporal . +?temporal mine:periodName ?temporalPeriodName . +?temporal mine:from ?temporalFrom . +?temporal mine:until ?temporalUntil . ?record mine:archeologicalResourceType ?archeologicalResourceType . ?archeologicalResourceType mine:name ?archeologicalResourceTypeName . ?record mine:resourceType ?resourceType . -?record mine:modified ?modified . -?record mine:nativeSubject ?natSub . -?natSub mine:prefLabel ?nativeSbj . -?natSub mine:aatId ?aatId . -?natSub mine:aatHeritageData ?aatHeritageData . -?record mine:spatial ?spatial . -?spatial mine:placeName ?spatialPlaceName . -?spatial mine:location ?blocation . -?blocation mine:lat ?spatialLocationLat . -?blocation mine:lon ?spatialLocationLon . +?record mine:nativeSubject ?nativeSubject . +?nativeSubject mine:prefLabel ?nativeSubjectPrefLabel . +?nativeSubject mine:rdfAbout ?nativeSubject . +?nativeSubject mine:aatSubjectsId ?aatSubjectsId . ?record mine:title ?title . ?record mine:description ?description . -?record mine:temporal ?t . -?t mine:periodName ?temporalPeriodName . -?t mine:from ?from . -?t mine:until ?until . ?record mine:language ?language . } from -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_language / skos:prefLabel ?language . + #?record aocat:has_title ?title . + ?record aocat:has_language / skos:prefLabel ?language . optional { { ?record aocat:has_original_id ?originalId . } union { - ?record aocat:has_native_subject ?natSub . - ?natSub skos:exactMatch ?aatId . - ?natSub owl:sameAs ?aatHeritageData . - ?natSub skos:prefLabel ?nativeSbj . + ?record aocat:has_native_subject ?nativeSubject . + ?nativeSubject skos:prefLabel ?nativeSubjectPrefLabel . + optional { + { + ?nativeSubject skos:exactMatch ?aatSubjectsId . + } + union + { + ?nativeSubject skos:closeMatch ?aatSubjectsId . + } + } } union { @@ -88,10 +100,6 @@ where { } union { - ?record aocat:has_title ?title . - } - union - { ?record aocat:has_access_rights ?accessRights . } union @@ -100,28 +108,35 @@ where { } union { - ?record aocat:has_access_policy ?ap . - ?ap rdfs:label ?accessPolicy . + ?record aocat:has_access_policy / rdfs:label ?accessPolicy . } union { ?record aocat:has_landing_page / rdfs:label ?landingPage . } union - { - ?record aocat:has_temporal_coverage ?t . - ?t aocat:has_period / skos:prefLabel ?temporalPeriodName . + { + ?record aocat:has_temporal_coverage ?temporal . } union { - ?record aocat:has_temporal_coverage ?t . - ?t aocat:from ?from . + ?record aocat:has_temporal_coverage ?temporal . + ?temporal aocat:has_period / skos:prefLabel ?temporalPeriodName . } union { - ?record aocat:has_temporal_coverage ?t . - ?t aocat:until ?until . + ?record aocat:has_temporal_coverage ?temporal . + ?temporal aocat:from ?temporalFrom . } + union + { + ?record aocat:has_temporal_coverage ?temporal . + ?temporal aocat:until ?temporalUntil . + } + union + { + ?record aocat:has_title ?title . + } } { select * @@ -184,19 +199,29 @@ where { { ?record aocat:has_spatial_coverage ?spatial . ?spatial aocat:has_place_name ?spatialPlaceName . + optional { + ?spatial aocat:has_coordinate_system ?spatialCoordinateSystem . + } } union { ?record aocat:has_spatial_coverage ?spatial . ?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(uri(concat('http://www.myprefix/location/', md5(concat(str(?spatialLocationLat), str(?spatialLocationLon))))) as ?location) + } + union + { + ?record aocat:has_spatial_coverage ?spatial . + ?spatial aocat:has_bounding_box_max_lat ?spatialLocationBBMaxLat ; + aocat:has_bounding_box_max_lon ?spatialLocationBBMaxLon ; + aocat:has_bounding_box_min_lat ?spatialLocationBBMinLat ; + aocat:has_bounding_box_min_lon ?spatialLocationBBMinLon ; + BIND(uri(concat('http://www.myprefix/location/', md5(concat(str(?spatialLocationBBMaxLat), str(?spatialLocationBBMaxLon), str(?spatialLocationBBMinLat), str(?spatialLocationBBMinLon))))) as ?boxlocation) } } } } - BIND("organization" as ?contributorType) . BIND("organization" as ?publisherType) . - }