Tools for Semantic Web
published: (updated: )
by Harshvardhan J. Pandit
is part of: Semantic Web
database ontologies programming semantic-web web-dev
Validators
RDF
- W3 RDF Validator - requires RDF to be in XML form
- W3 RDFa Validator
- RDF Distiller - a ruby gem that validates RDF from URI. Also available as a
GET
interface. - TTL Validator - A turtle RDF validator project
- SSN Ontology Validation Service - allows uploading file or loading from URI. Also shows a tag cloud based on the graph.
- W3 ShEx Validata - validates RDF expressed against ShEx (Shape Expressions) constraints
OWL
Converters
- W3 - Converters to RDF - a (comprehensive) list of tools that convert to RDF.
- EasyRDF - allows conversion from and to a lot of formats. Can load from URI or text entered on page.
- RDF Translator
- Apache Any23 - convert anything to triples.
- RDF2RDFa - converts rdf/xml and turtle/n3 to RDFa snippets.
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.