TOOL
Jena/RIOT logo

Jena/RIOT

Apache Jena (RIOT)

Apache Jena is a free, open-source Java framework for building Semantic Web and Linked Data applications, maintained by the Apache Software Foundation as a top-level project (it originated at HP Labs in the early 2000s before moving to Apache in 2010). It provides a full RDF stack in a single ecosystem: an in-memory and persistent RDF API, a SPARQL query/update engine (ARQ), storage back-ends, inference, and a standalone server. Its core data model is the W3C RDF graph — sets of subject-predicate-object triples, extended to quads (named graphs) for datasets — making it a reference-grade implementation of RDF, RDFS, OWL, and SPARQL rather than a general graph library.

RIOT ("RDF I/O Technology") is Jena's parsing and serialization subsystem and the part most relevant to format conversion. It reads and writes the standard RDF syntaxes: Turtle, N-Triples, N-Quads, TriG, RDF/XML, JSON-LD, and RDF/JSON, plus TriX (TriX) and Jena's own binary encodings RDF Thrift and RDF Protobuf for fast parsing. RIOT parsers are streaming (except JSON-LD), can guess syntax from file extension, and transparently handle gzip/bzip2 compression. A command-line riot tool and per-language commands make Jena a practical batch converter between any pair of these RDF serializations; recent versions also support RDF-star (RDF-star). Because all these formats share one triple/quad model, conversion among them is lossless, unlike round-tripping through property-graph formats.

For storage, Jena ships TDB and the newer TDB2 — native, transactional, disk-backed triple/quad stores — and can also wrap SQL back-ends. Fuseki2 exposes datasets over HTTP as a SPARQL 1.1 endpoint (query, update, and Graph Store Protocol) with a web UI. Additional modules cover OWL/RDFS reasoning via a rule engine, an Ontology API, SHACL and ShEx shape validation, and GeoSPARQL for spatial queries.

Strengths are standards fidelity, maturity, and breadth: it is arguably the most complete RDF toolkit on the JVM and a common conversion hub, comparable in role to Python's RDFLib (Python) or .NET's dotNetRDF. Limitations: it is Java-only and relatively heavyweight, its learning curve is steep, and it is squarely an RDF tool — it does not natively model labeled property graphs (e.g. Neo4j) or non-RDF graph interchange formats such as GraphML or GML, so bridging to those worlds requires external mapping.

Graph Formats(Input & Output)

Frequently Asked Questions

What graph file formats does Jena/RIOT support?

See the list on this page — it shows every format Jena/RIOT can read, write and display.

How do I import a graph into Jena/RIOT?

Convert your file to a format Jena/RIOT can read, then open it in Jena/RIOT. Use GraphInOut to get a Jena/RIOT-compatible file in seconds.

How do I convert a file so Jena/RIOT can open it?

Use the convert links above — upload or paste your graph, pick a format Jena/RIOT accepts and download the result, right in your browser.