AllegroGraph is a persistent RDF graph database.
AllegroGraph uses disk-based storage, enabling it to scale to billions of triples while maintaining
superior performance. AllegroGraph supports SPARQL, RDFS++, and Prolog reasoning from Java
AllegroGraph is a database and application framework for building Semantic Web applications. It
can store data and meta-data as triples; query these triples through various query APIs like
SPARQL (the proposed standard W3C query language) and Prolog; and apply RDFS++ reasoning
with its built-in reasoner. If more powerful reasoning is required, AllegroGraph can integrate with
Racer and its full description logic. Another alternative is to connect AllegroGraph to the ontology
builder TopBraid Composer and do reasoning with this GUI based tool. AllegroGraph 3.0 provides
a number of new exciting features: Federation, Social Network Analysis, Geospatial capabilities
and Temporal reasoning.
In RDF-land, an assertion is a statement that subject predicate object (in the context of graph)
The bulk of an AllegroGraph triple-store is composed of assertions. Though called triples for
historical reasons, each assertion has five fields:
subject (s)
predicate (p)
object (o)
graph (g)
triple-id (i)
All of s, p, o, and g are strings of arbitrary size. Of course, it would be very inefficient to store all of
the duplicated strings directly so we associate a special number (called a Unique Part Identifier or
UPI) with each unique string. The string dictionary manages these strings and UPIs and prevents
To speed queries, AllegroGraph creates indices which contain the assertions plus additional
AllegroGraph can also perform freetext searching in the assertions using its freetext indices and
Finally, AllegroGraph keeps track of deleted triples
Triple-data generally comes into AllegroGraph as strings either from pure RDF/XML (see example)
or as the more verbose but simpler N-Triple format (see example). The programmer API also makes
it easy to import data from RDBMSs, CSV or any other custom data format
For many applications, graph databases can be both more flexible and faster than RDBMSs because
You add new predicates without changing any schema
One-to-many relations are directly encoded without the indirection of tables
You never think about what to index because everything is indexed
AllegroGraph has the ability to encode values directly into its triples (thus bypassing the string
dictionary completely). This allows for both more efficient data retrieval and extremely efficient
range queries. We take advantage of this data representation in the add-on libraries for geospatial
reasoning, temporal reasoning and social network analysis.
AllegroGraph has facilities to bulk load from both N-Triples, and RDF/XML files. 1 You can create
freetext-indices while loading triples by specifying which predicates should be indexed.
Additionally, AllegroGraph supports a wide array of encoded data-types such as numbers, dates,
and geospatial coordinates. Using these data-types not only shrinks the size of your triple-store
(because the string data need not be saved) but also provides for both super-fast range queries and
geospatial queries.
Of course, you can also load triples into AllegroGraph programmatically. This can be used to
import custom data formats, or to build a triple-store incrementally. Triples can be added using
RDF syntax or AllegroGraph's special encoded data-types. Programmatically added triples can also
make use of the AllegroGraph's triple-id to perform super-efficient reification.
More detailed information available at
Architecture of AllegroGraph
There are various client options when working with the AllegroGraph Server.
The AllegroGraph RDFStore Server Edition includes the Java, Jena and Sesame clients in the
provided download. Additional clients are available below:
Python - Now part of the current release of AllegroGraph. View a presentation here
C# - Please contact [email protected]
Ruby - Part of the Active RDF project. Here is a demo, and a preliminary tutorial
Lisp - Requires the AllegroGraph Lisp Edition, see below
Browser for AllegroGraph
Gruff is a graph-based browser for AllegroGraph
Gruff is a triple-store browser that displays visual graphs of subsets of a store's resources and their
links. By selecting particular resources and predicates, you can build a visual graph that displays a
variety of the relationships in a triple-store. Gruff can also display tables of all properties of selected
resources or generate tables with SPARQL queries, and resources in the tables can be added to the
visual graph.
Gruff allows different views:
The graph view
The table view
The query view
A Graph of Types of Graphs
A Graph of Parker Posey
Free Downloads
AllegroGraph RDFStore Free Edition - The AllegroGraph RDFStore server and multiple
client options: Java, Python, Lisp, Sesame, Jena, Ruby (the Server Edition).
AllegroGraph RDFStore Free Lisp Edition - Requires downloading and installing Allegro
Common Lisp Express Edition, instructions are provided.
Gruff - A Grapher-Based Triple-Store Browser for AllegroGraph RDFStore.
TopBraid Composer - Integrated Development Environment for Semantic Web applications.
RacerPro - OWL Reasoner and Inference Server for the Semantic Web.