blueprint-activerdf-deployment-with-jruby-and-components
Big Picture:
Project: ActiveRDF
Idea: Benefits of ActiveRDF deployment with JRuby and better components
If the sioc explorer were to be made into better components, and could use jruby and a java triple store, then we would have a big picture with these benefits:
Easy installation, easy configuration with almost no custom application logic and easy deployment.
1.) Easy installation! Prerequisite: Package the sioc explorer components as a Rails Plugin or something similiar, and have a working java triple store
Steps for the application developer:- install jruby and java
- create Rails application
- install the sioc explorer components plugin + activerdf + activerdf jena adapter
Result: because everything now is pure ruby or java, complicated compilations from source or hunting for the packages with the right version number is not necessary anymore
2.) Easy configuration with almost no custom application logic! Prerequisite: Use only one controller, which displays the view for the requested object class dynamically, by using RDF Schema and RHTML/HAML fragments.
Steps for application developer:- define object classes and properties with rdf schema
- define how to display a class by writing RHTML/HAML fragments, which also define the constraints for the faceted navigation engine and which display 1:n relations between classes (this makes the fragments conceptually similar to Fresnel views/lenses)
Result: almost no need to write code, and only a few central locations where to put customisations
3.) Easy deployment! Prerequisite: JRuby goldspike has to work, and a tomcat installation must be available.
Steps for application developer:- Invoke JRuby goldspike, which creates a war of the whole app and its gems and jars (AFAIK).
- deploy the war to a tomcat server.
Result: deploying the application on requires copying one war to the tomcat server. no need to duplicate the complicated setup of activerdf and other libraries+gems between development machine and server.
After these have been achieved, one can investigate further capabilities:
1.) How to enable write support? (maybe parsing the rdf schema to display an input mask) 2.) how to enable customization and extension of application logic and view display 3.) how to bypass the need to create rdf schema code. (either by pointing to a good rdf schema editor, or by having a dsl, or maybe just let the programmer define objects in ruby, and use introspection to create matching rdf schema classes…