The ODASE™ (Ontology Driven Architecture for Software Engineering) platform is the name we have given to a set of tools that we have developed to facilitate the creation of working applications from semantic business model (an ontology), using the open standards OWL, SWRL, RDF.
The OWL+SWRL+RDF business model defines the contract between IT and Business. It contains all the concepts, rules and processes that define what the application can do. The developer then needs to access this model to build the application.
The developer accesses the OWL+SWRL+RDF business model through a generated type-safe API. The ODASE™ code generators (a.k.a “robots”) generate this API. The developer can now develop their application using the business terminology defined by the OWL+SWRL+RDF business model, and the ODASE™ platform will transparently supply the rule execution and reasoning needed to consume the model behind the generated type-safe API.
The generated API is currently available for three programming languages: Java, C# and Mercury.
The ODASE™ platform is fully compliant with the Java platform. The automatically generated code follows the JavaBean convention, and each method and class is documented using the Javadoc convention from information extracted from the OWL+SWRL+RDF business model. Allowing the developer to use the ODASE™ platform with their standard tooling, while maintaining the benefits of the ODASE™ development process.
Similarly, the ODASE™ platform is fully compliant with the .NET platform. The difference is that rather than Javadoc, Visual Studio XML Documentation is generated, and rather than following the JavaBean convention, .NET getter and setters are used.
There are two classes of development problems the developer can now face. The first class is when the model returns the correct answers but the application does the wrong thing with them. This can be debugged using the standard debugging tools in the development environment.
The second class of development problem is when the model returns incorrect answers. ODASE has developed the ODASE™ Workbench to debug these situations. The ODASE™ Workbench allows the developer to explore the set of SWRL rules and OWL reasoning which lead to the incorrect answers.
See here for a demonstration of the ODASE™ Workbench.
The facts describing the model are stored in an RDF store. The ODASE™ platform includes various RDF store implementations. For example we support storing RDF data in a SQL database, a Berkeley DB store, in memory or any combination of these. We also provide a binding to the Sesame RDF store API, which is supported by many specialized high-performance RDF store implementations.
The ODASE™ platform provides access to two different formalizations for modelling business processes: Petri Nets (using YAWL) and Linear Temporal Logic.
The developer uses an API which allows one to, among many other things:
- start a workflow
- determine the set of tasks available to be done
- indicate that a task has been started
- indicate that a task has been finished
The ODASE™ platform has a tight integration with the Apache Wicket framework, allowing the rapid development of ontology driven AJAX web application.
The ODASE™ platform is a simple and elegant architecture. It consists of a number of interchangeable components for reasoning, rule execution and data storage. Each of the above components consume and generate RDF, this allows all of the communication between components to be on a universal RDF bus.
The architecture is also usable to provide a service oriented architecture. Services request information about or take some action on the model, and return a description of what they have done. The request and response can thus be encoded as RDF and the universal RDF bus can be used to supply the service.
The generic parts of the ODASE™ platform are written in the programming language Mercury. Using a logic programming language minimizes the impedance mismatch between the modelling language and the programming language. Another reason for using Mercury is its strong type and mode systems which make it easier to engineer complex systems that are also robust and efficient. Mercury can be compiled to Java, .NET or C. This makes it easy to integrate ODASE™ based applications with Java, .NET or native C code. We also support integration with other programming languages and systems through Google Protocol Buffers or just plain old XML.