Tools for Semantic Web

A (WIP) list of tools and utilities for working with Semantic Web
published: (updated: )
by Harshvardhan J. Pandit
is part of: Semantic Web
database ontologies programming semantic-web web-dev

Validators

RDF

OWL

Converters

Triple Stores

Wikipedia page listing and comparing different triple-stores.

  • Jena Fuseki + TDB - The easiest option to get it up and running if the work is local, doesn't need to scale and is mostly development oriented. The page also has some good tutorials on SPARQL and use of triple store.
  • Openlink Virtuoso - A fast and responsive triple-store that comes ready-for-production out of the box. Setup is easy on servers, though documentation is sparse. Is the triple-store used for serving DBPedia's SPARQL queries.
  • AllegroGraph
  • MarkLogic
  • ontotext GraphDB
  • Parliament
  • RDFLib - python library with (separate) backends for persistence of graphs
  • Redland librdf - a series of libraries that also contain RDF storage module
  • Stardog

Tools, Utils, and Libraries

There are times when RDF and their ontological ilk may need to be in code, for various purposes, and need interoperability with a programming language.

Protege

This is the tool everyone and their supervisors use to model OWL ontologies. It is quite adept at handling, though the UI/UX may feel clunkk, the features are large and will be quite ample to get by with. The documentation and introduction videos/pages help with getting it up and running, but don't do a good job of explaining how to progress from there. But it's hand down the best tool for the job. There's even a (light) web version.

Exposing triples over the web

  • Pubby - a simple tool that exposes data using SPARQL DESCRIBE queries. Very simple to setup. Good way to expose datasets, but limited in scope as only one graph as such can be exposed with one instance.

Python

  • rdflib is a python library for working with RDF graphs and offers a pythonic way to do things. It supports a large array of formats, though serialising to json-ld requires another library. Persistence is possible through various backends (and additional ones available as plugins). SPARQL queries are also possible with the library, and small utilities like navigating the graph, namespaces, or datatypes are handles well.
  • Redland librdf - has a few RDF libraries, though haven't encountered anyone using them
  • SuRF - An ORM for expressing RDF nodes using Python classes
  • EYE - Euler Yet another proof Engine - performs semi-backward reasnoning and is interoperable with Cwm
  • Cwm - forward-chaining reasoner for querying, checking, transforming, and filtering
  • django-rdf-io - syncing Django models with a triple-store

Java

  • Apache Jena - I presume that this is the most popular library for dealing with RDF since most academics tend to use this (or Protege) for most of their needs.
    • ARQ - a SPARQL engine
    • Fuseki - a SPARQL endpoint
    • TDB - persistence through triple-store
    • Models for OWL
    • Inference through reasoners

dokie.li

A tool to help create 'RDFa pages', often required in (good) publications, which uses Web Annotations Data Model to provide comments, reviews, and feedbacks over articles in self-hosted format.

Documentation

LODE

LODE is a service that creates a HTML documentation page for an OWL ontology. It has reasoners, import+closure, and the ability to select a particular language from the ontology.

Widoco

Widoco is a Java tool, available as a JAR file, that uses LODE internally to generate the documentation of the ontology. It provides several additional features such as embedding a WebVOWL representation in the page, providing ToC and Introduction/Overview sections, etc.