It is with great joy that we announce a new addition to the Ontopia framework: Ontopia REST. This new module aims to provide a complete REST implementation for core Ontopia functionality. The module is loosely based on the work David Damen did in the Tropics sandbox project. As such it also uses the well known and often used Restlet Java framework.
The goal of this new module is two-fold:
To provide developers new ways to use the power of Ontopia, without the need for in-depth knowledge of the full Ontopia code
To work towards replacing deprecated and antiquated modules such as
Where the first goal requires only an Ontopia release to realize, the second goal will be an undertaking of its own.
A short summary of functionality included:
Getting, adding, changing and removing all Topic Map constructs
Communication mainly focussed on JSON, by leveraging Jackson
XTM, CTM, LTM and TMXML exposing of full Topic Map
XTM and TMXML exposing of topic fragments
Paging on collection requests
Exposing methods in indexes such as ClassInstanceIndexIF and SearcherIF
The module that was added to the Ontopia source contains a big part of the functionality envisioned. A large test suite has been set up to cover all the implemented functionality, containing close to 600 tests. However, there is still work to be done:
For this last point we ask you for help. If you are an Ontopia enthusiast that has experience in creating REST clients and that wants to help us out, please let us know!
How to get it
Ontopia REST will be added to the next major release of Ontopia. You can build it from source if you would like to use or test it before the release. You can find the source in the ontopia-rest directory in the master branch.
With the move to GitHub, several perks of being an open source project came to light:
GitHub has a nice integration with Travis-CI, which offers free continuous integration for open source projects. Every push to a branch or pull-request branch can lead to a build and test of the project. The configuration of the build process is contained in the repository so that each branch may determine it’s own testing parameters.
We’ve enabled the Travis-CI functionality for the main Ontopia repository, and the results are publically available:
At every push to a merge request (developers only)
The automated building and testing will assist the developers with determining if branches or pull requests can be merged into the master branch or more work should be done first.
Codacy offers code analysis and measurements in a cloud service model. These measures can uncover possible improvements of the project. Improvements such as coding style, performance and security threats.
Some of the issues Codacy reports are a good practice exercise for people that would like to contribute to the project without needed a full in-depth understanding of all the code. Feel free to open merge requests referencing the issues you resolve.
David Damen of Space Applications Services became an Ontopia committer today. David has been an active member of the Topic Maps community for a while, and right now he is working on Tropics, a web service interface to Ontopia, which he intends to add to the Ontopia sandbox in the near future. (He is on holiday at the moment, so it may take a while yet.)
We will return with more information on Tropics in the near future.