Wednesday, June 24, 2009

6-24 summary

Well, looks like Woden4SAWSDL is just as spaghetti as SAWSDL4J and has significantly less support for it. I can only follow the test cases (most of which do not work - at least for me). I am supposed to meet with Doug Brewer (one of the architects) Friday so I hope he can shed some light on this for me.

In the meantime, I will just continue with building the RESTful WSDL doc...


Haven't been able to work on anything today as of yet (my advisor and I have been hammering out another paper due tomorrow).

Last night as I was going to bed, I was able to get a client working (barely). If I can get that done soon, then tonight and tomorrow, I think I will go back to the Woden4SAWSDL API, play around with it, and apply it to that example WSDL REST service tutorial. The goal is to have the client be able to access the ModelReference and SchemaMapping extensibility elements in the SAWSDL (WSDL2). We'll see...

6-23 Summary

What a great tutorial! Im understanding this whole REST shoehorned into WSDL thing a lot better. I think Ill just use this tutorial as a template from here onwards. After reading, Im optimistic I can make my half-point goal. Hopefully by the end of the week Ill have some code to post.

Tuesday, June 23, 2009


Found a good tutorial late last night...

Will try to work on that today

Thursday, June 18, 2009

6-17 (and early 6-18) summary

Yes, its really 4:10 AM! I have been trying to work with sawsdl4j ALL day and I keep coming up with new issues. I have to resolve this soon as this is probably the most fundamentally crucial part of the project! I think I can get it with just a fresh set of eyes and a little advisement from my friend Doug who worked on it. Lets see if I can get this done by the end of the week. Good night world zzzzzz....

Wednesday, June 17, 2009


Scheduled activities for the day

Can't start anything today until 5 - have a few meetings today with research advisor and committee.

5 PM - 7 PM - more WS stuff
7 PM - 9PM - errands
9 PM - 12 PM - get started on SPARQL (at least for the data - metadata I may need to work through more examples)

Tuesday, June 16, 2009

6-16 Summary

Well, didn't post anything this morning as promised, but I got a late start to the day, and had a few meetings so I couldn't.

Today was more about the WSs than NeXML. I am still investigating the woden converter tool to convert WSDL1.1 to WSDL2.0 docs. This will be key for creating RESTful services down the road.

I am going to check in some code soon - not much but at least to get something on. Im envisioning the following directory structure:

root (trunk)

README.txt //Explanation of the project?

docs //Documents explaining this structure - may be better to have distributed help //documents
DeployWS //step by step tutorial on the procedure for building and deploying //WSs

TransProcedure //procedure outlining the process of creating lifting and //lowering schema mappings

Clients //procedure outlining the creation of clients

javadocs //if needed

misc //others as required

environment //the required environment - may include dependencies, batch script, //etc, and certainly an explanation

tests // I plan on deploying/hosting WSs myself for some time - that information will be // explained here

xslt //just like the NeXML directory - will contain the liftingSchema (nexml2cdao) and //various loweringSchema transforms might be needed for specific use cases

spql //required sparql queries

xsd //NeXML (and perhaps other) schemas required

sawsdl //these are basically sample services - functionalities will vary; hopefully I can get //a lot different use cases using TreeBase, CIPRES, etc
//the input will be NeXML in various forms

README.txt //instructions on how to deploy, what dependencies are needed, etc

WSDL1.1 //SOAP services created with WSDL1.1 interfaces
//Includes the .war files

echo //basic echo service

matrix2tree //the first service recommended to me by Rutger - takes a //character state matrix and converts it to tree
//could be a wrapper service around CIPRES:

treebaseUseCase //Need to get more information

misc //other services may go here - maybe i can just go down the list on:

WSDL2.0 //SOAP services created with WSDL2.0 interfaces

echo //basic echo service

matrix2tree //the first service recommended to me by Rutger - takes a //character state matrix and converts it to tree
//could be a wrapper service around CIPRES:

treebaseUseCase //need to get more information

misc //other services may go here - maybe i can just go down the list on:

REST //REST services created with WSDL2.0 - probably future work

Composite // Compositions created with BPEL (a good indicator of the power of // SAWSDL)

clients // corresponding client files of the each of the use cases - will try to include both a // command line and web based client

WSDL1.1 //SOAP clients

echo //basic echo serviceclient

matrix2tree //client for this service

treebaseUseCase //client for this service

misc //clients

WSDL2.0 //SOAP sclients

echo //basic echo serviceclient

matrix2tree //client for this service

treebaseUseCase //client for this service

misc //clients

REST //REST client

Composite // composition client

Monday, June 15, 2009

6-15 summary

Well, once again did more reading than coding. I think thats going to be a common theme this summer. NeXML still remains somewhat of a mystery to me, but I think if I continue reading everyday, I will eventually get it.

That said, the transforms are still separate. I am still having trouble figuring out one example from the java api in particular - the AnnotationTest file. This file outputs annotations marked up by the meta element tag - kind of confusing to me as I had thought the dict element tag will do this. Anyway, this leads to a NeXML that does not validate! I guess I can leave it be for now, but for some reason that still bugs me. I don't think the different versioning is a problem - there may be one construct that I question in the 2.0 but for the most part they can be compatibly combined. Tests on all the examples are a must - you never know if the combination will introduce some other bug. I should include that in the docs.

The basic Web service was easy to build, but the interface is still up in question. Im going to go with a simple scenario for now and study the TreeBase docs (and the spreadsheet distributed the other day) to derive a scenario and then run it by the mentors.

Still frustrated that I haven't gotten much coding done. I know this is a necessary evil, but 3 weeks in I feel like I have to have something to show for the time. I guess the goal should be to get some code by the end of the week - regardless of scenario and/or liftingTransforms, I would like to start on the SPARQL on Thursday.


Activities scheduled for today:

~9 AM - Update blog, post to vdc listserv, check previous entries on NeXML and TreeBase listservs.
9 AM -11 AM - More time devoted in the two lifting transforms (how to fold both into one)
11 AM-2 PM - Get the WS deployed (at least with 1.1 and try with 2.0)
2 PM - 6 PM - Other errands
6 PM - 10 PM - Related readings

Thursday, June 11, 2009

Rolling Now...

I have finally begun to get on a bit of a roll. No new code to report, more testing than anything else, but I have really gotten comfortable with the NeXML java apis and the various schemas (which have direct correlations as outlined in Rutger's presentation). I also have continued reading all related materials (the wiki pages, listserves, and online forums form an INFINITE maze of information).

I spent some time today testing/observing the behavior of the stylesheets nexml2cdao and RDFa2RDFXML. For the most part, it is pretty straightforward - at least for testing the documents produced from the various test files. nexml2cdao does have that validation error with the ID - it appears to be a simple unacceptable character error (RDF:ID cannot have the character '$' in it). I think I still need another day or so of tests and looks to understand the real trend. The other issue is the versioning issue - we want to combine the two in some understandable way to get our final product, the liftingSchemaMapping stylesheet. Im hoping this can be done by the end of the weekend, because I really want to start "phase 1" of the loweringSchemaMapping (i.e. SPARQL query against the triples).

My last blog entry was somewhat rambling, so (from next Monday forward) Im going to design an organized way of detailing my day to day activities. The daily log will closely mimic the weekly log. Each day will have (at least) two entries:
  1. Beginning of the day - The outline of the day's planned activities and/or goals. I will try to be as specific as possible (regarding times and activities)
  2. End of the day (or the point in the day where I will end time devoted to VDCSoC). Here, I will list successes, setbacks, and a summary of the day (perhaps with a flavor of where I believe I stand in terms of progress)
  3. (Optional) Any sudden discoveries, unforeseen events, outlandish ideas, crazy happenstances, etc
Tomorrow (and the remainder of the weekend), I want to continue on this roll. I feel like I still have some catching up to do. I do have to interrupt it at some point though, as my advisor wants a prospectus revision done soon...

Tuesday, June 9, 2009

Journal Beginning

Well, I haven't posted on here in awhile, but I think I want to start posting everyday. It may help to keep a log on the progression of the project - daily summaries, updates, obstacles, progressions, celebrations, etc...

This past week I attended the VDC/DataOne meeting. I was pleasantly surprised -- it went as well as I could have possibly hoped. I learned quite a bit in my short time there. Sure I didn't know much of what was discussed, but I did get a better idea of the context of my project and am beginning to understand the scope of the grander goals of the VDC/DataOne project. And of course, I met some very smart people who gave some great feedback/recommendations for the future of the project. I will definitely get back to those recommendations sometime soon.

This week has started off a bit slow. After finally checking out the nexml source files from sourceforge, I have been spending much of my time (that is, time devoted to this project) getting to understand it. While the first week, I focused on the java parsers for NeXML (which I think still requires a little more time), I have spent this week investigating the schema and transforms in detail.

This past Friday, I was told to investigate two transforms nexml2cdao.xsl and rdfa2rdfxml.xsl . These are the files needed for the lifting transformation. The problem with these files is that one was created using version 1 and the other version 2 - ideally, we would like both to be used seemlessly without compatibility issues. I believe resolving this issue this week is crucial - as I want to have the WS at the very least have the liftingSchema transform done.

Unfortunately, it wasn't as simple as I thought it was going to be - I was having issues with Oxygen as the examples given in the svn were not validating with the schemas given. Clearly, this issue had to be resolved (embarassingly enough, it turned out to PEBKAC error in my configuration in Oxygen :). Thus, I decided to look in excruciating detail at the xsd files. Im actually glad that I did, as it will probably help in the future. I actually read this in conjunction with my molecular evolution book and everything seemed to make a little more sense to me.

So just now, I have performed the transforms on the smaller, more trivial examples - but the larger xml files were taking too long, or crashing my machine (Im running eclipse on my laptop with limited memory). So tomorrow, I will have to move the testing to my larger machine in my office. I hope I can make up some time on Thursday and Friday (tomorrow I have a couple of important meetings) and play catch up with the original goals I stated in the weekly update. One more goal to add - I want to have a more detailed calendar of future events/expectations.

Well, these really are just a lot of random thoughts thrown together, but I guess that is what a (b)log is all about - I will try to be more concise and understandable with each daily entry. Good night world!