Fork me on GitHub

JSKOS data format for Knowledge Organization Systems

Jakob Voß

2016-12-02 (version 0.1.4)

Table of Contents

1 Introduction

JSKOS defines a JavaScript Object Notation (JSON) structure to encode knowledge organization systems (KOS), such as classifications, thesauri, and authority files. The current draft of JSKOS supports encoding of concepts and concept schemes with their corresponding properties. Support of concept mappings and concept collections is experimental.

The main part of JSKOS is compatible with Simple Knowledge Organisation System (SKOS) and JavaScript Object Notation for Linked Data (JSON-LD) but JSKOS can be used without having to be experienced in any of these technologies. A simple JSKOS document can be mapped to SKOS expressed in the Resource Description Framework (RDF), and vice versa. JSKOS further supports closed world statements to express incomplete information about knowledge organization systems to facilitate use in dynamic web applications.

1.1 Status of this document

JSKOS is currently being developed as part of project coli-conc. The JSKOS specification is hosted at http://gbv.github.io/jskos/ in the public GitHub repository https://github.com/gbv/jskos. Feedback is appreciated! See https://github.com/gbv/jskos/issues for a list of open issues.

1.2 Conformance requirements

The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119.

2 Data types

JSKOS is based on JSON which consists of objects with pairs of fields and values, arrays with members, strings, numbers, and the special values true, false, and null. All strings and fields of a JSKOS document MUST be normalized to Unicode Normalization Form C (NFC). Applications processing JSON MAY accept JSON documents not normalized in NFC by performing NFC normalization. JSKOS further restricts JSON with reference to the following data types:

2.1 URI

An URI is a syntactically correct IRI (RFC 3987).

2.2 URL

An URL is a syntactically correct URL with HTTPS (RECOMMENDED) or HTTP scheme.

2.3 date

A date is a date or datetime as defined with XML Schema datatype datetime (-?YYYY-MM-DDThh:mm:ss(\.s+)?(Z|[+-]hh:mm)?) date (-?YYYY-MM-DD(Z|[+-]hh:mm)?), gYearMonth (-?YYYY-MM), or gYear (-?YYYY).

2.4 list

A list is a possibly empty array of strings and an optional last member null. Applications MAY ignore or disallow the value null in lists. If null is allowed, lists MUST be interpreted as following to support closed world statements:

2.5 set

A set is a possibly empty array where all members

Member objects SHOULD have a field uri. Applications MAY restrict sets to require the field uri for all non-null members. Applications MAY ignore or disallow the value null in sets. If null is allowed, sets MUST be interpreted as following to support closed world statements:

The following JSON values are JSKOS sets:

  • []
  • [null]
  • [{"uri":"http://example.org/123"}]
  • [{"uri":"http://example.org/123"},null]
  • [{"uri":"http://example.org/123"},{"uri":"http://example.org/456"}]
  • [{"uri":"http://example.org/123"},{"notation":["xyz"]}]

The following JSON values are no valid JSKOS sets:

  • [null,{"uri":"http://example.org/123"}]
    (null must be last member)
  • [{"uri":"http://example.org/123"},{"uri":"http://example.org/123"}]
    (field uri not unique)

It is not defined yet whether and when the order of elements is relevant or not.

2.6 language range

A language range is

A language range “x-”, where x is a possibly empty string, refers to the set of RFC 3066 language tags that start with the x. For instance language range en- includes language tag en, en-US, and en-GB among others. The language range - refers to all possible language tags.

A language range MUST conform to the following ABNF grammar (RFC 5234):

language-range = [language-tag] "-"
language-tag   = 1*8alpha *("-" 1*8(alpha / DIGIT))
alpha          = %x61-7A  ; a-z

Language ranges are defined similar to basic language ranges in RFC 4647. Both can be mapped to each other but they serve slightly different purposes.

2.7 language map

A language map is a JSON object in which every fields is

and

Applications MAY ignore or disallow language ranges in language maps. If language ranges are allowed, language maps MUST be interpreted as following to support closed world statements:

Applications SHOULD use the string "?" or the array ["?"] as placeholder.

The following language maps make use of language ranges and placeholders:

  • {"-":"?"}, {"-":"..."}, {"-":[]}, and {"-":["?"]} all denote non-empty language maps with unknown language tags and values.

  • {"en":"bird","-":"?"} denotes a language map with an English value and additional values in other language tags.

  • {"en":"bird"} denotes a language map with an English value only.

  • {"en-":"?"} denotes a language map that only contains values with language tags starting with en.

JSON-LD disallows language map fields ending with "-" so all fields that are language ranges MUST be removed before reading JSKOS as JSON-LD.

The language tag “und” can be used to include strings of unknown or unspecified language.

2.8 location

A location is an JSON object conforming to the GeoJSON specification (RFC 7946) with GeoJSON type being one of Point, MultiPoint, LineString, MultiLineString, Polygon, or MultiPolygon. Applications MAY restrict the location data type to GeoJSON objects of GeoJSON type Point.

Position of the RMS Titanic as point:

{
  "type": "Point",
  "coordinates": [-49.946944, 41.7325, -3803]
}

3 Object types

3.1 Object

An object is a JSON object with the following optional fields:

field type description
uri URI primary globally unique identifier
type list of URIs URIs of types
@context URI reference to a JSON-LD context document
created date date of creation
issued date date of publication
modified date date of last modification
creator set agent primarily responsible for creation of object
contributor set agent responsible for making contributions to the object
publisher set agent responsible for making the object available
partOf set resources which this object is part of (if no other field applies)

It is RECOMMENDED to always include the fields uri, type, and @context. The value of field @context SHOULD be https://gbv.github.io/jskos/context.json.

Object sameness

Two objects are same if they both contain field uri with the same value.

The following objects are same:

{ "uri": "http://example.org/123", "created": "2007" }
{ "uri": "http://example.org/123", "created": "2015" }

Two objects are never same of they don’t both contain field uri!

3.2 Item

An item is an object with the following optional fields (in addition to the optional fields @context, contributor, created, creator, issued, modified, partOf publisher, type, and uri):

field type description
url URL URL of a page with information about the item
identifier list additional identifiers
notation list list of notations
prefLabel language map of strings preferred labels, index by language
altLabel language map of list alternative labels, indexed by language
hiddenLabel language map of list hidden labels, indexed by language
scopeNote language map of list see SKOS Documentary Notes
definition language map of list see SKOS Documentary Notes
example language map of list see SKOS Documentary Notes
historyNote language map of list see SKOS Documentary Notes
editorialNote language map of list see SKOS Documentary Notes
changeNote language map of list see SKOS Documentary Notes
subject set what this item is about (e.g. topic)
subjectOf set resources about this item (e.g. documentation)
depiction list of URL list of image URLs depicting the item

Applications MAY limit the fields notation and/or depiction to lists of a single element or ignore all preceding elements of these lists.

3.3 Concept

A concept is an item with the following optional fields (in addition to the optional fields @context, altLabel, changeNote, contributor, created, creator, definition, depiction, editorialNote, example, hiddenLabel, historyNote, identifier, issued, modified, notation, partOf prefLabel, publisher, scopeNote, subjectOf, subject, type, uri, and url):

field type description
narrower set narrower concepts
broader set broader concepts
related set generally related concepts
previous set related concepts ordered somehow before the concept
next set related concepts ordered somehow after the concept
startDate date date of birth, creation, or estabishment of what the concept is about
endDate date date death or resolution of what the concept is about
relatedDate date other date somehow related to what the concept is about
location location geographic location(s) of what the concept is about
ancestors set list of ancestors, possibly up to a top concept
inScheme set concept schemes or URI of the concept schemes
topConceptOf set concept schemes or URI of the concept schemes

The first element of field type, if given, MUST be the URI http://www.w3.org/2004/02/skos/core#Concept refering to the general concept type “Concept”.

Applications MAY limit the inScheme and/or topConceptOf to sets of a single element or ignore all but one element of these sets.

If both fields broader and ancestors are given, the set broader MUST include the same concept as the first element of ancestors.

The “ancestors” field is useful in particular for monohierarchical classifications but it’s not forbidden to choose just one arbitrary path of concepts that are connected by the broader relation.

{
  "uri": "http://example.org/terminology/P",
  "type": ["http://www.w3.org/2004/02/skos/core#Concept"],
  "scopeNote": {
    "en": "state of harmony characterized by lack of violent conflict and freedom from fear of violence",
    "de": "Abwesenheit von Gewalt, Angst und anderen Störungen"
  },
  "prefLabel": {
    "en": "peace",
    "de": "Frieden"
  },
  "altLabel": {
    "de": ["Friede"]
  },
  "notation": ["P"],
  "narrower": [
    {
      "prefLabel": {
        "en": "world peace",
        "de": "Weltfrieden"
      } 
    }
  ],
  "related": [
    { 
      "prefLabel": { "en": "war", "de": "Krieg" } 
    }
  ]
}

3.4 Concept types

A concept type is an item that represents a specific type of concept.

Each concept MUST belong to at least the general concept type “Concept”, identified by the URI http://www.w3.org/2004/02/skos/core#Concept:

{
  "uri": "http://www.w3.org/2004/02/skos/core#Concept",
  "prefLabel": { "en": "Concept" }
}

Concepts schemes MAY use additional concept types to organize concepts.

3.5 Concept Schemes

A concept scheme is an item with the following optional fields (in addition to the optional fields @context, altLabel, changeNote, contributor, created, creator, definition, depiction, editorialNote, example, hiddenLabel, historyNote, identifier, issued, modified, notation, partOf prefLabel, publisher, scopeNote, subjectOf, subject, type, uri, and url):

property type definition
topConcepts set of concepts top concepts of the scheme
versionOf set of concept schemes concept scheme which this scheme is a version or edition of
concepts URL or set JSKOS API concepts endpoint returning all concepts in this scheme
types URL or set JSKOS API types endpoint returning all concept types in this scheme
extent string Size of the concept scheme
languages list of language tags Supported languages
license set Licenses which the full scheme can be used under

The first element of field type, if given, MUST be http://www.w3.org/2004/02/skos/core#ConceptScheme.

If concepts is a set, all its member concepts SHOULD contain a field inScheme and all MUST contain the same concept scheme in field inScheme if this field is given.

If types and concepts are sets, the types set SHOULD include a concept type for each concept’s type other than http://www.w3.org/2004/02/skos/core#Concept.

3.6 Registries

A registry is an item with the following optional fields (in addition to the optional fields @context, altLabel, changeNote, contributor, created, creator, definition, depiction, editorialNote, example, hiddenLabel, historyNote, identifier, issued, modified, notation, partOf prefLabel, publisher, scopeNote, subjectOf, subject, type, uri, and url):

property type definition
concepts URL or set JSKOS API endpoint with concepts in this registry
schemes URL or set JSKOS API endpoint with concept types in this registry
types URL or set JSKOS API endpoint with concept schemes in this registry
mappings URL or set JSKOS API endpoint with mappings in this registry
registries URL or set JSKOS API endpoint with other registries in this registry
concordances URL or set JSKOS API endpoint with concordances in this registry
extent string Size of the registry
languages list Supported languages
license set Licenses which the full registry content can be used under

Registries are collection of concepts, concept schemes, concept types, concept mappings, and/or other registries.

Registries are the top JSKOS entity, followed by concordances, mappings, and on the lowest level concepts and concept types.

Additional integrity rules for registries will be defined.

3.7 Concordances

A concordance is an item with the following fields (in addition to the optional fields @context, altLabel, changeNote, contributor, created, creator, definition, depiction, editorialNote, example, hiddenLabel, historyNote, identifier, issued, modified, notation, partOf prefLabel, publisher, scopeNote, subjectOf, subject, type, uri, and url). All fields except fromScheme and toScheme are optional.

property type definition
mappings URL or set JSKOS API endpoint with mappings in this concordance
fromScheme concept scheme Source concept scheme
toScheme concept scheme Target concept scheme
extent string Size of the concordance
license set License which the full concordance can be used under

Concordances are collections of mappings from one concept scheme to another. If mappings is a set then

There is an additional integrity constraint refering to field inScheme if concepts in mappings in concordances.

3.8 Concept Mappings

A mapping is an item with the following fields (in addition to the optional fields @context, altLabel, changeNote, contributor, created, creator, definition, depiction, editorialNote, example, hiddenLabel, historyNote, identifier, issued, modified, notation, partOf prefLabel, publisher, scopeNote, subjectOf, subject, type, uri, and url). All fields except from and to are optional.

field type definition
from concept bundle concepts mapped from
to concept bundle concepts mapped to
fromScheme concept scheme source concept scheme
toScheme concept scheme target concept scheme
mappingRelevance number numerical value between 0 and 1 (experimental)

A mapping represents a mapping between concepts of two concept schemes. It consists two concept bundles with additional metadata not fully defined yet.

The first element of field type, if given, MUST be one of the values

from SKOS mapping properties as first element. The field type MUST NOT contain multiple of these values.

When mappings are dynamically created it can be useful to assign a non-HTTP URI such as urn:uuid:687b973c-38ab-48fb-b4ea-2b77abf557b7.

3.9 Concept Bundles

A concept bundle is a group of concepts. Some concept bundles represent SKOS concept collections, and pre-coordinated concepts, among other use cases.

A concept bundle is a JSON object with one of the following fields:

field type definition
memberSet set concepts in this bundle (unordered)
memberList ordered set concepts in this bundle (ordered)
memberChoice set concepts in this bundle to choose from
  • Concept collections are experimental, see https://github.com/gbv/jskos/issues/7 for discussion.

  • Concepts from a bundle may also come from different concept schemes!

  • A concept bundle may be empty, for instance to indicate that no appropriate concepts exists for a given concept scheme:

    {
      ...
      "to": { "memberSet": [] },
      "toScheme": {"uri": "http://dewey.info/scheme/ddc/"}
    }

4 Additional rules

4.1 Closed world statements

By default, an JSKOS document should be interpreted as possibly incomplete: a missing property does not imply that no value exists for this property: this assumption is also known as open-world assumption. Applications SHOULD support closed world statements to explicitly disable the open world assumption for selected properties and explicitly state the known absence or existence of unknown values:

data type open world closed world explicit negation explicit existence
list no field [...] [] [null] or [..., null]
set no field [...] [] [null] or [..., null]
language map no field {...} no language tag {"-":"?"} or {"-":["?"]}
object no field {...} - {}
URI/URL no field "..." - -
date no field "..." - -

The following concept has preferred labels and narrower concepts. but no alternative labels nor notations. Nothing is known about broader concepts, related concepts, and other possible concept properties:

{
  "type": ["http://www.w3.org/2004/02/skos/core#Concept"],
  "prefLabel": { "-": "..." },
  "altLabel": { },
  "notation": [],
  "narrower": [ null ]
}

4.2 Integrity rules

Integrity rules of SKOS should be respected. A later version of this specification may list these rules in more detail and also explain converting between SKOS and JSKOS.

4.3 Extension with custom fields

A JSKOS record MAY contain additional fields for custom usage. These fields MUST start with an uppercase letter (A-Z) and SHOULD be ignored by JSKOS applications. Fields starting with lowercase letters MUST NOT be used unless they are explicitly defined in this specification.

The field Parts in the following example does not belong to JSKOS:

{
  "uri": "http://www.wikidata.org/entity/Q34095",
  "prefLabel": { "en": "bronze" },
  "Parts": ["copper", "tin"]
}

References

Normative references

Informative references

Appendices

The following appendices are non-normative.

Glossary

JSON
JavaScript Object Notation
JSON-LD
JavaScript Object Notation for Linked Data
KOS
Knowledge Organization System
RDF
Resource Description Framework

Changelog

0.1.4 (2016-12-02)

  • Update JSON-LD context document
  • Change definition of concept bundles to use fields memberSet/List/Choice instead of members

0.1.3 (2016-10-03)

  • Change definition of “location” field to subset of GeoJSON (RFC 7946)

0.1.2 (2016-06-13)

  • Add “location” field for geographic coordinates

0.1.1 (2016-05-20)

  • Make field “license” a set instead of a single URI
  • Add field “extent”
  • Update reference to RFC 5646 instead of obsoleted RFC 4646

SKOS features not supported in JSKOS

JSKOS is aligned with SKOS but all references to SKOS are informative only. The following features of SKOS are not supported in JSKOS (yet):

maybe supported later
concept collections, see https://github.com/gbv/jskos/issues/7
will not be supported
  • datatypes of notations (of little use in practice)

  • labels and notes without language tag (rarely used in practice)
  • skos:semanticRelation (can be derived)
  • skos:narrowerTransitive (can be derived)

JSKOS features not supported in SKOS

The following features of JSKOS have no corresponce in SKOS:

JSON-LD context

The following JSON-LD context document can be used to map JSKOS to map JSKOS without closed world statements to RDF triples.

{
  "uri": "@id",
  "type": {
    "@id": "http://www.w3.org/1999/02/22-rdf-syntax-ns#type",
    "@type": "@id",
    "@container": "@set"
  },
  "created": "http://purl.org/dc/terms/created",
  "issued": "http://purl.org/dc/terms/issued",
  "modified": "http://purl.org/dc/terms/modified",
  "creator": {
    "@id": "http://purl.org/dc/terms/creator",
    "@container": "@set"
  },
  "contributor": {
    "@id": "http://purl.org/dc/terms/contributor",
    "@container": "@set"
  },
  "publisher": {
    "@id": "http://purl.org/dc/terms/publisher",
    "@container": "@set"
  },
  "partOf": {
    "@id": "http://purl.org/dc/terms/isPartOf",
    "@container": "@set"
  },

  "url": {
    "@id": "http://xmlns.com/foaf/0.1/page",
    "@type": "@id"
  },
  "identifier": {
    "@id": "http://www.w3.org/2004/02/skos/core#exactMatch",
    "@type": "@id",
    "@container": "@set"
  },
  "notation": {
    "@id": "http://www.w3.org/2004/02/skos/core#notation",
    "@container": "@set"
  },
  "prefLabel": {
    "@id": "http://www.w3.org/2004/02/skos/core#prefLabel",
    "@container": "@language"
  },
  "altLabel": {
    "@id": "http://www.w3.org/2004/02/skos/core#altLabel",
    "@container": "@language"
  },
  "hiddenLabel": {
    "@id": "http://www.w3.org/2004/02/skos/core#hiddenLabel",
    "@container": "@language"
  },
  "scopeNote": {
    "@id": "http://www.w3.org/2004/02/skos/core#scopeNote",
    "@container": "@language"
  },
  "definition": {
    "@id": "http://www.w3.org/2004/02/skos/core#definition",
    "@container": "@language"
  },
  "example": {
    "@id": "http://www.w3.org/2004/02/skos/core#example",
    "@container": "@language"
  },
  "historyNote": {
    "@id": "http://www.w3.org/2004/02/skos/core#historyNote",
    "@container": "@language"
  },
  "editorialNote": {
    "@id": "http://www.w3.org/2004/02/skos/core#editorialNote",
    "@container": "@language"
  },
  "changeNote": {
    "@id": "http://www.w3.org/2004/02/skos/core#changeNote",
    "@container": "@language"
  },
  "subject": {
    "@id": "http://purl.org/dc/terms/subject",
    "@container": "@set"
  },
  "subjectOf": {
    "@reverse": "http://purl.org/dc/terms/subject",
    "@container": "@set"
  },
  "depiction": {
    "@id": "http://xmlns.com/foaf/0.1/depiction",
    "@type": "@id",
    "@container": "@set"
  },

  "narrower": {
    "@id": "http://www.w3.org/2004/02/skos/core#narrower",
    "@container": "@set"
  },
  "broader": {
    "@id": "http://www.w3.org/2004/02/skos/core#broader",
    "@container": "@set"
  },
  "related": {
    "@id": "http://www.w3.org/2004/02/skos/core#related",
    "@container": "@set"
  },
  "previous": {
    "@id": "http://rdf-vocabulary.ddialliance.org/xkos#previous",
    "@container": "@set"
  },
  "next": {
    "@id": "http://rdf-vocabulary.ddialliance.org/xkos#next",
    "@container": "@set"
  },
  
  "startDate": "schema:startDate",
  "endDate": "schema:endDate",
  "relatedDate": "http://www.w3.org/2000/01/rdf-schema#seeAlso",
  "location": "http://schema.org/location",
  "ancestors": {
    "@id": "http://www.w3.org/2004/02/skos/core#broaderTransitive",
    "@container": "@set"
  },
  "inScheme": {
    "@id": "http://www.w3.org/2004/02/skos/core#inScheme",
    "@container": "@set"
  },
  "topConceptOf": {
    "@id": "http://www.w3.org/2004/02/skos/core#topConceptOf",
    "@container": "@set"
  },

  "topConcepts": {
    "@id": "http://www.w3.org/2004/02/skos/core#hasTopConcept",
    "@container": "@set"
  },
  "versionOf": {
    "@id": "http://purl.org/dc/terms/isVersionOf",
    "@container": "@set"
  },
  "extent": "http://purl.org/dc/terms/extent",
  "languages": {
    "@id": "http://purl.org/dc/terms/language",
    "@container": "@set"
  },
  "license": {
    "@id": "http://purl.org/dc/terms/license",
    "@container": "@set"
  },

  "fromScheme": "http://rdfs.org/ns/void#subjectsTarget",
  "toScheme": "http://rdfs.org/ns/void#objectsTarget",

  "memberList": {
    "@id": "http://www.loc.gov/mads/rdf/v1#componentList",
    "@container": "@list"
  },
  "memberSet": {
    "@id": "http://www.w3.org/2000/01/rdf-schema#member",
    "@container": "@list"
  },
  "memberChoice": {
    "@id": "http://www.w3.org/2000/01/rdf-schema#member",
    "@container": "@list"
  }
}

JSKOS with closed world statements can be mapped to RDF by ignoring all boolean values and/or by mapping selected boolean values to RDF triples with blank nodes.

Applications should further add implicit RDF triples, such as $someConcept rdf:type skos:Concept, if such information can be derived from JSKOS by other means.

Examples

Integrated Authority File (GND)

The Integrated Authority File (German: Gemeinsame Normdatei) is an authority file managed by the German National Library.

GND as JSKOS concept scheme. This example includes explicit knowledge about existence of more identifiers, definitions, and preferred labels:

A concept from GND:

{
    "uri": "http://d-nb.info/gnd/4074195-3",
    "type": ["http://www.w3.org/2004/02/skos/core#Concept"],
    "prefLabel": {
        "de": "Leukozyt"
    },
    "altlabel": {
        "de": [ "Leukocyt", "Weißes Blutkörperchen", "Leukozyten", "Leukocyten" ]
    },
    "broader": [ {
        "uri": "http://d-nb.info/gnd/4130604-1",
        "prefLabel": { "de": "Blutzelle" }
      } ],
    "narrower": [ {
        "uri": "http://d-nb.info/gnd/4036762-9",
        "prefLabel": { "de": "Lymphozyt" }
      }, {
        "uri": "http://d-nb.info/gnd/4158047-3",
        "prefLabel": { "de": "Granulozyt" }
      }, {
        "uri": "http://d-nb.info/gnd/4285013-7",
        "prefLabel": { "de": "Monozyt" }
     } ]
}

Dewey Decimal Classification (DDC)

A concept from the Dewey Decimal Classification, German edition 22:

{
    "uri": "http://dewey.info/class/612.112/e22/", 
    "type": ["http://www.w3.org/2004/02/skos/core#Concept"],
    "notation": ["612.112"],
    "prefLabel": { "de": "Leukozyten (Weiße Blutkörperchen)" },
    "broader": [ {
        "notation": ["612.11"],
        "prefLabel": { "de": "Blut" },
        "uri": "http://dewey.info/class/612.11/e22/"
      } ],
    "narrower": [ {
        "notation": ["612.1121"], 
        "prefLabel": { "de": "Biochemie" },
        "uri": "http://dewey.info/class/612.1121/e22/" 
      },{
        "notation": ["612.1127"],
        "prefLabel": { "de": "Anzahl und Auszählung" },
        "uri": "http://dewey.info/class/612.1127/e22/" 
      } ],
    "ancestors": [ { 
        "notation": ["612.11"], 
        "prefLabel": { "de": "Blut" }, 
        "uri": "http://dewey.info/class/612.11/e22/"
      },{
        "notation": ["612.1"],
        "prefLabel": { "de": "Blut und Kreislauf" },
        "uri": "http://dewey.info/class/612.1/e22/"
      },{
        "notation": ["612"],
        "prefLabel": { "de": "Humanphysiologie" },
        "uri": "http://dewey.info/class/612/e22/"
      },{
        "notation": ["61"],
        "prefLabel": { "de": "Medizin & Gesundheit" },
        "uri": "http://dewey.info/class/61/e22/"
      },{
        "notation": ["6"],
        "prefLabel": { "de": "Technik, Medizin, angewandte Wissenschaften" },
        "uri": "http://dewey.info/class/6/e22/"
      } ],
    "inScheme": [ {
        "uri":"http://dewey.info/scheme/version/e22/"
      },{
        "uri": "http://dewey.info/scheme/edition/e22/"
      },{
        "uri": "http://dewey.info/scheme/ddc/"
      } ]
}

A concept from the abbbridget Dewey Decimal Classification, edition 23, in three languages:

{
    "uri": "http://dewey.info/class/641.5/e23/",
    "type": ["http://www.w3.org/2004/02/skos/core#Concept"],
    "notation": ["641.5"],
    "inScheme": [{"uri":"http://dewey.info/edition/e23/"}],
    "prefLabel": {
        "en": "Cooking",
        "de": "Kochen",
        "it": "Cucina"
    },
    "broader": [
        {
            "uri": "http://dewey.info/class/641/e23/",
            "notation": ["641"],
            "prefLabel": {
                "en": "Food and drink",
                "de": "Essen und Trinken",
                "it": "Cibi e bevande"
            }
        }
    ],
    "narrower": [
        {
            "uri": "http://dewey.info/class/641.502/e23/",
            "notation": ["641.502"],
            "prefLabel": {
                "en": "Miscellany",
                "de": "Verschiedenes",
                "it": "Miscellanea"
            }
        },
        {
            "uri": "http://dewey.info/class/641.508/e23/",
            "notation": ["641.508"],
            "prefLabel": {
                "en": "Cooking with respect to kind of persons",
                "de": "Kochen im Hinblick auf Personengruppen",
                "it": "Cucina in riferimento a categorie di persone"
            }
        },
        {
            "uri": "http://dewey.info/class/641.509/e23/",
            "notation": ["641.509"],
            "prefLabel": {
                "en": "Historical, geographic, persons treatment",
                "de": "Hostorische, geographische, personenbezogene Behandlung",
                "it": "Storia, geografia, persone"
            },
            "narrower": [
                {
                    "uri": "http://dewey.info/class/641.5092/e23/",
                    "notation": ["641.5092"],
                    "prefLabel": {
                        "en": "Cooks",
                        "de": "Köche",
                        "it": "Cuochi"
                    }
                }
            ]
        },
        {
            "uri": "http://dewey.info/class/641.59/e23/",
            "notation": ["641.59"],
            "prefLabel": {
                "en": "Cooking characteristic of specific geographic environments, ethnic cooking",
                "de": "Merkmale der Küche einzelner geografischer Umgebungen, ethnische Küche",
                "it": "Cucina tipica di specifici ambienti geografici, cucina etnica"
            }
        }
    ]
}

Mappings

Multiple mappings from one concept (612.112 in DDC) to GND.

{
    "type": ["http://www.w3.org/2004/02/skos/core#closeMatch"],
    "fromScheme": {"uri":"http://dewey.info/scheme/edition/e22/"},    
    "toScheme": {"uri":"http://d-nb.info/gnd/7749153-1"},
    "from": {
        "memberSet": [ {
            "uri": "http://dewey.info/class/612.112/e22/",
            "notation": ["612.112"]
        } ]
    },
    "to": {
        "memberSet": [ {
            "uri": "http://d-nb.info/gnd/4074195-3",
            "preflabel": { "de": "Leukozyt" }
        } ]
    }
}
{
    "fromScheme": {"uri":"http://dewey.info/scheme/edition/e22/"},
    "from": {
        "memberSet": [ {
            "uri": "http://dewey.info/class/612.112/e22/",
            "notation": ["612.112"]
        } ]
    },
    "toScheme": {"uri":"http://d-nb.info/gnd/7749153-1"},
    "to": {
        "memberChoice": [ {
            "uri": "http://d-nb.info/gnd/4074195-3",
            "preflabel": { "de": "Leukozyt" }
          },{
            "uri": "http://d-nb.info/gnd/4141893-1",
            "preflabel": { "de": "Alkalische Leukozytenphosphatase" }
          },{
            "uri": "http://d-nb.info/gnd/7606617-4",
            "preflabel": { "de": "Blutlymphozyt" }
          },{
            "uri": "http://d-nb.info/gnd/4158047-3",
            "preflabel": { "de": "Granulozyt" }
          },{
            "uri": "http://d-nb.info/gnd/4227943-4",
            "preflabel": { "de": "Leukozytenadhäsion" }
          },{
            "uri": "http://d-nb.info/gnd/4166696-3",
            "preflabel": { "de": "Leukozytenphosphatase" }
          },{
            "uri": "http://d-nb.info/gnd/4285013-7",
            "prefLabel": { "de": "Monozyt" }
        } ]
    },
    "mappingRelevance": 0.5
}

This version: http://gbv.github.io/jskos/jskos-9596bec.html (2016-12-02 21:00:56 +0100)
Latest version: http://gbv.github.io/jskos/

Created with makespec