Wednesday, April 30, 2008

wow!! Accepted

huh.. my paper for the IEEE-ICSC 2008 has been accepted. Well we actually sent this paper some where around in the first week of march, and finally got eh results just yesterday. My paper was titled "Optima: Tool for Ontology Alignment with Application to Semantic Reconciliation of Sensor Metadata for publication in SensorMap". Well i mentioned about the tool in the previous post. It was actually accepted in the demo track. I should be going to california to present the demo between 4-7 august 2008. A link to the paper is present in my home page.

Tuesday, April 22, 2008

Optima- An Ontology Alignment Tool

Wow finally,  i am done with my tool Optima. I have been working on this tool for over an year. Well it did take me a long time and the reason for that is, i have been working on 2 large code bases, and the usual the code is not at all commented and it gave a me a really tough time to get through their code.  
My main idea here is to generate an automated visualized ontology alignment tool, where a user can enter a couple of ontologies to be matched and thus generate a final alignment between the ontologies.  There are no alignment visualization tools so far, that gives a beautiful and easy to use interface, and a powerful underlying algorithm that performs the alignment. The first code base is of the interface and the second one is of the ontology alignment.
The interface is actually a change to the open source ontology visualization tool welkin developed as a part of MIT -simile project. The interface is pretty cool, but the usual the documentation is really bad. 
The second code base is of ontology alignment. This algorithm is developed as a part of the research conducted by my professor Dr.Prashant Doshi. I later enhanced the algorithm to work for larger sets of ontologies (well not so big but usually in the range of about 300-500 nodes per ontology). I enhanced it by providing an ability to partition the ontology automatically internally, to work on smaller sets and the final result that corresponds to the complete ontology is generated. 
I finally integrated both the tools, the visualization tool, the alignment algorithm , to generate the final tool optima, the alignment visualization tool. 
So far just the basic version is released as a webstart and i expect to release the documentation for the tool within week from now.  I finally decided to have my code to be completely documented and commented. I am actually planning to have the tool an open source, and i want the others who are later working on the code to understand it clearly. 
A screen cast for the tool is present at Optima
A demo version of the tool Optima
A few papers are also available at my research home page Optima
(Yes you are right!! i have the same page references in all the 3 cases. i was just trying to increase my home page rank to advertise my tool) 
Thanks guys, any questions will be greatly appreciated.

Wednesday, April 2, 2008

jnlp and web start

Wow!! finally after all the hard time i am able to get JNLP and web start running for my application. There are no editors available for jnlp to create, check for errors or verify it. We can create a JNLP file in netbeans but validation is not provided, which is the major drawback. And the other way is to create it using a text editor itself. JNLP stands for Java Network Launching Protocol. It is a protocol that specifies how applications are launched using web start. JNLP need a web server to launch the application. Some times the most common problem that is faced with the JNLP is that it displays the plain JNLP file with out launching the application. This is because the mime-type for the JNLP file is not added into the web servers mime types. to have it working we can have this added into the mime-types of the server. application/x-java-jnlp-file jnlp
Now lets see the outline of a simple jnlp and the way it is used to load application that can be easily accessed off the web using a java web start. As the jnlp is an xml file we do have the xml tag defined in the very beginning.
  • jnlp tag is used to specify that this is a jnlp file along with the version. The default version is 1.0.
  • codebase within the jnlp tag contains information about the base url that forms a basis for all the hrefs used in the file. So base url forms the base directory for all the files.
  • The href within the tag contains a reference to the jnlp file.
The information section which contains information about the application.
  • First tag is the title tag which contains the name of the application
  • Vendor tag contains the information about the vendor for the application.
  • homepage refers to a home page that is related to the application or has information about the application.
  • The description field is used for a brief description about the application.
Resource section is one of the most important sections in the jnlp.
  • Starts with the version of java the application can start running fine.
  • The next jar specification tells us about the application jar that contains the main class and is used to load and run the application. This also contains a main attributes, specifying that to true helps web start to identify that this jar contains the main class.
  • All the subsequent jar contains information about the libraries that needs to be included.
Please note that all the references here are in reference to the url at the code base. The final statement here is the one that specifies the main class that is used to start the application. This main class should be present in the jar that is specified as main = true in the jars. Another most important point to be noted is that the application is run only when all the jars are signed using an RSA signature. so before creating a JNLP file first we need to sign the application jars using the same signature. If using external libraries and it contains its own signature then a new jnlp file is created for that library and have this jnlp embedded into the application jnlp