Skip to Content


warning: Creating default object from empty value in /home/goodoldai/public_html/modules/taxonomy/ on line 34.

OPOS - Online Presence Ontology Server

Posted in

Online Presence Ontology Server

OPOS is intended for enabling integration and interchange of Online Presence Ontology (OPO) data between different applications. It allows user to specify which Social Networks (SNs) and Instant Messengers (IMs) he/she uses and wants to be synchronized. Further on, we will refer to the SNs and IMs simply as Social Services.

In order to ease the manipulation with OPO data within Java applications, we have created jOPO, a Java library built on top of the Jenabean framework. jOPO's structure corresponds to the structure of the Online Presence Ontology and it is also intended for Java developers who are less familiar with Semantic Web technologies, but want to work with OPO data.

This application uses a dedicated RDF repository for storing OPO data, named OPO Data Repository. In order for other applications to be able to get access to this data, a SPARQL endpoint and RESTful services are established. Regarding these features, a special focus will be put on the privacy of users’ data.

OPOS is composed of several components, which will be described in details.

Content and Knowledge Provision Service in Soul Web

Posted in

Content/Knowledge Provision service (CKP service, for short) is a learning service aimed at supporting Web-based workplace learning. This service is a part of the software solution that is being developed by the Soul Web project to provide technical support for Learning and Knowledge Building (LKB for short) processes within the extended organization. Extended Organization represents a community that emerges as a temporal integration of two or more different business and educational communities and organizational cultures (industrial, research, and educational). This service supports workplace learning situations where employees are often faced with the need to efficiently find, browse, share, and otherwise use electronic learning resources, but are usually constrained by limited time and other factors when they perform all these activities on their own. Specifically, CKP service serves as a content management system and semantic search engine within an extended organization. It enables employees to upload different kinds of Knowledge Objects (KOs) into a knowledge repository, annotate them, and (re-)discover relevant KOs by performing semantic search over the knowledge repository.

The demo version of the CKP service can be seen here.

Description Logic Reasoner (LoRD)

Posted in

The objective of this project is to show how Model Driven Engineering (MDE) techniques can be applied to developing a DL reasoner, called LoRD. To implement the  tableau algorithm using the MDE principles, we used the following two Ecore-based metamodels:

  1. The DL metamodel that is a non-normative part of the current OMG’s  ( effort for developing the Ontology Definition Metamodel  (,
  2. The Tableau metamodel that represents a tableau.

This implementation of the DL tableau algorithm enables transformation of a DL model (i.e., an instance of the DL metamodel in terms of the MDA) into its tableau model (i.e., an instance of the Tableau metamodel). For this transformation we use Atlas Transformation Language (ATL), a QVT-like model transformation language.


Contact: Nenad Krdzavac

JEFF (Java Explanation Facility Framework)

Posted in

JEFF is an explanation facility framework written in Java. Explanation facilities date from the era of expert systems (ES) where they were used in order to provide an explanation about the inference process. The explanation they provided was supposed to clarify how the ES reached its conclusions (the "HOW" explanation) or why it asked some question during fact acquisition (the "WHY" explanation).

Some authors suggest that there is a third type of explanation that unveils the strategic decisions that affected the inference process (the “STRATEGY” explanation). Nowadays, traditional ES development environments ("shells") are replaced by rule engines (RE) and business rule management systems (BRMS) which seem to lack explanation facility functionality. JEFF was created in order to remedy this.

Goals and audience

The main goal of JEFF project is to provide an open-source and free (for all types of use, development and distribution) explanation facility framework in Java. It should be:

DEPTHS (Design Patterns Teaching Help System)

Posted in

DEPTHS is an integrated environment for learning software design patterns (DPs). It integrates an existing Learning Management System (LMS), a software modeling tool, diverse collaboration tools and relevant online repositories of software DPs. LMS enables students to learn at the pace and in a place that best suits them providing them at the same time with a variety of learning activities and resources. The domain specific tool enables students to experience patterns-based software development in the context of real-world problems. Online repositories of software DPs provide students with plenty of important resources on DPs containing both valuable examples of DPs and instructions how they should be used. Collaboration tools support different kinds of collaborative activities, such as discussions, collaborative tagging, and commenting. To enable the integration of these different learning systems and tools in a comprehensive learning environment, we have used the Semantic Web technologies.

PBL Java

Posted in

The objective of the PBL Java project is to develop an add-in to a specific LMS to support Problem Based Learning (PBL) of Java. The add-in is focused on the basic programming skills. This means that the learners are able to define the variables and methods and practice using them. Several different problem types are defined regarding these concepts.

The problems can be specified at several levels of difficulty/complexity. The basic level problems are related to the basic statements such as variable or array definitions. Value assignments and data retrieval are also used at this level. The 2nd level problem types include implementation of different programming blocks (sequential, cyclic, etc.). Method implementations are the focus of the 3rd level problems. There are several problem types related to the method properties (e.g. type and number of arguments, required functionality, and return values). The highest level problems require the definition of the whole class (or classes) to accomplish more general functionality.

The system generates the problems dynamically. The names, types and values (of the variables, methods and classes) are defined randomly. These data represent the problem parameters. The problems typically include three or more parameters. The system uses these data to create its own solution and to check the learner's solution.

For more information about the project, please visit the project site:
Contact: Goran Shimic

Syndicate content