Standaarden:Schema.org

Uit Kennisnet Developers Documentatie
Ga naar: navigatie, zoeken

Standaarden: Schema.org

Standaard om verschillende soorten data te structureren. Binnen Kennisnet gebruiken we schema.org voornamelijk voor de uitwisseling van leermiddel metadata en educatieve evenementen in Edurep.

Info.gif Deze functionaliteit staat nog niet live.

Deze pagina is bedoeld om een globaal overzicht te geven in de schema.org standaard. Voor specifieke implementatiedetails verwijzen we voor Edurep door naar deze pagina (TODO).

Documentatie

Bullet book.png Schema.org specificatie En.gif (leidend)

Velden

Structuur

Verschillende elementen van de structuur verdienen wat aandacht.

Classes en Attributes

De schema.org klasse structuur is leidend voor de opbouw van een record. De belangrijkste entiteiten die in Edurep worden gebruikt zijn:

Deze entiteiten hebben attributen. Omdat een CreativeWork en Event beiden overerven uit Thing, hebben ze beiden bijvoorbeeld schema:name en schema:description attributen. Een Event specifiek attribuut is bijvoorbeeld schema:maximumAttendeeCapacity. Er kunnen ook attributen uit andere ontologiën worden gebruikt. Bijvoorbeeld dcterms:accessRights uit de dcterms.

Niet alle attributen hebben een Literal waarde, sommige verwijzen naar een andere schema.org klasse met weer eigen attributen. Klasses zijn te herkennen aan de @type waarde.

  • Een belangrijke Event klasse is Place waarmee de plaats van een evenement uitgebreider beschreven kan worden.
  • Er is ook een klasse om de geaggreerde beoordeling van een Event of CreativeWork te omschrijven,
  • en een losse beoordeling wordt ook in klasse beschreven.

@id

Het @id attribuut wordt in schema.org gebruikt om verschillende entities aan elkaar te kunnen koppelen.

{
  "@id": "example:recordid:1",
  "@type": "schema:CreativeWork",
  "schema:name": "voorbeeld"
}

Value

De velden waarin een language string 1 of meerdere keren kan voorkomen kent verschillende verschijningsvormen.

"schema:keywords": [
    {
        "@language": "nl",
        "@value": "kip"
    },
    {
        "@language": "en",
        "@value": "chicken"
    },
    {
        "@language": "nl",
        "@value": "tok"
    },
    "hen"
]

DefinedTerm

Een DefinedTerm is binnen schema.org een veelvoorkomende manier om te verwijzen naar een generieke vocabulaireterm.

Voorbeelden

Leermateriaal Metadata

{
    "@context": {
        "dcterms": "http://purl.org/dc/terms/",
        "edurep": "https://purl.edurep.nl/terms/",
        "lom": "http://ltsc.ieee.org/xsd/LOM#",
        "prov": "http://www.w3.org/ns/prov#",
        "schema": "https://schema.org/"
    },
    "@id": "jsonld-from-lom:seecr-regression-test:lom-valid1.xml",
    "@type": [
        "schema:CreativeWork",
        "schema:LearningResource"
    ],
    "dcterms:accessRights": "RestrictedAccess",
    "dcterms:contributor": "Kaatje Kaasschaaf",
    "dcterms:coverage": {
        "@language": "nl",
        "@value": "Regression Test 2021"
    },
    "dcterms:creator": [
        "Flip Fluitketel",
        "Stefan Staafmixer",
        "Dex Deegroller"
    ],
    "dcterms:isReferencedBy": {
        "@id": "urn:example:isreferencedby:id"
    },
    "dcterms:isVersionOf": {
        "@id": "urn:example:isversionof:id"
    },
    "dcterms:publisher": "Ketelfluit Uitgeverij",
    "lom:aggregationLevel": "1",
    "lom:difficulty": "very easy",
    "lom:structure": "networked",
    "schema:aggregateRating": {
        "@type": "schema:AggregateRating",
        "edurep:bayesianRanking": 2.1,
        "edurep:tagCount": 0,
        "schema:ratingCount": 2,
        "schema:ratingValue": 1.5,
        "schema:reviewCount": 0
    },
    "schema:audience": {
        "@id": "http://purl.edustandaard.nl/vdex_intendedenduserrole_lomv1p0_20060628.xml#learner",
        "@type": "schema:Audience",
        "schema:audienceType": "learner"
    },
    "schema:creativeWorkStatus": "final",
    "schema:dateCreated": "1960-04-01",
    "schema:datePublished": "1980-04-01",
    "schema:description": [
        {
            "@language": "en",
            "@value": "Edurep Regression Test 1: code ert1"
        },
        {
            "@language": "nl",
            "@value": "Edurep Regressie Test 1: code ert1"
        }
    ],
    "schema:educationalAlignment": {
        "@id": "http://purl.edustandaard.nl/begrippenkader/c001f86a-4f8f-4420-bd78-381c615ecedc",
        "@type": "schema:AlignmentObject",
        "schema:educationalFramework": "http://purl.edustandaard.nl/begrippenkader",
        "schema:name": {
            "@language": "nl",
            "@value": "Aardrijkskunde"
        },
        "schema:targetName": "c001f86a-4f8f-4420-bd78-381c615ecedc"
    },
    "schema:educationalLevel": [
        {
            "@id": "http://purl.edustandaard.nl/begrippenkader/2a1401e9-c223-493b-9b86-78f6993b1a8d",
            "@type": "schema:DefinedTerm",
            "schema:inDefinedTermSet": "http://purl.edustandaard.nl/begrippenkader",
            "schema:name": {
                "@language": "nl",
                "@value": "VO"
            },
            "schema:termCode": "2a1401e9-c223-493b-9b86-78f6993b1a8d"
        },
        {
            "@id": "http://purl.edustandaard.nl/begrippenkader/512e4729-03a4-43a2-95ba-758071d1b725",
            "@type": "schema:DefinedTerm",
            "schema:inDefinedTermSet": "http://purl.edustandaard.nl/begrippenkader",
            "schema:name": {
                "@language": "nl",
                "@value": "PO"
            },
            "schema:termCode": "512e4729-03a4-43a2-95ba-758071d1b725"
        }
    ],
    "schema:encoding": {
        "@type": "schema:MediaObject",
        "schema:encodingFormat": "application/pdf",
        "schema:url": "http://example.org/lom-valid1.xml?format=pdf"
    },
    "schema:encodingFormat": "text/html",
    "schema:hasPart": {
        "@id": "urn:example:haspart:id"
    },
    "schema:identifier": [
        "http://example.org/lom-valid1.xml",
        "urn:seecr-regression-test:lom-valid1"
    ],
    "schema:inLanguage": "nl",
    "schema:interactivityType": "mixed",
    "schema:isAccessibleForFree": true,
    "schema:isBasedOn": {
        "@id": "urn:example:isbasedon:id"
    },
    "schema:isPartOf": {
        "@id": "urn:example:ispartof:id"
    },
    "schema:keywords": [
        {
            "@language": "nl",
            "@value": "kip"
        },
        {
            "@language": "nl",
            "@value": "tok"
        },
        {
            "@id": "http://example.groenkennisnet.nl/#example",
            "@type": "schema:DefinedTerm",
            "schema:inDefinedTermSet": "http://example.groenkennisnet.nl/",
            "schema:name": "Test Example",
            "schema:termCode": "example"
        },
        "groengelinkt-keyword"
    ],
    "schema:learningResourceType": {
        "@type": "schema:DefinedTerm",
        "schema:inDefinedTermSet": "LOMv1.0",
        "schema:termCode": "informatiebron"
    },
    "schema:license": "https://creativecommons.org/licenses/by/4.0/",
    "schema:name": {
        "@language": "nl",
        "@value": "Edurep Regression Test 1"
    },
    "schema:review": [
        {
            "@id": "jsonld-from-smo:kennisnet.regression.003",
            "@type": "schema:Review",
            "edurep:smoSupplierId": "kennisnet",
            "edurep:smoUserId": "regressiontester",
            "schema:dateCreated": "2021-09-21T04:48:06Z",
            "schema:identifier": "kennisnet.regression.003",
            "schema:itemReviewed": "http://example.org/lom-valid1.xml",
            "schema:reviewRating": {
                "@type": "schema:Rating",
                "schema:bestRating": 5.0,
                "schema:ratingValue": 2.0,
                "schema:worstRating": 1.0
            }
        },
        {
            "@id": "jsonld-from-smo:kennisnet.regression.002",
            "@type": "schema:Review",
            "edurep:smoSupplierId": "kennisnet",
            "edurep:smoUserId": "regressiontester",
            "schema:dateCreated": "2008-10-31T10:27:11Z",
            "schema:identifier": "kennisnet.regression.002",
            "schema:itemReviewed": "urn:seecr-regression-test:lom-valid1",
            "schema:reviewRating": {
                "@type": "schema:Rating",
                "schema:bestRating": 5.0,
                "schema:ratingValue": 1.0,
                "schema:worstRating": 1.0
            }
        }
    ],
    "schema:teaches": [
        {
            "@id": "http://purl.edustandaard.nl/begrippenkader/8cd7169b-ec2b-4b1a-bc35-e2d2ac49e902",
            "@type": "schema:DefinedTerm",
            "schema:inDefinedTermSet": "http://purl.edustandaard.nl/begrippenkader",
            "schema:name": "PO Kerndoel 01: Informatie verwerven",
            "schema:termCode": "8cd7169b-ec2b-4b1a-bc35-e2d2ac49e902"
        },
        {
            "@id": "http://purl.edustandaard.nl/begrippenkader/e5f45cd7-ff7b-4876-a014-9aead5348100",
            "@type": "schema:DefinedTerm",
            "schema:inDefinedTermSet": "http://purl.edustandaard.nl/begrippenkader",
            "schema:name": "PO Kerndoel 2: Spreken",
            "schema:termCode": "e5f45cd7-ff7b-4876-a014-9aead5348100"
        }
    ],
    "schema:thumbnailUrl": "http://www.example.org/thumbnail_url.png",
    "schema:timeRequired": "PT1H30M",
    "schema:typicalAgeRange": "20-50",
    "schema:url": "http://example.org/lom-valid1.xml",
    "schema:version": "v1"
}

Evenement Metadata

{
    "@context": {
        "dcterms": "http://purl.org/dc/terms/",
        "edurep": "https://purl.edurep.nl/terms/",
        "lom": "http://ltsc.ieee.org/xsd/LOM#",
        "prov": "http://www.w3.org/ns/prov#",
        "schema": "https://schema.org/"
    },
    "@id": "seecr-regression-test:event-valid1.xml",
    "@type": [
        "schema:Event",
        "schema:LearningResource"
    ],
    "dcterms:accessRights": "OpenAccess",
    "schema:aggregateRating": {
        "@type": "schema:AggregateRating",
        "edurep:bayesianRanking": 2.88,
        "edurep:supplierTag": "kennisnet#flow",
        "edurep:tagCount": 1,
        "schema:ratingCount": 1,
        "schema:ratingValue": 4.0,
        "schema:reviewCount": 1
    },
    "schema:dateCreated": {
        "@type": "http://www.w3.org/2001/XMLSchema#datetime",
        "@value": "2020-12-12T18:24:17.467Z"
    },
    "schema:dateModified": {
        "@type": "http://www.w3.org/2001/XMLSchema#datetime",
        "@value": "2021-03-15T13:24:17.467Z"
    },
    "schema:datePublished": {
        "@type": "http://www.w3.org/2001/XMLSchema#datetime",
        "@value": "2021-02-01T07:24:17.467Z"
    },
    "schema:description": "Event Record 1",
    "schema:duration": "PT70M",
    "schema:educationalAlignment": {
        "@id": "http://purl.edustandaard.nl/begrippenkader/ef3a0b2e-0843-4e0a-b45b-788be6e1ec8d",
        "@type": "schema:AlignmentObject",
        "schema:alignmentType": "discipline",
        "schema:educationalFramework": "http://purl.edustandaard.nl/begrippenkader",
        "schema:name": "Geschiedenis",
        "schema:targetName": "ef3a0b2e-0843-4e0a-b45b-788be6e1ec8d"
    },
    "schema:educationalLevel": [
        {
            "@id": "http://purl.edustandaard.nl/begrippenkader/abfb190f-e814-46f5-a9cc-ebd53f04018e",
            "@type": "schema:DefinedTerm",
            "schema:inDefinedTermSet": "http://purl.edustandaard.nl/begrippenkader",
            "schema:name": "groep 6",
            "schema:termCode": "abfb190f-e814-46f5-a9cc-ebd53f04018e"
        },
        {
            "@id": "http://purl.edustandaard.nl/begrippenkader/512e4729-03a4-43a2-95ba-758071d1b725",
            "@type": "schema:DefinedTerm",
            "schema:inDefinedTermSet": "http://purl.edustandaard.nl/begrippenkader",
            "schema:name": "PO",
            "schema:termCode": "512e4729-03a4-43a2-95ba-758071d1b725"
        }
    ],
    "schema:identifier": "https://www.example.org/event1",
    "schema:isAccessibleForFree": false,
    "schema:keywords": [
        "evenement",
        "excursie"
    ],
    "schema:location": {
        "@id": "seecr-regression-test:place:4ee1cac4-cfa3-44f0-928a-c36f8f347925",
        "@type": "schema:Place",
        "schema:address": {
            "@type": "schema:PostalAddress",
            "schema:addressLocality": "Schubbekutteveen",
            "schema:addressRegion": "Groningen",
            "schema:postalCode": "9930 AA",
            "schema:streetAddress": "Europaweg 1"
        },
        "schema:identifier": "urn:osm:W225805792",
        "schema:latitude": "53.53485525",
        "schema:longitude": "6.48176799109808",
        "schema:name": "Test Place 1",
        "schema:url": "https://example.org/place1"
    },
    "schema:name": "Event Valid 1",
    "schema:offers": {
        "@type": "schema:Offer",
        "schema:price": {
            "@language": "nl",
            "@value": "Totaalkosten op basis van 25 leerlingen: €85,-"
        },
        "schema:priceCurrency": "EUR"
    },
    "schema:organizer": {
        "@id": "seecr-regression-test:organization:4ee1cac4-cfa3-44f0-928a-c36f8f347925",
        "@type": "schema:Organization",
        "schema:description": "Test Organization",
        "schema:location": {
            "@id": "seecr-regression-test:place:4ee1cac4-cfa3-44f0-928a-c36f8f347925"
        },
        "schema:name": "Test Organization 1",
        "schema:telephone": "0123-456789",
        "schema:url": "https://example.org/organization1"
    },
    "schema:teaches": [
        {
            "@id": "http://purl.edustandaard.nl/begrippenkader/e93ea3f8-e21a-4a8a-b3b9-4ac005fe5f30",
            "@type": "schema:DefinedTerm",
            "schema:inDefinedTermSet": "http://purl.edustandaard.nl/begrippenkader",
            "schema:name": "PO Kerndoel 51: Historische bronnen",
            "schema:termCode": "e93ea3f8-e21a-4a8a-b3b9-4ac005fe5f30"
        },
        {
            "@id": "http://purl.edustandaard.nl/begrippenkader/7555bcba-47e9-41d2-b04a-5a3623062146",
            "@type": "schema:DefinedTerm",
            "schema:inDefinedTermSet": "http://purl.edustandaard.nl/begrippenkader",
            "schema:name": "PO Kerndoel 56: Cultureel erfgoed",
            "schema:termCode": "7555bcba-47e9-41d2-b04a-5a3623062146"
        }
    ],
    "schema:url": "https://www.example.org/event1"

}