Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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


 

 

Code Block
{
   "@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 )

...