SKOS Play is an application to render and visualise thesaurus, taxonomies or controlled vocabularies expressed in
With SKOS Play you can print Knowledge Organization Systems that use the SKOS data model in HTML or PDF documents, and
visualize them in graphical representations. SKOS Play is intended to demonstrate some of the possibilities of enterprise vocabularies usage and web of data
With SKOS Play you can also generate SKOS files from Excel spreadsheets.
Yes, the code is published on Github.
SKOS Play has for the time being a
CC-BY-SA licence :
Thomas Francart for Sparna.
SKOS is a data model to share and link knowledge organisation systems on the Web. This model is defined by the
Use the SKOS generator included in SKOS Play.
Try Tematres (open-source), Ginco (open-source).
There are also commercial solutions of course.
# declare this header in the top of the file
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
# modify this prefix to suit your namespace
@prefix me: <http://www.exemple.com/> .
# declare a concept scheme that represents the thesaurus, one time at the top of the file
me:MyThesaurus a skos:ConceptScheme .
me:MyThesaurus skos:prefLabel "Name of the thesaurus here"@en .
# then declare concepts. Here is one
me:Vehicle a skos:Concept .
# for each concept you need to say it is part of the thesaurus
me:Vehicle skos:inScheme me:MyThesaurus .
# and then declare its preferred label (the one that will appear on-screen)
me:Vehicle skos:prefLabel "Vehicle"@en .
# here is a second concept
me:Car a skos:Concept .
me:Car skos:inScheme me:MyThesaurus .
me:Car skos:prefLabel "Car"@en .
# this is an alternate label, you can put multiple ones by repeating the line
me:Car skos:altLabel "Automobile"@en .
# and then say that me:Car is a more specific concept than me:Vehicle
me:Car skos:broader me:Vehicle .
# and here is a third concept
me:123456 a skos:Concept .
me:123456 skos:inScheme me:MyThesaurus .
me:123456 skos:prefLabel "Bicycle"@en .
me:123456 skos:altLabel "Bike"@en .
me:123456 skos:altLabel "Two-wheeler"@en .
me:123456 skos:broader me:Vehicle .
SKOS Play is based on Eclipse RDF4J, the only sensible choice for enterprise semantic technologies
Data visualisation are created with d3js, PDF with Apache FOP.
All of that uses SPARQL to query the data
Schematically, there are 4 layers in the application :
Good question. SKOS data model is flexible and SKOS data can come in multiple variations, choices has to be made.
Part of the algorithm followed by SKOS Play relies on the interpretation of Collections as ThesaurusArray.
A ThesaurusArray is a Collection that is explicitely typed as such, or for which we find that it contains only Concepts that have the same parent, or Concepts
that have no parent.
Here is the algorithm that SKOS Play follows to try to accomodate diverse situations :
It depends on the data : the list of languages is dynamically fetched from the data.
All of the syntaxes supported by RDF4J : RDF/XML, Turtle, N3, N-triples, TriG, TriX...
For the time being, SKOS Play is limited to 5000 concepts, to avoid overloading the server.
Theoretically, there is no limit, but in practice, for alphabetical or hierarchical rendering, I would avoid
more than 5000 concepts to limit the output file size. For dataviz, I would say that above 2000 concepts you
can't see anything and you have big latencies when zooming.
Yes ! there is a dedicated option to read SKOS-XL labels. You can uncheck it to save some time.
There is no API. But ask a question on the forum
and express your interest, and this may be added one day in the future.