It's Here!

BBN Technologies released Parliament™ here on SemWebCentral in June, 2009.

Documentation

Be sure to read the user guide -- it makes deploying Parliament a snap.

Other



W3C Semantic Web Logo

W3C RDF Logo

W3C OWL Logo

W3C SPARQL Logo

Welcome to Parliament™

Parliament™ is a high-performance triple store designed for the Semantic Web. Parliament was originally developed under the name DAML DB and was extended by BBN Technologies for internal use in its R&D programs. Parliament was released as an open source project under the BSD license here on SemWebCentral in June, 2009. (See here also for more information about the BSD license.)

Parliament™ is a trademark of BBN Technologies, Inc., and is so-named because a group of owls is properly called a "parliament" of owls.

Background

The Semantic Web employs a different data model than relational databases. A relational database stores data in tables (rows and columns) while RDF represents data as a list of triples of the form (subject, predicate, object). This list can also be viewed as a directed graph, where the nodes are the subjects and objects and the predicates are the edges. Accordingly, a Semantic Web data store is often called a triple store, graph store, or knowledge base.

A relational database can store a directed graph, and in fact, some graph stores are implemented as a thin interface layer wrapping a relational database. However, the query performance of such implementations is usually poor. This is because the only straightforward way to store the graph with the required level of generality is to use a single table to store all the triples, and this schema tends to defeat relational query optimizers.

Early in the Semantic Web's evolution, BBN encountered exactly this problem, and so the graph store called "Parliament" was born. The goal of Parliament was to create a storage mechanism optimized specifically to the needs of the Semantic Web, and the result was a dramatic speed boost for BBN's Semantic Web programs. Since its initial conception, Parliament has served as a core component of several projects at BBN for a number of U.S. Government customers.

Storage and Inference

Parliament implements a high-performance storage engine that is compatible with the RDF and OWL standards. However, it is not a complete data management system. Parliament is typically paired with a query processor, such as Sesame or Jena, to implement a complete data management solution that complies with the RDF, OWL, and SPARQL standards for data representation, ontology, and query, respectively.

In addition, Parliament includes a high-performance rule engine, which serves as an efficient means of inference. In other words, the rule engine applies a set of inference rules to the directed graph of data in order to derive new facts. This enables Parliament to automatically and transparently infer additional facts and relationships in the data to enrich query results. Parliament's rule engine currently implements a subset of SWRL.

Parliament Architecture

Figure 1 below depicts the layered architecture of Parliament.

Layered Parliament Architecture
Figure 1: Layered Parliament Architecture
 

Parliament is a triple store and a rule engine, but it does not include a query processor. Therefore, it is typically paired with a third-party query processor, such as Jena or Sesame. The core of Parliament is written in C++, but the integration layers for Jena and Sesame are Java code. The Jena integration includes some useful extras, such as support for named graphs and temporal and geospatial indexes.