WSMO4J

From Wsmx-WIKI
Jump to: navigation, search
Navigation: Main Page | Members | Meetings


WSMO4J is an API and a reference implementation for building Semantic Web Services applications compliant with WSMO.

Contents


Mission

The STI WSMO4J group is an internal STI working group whose mission is to coordinate STI contributions to WSMO4J and to foster its further development and enhancement.


Tasks

NOTE: These tasks are now tracked via the sourceforge tracker [1] Please use the tracker for current updates and task monitoring.

In Progress

WSML 0.3 compliance

Implementation of d16.1 v0.3 http://www.wsmo.org/TR/d16/d16.1/v0.3/

  • Object Model

Update the object model to reflect the current specification. Apart from the class hierarchies, changes may also include elimination of interfaces and usage of classes. With respect to the hierarchy, the main changes should occur in those classes related to annotations, and in the datatypes and terms. This part should also include code-reviewing.

 Priority: 1
 Deadline: open
 Dependency: none
 Status: Ongoing
 Responsible: Al, Mick, Martin, James
  • Parser update

Update the parser with the new grammar and object model and test it.

 Priority: 1
 Deadline: open
 Dependency: SableCC grammar, Object Model
 Status: Ongoing
 Responsible: Martin
  • Identifiers and Datatypes

Handling the small issues concerning datatypes and identifiers (anonymous, local, etc.) from d16.1 v0.3 changelog. These issues include changing the use of anonymous identifiers, adding new datatype XMLLiteral and changing existing datatypes. The existing WSML datatype shortcuts (e.g. _integer) should be deprecated and instead provide direct support for XSD datatypes as advised in [2].

 Priority: 1
 Deadline: open
 Dependency: Object Model
 Status: Ongoing
 Responsible: Nathalie
  • OWL Parser and Serialiser

Update the OWL parser according to the latest specification [3]. The normalisation-related classes (in WSML2Reasoner) should also be somehow refactored/repackaged so that they can be easily used in both wsmo4j and WSML2Reasoner.

 Priority: 2
 Deadline: open
 Dependency: SableCC grammar, object model, parser
 Status: Open
 Responsible: Nathalie, Barry
  • XML Parser and Seraliser

Update the XML parser according to the latest specification [4].

 Priority: 2
 Deadline: open
 Dependency: SableCC grammar, object model, parser
 Status: Open
 Responsible: Ioan (tentative)


  • Validator

Update the validator to validate the new WSML 0.3

 Priority: 2
 Deadline: open
 Dependency: SableCC grammar, object model, parser
 Status: Open
 Responsible: Nathalie
  • Converter

Implement a possibility to parse wsml 0.21 and convert it to wsml 0.3

 Priority: 2
 Deadline: open
 Dependency: SableCC grammar, object model, parser
 Status: Open
 Responsible: Nathalie
  • Adding new WSML-DL surface syntax

Adding the WSML-DL surface syntax that will be introduced in the new WSML specification (ready by latest on Thursday 7th November). Also focus on roundtripping possibility (parsing and serializing alternative syntax)

 Priority: 3
 Deadline: open
 Dependency: specification of new alternative WSML-DL syntax (responsible: Nathalie)
 Dependency: SableCC grammar
 Status: starting
 Responsible: Nathalie

Main trunk

  • Relation handling

Fix the handling of relations (Archive email-list wsmo4j-discuss)

 Priority: 1
 Deadline: Open
 Dependency: Clarification with wsmo4j-discussion-list - Done
 Status: Ongoing
 Responsible: Nathalie
  • OWL Ontology Wrapper

Implement sort of a wrapper for OWL ontologies that allow tools e.g. to use only one interface for all ontologies.

 Priority: 2
 Deadline: Open
 Dependency: Clarification with wsmo4j-discussion-list - Open
 Status: Open
 Responsible: Nathalie, Mick
  • Packaging

Splitting WSMO4J in more independent packages (e.g. for data representation, the validator, parsers, serializers). This would have the advantage that packages are not depending on each other and can be used independently in the case of need.

 Priority: 1-2
 Deadline: Open
 Dependency: Clarification with wsmo4j-discussion-list - Ongoing
 Status: Ongoing
 Responsible: Nathalie
  • Add OWL DL serializer to WSMO4J

Move the OWL DL serializer from WSML2Reasoner to WSMO4J and add it to the Serializer package.

 Priority: 3
 Deadline: Open
 Dependency: Packaging needed
 Dependency: Clarification with wsmo4j-discussion-list - Open
 Status: Open
 Responsible: Nathalie
  • OWL/WSML conversion

Write new OWL import in WSMO4J, with special focus on roundtripping with existing OWL export (eg. use annotations to distinguish relations/attributes vs datatype/object-properties).

 Priority: 1
 Deadline: Open
 Dependency: Clarification with wsmo4j-discussion-list - Open
 Status: Ongoing
 Responsible: Andreas Frankl, Bachelor student supervised by Nathalie

Future (or on hold)

  • Exception refactoring

Refactor exceptions (Wsmo4j Feature Request).

 Priority: 1
 Deadline: open
 Status: open
 Responsible: Mick
  • Parser

Implementation of a faster parser, with fault handling

 Priority: 2
 Deadline: open
 Status: open
 Responsible: Bachelor student, to be found
  • Validator

Add validation informations, use error codes (Wsmo4j Feature Request), add quick fix library.

 Priority: 3
 Deadline: open
 Status: open
 Responsible: open
  • DataValue issue

Fixing the DataValue implementations in WSMO4J

 Priority: 2
 Deadline: open
 Status: open
 Responsible: open
  • Internal ID of anonymous identifier

We could inroduce an internal number as ID for anonymous identifiers, instead of the java object identifier. This feature makes only sense after the introduction of a WSMO4J document model (see Sourceforge feature request.

 Priority: 3
 Deadline: open
 Status: open
 Responsible: open
  • IRI / Instance issue

According to the WSML specification, the value of an AttributeValueMolecule is a Term (e.g. Identifier, DataValue, Variable). The implementation in WSMO4J does not stick with this behaviour:

When retrieving the value from an AttributeValue, you get a Value, what means that you either get an Instance or a DataValue.

The actual implementation is more high level, as it looks up what the Term is referencing and returns e.g. the referenced instance instead of a simple IRI. The issue is that we need to check if we want to stick with this or if we want to implement the behaviour in WSMO4J as it is specified in the WSML specification and thus let it return a Term, resp. an IRI. This would have the disadvantage, that e.g. an application could not make direct use of the instance but would have to look up on itself what the IRI is referencing.

 Priority: 5
 Deadline: open
 Status: open
 Responsible: open
  • Document model

Development and implementation of a WSML Document model (referring to Archive email-list wsmo4j-discuss).

 Priority: 2
 Deadline: open
 Dependency: parser changes needed
 Status: open
 Responsible: Nathalie, Mick
  • Event model

Add an event model that offers the possibility for observers/applications to track changes in the Document model.

 Priority: 3
 Deadline: open
 Dependency: Document Model
 Status: open
 Responsible: Martin
  • Workspaces

Development and implementation of a workspace model

 Priority: 2
 Deadline: open
 Responsible: Al
  • Proxies

Remove proxies where possible; the use of proxies could be reduced to cases, where you don't know what an entity actually is, as e.g.:

    • metamodelling cases.
    • mediator sources / targets.

Some concrete issues with proxies are the following:

    • unify the createXXX() and the getXXX() to one getXXX() method. This method should return a real object: either returning a reference to an existing XXX or creating a new one.
 Priority: 2
 Deadline: open
 Status: open
 Responsible: open
  • WSMO4J and WSML2Reasoner alignment

Make a tighter integration with the WSMLReasoner. Possible changes:

    • Create Reasoner from Factory, by e.g. adding a method like org.wsml.reasoner.api.WSMLReasoner createReasoner(Map params) to the Factory (see Sourceforge Feature Request).
    • Use a predicate store instead of HashMaps for storing entities.
 Priority: 5
 Deadline: open
 Status: open
 Responsible: open, tentative Nathalie
    • Fixing WSMO4P

Fixing the implementation of WSMO4P.

 Priority: 3
 Deadline: open
 Status: 
 Responsible: open

Completed

  • Migration to Java 5

Migrate WSMO4J to Java 5. Implemented by Mick

  • SableCC Grammar file update

Update the SableCC grammar file of WSML to reflect the new specification. Some few issues are outstanding, including, (1) renaming of sqnames to compact_iris and allowing only one value for an NFP.

 Priority: 1
 Deadline: 1st April 2008
 Dependency: none
 Status: Ongoing
 Responsible: James
  • Choreography issue

Remove all choreography syntaxes except for the official WSMO Choreography syntax. Other Choreography syntaxes will be referencable by URI. Eventually adapt official choreography implementation to latest WSML grammar and move it from ext to core wsmo4j.

 Priority: 2
 Date: none
 Dependency: work in a wsmo4j branch!
 Status: Ongoing
 Responsible: James
  • Non-Functional Properties

According to the latest WSML specification (v0.3), there is a distinction between annotations and non-functional properties. This is also part of the work related to the object model.

 Priority: 1
 Deadline: none
 Dependency: work in a wsmo4j branch!
 Status: Ongoing
 Responsible: Ioan, Martin, James

Developer Links

The official website of WSMO4J can be found at http://wsmo4j.sourceforge.net/.

The WSMO4J project is hosted by sourceforge at http://sourceforge.net/projects/wsmo4j. It uses SVN as version control system.

For general work on the main trunk of WSMO4J, please check out the main trunk: https://wsmo4j.svn.sourceforge.net/svnroot/wsmo4j/trunk.

For work on the development of a new WSML 0.3 compliant WSMO4J, please check out the following branch: https://wsmo4j.svn.sourceforge.net/svnroot/wsmo4j/branches/wsml0.3

Important Note:

Before being able to commit new files to the project subversion, you need to do some changes in the subversion configuration file. On Windows you will find the configuration file under the following path: C:\Documents and Settings\<your_user>\Application Data\Subversion

You need to uncomment the row: "enable-auto-props = yes". And add the following lines at the end of the file:

*.java = svn:eol-style=native;svn:mime-type=text/plain
*.wsml = svn:eol-style=native;svn:mime-type=text/plain
*.xml = svn:eol-style=native;svn:mime-type=text/plain

(for each new file type you may want to add, you need to add a row here)

You need to do these changes in your configuration file before you create or add a new file to your project. Subversion adds properties to your file at the moment you create it, and if you only change the configuration file later, the changes are not taken over to the files already present.

Contact

  • nathalie.steinmetz'@'sti2.at