1 Format
Eine Visitenkarte wird durch ein JSON-Objekt repräsentiert. Dieses JSON-Objekt beinhaltet obligatorische wie optionale Schlüssel/Werte-Paare.
...
Die Visitenkarte einer Applikation kann auf zwei Wegen bereitgestellt werden. Zum einen als API-Endpunkt, zum anderen eingebettet in die Startseite im JSON-LD Format. Die URLs von Endpunkt bzw. Startseite werden dann, nach Registrierung in einem Adressbuch, abgefragt und die resultierenden Inhalte ausgewertet.
1.1 API-Endpunkt
Der API-Endpunkt ist über eine gleichbleibende URL von externen Systemen abrufbar. Beim Aufruf dieser URL generiert die angefragte Applikation ihre Visitenkarte im JSON Format.
Es sollte der entsprechende Content-Type Header gesetzt werden:
Content-Type: application/json
1.2 JSON-LD
Das generierte JSON Objekt kann auch als Metadatum in die Startseite der Applikation eingebaut werden. Dazu wird es in ein script tag vornehmlich im head-Bereich eingebettet:
...
identifier
Eindeutiger Bezeichner für den Dienst
Pflichtfeld: ja
Typ: URL (Thing > Property > identifier)
name
Name des Dienstes
Pflichtfeld: ja
Typ: String (Thing > Property > name)
url
URL unter der die Visitenkarte abrufbar ist (API/JSON-LD)
Pflicht: js
Typ: URL (Thing > Property > url)
Bemerkung: Zur Aktualisierung der Visitenkarte
image
Icon des Dienstes
Pflicht: nein
Typ: URL (Thing > Property > image)
Bemerkung: Kann genutzt werden um beispielsweise Suchergebnisse zu kennzeichnen
logo
Logo des Dienstes
Pflicht: nein
Typ: URL (Thing > Property > image > logo)
inLanguage
Sprache(n) des Hauptangebotes
Pflicht: nein
Typ: [] String
Format: IETF BCP 47
description
Beschreibung des Dienstes
Pflicht: nein
Typ: String (Thing > Property > description)
serviceType
Art des Services
Pflicht: ja
Typ: [] String (Thing > Intangible > Service)
Wertebereich
CMS
LCMS
LMS
PLE
LOR
Repository
Referatory
Tool
LTI
Authoring-Tool
Portfolio
Wiki
Service (ohne UI)
others
audience
Zielgruppe(n) des Angebotes
Pflicht: nein
Typ: [] EducationalAudience (Thing > Intangible > Audience > EducationalAudience)
Bsp: "audience": {
"@type": "EducationalAudience",
"educationalRole": "teacher"
}category
Klassifikation der Inhalte
Pflicht: nein
Typ: [] String (Thing > Intangible > Audience > EducationalAudience)
isAccessibleForFree
Sind Inhalte oder Dienste frei (ohne Authentifizierung) verfügbar
Pflicht: nein
Typ: Boolean (Thing > Property > isAccessibleForFree)
provider
Anbeiter des Dienstes
Pflicht: ja
Typ: [] provider (Thing > Property > provider)
startDate
Launch-Datum des Dienstes
Pflicht: nein
Typ: date (Thing > Property > startDate)
Fomat: ISO 8601
availableChannel
Services, die angeboten werden
Pflicht: ja
Typ: [] ServiceChannel (Thing > Property > availableChannel)
Bsp: {
"@type":"ServiceChannel",
"serviceUrl":"plaground.de/OAI",
"providesService":{
"@type":"Service",
"availableLanguage": ["de"],
"serviceType":"OAI",
"termsOfService":"Dokumentation"
},
}Wertebereich “serviceType”
Search
Sitemap
OAI
Statistics
Generic_Api
version
Version der Visitenkarte
Pflicht: ja
Typ: Integer (thing > property > version)
dateModified
Letztes Änderungsdatum der Visitenkarte
Pflicht: ja
Typ: date (Thing > Property > dateModified)
Fomat: ISO 8601
license
Lizens(en) der angebotenen Inhalte
Pficht: nein
Typ: [] String (Thing > Property > license)
sameAs
Zugehörige Webseiten (Github, Docker, ...)
Pflicht: nein
Typ: [] URL (Thing > Property > sameAs)
3 Beispiel
Codeblock |
---|
{ "@context":"http://schema.org/", "id":"https://playground.oer-contentbuffet.info/edu-sharing/", "type":"Service", "name":"Jointly OER Playground", "url":"https://playground.oer-contentbuffet.info/edu-sharing/", "image":"https://playground.oer-contentbuffet.info/edu-sharing/assets/images/sources/home.png", "logo":"https://playground.oer-contentbuffet.info/edu-sharing/assets/images/edu-white-alpha.svg", "inLanguage":[ "de", "en" ], "description":"Das Verbundprojekt JOINTLY unterstützt OER-Akteure bei der Entwicklung und Verbreitung ihrer offenen Bildungsmaterialien. Es vermittelt die Beratung durch ExpertInnen zu Recht, Produktion, Didaktik und IT und organisiert Kooperationsaktivitäten zwischen OER-Akteuren. JOINTLY entwickelt gemeinschaftlich OER-förderliche Softwarewerkzeuge sowie Arbeits- und Vertriebsinstrumente.", "additionalType":"Repository", "audience":[ { "type":"EducationalAudience", "educationalRole":{ "id":"http://purl.org/dcx/lrmi-vocabs/educationalAudienceRole/teacher", "label":"Teacher" } }, { "type":"EducationalAudience", "educationalRole":{ "id":"http://purl.org/dcx/lrmi-vocabs/educationalAudienceRole/peerTutor", "label":"Peer Tutor" } } ], "about":{ "id":"https://w3id.org/class/esc/n0541", "label":"Mathematik" }, "isAccessibleForFree":true, "provider":[ { "type":"Organization", "name":"JOINTLY – Qualifizierung und kooperative Unterstützung für OER – ein Buffet der Kooperation", "email":"info@jointly.info", "location":{ "type":"Place", "geo":{ "longitude":11.3271834, "latitude":50.9736279 }, "address":{ "type":"PostalAddress", "addressCountry":"DE", "streetAddress":"Bauhausstraße 7c", "postalCode":"99423", "addressLocality":"Weimar" } } } ], "startDate":"2017-06-01", "availableChannel":[ { "type":"ServiceChannel", "additionalType":"OAI-PMH Interface", "serviceUrl":"https://playground.oer-contentbuffet.info/oai", "availableLanguage":[ "de", "en" ] }, { "type":"ServiceChannel", "additionalType":"WebAPI", "serviceUrl":"https://playground.oer-contentbuffet.info/edu-sharing/rest", "availableLanguage":[ "de", "en" ], "documentation":"https://playground.oer-contentbuffet.info/edu-sharing/swagger/index.html" } ], "license":[ "https://creativecommons.org/licenses/by-sa/4.0/deed.de", "https://creativecommons.org/licenses/by/4.0/deed.de" ], "version":"1", "dateModified":"2019-01-22", "sameAs":[ "https://jointly.info/", "https://twitter.com/OER_JOINTLY" ] } |
3. Conformance Testing
Nachdem 2. endgültig abgestimmt, wird ein JSON Schema zur Validierung erstellt (s. AP https://git.io/fAJNd )
...