Semantika DRM

Domain Knowledge to SQL Data Mapping

Get Started with Semantika 1.7.1

(Release date: July 31, 2014)

demo application | wiki | source code | release notes | join community

What is Semantika?

Semantika DRM (Semantika in short) is a Domain-to-Relational Mapping library for Java language, providing a framework for linking your existing database schema to a domain model. Semantika will help you to build a robust SPARQL query engine over a relational database system. The engine will automatically generate the SQL query without having your end-users know about the database structure. Using Semantika, you will be able to build an intuitive data search service that can be used by everyone in the organization. It is an open-source library under Apache License 2.0.


One key benefit wrapping your data access with Semantika is that user queries are no longer attached to the underlying data structure, such as the table names or column names, but rather they are now expressed using a common vocabulary in the organization.

Features

  • Data access through domain layer. Based on the state-of-the-art Ontology-based Data Access (OBDA) idea.
  • Semantic mapping SQL to RDF. The model is intuitive and easy to learn.
  • Formal domain modelling. Support OWL 2 QL reasoning.
  • Easy to configure. Add/remove setup parameters in XML document.
  • Data query in SPARQL. One of the key technologies in semantic web.
  • Simple Java API. Typing code in just few lines of code.
  • Open Source. Download, learn, use, modify, all for free!

Recent News

Java API

The library provides a simple API for wrapping your data access in few lines of code.

System Setup

An instance of ApplicationManager represents an entire set of application resources that fuel the system. The list is compiled in an XML document as a setup configuration.

ApplicationManager manager = new ApplicationFactory()
                             .configure("application.cfg.xml")
                             .createApplicationManager();

Once all the resources are loaded properly, you can open an instance of QueryEngine to create a query application to serve SPARQL query execution. The app manager also provides MaterializationEngine to enable your application doing data export from database tuples to RDF triples.

Query Engine

To enable query answer in your Java application:

SparqlQueryEngine queryEngine = manager.createQueryEngine();
queryEngine.start();
QueryResult result = queryEngine.evaluate(sparql);
// do something with the result
// ...
queryEngine.stop();

Materialization Engine

To enable RDB2RDF data export in your Java application:

RdfMaterializerEngine exporter = manager.createMaterializerEngine().useNTriples();
exporter.start();
exporter.materialize(fout);
exporter.stop();