Skip to content
Snippets Groups Projects
SparqlQueriesPerspective4.js 6.89 KiB
Newer Older
export const federatedSearchSparqlQueries = {
Henrik Askjer's avatar
Henrik Askjer committed
  norse: {
Henrik Askjer's avatar
Henrik Askjer committed
    geoQuery: `
    { ?place geof:within ( <LATMIN> <LONGMIN> <LATMAX> <LONGMAX>) }
    `,
Henrik Askjer's avatar
Henrik Askjer committed
    resultQuery: `
    PREFIX crm: <http://www.cidoc-crm.org/cidoc-crm/>
    PREFIX wgs: <http://www.w3.org/2003/01/geo/wgs84_pos#>
Henrik Askjer's avatar
Henrik Askjer committed
    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> {
Henrik Askjer's avatar
Henrik Askjer committed
    <QUERY>
    ?place crm:P1_is_identified_by ?id .
    ?id rdfs:label ?prefLabel .
  
Henrik Askjer's avatar
Henrik Askjer committed
    
Henrik Askjer's avatar
Henrik Askjer committed
    ?place wgs:lat ?lat;
      wgs:long ?long ;
      <https://norseworld.nordiska.uu.se/Type_of_locality> ?broaderTypeLabel .
Henrik Askjer's avatar
Henrik Askjer committed

      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 .
      }
Henrik Askjer's avatar
Henrik Askjer committed
  }
}
    `
  },
Henrik Askjer's avatar
Henrik Askjer committed
  saga: {
Henrik Askjer's avatar
Henrik Askjer committed
    geoQuery: `{ ?id geof:within ( <LATMIN> <LONGMIN> <LATMAX> <LONGMAX>) }`,
Henrik Askjer's avatar
Henrik Askjer committed
    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#>
Henrik Askjer's avatar
Henrik Askjer committed
        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/> {
Henrik Askjer's avatar
Henrik Askjer committed
        <QUERY>
Henrik Askjer's avatar
Henrik Askjer committed
        ?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)
Henrik Askjer's avatar
Henrik Askjer committed
    }}
    `
  },
Henrik Askjer's avatar
Henrik Askjer committed
  nsdb: {
Henrik Askjer's avatar
Henrik Askjer committed
    geoQuery: `{ ?coordinates geof:within ( <LATMIN> <LONGMIN> <LATMAX> <LONGMAX>) .
                 ?place crm:P189i_is_approximated_by ?coordinates .}`,
    resultQuery: `
Henrik Askjer's avatar
Henrik Askjer committed
    PREFIX crm: <http://www.cidoc-crm.org/cidoc-crm/>
Henrik Askjer's avatar
Henrik Askjer committed
    PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
Henrik Askjer's avatar
Henrik Askjer committed
    PREFIX geof: <http://www.opengis.net/def/function/geosparql/>
Henrik Askjer's avatar
Henrik Askjer committed

Henrik Askjer's avatar
Henrik Askjer committed
      SELECT ?id ?prefLabel ?broaderType ?broaderTypeLabel ?broaderAreaLabel ?coordinates ?lat ?long ?source WHERE  { GRAPH <https://data.spraksamlingane.no/stadnamn/nos-hs/nsdb> {
Henrik Askjer's avatar
Henrik Askjer committed
        <QUERY>
Henrik Askjer's avatar
Henrik Askjer committed
        ?id crm:P1i_identifies ?place ;
            rdfs:label ?prefLabel .

Henrik Askjer's avatar
Henrik Askjer committed

        ?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)

Henrik Askjer's avatar
Henrik Askjer committed
      }
Henrik Askjer's avatar
Henrik Askjer committed
    }
  },
  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 }
        }
      `
  }
}