AllegroGraph
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 applications.
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 duplication.
To speed queries, AllegroGraph creates indices which contain the assertions plus additional information.
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 http://www.iterasi.net/openviewer.aspx?sqrlitid=g2phy2vjr0kvgrnzi67q1a
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
· 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.