Tekninen järjestelmäarkkitehtuuri ja metatietomäärittely yhteentoimivuutta tukevalle välineistölle

Samankaltaiset tiedostot
Korkeakoulujen yhteentoimivuusmalli

Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin?

Suvi Remes Miika Alonen Petri Mustajoki Totti Tuhkanen

Ontologiat merkitysten mallintamisessa: OWL. Eeva Ahonen

Katsaus tietoarkkitehtuurityöhön

Paikannimirekisteri linkitettynä tietona

Kansallinen koodistojen siirtoformaatti

Kuntien yhteentoimivuusseminaari. Tietomallien laatiminen Taina Nurmela projektipäällikkö, Helsingin kaupunki

Yhteentoimiva.suomi.fi - palvelukokonaisuuden ja työkalujen esittely

JHS 183 Julkisen hallinnon palvelujen tietomalli ja ryhmittely verkkopalveluissa Liite 9 RDF-skeeman kuvaus

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

Yhteentoimivuutta edistävien työkalujen kehittäminen

Esimerkki uudelleenohjauksen teknisestä toteutuksesta

Yhteentoimivuutta edistävien työkalujen kehittäminen - JulkICTLab pilottiehdotus

Synergiaryhmän työpaja tietoarkkitehtuuri ja yhteentoimivuus

Yhteentoimivuutta edistävien työkalujen kehittäminen - JulkICTLab jatkohakemus

RDF ja RDFS. 8 RDF ja RDFS

Yhteentoimivuusvälineistö

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

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

Tavoitteena yhteinen tietoarkkitehtuuri & tietojen semanttista yhteentoimivuutta tukeva välineistö

URI:n muodostamisen prosessi (suositusluonnoksen liite 1)

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

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

SÄHKE-hanke. Tekninen mallintamisen Siirtotiedoston metatietokuvaukset

Modulaariset tietosisältömäärittelyt Tilannekatsaus

Koodistoeditorin toteutuksen lähtökohtia: KaPA-koodistopalvelu ja REST-rajapinnat

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

VVAA047 Hakuehdot VALDA 1.2

Digitaalisen median tekniikat xhtml - jatkuu Harri Laine 1

9 RDF-kyselykielten perusteet: SPARQL

9 RDF-kyselykielten perusteet: SPARQL

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

Varhaiskasvatuksen tietovarannon tietoluettelo

Yhteentoimivuusalusta ja sen hyödyntäminen kuntien/maakuntien taloushallinnossa Petri Tenhunen, VRK

Digitaalisen median tekniikat xhtml - jatkuu

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

Tämä dokumentti on tarkoitettu uudistettavan JHS179-suosituksen tietoarkkitehtuuriosion liitteeksi.

Koodistoeditorin tavoitteet ja tilannekatsaus

Sosiaalihuollon asiakasasiakirjojen tietomallinnus Tietomallit teknisen asiakirjamäärittelyn näkökulmasta

- Korkeakoulutuksen ja tutkimuksen (linkitetty) tietomalli

Digitaalisen median tekniikat xhtml - jatkuu

FinFamily Installation and importing data ( ) FinFamily Asennus / Installation

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

JHS 179 Kokonaisarkkitehtuurin suunnittelu ja kehittäminen Liite 8. Semanttisen yhteentoimivuuden viitekehys

VESAsta Fintoon ja YSAsta YSOon: Mikä muuttuu ja miksi?

W3C-teknologiat ja yhteensopivuus

Julkishallinnon XML-skeemat v0.5 JHS-suositus

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

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

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

Avoin data, avoimet rajapinnat ja tietojen linkitys. Osma Suominen Suomi.fi

Luonnos eams-rakenteeksi

FAIRDATA-PALVELUT. CSC Suomalainen tutkimuksen, koulutuksen, kulttuurin ja julkishallinnon ICT-osaamiskeskus. Anssi Kainulainen / CSC

Contents AdsML ympäristö... 2 AdsML Testi ympäristö... 2 AdsML tuotantoympäristö... 2 AdsML käyttöliittymä... 3 Kirjautuminen...

Mittaustietojen SAF-aineistokuvaus kaasudatahubiin

Vaatimusten versiointi DOORSissa

OMAISHOIDON TUEN SUUNNITELMAN ASIAKASASIAKIRJARAKENTEET

Paikkatiedon mallinnus Dokumentoinnin ymmärtäminen. Lassi Lehto

Sivuston tiedotmysiteworthcheck.com

PIC-koodin luominen URF-tietokantaan Participant Portal

Dublin Core metadataformaatin suomalainen versio. Kansalliskirjasto

Paikkatietojen tietotuotemäärittely

Näkökulmia yhteentoimivuuteen

JUHTA - Julkisen hallinnon tietohallinnon neuvottelukunta

Paikkatietojen tietotuotemäärittely

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

Kanta PHR:n CapabilityStatement ja REST-API. Eeva Turkka

Tietotuoteseloste, Museoviraston Inspire-aineistot (Suojellut alueet)

10 Ohjelmoinnista Semanttisessa Webissä

Yhteinen kansallinen koodistopalvelu ( Suomi.fi koodistopalvelu )

Poikkeusinfo XML-rajapinnan kuvaus, rajapinnan versio 2 Seasam Group

Koordinaattimuunnospalvelu

Trimble Feedback Mobile app ja rajapinnat Kuvaus

Semanttinen Finlex Visio ja sen toteutus

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

Rekisteriseloste Henkilötietolain (523/99) 10 ja 24 mukainen rekisteri- ja tietosuojaseloste.

Department of Media Technology EMO

Sivuston tiedotqbsupportcustom erservice.com

DriveGate -ohjeet. DriveGate-käyttöohjeet: Rekisteröityminen palveluun. Rekisteröitymisohjeet ja rekisteröitymisprosessin kuvaus

INTINU13A6 Java sovellukset

Kanta PHR:n Sandboxympäristöt. Eeva Turkka

Sosiaalihuollon asiakastiedon arkisto Sosiaalihuollon metatietomalli Metatietoesimerkit

1 Rekisterinpitäjä. 2 Yhteyshenkilö. 3 Rekisterin nimi. 4 Henkilötietojen käsittelyn tarkoitus

Luento 12: XML ja metatieto

Tapahtumakalenteri & Jäsentietojärjestelmä Ylläpito

Object Framework - One. OF-1 is a high-productive Multi-UI OpenEdge data driven development framework. Veli-Matti Korhonen

SKOS. Osma Suominen ONKI-hankkeen laajennettu projektiryhmä

JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä

Semanttisen webin käsikirja (luonnos)

Contact Form 7 -lomakkeen yhdistäminen Timeline Manageriin

Yhteentoimivuusvälineistö: Sanastoeditorin esittelytilaisuus klo Väestörekisterikeskus, Lintulahdenkuja 4, Helsinki

Kanta PHR:n CapabilityStatement ja REST-API. Eeva Turkka

è è è RDF-perusteet 7 RDF-perusteet

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Valtion uudet yhteentoimivuuspalvelut: dataportaali, palvelutietovaranto ja yhteentoimivuus.fi v.2

Komission asetus latauspalveluista Jani Kylmäaho Inspire-sihteeristö

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

Sosiaalihuollon asiakirjastandardi kehittyy. Konstantin Hyppönen Erikoissuunnittelija Tietojenkäsittelytieteen laitos Kuopion yliopisto

Transkriptio:

Tekninen määrittely Tekninen järjestelmäarkkitehtuuri ja metatietomäärittely yhteentoimivuutta tukevalle välineistölle Tässä dokumentissa määritellään yhteentoimivuusmenetelmän järjestelmäarkkitehtuuri, tietokannan konfigurointi ja tekninen metatietomäärittely tietokomponenttikirjastolle ja sovellusprofiileillehuom! Kehitysvaiheessa ajantasaisin dokumentaatio tietokomponentti ja sovellusprofiilieditoreista löytyy projektin GITHUB-sivustolta Tekninen järjestelmä toteuttaa työvälineet yhteentoimivuusmenetelmän mukaisten tietokomponenttikirjastojen ja sovellusprofiilien hallintaan: Tietokomponenttien ja sovellusprofiilien editointiin ja julkaisuun tarkoitettu tietojärjestelmä toteutetaan kevyellä MVC arkkitehtuurilla, jossa suurin osa sovelluslogiikasta toteutetaan käyttöliittymässä Backend huolehtii tietokannan suojauksesta ja välittää JSON-LD sanomia REST rajapinnan yli View komponentit ovat HTML+AngularJS sovelluksia, joita tarjoillaan samalta serveriltä Alustava järjestelmäarkkitehtuuri alla:

Järjestelmän toimintaperiaatteena on että käyttöliittymä tekee sovelluspalvelimelle pyyntöjä, esimerkiksi listata kaikki olemassa olevat tietomallit Sovelluspalvelin palauttaa listan tietomalleista JSON-LD muodossa, joka renderöidään HTML muotoon Vastaavasti käyttöliittymä pyytää yksittäistä tietomallia tai sovellusprofiilia Käyttöliittymäkontrollerit huolehtii JSON muodon renderöinnistä HTML käyttöliittymäksiyhtenä muokkausnäkymien toimintaperiaatteena on tallennettavan tiedon laajennettavuus, muokkaamalla kontrollereita ja näkymiä voidaan lisätä haluttu tietosisältö sovelluspalvelimelle takaisin lähetettävään JSON-LD sanomaan Muokkausnäkymilla voi muuttaa sovelluspalvelimilta lähetettyjen JSON-LD sanomien sisältöä ja lähettää päivitetty tietomalli takaisin tietokantaan Käyttöliittymän näkymä ja kontrollerit huolehtivat tietosisällön validoinnista ja JSON-LD formaatin oikeasta syntaksista Ohjelmistokirjastot ja riippuvuudet: GET/POST/PUT API JERSEY JSON-LD-JAVA Javascript kirjastot "Core" AngularJS https://babeljsio/ http://gulpjscom/ http://browserifyorg/ Moduulit jsonldjs angular-gettext jointjs Tietomalliriippuvuudet: (Standardit ja suositukset johon JSON muoto perustuu) JSON-LD formaatti RDF, RDFS, OWL yms linkitetyn datan tietomallit SHACL PROV provenance RDF tietokannan metatiedot RDF tietokantana käytetään Jena FUSEKI v2 kantaa, johon määritellään omat palvelut tietokomponenttikirjastoille ja sovellusprofiileille, sekä mahdollisesti muille tarpeille kuten provenanssitiedolle Fuseki konfiguraatiotiedosto

@prefix : <#> @prefix fuseki: <http://jenaapacheorg/fuseki#> @prefix rdf: <http://wwww3org/1999/02/22-rdf-syntax-ns#> @prefix rdfs: <http://wwww3org/2000/01/rdf-schema#> @prefix tdb: <http://jenahplhpcom/2008/tdb#> @prefix ja: <http://jenahplhpcom/2005/11/assembler#> @prefix text: <http://jenaapacheorg/text#> [] rdf:type fuseki:server ; # Timeout - server-wide default: milliseconds # Format 1: "1000" -- 1 second timeout # Format 2: "10000,60000" -- 10s timeout to first result, then 60s timeout to for rest of query # See java doc for ARQqueryTimeout # ja:context [ ja:cxtname "arq:querytimeout" ; ja:cxtvalue "10000" ] ; # ja:loadclass "yourcodeclass" ; fuseki:services ( <#core> <#user> <#search> ) # TDB [] ja:loadclass "comhphpljenatdbtdb" tdb:datasettdb rdfs:subclassof ja:rdfdataset tdb:graphtdb rdfs:subclassof ja:model # Text [] ja:loadclass "orgapachejenaquerytexttextquery" text:textdataset rdfs:subclassof ja:rdfdataset text:textindexlucene rdfs:subclassof text:textindex # Core service configuration <#core> rdf:type fuseki:service ; fuseki:name "core" ; # http://host:port/core fuseki:dataset <#core_dataset> ; # Public APIs # Public fuseki:servicequery "sparql" ; # http://host:port/core/sparql?query= fuseki:servicereadgraphstore "get" ; # http://host:post/core/get?graph=default <#search> rdf:type fuseki:service ; fuseki:name "search" ; # http://host:port/search fuseki:dataset <#search_dataset> ; fuseki:servicequery "sparql" ; # http://host:port/search/sparql?query= fuseki:serviceupdate "update" ; # http://host:port/core/update?query= fuseki:servicereadwritegraphstore "data" ; # http://host:port/core/data?query= fuseki:serviceupload "upload" ; # http://host:post/core/upload?graph="any" # Searchable dataset

<#search_dataset> rdf:type text:textdataset ; text:dataset <#core_dataset> ; text:index <#indexlucene> ; <#core_dataset> rdf:type tdb:datasettdb ; tdb:location "CORE_TDB" ; tdb:uniondefaultgraph true ; # Query timeout on this dataset (1s, 1000 milliseconds) # ja:context [ ja:cxtname "arq:querytimeout" ; ja:cxtvalue "1000" ] ; <#user> rdf:type fuseki:service ; fuseki:name "users" ; # http://host:port/users fuseki:dataset <#user_dataset> ; # Public APIs fuseki:servicequery "sparql" ; # http://host:port/profile/sparql?query= fuseki:servicereadgraphstore "get" ; # http://host:post/profile/get?graph=default # Protect these paths! fuseki:servicereadwritegraphstore "data" ; # http://host:port/core/data?query= fuseki:serviceupdate "update" ; # http://host:port/profile/update?query= fuseki:serviceupload "upload" ; # http://host:post/profile/upload?graph="any" <#user_dataset> rdf:type tdb:datasettdb ; tdb:location "USERS_TDB" ; # Query timeout on this dataset (1s, 1000 milliseconds) # ja:context [ ja:cxtname "arq:querytimeout" ; ja:cxtvalue "1000" ] ; # Text index description <#indexlucene> a text:textindexlucene ; text:directory <file:lucene> ; ##text:directory "mem" ; ##text:storevalues true; text:entitymap <#entmap> ; # Mapping in the index # URI stored in field "uri" # rdfs:label is mapped to field "text" <#entmap> a text:entitymap ; text:entityfield "uri" ; text:graphfield "graph" ; ## enable graph-specific indexing text:defaultfield "label" ; ## Must be defined in the text:map #text:uidfield "uid" ; text:map ( # rdfs:label [ text:field "label" ; text:predicate rdfs:label ; text:analyzer [ a text:lowercasekeywordanalyzer ] ] # rdfs:comment [ text:field "comment" ; text:predicate rdfs:comment ;

text:analyzer [ a text:lowercasekeywordanalyzer ] ]

) Fuseki käynnistetään tällä configuraatiolla esim /fuseki-service --config=config_file_namettl --localhost Lisätietoa parametreista FUSEKIN sivuilla ja hienosäädöstä SKOSMOS sivuilla Jokaiselle määritellylle palvelulle tulee määritellä ns palvelun kuvaus johon talletetaan palvelun kuvaus SERVICE Description ja VOID sanastolla kuvaten Versionhallintaan liittyviä ominaisuuksia voi kuvata PROV ja ADMS / Joinup sanastoilla Esimerkki komponenttikirjastojen yleiskuvauksesta (SERVICE DESCRIPTION)

@prefix sd: <http://wwww3org/ns/sparql-service-description#> @prefix ent: <http://wwww3org/ns/entailment/> @prefix prof: <http://wwww3org/ns/owl-profile/> @prefix void: <http://rdfsorg/ns/void#> @prefix vann: <http://purlorg/vocab/vann/> @prefix dcterms: <http://purlorg/dc/terms/> @prefix adms: <http://wwww3org/ns/adms#> @prefix adms-stat: <http://purlorg/adms/status/> @prefix usr: <http://purlcscfi/usr#> [] a sd:service ; # Define endpoint here sd:endpoint <http://host:port/core/sparql/> ; sd:supportedlanguage sd:sparql11query ; sd:resultformat <http://wwww3org/ns/formats/rdf_xml>, <http://wwww3org/ns/formats/turtle>, <http://wwww3org/ns/formats/json-ld> ; sd:feature sd:dereferencesuris ; sd:defaultdataset [ a sd:dataset ; sd:defaultgraph [ a sd:graph ; dcterms:title "Service description"; dcterms:description "This graph describes the database, eg contains THIS file :)"; ] ; ] ; sd:availablegraphs [ a sd:graphcollection ; sd:namedgraph [ a sd:namedgraph ; sd:name <http://purlcscfi/core/example> ; sd:graph [ a sd:graph, void:dataset; dcterms:title "Example dataset"; dcterms:description "This is a description of example dataset"; vann:preferrednamespaceprefix "ex" ; dcterms:created "2015-05-24" ; dcterms:creator usr:miika ; foaf:mbox "amiika@domainxyz" ; foaf:mbox "other@domainxyz" ; ];]; sd:namedgraph [ a sd:namedgraph ; sd:name <http://purlcscfi/core/example2> ; sd:graph [ a sd:graph, void:dataset; dcterms:title "Another example dataset"; dcterms:description "This is a description of example dataset"; vann:preferrednamespaceprefix "ex2" ; dcterms:created "2015-05-25" ; dcterms:creator usr:miika ; dcterms:accessrights usr:group; ];]; ]

Esimerkki komponenttipalvelun yleiskuvauksesta JSON-LD muodossa JSON-LD FRAME: "@context": "graph": "@id": "http://wwww3org/ns/sparql-service-description#graph", "name": "@id": "http://wwww3org/ns/sparql-service-description#name", "title": "http://purlorg/dc/terms/title", "created": "http://purlorg/dc/terms/created", "creator": "@id": "http://purlorg/dc/terms/creator", "description": "http://purlorg/dc/terms/description", "preferrednamespaceprefix": "http://purlorg/vocab/vann/preferrednamespaceprefix", "defaultgraph": "@id": "http://wwww3org/ns/sparql-service-description#defaultgraph", "namedgraph": "@id": "http://wwww3org/ns/sparql-service-description#namedgraph", "defaultdataset": "@id": "http://wwww3org/ns/sparql-service-description#defaultdataset", "endpoint": "@id": "http://wwww3org/ns/sparql-service-description#endpoint", "feature": "@id": "http://wwww3org/ns/sparql-service-description#feature", "resultformat": "@id": "http://wwww3org/ns/sparql-service-description#resultformat", "supportedlanguage": "@id": "http://wwww3org/ns/sparql-service-description#supportedlanguage", "dc": "http://purlorg/dc/elements/11/", "ex": "http://purlcscfi/core/example#", "foaf": "http://xmlnscom/foaf/01/", "adms-stat": "http://purlorg/adms/status/", "sh": "http://wwww3org/ns/shacl#", "sd": "http://wwww3org/ns/sparql-service-description#", "void": "http://rdfsorg/ns/void#", "vann": "http://purlorg/vocab/vann/",

"ent": "http://wwww3org/ns/entailment/", "ext": "http://whatevercom/examples/", "dcterms": "http://purlorg/dc/terms/", "adms": "http://wwww3org/ns/adms#", "rdfs": "http://wwww3org/2000/01/rdf-schema#", "prof": "http://wwww3org/ns/owl-profile/", "xsd": "http://wwww3org/2001/xmlschema#", "owl": "http://wwww3org/2002/07/owl#", "rdf": "http://wwww3org/1999/02/22-rdf-syntax-ns#", "usr": "http://purlcscfi/usr#", "exf": "http://whatevercom/examples/" "@type":"sd:service", "defaultdataset": "availablegraphs":

"namedgraph": Varsinainen graafi: "@context": "graph": "@id": "sd:graph", "name": "@id": "sd:name", "title": "dcterms:title", "created": "dcterms:created", "creator": "@id": "dcterms:creator", "description": "dcterms:description", "preferrednamespaceprefix": "vann:preferrednamespaceprefix", "defaultgraph": "@id": "sd:defaultgraph", "namedgraph": "@id": "name:dgraph", "defaultdataset": "@id": "sd:defaultdataset", "endpoint": "@id": "sd:endpoint", "feature": "@id": "sd:feature", "resultformat": "@id": "sd:resultformat", "supportedlanguage": "@id": "sd:supportedlanguage", "dc": "http://purlorg/dc/elements/11/", "ex": "http://purlcscfi/core/example#", "foaf": "http://xmlnscom/foaf/01/", "adms-stat": "http://purlorg/adms/status/",

"sh": "http://wwww3org/ns/shacl#", "sd": "http://wwww3org/ns/sparql-service-description#", "void": "http://rdfsorg/ns/void#", "vann": "http://purlorg/vocab/vann/", "ent": "http://wwww3org/ns/entailment/", "ext": "http://whatevercom/examples/", "dcterms": "http://purlorg/dc/terms/", "adms": "http://wwww3org/ns/adms#", "rdfs": "http://wwww3org/2000/01/rdf-schema#", "prof": "http://wwww3org/ns/owl-profile/", "xsd": "http://wwww3org/2001/xmlschema#", "owl": "http://wwww3org/2002/07/owl#", "rdf": "http://wwww3org/1999/02/22-rdf-syntax-ns#", "usr": "http://purlcscfi/usr#", "exf": "http://whatevercom/examples/" "@graph": [ "@id": "_:b6", "@type": "sd:service", "defaultdataset": "@id": "_:b3", "@type": "sd:dataset", "defaultgraph": "@id": "_:b2", "@type": "sd:graph", "description": "This graph describes the database, eg contains THIS file :)", "title": "Service description" "namedgraph": [ "@id": "_:b0", "@type": "sd:namedgraph", "graph": "@id": "_:b1", "@type": [ "sd:graph", "void:dataset" ], "created": "2015-05-24", "creator": "usr:miika", "description": "This is a description of example dataset", "title": "Example dataset", "preferrednamespaceprefix": "ex" "name": "http://purlcscfi/core/example" "@id": "_:b4", "@type": "sd:namedgraph", "graph": "@id": "_:b5", "@type": [ "sd:graph", "void:dataset" ], "created": "2015-05-25", "creator": "usr:miika",

"description": "This is a description of example dataset", "title": "Another example dataset", "preferrednamespaceprefix": "ex2" "name": "http://purlcscfi/core/example2" ] "endpoint": "http://host:port/core/sparql/", "feature": "sd:dereferencesuris", "namedgraph": null, "resultformat": [ "http://wwww3org/ns/formats/json-ld", "http://wwww3org/ns/formats/rdf_xml", "http://wwww3org/ns/formats/turtle" ], "supportedlanguage": "sd:sparql11query"

] Yhteentoimivuusvälineistön yleiset metatiedot HUOM! Metatiedot kehitysasteella Lopullinen tietokomponenttien ja sovellusprofiilien metatietomalli julkaistaan erikseen Yhteentoimivuusmallin metatietoarkkitehtuuri muodostuu pääosin kansainvälisistä standardeista ja suosituksista, kuten RDFS, DC Terms ja OWL 2 Järjestelmän omat tietomallit ja järjestelmällä kehitettävät tietomallit määritellään urn:nbn:fi:csc-iow nimiavaruuteen - tai vastaavaan urn nimiavaruuteen Nimiavaruudet sd: <http://wwww3org/ns/sparql-service-description#> ent: <http://wwww3org/ns/entailment/> void: <http://rdfsorg/ns/void#> vann: <http://purlorg/vocab/vann/> dcterms: <http://purlorg/dc/terms/> adms: <http://wwww3org/ns/adms#> adms-stat: <http://purlorg/adms/status/> dcap: <http://purlorg/ws-mmi-dc/terms/> Uudet luokat ja ominaisuudet Komponenttikirjaston ja sovellusprofiilien hallintaan määritellään seuraavat Luokat ja niiden ominaisuudet: iom:componentlibrary dcterms:title dcterms:description iom:class (sh:shapeclass) iom:attribute (owl:datatypeproperty) iom:association (owl:objectproperty) iom:namespaces (Linkitys standarditietomalleihin) iom:conceptschemes (Linkitys finto sanastoihin) dcap:dcap dcterms:title dcterms:description dcap:uses (sh:shape) Käytettyjen nimiavaruuksien metatiedot Metatietokirjasto (dcap:metadatavocabulary) Otsikko (dct:title) Kuvaus (dct:description) Nimiavaruus (dcap:preferrednamespace) Prefix (dcap:preferredprefix) Linkki (dcap:seealso) (0-1) dct:title Linkki (@id)

SKOS sanastojen metatiedot Sanasto (skos:conceptscheme) URI (@id) Nimi (skos:preflabel) Kuvaus (dct:description) Komponenttikirjaston metatiedot Huom Kirjaston metatiedot on jatkuvassa kehityksesä ja tämä wiki voi sisältää vanhentunutta tietoa Tietokomponenttikirjasto on kokoelma uudelleenkäytettäviä luokka, ominaisuus ja suhdemäärityksiä Komponenttikirjasto muodostetaan yhteen nimiavaruuteen ja talletetaan samannimiseen graafiin tietokannassa Tietokomponenttikirjastossa ei määritellä tarkkoja ominaisuuksien rajoitteita luokille, listataan pelkästään ominaisuudet ja asetetaan tyyppirajoitteet Luokka Luokka tai tietokomponentti, on looginen tietokokonaisuus joka määritellään sh:shapeclass -luokkana Luokat linkitetään sanastossa määriteltyihin käsitteisiin dct:source assosiaatiolla Käsitteen nimi johon luokka perustuu määritellään käsitteessä käytetyllä skos:preflabel ominaisuudella Luokalla voi olla useita skos:preflabel määrityksiä usealla eri kielellä, jotka kaikki on määritelty sanastossa Luokalle määritellään myös resurssin nimi rdfs:label, josta muodostetaan luokan tekninen URI-tunniste Luokan käyttötarkoitus tulee määritellä käyttäen dct:description ominaisuutta, mutta määritelmä voi olla sama kuin käsitteen määritelmä sanastossa Jos käsitteellä ei kuitenkaan ole määritelmää, tai käsitteen määritelmä on liian laaja, luokan käyttöä kommentoidaan ensisijaisesti rdfs:comment ominaisuudella Komponenttien metatiedoissa käytetään SHACL sanastoa ja komponenttimäärittelyjä voi tehdä myös TBC ohjelmistolla ( ohje) Tietokomponentti (sh:shapeclass) Nimi (rdfs:label) Kuvaus (rdfs:comment) Yläluokka (rdfs:subclassof) Linkitys (owl:sameas) Käsiteviite (dct:source -> skos:concept) Ominaisuuden käyttö (sh:property) Ominaisuus (sh:predicate) Nimi (rdfs:label) Kuvaus (rdfs:comment) Attribuutit Luokan attribuutit on kuvataan owl:datatypeproperty -luokkina Attribuutti on uudelleenkäytettävä tietokokonaisuus joka voi olla käytössä useassa eri luokassa owl:datatypeproperty skos:preflabel [1-n] dct:source [1] rdfs:label [1] dct:description [1] rdfs:range [1] rdfs:comment [0-n] rdfs:subpropertyof [01] Assosiaatiot Assosiaatiot kuvataan owl:objectproperty -luokkina Assosiaatiot on suhteita asioiden välillä, ja pelkkä assosiaatio kertoo mihin luokkaan viittaus kohdistuu Assosiaatioita voidaan uudelleenkäyttää useassa eri luokassa owl:objectproperty skos:preflabel [1-n] dct:source [1] rdfs:label [1] dct:description [1]

rdfs:range [0-1] rdfs:comment [0-n] Esimerkki JHS tietomallista Esimerkki JSFidlessä: http://jsfiddlenet/amiika/dfnyl9hm/ Esimerkkiä voi testata nykyisellä model-data API:lla lisäämällä ko data PUT komennolla graafin: http://urnfi/urn:nbn:fi:csc-iow-jhs tämän jälkeen GET default palauttaman listan pitäisi päivittyä uudella graafilla "@context": "imports": "@id": "http://wwww3org/2002/07/owl#imports", "label": "@id": "http://wwww3org/2000/01/rdf-schema#label", "@container": "@language" "range": "@id": "http://wwww3org/2000/01/rdf-schema#range", "comment": "@id": "http://wwww3org/2000/01/rdf-schema#comment", "@container": "@language" "property": "@id": "http://wwww3org/ns/shacl#property", "subclassof": "@id": "http://wwww3org/2000/01/rdf-schema#subclassof", "attributes": "@id": "http://urnfi/urn:nbn:fi:csc-iow-meta#attributes", "classes": "@id": "http://urnfi/urn:nbn:fi:csc-iow-meta#classes", "associations": "@id": "http://urnfi/urn:nbn:fi:csc-iow-meta#associations", "versioninfo": "http://wwww3org/2002/07/owl#versioninfo", "predicate": "@id": "http://wwww3org/ns/shacl#predicate", "datatype": "@id": "http://wwww3org/ns/shacl#datatype", "valueclass":

"@id": "http://wwww3org/ns/shacl#valueclass", "nodekind": "@id": "http://wwww3org/ns/shacl#nodekind", "status": "@id": "http://wwww3org/ns/adms#status", "dc": "http://purlorg/dc/elements/11/", "rdfs": "http://wwww3org/2000/01/rdf-schema#", "doo": "http://urnfi/urn:nbn:fi:csc-iow-doo#", "xsd": "http://wwww3org/2001/xmlschema#", "owl": "http://wwww3org/2002/07/owl#", "iow": "http://urnfi/urn:nbn:fi:csc-iow-meta#", "rdf": "http://wwww3org/1999/02/22-rdf-syntax-ns#", "sh": "http://wwww3org/ns/shacl#", "skos": "http://wwww3org/2004/02/skos/core#", "dcterms": "http://purlorg/dc/terms/", "jhs": "http://urnfi/urn:nbn:fi:csc-iow-jhs#", "adms": "http://wwww3org/ns/adms#" "@graph": [ "@id": "jhs:corelibrary", "@type": "iow:corecomponentlibrary", "associations": [ "@id": "jhs:viittaussuhde", "@type": "owl:objectproperty", "rdfs:label": "Viittaussuhde" "@id": "jhs:siviilisaaty", "@type": "owl:objectproperty", "label": "fi": "Siviilisääty" "range": "skos:concept" "@id": "jhs:osoite", "@type": "owl:objectproperty", "label": "fi": "osoite" "@id": "jhs:aidinkieli", "@type": "owl:objectproperty", "label": "fi": "Äidinkieli" "range": "skos:concept" "@id": "jhs:kansalaisuus",

"@type": "owl:objectproperty", "label": "fi": "Kansalaisuus" "range": "skos:concept" "@id": "jhs:asianosainen", "@type": "owl:objectproperty", "label": "fi": "asianosainen" "range": "skos:concept" "@id": "jhs:ammatti", "@type": "owl:objectproperty", "label": "fi": "ammatti" "range": "skos:concept" "@id": "jhs:asia", "@type": "owl:objectproperty", "rdfs:label": "viittaus asiaan" "@id": "jhs:yhteystiedot", "@type": "owl:objectproperty", "label": "fi": "Yhteystiedot" ], "attributes": [ "@id": "jhs:postilokero", "label": "fi": "postilokero osoite teksti" "range": "xsd:string" "@id": "jhs:sukunimi", "label": "fi": "Sukunimi" "@id": "jhs:aiheteksti", "label": "fi": "aihe teksti"

"@id": "jhs:paattymiskuukausi", "label": "fi": "Päättymiskuukausi" "@id": "jhs:postinumero", "label": "fi": "postinumero" "range": "xsd:string" "@id": "jhs:asiasana", "label": "fi": "asiasana" "range": "xsd:string" "@id": "jhs:osoitenumero", "label": "fi": "osoite numero" "range": "xsd:integer" "@id": "jhs:tehtavakoodi", "label": "fi": "tehtava koodi" "@id": "jhs:alkamispaiva", "label": "fi": "alkamis paiva" "@id": "jhs:alkamiskuukausi", "label": "fi": "alkamis kuukausi" "@id": "jhs:henkilotunnus", "label": "fi": "Henkilötunnus" "range": "xsd:string"

"@id": "jhs:korvaavuussuhdeteksti", "label": "fi": "korvaavuussuhde teksti" "@id": "jhs:alkamispvm", "label": "fi": "alkamis pvm" "@id": "jhs:alkamisaika", "label": "fi": "alkamisaika" "@id": "jhs:numero", "label": "fi": "numero" "range": "xsd:integer" "@id": "jhs:jakokirjain", "label": "fi": "jakokirjain" "range": "xsd:string" "@id": "jhs:paattymisaika", "label": "fi": "paattymis aika" "@id": "jhs:kirjainosa", "label": "fi": "kirjainosa" "@id": "jhs:viittaussuhdeteksti", "label": "fi": "viittaussuhde teksti"

"@id": "jhs:paattymispaiva", "label": "fi": "paattymis paiva" "@id": "jhs:etunimi", "label": "fi": "etu nimi" "@id": "jhs:nimeke", "rdfs:label": "nimeke", "range": "xsd:string" "@id": "jhs:paattymisvuosi", "label": "fi": "paattymis vuosi" "@id": "jhs:asiatunnus", "label": "fi": "asia tunnus" "@id": "jhs:alkamisvuosi", "label": "fi": "alkamis vuosi" "@id": "jhs:nimi", "label": "fi": "nimi" "range": "xsd:string" "@id": "jhs:paattymispvm", "label": "fi": "paattymis pvm" "@id": "jhs:kadunnimi", "label":

"fi": "kadun nimi" "range": "xsd:string" "@id": "jhs:puhelinnumero", "label": "fi": "puhelinnumero" "jhs:alkamishetki", "jhs:paattymishetki" ], "classes": [ "@id": "jhs:asiakirja", "@type": "sh:shapeclass", "label": "fi": "Asiakirja" "status": "http://purlorg/adms/status/underdevelopment", "property": [ "@id": "_:b3", "label": "fi": "Asian tunnus" "datatype": "xsd:string", "predicate": "jhs:asiatunnus" "@id": "_:b4", "label": "fi": "Asiakirjan tunnus" "datatype": "xsd:string", "predicate": "jhs:tunnus" "@id": "_:b5", "label": "fi": "Asiakirjan nimeke" "datatype": "xsd:string", "predicate": "jhs:nimeke" "@id": "_:b1", "label": "fi": "Viittaus asiakirjassa käsiteltävään asiaan" "predicate": "jhs:asia", "valueclass": "jhs:asia" ] "@id": "jhs:asia",

"@type": "sh:shapeclass", "comment": "fi": "Tehtävän yksittäinen instanssi, joka käsitellään prosessin mukaisessa menettelyssä" "label": "fi": "Asia" "status": "http://purlorg/adms/status/underdevelopment", "property": [ "@id": "_:b27", "comment": "fi": "Asian sisältöä kuvaileva tieto" "label": "fi": "Asian asiasana", "en": "Keyword" "datatype": "xsd:string", "predicate": "jhs:asiasana" "@id": "_:b35", "comment": "fi": "Asiatunnus voidaan muodostaa organisaatiokohtaisesti tai organisaatioiden välillä yhteisesti sovitulla tavalla" "label": "fi": "Asiatunnus" "datatype": "xsd:string", "predicate": "jhs:asiatunnus" "@id": "_:b31", "comment": "fi": "Asian nimitys" "label": "fi": "nimeke" "datatype": "xsd:string", "predicate": "jhs:nimeke" "@id": "_:b33", "comment": "fi": "Asian asianosaiset" "label": "fi": "Asianosainen" "predicate": "jhs:asianosainen", "valueclass": "jhs:henkilo" "@id": "_:b9", "comment":

"fi": "Viittaussuhdetta voi käyttää esim osoittamaan eri asiatunnuksella esiintyviä hakemuksia, jotka ratkaistaan samalla päätöksellä" "label": "fi": "Asian viittaussuhde" "datatype": "xsd:string", "predicate": "jhs:viittausssuhdeteksti" "@id": "_:b36", "comment": "fi": "Julkisen hallinnon yhteisen tai organisaation oman tehtäväluokituksen mukainen tehtävä" "label": "fi": "Asian tehtäväkoodi" "datatype": "xsd:string", "predicate": "jhs:tehtavakoodi" "@id": "_:b37", "comment": "fi": "Edellisen asian voimassaolo on esimerkiksi päättynyt, minkä johdosta aiempi asia on jouduttu korvaamaan uudella " "label": "fi": "Asian korvaavuussuhde" "datatype": "xsd:string", "predicate": "jhs:korvaavuussuhdeteksti" "@id": "_:b32", "comment": "fi": "Asiaan liittyvä aihe, ilmiö tai teema Aiheella voidaan luokitella asioita erilaisiin kokonaisuuksiin tai ryhmiin Hyödynnetään esimerkiksi raportointi- ja hakunäkymien rakentamisessa tietojärjestelmissä" "label": "fi": "Asian aiheteksti" "datatype": "xsd:string", "predicate": "jhs:aiheteksti" ] "@id": "jhs:yhteystieto", "@type": "sh:shapeclass", "label": "fi": "Yhteystieto" "status": "http://purlorg/adms/status/underdevelopment", "property": [ "@id": "_:b34", "comment":

"fi": "Yhteystiedoissa mainittu osoite\n" "label": "fi": "Osoite" "predicate": "jhs:osoite", "valueclass": "jhs:osoite" "@id": "_:b7", "comment": "fi": "Yhteystiedoissa mainittu puhelinnumero" "label": "fi": "Puhelinnumero" "datatype": "xsd:string", "predicate": "jhs:puhelinnumero" ] "jhs:aikavali", "@id": "jhs:ajanjakso", "@type": "sh:shapeclass", "comment": "fi": "Nimetty aikaväli, joka voidaan määritellä eri tarkkuudella" "label": "fi": "Ajanjakso" "subclassof": "@id": "jhs:aikavali", "@type": "sh:shapeclass", "comment": "fi": "Ajankohdista muodostuva ajallinen jatkumo" "label": "fi": "Aikaväli" "status": "http://purlorg/adms/status/underdevelopment", "property": [ "@id": "_:b10", "label": "fi": "Aikavälin alkamishetki" "datatype": "xsd:datetime", "predicate": "@id": "jhs:alkamishetki", "label": "fi": "alkamis hetki" "@id": "_:b11", "label":

"fi": "Aikavalin päättymishetki" "datatype": "xsd:datetime", "predicate": "@id": "jhs:paattymishetki", "label": "fi": "paattymis hetki" ] "status": "http://purlorg/adms/status/underdevelopment", "property": [ "@id": "_:b8", "label": "fi": "Ajanjakson päättymisaika" "datatype": "xsd:string", "predicate": "jhs:paattymisaika" "@id": "_:b20", "label": "fi": "Ajanjakson alkamisvuosi" "datatype": "xsd:date", "predicate": "jhs:alkamisvuosi" "@id": "_:b21", "label": "fi": "Ajanjakson päättymispäivämäärä" "datatype": "xsd:string", "predicate": "jhs:paattymispvm" "@id": "_:b22", "label": "fi": "alkamis hetki" "datatype": "xsd:datetime", "predicate": "jhs:alkamishetki" "@id": "_:b23", "comment": "fi": "Ajanjaksolle määritelty nimi" "label": "fi": "Ajanjakson nimi" "datatype": "xsd:string", "predicate": "jhs:nimi"

"@id": "_:b24", "label": "fi": "Ajanjakson alkamisaika" "datatype": "xsd:datetime", "predicate": "jhs:alkamisaika" "@id": "_:b25", "label": "fi": "Ajanjakson alkamispäivämäärä" "datatype": "xsd:string", "predicate": "jhs:alkamispvm" "@id": "_:b26", "label": "fi": "Ajanjakson päättymishetki" "datatype": "xsd:datetime", "predicate": "jhs:paattymishetki" "@id": "_:b0", "label": "fi": "Ajanjakson alkamiskuukausi" "datatype": "xsd:datetime", "predicate": "jhs:alkamiskuukausi" ] "@id": "jhs:osoite", "@type": "sh:shapeclass", "label": "fi": "Osoite" "status": "http://purlorg/adms/status/underdevelopment", "property": [ "@id": "_:b28", "comment": "fi": "Osoitteen kadunnimi" "label": "fi": "Kadunnimi" "datatype": "xsd:string", "predicate": "jhs:kadunnimi" "@id": "_:b29", "label": "fi": "Huoneistotunnuksen jakokirjain" "datatype": "xsd:string", "predicate": "jhs:jakokirjain"

"@id": "_:b2", "label": "fi": "Huoneistotunnuksen numero-osa" "datatype": "xsd:integer", "predicate": "jhs:numero" "@id": "_:b19", "label": "fi": "Osoitenumero" "datatype": "xsd:string", "predicate": "jhs:osoitenumero" "@id": "_:b30", "label": "fi": "Huoneistotunnuksen kirjainosa" "datatype": "xsd:string", "predicate": "jhs:kirjainosa" "@id": "_:b6", "label": "fi": "Postilokero-osoite" "datatype": "xsd:string", "predicate": "jhs:postilokero" ] "@id": "jhs:henkilo", "@type": "sh:shapeclass", "label": "fi": "Henkilö" "status": "http://purlorg/adms/status/underdevelopment", "property": [ "@id": "_:b12", "label": "fi": "Henkilön henkilötunnus" "datatype": "xsd:string", "sh:pattern": "@language": "fi", "@value": "\\d6[+-a]\\d3[0-9abcdefhjklmnprstuvwxy]" "predicate": "jhs:henkilotunnus" "@id": "_:b13",

"label": "fi": "Henkilön kansalaisuus" "predicate": "jhs:kansalaisuus", "valueclass": "skos:concept" "@id": "_:b14", "label": "fi": "Henkilön äidinkieli" "predicate": "jhs:aidinkieli", "valueclass": "skos:concept" "@id": "_:b15", "label": "fi": "Henkilon siviilisääty" "predicate": "jhs:siviilisaaty", "valueclass": "skos:concept" "@id": "_:b16", "label": "fi": "Henkilön sukunimi" "datatype": "xsd:string", "predicate": "jhs:sukunimi" "@id": "_:b17", "label": "fi": "Henkilön etunimi" "datatype": "xsd:string", "predicate": "jhs:etunimi" "@id": "_:b18", "label": "fi": "Ammatti" "predicate": "jhs:ammatti", "valueclass": "skos:concept" ] ], "label": "fi": "Julkishallinnon tietokomponentit"

] Muotoiluun käytetty konteksti, jonka pitäisi löytyä myös valmiiksi RESTAPI javascript moduulista: "@context": "imports": "@id": "http://wwww3org/2002/07/owl#imports", "label": "@id": "http://wwww3org/2000/01/rdf-schema#label", "@container": "@language" "range": "@id": "http://wwww3org/2000/01/rdf-schema#range", "comment": "@id": "http://wwww3org/2000/01/rdf-schema#comment", "@container": "@language" "property": "@id": "http://wwww3org/ns/shacl#property", "subclassof": "@id": "http://wwww3org/2000/01/rdf-schema#subclassof", "attributes": "@id": "http://urnfi/urn:nbn:fi:csc-iow-meta#attributes", "classes": "@id": "http://urnfi/urn:nbn:fi:csc-iow-meta#classes", "associations": "@id": "http://urnfi/urn:nbn:fi:csc-iow-meta#associations", "versioninfo": "http://wwww3org/2002/07/owl#versioninfo", "predicate": "@id": "http://wwww3org/ns/shacl#predicate", "datatype": "@id": "http://wwww3org/ns/shacl#datatype", "valueclass": "@id": "http://wwww3org/ns/shacl#valueclass",

"nodekind": "@id": "http://wwww3org/ns/shacl#nodekind", "pattern": "http://wwww3org/ns/shacl#pattern", "adms": "http://wwww3org/ns/adms#", "dc": "http://purlorg/dc/elements/11/", "rdfs": "http://wwww3org/2000/01/rdf-schema#", "doo": "http://urnfi/urn:nbn:fi:csc-iow-doo#", "jhs": "http://urnfi/urn:nbn:fi:csc-iow-jhs#", "xsd": "http://wwww3org/2001/xmlschema#", "owl": "http://wwww3org/2002/07/owl#", "iow": "http://urnfi/urn:nbn:fi:csc-iow-meta#", "rdf": "http://wwww3org/1999/02/22-rdf-syntax-ns#", "sh": "http://wwww3org/ns/shacl#", "skos": "http://wwww3org/2004/02/skos/core#", "dcterms": "http://purlorg/dc/terms/" "@type": "iow:corecomponentlibrary", "classes": "property": "predicate": "@embed": false "valueclass": "@omitdefault": true, "@default": [], "@embed": false

"attributes": Esimerkki korkeakoulujen tietomallista # baseuri: http://purlorg/net/iow/doo # imports: http://purlorg/dc/elements/11/ # imports: http://wwww3org/2004/02/skos/core # imports: http://wwww3org/ns/shacl @prefix : <http://purlorg/net/iow/doo#> @prefix dcterms: <http://purlorg/dc/terms/> @prefix doo: <http://purlorg/net/iow/doo#> @prefix owl: <http://wwww3org/2002/07/owl#> @prefix rdf: <http://wwww3org/1999/02/22-rdf-syntax-ns#> @prefix rdfs: <http://wwww3org/2000/01/rdf-schema#> @prefix sh: <http://wwww3org/ns/shacl#> @prefix skos: <http://wwww3org/2004/02/skos/core#> @prefix xsd: <http://wwww3org/2001/xmlschema#> <http://purlorg/net/iow/doo> rdf:type owl:ontology ; owl:imports <http://purlorg/dc/elements/11/> ; owl:imports <http://wwww3org/2004/02/skos/core> ; owl:imports <http://wwww3org/ns/shacl> ; doo:ajanjakso rdf:type sh:shapeclass ; dcterms:source <http://wwwysofi/onto/yso/p4035> ; rdfs:comment "Ajanjaksolle voidaan määritellä haluttu tarkkuus määrittelemällä mitä ominaisuuksia käytetään"^^xsd:string ; rdfs:label "Ajanjakso"^^xsd:string ; skos:definition "Aikamääreistä koostuva ajallisen ilmiön kuvaus"^^xsd:string ; sh:property doo:ajanjakso-alkamisaika ; sh:property doo:ajanjakso-koodi ; sh:property doo:ajanjakso-kuvaus ; sh:property doo:ajanjakso-nimi ; sh:property doo:ajanjakso-paattymisaika ; sh:property doo:ajanjakso-paattymishetki ; sh:property doo:ajanjakso-paattymispaiva ; sh:property doo:ajanjakson-alkamishetki ; sh:property doo:ajanjakson-alkamispaiva ; doo:ajanjakso-alkamisaika dcterms:identifier "5"^^xsd:string ; rdfs:label "Ajanjakson alkamisaika"^^xsd:string ; sh:predicate doo:alkamisaika ; doo:ajanjakso-koodi dcterms:identifier "1"^^xsd:string ; rdfs:label "Ajanjakso-koodi"^^xsd:string ;

sh:predicate doo:koodi ; doo:ajanjakso-kuvaus dcterms:identifier "8"^^xsd:string ; rdfs:label "Ajanjakson kuvaus"^^xsd:string ; sh:predicate doo:kuvaus ; doo:ajanjakso-nimi dcterms:identifier "9"^^xsd:string ; rdfs:label "Ajanjakson nimi"^^xsd:string ; skos:example "Kevätlukukausi"^^xsd:string ; skos:example "Syyslukukausi"^^xsd:string ; sh:predicate doo:nimi ; doo:ajanjakso-paattymisaika dcterms:identifier "2"^^xsd:string ; rdfs:label "Ajanjakso-paattymisaika"^^xsd:string ; sh:predicate doo:paattymisaika ; doo:ajanjakso-paattymishetki dcterms:identifier "3"^^xsd:string ; rdfs:label "Ajanjakso-paattymishetki"^^xsd:string ; sh:predicate doo:paattymishetki ; doo:ajanjakso-paattymispaiva dcterms:identifier "4"^^xsd:string ; rdfs:label "Ajanjakso-paattymispaiva"^^xsd:string ; sh:predicate doo:paattymispaiva ; doo:ajanjakson-alkamishetki dcterms:identifier "6"^^xsd:string ; rdfs:label "Ajanjakson alkamishetki"^^xsd:string ; sh:predicate doo:alkamishetki ; doo:ajanjakson-alkamispaiva dcterms:identifier "7"^^xsd:string ; rdfs:label "Ajanjakson alkamispaiva"^^xsd:string ; sh:predicate doo:alkamispaiva ; doo:alkamisaika rdf:type owl:datatypeproperty ; rdfs:label "Alkamisaika"^^xsd:string ; rdfs:range xsd:time ; doo:koodi rdf:type owl:datatypeproperty ; rdfs:label "Koodi"^^xsd:string ; rdfs:range xsd:string ; doo:lyhenne rdf:type owl:datatypeproperty ; rdfs:label "Lyhenne"^^xsd:string ;

rdfs:range xsd:string ; doo:opetustapahtuma rdf:type sh:shapeclass ; rdfs:comment "Joko fyysisessä tilassa (laboratorio/luentosali, jolloin siihen liittyy tilavaraustieto) tai virtuaalisessa tilassa (oppimisalusta internetissä, jolloin tapahtumaa rajaa vain ajallinen kehys) tapahtuva tavoitteellinen toiminta, jossa opettaja vuorovaikutuksessa oppijan kanssa pyrkii lisäämään tämän tietoja ja taitoja Opetustapahtumia ovat mm luennot, seminaarit, tentit, harjoitusryhmät"^^xsd:string ; rdfs:label "Opetustapahtuma"^^xsd:string ; skos:definition "aikaan ja paikkaan sidottu tavoitteellinen toimintakerta, jossa opettaja vuorovaikutuksessa oppijan kanssa pyrkii lisäämään tämän osaamista, tietoja ja taitoja"^^xsd:string ; sh:property doo:opetustapahtuma-kuvaus ; sh:property doo:opetustapahtuma-maksimipaikkamaara ; sh:property doo:opetustapahtuma-minimipaikkamaara ; sh:property doo:opetustapahtuma-nimi ; sh:property doo:opetustapahtuma-peruttu ; sh:property doo:opetustapahtuma-yhteystiedot ; sh:property doo:opetustapahtuman-ajankohta ; doo:opetustapahtuma-kuvaus dcterms:identifier "2"^^xsd:string ; rdfs:label "Opetustapahtuma-kuvaus"^^xsd:string ; sh:predicate doo:kuvaus ; doo:opetustapahtuma-maksimipaikkamaara dcterms:identifier "3"^^xsd:string ; rdfs:label "Opetustapahtuma-maksimipaikkamaara"^^xsd:string ; sh:predicate doo:maksimi ; doo:opetustapahtuma-minimipaikkamaara dcterms:identifier "4"^^xsd:string ; rdfs:label "Opetustapahtuma-minimipaikkamaara"^^xsd:string ; sh:predicate doo:minimi ; doo:opetustapahtuma-nimi dcterms:identifier "1"^^xsd:string ; rdfs:label "Opetustapahtuma-nimi"^^xsd:string ; sh:predicate doo:nimi ; doo:opetustapahtuma-peruttu dcterms:identifier "5"^^xsd:string ; rdfs:label "Opetustapahtuma-peruttu"^^xsd:string ; sh:predicate doo:peruttu ; doo:opetustapahtuma-yhteystiedot dcterms:identifier "6"^^xsd:string ; rdfs:label "Opetustapahtuma-yhteystiedot"^^xsd:string ; skos:definition "Opetustapahtuman sijainti ja yhteydenottoon tarvittavat lisätiedot"^^xsd:string ; sh:predicate doo:yhteystiedot ;

doo:opetustapahtuman-ajankohta dcterms:identifier "7"^^xsd:string ; rdfs:label "Opetustapahtuman-ajankohta"^^xsd:string ; sh:predicate doo:ajankohta ; doo:osoite rdf:type sh:shapeclass ; rdfs:label "Osoite"^^xsd:string ; sh:property doo:osoite-katuosoite ; sh:property doo:osoite-maatunnus ; sh:property doo:osoite-postilokero ; sh:property doo:osoite-postinumero ; sh:property doo:osoite-postitoimipaikka ; doo:osoite-katuosoite dcterms:identifier "1"^^xsd:string ; rdfs:label "Osoite-katuosoite"^^xsd:string ; sh:predicate doo:katuosoite ; doo:osoite-maatunnus dcterms:identifier "2"^^xsd:string ; rdfs:label "Osoite-maatunnus"^^xsd:string ; sh:predicate doo:maatunnus ; doo:osoite-postilokero dcterms:identifier "3"^^xsd:string ; rdfs:label "Osoite-postilokero"^^xsd:string ; sh:predicate doo:postilokero ; doo:osoite-postinumero dcterms:identifier "4"^^xsd:string ; rdfs:label "Osoite-postinumero"^^xsd:string ; sh:predicate doo:postinumero ; doo:osoite-postitoimipaikka dcterms:identifier "5"^^xsd:string ; rdfs:label "Osoite-postitoimipaikka"^^xsd:string ; sh:predicate doo:postitoimipaikka ; doo:yhteystiedot rdf:type sh:shapeclass ; rdfs:label "Yhteystiedot"^^xsd:string ; skos:definition "yhteydenottoa varten tarvittavat tiedot"^^xsd:string ; sh:property doo:yhteystiedot-osoite ; sh:property doo:yhteystiedot-puhelinnumero ; sh:property doo:yhteystiedot-sahkoposti ; sh:property doo:yhteystiedot-tavoitettavuus ; sh:property doo:yhteystiedot-verkkosivu ; doo:yhteystiedot-osoite dcterms:identifier "5"^^xsd:string ;

rdfs:label "Yhteystietojen osoite"^^xsd:string ; sh:predicate doo:osoite ; doo:yhteystiedot-puhelinnumero dcterms:identifier "1"^^xsd:string ; rdfs:label "Yhteystiedot-puhelinnumero"^^xsd:string ; sh:predicate doo:puhelinnumero ; doo:yhteystiedot-sahkoposti dcterms:identifier "2"^^xsd:string ; rdfs:label "Yhteystiedot-sahkoposti"^^xsd:string ; sh:predicate doo:sahkoposti ; doo:yhteystiedot-tavoitettavuus dcterms:identifier "3"^^xsd:string ; rdfs:label "Yhteystiedot-tavoitettavuus"^^xsd:string ; sh:predicate doo:tavoitettavuus ; doo:yhteystiedot-verkkosivu dcterms:identifier "4"^^xsd:string ; rdfs:label "Yhteystiedot-verkkosivu"^^xsd:string ; sh:predicate doo:verkkosivu ; doo:ajankohta rdf:type owl:objectproperty ; rdfs:label "Ajankohta"^^xsd:string ; rdfs:range doo:ajanjakso ; skos:definition "Viittaus tarkan ajankohdan määrittävään ajanjaksoon"^^xsd:string ; doo:alkamishetki rdf:type owl:datatypeproperty ; rdfs:label "Alkamishetki"^^xsd:string ; rdfs:range xsd:datetime ; doo:alkamispaiva rdf:type owl:datatypeproperty ; rdfs:label "Alkamispäivä"^^xsd:string ; rdfs:range xsd:date ; doo:katuosoite rdf:type owl:datatypeproperty ; rdfs:label "katuosoite"^^xsd:string ; rdfs:range xsd:string ; doo:kuvaus rdf:type owl:datatypeproperty ; rdfs:label "Kuvaus"^^xsd:string ; doo:maatunnus rdf:type owl:objectproperty ; rdfs:label "maatunnus"^^xsd:string ; rdfs:range skos:concept ; doo:maksimi rdf:type owl:datatypeproperty ;

rdfs:label "maksimi"^^xsd:string ; rdfs:range xsd:integer ; doo:minimi rdf:type owl:datatypeproperty ; rdfs:label "minimi"^^xsd:string ; rdfs:range xsd:integer ; doo:nimi rdf:type owl:datatypeproperty ; rdfs:label "Nimi"^^xsd:string ; rdfs:range xsd:string ; rdfs:subpropertyof rdfs:label ; doo:osoite rdf:type owl:objectproperty ; rdfs:label "osoite"^^xsd:string ; rdfs:range doo:osoite ; doo:paattymisaika rdf:type owl:datatypeproperty ; rdfs:label "Päättymisaika"^^xsd:string ; rdfs:range xsd:time ; doo:paattymishetki rdf:type owl:datatypeproperty ; rdfs:label "Päättymishetki"^^xsd:string ; rdfs:range xsd:datetime ; doo:paattymispaiva rdf:type owl:datatypeproperty ; rdfs:label "Päättymispäivä"^^xsd:string ; rdfs:range xsd:date ; doo:peruttu rdf:type owl:datatypeproperty ; rdfs:label "peruttu"^^xsd:string ; rdfs:range xsd:boolean ; doo:postilokero rdf:type owl:datatypeproperty ; rdfs:label "postilokero"^^xsd:string ; rdfs:range xsd:string ; doo:postinumero rdf:type owl:datatypeproperty ; rdfs:label "postinumero"^^xsd:string ; rdfs:range xsd:integer ; doo:postitoimipaikka rdf:type owl:datatypeproperty ; rdfs:label "postitoimipaikka"^^xsd:string ; rdfs:range xsd:string ; doo:puhelinnumero rdf:type owl:datatypeproperty ; rdfs:label "puhelinnumero"^^xsd:string ; rdfs:range xsd:string ;

doo:sahkoposti rdf:type owl:datatypeproperty ; rdfs:label "sahkoposti"^^xsd:string ; rdfs:range xsd:string ; doo:tavoitettavuus rdf:type owl:datatypeproperty ; rdfs:label "tavoitettavuus"^^xsd:string ; rdfs:range xsd:string ; doo:verkkosivu rdf:type owl:datatypeproperty ; rdfs:label "verkkosivu"^^xsd:string ; doo:yhteystiedot rdf:type owl:objectproperty ; rdfs:label "yhteystiedot"^^xsd:string ; rdfs:range doo:yhteystiedot ;

JSON-LD muodossa: "@context": "versioninfo": "owl:versioninfo", "predicate": "sh:predicate", "label": "rdfs:label", "identifier": "dcterms:identifier", "range": "@id": "rdfs:range", "property": "@id": "sh:property", "imports": "@id": "owl:imports", "subpropertyof": "@id": "rdfs:subpropertyof", "dc": "http://purlorg/dc/elements/11/", "ex": "http://purlcscfi/core/example#", "foaf": "http://xmlnscom/foaf/01/", "adms-stat": "http://purlorg/adms/status/", "sh": "http://wwww3org/ns/shacl#", "sd": "http://wwww3org/ns/sparql-service-description#", "void": "http://rdfsorg/ns/void#", "vann": "http://purlorg/vocab/vann/", "ent": "http://wwww3org/ns/entailment/", "ext": "http://whatevercom/examples/", "dcterms": "http://purlorg/dc/terms/", "adms": "http://wwww3org/ns/adms#", "rdfs": "http://wwww3org/2000/01/rdf-schema#", "prof": "http://wwww3org/ns/owl-profile/", "xsd": "http://wwww3org/2001/xmlschema#", "owl": "http://wwww3org/2002/07/owl#", "rdf": "http://wwww3org/1999/02/22-rdf-syntax-ns#", "usr": "http://purlcscfi/usr#", "exf": "http://whatevercom/examples/" "@graph": [ "@id": "http://purlorg/net/iow/doo#ajanjakso", "@type": "sh:shapeclass", "dcterms:source": "@id": "http://wwwysofi/onto/yso/p4035"

"rdfs:comment": "Ajanjaksolle voidaan määritellä haluttu tarkkuus määrittelemällä mitä ominaisuuksia käytetään", "label": "Ajanjakso", "http://wwww3org/2004/02/skos/core#definition": "Aikamääreistä koostuva ajallisen ilmiön kuvaus", "property": [ "@id": "http://purlorg/net/iow/doo#ajanjakso-alkamisaika", "identifier": "5", "label": "Ajanjakson alkamisaika", "predicate": "@id": "http://purlorg/net/iow/doo#alkamisaika", "label": "Alkamisaika", "range": "xsd:time" "@id": "http://purlorg/net/iow/doo#ajanjakso-kuvaus", "identifier": "8", "label": "Ajanjakson kuvaus", "predicate": null "@id": "http://purlorg/net/iow/doo#ajanjakson-alkamispaiva", "identifier": "7", "label": "Ajanjakson alkamispaiva", "predicate": "@id": "http://purlorg/net/iow/doo#alkamispaiva", "label": "Alkamispäivä", "range": "xsd:date" "@id": "http://purlorg/net/iow/doo#ajanjakso-nimi", "identifier": "9", "label": "Ajanjakson nimi", "http://wwww3org/2004/02/skos/core#example": [ "Kevätlukukausi", "Syyslukukausi" ], "predicate": "@id": "http://purlorg/net/iow/doo#nimi", "label": "Nimi", "range": "xsd:string", "subpropertyof": "rdfs:label" "@id": "http://purlorg/net/iow/doo#ajanjakso-paattymispaiva", "identifier": "4", "label": "Ajanjakso-paattymispaiva",

"predicate": "@id": "http://purlorg/net/iow/doo#paattymispaiva", "label": "Päättymispäivä", "range": "xsd:date" "@id": "http://purlorg/net/iow/doo#ajanjakso-paattymishetki", "identifier": "3", "label": "Ajanjakso-paattymishetki", "predicate": "@id": "http://purlorg/net/iow/doo#paattymishetki", "label": "Päättymishetki", "range": "xsd:datetime" "@id": "http://purlorg/net/iow/doo#ajanjakso-paattymisaika", "identifier": "2", "label": "Ajanjakso-paattymisaika", "predicate": "@id": "http://purlorg/net/iow/doo#paattymisaika", "label": "Päättymisaika", "range": "xsd:time" "@id": "http://purlorg/net/iow/doo#ajanjakson-alkamishetki", "identifier": "6", "label": "Ajanjakson alkamishetki", "predicate": "@id": "http://purlorg/net/iow/doo#alkamishetki", "label": "Alkamishetki", "range": "xsd:datetime" "@id": "http://purlorg/net/iow/doo#ajanjakso-koodi", "identifier": "1", "label": "Ajanjakso-koodi", "predicate": "@id": "http://purlorg/net/iow/doo#koodi", "label": "Koodi", "range": "xsd:string" ] "@id": "http://purlorg/net/iow/doo#opetustapahtuma",

"@type": "sh:shapeclass", "rdfs:comment": "Joko fyysisessä tilassa (laboratorio/luentosali, jolloin siihen liittyy tilavaraustieto) tai virtuaalisessa tilassa (oppimisalusta internetissä, jolloin tapahtumaa rajaa vain ajallinen kehys) tapahtuva tavoitteellinen toiminta, jossa opettaja vuorovaikutuksessa oppijan kanssa pyrkii lisäämään tämän tietoja ja taitoja Opetustapahtumia ovat mm luennot, seminaarit, tentit, harjoitusryhmät", "label": "Opetustapahtuma", "http://wwww3org/2004/02/skos/core#definition": "aikaan ja paikkaan sidottu tavoitteellinen toimintakerta, jossa opettaja vuorovaikutuksessa oppijan kanssa pyrkii lisäämään tämän osaamista, tietoja ja taitoja", "property": [ "@id": "http://purlorg/net/iow/doo#opetustapahtuma-maksimipaikkamaara", "identifier": "3", "label": "Opetustapahtuma-maksimipaikkamaara", "predicate": "@id": "http://purlorg/net/iow/doo#maksimi", "label": "maksimi", "range": "xsd:integer" "@id": "http://purlorg/net/iow/doo#opetustapahtuma-minimipaikkamaara", "identifier": "4", "label": "Opetustapahtuma-minimipaikkamaara", "predicate": "@id": "http://purlorg/net/iow/doo#minimi", "label": "minimi", "range": "xsd:integer" "@id": "http://purlorg/net/iow/doo#opetustapahtuma-yhteystiedot", "identifier": "6", "label": "Opetustapahtuma-yhteystiedot", "http://wwww3org/2004/02/skos/core#definition": "Opetustapahtuman sijainti ja yhteydenottoon tarvittavat lisätiedot", "predicate": "@id": "http://purlorg/net/iow/doo#yhteystiedot", "@type": "owl:objectproperty", "label": "yhteystiedot", "range": "@id": "http://purlorg/net/iow/doo#yhteystiedot", "@type": "sh:shapeclass" "@id": "http://purlorg/net/iow/doo#opetustapahtuma-kuvaus", "identifier": "2", "label": "Opetustapahtuma-kuvaus", "predicate": null

"@id": "http://purlorg/net/iow/doo#opetustapahtuman-ajankohta", "identifier": "7", "label": "Opetustapahtuman-ajankohta", "predicate": "@id": "http://purlorg/net/iow/doo#ajankohta", "@type": "owl:objectproperty", "label": "Ajankohta", "range": "@id": "http://purlorg/net/iow/doo#ajanjakso", "@type": "sh:shapeclass" "http://wwww3org/2004/02/skos/core#definition": "Viittaus tarkan ajankohdan määrittävään ajanjaksoon" "@id": "http://purlorg/net/iow/doo#opetustapahtuma-peruttu", "identifier": "5", "label": "Opetustapahtuma-peruttu", "predicate": "@id": "http://purlorg/net/iow/doo#peruttu", "label": "peruttu", "range": "xsd:boolean" "@id": "http://purlorg/net/iow/doo#opetustapahtuma-nimi", "identifier": "1", "label": "Opetustapahtuma-nimi", "predicate": "@id": "http://purlorg/net/iow/doo#nimi", "label": "Nimi", "range": "xsd:string", "subpropertyof": "rdfs:label" ] "@id": "http://purlorg/net/iow/doo#osoite", "@type": "sh:shapeclass", "label": "Osoite", "property": [ "@id": "http://purlorg/net/iow/doo#osoite-postilokero", "identifier": "3", "label": "Osoite-postilokero", "predicate": "@id": "http://purlorg/net/iow/doo#postilokero", "label": "postilokero", "range": "xsd:string"

"@id": "http://purlorg/net/iow/doo#osoite-maatunnus", "identifier": "2", "label": "Osoite-maatunnus", "predicate": "@id": "http://purlorg/net/iow/doo#maatunnus", "@type": "owl:objectproperty", "label": "maatunnus", "range": "http://wwww3org/2004/02/skos/core#concept" "@id": "http://purlorg/net/iow/doo#osoite-postitoimipaikka", "identifier": "5", "label": "Osoite-postitoimipaikka", "predicate": "@id": "http://purlorg/net/iow/doo#postitoimipaikka", "label": "postitoimipaikka", "range": "xsd:string" "@id": "http://purlorg/net/iow/doo#osoite-postinumero", "identifier": "4", "label": "Osoite-postinumero", "predicate": "@id": "http://purlorg/net/iow/doo#postinumero", "label": "postinumero", "range": "xsd:integer" "@id": "http://purlorg/net/iow/doo#osoite-katuosoite", "identifier": "1", "label": "Osoite-katuosoite", "predicate": "@id": "http://purlorg/net/iow/doo#katuosoite", "label": "katuosoite", "range": "xsd:string" ] "@id": "http://purlorg/net/iow/doo#yhteystiedot", "@type": "sh:shapeclass", "label": "Yhteystiedot", "http://wwww3org/2004/02/skos/core#definition": "yhteydenottoa varten tarvittavat tiedot", "property": [

"@id": "http://purlorg/net/iow/doo#yhteystiedot-osoite", "identifier": "5", "label": "Yhteystietojen osoite", "predicate": "@id": "http://purlorg/net/iow/doo#osoite", "@type": "owl:objectproperty", "label": "osoite", "range": "@id": "http://purlorg/net/iow/doo#osoite", "@type": "sh:shapeclass" "@id": "http://purlorg/net/iow/doo#yhteystiedot-sahkoposti", "identifier": "2", "label": "Yhteystiedot-sahkoposti", "predicate": "@id": "http://purlorg/net/iow/doo#sahkoposti", "label": "sahkoposti", "range": "xsd:string" "@id": "http://purlorg/net/iow/doo#yhteystiedot-verkkosivu", "identifier": "4", "label": "Yhteystiedot-verkkosivu", "predicate": null "@id": "http://purlorg/net/iow/doo#yhteystiedot-tavoitettavuus", "identifier": "3", "label": "Yhteystiedot-tavoitettavuus", "predicate": "@id": "http://purlorg/net/iow/doo#tavoitettavuus", "label": "tavoitettavuus", "range": "xsd:string" "@id": "http://purlorg/net/iow/doo#yhteystiedot-puhelinnumero", "identifier": "1", "label": "Yhteystiedot-puhelinnumero", "predicate": "@id": "http://purlorg/net/iow/doo#puhelinnumero", "label": "puhelinnumero", "range": "xsd:string" ]

] Ryhmien metatiedot Työkalulla tuotettavat tietomallit ja profiilit voidaan jakaa ryhmiin joiden avulla hallinnoidaan käyttöoikeuksia Kevyimmillään riittää tietomallin tai profiilin laatijan sähköpostiosoite, joka varmistetaan Eduuni sessiosta Ryhmien metatietoihin liittyen on kuitenkin vielä tarvetta tarkemmille käyttötapauksille koodistopalvelun ja sanastoeditorin yhteiselle autentikaatiopalveluun liittyen Esimerkki ryhmien metatiedoista:

"@graph": [ "@id": "urn:uuid:4925a5ee-3468-45c2-b31d-bc1cf644ef87", "@type": "foaf:group", "label": "fi":"opiskelu, opetus ja koulutus", "en":"learning and Education" "@id": "urn:uuid:7a389eed-9f66-4d3c-8c6f-199117562d70", "@type": "foaf:group", "label": "fi":"yhteisen tietokomponentit", "en":"common vocabularies" ], "@context": "label": "@id": "http://wwww3org/2000/01/rdf-schema#label", "@container": "@language" "adms": "http://wwww3org/ns/adms#", "dc": "http://purlorg/dc/elements/11/", "rdfs": "http://wwww3org/2000/01/rdf-schema#", "foaf": "http://xmlnscom/foaf/01/", "sd": "http://wwww3org/ns/sparql-service-description#", "owl": "http://wwww3org/2002/07/owl#", "xsd": "http://wwww3org/2001/xmlschema#", "rdf": "http://wwww3org/1999/02/22-rdf-syntax-ns#", "void": "http://rdfsorg/ns/void#", "vann": "http://purlorg/vocab/vann/", "dcterms": "http://purlorg/dc/terms/" Lähteet http://lovokfnorg/vocab/voaf/v23/indexhtml# http://lovokfnorg/dataset/lov/recommendations_vocabulary_designpdf http://wwww3org/tr/swbp-vocab-pub/ https://dvcsw3org/hg/gld/raw-file/default/bp/indexhtml http://datasemanticweborg/person/bernard-vatant/html http://wwww3org/2011/gld/wiki/222_best_practices_for_vocab_selection http://wwwlocgov/bibframe/docs/bibframe-profileshtml