Getting started with Apache Jena

Apache Jena (or Jena in short) is a free and open source Java framework for building semantic web and Linked Data applications. The framework is composed of different APIs interacting together to process RDF data. If you are new here, you might want to get started by following one of the tutorials. You can also browse the documentation if you are interested in a particular topic.

jena logoTutorials

  • RDF API tutorial - you will learn the essence of the semantic web and the graph representation behind RDF.
  • SPARQL tutorial - will guide you to formulate expressive queries over RDF data.
  • Ontology API - illustrates the usage of advanced semantic web features such as reasoning over your data using OWL.
  • Finally, some of the tutorials are also available in Traditional Chinese, Portuguese and French.

jena logoDocumentation

The following topics are covered in the documentation:

  • The RDF API - the core RDF API in Jena
  • SPARQL - querying and updating RDF models using the SPARQL standards
  • Fuseki - SPARQL server which can present RDF data and answer SPARQL queries over HTTP
  • Assembler - describing recipes for constructing Jena models declaratively using RDF
  • Inference - using the Jena rules engine and other inference algorithms to derive consequences from RDF models
  • Javadoc - JavaDoc generated from the Jena source
  • Text Search - enhanced indexes using Lucene or Solr for more efficient searching of text literals in Jena models and datasets
  • I/O - notes on input and output of triples to and from Jena models
  • How-To’s - various topic-specific how-to documents
  • Ontology - support for handling OWL models in Jena
  • TDB - a fast persistent triple store that stores directly to disk
  • SQL DB - constructing persistent Jena models using SQL databases as the storage layer
  • Tools - various command-line tools and utilities to help developers manage RDF data and other aspects of Jena

jena logoFramework Architecture

The interaction between the different APIs:

Jena architecture overview

jena logoOther resources

Finally, Jena committer Paolo Castagna has listed some example programs using Jena on his GitHub site.