Copyright © 2005 DERI. All Rights Reserved.
Version: 0.1, 19 July 2005.
Download: http://www.omwg.org/tools/versioning/v0.1/versioning.zip
Source control: CVS of the DOME SourceForge project.
Contact person: Jacek Kopecký, jacek.kopecky@deri.org
The purpose of the versioning tool is to enable user-driven creation of versions of WSMO ontologies. It consists of a versioning library described in this document and the GUI tool integrated in DOME.
The library extends WSMO API and WSMO4J with versioning functionality. It is split into two packages:
The downloadable library package contains the following top-level files and directories:
The requirements for the versioning tool are described in deliverable d6.1 and the design of the tool is described in deliverable d6.2.
The current version has the following major capabilities:
Version identification and metadata — the API contains interfaces and classes for versioned WSMO API Identifiers, and for version metadata containing version comment, date of creation etc.
Ontology versioning API — allows the user of this API to start a new version of an ontology, to go back to the previous version, and to commit (finalize) a version. Further, the user of this API has full control over the version identifier of a committed version.
Version changelog functionality — during the creation of a new version, all changes are logged and when a version is committed, this change log is available to the application.
Nature: Java library
Interfaces (API, Web Services): a Java API.
Platform: JDK 1.5.
Supported standards: WSMO(?)
Required Libraries (OMWG, SDK Cluster, WSMO-related):
Required Libraries (others):
Copyright © 2005, DERI International.
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
Licensing of third party libraries and components required for the versioning library:
The library file versioning.jar in the installation package needs to be in the classpath of the application that wishes to use it, together with WSMO4J libraries.
The class org.omwg.versioningimpl.test.VersionedAPIDemo
is a
simple demo of the versioning library. The following is the most relevant excerpt of this class:
String FILE = "namespace {_\"http://example.com/\"} \n" + "ontology Workplace \n" + " concept Person \n" + " name ofType _string \n" + " boss ofType Manager \n" + " concept Manager subConceptOf Person "; // parse the file above Map map = new HashMap(); map.put(Parser.PARSER_LE_FACTORY, Factory.createLogicalExpressionFactory(new HashMap())); map.put(Factory.PROVIDER_CLASS, VersionedParserImpl.class.getName()); Entity parsed = Factory.createParser(map).parse(new StringReader(FILE)); map.clear(); map.put(Factory.PROVIDER_CLASS, WSMOFactoryImpl.class.getName()); WsmoFactory factory = Factory.createWsmoFactory(map); // we know it is a versioned Ontology org.omwg.versioning.ontology.Ontology ontology = (org.omwg.versioning.ontology.Ontology) parsed; ontology.commit(new HashMap()); printOntology("initial workplace ontology", ontology); // get the first concept, happens to be Person Concept c = (Concept) ontology.listConcepts().iterator().next(); // make some changes factory.createAttribute(c, factory.createIRI( "http://example.com/Workplace#Person.birthday")); printOntology("introduced a new attribute - birthday", ontology); // drop changes ontology.dropChanges(); printOntology("changes dropped", ontology); // make some changes and commit them factory.createAttribute(c, factory.createIRI( "http://example.com/Workplace#Person.birthday")); ontology.commit(new HashMap()); printOntology("birthday reintroduced and committed", ontology); // make some more changes factory.createAttribute(c, factory.createIRI( "http://example.com/Workplace#Person.salary")); printOntology("adding new attribute - salary", ontology);
The major driving forces for the future development of the library:
Below follows a non-exhaustive list of tasks, which fit into the short-term development plans:
The next release of the versioning library is planned for December 2005.
[WSML0.2] J. de Bruijn, H. Lausen , R. Krummenacher, A. Polleres, L. Predoiu, M. Kifer, D Fensel: The Web Service Modeling Language WSML. Deliverable d16.1v0.2, WSML, 2005. http://www.wsmo.org/TR/d16/d16.1/v0.2/
[WSMO1.2] D. Roman, H. Lausen, U. Keller (eds); J. de Bruijn, Ch. Bussler, J. Domingue, D. Fensel, M. Hepp, M. Kifer, B. Konig-Ries, J. Kopecky, R. Lara, E. Oren, A. Polleres, J. Scicluna, M. Stollberg: Web Service Modeling Ontology (WSMO). Deliverable d2v1.2, WSMO, 2005. http://www.wsmo.org/TR/d2/v1.2/
$Date: 2005/07/01 13:22:41 $