The Open Anzo Project

Semantic Application Middleware

Welcome

Welcome to the Open Anzo project. Anzo is an open source enterprise-featured RDF store and service oriented middleware platform that provides support for multiple users, distributed clients, offline work, real-time notification, named-graph modularization, versioning, access controls, and transactions with preconditions. Java, .NET and Javascript developers will discover a host of features we believe are necessary for the creation of sophisticated Semantic technology based applications. If you are interested in participating in the project please join the mail-list.

At the center of a Anzo system is a server capable of storing many millions of RDF triples in an underlying relational database (IBM DB/2, Oracle, PostGres and HSQL are currently supported). All system components are described as services connected via a semantic messaging bus, providing an architecture that allows for both scalability and the simple integration of non-Anzo stores and other 3rd party components. Client machines can query and update the RDF on the server from across the web using the Anzo client stack or a Web Service. The client stack (same API in Java, JavaScript and .NET) provides various modes of operation including embedding an Anzo server within the client, running all operations against a remote server, or running against locally persisted data. Open Anzo includes the following features:

Named Graphs: Partitioning of data into sets of statements that can be named with a URI and later be accessed using that named graph's URI. Replication of data to application clients is at the named graph level.

Queries: Data may be queried using SPARQL to query across the entire database or just a set of Named Graphs.

Search: Typed full-text search capabilities for text literals are supported through Glitter SPARQL queries. Text literals are indexed with, and the index also stores information about the named graph, subject, and predicate to which the literal is attached.

Security: Named graphs are secured using a role based access control system. User authentication can be delegated to external systems like LDAP.

Notification: The client receives near real-time notification of updates by triple pattern subscripition through a JMS Notification subsystem about changes to relevant triples and named graphs. Replica graphs are automatically updated.

Replication: RDF from the server may be selectively cached on client machines and data can be persisted for offline query access and performance enhancement.

Revision history: All changes to named graphs can be tracked and are available via API calls.

The project includes Glitter, a SPARQL engine independent of any particular back-end. It allows interfaces to back-end data sources to plug into the core engine and generate solutions for portions of SPARQL queries with varying granularity. The core engine orchestrates query rewriting, optimization, and execution, and composes solutions generated by the backend. An Anzo-specific backend plug-in allows SPARQL queries to be compiled to Anzo's temporal database schema.



Copyright © 2007 - 2008 OpenAnzo.org