Elmo User Guide

James Leigh

This document describes Elmo 1.0 and its use with Sesame 2.1.1. Elmo is a JavaBean pool implementation for the Sesame RDF repository, providing static JavaBean interfaces to RDF resources. Specifically, Elmo is a subject-oriented RDF entity manager that allows JavaBeans to be cast to different roles providing a unique context specific view of the subject.

As systems become more integrated and provide diverse roles to a broader market, traditional object-oriented and component-oriented systems can become bloated with complex interfaces and behaviours that increase expenses for software maintenance. Integrated domain driven designs often require context-specific views of shared multi-dimensional resources. These resources are a challenge to model through polymorphism alone and require a higher level of concern management.

As a subject-oriented system, Elmo provides a way to group common behaviours and separate roles into unique interfaces and reusable classes. Domain models built with Elmo are simpler and are better able to express their design concept. This leads to lower maintenance costs and more flexible software.


Table of Contents
Introduction
License
Installation
Application Programming Interface
ElmoModule
SesameManagerFactory
ElmoManager
ElmoQuery
Concepts
Role Annotations
Registering Concepts & Behaviours
Behaviours
Interceptors
Factory Classes
Literals
RDF Collections
DynaBeans
Elmo Tools
Creating Concepts and Ontologies
Elmo Scutter
Elmo Smusher
Common Design Patterns
Adaptor
Aspects
Chain of Responsibility
Cohesion
Context Specific Data
Data Localization
Hyperslices
Dependency Injection
Observer
Rules
Serialization
Strategy
Transactions and Concurrency
Transaction Isolation
Undo Support
Performance and Optimizations
Serializing Literal Values
AugurRepository and ReadAheadRepository
ResourceManager
Class Loading
Library Integration
Sesame
javax.persistence (JPA)
Tapestry
Examples
FOAF Example
GEDCOM Example
Known Limitations
Truth Maintenance for @equivalent and @inverseOf
@disjointWith on Concepts
HTTP Repository
Frequently Asked Questions
Do I need a database to use Elmo?
Are there any alternatives to creating my own concepts?
How can I remove a concept from a entity?
Why aren't Entities serializable?
I already have existing JavaBeans; can they be moved into an Elmo entity pool?
How can I have two implementations of the same method?
What happens when two concepts having the same property name are applied to the same subject?
How can I implement cross cutting concerns in Elmo?
How do I trigger events before and after a property change?
How should Entities be managed in a J2EE environment?
How can I implement an audit log with Elmo?
How do I setup a security domain over sensitive data?
Glossary
References
List of Figures
1. [1]
2. [2]
3. [1]