Global architecture
The Datao architecture
Datao is a semantic web browser. It enhances the features of modern Firefox browser with Java technologies, running the semantic web stack directly on the client.
Datao is architectured in 3-tiers :
- The data layer manages the access to remote RDF data sources, either by importing them locally and merge them or by querying them remotely.
- The application layer manipulates the semantic data corresponding to the needs of the web application developper.
- The browser layer manages the interaction with the user, in term of visualization and web browsing.
Data layer
Jena
Status: available.
Jena is a semantic web library that provides semantic management and storage for both RDF and OWL data. It provides automatic import of remote RDF data into Datao and processing. It is also the necessary library for distributed remote SPARQL queries (see DARQ below).
Sesame
Status: available.
Sesame is a semantic web data store that provides semantic management and storage for RDF. This efficient triple store is available through the Jena2Sesame bridge.
Kaon2
Status: available.
Kaon2 is a highly efficient semantic management and storage for OWL. It also provides advanced reasoning and rules capabilities. This software is proprietary (ie. incompatible with the GPLv3 version of Datao) and is available through the Ontoprise company.
Virtuoso
Status: near available.
Virtuoso is a SQL/XML/RDF database. This highly scalable storage system is useful for high volumes semantic data management.
DARQ
Status: to be done.
DARQ is a query engine that provides distributed queries capabilities. It optimizes the aggregation of data by analysing the query tu be run, partition it accordingly to the data sources models and manages the local aggregation/join of remotely retrieved data.
D2RQ
Status: to be done.
D2RQ is a middleware that maps semantic queries to SQL queries in order to retrieve semantic data from legacy SQL databases.
Application layer
Visual query
Status: available.
Visual query is a way to interact with semantic data in a fully graphical way. You use drag'n drop to browse the data structure, build queries and debug them. The user can also manage the data lifecycle visually (ontologies catalog, defining the data loading and aggregation, enabling reasoning). This tool can generate SPARQL or SeRQL queries, and plans to support MetaViews should be discussed.
Cypher
Status: to be done.
Cypher is a query translator between Natural Language and SPARQL. It is an interesting alternative to visual query building with drag'n drop. Such an interface could ease rapid query building by providing a simple textual GUI and natural access to the semantic web.
Sher
Status: to be discussed.
SHER is an innovative scalable reasoner for the semantic web. It could be included as another reasoner in Datao (after Jena, Pellet and Kaon2). SHER depends on IBM DB2 internals, but it should be possible to port it to Virtuoso, which is (soon to be) available in Datao.
Pellet
Status: available.
Pellet is an efficient inference engine in the Semantic Web area. This tool has many usages to enhance semantic data, whether it is rules or OWL reasoning. This is a must-have if you want to manage high-level data models.
SemanticWiki
Status: to be discussed.
SemanticWiki is a way for a end-user to interact with Semantic Webs in the usual and fun Wiki way. Datao wishes to provide client-side tools for Semantic Wiki, such as client-side controled english processor, p2p wiki synchronization...
BPM/Workflow
Status: to be discussed.
Datao should provide a workflow-driven web applications facility. Taverna or Tersus or SemanticWebPipes could be integrated in order to fully graphically defining the actions triggered by users and how to interact with the Semantic Web.
Plugins
Status: to be done.
Datao is currently a monolithic application embedding all the components that seems to be necessary in a semantic web browser. But this architecture is not evolutive. Modern technologies such as OSGi and EventBus provide a plugin infrastructure to ensure that future needs can be added with minor integration difficulties and maximum reusability.
Browser layer
Firefox/XUL frontend
Status: ongoing (TOP priority).
Firefox is now available as a Swing component for Java (thanks to the MozSwing project). Firefox provides all the browser features required for the Datao project, and also provides the XUL framework. This framework can generate fat-client GUIs in a declarative HTML-like language. And, most importantly, the XUL framework natively relies on RDF for its internal data models. This last point definitely seals the choice of Firefox as the crucial technology for Datao browser layer.
Fresnel
Status: to be done.
Fresnel is an abstract language to link RDF data and declarative GUIs such as HTML or XUL. Datao should provide a GUI to ease the development of Fresnel templates.
Xenon
Status: to be discussed.
Xenon is a research project to define a stylesheet language for RDF semantic data. Datao should provide a (visual?) development environment for Xenon templates.
Datao is available as a free software, under AGPLv3 licence.
Click here for the Sourceforge project page.