JHS 193 Paikkatiedon yksilöivät tunnukset Liite 2. Esimerkki tiedontuottajan URI-palvelun teknisestä toteutuksesta

Samankaltaiset tiedostot
JHS XXX Paikkatiedon yksilöivät tunnisteet Liite 2: Esimerkki tiedontuottajan URI-palvelun teknisestä toteutuksesta

Esimerkki uudelleenohjauksen teknisestä toteutuksesta

URI:n muodostamisen prosessi (suositusluonnoksen liite 1)

JHS XXX Paikkatiedon yksilöivät tunnisteet Liite 1: URI:n muodostamisen prosessi

Paikkatiedon yksilöivät tunnukset. Kai Koistinen Inspire-sihteeristön verkkoseminaari

Paikannimirekisteri linkitettynä tietona

JHS 193 Paikkatiedon yksilöivät tunnukset Liite 1. URI:n muodostamisen prosessi

Palautekooste: JHS XXX Paikkatiedon yksilöivät tunnisteet

Paikkatiedon yksilöivät tunnukset. Pekka Sarkola

JHS XXX Paikkatiedon yksilöivät tunnukset JUHTA - Julkisen hallinnon tietohallinnon neuvottelukunta

Kansallinen maastotietokanta

JHS XXX Paikkatiedon yksilöivät tunnisteet JUHTA - Julkisen hallinnon tietohallinnon neuvottelukunta

Yksilöivät tunnisteet Tampereen kaupungilla. Marko Kauppi Paikkatietomarkkinat

Palautekooste ja työryhmän vastine: JHS XXX Paikkatiedon yksilöivät tunnisteet

Tilastokeskuksen rajapintapalveluiden käyttöönotto MapInfo - ohjelmistossa Ohjeita laatiessa on käytetty MapInfon versiota 11.5.

Komission asetus latauspalveluista Jani Kylmäaho Inspire-sihteeristö

Rajapintapalveluiden toteutusvaihtoehdot ja tilaaminen. Kunnat ja Inspire koulutus Jani Kylmäaho

Seuraavat tasot sisältävät alueita ja pisteitä samassa tasossa. o Asemakaavat o Kaavayksiköt o Kiinteistöt

standardit (W3C, ISO) Semanttisen laskennan tutkimusryhmä Teknillinen korkeakoulu

Rajapintapalveluiden toteutuksessa huomioitavaa. Rajapinnat tehokäyttöön Jani Kylmäaho

Paikkatietotuotteen määrittely

JHS XXX Paikkatiedon yksilöivät tunnisteet

Koordinaattimuunnospalvelu

Käyttötapaus HY-aineisto, myrkkypäästö JHS XXX Paikkatiedon yksilöivät tunnisteet JUHTA - Julkisen hallinnon tietohallinnon neuvottelukunta

Hack the budget - kehittäjätapaaminen VM Markku Huttunen

Paikkatietotuotteet ja niiden määrittely

10 Ohjelmoinnista Semanttisessa Webissä

SPARQL-workshop. Sini Pessala Kirjastoverkkopäivät KANSALLISKIRJASTO - Kirjastoverkkopalvelut

Liite D: Poikkeamispäätösten ja suunnittelutarveratkaisujen mallinnus tiedonsiirtoa varten

Katselupalvelut ja latauspalvelut - Paikkatietoa karttakuvina ja GML-muodossa

INSPIRE-latauspalvelut. Velvoitteet ja toteutustavat Jani Kylmäaho Inspire-sihteeristö

Semanttinen Web. Ossi Nykänen Tampereen teknillinen yliopisto (TTY), DMI / Hypermedialaboratorio W3C Suomen toimisto

JHS XXX Paikkatiedon yksilöivät tunnukset

JHS 180 Paikkatiedon sisältöpalvelut Laajennos, liitteet 2-4. Lassi Lehto

Tekninen alusta. Tavoitteet ja näkökulmia maankäyttöpäätöksiin Jani Kylmäaho, osahankepäällikkö Maanmittauslaitos

Katselu- ja latauspalveluiden toteuttaminen kunnissa

Latauspalvelun toteutusvaihtoehdot

JHS 193 Paikkatiedon yksilöivät tunnukset

Vaatimusluettelo. Liite2_Vaatimusluettelo. Tun nus (ID) Kpl Tärkeys Toimittajan kommentit Navigointi. Haut

Eero Hyvönen. Semanttinen web. Linkitetyn avoimen datan käsikirja

Neljä innovaatiota - Kansallinen maastotietokanta tutuksi. Webinaari Ohjelmapäällikkö Risto Ilves

Sosiaalihuollon asiakastiedon arkiston validointipalvelu. Käyttöohje

Paikkatietojen tietotuotemäärittely

Organisaatio. 2. Yhteyshenkilön tiedot. 3. Suositusluonnoksen hyväksyminen. 4. Vastustusperusteet

Paikkatietojen tietotuotemäärittely

JHS XXX Paikkatiedon yksilöivät tunnukset JUHTA - Julkisen hallinnon tietohallinnon neuvottelukunta

JHS xxx Paikkatiedon tietotuotemäärittely

9.16 XSLT ja nimiavaruudet (1/3): literaali oletusnimiavaruus

GDAL ja WFS: suora muunnos ogr2ogr-ohjelmalla

Yhteentoimivuutta edistävien työkalujen kehittäminen

W3C ja alueellinen standardointi

Kunnan paikkatietopalvelurajapinta

Ontologiat merkitysten mallintamisessa: OWL. Eeva Ahonen

Valppaan asennus- ja käyttöohje

Lataus WFS Stored Query periaatteella (osa A) Suorasaantilataus (osat B ja C)

W3C-teknologiat ja yhteensopivuus

Varmennepalvelu Rajapintakuvaus Kansallisen tulorekisterin perustamishanke

Metatiedot lainsäädäntötiedon hallinnassa

Tietojen toimittaminen Skeemat Käsittelypalautteen kysely Kansallisen tulorekisterin perustamishanke

TYÖOHJE WFS-KOHTEIDEN HAKU

Semanttinen Web. Ossi Nykänen. Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), Hypermedialaboratorio W3C Suomen toimisto

INSPIRE ArcGIS-tuotteilla. Ulla Järvinen ja Jussi Immonen INSPIRE-koulutuksessa

Katselupalvelut ja latauspalvelut - Paikkatietoa karttakuvina ja GML-muodossa

StanForD-XML. Juha-Antti Sorsa, Tapio Räsänen, Vesa Imponen

Luonnos eams-rakenteeksi

Latauspalvelujen toteuttaminen Kyselykäyttö

Paikkatiedon infrastruktuurin hyödyntäminen

Luento 12: XML ja metatieto

JHS 183 Julkisen hallinnon palvelujen tietomalli ja ryhmittely verkkopalveluissa Liite 3 XML-skeeman kuvaus ja esimerkit

è è è RDF-perusteet 7 RDF-perusteet

Kansallinen koodistojen siirtoformaatti

Integraatioratkaisu joukkoviestintäverkkojen esittämiseen paikkatietojärjestelmässä

JHS 177 Paikkatietotuotteen määrittely

Logiikkapohjainen lähestymistapa RDF-tietolähteen esittämiseksi. Tuomas Räsänen

Järjestelmäarkkitehtuuri (TK081702)

Digitaalisen median tekniikat. JSP ja XML Harri Laine 1

Digitaalisen median tekniikat. JSP ja XML

Metatiedot organisaatioiden sisällönhallinnassa

INSPIRE-määrittelyiden mukaisen tietotuotteen esimerkkitoteutus: Hallinnolliset yksiköt Case Suomi

Sosiaalihuollon asiakastiedon arkiston validointipalvelu

Tiedon lataus vapailla kyselyillä (WFS 2.0 Ad hoc query)

INSPIRE Toimeenpanosääntö ja tekninen ohje Muunnospalvelu Koordinaattimuunnospalvelu

Digiroad-aineiston hyödyntäminen rajapintapalveluiden kautta MapInfo

JHS 187 Tunnussuositusten koontisuositus

Toiminnalliset ja ei-toiminnalliset vaatimukset Tunnus (ID) Vaatimus Vaatimuksen

Koodistopalvelun REST-rajapinnat

JHS-suositukset ja standardit paikkatietotuotteiden toteuttamisessa

Verkkopalvelut ja portaalitryhmän

Tietojen toimittaminen Skeemat Mitätöintitiedot Kansallisen tulorekisterin perustamishanke

Maastotietokantaa käytetään muiden karttatuotteiden valmistukseen sekä erilaisissa optimoinneissa.

Katselupalvelujen toteuttaminen

Sisällönhallinnan menetelmiä

Luku 10 Käyttöönoton suunnitteluja toteutusvaihe

6 Semanttinen Web 101

Digiroad-aineiston hyödyntäminen rajapintapalveluiden kautta Esri ArcGIS

Attribuutti-kyselypalvelu

Rajapintapalvelujen INSPIRE-yhteensopivuus

Paikkatiedot palveluväylässä kehityksen tilanne Väylän varrelta - Kansallisen palveluväylän kehitystilanne -seminaari

Tietojen toimittaminen Skeemat Käsittelypalautteen kysely Kansallisen tulorekisterin perustamishanke

Transkriptio:

JHS 193 Paikkatiedon yksilöivät tunnukset Liite 2. Esimerkki tiedontuottajan URI-palvelun teknisestä toteutuksesta Versio: 1.0 Julkaistu: 2.9.2015 Voimassaoloaika: toistaiseksi Sisällys 1 Johdanto...1 2 URI-palvelun toimintaperiaate ja vastauskäytänteet...2 3 Tekniset vaatimukset...3 4 URI-palvelun toteutusvaiheet...3 5 URI-palvelun palauttaman RDF-tiedon rakennekuvaus...3 6 Esimerkkitiedostot...4 6.1 XSLT-muunnostiedosto...4 6.2 SPARQL-kysely...6 6.3 RDF-esimerkki...6 6.4 Turtle-esimerkki...7 6.5 Apache.htaccess -tiedosto...7 1 Johdanto Tässä liitteessä kuvataan esimerkki suosituksessa määriteltyjen vastauskäytänteiden mukaisen vastauksen antavan URI-palvelun teknisestä toteutuksesta. Toteutuksessa käytetyt tekniset ratkaisut ovat vain esimerkkejä. Vastauskäytänteiden mukaisen vastauksen tuottava palvelu on mahdollista toteuttaa monilla muillakin tavoilla. Tunnistettuja vaihtoehtoisia toteutustapoja on tuotu esille tekstissä. Paikkatietokohteille, reaalimaailman kohteille ja käsitteille suosituksen mukaisesti annetut tunnukset sijaitsevat paikkatiedot.fi -verkkotunnuksen (domain) alla. Paikkatiedot.fi toimii kansallisena paikkatietojen URI-tunnusten uudelleenohjauspalveluna, joka ohjaa sille tulevat pyynnöt edelleen tiedon tuottajan tarjoamaan URI-palveluun. URI-tunnuksiin kohdistuvat pyynnöt tulisi uudelleenohjata tiedon tuottajan tarjoamaan URI-palveluun, josta saatava vastaus on suosituksessa määritellyn vastauskäytänteen mukainen. Verkko-osoite (dokumentaation tunnus doc, suosituksen kappale 9.1.4), johon paikkatietokohteen, reaalimaailman kohteen tai käsitteen tunnukseen tuleva kysely uudelleenohjataan, on yleisesti muotoa http://{verkkotunnus}/doc/{aineistotunnus}/{paikallinen tunnus}[/{versiotunnus}] 1/9

2 URI-palvelun toimintaperiaate ja vastauskäytänteet Paikkatiedot.fi -uudelleenohjauspalvelu ohjaa paikkatietokohteen, reaalimaailman kohteen tai käsitteen tunnukseen kohdistuvat pyynnöt tiedontuottajan URI-palveluun. URI-palvelu palauttaa paikkatietokohteeseen, reaalimaailman kohteeseen tai käsitteeseen liittyvän dokumentaation. Tässä esimerkkitoteutuksessa dokumentaatio on esitetty RDF/XML-muotoisena. Dokumentaatio sisältää viittaukset: dokumentoituun paikkatietokohteeseen, reaalimaailman kohteeseen tai käsitteeseen jos dokumentaatio kohdistuu tietokohteeseen (paikkatietokohde tai käsite), kyseisen tietokohteen eri esitysmuotoihin (GML, JSON jne.), sekä mahdollisuuksien mukaan - paikkatietokohdetta vastaavaan reaalimaailman kohteeseen - paikkatietokohdetta tai reaalimaailman kohdetta kuvaaviin käsitteisiin - muihin dokumentoituun paikkatietokohteeseen, reaalimaailman kohteeseen tai paikkatietokohteeseen liittyviin paikkatietokohteisiin, reaalimaailman kohteisiin, käsitteisiin tai muuhun dokumentaatioon (kuvat, tekstit jne.) Tässä esimerkkitoteutuksessa URI-palvelu ohjaa paikkatietokohteiden esitysmuotojen kyselyt Web Feature Service -palvelulle, joka palauttaa kohteen tiedot halutussa koordinaatistossa ja formaatissa. Paikkatietokohteen eri esitysmuodot esitetään muodossa: http://{verkkotunnus}/doc/{aineistotunnus}/{paikallinen tunnus}/{koordinaattijärjestelmä}.{formaatti} esimerkiksi: http://{verkkotunnus}/doc/{aineistotunnus}/{paikallinen tunnus}/epsg:3087.gml2 URI-palvelun palauttaman RDF -tiedon tarkempi rakennekuvaus on esitelty luvussa 5. Luvussa 6.3 esitellään esimerkki tämän rakennekuvauksen mukaisesta RDF-tiedosta. 2/9

3 Tekniset vaatimukset Tämän esimerkin URI-palvelun toteuttamiseen on käytetty seuraavia teknologioita: Apache HTTP -palvelin Apache Jena Fuseki RDF -palvelin Apache HTTP- ja Apache Jena Fuseki -palvelimien käyttöönottoa ei tässä liitteessä ohjeisteta, vaan nämä on esitetty tuotteiden omilla verkkosivustoilla. Apache Jena Fuseki -palvelinohjelmisto noudattaa SPARQL 1.1 -standardia, joten se on mahdollista korvata millä tahansa samaa standardia noudattavalla ohjelmistolla. 4 URI-palvelun toteutusvaiheet Alla on esitetty esimerkki URI-palvelun toteutuksesta vaiheittain. Kaikki toteutuksessa käytetyt tiedostot on esitetty luvussa 6. 1. Luodaan paikkatietokohteisiin liittyvän dokumentaation sisältävä, luvussa 5 esitetyn RDF-skeeman mukainen, SPARQL update -lause. Lause voidaan muodostaa WFS:n GetFeature kohdetietokyselyn palauttamasta GML-dokumentista XSLT-muunnoksella. Muunnoksen määrittelyyn ja suorittamiseen on olemassa hyviä valmiita sovelluksia verkossa. Esimerkkitoteutuksessa käytettävä XSLT-muunnostiedosto on esitetty luvussa 6.1. Jos paikkatietoaineisto on saatavana ajantasaisena tietokannassa ja halutaan välttää (mahdollisesti suurikokoisten) GML-dokumenttien käsittelyä, voidaan SPARQL update -lause vaihtoehtoisesti luoda sopivan skriptin avulla suoraan tietokannasta. 2. Ladataan paikkatietokohteisiin liittyvä dokumentaatio kohdassa 1 muodostetulla SPARQL update -lauseella Apache Jena Fusekin RDF-tietokantaan. Vaihtoehtoisena toteutustapana kohdassa 1 GML-dokumentti (tai tietokannan sisältö) voidaan myös muuntaa (XSLT-muunnoksella tai muulla skriptillä) suoraan RDF/XML-muotoon ja ladata tämän jälkeen RDF-tietokantaan SPARQL LOAD -lauseella. 3. Tehdään SPARQL-kysely Apache Jena Fuseki tietokantaan luvun 6.2 mukaisesti. Kysely palauttaa luvussa 5 määritellyn RDF -skeeman mukaiset tiedot, joista esimerkki luvussa 6.3. Vaihtoehtoisesti RDF-datan julkaisuun voidaan käyttää myös aputyökaluja kuten esim. Pubby (https://github.com/cygri/pubby) tai Elda (https://github.com/epimorphics/elda). 4. Luodaan.htaccess -tiedosto Apache HTTP -palvelimelle, joka näkyy verkkoon. Luvussa 6.4 on esitetty esimerkki Apache.htaccess-uudelleenohjaustiedostosta selitettynä. Huom! Tämä on tietyssä ympäristössä tehty esimerkkitoteutus. Näiden vaiheiden lisäksi voidaan joutua tekemään useita teknisiä konfigurointeja riippuen olemassa olevasta palvelinympäristöstä ja verkkoinfrastruktuurista. 5 URI-palvelun palauttaman RDF-tiedon rakennekuvaus Alla olevassa taulukossa on esitetty URI-palvelun palauttaman RDF-muotoisen tiedon rakennekuvaus. Esimerkki kuvauksen mukaisesta RDF-vastauksesta on esitetty luvussa 6.3. Luokka Ominaisuus Ominaisuuden arvoalue Toistuvuus Kuvaus jhs:doc Resurssiin liittyvä dokumentaatio jhs:so Paikkatietokohteen tunnus 0..1 Jos dokumentoitu resurssi on paikkatietokohde, viittaus paikkatietokohteeseen, johon dokumentaatio kohdistuu jhs:id Reaalimaailman kohteen tunnus 0..1 Viittaus reaalimaailman kohteeseen, jota dokumentoitu 3/9

jhs:data paikkatietokohde mallintaa. dct:hasformat jhs:data 1..n Resurssista saatavilla olevat esitysmuodot dct:subject Käsitteen tunnus 0..n Viittaus resurssia kuvailevaan käsitteeseen rdfs:seealso jhs:crs Kohteeseen tai käsitteeseen liittyvää lisäinformaatiota Esitysmuodon koordinaattijärjestelmä 0..n Viittaus esimerkiksi samaa reaalimaailman kohdetta mallintavaan paikkatietokohteeseen Resurssin esitysmuoto 0..1 Esitysmuodon koordinaattijärjestelmän EPSG-koodi (vain paikkatietokohteille) dc:format Esitysmuodon formaatti 1 Esitysmuodon MIME-tyyppi jhs:so Paikkatietokohteen tunnus 0..1 Viittaus esitettävään paikkatietokohteeseen jhs:def Käsitteen tunnus 0..1 Viittaus esitettävään paikkatietokäsitteeseen Taulukko 1. URI-palvelun palauttaman RDF-tiedon rakennekuvaus. jhs: http://paikkatiedot.fi/jhs-skeema# dc: http://purl.org/dc/elements/1.1/ dct: http://purl.org/dc/terms/ URI-palvelun tuottaja voi vapaasti soveltaa edellä määriteltyä RDF-rakennetta esim. laajentamalla sitä omilla elementeillään. Näitä voivat olla esimerkiksi erityyppiset linkitykset muihin tietokohteisiin. Myös paikkatietokohteen tai käsitteen tietosisältöä voidaan tuoda osaksi RDF-dokumentaatiota. 6 Esimerkkitiedostot 6.1 XSLT-muunnostiedosto <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform" xmlns:fo="http://www.w3.org/1999/xsl/format" xmlns:tampere_ora="http://www.navici.com/ns/tampere_ora" xmlns:gml="http://www.opengis.net/gml" > <xsl:output method="text" indent="yes"/> <xsl:template match="/"> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX dc: <http://purl.org/dc/elements/1.1/> PREFIX jhs: <http://paikkatiedot.fi/jhs-skeema#> <!-- Muodostetaan SPARQL INSERT -lause. INSERT-lauseessa RDF-kolmikot esitetään Turtle-formaatissa. --> INSERT DATA { 4/9

<xsl:for-each select="//tampere_ora:1000358_wb"> <!-- Paikkatietokohteeseen liittyvä dokumentaatio --> <http://kartat.tampere.fi/uri/doc/1000358/<xsl:value-of select="tampere_ora:tunniste"/>> rdf:type jhs:doc; jhs:id <http://paikkatiedot.fi/id/1000040/<xsl:value-of select="tampere_ora:digiroad_id"/>>; rdfs:seealso <http://paikkatiedot.fi/so/1000040/<xsl:value-of select="tampere_ora:digiroad_id"/>>; dct:hasformat <http://kartat.tampere.fi/uri/doc/1000358/<xsl:value-of select="tampere_ora:tunniste"/>/epsg:3067.json>; dct:hasformat <http://kartat.tampere.fi/uri/doc/1000358/<xsl:value-of select="tampere_ora:tunniste"/>/epsg:3067.gml2>; dct:hasformat <http://kartat.tampere.fi/uri/doc/1000358/<xsl:value-of select="tampere_ora:tunniste"/>/epsg:3878.json>; dct:hasformat <http://kartat.tampere.fi/uri/doc/1000358/<xsl:value-of select="tampere_ora:tunniste"/>/epsg:3878.gml2>; dct:subject <http://www.yso.fi/onto/yso/p17892>. <!-- Paikkatietokohteen esitysmuodot --> <http://kartat.tampere.fi/uri/doc/1000358/<xsl:value-of select="tampere_ora:tunniste"/>/epsg:3067.json> rdf:type jhs:data; jhs:crs <http://www.opengis.net/def/crs/epsg/0/3067>; dc:format "application/json". <http://kartat.tampere.fi/uri/doc/1000358/<xsl:value-of select="tampere_ora:tunniste"/>/epsg:3067.gml2> rdf:type jhs:data; jhs:crs <http://www.opengis.net/def/crs/epsg/0/3067>; dc:format "application/gml". <http://kartat.tampere.fi/uri/doc/1000358/<xsl:value-of select="tampere_ora:tunniste"/>/epsg:3878.json> rdf:type jhs:data; jhs:crs <http://www.opengis.net/def/crs/epsg/0/3878>; dc:format "application/json". <http://kartat.tampere.fi/uri/doc/1000358/<xsl:value-of select="tampere_ora:tunniste"/>/epsg:3878.gml2> rdf:type jhs:data; jhs:crs <http://www.opengis.net/def/crs/epsg/0/3878>; dc:format "application/gml". </xsl:for-each> } </xsl:template> 5/9

</xsl:stylesheet> 6.2 SPARQL-kysely PREFIX rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# PREFIX rdfs: http://www.w3.org/2000/01/rdf-schema# PREFIX dc: http://purl.org/dc/elements/1.1/ PREFIX jhs: <http://paikkatiedot.fi/jhs-skeema#> CONSTRUCT { <http://kartat.tampere.fi/uri/doc/1000358/0072> jhs:so?so; rdf:type?a; jhs:id?h; rdfs:seealso?g; dct:subject?b; dct:hasformat?c.?c jhs:crs?d.?c dc:format?e.?c rdf:type?f } WHERE { <http://kartat.tampere.fi/uri/doc/1000358/0072> jhs:so?so; rdf:type?a; jhs:id?h; rdfs:seealso?g; dct:subject?b; dct:hasformat?c.?c jhs:crs?d.?c dc:format?e.?c rdf:type?f } 6.3 RDF-esimerkki <rdf:rdf xmlns:jhs="http://paikkatiedot.fi/jhs-skeema#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> <jhs:doc rdf:about="http://kartat.tampere.fi/uri/doc/1000358/6447"> <dct:hasformat> <jhs:data rdf:about="http://kartat.tampere.fi/uri/doc/1000358/6447/epsg:3067.json"> <dc:format>application/json</dc:format> <jhs:crs rdf:resource="http://www.opengis.net/def/crs/epsg/0/3067"/> </jhs:data> </dct:hasformat> <dct:hasformat> <jhs:data rdf:about="http://kartat.tampere.fi/uri/doc/1000358/6447/epsg:3067.gml2"> <dc:format>application/gml</dc:format> <jhs:crs rdf:resource="http://www.opengis.net/def/crs/epsg/0/3067"/> </jhs:data> </dct:hasformat> 6/9

<dct:hasformat> <jhs:data rdf:about="http://kartat.tampere.fi/uri/doc/1000358/6447/epsg:3878.json"> <dc:format>application/json</dc:format> <jhs:crs rdf:resource="http://www.opengis.net/def/crs/epsg/0/3878"/> </jhs:data> </dct:hasformat> <dct:hasformat> <jhs:data rdf:about="http://kartat.tampere.fi/uri/doc/1000358/6447/epsg:3878.gml2"> <dc:format>application/gml</dc:format> <jhs:crs rdf:resource="http://www.opengis.net/def/crs/epsg/0/3878"/> </jhs:data> </dct:hasformat> <dct:subject rdf:resource="http://www.yso.fi/onto/yso/p17892"/> <rdfs:seealso rdf:resource="http://paikkatiedot.fi/so/1000040/172353"/> <jhs:id rdf:resource="http://paikkatiedot.fi/id/1000040/172353"/> <jhs:so rdf:resource="http://paikkatiedot.fi/so/1000358/6447"/> </jhs:doc> </rdf:rdf> 6.4 Turtle-esimerkki @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. @prefix jhs: <http://paikkatiedot.fi/jhs-skeema#>. @prefix dc: <http://purl.org/dc/elements/1.1/>. @prefix dct: <https://purl.org/dc/terms>. @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>. <http://kartat.tampere.fi/uri/doc/1000358/6447> rdf:type jhs:doc ; jhs:id <http://paikkatiedot.fi/id/1000040/172353> ; jhs:so <http://paikkatiedot.fi/so/1000358/6447> ; dc:subject <http://www.yso.fi/onto/yso/p17892> ; rdfs:seealso <http://paikkatiedot.fi/so/1000040/172353> ; dct:hasformat <http://kartat.tampere.fi/uri/doc/1000358/6447/epsg:3067.gml2> ; dct:hasformat <http://kartat.tampere.fi/uri/doc/1000358/6447/epsg:3067.json>. <http://kartat.tampere.fi/uri/doc/1000358/6447/epsg:3067.gml2> rdf:type jhs:data ; jhs:crs <http://www.opengis.net/def/crs/epsg/0/3067> ; dc:format "application/gml". <http://kartat.tampere.fi/uri/doc/1000358/6447/epsg:3067.json> rdf:type jhs:data ; jhs:crs <http://www.opengis.net/def/crs/epsg/0/3067> ; dc:format "application/json". 6.5 Apache.htaccess -tiedosto <IfModule mod_rewrite.c> RewriteEngine On Rewritebase /uri/ 7/9

# RewriteRule uudelleen ohjaa doc-polkukomponentin muuttujat ([a-za-z0-9]+)/([a-za-z0-9:]+). ([a-za-z0-9]+) wfs-kohdekyselyyn $1,$2,$3. Huomaa, että RewriteRule tulee olla yhdellä rivillä, ei niin kuin alla esitetty. RewriteRule ^doc/1000358/([a-za-z0-9_]+)/([a-za-z0-9:]+).([a-za-z0-9]+)$ http://tampere.navici.com/tampere_wfs_geoserver/tampere_ora/ows? service=wfs&version=1.0.0&request=getfeature&typename=tampere_ora:bussipysakit_wb&output format=$3&srsname=$2&filter=<filter><propertyisequalto><propertyname>tunniste</propertynam e><literal>$1</literal></propertyisequalto></filter> RewriteRule ^doc/1000359/([a-za-z0-9_]+)/([a-za-z0-9:]+).([a-za-z0-9]+)$ http://tampere.navici.com/tampere_wfs_geoserver/tampere_ora/ows? service=wfs&version=1.0.0&request=getfeature&typename=tampere_ora:bussilinjat&outputformat =$3&srsName=$2&Filter=<Filter><PropertyIsEqualTo><PropertyName>REITTI</PropertyName><Literal >$1</Literal></PropertyIsEqualTo></Filter> RewriteRule ^doc/1000378/([a-za-z0-9_-]+)/([a-za-z0-9:]+).([a-za-z0-9]+)$ http://tampere.navici.com/tampere_wfs_geoserver/rakennukset/ows? service=wfs&version=1.0.0&request=getfeature&typename=rakennukset:rakenn_st_fa_mview& outputformat=$3&srsname=$2&filter=<filter><propertyisequalto><propertyname>rak_tunnus_fa CTA</PropertyName><Literal>$1</Literal></PropertyIsEqualTo></Filter> RewriteRule ^doc/1000040/([a-za-z0-9_-]+)/([a-za-z0-9:]+).([a-za-z0-9]+)$ https://extranet.liikennevirasto.fi/inspirepalvelu/maaliikenne_avoin/wfs? request=getfeature&typename=maaliikenne_avoin:bussipysakit&srsname=$2&filter=<filter><propertyis Like+wildCard="*"+singleChar=","+escapeChar="."><PropertyName>STOP_ID</PropertyName><Literal >$1</Literal></PropertyIsLike></Filter>&outputformat=$3 #RewriteRule uudelleen ohjaa doc-polkukomponentin muuttujan ([a-za-z0-9]+) SPARQL-kyselyyn $1. Huomaa, että RewriteRule tulee olla yhdellä rivillä, ei niin kuin alla esitetty. RewriteRule ^doc/1000358/([a-za-z0-9_-]+)$ http://kartat.tampere.fi/fuseki/ds2/query? query=prefix+rdf:+<http://www.w3.org/1999/02/22-rdf-syntax-ns#>prefix+rdfs: +<http://www.w3.org/2000/01/rdf-schema#>prefix+dc:+<http://purl.org/dc/elements/1.1/>prefix+jhs: +<http://paikkatiedot.fi/jhs-skeema#>construct+ {<http://kartat.tampere.fi/uri/doc/1000358/$1>+jhs:so+?jep;rdf:type+?f;jhs:id+?h;rdfs:seealso+? g;dct:subject+?a;dct:hasformat+?b.?b+jhs:crs+?c.?b+dc:format+?d.?b+rdf:type+?e} +WHERE{<http://kartat.tampere.fi/uri/doc/1000358/$1>+jhs:so+?jep;rdf:type+?f;jhs:id+?h;rdfs:seeAlso+? g;dct:subject+?a;dct:hasformat+?b.?b+jhs:crs+?c.?b+dc:format+?d.?b+rdf:type+?e}+&output=xml RewriteRule ^doc/1000358/([a-za-z0-9_-]+)/$ http://kartat.tampere.fi/fuseki/ds2/query? query=prefix+rdf:+<http://www.w3.org/1999/02/22-rdf-syntax-ns#>prefix+rdfs: +<http://www.w3.org/2000/01/rdf-schema#>prefix+dc:+<http://purl.org/dc/elements/1.1/>prefix+jhs: +<http://paikkatiedot.fi/jhs-skeema#>construct+ {<http://kartat.tampere.fi/uri/doc/1000358/$1>+jhs:so+?jep;rdf:type+?f;jhs:id+?h;rdfs:seealso+? g;dct:subject+?a;dct:hasformat+?b.?b+jhs:crs+?c.?b+dc:format+?d.?b+rdf:type+?e} +WHERE{<http://kartat.tampere.fi/uri/doc/1000358/$1>+jhs:so+?jep;rdf:type+?f;jhs:id+?h;rdfs:seeAlso+? g;dct:subject+?a;dct:hasformat+?b.?b+jhs:crs+?c.?b+dc:format+?d.?b+rdf:type+?e}+&output=xml RewriteRule ^doc/1000040/([a-za-z0-9_-]+)$ http://kartat.tampere.fi/fuseki/ds2/query? query=prefix+rdf:+<http://www.w3.org/1999/02/22-rdf-syntax-ns#>prefix+rdfs: +<http://www.w3.org/2000/01/rdf-schema#>prefix+dc:+<http://purl.org/dc/elements/1.1/>prefix+jhs: +<http://paikkatiedot.fi/jhs-skeema#>construct+ {<http://kartat.tampere.fi/uri/doc/1000040/$1>+jhs:so+?jep;rdf:type+?f;jhs:id+?h;rdfs:seealso+? g;dct:subject+?a;dct:hasformat+?b.?b+jhs:crs+?c.?b+dc:format+?d.?b+rdf:type+?e} +WHERE{<http://kartat.tampere.fi/uri/doc/1000040/$1>+jhs:so+?jep;rdf:type+?f;jhs:id+?h;rdfs:seeAlso+? g;dct:subject+?a;dct:hasformat+?b.?b+jhs:crs+?c.?b+dc:format+?d.?b+rdf:type+?e}+&output=xml RewriteRule ^doc/1000040/([a-za-z0-9_-]+)/$ http://kartat.tampere.fi/fuseki/ds2/query? query=prefix+rdf:+<http://www.w3.org/1999/02/22-rdf-syntax-ns#>prefix+rdfs: +<http://www.w3.org/2000/01/rdf-schema#>prefix+dc:+<http://purl.org/dc/elements/1.1/>prefix+jhs: 8/9

+<http://paikkatiedot.fi/jhs-skeema#>construct+ {<http://kartat.tampere.fi/uri/doc/1000040/$1>+jhs:so+?jep;rdf:type+?f;jhs:id+?h;rdfs:seealso+? g;dct:subject+?a;dct:hasformat+?b.?b+jhs:crs+?c.?b+dc:format+?d.?b+rdf:type+?e} +WHERE{<http://kartat.tampere.fi/uri/doc/1000040/$1>+jhs:so+?jep;rdf:type+?f;jhs:id+?h;rdfs:seeAlso+? g;dct:subject+?a;dct:hasformat+?b.?b+jhs:crs+?c.?b+dc:format+?d.?b+rdf:type+?e}+&output=xml </IfModule> 9/9