AllegroGraph, Lisp for a NoSQL World

David Margolies

This page describes a two hour tutorial being conducted at the 2010 International Lisp Conference in Sparks/Reno, Nevada, October 19-21. The fees for participation in the tutorial session are included in the regular registration fee.


Developed in Allegro Common Lisp, the Allegrograph RDFStore is a modern, high-performance, persistent RDF graph database for applications. AllegroGraph uses disk-based storage, enabling it to scale to billions of triples while maintaining high performance. AllegroGraph supports SPARQL, RDFS++, and Prolog reasoning from applications. Enterprises have begun utilizing semantic technologies and standards for knowledge representation, knowledge access and discovery. Combining this with GeoTemporal analytics is the next stage of Business Intelligence in the Enterprise.


The goal of this tutorial is to provide people with the understanding of AllegroGraph and RDF. A thorough overview of working with an RDF store will be provided. We will work with visual tools to quickly understand how to automatically create SPARQL and Prolog queries. We will also show how to express queries that involve RDFS++ reasoning, geospatial primitives, temporal primitives and social network concepts. We will be using W3C standards based technology (AllegroGraph) for this tutorial but the concepts learned will transfer to other Semantic Web solutions.


  1. (15 minutes) What is RDF, what is AllegroGraph, and why Lisp

  2. (10 minutes) Basic RDF Store Operations
    1. Creating, opening and closing an RDF store
    2. Adding triples manually or by loading from an RDF file
    3. Deleting triples
    4. Getting triples out of a triple store
  3. (5 minutes) Named Graph: working with the fourth element of an RDF statement

    Many of the RDF stores now in existence are quad stores but for historical reasons we still call them triple stores.

  4. (30 minutes) Query Languages and Reasoning Introduction
    • SPARQL: the W3C standard query language for the Semantic Web. SPARQL's syntax resembles SQL but is more powerful, enabling queries over multiple disparate, remote or local data sources. It offers a relational, pattern-based approach to retrieving data from an RDF store.
    • RDFS++ Reasoning. Description logic or OWL reasoners are good at handling (complex) ontologies, they are usually complete (give all the possible answers to a query) but have completely unpredictable execution times when the number of individuals increases beyond millions. In RDFS++ practice Business Intelligence is done over large numbers and there is need for more scalable reasoning. RDFS++ reasoning supports all the RDFS predicates and some of OWL's. It is not complete but it has predictable and fast performance. We'll cover the supported predicates:

      1. rdf:type and rdfs:subClassOf
      2. rdfs:range and rdfs:domain
      3. rdfs:subPropertyOf
      4. owl:sameAs
      5. owl:inverseOf
      6. owl:TransitiveProperty
  5. (20 minutes) Lisp clients

    There are clients to the AllegroGraph server from many languages, including Java, Python, Lisp, C#, Perl, and Ruby. We will describe the Lisp client in detail.

  6. (10 minutes) Prolog/Lisp: Creating rules and querying the triple store with Prolog/Lisp.

    RDF and OWL are powerful in themselves, but for more complex Business Intelligence questions you need a rule-based language. We will show how to use RDF-Prolog.

  7. (10 minutes) Full text indexing and how to query it with SPARQL and Prolog/Lisp

  8. (10 minutes) Social Network Analysis

    Learn how to apply Social Networking Analysis algorithms. We will show examples of how to find relationships between people, compute the strengths of groups; etc. Typical algorithms that we will discuss are both classical search algorithms and particular social network algorithms.

  9. (10 minutes) Spatial, Temporal Reasoning and Graph Visualization Techniques

Copyright © 2014 Franz Inc., All Rights Reserved | Privacy Statement
Delicious Google Buzz Twitter Google+