Skosify documentation

Python script for converting to SKOS.

This program accepts a thesaurus-like vocabulary expressed as RDFS, OWL or SKOS as input. It produces a clean SKOS representation, which attempts to represent the input data losslessly using SKOS best practices. When given SKOS as input, it will be cleaned up, validated and enriched to follow the SKOS specification and related best practices.


Skosify requires Python 3.6+.

pip install --upgrade skosify


As command line script:

skosify myvoc.owl -o myvoc-skos.ttl --label "My Ontology"

This will read the file myvoc.owl in RDF/XML format and write SKOS file myvoc-skos.ttl in Turtle format, setting the name of the Concept Scheme to My Ontology.

Run skosify --help for more usage information.

As Python library:

import skosify  # contains skosify, config, and infer

voc = skosify.skosify('myontology.owl', label='My Ontology')
voc.serialize(destination='myontology-skos.rdf', format='xml')

rdf = Graph()
config = skosify.config('owl2skos.cfg')
voc = skosify.skosify(rdf, **config)

skosify.infer.skos_hierarchical(rdf, narrower=True)
skosify.infer.skos_transitive(rdf, narrower=True)


See the API Reference for documentation of the public API of this module. Everything not listed there might change in a future version.

Additional documentation can be found in the GitHub project wiki

Additional scripts

The scripts directory contains two additional scripts to be used together with Skosify:

  • skosify.cgi a web application to use Skosify
  • a command line client to download RDF via a SPARQL endpoint

Author and Contributors

  • Osma Suominen
  • Jakob Voß
  • Dan Michael O. Heggø
  • Alex Kourijoki

See also

See background for history, related works, publications etc.