diff --git a/controller/RestController.php b/controller/RestController.php index 88b97024a..da79d78b7 100644 --- a/controller/RestController.php +++ b/controller/RestController.php @@ -96,62 +96,7 @@ public function vocabularies($request) return $this->returnJson($ret); } - //gives the history of thesaurus versions - public function history($request){ - - $vocabMatch=array(); - $vocabId= $request->getVocab()->getId(); - $uriConcept=$request->getUri(); - $vocabVersion=$request->getVocab()->getConfig()->version(); - $vocabVersionDate=$request->getVocab()->getConfig()->versionDate(); - $lang = $request->getLang(); - $graph=array(); - $graph['uri']=$uriConcept; - foreach ($this->model->getVocabularies() as $voc) { - if($voc->getConceptInfo($uriConcept, $lang)!=null){ - array_push($vocabMatch, $voc); - } - } - foreach ($vocabMatch as $v) { - $iscurrent=false; - if($v->getId()==$vocabId) - { - $iscurrent=true; - } - $graph['hasVersion'][]=array( - 'skosmosVocab'=>$v->getId(), - 'version'=>$v->getConfig()->version(), - 'createdOn'=>$v->getConfig()->versionDate(), - 'iscurrent'=>$iscurrent - ); - } - - $ret = array_merge_recursive($this->context, array( - '@context' => array( - 'rdfs' => 'http://www.w3.org/2000/01/rdf-schema#', - 'onki' => 'http://schema.onki.fi/onki#', - 'dct' => 'http://purl.org/dc/terms/', - 'dcterms' =>'http://purl.org/dc/terms/', - 'altLabel' => 'skos:altLabel', - 'broader' => 'skos:broader', - 'dc11' => 'http://purl.org/dc/elements/1.1/', - 'dct' => 'http://purl.org/dc/terms/', - 'graph' => '@graph', - 'pav' => 'http://purl.org/pav/', - 'hiddenLabel' => 'skos:hiddenLabel', - 'inScheme' => 'skos:inScheme', - 'isothes' => 'http://purl.org/iso25964/skos-thes#', - 'prefLabel' => 'skos:prefLabel', - 'owl'=>'http://www.w3.org/2002/07/owl#', - 'lang'=>'@language', - 'related'=>'skos:related', - 'value'=>'@value' - ), - 'graph' => array($graph)) - ); - - return $this->returnJson($ret); - } + private function constructSearchParameters($request) { $parameters = new ConceptSearchParameters($request, $this->model->getConfig(), true); diff --git a/model/Vocabulary.php b/model/Vocabulary.php index 065742ebe..f4a9ceac3 100644 --- a/model/Vocabulary.php +++ b/model/Vocabulary.php @@ -176,11 +176,6 @@ public function getInfo($lang = null) if (isset($ret['owl:versionInfo'])) { // if version info availible for vocabulary convert it to a more readable format $ret['owl:versionInfo'][0] = $this->parseVersionInfo($ret['owl:versionInfo'][0]); } - - if (isset($ret['pav:hasVersion'])) { // if version info availible for vocabulary convert it to a more readable format - $ret['pav:hasVersion']['pav:version'] []= $this->parseVersionInfo($ret['pav:hasVersion'][0]); - } - // remove duplicate values foreach (array_keys($ret) as $prop) { $ret[$prop] = array_unique($ret[$prop]); @@ -614,6 +609,4 @@ public function getShortName() { public function getId() { return $this->config->getId(); } - - } diff --git a/model/VocabularyConfig.php b/model/VocabularyConfig.php index f8539927e..4885dd71e 100644 --- a/model/VocabularyConfig.php +++ b/model/VocabularyConfig.php @@ -121,14 +121,6 @@ public function getTitle($lang = null) { return $this->getLiteral('dc:title', $lang); } - public function version($lang = null) - { - return $this->getLiteral('pav:hasVersion'); - } - public function versionDate($lang = null) - { - return $this->getLiteral('pav:createdOn'); - } /** * Returns a boolean value set in the vocabularies.ttl config. diff --git a/resource/css/stylesheet.css b/resource/css/stylesheet.css deleted file mode 100644 index 40926ea79..000000000 --- a/resource/css/stylesheet.css +++ /dev/null @@ -1,222 +0,0 @@ -.headerbar-coloured { - position: absolute; - background-color: #003a80; - width: 100%; - margin: 0 0 0 15px; - height: 50px; -} -.headerbar{ - margin-top: 10px; -} -.search-vocab-text { - background-color: #a4c400; - opacity: 0.95; - height: 40px; - float: left; - text-align: right; - line-height: 40px; -} - -.header-left > h1 { - background-color: #003a80; - line-height: 50px; - margin: 0 0 0 15px; - opacity: 0.99; - overflow: hidden; -} - -.topbar-white { - background-color: #003a80; - height: 70px; - -} - -#language, #navigation{ - background-color: #a4c400; - float: right; - height: 50px; - line-height: 70px; - padding-left: 0; - padding-right: 2%; - text-align: right; - width: auto; - margin-top: 10px; -} -#logo{ - min-width: 30px; - width:6%; - display: normal; - position: absolute; -} -/* Timeline */ -.timeline, -.timeline-horizontal { - list-style: none; - padding: 20px; - position: relative; -} -.timeline:before { - top: 40px; - bottom: 0; - position: absolute; - content: " "; - width: 3px; - background-color: #eeeeee; - left: 50%; - margin-left: -1.5px; -} -.timeline .timeline-item { - margin-bottom: 20px; - position: relative; -} -.timeline .timeline-item:before, -.timeline .timeline-item:after { - content: ""; - display: table; -} -.timeline .timeline-item:after { - clear: both; -} -.timeline .timeline-item .timeline-badge { - color: #fff; - width: 54px; - height: 54px; - line-height: 52px; - font-size: 22px; - text-align: center; - position: absolute; - top: 18px; - left: 50%; - margin-left: -25px; - background-color: #7c7c7c; - border: 3px solid #ffffff; - z-index: 100; - border-top-right-radius: 50%; - border-top-left-radius: 50%; - border-bottom-right-radius: 50%; - border-bottom-left-radius: 50%; -} -.timeline .timeline-item .timeline-badge i, -.timeline .timeline-item .timeline-badge .fa, -.timeline .timeline-item .timeline-badge .glyphicon { - top: 2px; - left: 0px; -} -.timeline .timeline-item .timeline-badge.primary { - background-color: #a4c400; -} -.timeline .timeline-item .timeline-badge.info { - background-color: #003a80; -} -.timeline .timeline-item .timeline-badge.success { - background-color: #59ba1f; -} -.timeline .timeline-item .timeline-badge.warning { - background-color: #d1bd10; -} -.timeline .timeline-item .timeline-badge.danger { - background-color: #ba1f1f; -} -.timeline .timeline-item .timeline-panel { - position: relative; - width: 10%; - float: left; - right: 16px; - border: 1px solid #c0c0c0; - background: #ffffff; - border-radius: 2px; - padding: 20px; - -webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, 0.175); - box-shadow: 0 1px 6px rgba(0, 0, 0, 0.175); -} -.timeline .timeline-item .timeline-panel:before { - position: absolute; - top: 5px; - right: -16px; - display: inline-block; - border-top: 16px solid transparent; - border-left: 16px solid #c0c0c0; - border-right: 0 solid #c0c0c0; - border-bottom: 16px solid transparent; - content: " "; -} -.timeline .timeline-item .timeline-panel .timeline-title { - margin-top: 0; - color: inherit; - text-align: center; -} -.timeline .timeline-item .timeline-panel .timeline-body > p, -.timeline .timeline-item .timeline-panel .timeline-body > ul { - margin-bottom: 0; -} -.timeline .timeline-item .timeline-panel .timeline-body > p + p { - margin-top: 2px; -} -.timeline .timeline-item:last-child:nth-child(even) { - float: right; -} -.timeline .timeline-item:nth-child(even) .timeline-panel { - float: right; - left: 16px; -} -.timeline .timeline-item:nth-child(even) .timeline-panel:before { - border-left-width: 0; - border-right-width: 14px; - left: -14px; - right: auto; -} -.timeline-horizontal { - list-style: none; - position: relative; - padding: 20px 0px 20px 0px; - display: inline-block; -} -.timeline-horizontal:before { - height: 3px; - top: auto; - bottom: 26px; - left: 56px; - right: 0; - width: 100%; - margin-bottom: 20px; -} -.timeline-horizontal .timeline-item { - display: table-cell; - height: 170px; - width: 10%; - min-width: 320px; - float: none !important; - padding-left: 0px; - padding-right: 5px; - margin: 0 auto; - vertical-align: bottom; -} -.timeline-horizontal .timeline-item .timeline-panel { - top: auto; - bottom: 64px; - display: inline-block; - float: none !important; - left: 0 !important; - right: 0 !important; - width: 50%; - margin-bottom: 20px; -} -.timeline-horizontal .timeline-item .timeline-panel:before { - top: auto; - bottom: -16px; - left: 28px !important; - right: auto; - border-right: 16px solid transparent !important; - border-top: 16px solid #c0c0c0 !important; - border-bottom: 0 solid #c0c0c0 !important; - border-left: 16px solid transparent !important; -} -.timeline-horizontal .timeline-item:before, -.timeline-horizontal .timeline-item:after { - display: none; -} -.timeline-horizontal .timeline-item .timeline-badge { - top: auto; - bottom: 0px; - left: 43px; -} \ No newline at end of file diff --git a/resource/js/docready.js b/resource/js/docready.js index f1ca8e564..0eea7d1ad 100644 --- a/resource/js/docready.js +++ b/resource/js/docready.js @@ -1,6 +1,5 @@ - $(function() { // DOCUMENT READY - + var spinner = '
'+ loading_text + '
'; var searchString = ''; // stores the search field's value before autocomplete selection changes it var selectedVocabs = []; @@ -281,17 +280,10 @@ $(function() { // DOCUMENT READY updateTitle(data); updateTopbarLang(data); makeCallbacks(data); - var uri = $('.uri-input-box').html(); - getConceptVersions(uri,lang); // take the content language buttons from the response $('.header-float .dropdown-menu').empty().append($('.header-float .dropdown-menu', data).html()); - } - }); - - - return false; } ); @@ -369,9 +361,9 @@ $(function() { // DOCUMENT READY return false; } var uri = $('.uri-input-box').html(); - var redirectUrl = vocab + '/' + lang + '/page/?uri=' + uri; + var base_href = $('base').attr('href'); // see #315, #633 + var redirectUrl = base_href + vocab + '/' + lang + '/page/?uri=' + uri; window.location.replace(encodeURI(redirectUrl)); - return false; } ); diff --git a/resource/js/hierarchy.js b/resource/js/hierarchy.js index 71459450c..ece9a3711 100644 --- a/resource/js/hierarchy.js +++ b/resource/js/hierarchy.js @@ -508,7 +508,6 @@ function getTreeConfiguration() { nodeId = node.uri; json_url = (rest_base_url + vocab + '/children'); } - $.ajax({ data: params, url: json_url, @@ -522,7 +521,6 @@ function getTreeConfiguration() { } } }); - } } }); diff --git a/resource/js/timeLine.js b/resource/js/timeLine.js deleted file mode 100644 index 64248c5ca..000000000 --- a/resource/js/timeLine.js +++ /dev/null @@ -1,90 +0,0 @@ - - - -/* - * For legacy browsers that don't natively support Object.size(). - * @param {Object} obj - */ -Object.size = function (obj) { - var size = 0, key; - for (key in obj) { - if (obj.hasOwnProperty(key)) { - size += 1; - } - } - return size; -}; - - -function getAllVersions(graph,lang) { - var tab=[]; - - for (var i = 0; i < graph.length ; i++) { - console.log('graph :'+i); - var groupPage = graph[i].uri.indexOf(uriSpace) !== -1 ? graph[i].uri.substr(uriSpace.length) : '?uri=' + encodeURIComponent(graph[i].uri); - for (var k = 0; k < graph[i].hasVersion.length; k++) { - console.log('version: '+k); - console.log('version value: '+graph[i].hasVersion[k].version); - var objectInfos={ - text : graph[i].uri, - a_attr : { "href" : graph[i].hasVersion[k].skosmosVocab + '/' + lang + '/page/' + groupPage }, - version: graph[i].hasVersion[k].version, - date : graph[i].hasVersion[k].createdOn, - iscurrent : graph[i].hasVersion[k].iscurrent - }; - tab.push(objectInfos); - } - } - console.log(JSON.stringify(tab)); - return tab; -} -// adds a delay before showing the spinner configured above - function delaySpinner(loading) { - loading = setTimeout(function() { $('.history-spinner').show() }, 500); - } - -function getConceptVersions(uri,lang) { - var results=[]; - var html=''; - var loading; - var json_url = (rest_base_url + vocab + '/history'); - $.ajax({ - data: $.param({'uri': uri, 'lang' : lang}), - url: json_url, - beforeSend: delaySpinner(loading), - complete: clearTimeout(loading), - success: function (response) { - $('.history-spinner').hide(); - results= getAllVersions(response.graph,lang); - - console.log(JSON.stringify(results)); - $('.page-header').append('

Versions

'); - for(var i=0; i' - +'
' - + '
' - +'

'+results[i].version+'

' - +'

'+results[i].date+'

' - +'
' - +'
' - +''; - }else{ - html='
  • ' - +'
    ' - +'
    ' - + '
    ' - +'

    '+results[i].version+'

    ' - +'

    '+results[i].date+'

    ' - +'
    ' - +'
    ' - +'
  • '; - } - $('.concept-main #history').append(html); - } - } - }); - } - -//''+results[i].text+''+results[i].version+''+results[i].date+'' diff --git a/rest.php b/rest.php index f815aa43a..6b0e5ea89 100644 --- a/rest.php +++ b/rest.php @@ -59,9 +59,7 @@ $controller->label($request); } elseif ($parts[2] == 'lookup') { $controller->lookup($request); - } elseif ($parts[2] == 'history') { - $controller->history($request); - }elseif ($parts[2] == 'broader') { + } elseif ($parts[2] == 'broader') { $controller->broader($request); } elseif ($parts[2] == 'broaderTransitive') { $controller->broaderTransitive($request); diff --git a/swagger.json b/swagger.json index 450c1902b..2189cfcfd 100644 --- a/swagger.json +++ b/swagger.json @@ -1,1916 +1,1810 @@ { - "swagger": "2.0", - "info": { - "title": "Skosmos API", - "version": "v1", - "description": "The Skosmos REST API is a read-only interface to the data stored on the vocabulary server. The URL namespace is the base URL of the Skosmos instance followed by `/rest/v1/`. \n\nMost methods return the data as UTF-8 encoded JSON-LD, served using the `application/json` MIME type. The data consists of a single JSON object which includes JSON-LD context information (in the `@context` field) and one or more fields which contain the actual data. Some methods (`data`) return other formats (RDF/XML, Turtle, RDF/JSON) with the appropriate MIME type.\n\nThe API supports Cross-Origin Resource Sharing by setting the Access-Control-Allow-Origin HTTP header to `\"*\"` for all requests.\n\nThe API supports the JSONP convention of appending a callback parameter to any URL. The returned data will then be wrapped in a JavaScript function call using the function name provided as the callback parameter value. JSONP wrapped data will be served using the `application/javascript` MIME type.\n" - }, - "schemes": [ - "http", - "https" - ], - "basePath": "/rest/v1", - "produces": [ - "application/rdf+xml", - "text/turtle", - "application/ld+json", - "application/json" - ], - "paths": { - "/vocabularies": { - "get": { - "summary": "Available vocabularies", - "parameters": [ - { - "name": "lang", - "in": "query", - "description": "language of labels, e.g. \"en\" or \"fi\"", - "required": true, - "type": "string" - } - ], - "produces": [ - "application/json" - ], - "responses": { - "200": { - "description": "a list of vocabularies on the server", - "schema": { - "$ref": "#/definitions/VocabularyList" - } - } - }, - "tags": [ - "Global methods" - ] - } + "swagger": "2.0", + "info": { + "title": "Skosmos API", + "version": "v1", + "description": "The Skosmos REST API is a read-only interface to the data stored on the vocabulary server. The URL namespace is the base URL of the Skosmos instance followed by `/rest/v1/`. \n\nMost methods return the data as UTF-8 encoded JSON-LD, served using the `application/json` MIME type. The data consists of a single JSON object which includes JSON-LD context information (in the `@context` field) and one or more fields which contain the actual data. Some methods (`data`) return other formats (RDF/XML, Turtle, RDF/JSON) with the appropriate MIME type.\n\nThe API supports Cross-Origin Resource Sharing by setting the Access-Control-Allow-Origin HTTP header to `\"*\"` for all requests.\n\nThe API supports the JSONP convention of appending a callback parameter to any URL. The returned data will then be wrapped in a JavaScript function call using the function name provided as the callback parameter value. JSONP wrapped data will be served using the `application/javascript` MIME type.\n" }, - "/search": { - "get": { - "summary": "Search concepts and collections by query term", - "parameters": [ - { - "name": "query", - "in": "query", - "description": "the term to search for e.g. \"cat*\"", - "required": true, - "type": "string" - }, - { - "name": "lang", - "in": "query", - "description": "language of labels to match, e.g. \"en\" or \"fi\"", - "required": false, - "type": "string" - }, - { - "name": "labellang", - "in": "query", - "description": "language of labels to return, e.g. \"en\" or \"fi\"", - "required": false, - "type": "string" - }, - { - "name": "vocab", - "in": "query", - "description": "vocabulary/vocabularies to limit search to, e.g. \"yso\" or \"yso allars\"", - "required": false, - "type": "string" - }, - { - "name": "type", - "in": "query", - "description": "limit search to concepts of the given type(s), e.g. \"skos:Concept\".", - "required": false, - "type": "string" - }, - { - "name": "parent", - "in": "query", - "description": "limit search to concepts which have the given concept (specified by URI) as parent in their transitive broader hierarchy", - "required": false, - "type": "string" - }, - { - "name": "group", - "in": "query", - "description": "limit search to concepts in the given group (specified by URI)", - "required": false, - "type": "string" - }, - { - "name": "maxhits", - "in": "query", - "description": "Maximum number of results to return. If not given, maxhits will default to 100. (default settable in config.inc)", - "required": false, - "type": "integer" - }, - { - "name": "offset", - "in": "query", - "description": "offset where to start in ther esult set, useful for paging the result. If not given, defaults to 0.", - "required": false, - "type": "integer" - }, - { - "name": "fields", - "in": "query", - "description": "space-separated list of extra fields to include in the results. e.g. \"related\" or \"prefLabel\" or any other skos property.", - "required": false, - "type": "string" - }, - { - "name": "unique", - "in": "query", - "description": "boolean flag to indicate that each concept should be returned only once, instead of returning all the different ways it could match (for example both via prefLabel and altLabel).", - "required": false, - "type": "string" - } - ], - "produces": [ - "application/json" - ], - "responses": { - "200": { - "description": "data of the concepts matching the search term", - "schema": { - "$ref": "#/definitions/SearchResults" + "schemes": [ + "http", + "https" + ], + "basePath": "/rest/v1", + "produces": [ + "application/rdf+xml", + "text/turtle", + "application/ld+json", + "application/json" + ], + "paths": { + "/vocabularies": { + "get": { + "summary": "Available vocabularies", + "parameters": [ + { + "name": "lang", + "in": "query", + "description": "language of labels, e.g. \"en\" or \"fi\"", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "a list of vocabularies on the server", + "schema": { + "$ref": "#/definitions/VocabularyList" + } + } + }, + "tags": [ + "Global methods" + ] } - } - }, - "tags": [ - "Global methods" - ] - } - }, - "/data": { - "get": { - "summary": "RDF data of the requested concept", - "parameters": [ - { - "name": "uri", - "in": "query", - "description": "URI of the concept whose data to return", - "required": true, - "type": "string" - }, - { - "name": "format", - "in": "query", - "description": "the MIME type of the serialization format, e.g. \"text/turtle\" or \"application/rdf+xml\"", - "required": false, - "type": "string" - } - ], - "produces": [ - "application/rdf+xml", - "text/turtle", - "application/ld+json", - "application/json" - ], - "responses": { - "200": { - "description": "the data of the requested concept" - }, - "404": { - "description": "the URI did not match any known concept" - } }, - "tags": [ - "Global methods" - ] - } - }, - "/types": { - "get": { - "summary": "Information about the types (classes) of objects contained in all vocabularies", - "parameters": [ - { - "name": "lang", - "in": "query", - "description": "language of labels, e.g. \"en\" or \"fi\"", - "required": true, - "type": "string" - } - ], - "produces": [ - "application/ld+json" - ], - "responses": { - "200": { - "description": "the data of the requested concept", - "schema": { - "$ref": "#/definitions/TypeList" + "/search": { + "get": { + "summary": "Search concepts and collections by query term", + "parameters": [ + { + "name": "query", + "in": "query", + "description": "the term to search for e.g. \"cat*\"", + "required": true, + "type": "string" + }, + { + "name": "lang", + "in": "query", + "description": "language of labels to match, e.g. \"en\" or \"fi\"", + "required": false, + "type": "string" + }, + { + "name": "labellang", + "in": "query", + "description": "language of labels to return, e.g. \"en\" or \"fi\"", + "required": false, + "type": "string" + }, + { + "name": "vocab", + "in": "query", + "description": "vocabulary/vocabularies to limit search to, e.g. \"yso\" or \"yso allars\"", + "required": false, + "type": "string" + }, + { + "name": "type", + "in": "query", + "description": "limit search to concepts of the given type(s), e.g. \"skos:Concept\".", + "required": false, + "type": "string" + }, + { + "name": "parent", + "in": "query", + "description": "limit search to concepts which have the given concept (specified by URI) as parent in their transitive broader hierarchy", + "required": false, + "type": "string" + }, + { + "name": "group", + "in": "query", + "description": "limit search to concepts in the given group (specified by URI)", + "required": false, + "type": "string" + }, + { + "name": "maxhits", + "in": "query", + "description": "Maximum number of results to return. If not given, maxhits will default to 100. (default settable in config.inc)", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "description": "offset where to start in ther esult set, useful for paging the result. If not given, defaults to 0.", + "required": false, + "type": "integer" + }, + { + "name": "fields", + "in": "query", + "description": "space-separated list of extra fields to include in the results. e.g. \"related\" or \"prefLabel\" or any other skos property.", + "required": false, + "type": "string" + }, + { + "name": "unique", + "in": "query", + "description": "boolean flag to indicate that each concept should be returned only once, instead of returning all the different ways it could match (for example both via prefLabel and altLabel).", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "data of the concepts matching the search term", + "schema": { + "$ref": "#/definitions/SearchResults" + } + } + }, + "tags": [ + "Global methods" + ] } - } }, - "tags": [ - "Global methods" - ] - } - }, - "/{vocid}/": { - "get": { - "summary": "General information about the vocabulary", - "parameters": [ - { - "name": "vocid", - "in": "path", - "description": "The Skosmos vocabulary id e.g. stw or yso", - "required": true, - "type": "string" - }, - { - "name": "lang", - "in": "query", - "description": "language of labels, e.g. \"en\" or \"fi\"", - "required": false, - "type": "string" - } - ], - "produces": [ - "application/ld+json" - ], - "responses": { - "200": { - "description": "information about the requested vocabulary", - "schema": { - "$ref": "#/definitions/VocabularyInfo" + "/data": { + "get": { + "summary": "RDF data of the requested concept", + "parameters": [ + { + "name": "uri", + "in": "query", + "description": "URI of the concept whose data to return", + "required": true, + "type": "string" + }, + { + "name": "format", + "in": "query", + "description": "the MIME type of the serialization format, e.g. \"text/turtle\" or \"application/rdf+xml\"", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/rdf+xml", + "text/turtle", + "application/ld+json", + "application/json" + ], + "responses": { + "200": { + "description": "the data of the requested concept" + }, + "404": { + "description": "the URI did not match any known concept" + } + }, + "tags": [ + "Global methods" + ] } - }, - "404": { - "description": "no vocabulary could be found with the requested id" - } }, - "tags": [ - "Vocabulary-specific methods" - ] - } - }, - "/{vocid}/types": { - "get": { - "summary": "Information about the types (classes) of objects in the vocabulary", - "parameters": [ - { - "name": "vocid", - "in": "path", - "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", - "required": true, - "type": "string" - }, - { - "name": "lang", - "in": "query", - "description": "language of labels, e.g. \"en\" or \"fi\"", - "required": false, - "type": "string" - } - ], - "produces": [ - "application/ld+json" - ], - "responses": { - "200": { - "description": "type information about the requested vocabulary", - "schema": { - "$ref": "#/definitions/TypeList" + "/types": { + "get": { + "summary": "Information about the types (classes) of objects contained in all vocabularies", + "parameters": [ + { + "name": "lang", + "in": "query", + "description": "language of labels, e.g. \"en\" or \"fi\"", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/ld+json" + ], + "responses": { + "200": { + "description": "the data of the requested concept", + "schema": { + "$ref": "#/definitions/TypeList" + } + } + }, + "tags": [ + "Global methods" + ] } - }, - "404": { - "description": "no vocabulary could be found with the requested id" - } }, - "tags": [ - "Vocabulary-specific methods" - ] - } - }, - "/{vocid}/topConcepts": { - "get": { - "summary": "Top concepts of the vocabulary", - "parameters": [ - { - "name": "vocid", - "in": "path", - "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", - "required": true, - "type": "string" - }, - { - "name": "lang", - "in": "query", - "description": "language of labels, e.g. \"en\" or \"fi\"", - "type": "string" - }, - { - "name": "scheme", - "in": "query", - "description": "concept scheme whose top concepts to return. If not given, the default concept scheme of the vocabulary will be used.", - "type": "string" - } - ], - "produces": [ - "application/ld+json" - ], - "responses": { - "200": { - "description": "type information about the requested vocabulary", - "schema": { - "$ref": "#/definitions/TopConcepts" + "/{vocid}/": { + "get": { + "summary": "General information about the vocabulary", + "parameters": [ + { + "name": "vocid", + "in": "path", + "description": "The Skosmos vocabulary id e.g. stw or yso", + "required": true, + "type": "string" + }, + { + "name": "lang", + "in": "query", + "description": "language of labels, e.g. \"en\" or \"fi\"", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/ld+json" + ], + "responses": { + "200": { + "description": "information about the requested vocabulary", + "schema": { + "$ref": "#/definitions/VocabularyInfo" + } + }, + "404": { + "description": "no vocabulary could be found with the requested id" + } + }, + "tags": [ + "Vocabulary-specific methods" + ] } - }, - "404": { - "description": "no vocabulary could be found with the requested id" - } - }, - "tags": [ - "Vocabulary-specific methods" - ] - } - }, - "/{vocid}/data": { - "get": { - "summary": "RDF data of the whole vocabulary or a specific concept", - "parameters": [ - { - "name": "vocid", - "in": "path", - "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", - "required": true, - "type": "string" - }, - { - "name": "format", - "in": "query", - "description": "The MIME type of the serialization format, e.g \"text/turtle\" or \"application/rdf+xml\". If not specified, HTTP content negotiation (based on the Accept header) is used to determine a suitable serialization format from among the available ones.", - "required": false, - "type": "string" - }, - { - "name": "uri", - "in": "query", - "description": "URI of the desired concept. When no uri parameter is given, the whole vocabulary is returned instead.", - "required": false, - "type": "string" - } - ], - "produces": [ - "application/rdf+xml", - "text/turtle", - "application/ld+json", - "application/json" - ], - "responses": { - "200": { - "description": "the RDF data of the requested vocabulary/concept" - }, - "404": { - "description": "no vocabulary/concept could be found with the requested id/uri" - } }, - "tags": [ - "Vocabulary-specific methods", - "Concept-specific methods" - ] - } - }, - "/{vocid}/search": { - "get": { - "summary": "Finds concepts and collections from a vocabulary by query term", - "description": "Returns a list of search results. The search is performed as a case-insensitive pattern, where an asterisk (*) may be used as wildcard. E.g. \"cat*\" may return results such as \"CATCH-22\" and \"categorization\". If decoded into RDF, the result is a vocabulary fragment expressed as SKOS.", - "parameters": [ - { - "name": "vocid", - "in": "path", - "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", - "required": true, - "type": "string" - }, - { - "name": "query", - "in": "query", - "description": "the term to search for e.g. \"cat*\"", - "required": true, - "type": "string" - }, - { - "name": "lang", - "in": "query", - "description": "language of labels to match, e.g. \"en\" or \"fi\"", - "required": false, - "type": "string" - }, - { - "name": "type", - "in": "query", - "description": "limit search to concepts of the given type, e.g. \"skos:Concept\"; multiple types can be specified as a space-separated list", - "required": false, - "type": "string" - }, - { - "name": "parent", - "in": "query", - "description": "limit search to concepts which have the given concept (specified by URI) as parent in their transitive broader hierarchy", - "required": false, - "type": "string" - }, - { - "name": "group", - "in": "query", - "description": "limit search to concepts in the given group (specified by URI)", - "required": false, - "type": "string" - }, - { - "name": "maxhits", - "in": "query", - "description": "Maximum number of results to return. If not given, maxhits will default to 100. (default settable in config.inc)", - "required": false, - "type": "integer" - }, - { - "name": "offset", - "in": "query", - "description": "offset where to start in ther esult set, useful for paging the result. If not given, defaults to 0.", - "required": false, - "type": "integer" - }, - { - "name": "fields", - "in": "query", - "description": "space-separated list of extra fields to include in the results. e.g. \"related\" or \"prefLabel\" or any other skos property.", - "required": false, - "type": "string" - }, - { - "name": "unique", - "in": "query", - "description": "boolean flag to indicate that each concept should be returned only once, instead of returning all the different ways it could match (for example both via prefLabel and altLabel).", - "required": false, - "type": "string" - } - ], - "produces": [ - "application/json" - ], - "responses": { - "200": { - "description": "data of the concepts matching the search term", - "schema": { - "$ref": "#/definitions/SearchResults" + "/{vocid}/types": { + "get": { + "summary": "Information about the types (classes) of objects in the vocabulary", + "parameters": [ + { + "name": "vocid", + "in": "path", + "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", + "required": true, + "type": "string" + }, + { + "name": "lang", + "in": "query", + "description": "language of labels, e.g. \"en\" or \"fi\"", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/ld+json" + ], + "responses": { + "200": { + "description": "type information about the requested vocabulary", + "schema": { + "$ref": "#/definitions/TypeList" + } + }, + "404": { + "description": "no vocabulary could be found with the requested id" + } + }, + "tags": [ + "Vocabulary-specific methods" + ] } - } }, - "tags": [ - "Vocabulary-specific methods" - ] - } - }, - "/{vocid}/lookup": { - "get": { - "summary": "Look up concepts by label", - "description": "Returns the best matching concept(s) for the given label in JSON-LD format. In case the label matches several concepts with the same precedence, all of them are returned.", - "parameters": [ - { - "name": "vocid", - "in": "path", - "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", - "required": true, - "type": "string" - }, - { - "name": "label", - "in": "query", - "description": "the label to look for, e.g. \"cat\" or \"dog\"", - "required": true, - "type": "string" - }, - { - "name": "lang", - "in": "query", - "description": "search language, e.g. \"en\" or \"fi\"", - "required": false, - "type": "string" - } - ], - "produces": [ - "application/ld+json" - ], - "responses": { - "200": { - "description": "type information about the requested vocabulary", - "schema": { - "$ref": "#/definitions/LookupResults" + "/{vocid}/topConcepts": { + "get": { + "summary": "Top concepts of the vocabulary", + "parameters": [ + { + "name": "vocid", + "in": "path", + "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", + "required": true, + "type": "string" + }, + { + "name": "lang", + "in": "query", + "description": "language of labels, e.g. \"en\" or \"fi\"", + "type": "string" + }, + { + "name": "scheme", + "in": "query", + "description": "concept scheme whose top concepts to return. If not given, the default concept scheme of the vocabulary will be used.", + "type": "string" + } + ], + "produces": [ + "application/ld+json" + ], + "responses": { + "200": { + "description": "type information about the requested vocabulary", + "schema": { + "$ref": "#/definitions/TopConcepts" + } + }, + "404": { + "description": "no vocabulary could be found with the requested id" + } + }, + "tags": [ + "Vocabulary-specific methods" + ] } - }, - "404": { - "description": "no concept could be found with the requested label" - } }, - "tags": [ - "Vocabulary-specific methods" - ] - } - }, - "/{vocid}/vocabularyStatistics": { - "get": { - "summary": "Number of Concepts and Collections in the vocabulary", - "parameters": [ - { - "name": "vocid", - "in": "path", - "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", - "required": true, - "type": "string" - }, - { - "name": "lang", - "in": "query", - "description": "language of labels, e.g. \"en\" or \"fi\"", - "required": false, - "type": "string" - } - ], - "produces": [ - "application/ld+json" - ], - "responses": { - "200": { - "description": "the concept and group counts for the vocabulary", - "schema": { - "$ref": "#/definitions/VocabularyStatistics" + "/{vocid}/data": { + "get": { + "summary": "RDF data of the whole vocabulary or a specific concept", + "parameters": [ + { + "name": "vocid", + "in": "path", + "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", + "required": true, + "type": "string" + }, + { + "name": "format", + "in": "query", + "description": "The MIME type of the serialization format, e.g \"text/turtle\" or \"application/rdf+xml\". If not specified, HTTP content negotiation (based on the Accept header) is used to determine a suitable serialization format from among the available ones.", + "required": false, + "type": "string" + }, + { + "name": "uri", + "in": "query", + "description": "URI of the desired concept. When no uri parameter is given, the whole vocabulary is returned instead.", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/rdf+xml", + "text/turtle", + "application/ld+json", + "application/json" + ], + "responses": { + "200": { + "description": "the RDF data of the requested vocabulary/concept" + }, + "404": { + "description": "no vocabulary/concept could be found with the requested id/uri" + } + }, + "tags": [ + "Vocabulary-specific methods", + "Concept-specific methods" + ] } - }, - "404": { - "description": "no vocabulary could be found with the requested id" - } }, - "tags": [ - "Vocabulary-specific methods" - ] - } - }, - "/{vocid}/labelStatistics": { - "get": { - "summary": "Number of labels by language", - "description": "Returns a list of label (skos:prefLabel, skos:altLabel and skos:hiddenLabel) counts in all the different languages.", - "parameters": [ - { - "name": "vocid", - "in": "path", - "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", - "required": true, - "type": "string" - }, - { - "name": "lang", - "in": "query", - "description": "language of labels, e.g. \"en\" or \"fi\"", - "required": false, - "type": "string" - } - ], - "produces": [ - "application/ld+json" - ], - "responses": { - "200": { - "description": "the concept and group counts for the vocabulary", - "schema": { - "$ref": "#/definitions/LabelStatistics" + "/{vocid}/search": { + "get": { + "summary": "Finds concepts and collections from a vocabulary by query term", + "description": "Returns a list of search results. The search is performed as a case-insensitive pattern, where an asterisk (*) may be used as wildcard. E.g. \"cat*\" may return results such as \"CATCH-22\" and \"categorization\". If decoded into RDF, the result is a vocabulary fragment expressed as SKOS.", + "parameters": [ + { + "name": "vocid", + "in": "path", + "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", + "required": true, + "type": "string" + }, + { + "name": "query", + "in": "query", + "description": "the term to search for e.g. \"cat*\"", + "required": true, + "type": "string" + }, + { + "name": "lang", + "in": "query", + "description": "language of labels to match, e.g. \"en\" or \"fi\"", + "required": false, + "type": "string" + }, + { + "name": "type", + "in": "query", + "description": "limit search to concepts of the given type, e.g. \"skos:Concept\"; multiple types can be specified as a space-separated list", + "required": false, + "type": "string" + }, + { + "name": "parent", + "in": "query", + "description": "limit search to concepts which have the given concept (specified by URI) as parent in their transitive broader hierarchy", + "required": false, + "type": "string" + }, + { + "name": "group", + "in": "query", + "description": "limit search to concepts in the given group (specified by URI)", + "required": false, + "type": "string" + }, + { + "name": "maxhits", + "in": "query", + "description": "Maximum number of results to return. If not given, maxhits will default to 100. (default settable in config.inc)", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "description": "offset where to start in ther esult set, useful for paging the result. If not given, defaults to 0.", + "required": false, + "type": "integer" + }, + { + "name": "fields", + "in": "query", + "description": "space-separated list of extra fields to include in the results. e.g. \"related\" or \"prefLabel\" or any other skos property.", + "required": false, + "type": "string" + }, + { + "name": "unique", + "in": "query", + "description": "boolean flag to indicate that each concept should be returned only once, instead of returning all the different ways it could match (for example both via prefLabel and altLabel).", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "data of the concepts matching the search term", + "schema": { + "$ref": "#/definitions/SearchResults" + } + } + }, + "tags": [ + "Vocabulary-specific methods" + ] } - }, - "404": { - "description": "no vocabulary could be found with the requested id" - } }, - "tags": [ - "Vocabulary-specific methods" - ] - } - }, - "/{vocid}/label": { - "get": { - "summary": "Preferred label for the requested concept", - "parameters": [ - { - "name": "vocid", - "in": "path", - "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", - "required": true, - "type": "string" - }, - { - "name": "uri", - "in": "query", - "description": "URI of the concept whose label to return", - "required": true, - "type": "string" - }, - { - "name": "lang", - "in": "query", - "description": "search language, e.g. \"en\" or \"fi\"", - "required": false, - "type": "string" - } - ], - "produces": [ - "application/ld+json" - ], - "responses": { - "200": { - "description": "preferred label for the requested concept", - "schema": { - "$ref": "#/definitions/PrefAndUri" + "/{vocid}/lookup": { + "get": { + "summary": "Look up concepts by label", + "description": "Returns the best matching concept(s) for the given label in JSON-LD format. In case the label matches several concepts with the same precedence, all of them are returned.", + "parameters": [ + { + "name": "vocid", + "in": "path", + "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", + "required": true, + "type": "string" + }, + { + "name": "label", + "in": "query", + "description": "the label to look for, e.g. \"cat\" or \"dog\"", + "required": true, + "type": "string" + }, + { + "name": "lang", + "in": "query", + "description": "search language, e.g. \"en\" or \"fi\"", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/ld+json" + ], + "responses": { + "200": { + "description": "type information about the requested vocabulary", + "schema": { + "$ref": "#/definitions/LookupResults" + } + }, + "404": { + "description": "no concept could be found with the requested label" + } + }, + "tags": [ + "Vocabulary-specific methods" + ] } - }, - "404": { - "description": "no concept could be found with the requested URI" - } }, - "tags": [ - "Concept-specific methods" - ] - } - }, - "/{vocid}/broader": { - "get": { - "summary": "Broader concepts of the requested concept", - "parameters": [ - { - "name": "vocid", - "in": "path", - "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", - "required": true, - "type": "string" - }, - { - "name": "uri", - "in": "query", - "description": "URI of the concept whose broader concept to return", - "required": true, - "type": "string" - }, - { - "name": "lang", - "in": "query", - "description": "label language, e.g. \"en\" or \"fi\"", - "required": false, - "type": "string" - } - ], - "produces": [ - "application/ld+json" - ], - "responses": { - "200": { - "description": "the broader concept(s) of the requested concept or an empty array if there are none", - "schema": { - "$ref": "#/definitions/BroaderResult" + "/{vocid}/vocabularyStatistics": { + "get": { + "summary": "Number of Concepts and Collections in the vocabulary", + "parameters": [ + { + "name": "vocid", + "in": "path", + "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", + "required": true, + "type": "string" + }, + { + "name": "lang", + "in": "query", + "description": "language of labels, e.g. \"en\" or \"fi\"", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/ld+json" + ], + "responses": { + "200": { + "description": "the concept and group counts for the vocabulary", + "schema": { + "$ref": "#/definitions/VocabularyStatistics" + } + }, + "404": { + "description": "no vocabulary could be found with the requested id" + } + }, + "tags": [ + "Vocabulary-specific methods" + ] } - }, - "404": { - "description": "no concept could be found with the requested URI" - } }, - "tags": [ - "Concept-specific methods" - ] - } - }, - "/{vocid}/broaderTransitive": { - "get": { - "summary": "Broader transitive hierarchy for the requested concept", - "parameters": [ - { - "name": "vocid", - "in": "path", - "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", - "required": true, - "type": "string" - }, - { - "name": "uri", - "in": "query", - "description": "URI of the concept whose broader transitive hierarchy to return", - "required": true, - "type": "string" - }, - { - "name": "lang", - "in": "query", - "description": "label language, e.g. \"en\" or \"fi\"", - "required": false, - "type": "string" - } - ], - "produces": [ - "application/ld+json" - ], - "responses": { - "200": { - "description": "the broader transitive hierarchy for the requested concept or an empty array if there concept does not have broaders", - "schema": { - "$ref": "#/definitions/BroaderTransitiveResult" + "/{vocid}/labelStatistics": { + "get": { + "summary": "Number of labels by language", + "description": "Returns a list of label (skos:prefLabel, skos:altLabel and skos:hiddenLabel) counts in all the different languages.", + "parameters": [ + { + "name": "vocid", + "in": "path", + "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", + "required": true, + "type": "string" + }, + { + "name": "lang", + "in": "query", + "description": "language of labels, e.g. \"en\" or \"fi\"", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/ld+json" + ], + "responses": { + "200": { + "description": "the concept and group counts for the vocabulary", + "schema": { + "$ref": "#/definitions/LabelStatistics" + } + }, + "404": { + "description": "no vocabulary could be found with the requested id" + } + }, + "tags": [ + "Vocabulary-specific methods" + ] } - }, - "404": { - "description": "no concept could be found with the requested URI" - } }, - "tags": [ - "Concept-specific methods" - ] - } - }, - "/{vocid}/narrower": { - "get": { - "summary": "Narrower concepts of the requested concept", - "parameters": [ - { - "name": "vocid", - "in": "path", - "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", - "required": true, - "type": "string" - }, - { - "name": "uri", - "in": "query", - "description": "URI of the concept whose narrower concept to return", - "required": true, - "type": "string" - }, - { - "name": "lang", - "in": "query", - "description": "label language, e.g. \"en\" or \"fi\"", - "required": false, - "type": "string" - } - ], - "produces": [ - "application/ld+json" - ], - "responses": { - "200": { - "description": "the narrower concept(s) of the requested concept or an empty array if there are none", - "schema": { - "$ref": "#/definitions/NarrowerResult" + "/{vocid}/label": { + "get": { + "summary": "Preferred label for the requested concept", + "parameters": [ + { + "name": "vocid", + "in": "path", + "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", + "required": true, + "type": "string" + }, + { + "name": "uri", + "in": "query", + "description": "URI of the concept whose label to return", + "required": true, + "type": "string" + }, + { + "name": "lang", + "in": "query", + "description": "search language, e.g. \"en\" or \"fi\"", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/ld+json" + ], + "responses": { + "200": { + "description": "preferred label for the requested concept", + "schema": { + "$ref": "#/definitions/PrefAndUri" + } + }, + "404": { + "description": "no concept could be found with the requested URI" + } + }, + "tags": [ + "Concept-specific methods" + ] } - }, - "404": { - "description": "no concept could be found with the requested URI" - } }, - "tags": [ - "Concept-specific methods" - ] - } - }, - "/{vocid}/narrowerTransitive": { - "get": { - "summary": "Narrower transitive hierarchy for the requested concept", - "parameters": [ - { - "name": "vocid", - "in": "path", - "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", - "required": true, - "type": "string" - }, - { - "name": "uri", - "in": "query", - "description": "URI of the concept whose narrower transitive hierarchy to return", - "required": true, - "type": "string" - }, - { - "name": "lang", - "in": "query", - "description": "label language, e.g. \"en\" or \"fi\"", - "required": false, - "type": "string" - } - ], - "produces": [ - "application/ld+json" - ], - "responses": { - "200": { - "description": "the narrower transitive hierarchy for the requested concept or an empty array if there concept does not have narrowers", - "schema": { - "$ref": "#/definitions/NarrowerTransitiveResult" + "/{vocid}/broader": { + "get": { + "summary": "Broader concepts of the requested concept", + "parameters": [ + { + "name": "vocid", + "in": "path", + "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", + "required": true, + "type": "string" + }, + { + "name": "uri", + "in": "query", + "description": "URI of the concept whose broader concept to return", + "required": true, + "type": "string" + }, + { + "name": "lang", + "in": "query", + "description": "label language, e.g. \"en\" or \"fi\"", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/ld+json" + ], + "responses": { + "200": { + "description": "the broader concept(s) of the requested concept or an empty array if there are none", + "schema": { + "$ref": "#/definitions/BroaderResult" + } + }, + "404": { + "description": "no concept could be found with the requested URI" + } + }, + "tags": [ + "Concept-specific methods" + ] } - }, - "404": { - "description": "no concept could be found with the requested URI" - } }, - "tags": [ - "Concept-specific methods" - ] - } - }, - "/{vocid}/related": { - "get": { - "summary": "Related concepts of the requested concept", - "parameters": [ - { - "name": "vocid", - "in": "path", - "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", - "required": true, - "type": "string" - }, - { - "name": "uri", - "in": "query", - "description": "URI of the concept whose related concept to return", - "required": true, - "type": "string" - }, - { - "name": "lang", - "in": "query", - "description": "label language, e.g. \"en\" or \"fi\"", - "required": false, - "type": "string" - } - ], - "produces": [ - "application/ld+json" - ], - "responses": { - "200": { - "description": "the related concept(s) of the requested concept or an empty array if there are none", - "schema": { - "$ref": "#/definitions/RelatedResult" + "/{vocid}/broaderTransitive": { + "get": { + "summary": "Broader transitive hierarchy for the requested concept", + "parameters": [ + { + "name": "vocid", + "in": "path", + "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", + "required": true, + "type": "string" + }, + { + "name": "uri", + "in": "query", + "description": "URI of the concept whose broader transitive hierarchy to return", + "required": true, + "type": "string" + }, + { + "name": "lang", + "in": "query", + "description": "label language, e.g. \"en\" or \"fi\"", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/ld+json" + ], + "responses": { + "200": { + "description": "the broader transitive hierarchy for the requested concept or an empty array if there concept does not have broaders", + "schema": { + "$ref": "#/definitions/BroaderTransitiveResult" + } + }, + "404": { + "description": "no concept could be found with the requested URI" + } + }, + "tags": [ + "Concept-specific methods" + ] } - }, - "404": { - "description": "no concept could be found with the requested URI" - } }, - "tags": [ - "Concept-specific methods" - ] - } - }, - "/{vocid}/children": { - "get": { - "summary": "Narrower concepts of the requested concept", - "parameters": [ - { - "name": "vocid", - "in": "path", - "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", - "required": true, - "type": "string" - }, - { - "name": "uri", - "in": "query", - "description": "URI of the concept whose narrower concepts to return", - "required": true, - "type": "string" - }, - { - "name": "lang", - "in": "query", - "description": "label language, e.g. \"en\" or \"fi\"", - "required": false, - "type": "string" - } - ], - "produces": [ - "application/ld+json" - ], - "responses": { - "200": { - "description": "Returns the children of the requested concept. The data is intended to be used in a hierarchical display.", - "schema": { - "$ref": "#/definitions/ChildrenResult" + "/{vocid}/narrower": { + "get": { + "summary": "Narrower concepts of the requested concept", + "parameters": [ + { + "name": "vocid", + "in": "path", + "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", + "required": true, + "type": "string" + }, + { + "name": "uri", + "in": "query", + "description": "URI of the concept whose narrower concept to return", + "required": true, + "type": "string" + }, + { + "name": "lang", + "in": "query", + "description": "label language, e.g. \"en\" or \"fi\"", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/ld+json" + ], + "responses": { + "200": { + "description": "the narrower concept(s) of the requested concept or an empty array if there are none", + "schema": { + "$ref": "#/definitions/NarrowerResult" + } + }, + "404": { + "description": "no concept could be found with the requested URI" + } + }, + "tags": [ + "Concept-specific methods" + ] } - }, - "404": { - "description": "no concept could be found with the requested URI" - } }, - "tags": [ - "Concept-specific methods" - ] - } - }, - "/{vocid}/groups": { - "get": { - "summary": "Concept groups in the vocabulary", - "parameters": [ - { - "name": "vocid", - "in": "path", - "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", - "required": true, - "type": "string" - }, - { - "name": "lang", - "in": "query", - "description": "label language, e.g. \"en\" or \"fi\"", - "required": false, - "type": "string" - } - ], - "produces": [ - "application/ld+json" - ], - "responses": { - "200": { - "description": "concept groups of the vocabulary", - "schema": { - "$ref": "#/definitions/GroupResult" + "/{vocid}/narrowerTransitive": { + "get": { + "summary": "Narrower transitive hierarchy for the requested concept", + "parameters": [ + { + "name": "vocid", + "in": "path", + "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", + "required": true, + "type": "string" + }, + { + "name": "uri", + "in": "query", + "description": "URI of the concept whose narrower transitive hierarchy to return", + "required": true, + "type": "string" + }, + { + "name": "lang", + "in": "query", + "description": "label language, e.g. \"en\" or \"fi\"", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/ld+json" + ], + "responses": { + "200": { + "description": "the narrower transitive hierarchy for the requested concept or an empty array if there concept does not have narrowers", + "schema": { + "$ref": "#/definitions/NarrowerTransitiveResult" + } + }, + "404": { + "description": "no concept could be found with the requested URI" + } + }, + "tags": [ + "Concept-specific methods" + ] } - }, - "404": { - "description": "no vocabulary could be found with the requested id" - } }, - "tags": [ - "Vocabulary-specific methods" - ] - } - }, - "/{vocid}/groupMembers": { - "get": { - "summary": "Members of the requested concept group", - "parameters": [ - { - "name": "vocid", - "in": "path", - "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", - "required": true, - "type": "string" - }, - { - "name": "lang", - "in": "query", - "description": "label language, e.g. \"en\" or \"fi\"", - "required": false, - "type": "string" - } - ], - "produces": [ - "application/ld+json" - ], - "responses": { - "200": { - "description": "concept groups of the vocabulary", - "schema": { - "$ref": "#/definitions/GroupMembers" + "/{vocid}/related": { + "get": { + "summary": "Related concepts of the requested concept", + "parameters": [ + { + "name": "vocid", + "in": "path", + "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", + "required": true, + "type": "string" + }, + { + "name": "uri", + "in": "query", + "description": "URI of the concept whose related concept to return", + "required": true, + "type": "string" + }, + { + "name": "lang", + "in": "query", + "description": "label language, e.g. \"en\" or \"fi\"", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/ld+json" + ], + "responses": { + "200": { + "description": "the related concept(s) of the requested concept or an empty array if there are none", + "schema": { + "$ref": "#/definitions/RelatedResult" + } + }, + "404": { + "description": "no concept could be found with the requested URI" + } + }, + "tags": [ + "Concept-specific methods" + ] } - }, - "404": { - "description": "no concept group could be found with the requested URI" - } }, - "tags": [ - "Concept-specific methods" - ] - } - }, - "/{vocid}/hierarchy": { - "get": { - "summary": "Hierarchical context of the requested concept", - "parameters": [ - { - "name": "vocid", - "in": "path", - "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", - "required": true, - "type": "string" - }, - { - "name": "uri", - "in": "query", - "description": "URI of the concept whose hierarchical context to return", - "required": true, - "type": "string" - }, - { - "name": "lang", - "in": "query", - "description": "label language, e.g. \"en\" or \"fi\"", - "required": false, - "type": "string" - } - ], - "produces": [ - "application/ld+json" - ], - "responses": { - "200": { - "description": "Returns the hierarchical context of the requested concept. The hierarchy is intended to be used in a hierarchical display.", - "schema": { - "$ref": "#/definitions/Hierarchy" + "/{vocid}/children": { + "get": { + "summary": "Narrower concepts of the requested concept", + "parameters": [ + { + "name": "vocid", + "in": "path", + "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", + "required": true, + "type": "string" + }, + { + "name": "uri", + "in": "query", + "description": "URI of the concept whose narrower concepts to return", + "required": true, + "type": "string" + }, + { + "name": "lang", + "in": "query", + "description": "label language, e.g. \"en\" or \"fi\"", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/ld+json" + ], + "responses": { + "200": { + "description": "Returns the children of the requested concept. The data is intended to be used in a hierarchical display.", + "schema": { + "$ref": "#/definitions/ChildrenResult" + } + }, + "404": { + "description": "no concept could be found with the requested URI" + } + }, + "tags": [ + "Concept-specific methods" + ] } - }, - "404": { - "description": "no concept group could be found with the requested URI" - } }, - "tags": [ - "Concept-specific methods" - ] - } - }, - "/{vocid}/history": { - "get": { - "summary": "get all versions of the requested concept", - "parameters": [ - { - "name": "vocid", - "in": "path", - "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", - "required": true, - "type": "string" - }, - { - "name": "uri", - "in": "query", - "description": "URI of the concept for which we want to obtain versions", - "required": true, - "type": "string" - }, - { - "name": "lang", - "in": "query", - "description": "label language, e.g. \"en\" or \"fi\"", - "required": true, - "type": "string" - } - ], - "produces": [ - "application/ld+json" - ], - "responses": { - "200": { - "description": "Returns versions of the requested concept. These versions are used to display the timeline", - "schema": { - "$ref": "#/definitions/History" + "/{vocid}/groups": { + "get": { + "summary": "Concept groups in the vocabulary", + "parameters": [ + { + "name": "vocid", + "in": "path", + "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", + "required": true, + "type": "string" + }, + { + "name": "lang", + "in": "query", + "description": "label language, e.g. \"en\" or \"fi\"", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/ld+json" + ], + "responses": { + "200": { + "description": "concept groups of the vocabulary", + "schema": { + "$ref": "#/definitions/GroupResult" + } + }, + "404": { + "description": "no vocabulary could be found with the requested id" + } + }, + "tags": [ + "Vocabulary-specific methods" + ] } - }, - "404": { - "description": "uri undefined" - } - }, - "tags": [ - "Concept-specific methods" - ] - } - } - }, - "definitions": { - "VocabularyList": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "vocabularies": { - "type": "array", - "items": { - "$ref": "#/definitions/Vocabulary" - } - } - }, - "required": [ - "uri", - "vocabularies" - ] - }, - "Vocabulary": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "id": { - "type": "string" - }, - "title": { - "type": "string" - } - }, - "required": [ - "uri", - "id", - "title" - ] - }, - "TypeList": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "types": { - "type": "array", - "items": { - "$ref": "#/definitions/Type" - } - } - } - }, - "Type": { - "type": "object", - "properties": { - "uri": { - "type": "string", - "description": "Concept scheme URI" - }, - "label": { - "type": "string", - "description": "Label of type" - }, - "superclass": { - "type": "string", - "description": "URI of the superclass type, which this type is an extension/specialization of" - } - }, - "required": [ - "uri" - ] - }, - "SearchResults": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "vocabularies": { - "type": "array", - "items": { - "$ref": "#/definitions/SearchResult" - } - } - }, - "required": [ - "uri", - "vocabularies" - ] - }, - "SearchResult": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "type": { - "type": "array", - "items": { - "type": "string" - } - }, - "prefLabel": { - "type": "string" - }, - "altLabel": { - "type": "string" - }, - "hiddenLabel": { - "type": "string" - }, - "lang": { - "type": "string" - }, - "vocab": { - "type": "string" - }, - "exvocab": { - "type": "string" - }, - "notation": { - "type": "string" - } - }, - "required": [ - "uri" - ] - }, - "VocabularyInfo": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "id": { - "type": "string" - }, - "title": { - "type": "string" - }, - "defaultLanguage": { - "type": "string" - }, - "languages": { - "type": "array", - "items": { - "type": "string" - } - }, - "conceptschemes": { - "type": "array", - "items": { - "$ref": "#/definitions/ConceptScheme" - } - }, - "type": { - "description": "Optional vocabulary classification e.g. 'http://publications.europa.eu/resource/authority/dataset-type/ONTOLOGY'", - "type": "array", - "items": { - "$ref": "#/definitions/PrefAndUri" - } - } - }, - "required": [ - "uri", - "id", - "title", - "defaultLanguage", - "languages", - "conceptschemes" - ] - }, - "ConceptScheme": { - "type": "object", - "properties": { - "label": { - "type": "string", - "description": "Label of concept scheme (rdfs:label)" - }, - "prefLabel": { - "type": "string", - "description": "Preferred label of concept scheme (skos:prefLabel)" - }, - "title": { - "type": "string", - "description": "Title of concept scheme (dc:title)" - }, - "uri": { - "type": "string", - "description": "Concept scheme URI" - }, - "type": { - "type": "string", - "description": "Type of object (currently always \"skos:ConceptScheme\")" - } - } - }, - "TopConcepts": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "topconcepts": { - "type": "array", - "items": { - "$ref": "#/definitions/TopConcept" - } - } - }, - "required": [ - "uri", - "topconcepts" - ] - }, - "TopConcept": { - "type": "object", - "properties": { - "uri": { - "type": "string", - "description": "URI of the concept" - }, - "label": { - "type": "string", - "description": "Label of the concept" - }, - "topConceptOf": { - "type": "string" - }, - "notation": { - "type": "string", - "description": "Notation of the concept" - }, - "hasChildren": { - "type": "boolean", - "description": "Boolean value indicating whether the concept has narrower concepts" - } - }, - "required": [ - "uri", - "hasChildren" - ] - }, - "LookupResults": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "$ref": "#/definitions/SearchResult" - } - } - }, - "required": [ - "result" - ] - }, - "VocabularyStatistics": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Skosmos vocabulary identifier" - }, - "title": { - "type": "string", - "description": "Vocabulary title" - }, - "concepts": { - "$ref": "#/definitions/CountObject" - }, - "subTypes": { - "type": "array", - "items": { - "$ref": "#/definitions/TypeCountObject" - } - }, - "conceptsGroups": { - "$ref": "#/definitions/CountObject" - } - } - }, - "CountObject": { - "type": "object", - "properties": { - "class": { - "type": "string", - "description": "Class/type of concepts" - }, - "label": { - "type": "string", - "description": "Label of the class" - }, - "count": { - "type": "integer" - } - }, - "required": [ - "count", - "class" - ] - }, - "TypeCountObject": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Class/type of concepts" - }, - "label": { - "type": "string", - "description": "Label of the type" }, - "count": { - "type": "integer" - } - }, - "required": [ - "count", - "type" - ] - }, - "LabelStatistics": { - "type": "object", - "properties": { - "uri": { - "type": "string" - }, - "id": { - "type": "string", - "description": "Skosmos vocabulary identifier" - }, - "title": { - "type": "string", - "description": "Vocabulary title" - }, - "languages": { - "type": "array", - "items": { - "$ref": "#/definitions/LanguageObject" - } - } - } - }, - "LanguageObject": { - "type": "object", - "properties": { - "language": { - "type": "string", - "description": "Language code e.g. \"fi\" or \"en\"" - }, - "literal": { - "type": "string", - "description": "language name e.g. \"Finnish\" or \"English\" (if lang parameter was used)" - }, - "properties": { - "type": "array", - "items": { - "$ref": "#/definitions/LabelCount" - } - } - }, - "required": [ - "language", - "properties" - ] - }, - "LabelCount": { - "type": "object", - "properties": { - "property": { - "type": "string", - "description": "property identifier, either \"skos:prefLabel\" or \"skos:altLabel\" or \"skos:hiddenLabel\"" - }, - "labels": { - "type": "integer", - "description": "number of labels with the specified property in the given language" - } - } - }, - "PrefAndUri": { - "type": "object", - "properties": { - "uri": { - "type": "string", - "description": "URI of the concept" - }, - "prefLabel": { - "type": "string", - "description": "Preferred label of concept" - } - }, - "required": [ - "uri", - "prefLabel" - ] - }, - "PrefAndUriAndBroader": { - "type": "object", - "properties": { - "uri": { - "type": "string", - "description": "URI of the concept" - }, - "broader": { - "type": "array", - "items": { - "type": "string", - "description": "URI of the broader concept" - } - }, - "prefLabel": { - "type": "string", - "description": "Preferred label of concept" - } - }, - "required": [ - "uri", - "prefLabel" - ] - }, - "PrefAndUriAndNarrower": { - "type": "object", - "properties": { - "uri": { - "type": "string", - "description": "URI of the concept" - }, - "narrower": { - "type": "array", - "items": { - "type": "string", - "description": "URI of the narrower concept" - } - }, - "prefLabel": { - "type": "string", - "description": "Preferred label of concept" - } - }, - "required": [ - "uri", - "prefLabel" - ] - }, - "BroaderResult": { - "type": "object", - "properties": { - "uri": { - "type": "string", - "description": "URI of the concept" - }, - "broader": { - "type": "array", - "items": { - "$ref": "#/definitions/PrefAndUri" - } - } - }, - "required": [ - "uri", - "broader" - ] - }, - "BroaderTransitiveResult": { - "type": "object", - "properties": { - "uri": { - "type": "string", - "description": "URI of the concept" - }, - "broaderTransitive": { - "type": "array", - "items": { - "$ref": "#/definitions/PrefAndUriAndBroader" - } - } - }, - "required": [ - "uri", - "broaderTransitive" - ] - }, - "NarrowerResult": { - "type": "object", - "properties": { - "uri": { - "type": "string", - "description": "URI of the concept" - }, - "narrower": { - "type": "array", - "items": { - "$ref": "#/definitions/PrefAndUri" - } - } - }, - "required": [ - "uri", - "narrower" - ] - }, - "RelatedResult": { - "type": "object", - "properties": { - "uri": { - "type": "string", - "description": "URI of the concept" - }, - "related": { - "type": "array", - "items": { - "$ref": "#/definitions/PrefAndUri" - } - } - }, - "required": [ - "uri", - "related" - ] - }, - "NarrowerTransitiveResult": { - "type": "object", - "properties": { - "uri": { - "type": "string", - "description": "URI of the concept" - }, - "narrowerTransitive": { - "type": "array", - "items": { - "$ref": "#/definitions/PrefAndUriAndNarrower" - } - } - }, - "required": [ - "uri", - "narrowerTransitive" - ] - }, - "PrefAndUriAndChildren": { - "type": "object", - "properties": { - "uri": { - "type": "string", - "description": "URI of the concept" - }, - "hasChildren": { - "type": "boolean", - "description": "Indicates whether the concept has children of its' own (narrower concepts)" - }, - "prefLabel": { - "type": "string", - "description": "Preferred label of concept" - }, - "notation": { - "type": "string", - "description": "Notation code" - } - }, - "required": [ - "uri", - "prefLabel", - "hasChildren" - ] - }, - "ChildrenResult": { - "type": "object", - "properties": { - "uri": { - "type": "string", - "description": "URI of the concept" - }, - "narrower": { - "type": "array", - "items": { - "$ref": "#/definitions/PrefAndUriAndChildren" - } - } - }, - "required": [ - "uri", - "narrower" - ] - }, - "GroupResult": { - "type": "object", - "properties": { - "uri": { - "type": "string", - "description": "URI of the concept" - }, - "groups": { - "type": "array", - "items": { - "$ref": "#/definitions/PrefAndUriAndMembers" - } - } - }, - "required": [ - "uri", - "groups" - ] - }, - "PrefAndUriAndMembers": { - "type": "object", - "properties": { - "uri": { - "type": "string", - "description": "URI of the concept" - }, - "childGroups": { - "type": "array", - "items": { - "type": "string", - "description": "Member URI" - } - }, - "hasMembers": { - "type": "boolean", - "description": "Indicates whether the group has members" - }, - "prefLabel": { - "type": "string", - "description": "Preferred label of concept" - }, - "notation": { - "type": "string", - "description": "Notation code" - } - }, - "required": [ - "uri", - "prefLabel", - "hasMembers" - ] - }, - "MembersList": { - "type": "object", - "properties": { - "uri": { - "type": "string", - "description": "URI of the concept" - }, - "type": { - "type": "array", - "items": { - "type": "string" - } - }, - "isSuper": { - "type": "boolean", - "description": "Indicates whether the group is a superGroup to an another group" - }, - "hasMembers": { - "type": "boolean", - "description": "Indicates whether the group has members" - }, - "prefLabel": { - "type": "string", - "description": "Preferred label of concept" - }, - "notation": { - "type": "string", - "description": "Notation code" - } - }, - "required": [ - "uri", - "prefLabel", - "hasMembers" - ] - }, - "GroupMembers": { - "type": "object", - "properties": { - "uri": { - "type": "string", - "description": "URI of the concept" - }, - "members": { - "type": "array", - "items": { - "$ref": "#/definitions/MembersList" - } - } - }, - "required": [ - "uri", - "members" - ] - }, - "Hierarchy": { - "type": "object", - "properties": { - "uri": { - "type": "string", - "description": "URI of the concept" - }, - "broaderTransitive": { - "type": "array", - "items": { - "$ref": "#/definitions/HierarchyResult" - } - } - }, - "required": [ - "uri", - "broaderTransitive" - ] - }, - "HierarchyResult": { - "type": "object", - "properties": { - "uri": { - "type": "string", - "description": "URI of the concept" - }, - "broader": { - "type": "array", - "items": { - "type": "string", - "description": "broader concept URI" - } - }, - "narrower": { - "type": "array", - "items": { - "$ref": "#/definitions/LabelAndUriAndChildren" - } - }, - "hasChildren": { - "type": "boolean", - "description": "Indicates whether the concept has narrower concepts" - }, - "prefLabel": { - "type": "string", - "description": "Preferred label of concept" - }, - "notation": { - "type": "string", - "description": "Notation code" + "/{vocid}/groupMembers": { + "get": { + "summary": "Members of the requested concept group", + "parameters": [ + { + "name": "vocid", + "in": "path", + "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", + "required": true, + "type": "string" + }, + { + "name": "lang", + "in": "query", + "description": "label language, e.g. \"en\" or \"fi\"", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/ld+json" + ], + "responses": { + "200": { + "description": "concept groups of the vocabulary", + "schema": { + "$ref": "#/definitions/GroupMembers" + } + }, + "404": { + "description": "no concept group could be found with the requested URI" + } + }, + "tags": [ + "Concept-specific methods" + ] + } }, - "top": { - "type": "string", - "description": "This field is present if the current concept is a toplevel concept in the vocabulary and contains the concept scheme URI" + "/{vocid}/hierarchy": { + "get": { + "summary": "Hierarchical context of the requested concept", + "parameters": [ + { + "name": "vocid", + "in": "path", + "description": "a Skosmos vocabulary identifier e.g. \"stw\" or \"yso\"", + "required": true, + "type": "string" + }, + { + "name": "uri", + "in": "query", + "description": "URI of the concept whose hierarchical context to return", + "required": true, + "type": "string" + }, + { + "name": "lang", + "in": "query", + "description": "label language, e.g. \"en\" or \"fi\"", + "required": false, + "type": "string" + } + ], + "produces": [ + "application/ld+json" + ], + "responses": { + "200": { + "description": "Returns the hierarchical context of the requested concept. The hierarchy is intended to be used in a hierarchical display.", + "schema": { + "$ref": "#/definitions/Hierarchy" + } + }, + "404": { + "description": "no concept group could be found with the requested URI" + } + }, + "tags": [ + "Concept-specific methods" + ] + } } - }, - "required": [ - "uri", - "hasChildren", - "prefLabel" - ] }, - "HistoryVersion": { - "type": "object", - "properties": { - "skosmosVocab": { - "type": "string", - "description": "vocabulary which contains the concept" - }, - "version": { - "type": "string", - "description": "vocabulary's version eg \"3.0\"" - }, - "createdOn": { - "type": "string", - "description": "date of the vocabulary version" + "definitions": { + "VocabularyList": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "vocabularies": { + "type": "array", + "items": { + "$ref": "#/definitions/Vocabulary" + } + } + }, + "required": [ + "uri", + "vocabularies" + ] + }, + "Vocabulary": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "uri", + "id", + "title" + ] + }, + "TypeList": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "types": { + "type": "array", + "items": { + "$ref": "#/definitions/Type" + } + } + } }, - "iscurrent": { - "type": "boolean", - "description": "flag to know in which version of the concept we are watching" - } - }, - "required": [ - "skosmosVocab", - "version", - "createdOn", - "iscurrent" - ] - }, - "HistoryData": { - "type": "object", - "properties": { - "uri": { - "type": "string", - "description": "URI of the concept" + "Type": { + "type": "object", + "properties": { + "uri": { + "type": "string", + "description": "Concept scheme URI" + }, + "label": { + "type": "string", + "description": "Label of type" + }, + "superclass": { + "type": "string", + "description": "URI of the superclass type, which this type is an extension/specialization of" + } + }, + "required": [ + "uri" + ] + }, + "SearchResults": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "vocabularies": { + "type": "array", + "items": { + "$ref": "#/definitions/SearchResult" + } + } + }, + "required": [ + "uri", + "vocabularies" + ] + }, + "SearchResult": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "type": { + "type": "array", + "items": { + "type": "string" + } + }, + "prefLabel": { + "type": "string" + }, + "altLabel": { + "type": "string" + }, + "hiddenLabel": { + "type": "string" + }, + "lang": { + "type": "string" + }, + "vocab": { + "type": "string" + }, + "exvocab": { + "type": "string" + }, + "notation": { + "type": "string" + } + }, + "required": [ + "uri" + ] + }, + "VocabularyInfo": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + }, + "defaultLanguage": { + "type": "string" + }, + "languages": { + "type": "array", + "items": { + "type": "string" + } + }, + "conceptschemes": { + "type": "array", + "items": { + "$ref": "#/definitions/ConceptScheme" + } + }, + "type": { + "description": "Optional vocabulary classification e.g. 'http://publications.europa.eu/resource/authority/dataset-type/ONTOLOGY'", + "type": "array", + "items": { + "$ref": "#/definitions/PrefAndUri" + } + } + }, + "required": [ + "uri", + "id", + "title", + "defaultLanguage", + "languages", + "conceptschemes" + ] + }, + "ConceptScheme": { + "type": "object", + "properties": { + "label": { + "type": "string", + "description": "Label of concept scheme (rdfs:label)" + }, + "prefLabel": { + "type": "string", + "description": "Preferred label of concept scheme (skos:prefLabel)" + }, + "title": { + "type": "string", + "description": "Title of concept scheme (dc:title)" + }, + "uri": { + "type": "string", + "description": "Concept scheme URI" + }, + "type": { + "type": "string", + "description": "Type of object (currently always \"skos:ConceptScheme\")" + } + } }, - "hasVersion": { - "type": "array", - "description": "Array of concept's versions contains version, date and the vocabulary which contains this concept", - "items": { - "$ref": "#/definitions/HistoryVersion" - } - } - }, - "required": [ - "uri", - "hasVersion" - ] - }, - "History": { - "type": "object", - "properties": { - "graph": { - "type": "array", - "items": { - "$ref": "#/definitions/HistoryData" - } - } - }, - "required": [ - "graph" - ] - }, - "LabelAndUriAndChildren": { - "type": "object", - "properties": { - "uri": { - "type": "string", - "description": "URI of the concept" + "TopConcepts": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "topconcepts": { + "type": "array", + "items": { + "$ref": "#/definitions/TopConcept" + } + } + }, + "required": [ + "uri", + "topconcepts" + ] + }, + "TopConcept": { + "type": "object", + "properties": { + "uri": { + "type": "string", + "description": "URI of the concept" + }, + "label": { + "type": "string", + "description": "Label of the concept" + }, + "topConceptOf": { + "type": "string" + }, + "notation": { + "type": "string", + "description": "Notation of the concept" + }, + "hasChildren": { + "type": "boolean", + "description": "Boolean value indicating whether the concept has narrower concepts" + } + }, + "required": [ + "uri", + "hasChildren" + ] + }, + "LookupResults": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/definitions/SearchResult" + } + } + }, + "required": [ + "result" + ] + }, + "VocabularyStatistics": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Skosmos vocabulary identifier" + }, + "title": { + "type": "string", + "description": "Vocabulary title" + }, + "concepts": { + "$ref": "#/definitions/CountObject" + }, + "subTypes": { + "type": "array", + "items": { + "$ref": "#/definitions/TypeCountObject" + } + }, + "conceptsGroups": { + "$ref": "#/definitions/CountObject" + } + } }, - "hasChildren": { - "type": "boolean", - "description": "Indicates whether the concept has children of its' own (narrower concepts)" + "CountObject": { + "type": "object", + "properties": { + "class": { + "type": "string", + "description": "Class/type of concepts" + }, + "label": { + "type": "string", + "description": "Label of the class" + }, + "count": { + "type": "integer" + } + }, + "required": [ + "count", + "class" + ] + }, + "TypeCountObject": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Class/type of concepts" + }, + "label": { + "type": "string", + "description": "Label of the type" + }, + "count": { + "type": "integer" + } + }, + "required": [ + "count", + "type" + ] + }, + "LabelStatistics": { + "type": "object", + "properties": { + "uri": { + "type": "string" + }, + "id": { + "type": "string", + "description": "Skosmos vocabulary identifier" + }, + "title": { + "type": "string", + "description": "Vocabulary title" + }, + "languages": { + "type": "array", + "items": { + "$ref": "#/definitions/LanguageObject" + } + } + } }, - "label": { - "type": "string", - "description": "Preferred label of concept" + "LanguageObject": { + "type": "object", + "properties": { + "language": { + "type": "string", + "description": "Language code e.g. \"fi\" or \"en\"" + }, + "literal": { + "type": "string", + "description": "language name e.g. \"Finnish\" or \"English\" (if lang parameter was used)" + }, + "properties": { + "type": "array", + "items": { + "$ref": "#/definitions/LabelCount" + } + } + }, + "required": [ + "language", + "properties" + ] + }, + "LabelCount": { + "type": "object", + "properties": { + "property": { + "type": "string", + "description": "property identifier, either \"skos:prefLabel\" or \"skos:altLabel\" or \"skos:hiddenLabel\"" + }, + "labels": { + "type": "integer", + "description": "number of labels with the specified property in the given language" + } + } }, - "notation": { - "type": "string", - "description": "Notation code" + "PrefAndUri": { + "type": "object", + "properties": { + "uri": { + "type": "string", + "description": "URI of the concept" + }, + "prefLabel": { + "type": "string", + "description": "Preferred label of concept" + } + }, + "required": [ + "uri", + "prefLabel" + ] + }, + "PrefAndUriAndBroader": { + "type": "object", + "properties": { + "uri": { + "type": "string", + "description": "URI of the concept" + }, + "broader": { + "type": "array", + "items": { + "type": "string", + "description": "URI of the broader concept" + } + }, + "prefLabel": { + "type": "string", + "description": "Preferred label of concept" + } + }, + "required": [ + "uri", + "prefLabel" + ] + }, + "PrefAndUriAndNarrower": { + "type": "object", + "properties": { + "uri": { + "type": "string", + "description": "URI of the concept" + }, + "narrower": { + "type": "array", + "items": { + "type": "string", + "description": "URI of the narrower concept" + } + }, + "prefLabel": { + "type": "string", + "description": "Preferred label of concept" + } + }, + "required": [ + "uri", + "prefLabel" + ] + }, + "BroaderResult": { + "type": "object", + "properties": { + "uri": { + "type": "string", + "description": "URI of the concept" + }, + "broader": { + "type": "array", + "items": { + "$ref": "#/definitions/PrefAndUri" + } + } + }, + "required": [ + "uri", + "broader" + ] + }, + "BroaderTransitiveResult": { + "type": "object", + "properties": { + "uri": { + "type": "string", + "description": "URI of the concept" + }, + "broaderTransitive": { + "type": "array", + "items": { + "$ref": "#/definitions/PrefAndUriAndBroader" + } + } + }, + "required": [ + "uri", + "broaderTransitive" + ] + }, + "NarrowerResult": { + "type": "object", + "properties": { + "uri": { + "type": "string", + "description": "URI of the concept" + }, + "narrower": { + "type": "array", + "items": { + "$ref": "#/definitions/PrefAndUri" + } + } + }, + "required": [ + "uri", + "narrower" + ] + }, + "RelatedResult": { + "type": "object", + "properties": { + "uri": { + "type": "string", + "description": "URI of the concept" + }, + "related": { + "type": "array", + "items": { + "$ref": "#/definitions/PrefAndUri" + } + } + }, + "required": [ + "uri", + "related" + ] + }, + "NarrowerTransitiveResult": { + "type": "object", + "properties": { + "uri": { + "type": "string", + "description": "URI of the concept" + }, + "narrowerTransitive": { + "type": "array", + "items": { + "$ref": "#/definitions/PrefAndUriAndNarrower" + } + } + }, + "required": [ + "uri", + "narrowerTransitive" + ] + }, + "PrefAndUriAndChildren": { + "type": "object", + "properties": { + "uri": { + "type": "string", + "description": "URI of the concept" + }, + "hasChildren": { + "type": "boolean", + "description": "Indicates whether the concept has children of its' own (narrower concepts)" + }, + "prefLabel": { + "type": "string", + "description": "Preferred label of concept" + }, + "notation": { + "type": "string", + "description": "Notation code" + } + }, + "required": [ + "uri", + "prefLabel", + "hasChildren" + ] + }, + "ChildrenResult": { + "type": "object", + "properties": { + "uri": { + "type": "string", + "description": "URI of the concept" + }, + "narrower": { + "type": "array", + "items": { + "$ref": "#/definitions/PrefAndUriAndChildren" + } + } + }, + "required": [ + "uri", + "narrower" + ] + }, + "GroupResult": { + "type": "object", + "properties": { + "uri": { + "type": "string", + "description": "URI of the concept" + }, + "groups": { + "type": "array", + "items": { + "$ref": "#/definitions/PrefAndUriAndMembers" + } + } + }, + "required": [ + "uri", + "groups" + ] + }, + "PrefAndUriAndMembers": { + "type": "object", + "properties": { + "uri": { + "type": "string", + "description": "URI of the concept" + }, + "childGroups": { + "type": "array", + "items": { + "type": "string", + "description": "Member URI" + } + }, + "hasMembers": { + "type": "boolean", + "description": "Indicates whether the group has members" + }, + "prefLabel": { + "type": "string", + "description": "Preferred label of concept" + }, + "notation": { + "type": "string", + "description": "Notation code" + } + }, + "required": [ + "uri", + "prefLabel", + "hasMembers" + ] + }, + "MembersList": { + "type": "object", + "properties": { + "uri": { + "type": "string", + "description": "URI of the concept" + }, + "type": { + "type": "array", + "items": { + "type": "string" + } + }, + "isSuper": { + "type": "boolean", + "description": "Indicates whether the group is a superGroup to an another group" + }, + "hasMembers": { + "type": "boolean", + "description": "Indicates whether the group has members" + }, + "prefLabel": { + "type": "string", + "description": "Preferred label of concept" + }, + "notation": { + "type": "string", + "description": "Notation code" + } + }, + "required": [ + "uri", + "prefLabel", + "hasMembers" + ] + }, + "GroupMembers": { + "type": "object", + "properties": { + "uri": { + "type": "string", + "description": "URI of the concept" + }, + "members": { + "type": "array", + "items": { + "$ref": "#/definitions/MembersList" + } + } + }, + "required": [ + "uri", + "members" + ] + }, + "Hierarchy": { + "type": "object", + "properties": { + "uri": { + "type": "string", + "description": "URI of the concept" + }, + "broaderTransitive": { + "type": "array", + "items": { + "$ref": "#/definitions/HierarchyResult" + } + } + }, + "required": [ + "uri", + "broaderTransitive" + ] + }, + "HierarchyResult": { + "type": "object", + "properties": { + "uri": { + "type": "string", + "description": "URI of the concept" + }, + "broader": { + "type": "array", + "items": { + "type": "string", + "description": "broader concept URI" + } + }, + "narrower": { + "type": "array", + "items": { + "$ref": "#/definitions/LabelAndUriAndChildren" + } + }, + "hasChildren": { + "type": "boolean", + "description": "Indicates whether the concept has narrower concepts" + }, + "prefLabel": { + "type": "string", + "description": "Preferred label of concept" + }, + "notation": { + "type": "string", + "description": "Notation code" + }, + "top": { + "type": "string", + "description": "This field is present if the current concept is a toplevel concept in the vocabulary and contains the concept scheme URI" + } + }, + "required": [ + "uri", + "hasChildren", + "prefLabel" + ] + }, + "LabelAndUriAndChildren": { + "type": "object", + "properties": { + "uri": { + "type": "string", + "description": "URI of the concept" + }, + "hasChildren": { + "type": "boolean", + "description": "Indicates whether the concept has children of its' own (narrower concepts)" + }, + "label": { + "type": "string", + "description": "Preferred label of concept" + }, + "notation": { + "type": "string", + "description": "Notation code" + } + }, + "required": [ + "uri", + "label", + "hasChildren" + ] } - }, - "required": [ - "uri", - "label", - "hasChildren" - ] } - } -} \ No newline at end of file +} diff --git a/view/concept-shared.twig b/view/concept-shared.twig index 7480b71a1..dd6e528ff 100644 --- a/view/concept-shared.twig +++ b/view/concept-shared.twig @@ -143,7 +143,6 @@ {% endif %} {% if concept.foreignLabels %}
    -
    {{ 'foreign prefLabels'|trans|upper }}
    {% set prevlang = '' %}{# Only displaying the language when it appears for the very first time #} @@ -172,18 +171,6 @@ JSON-LD {% if concept.date %}{{ concept.date }}{% endif %}
    - -
    -

    - -
    -
      - -
    -
    -
    {% set appendixProperties = concept.mappingProperties %}