PREFIX aocat: PREFIX rdfs: PREFIX skos: PREFIX aoprop: PREFIX onto: PREFIX ariadneplus: CONSTRUCT { ?record aoprop:resourcetype "AriadneCatalogEntry" . ?record aoprop:identifier ?record . ?record aoprop:originalId ?originalId . ?record aoprop:issued ?issued . ?record aoprop:modified ?modified . ?record aoprop:partOf ?collection . ?record aoprop:creator ?creator . ?creator aoprop:name ?creatorName . ?creator aoprop:email ?creatorEmail . ?record aoprop:contributor ?contributor . ?contributor aoprop:name ?contributorName . ?contributor aoprop:email ?contributorEmail . ?record aoprop:legalResponsible ?legalResponsible . ?legalResponsible aoprop:name ?legalResponsibleName . ?legalResponsible aoprop:email ?legalResponsibleEmail . ?record aoprop:owner ?owner . ?owner aoprop:name ?ownerName . ?owner aoprop:email ?ownerEmail . ?record aoprop:publisher ?publisher . ?publisher aoprop:name ?publisherName . ?publisher aoprop:email ?publisherEmail . ?record aoprop:accessPolicy ?accessPolicy . ?record aoprop:accessRights ?accessRights . ?record aoprop:landingPage ?landingPage . ?record aoprop:spatial ?spatial . ?spatial aoprop:placeName ?spatialPlaceName . ?spatial aoprop:spatialCoordinateSystem ?spatialCoordinateSystem . ?spatial aoprop:location ?location . ?location aoprop:lat ?spatialLocationLat . ?location aoprop:lon ?spatialLocationLon . ?spatial aoprop:boxlocation ?boxlocation . ?boxlocation aoprop:boxMaxLat ?spatialLocationBBMaxLat . ?boxlocation aoprop:boxMaxLon ?spatialLocationBBMaxLon . ?boxlocation aoprop:boxMinLat ?spatialLocationBBMinLat . ?boxlocation aoprop:boxMinLon ?spatialLocationBBMinLon . ?record aoprop:temporal ?temporal . ?temporal aoprop:uri ?temporal . ?temporal aoprop:periodName ?temporalPeriodName . ?temporal aoprop:from ?temporalFrom . ?temporal aoprop:until ?temporalUntil . ?record aoprop:archeologicalResourceType ?archeologicalResourceType . ?archeologicalResourceType aoprop:name ?archeologicalResourceTypeName . ?record aoprop:resourceType ?resourceType . ?record aoprop:nativeSubject ?nativeSubject . ?nativeSubject aoprop:prefLabel ?nativeSubjectPrefLabel . ?nativeSubject aoprop:rdfAbout ?nativeSubject . ?nativeSubject aoprop:aatSubjectsId ?aatSubjectsId . ?record aoprop:title ?title . ?record aoprop:description ?description . ?record aoprop:language ?language . } from from where { ?record aocat:has_language / skos:prefLabel ?language . optional { { ?record aocat:has_original_id ?originalId . } union { ?record aocat:has_native_subject ?nativeSubject . ?nativeSubject skos:prefLabel ?nativeSubjectPrefLabel . optional { { ?nativeSubject skos:exactMatch ?aatSubjectsId . } union { ?nativeSubject skos:closeMatch ?aatSubjectsId . } } } union { ?record aocat:has_creator ?creator . ?creator aocat:has_name ?creatorName . } union { ?record aocat:has_creator ?creator . ?creator aocat:has_email ?creatorEmail . } 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:has_temporal_coverage ?temporal . } union { ?record aocat:has_temporal_coverage ?temporal . ?temporal aocat:has_period / skos:prefLabel ?temporalPeriodName . } union { ?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 * where { ?record aocat:is_part_of ?collection . ?collection aocat:was_issued ?issued . ?collection aocat:was_modified ?modified . ?collection aocat:has_contributor ?contributor . ?contributor aocat:has_name ?contributorName . ?collection aocat:has_responsible ?legalResponsible . ?legalResponsible aocat:has_name ?legalResponsibleName . ?collection aocat:has_owner ?owner . ?owner aocat:has_name ?ownerName . optional { { ?collection aocat:has_contributor / aocat:has_email ?contributorEmail . } union { ?collection aocat:has_responsible / aocat:has_email ?legalResponsibleEmail . } union { ?collection aocat:has_owner / aocat:has_email ?ownerEmail . } union { ?collection aocat:has_publisher ?publisher . ?publisher aocat:has_name ?publisherName . optional { ?publisher aocat:has_email ?publisherEmail . } } union { ?collection aocat:has_ARIADNE_subject ?archeologicalResourceType . ?archeologicalResourceType skos:prefLabel ?archeologicalResourceTypeName . } union { ?collection aocat:has_type / skos:prefLabel ?type . } union { ?collection aocat:has_access_rights ?accessRights . } } } } union { select * where { optional { { ?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('https://www.ariadne-infrastructure.eu/property/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('https://www.ariadne-infrastructure.eu/property/location/', md5(concat(str(?spatialLocationBBMaxLat), str(?spatialLocationBBMaxLon), str(?spatialLocationBBMinLat), str(?spatialLocationBBMinLon))))) as ?boxlocation) } } } } BIND("organization" as ?contributorType) . BIND("organization" as ?publisherType) . }