You are here
SmartSlog: A Smart-M3 Multilingual Ontology Library Generator
SmartSlog is a software/application development kit (SDK or ADK) for programming Smart-M3 agents (Knowledge Processors, KPs) that consume/produce smart space content according with its high-level ontological representation. SmartSlog applies the code generation approach: given an OWL ontology description, the ontology software library is produced. The latter provides API to access the smart space via a Smart-M3 Semantic Information Broker (SIB) and data structures and functions to represent and maintain locally in KP code all ontology classes, relations, properties, and individuals. The first advantage is that developers easier construct their KP code, thinking in high-level ontology terms instead of low-level RDF triples. The second advantage is intentional orientation on heterogeneous devices: 1) ontology library generation is multilingual (currently, ANSI C and C#) and 2) library is modest to the device capacity, portable and suitable even for small devices.
Smart-M3 is an open-source platform for information sharing. It provides applications with a smart space infrastructure to use a shared view of dynamic knowledge and services in ubiquitous computing environments. Applications are implemented as distributed agents (knowledge processors, KPs) running on the various computers, including mobile and embedded devices. Shared knowledge is represented using Resource Description Framework (RDF) and kept in RDF triple-stores, each is accessible via a Semantic Information Broker (SIB). The RDF representation allows semantic reasoning; simple methods are available on the SIB side, more complex ones are implemented in dedicated KPs.
A Smart-M3 application consists of several KPs that share the smart space using the space-based and pub/sub communication models. The KPs produce (insert, update, remove) or consume (query, subscribe/unsubscribe) information. The Smart Space Access Protocol (SSAP) implements the SIB-to-KP communication, using operations with RDF content as parameters. Each KP understands its subset of information, usually defined by the KP ontology.
Real-life scenarios often involve a lot of information, which leads both to largish ontologies and possibly complex instances that the KPs need to handle. Thus, programming KPs on the level of SSAP operations and RDF triples bring unnecessary complexity for the developers, who have to divert effort for managing triples instead of concentrating on the application logic. The OWL representation of knowledge as classes, relations between classes, and properties maps quite well to object-oriented paradigm in practice (but not so well in theory). Therefore, it is feasible to map OWL classes into object-oriented classes and instances of OWL classes into objects in programming languages. (These objects only have attributes, but no methods and thus no behavior.) This approach effectively binds the RDF subgraph describing an instance of an OWL class (individual) to an object in a programming language.
SmartSlog maps an OWL ontology description to code (ontology library), abstracting the ontology and smart space access in KP application logic. As a result, SmartSlog simplifies constructing KP code compared with the low-level RDF-based KP development. The code manipulates with ontology classes, relations, and individuals using predefined data structures and library Application Programming Interface (API). The number of domain elements in KP code is reduced. The API is generic, hence does not depend on concrete ontology; all ontology entities appear as arguments in API functions. Search requests to SIB are written compactly by defining only what you know about the object to find (even if the object has many other properties).
The vision of ubiquitous involves a lot of small devices to participate in surrounding computing environments. SmartSlog targets low-performance devices by producing ontology libraries in pure ANSI C with minimal dependencies to system libraries, the property is essential in many embedded systems. SmartSlog takes into account the limited resources available on small computers such as mobile and embedded devices. For example, the KP code does not need to maintain the whole ontology as unused entities can be removed. Also, RDF triples are not kept indefinitely, and the local memory is freed immediately after the use. Even if a high-level ontology entity consists of many triples, its synchronization with SIB transfers only a selected subset, saving on communication.
ANSI C programming is too low-level for some classes of devices. For example, although writing KP in ANSI C for the Blue&Me platform (Windows mobile for Automotive) is possible, it is complicated, and some developers prefer the .NET/C# language for this case. SmartSlog allows multilingual ontology library generation (ANSI C and C# on the current development iteration).
Dmitry Korzun, Dr/Adjunct Professor, Petrozavodsk State University, Russia
Aleksandr A. Lomov, PhD student, Petrozavodsk State University, Russia
Pavel I. Vanag, PhD student, Petrozavodsk State University, Russia
Sergey A. Marchenkov, student, Petrozavodsk State University, Russia
January-April 2012: Experimental releases. Performance evaluation. Report and demo. The use of SmartSlog in Smart-M3 trainings and labs.
May-August 2012: Implementation of basic functions. Movement to beta releases. Drafts for research papers.
September-December 2012: Release stabilization with basic functions and design solutions for advanced functions. Summary report and papers.