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