Apache Jena is an open-source Java library for processing "Resource-Description-Framework" (RDF) data in semantic web and linked-data applications. This includes command-line tools for RDF-based applications.
Apache Jena is an open-source Java library for processing Resource-Description-Framework (RDF) data in semantic web and linked-data applications. This includes command-line tools for RDF-based applications.
Links
- Home page: https://jena.apache.org/
- RDF API: https://jena.apache.org/documentation/rdf/index.html
- ARQ - A SPARQL Processor for Jena: https://jena.apache.org/documentation/query/index.html
- TDB Triple Store: https://jena.apache.org/documentation/tdb/index.html
- FUSESKI Fuseki: serving RDF data over HTTP: https://jena.apache.org/documentation/serving_data/index.html
- OWL Jena Ontology API: https://jena.apache.org/documentation/ontology/
- Interence API: https://jena.apache.org/documentation/inference/index.html
Summary
Jena is an open-source Java library for processing RDF data. Originally developed by HP Labs, the project was accepted by Apache as an incubator project in 2010, and graduated from the incubator to become Apache Jena in April 2012. RDF is a standard notation for representing information about things in the world, and especially resources on the World Wide Web. RDF was developed by the W3C as part of its semantic web activity. Related W3C standards include the query language SPARQL and ontology language OWL.
RDF builds representations from a simple basic propositional structure, in which some object stands in some named relation to some subject. For example,
StackOverflow is-about programming-questions
Here, StackOverflow is the subject, the category programming questions is the object, and the named predicate denoting the relationship between subject and object is is about. In order to work effectively with resources on the WWW, names of things, including names of predicates, are URI's, so we might actually write the previous example using http://www.stackoverflow.com
as the subject, the Dublin Core property has subject as the predicate and the DBPedia resource for computer programming as the object. Thus:
<http://www.stackoverflow.com>
<http://purl.org/dc/terms/subject>
<http://dbpedia.org/resource/Category:Computer_programming>
This basic building block of RDF representations has three elements, subject, predicate and object, and so is often referred to as a triple, and a data structure for storing triples is typically called a triplestore. Since the object of one triple can be the subject of another, a graph structure can be built to represent quite complex descriptions.
Jena includes parsers for all of the main encoding syntaxes for RDF triples: RDF/XML, Turtle, N-Triples and RDFa, and generators for the first three (RDFa is embedded in an HTML document, so cannot be generated simply by serializing an RDF graph). Jena has a complete implementation of the SPARQL query language for RDF, and tracks recent decisions by the relevant W3C working groups. Jena also includes a convenience API and rule-based reasoner for handling OWL ontologies, though is currently restricted to version 1 of OWL. The rule engine can also be used with custom rule-sets developed by the user. Jena's storage strategies for RDF graphs range from simple in-memory data structures to custom persistent stores using B-trees or building on top of existing relational engines. Jena also includes a range of command-line tools to assist developers with a variety of standard tasks, from checking RDF documents to initializing persistent stores.
Questions tagged with the Jena tag can be about any aspect of programming semantic web applications using the Jena library. General questions about the semantic web, or about linked data applications, but not involving Jena per se should not use this tag.