-
Henrik Askjer authoredHenrik Askjer authored
export const federatedSearchSparqlQueries = {
norse: {
geoQuery: `
{ ?place geof:within ( <LATMIN> <LONGMIN> <LATMAX> <LONGMAX>) }
`,
resultQuery: `
PREFIX crm: <http://www.cidoc-crm.org/cidoc-crm/>
PREFIX wgs: <http://www.w3.org/2003/01/geo/wgs84_pos#>
PREFIX geof: <http://www.opengis.net/def/function/geosparql/>
SELECT ?id ?prefLabel ?documentLabel ?document ?referenceLabel ?reference ?broaderTypeLabel ?broaderTypeLabel ?broaderAreaLabel ?coordinates ?lat ?long ?source WHERE { GRAPH <https://norseworld.nordiska.uu.se> {
<QUERY>
?place crm:P1_is_identified_by ?id .
?id rdfs:label ?prefLabel .
?place wgs:lat ?lat;
wgs:long ?long ;
<https://norseworld.nordiska.uu.se/Type_of_locality> ?broaderTypeLabel .
BIND(?place as ?coordinates)
BIND("Norseworld" AS ?source)
OPTIONAL {
?place crm:P70i_is_documented_in ?document .
?document rdfs:label ?documentLabel .
}
OPTIONAL {
?place crm:P67i_is_referred_to_by ?reference .
?reference rdfs:label ?referenceLabel .
}
}
}
`
},
saga: {
geoQuery: `{ ?id geof:within ( <LATMIN> <LONGMIN> <LATMAX> <LONGMAX>) }`,
resultQuery: `
PREFIX crm: <http://www.cidoc-crm.org/cidoc-crm/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX wgs: <http://www.w3.org/2003/01/geo/wgs84_pos#>
PREFIX geof: <http://www.opengis.net/def/function/geosparql/>
SELECT ?id ?prefLabel ?broaderType ?broaderTypeLabel ?broaderAreaLabel ?lat ?long ?coordinates ?source WHERE {GRAPH <https://sagamap.is/graphs/> {
<QUERY>
?id rdfs:label ?prefLabel .
?id crm:P2_has_type ?broaderType .
?broaderType rdfs:label ?broaderTypeLabel .
?id crm:P89_falls_within/rdfs:label ?broaderAreaLabel ;
wgs:lat ?lat;
wgs:long ?long .
BIND("Sagamap" AS ?source)
}}
`
},
nsdb: {
geoQuery: `{ ?coordinates geof:within ( <LATMIN> <LONGMIN> <LATMAX> <LONGMAX>) .
?place crm:P189i_is_approximated_by ?coordinates .}`,
resultQuery: `
PREFIX crm: <http://www.cidoc-crm.org/cidoc-crm/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX geof: <http://www.opengis.net/def/function/geosparql/>
SELECT ?id ?prefLabel ?broaderType ?broaderTypeLabel ?broaderAreaLabel ?coordinates ?lat ?long ?source WHERE { GRAPH <https://data.spraksamlingane.no/stadnamn/nos-hs/nsdb> {
<QUERY>
?id crm:P1i_identifies ?place ;
rdfs:label ?prefLabel .
?place crm:P2_has_type ?broaderType .
GRAPH <https://data.spraksamlingane.no/stadnamn/nos-hs/sosi> {
?broaderType skos:prefLabel ?broaderTypeLabel .
}
?place crm:P189i_is_approximated_by ?municipality .
?municipality rdfs:label ?municipalityLabel .
?municipality crm:P89_falls_within ?county .
?county rdfs:label ?countyLabel .
BIND(CONCAT(?municipalityLabel, ", ", ?countyLabel) as ?broaderAreaLabel)
?place crm:P189i_is_approximated_by ?coordinates .
?coordinates crm:P168_place_is_defined_by ?point;
crm:P2_has_type ?coordinate_type .
bind( replace( str(?point), "^[^0-9\\\\.]*([0-9\\\\.]+) .*$", "$1" ) as ?long )
bind( replace( str(?point), "^.* ([0-9\\\\.]+)[^0-9\\\\.]*$", "$1" ) as ?lat )
BIND("NSDB" AS ?source)
BIND("violet" AS ?markerColor)
}
}
`
},
tgn: {
// Getty LOD documentation:
// http://vocab.getty.edu/queries#Places_by_Type
// https://groups.google.com/forum/#!topic/gettyvocablod/r4wsSJyne84
// https://confluence.ontotext.com/display/OWLIMv54/OWLIM-SE+Full-text+Search
// http://vocab.getty.edu/queries#Combination_Full-Text_and_Exact_String_Match
// http://vocab.getty.edu/doc/#TGN_Place_Types
resultQuery: `
SELECT ?id (COALESCE(?labelEn,?labelGVP) AS ?prefLabel) ?broaderTypeLabel
?broaderAreaLabel ?source ?lat ?long ?markerColor
WHERE {
?id luc:term "<QUERYTERM>" ;
skos:inScheme tgn: ;
gvp:placeTypePreferred [
gvp:prefLabelGVP [
xl:literalForm ?broaderTypeLabel;
dct:language gvp_lang:en
]
];
gvp:broaderPreferred/xl:prefLabel/xl:literalForm ?broaderAreaLabel .
OPTIONAL {
?id xl:prefLabel [
xl:literalForm ?labelEn ;
dct:language gvp_lang:en
]
}
OPTIONAL {
?id gvp:prefLabelGVP [xl:literalForm ?labelGVP]
}
OPTIONAL {
?id foaf:focus ?place .
?place wgs:lat ?lat ;
wgs:long ?long .
}
FILTER EXISTS {
?id xl:prefLabel/gvp:term+?term .
FILTER (LCASE(STR(?term))="<QUERYTERM>")
}
BIND("TGN" AS ?source)
BIND("orange" AS ?markerColor)
}
`
},
kotus: {
resultQuery: `
PREFIX text: <http://jena.apache.org/text#>
PREFIX spatial: <http://jena.apache.org/spatial#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX gs: <http://www.opengis.net/ont/geosparql#>
PREFIX hipla-schema: <http://ldf.fi/schema/hipla/>
PREFIX na-schema: <http://ldf.fi/schema/kotus-names-archive/>
PREFIX wgs84: <http://www.w3.org/2003/01/geo/wgs84_pos#>
SELECT ?id ?prefLabel ?namesArchiveLink ?typeLabel ?broaderTypeLabel
?broaderAreaLabel ?source ?lat ?long ?modifier ?basicElement ?collector
?collectionYear ?markerColor ?positioningAccuracy
WHERE {
<QUERY>
?id skos:prefLabel ?prefLabel .
?id na-schema:parish ?broaderAreaLabel .
?id owl:sameAs ?namesArchiveLink .
BIND("NA" AS ?source)
BIND("violet" AS ?markerColor)
BIND("-" AS ?missingValue)
OPTIONAL {
?id a ?type .
OPTIONAL {
?type skos:prefLabel ?typeLabel_ .
?type rdfs:subClassOf/skos:prefLabel ?broaderTypeLabel_ .
}
}
BIND(COALESCE(?typeLabel_, ?missingValue) as ?typeLabel)
BIND(COALESCE(?broaderTypeLabel_, ?missingValue) as ?broaderTypeLabel)
OPTIONAL {
?id wgs84:lat ?lat .
?id wgs84:long ?long .
}
OPTIONAL { ?id na-schema:positioning_accuracy ?positioningAccuracy }
OPTIONAL {
?id na-schema:place_name_modifier ?modifier ;
na-schema:place_name_basic_element ?basicElement .
}
OPTIONAL { ?id na-schema:collector ?collector }
OPTIONAL { ?id na-schema:stamp_date ?collectionYear }
}
`
}
}