DBDB.io The Encyclopedia of Database Systems · Est. 2017
Database of Databases

Database Entry

AllegroGraph


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 and Prolog, and apply RDFS++ reasoning with its built-in reasoner. It's a high performance, persistent RDF store to support Social Network Analysis, Geospatial capabilities, Temporal reasoning, etc.[03]

Developer
Country of Origin
US
Start Year
2004
Project Type
Commercial
Written in
Lisp
Supported Languages
C#, Clojure, Java, Lisp, Perl, Python, Ruby, Scala
Operating Systems
Linux, macOS, Windows
License
Proprietary

Database Entry

AllegroGraph


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 and Prolog, and apply RDFS++ reasoning with its built-in reasoner. It's a high performance, persistent RDF store to support Social Network Analysis, Geospatial capabilities, Temporal reasoning, etc.[03]

History[04]


The first version of AllegroGraph was made available at the end of 2004 by Franz Inc.. It is an ongoing project with the latest stable release 6.3.0 in October 24, 2017. The idea behind developing AllegroGraph as a graph database was to store your relationships as RDF triples, a standard format for Linked Data.

Checkpoints[05][06]


While a checkpoint is operating, commits are blocked. Setting the CheckpointInterval to a longer interval reduces how often checkpoints occur, thereby reducing the impact on commits. When a checkpoint occurs, the system updates and cleans up repository information so that the respository is in a known state. When recovering from server terminations, the system starts at the most recent complete checkpoint and works through to the current (uncheckpointed) state.

Concurrency Control[03]


No triple locking is performed by AllegroGraph. It uses snapshot isolation and it is possible that a triple that is being read in a transaction could be deleted in a concurrent transaction. It cannot guarantee write concurrency

Data Model[04]


AllegroGraph is a closed source triplestore which is designed to store RDF triples, a standard format for Linked Data.

Foreign Keys[07]


AllegroGraph does not allow for user-defined consistency rules (like, say, foreign key constraints in a relational database)

Indexes[08][09]


AllegroGraph builds indices automatically so that any query can find its first match in a single I/O operation. The standard seven indices are enabled when you create a triple store. What matters with an index is the sort order of the triples. Besides triple Indices, AllegroGraph can also build full-text indices of the strings of the objects associated with a set of predicates that you specify.

Isolation Levels[07]


Every transaction sees a snapshot of the persistent database state as of the time when the transaction is started. During the transaction, it can change the persistent state without affecting the snapshot of others. When finishes, any updates made by concurrent transactions are visible.

Logging[10]


When the commit operation of AllegroGraph returns, the database server will have written the updates made by the transaction to the transaction log and waited for the log I/O operation to finish. Transaction log files record all committed database changes (triple additions and deletions), along with some other information.

Query Compilation


Query Interface[11]


Users can query AllegroGraph with SPARQL, RDFS++ Reasoning or Prolog. SPARQL is the query language of choice for modern triple stores. AllegroGraph's RDFS++ reasoning supports all the RDFS predicates and some of OWL's. Prolog is an alternative query mechanism for AllegroGraph. With Prolog, you can specify queries declaratively.

Storage Architecture[12]


Storage Model[03]


It shores data as the Resource Description Framework (RDF), which breaks knowledge into assertions of subject predicate object (e.g. Andy Type Human ). These assertions are called triples. AllegroGraph doesn't restrict the contents of its triples to pure RDF. In fact, we can represent any graph data-structure by treating its nodes as subjects and objects, its edges as predicates and creating a triple for every edge.

Stored Procedures[13]


Users can use Lisp or JavaScript to define stored procedures.

System Architecture[12]


AllegroGraph follows shared-nothing model, adopts federation mechanism and flexible triple store architecture combine to make it easy to connect multiple stores together and treat them as one. When a user creates an AllegroGraph federated repository, a virtual index of the constituent stores is created and maintained in the client session to facilitate intelligent query processing and maximum performance.

Views[14]


Current graph databases such as Neo4J, AllegroGraph, and InfiniteGraph do not provide a concept for view definition and maintenance.

Citations

14 sources
  1. AllegroGraph - AllegroGraph franz.com
  2. Documentation Index | AllegroGraph 9.0.1 franz.com
  3. Introduction | AllegroGraph 9.0.1 franz.com
  4. AllegroGraph - Wikipedia wikipedia.org
  5. Replication in AllegroGraph franz.com
  6. Performance Tuning | AllegroGraph 9.0.1 franz.com
  7. Introduction | AllegroGraph 9.0.1 franz.com
  8. Triple Indices franz.com
  9. AllegroGraph Text Index franz.com
  10. Introduction | AllegroGraph 9.0.1 franz.com
  11. Introduction | AllegroGraph 9.0.1 franz.com
  12. Introduction | AllegroGraph 9.0.1 franz.com
  13. Stored Procedures | AllegroGraph 9.0.1 franz.com
  14. Making sure you're not a bot! uni-potsdam.de
Revision #22