Announcement Announcement Module
No announcement yet.
Spring Jena project started Page Title Module
Move Remove Collapse
Conversation Detail Module
  • Filter
  • Time
  • Show
Clear All
new posts

  • Spring Jena project started

    Hi All,

    Over the 4th, got the ball rolling on a Spring Jena project. The objective of this project is to implement the Spring Data capabilities for Jena, thus enabling flexible data persistence for RDF data and SPARQL queries. Ideally you should be able to use standard Java POJOs and have them be represented in the linked data cloud, persisted in triple stores, and generated by SPARQL queries.

    My hopes is to implement the Spring Data interfaces for Jena as soon as there is a 1.0 release, and then propose this project for inclusion in the larger Spring open source community.

    The initial implementation is just the standard template design pattern applied to the Jena Model and ARQ interfaces.

    Blog introduction:


    The roadmap to achieve those ends includes:

    * Spring datastore/mapping support for object relational mapping, once those projects reach 1.0
    * Spring Transaction support - wrap Jena native transactions or provide app-level transaction management via Spring
    * Abstraction for triple stores - likely aligned against the Datastore interface in Spring Data
    * QuerySolutionMap overloading to the methods in the SparqlTemplate
    * Web / MVC capabilities, such as a taglib to expose SPARQL results sets into JSPs

  • #2

    This is great to see. The Spring Data team will be taking a look at it, please let us know if there is anything you need to help with your work! Perhaps we can setup a CI process for the repo?



    • #3
      Hi Mark,

      I do have some questions regarding some parts of the API, which I'll post here. I'm slowly peeling the onion on the spring-data-mapping repository on github. I did notice that there is both a spring data commons core, and the spring data mapping. Will these be merged at some point?

      I've started a workspace as a fork of the spring-data-mapping, but it would be easier to just get a POM dependency loaded up and have the core datastore/mapping jars available.

      A CI process and general open source help would be greatly appreciated. This and the Groovy SPARQL are my first open source projects, both put together over the weekend, so I'm new to how you can publish jars, leverage a CI setup for open source software, etc.



      • #4
        1. spring-data-mapping and spring-data-commons, and the common parts of spring data graph - will these be merged at some point?

        2. spring-data-mapping appears to have all the hooks in it for the object marshalling, and being able to generate both Java and GORM support, which is what I'd like to get working with Jena/RDF data

        Is there a good way to build another implementation other than forking the entire spring-data-mapping repo? I've looked around the Spring maven repos and such, and I don't see any jars published yet.

        Right now I have the SpringJena repo on Github, and a local workspace where I've started directly developing in a fork of spring-data-mapping. Seems easier if it could be separate and pull in as-needed dependencies.

        3. The subclass discriminator in spring-data-mapping, it looks like most implementations identify a place in their underlying data stores to store the class name, and then the higher level abstractions of EntityPersister use that to resolve child classes?

        4. In spring-data-mapping EntityPerister, if the underyling data store provides indexes - can you return null PropertyIndexers?

        5. AssociationIndexer is used for maintaining an index for the various associations (1:m, m:m, etc)? A lot of the implementations return type Object for the keys - can you provide an example of what is an actual key - string/integer column in SQL, string key in mongodb, etc?

        6. What is the 'family' on persistent entities? is this similar to a schema governing a table set within a logical RDBMS? Can family be null?

        7. Is there a test suite for spring-data-mapping? The individual sub projects don't have any JUnit, am I looking in the right place? I'm starting to implement some of these interfaces, and I can get the top level gradle build to compile, but I'd like to actually see some of these interfaces in action and run through some tests (which would also be helpful for debugging/learning as well).


        • #5
          Graeme answered on the grails lists - I'll probably get back to this on the weekend and have something out for public review early next week