[GSoC]The LinkedServiceData Project

0

Posted by myr | Posted in GSoC_2009 | Posted on 11-06-2009

As stated in my last weekly status report blog post I gave up with mapping files and relational databases. Today I finished a class which provides RDF models including all the data retrievable from the sensorbase (I used the SensorBaseClient) which are Project, Sensor and User data. It checks every time if the user logged in has the rights to access those data required to construct a proper model. In particular it’s possible to get out:

  • all the sensor data for a given sensor data type and user (which must be the same of the logged-in user)
  • all the user data for a given user (which must be the same of the logged-in user or must have the role of ‘Project Manager’
  • all the project data for a given user (which must be the owner, spectator or member of that project

Additionally all the RDF models available in cache and representing data accessible to the given user, are unified with the model containing one of the provided information, described above. It’s used the UriCache provided by the Hackystat Utilities component (which uses Apache JCS), and models are grouped by user names. When a request for a model containing a certain kind of information arrives, the system firstly check if the uri obtained in one of the following ways

  • for user data: userName(replacing the ‘@’ with ‘_at_’ to avoid the arising of possible conflicts with the O.S. because of rules in creating file names)
  • for project data: userName(as above)/projectName
  • for sensor data: userName(as above)/projectName/sensordatatype

is stored in the group cached data identified with the logged-in user name.
I know that there are lots of additional filters that could be specified to retrieve sensor and project data, such as the time stamp, but for the moment, I prefer to limit to these ones because I’m imagining a situation in which a user explore RDF data through a graph visualized in the GUI. He firstly visualize only the nodes representing classes in that graph and then clicking on “one” class (such as a sensor data type or the project or user class) he expand it to view all the related data plus all the other data avilable in cache, in such a way that even if it’s not possible to visualize the whole graph for performance reasons, he’s not limited to the graph portion selected but can although view other little portions.

Also I know that Apache JCS is not thread safe and I’m going to treat this issue from application level as the DPD service already does, that is through a HashMap between user names and client instances (there should be only one client instance for a unique user name). In the case of LinkedServiceData (I finally decided to call so my component) there would be as many user/client maps as the number of services from which is possible to retrieve useful RDF data (which currently is only the sensorbase but I’m going to implement RDF representations also for the DPD, Telemetry and maybe Tickertape data, too).
I’m going to organize all the packages etc. following the DPD project directives.