TransOnto is primarily a knowledge transformation and migration system for transferring knowledge between semantic representations.


Knowledge Representation

At the core of TransOnto is a representation of logic constructs as objects of a programming language. Developing a new representation amounts to reading and writing such elementary knowledge fragments from and into persisent stores in this new representation. Complex models are transformed by recursively reading in objects from a store in the source formalism, creating equivalent objects of the target formalism, and then writing them out into the target formalism.

This architecture permits that the transformation between any two formalisms can be performed without having to explicitly define transformations between all possible pairs. The fundamental assumption is that knowledge objects carry no information other than their name (if any) and their relation to other knowledge objects.

Querying and Inference

As a by-product of the ability of transform knowledge in various representations, TransOnto can also be used to query and infer from representations for which no querying or inference tools exist. Abstract objects interface between TransOnto and external querying and inference tools, registering the formalisms that they can be applied to. Queries and inference problems over unsupported formalisms are handled by first transforming the model into a supported formalism and then applying the tool.


The TransOnto project is not aimed at re-implementing semantic tools but to allow interoperability between them. Representation and reasoning backends are typically implemented as a TransOnto layer translating between existing tools and the TransOnto framework.

The backbone of TransOnto is the Java interfaces that need to be implemented in order to fully support a formalism. Several abstract classes are also provided which provide convenience methods and are meant to be extended into actual implementations. Libraries such as JPL will be used to cross programming language barriers. It is also planned that pipe and temporary file convenience classes will be provided for using tools that do not provide any API or only provide APIs that Java cannot interface with.

Implemented Modules

RDF, RDFS, and OWL modules are implemented using Jena as back-end. A Prodlr module is at the final stages of implementation.


None yet, javadocs for the main API as well as any module-specific extensions will soon be generated.


TransOnto is mainly meant to be used as a Java library, but a number of applications are planned for release as code examples for the library, but also as useful tools.


The main conversion tool is not included in the current release, but will be released as soon as a sufficient number of modules has been implemented so that is is meaningful to do so.

Semantic POWDER Processor

POWDER is an XML application for representing and transmitting meta-data about abstract resources. The core functionality of a POWDER Processor is applying meta-data to a resource based on the latter's name only. Thus POWDER allows labelling authorites to capture generalizations about the structure of (parts of) web sites and how it corresponds to content.

Although POWDER is an XML application with fully specified operational semantics, its semantics is formally defined in OWL/RDF. More specifically, the formal semantics of POWDER documents is captured as a detailed specification of how to derive from POWDER documents equivalent OWL/RDF documents.

TransOnto includes as an application the Semantic POWDER Processor SemPP, a command-line tool that can be queried with URI and (in the presence of the OWL/RDF transformation of a POWDER document) responds with an RDF desrciption of the corresponding resource.


sempp <POWDER files> [-f <infile>] [-o <outfile>] [-a]
  Describe the resources in  and write the descriptions in <outfile>
  At least one POWDER file must be provided.
  Local files and remote locations can be freely mixed.
  -f <infile> file with newline-separated list of URIs to be described
     if this parameter is missing or is -, stdin is used
  -o <outfile> file where the description will be written
     if this parameter is missing or is -, stdout is used
     if file already exists, it will be overwritten
  -a include attribution information in the output (non-standard behaviour)
powderproc -V
  Print release infromation and exit
  Can only be combined with -h
powderproc -h
  Print this screen and exit
  Can only be combined with -V

Exit values:
   0: normal termination
  -1: inconsistent or missing command-line parameters
  -2: missing or ill-formed input
  -3: internal engine error (most probably a bug)

Installing TransOnto

TransOnto has not released any tarballs at this stage. Source code can be accessed via Subversion; see Sourceforge project home for more details. SemPP has released binary tarballs, including all dependencies except for the Java runtime (version 6 required). See download page.
Last Update: 6-1-2009
(C) 2008-2009 Stasinos Konstantopoulos
This web site as well as the TransOnto project are kindly hosted by Logo