è è è RDF-perusteet 7 RDF-perusteet

Samankaltaiset tiedostot
RDF ja RDFS. 8 RDF ja RDFS

Luento 12: XML ja metatieto

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

RDF-TIETOMALLI TOIMINTAPROSESSIN TIEDONHALLINNAN TUKENA

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

6 Semanttinen Web 101

6 Semanttinen Web 101

6 Semanttinen Web 101

Paikkatiedot ja Web-standardit

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

Ontologiat merkitysten mallintamisessa: OWL. Eeva Ahonen

W3C-teknologiat ja yhteensopivuus

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

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

3 Verkkosaavutettavuuden tekniset perusteet

Semanttisen webin käsikirja (luonnos)

Semanttinen Web ja Webteknologiat

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla

URI:n muodostamisen prosessi (suositusluonnoksen liite 1)

SÄHKE-hanke. Abstrakti mallintaminen Tietomallin (graafi) lukuohje

ONKI SKOS Sanastojen ja ontologioiden julkaiseminen ja käyttö Asiasanaston muuntaminen SKOS muotoon: case YSA

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 30. marraskuuta 2015

Tutkitaan sitten HTML-dokumenttien anatomiaa, jotta päästään käsiksi rakenteisten dokumenttien käsitteistöön esimerkkien kautta.

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

Semanttisen webin käsikirja (luonnos)

12 Pari sanaa sovelluskehityksestä

XML kielioppi. Elementtien ja attribuuttien määrittely. Ctl230: Luentokalvot Miro Lehtonen

Tarkastelemme ensin konkreettista esimerkkiä ja johdamme sitten yleisen säännön, joilla voidaan tietyissä tapauksissa todeta kielen ei-säännöllisyys.

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

9 RDF-kyselykielten perusteet: SPARQL

Johdatus rakenteisiin dokumentteihin

9 RDF-kyselykielten perusteet: SPARQL

ELM GROUP 04. Teemu Laakso Henrik Talarmo

7/20: Paketti kasassa ensimmäistä kertaa

Esimerkki uudelleenohjauksen teknisestä toteutuksesta

Paikannimirekisteri linkitettynä tietona

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 3. lokakuuta 2016

M. Merikanto 2012 XML. Merkkauskieli, osa 2

12 Case: "hajautettu kauppapaikka"

Rakenteisten dokumenttien jatkokurssi, syksy 2006

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

Helsingin yliopisto Tietojenkäsittelytieteen laitos XML-metakieli (2011) Harri Laine 1. Jäsennys ja sarjallistaminen

W3C, Web-teknologiat ja Semanttinen Web

RDF-muotoisen tiedon hallinta

HELIA 1 (17) Outi Virkki Tiedonhallinta

XML / DTD / FOP -opas Internal

Muodolliset kieliopit

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

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

P e d a c o d e ohjelmointikoulutus verkossa

Suunnitteluvaihe prosessissa

XML johdatus: DTD. Jaana Holvikivi

XHTML - harjoitus. Tehtävä1: Tee xhtml tiedosto käyttäen notepad (muistio) ohjelmaa. Tiedoston tallennus notepad (muistio) ohjelmassa:

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

10 Tiedostot, dokumentit, tieto (&h-media)

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

Ohjelmoinnin peruskurssien laaja oppimäärä

10 Ohjelmoinnista Semanttisessa Webissä

Turingin koneen laajennuksia

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

Semanttinen web ja sukututkimus

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012

Hohde Consulting 2004

Harjoitus 1 -- Ratkaisut

Varmennepalvelu Rajapintakuvaus Kansallisen tulorekisterin perustamishanke

Kuinka määritellään 2 3?

W3C ja alueellinen standardointi

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

FORMAALI SYSTEEMI (in Nutshell): aakkosto: alkeismerkkien joukko kieliopin määräämä syntaksi: sallittujen merkkijonojen rakenne, formaali kuvaus

TIEA341 Funktio-ohjelmointi 1, kevät 2008

Ctl160 Tekstikorpusten tietojenkäsittely p.1/15

Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia, niin A on rekursiivinen.

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet )

Näkymäpohjainen RDF-haku

Poikkeusinfo XML-rajapinnan kuvaus, rajapinnan versio 2 Seasam Group

Creative Commons ja yliopistot. V i l l e O k s a n e n

Attribuutti-kyselypalvelu

Internet jolla on merkitystä

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 5. marraskuuta 2015

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

Säännöllisten kielten sulkeumaominaisuudet

Semanttinen web - lyhyt johdatus

Metatiedot organisaatioiden sisällönhallinnassa

Luento 1: Johdanto merkintäkieliin

Rekursiiviset palautukset [HMU 9.3.1]

Resource Description Framework (RDF) -konsepti. Lauri Antikainen

Miten Linked Data aineistoja tuotetaan ja. Semanttisen laskennan tutkimusryhmä SeCo Aalto-yliopisto

Tietorakenteet ja algoritmit

ITKP102 Ohjelmointi 1 (6 op)

Attribuuttikieliopit

Tiedon mallintaminen ja esillesaanti. Web Ontology Language OWL Daniel Lillqvist

8. Kieliopit ja kielet

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Relaatiomallin peruskäsitteet Harri Laine 1. Relaatiotietokannat DONOTP

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

UML-kielen formalisointi Object-Z:lla

Sisällönhallinnan menetelmiä

Transkriptio:

7 RDF-perusteet Semanttisen Webin määrittelyteknisen ytimen muodostaa siis Resource Description Framework (RDF) -määritys. Tarkastellaan seuraavassa lyhyesti kielen (kaikille sovelluksille yhteisiä) primitiivejä lähemmin. RDF määrittelee lausumien perusrakenteen lisäksi erityisesti tyypitetyn literaalin käsitteen (vrt. XML Schema). Tämän lisäksi kieli esittelee joukko yksinkertaisia tietorakenteita: säiliöitä ja kokoelmia, sekä ns. reifikaation käsitteen 144

7.1 Välisoitto RDF-tietomalli tähtää siis kaikentyyppiseen mallintamiseen Malli taipuukin useiden sovellusten käyttöön Käytännön sovelluksissa "realistinen minimalismi" RDF:n eri piirteiden hyödyntämisessä on kuitenkin kelpo tie 145

7.2 Vielä tyhjistä solmuista Tyhjä solmu on siis RDF-graafin osa jolle ei haluta pakottaa globaalia nimeä - monipaikkaiset relaatiot - "muuttujat" (vrt. "on olemassa X, s.e. Address(X, "Kotikatu 1") N3-tiedostoissa tyhjä solmu nimetään esim. _:x ex:address "Kotikatu 1". RDF/XML-tiedostoissa tyhjä solmu nimetään attribuutilla rdf:nodeid: <rdf:description rdf:about="http://www.w3.org/tr/rdf-syntax-grammar"> <dc:title>rdf/xml Syntax Specification (Revised)</dc:title> <exterms:editor rdf:nodeid="abc"/> <rdf:description rdf:nodeid="abc"> <exterms:fullname>dave Beckett</exterms:fullName> <exterms:homepage rdf:resource="http://purl.org/net/dajobe/"/> 146

7.3 Tyypitetyt literaalit (1/2) Oletusarvoisesti literaali on vain merkkijono: ex:85740 ex:age "27". Merkkijonon tulkinta voidaan tuntea "etukäteen" sovelluksen perusteella tai kertoa toisella lausumalla Literaaliin voidaan kuitenkin myös liittää tieto datatyypistä (vrt. XML Schema); tuloksena tyypitetty literaali (Typed Literal): ex:85740 ex:age "27"^^<http://www.w3.org/2001/XMLSchema#integer>. tai ex:85740 ex:age "27"^^xsd:integer. RDF määrittelee vain yhden oman datatyypin (rdf:xmlliteral), muuten nojaudutaan toisaalla esiteltyihin (periaatteessa taas mv. URI-nimiä) Osaa XML-skeemojen esimääritellyistä datatyypeistä ei suositella käytettäväksi näiden olettamusten tai tulkinnanvaraisuuden takia 147

7.4 Tyypitetyt literaalit (2/2) RDF/XML-syntaksissa tyypitetty literaali esitetään attribuutilla rdf:datatype: <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:exterms="http://www.example.org/terms/"> <rdf:description rdf:about="http://www.example.org/index.html"> <exterms:creation-date rdf:datatype= "http://www.w3.org/2001/xmlschema#date">1999-08-16 </exterms:creation-date> </rdf:rdf> Sama N3-muodossa: ex:index.html exterms:creation-date "1999-08-16"^^xsd:date. Tekstientiteettejä käytetään toisinaan lyhentämään RDF/XML-koodia, esim.: <!DOCTYPE rdf:rdf [<!ENTITY xsd "http://www.w3.org/2001/xmlschema#">]> 148

7.5 URI-nimien sieventäminen RDF/XML sallii suhteellisten nimien käytön resurssien URI-nimien koodaamisessa fragmenttiosoitteiden avulla (tällöin rdf:about rdf:id). Oletetaan esimerkiksi että ao. esimerkkitiedoston osoite on http://www.example.com/2002/04/products. Ts. ao. koodinpätkä... <rdf:description rdf:id="item10245"> <exterms:model rdf:datatype="&xsd;string">overnighter</exterms:model> <exterms:sleeps rdf:datatype="&xsd;integer">2</exterms:sleeps>...vastaa N3-koodia <http://www.example.com/2002/04/products#item10245> exterms:model "Overnighter"^^xsd:string. RDF/XML sallii myös XML:n base-attribuutin käytön (attribuutti xml:base) N3-tiedostossa voidaan vastaavasti viitata notaatiolla <#item10245> exterms:model "Overnighter"^^xsd:string. 149

7.6 Säiliöt RDF määrittelee kolme ns. säiliöitä (Container) kuvailevaa käsitettä: - pussi (rdf:bag): ei järjestystä (monikerrat sallitaan) - jono (rdf:seq): järjestetty - vaihtoehdot (rdf:alt): 1. arvo on oletusarvo, muuten järjestyksellä ei väliä Säiliöominaisuus voidaan liittää mihin tahansa resurssiin; tällöin halutaan lähinnä käyttää neutraalia jäsenyyspredikaattia rdf:_n missä n=1,2,3,... Yo. määritelmät ovat "vain" tarkoitettuja tulkintoja; RDF ei määrittele käsitteille formaalia tulkintaa (joka olisi erilainen kuin RDF-graafin tulkinta muuten) 150

7.7 Esimerkki: RDF/XML ja vaihtoehdot Säiliössä voidaan käyttää koodia rdf:li: <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:s="http://example.org/packages/vocab#"> <rdf:description rdf:about="http://example.org/packages/x11"> <s:distributionsite> <rdf:alt> <rdf:li rdf:resource="ftp://ftp.example.org"/> <rdf:li rdf:resource="ftp://ftp1.example.org"/> <rdf:li rdf:resource="ftp://ftp2.example.org"/> </rdf:alt> </s:distributionsite> </rdf:rdf> N3:ssa joudutaan käyttämään numerointia (vrt. tyhjän solmun nimi!): ex:x11 rdf:_1 "ftp://ftp.example.org". 151

7.8 Kokoelmat Säiliötä ei voi "sulkea" kokoelma (Collection) korjaa tämän puutteen Kokoelmat ovat oleellisesti listarakenteita joiden 1. ja viimeinen alkio merkitään erikseen Listan jokainen alkio on implisiittisesti tyyppiä rdf:list: - rdf:first - rdf:rest - rdf:nil 152

7.9 RDF/XML ja kokoelmat <rdf:description rdf:about="http://example.org/courses/6.001"> <s:students rdf:parsetype="collection"> <rdf:description rdf:about="http://example.org/students/amy"/>... <rdf:description rdf:about="http://example.org/students/johann"/> </s:students> /rdf:description> Yo. lyhennemerkintä on käytössä mukavampi kuin täyspitkä versio, esim.: <rdf:description rdf:about="http://example.org/courses/6.001"> <s:students rdf:nodeid="sch1"/>... <rdf:description rdf:nodeid="sch2"> <rdf:first rdf:resource="http://example.org/students/mohamed"/> <rdf:rest rdf:nodeid="sch3"/> <rdf:description rdf:nodeid="sch3"> <rdf:first rdf:resource="http://example.org/students/johann"/> <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntaxns#nil"/> 153

7.10 Reifikaatio Joskus on tarpeen sanoa jotain itse lausumista, esim. kuka sanoi sen Reifikaatio (Reification) tarjoaa mahdollisuuden koodata lausumiin liitettäviä ominaisuuksia: esim. exproducts:item10245 exterms:weight "2.4"^^xsd:decimal. Voidaan nimetä seuraavasti: exproducts:triple12345 rdf:type rdf:statement. exproducts:triple12345 rdf:subject exproducts:item10245. exproducts:triple12345 rdf:predicate exterms:weight. exproducts:triple12345 rdf:object "2.4"^^xsd:decimal. Nyt voidaan sanoa esim. exproducts:triple12345 dc:creator exstaff:85740. Reifikaatio ei kuvaa viittaamansa lausuman sisältöä vaan vain viittaa siihen objektina 154

7.11 Oletusarvo rdf:value Toisinaan on hyödyllistä sanoa mikä tietorakenteen luetelluista arvoista on "tärkein" (vrt. rdf:alt ja oletusarvo). esim. exproduct:item10245 exterms:weight _:weight10245. _:weight10245 rdf:value "2.4"^^xsd:decimal. _:weight10245 exterms:units exunits:kilograms. RDF/XML vastaavasti (huomaa myös rdf:parsetype="resource" joka määrittelee implisiittisesti tyhjän solmun): <rdf:description rdf:about="http://www.example.com/2002/04/products#item10245"> <exterms:weight rdf:parsetype="resource"> <rdf:value rdf:datatype="&xsd;decimal">2.4</rdf:value> <exterms:units rdf:resource="http://www.example.org/units/kilograms"/> </exterms:weight> Aina tärkeintä (yhtä) arvoa ei toki ole (esim. osoitetiedot) 155

7.12 XML-literaalit Toisinaan literaaleihin on tarpeen kirjoittaa myös merkkausta - esim. merkkiviittauksia, matemaattista notaatiota tms. merkkausta <?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:base="http://www.example.com/books"> <rdf:description rdf:id="book12345"> <dc:title rdf:parsetype="literal"> <span xml:lang="en"> The <em><br /></em> Element Considered Harmful. </span> </dc:title> </rdf:rdf> Fragmenttiin liitetään RDF/XML-dokumentin nimiavaruuksien prefiksinimet (muttei esim. dokumentin omia xml:lang ja xml:base -tietoja) 156

7.13 RDF ja xml:lang Maailmassa on muitakin kieliä kuin englannin kieli, siispä (literaalien) kieli pitää voida merkitä dokumenttiin attribuutilla xml:lang: <rdf:description rdf:about="http://example.org/buecher/baum" xml:lang="de"> <dc:title>der Baum</dc:title> <dc:description>das Buch ist außergewöhnlich</dc:description> <dc:title xml:lang="en">the Tree</dc:title> Tämä mutkistaa RDF-graafin käsitettä hieman literaalien osalta (kielikoodia voidaan tosin ajatella vain erikoisella tavalla koodattuna ja periytyvänä datatyypin määrittelynä) Kielikoodi ei kuitenkaan periydy XML-literaalin sisään (vrt. edellinen sivu) N3:ssa (laajasti tulkittuna) kielikoodit merkitään "kielitagin" avulla ex:baum dc:title "The Tree"@en. 157

7.14 Lopuksi RDF on pohjimmiltaan melko yksinkertainen tietomalli, joka melko intuitiivisesti rakentaa semanttista yhteensopivuutta sovellusten välille RDF:stä voidaan löytää kaikenlaisia puutteita myös RDF/XML-formaatin pulmat ovat synnyttäneet kokonaisen runsaasti "vaihtoehtoisia" esitystapoja Perusidea on joka tapauksessa ok; omissa sovelluksissa kannattaa kuinkin miettiä kahteen kertaan haluaako todella... - käyttää reifikaatioita (siis oman suunnitteluratkaisun osana) - käyttää säiliöitä (ainakaan sellaisenaan) - käyttää tyhjiä solmuja monipaikkaisten relaatioiden esittämiseen, jne. Pieni on kaunista, tässäkin asiassa 158