The Loki IA Project is a experimental project to build a IA framework in Java that can be used to develop web and java desktop applications with complex data needs.
Project Goals:
- Flexible but Structured Data Model
- Devise a flexible structuring for the data that merges deterministic modeling (such as relational) with more flexible modeling (such as XML).
- Allow localization and other application meta-data to be mixed in with traditional data so all data can be edited/managed from UI of the application.
- Allow for social organization of the data such as folksonomies
- Allow for naritive style data such as rich text or wiki text
- Model should be able to refer to itself enhancing the self descriptive properties of the system.
- Allow for versioning of data despite the lack of a central system for storing the data
- Allow for globalization of data.
- Allow for transaction processing with rollback.
- Distributed (not Centralized) Data Access
- Create a way of modeling data that can be accessed and stored across many different systems.
- Create a way to uniquely identify data entities and maintain uniqueness across multiple systems.
- Create a way of referencing and relating data across those systems.
- Integrate with XML, relational databases, and data web services (such as the ones from Google and Amazon)
- Should be easy to cache data locally for disconnected cases
- Allow the same data to be presented by multiple UIs
- Use the same data & format across: web-based UIs, desktop applications, and mobile apps.
- Isolate the UI application from the complexities of data management and storage.
- Isolate the data from application UI and navigation while allowing UI and navigation to be based on the data in an intuitive way.
Project Standards:
- Use simple java beans to hold the data.
- Use ISO standard codes.
- Allow for globalization of the application using native Java Locale and related utilities.
- Provide standard XML representations for all data modeled.