Posted by JeremyFrench on April 1, 2010 at 8:36am
There are a number of modules available for using RDF in D6 now that there is some RDF support in core what other modules do people see as being needed to be ported to D7 and how should they work together?
As not the whole of the RDF module was put into core I would assume there would be some other dependencies.
Comments
Drupal 7 RDF contrib roadmap
I've been dragging my feet to write this up but it's more than time to post this so we can coordinate efforts. Given that Drupal 7 core defines its structure as RDF and serializes it in RDFa, it's important for the contrib modules to leverage that. I'm going to talk about the main RDF module in contrib and what I've envisioned with the few others who worked on it during the last couple of months. At the moment the code lives on github and will be sync'ed with CVS when it's a bit more mature and ready for a dev release.
Porting to Drupal 7
Drupal 6 saw several RDF related module emerged, and it has been a good testbed to see what works and what does not work so well. The Drupal 7 RDF contrib module will incorporate RDF CCK and evoc functionalities. They will most likely still live in separate sub-modules, but they will be part of the same downloadable package. The reason for this is to be able to integrate with the RDF mappings defined in core so that the site administrators have the ability to edit these mappings and also export/import them as part of the features module for example. RDF CCK has been renamed to
rdfui.moduleto manage the RDF mappings for entities, think of it as the equivalent of the Views UI module for RDF mappings.The ARC2 library will be used for serializing RDF in formats other than RDFa (in fact there is already a Drush integration to automatically download and place the ARC2 library at the right location for you). This will allow us to remove some code from the current Drupal 6 code base. It will also allow us to do SPARQL out of the box, by using the local database if it runs MySQL (most of the Drupal sites), or to rely on public endpoints otherwise, a functionality which is required by evoc. Using RDF in Drupal 6 and make all the right modules work together was not fun. Drupal 7 will fix that.
Naming bikeshed
Drupal 7 core uses the
rdfmodule namespace already, so the RDF module contrib cannot be named rdf.module (though the package remain the same and is compatible with core). A few months ago I chooserdfxas in "RDF extension" or "RDF experience" (I also like short names). Some people suggestedrdfapibut I thought there is no reason to call the contrib module api when the core is just as much of an API too. contrib intends to extend core's RDF API, but we might eventually rename it like that unless there are better idea?Maintainers
Drupal 6's RDF maintainer Arto Bendiken has dropped support for Drupal 6. I would encourage anyone looking at using RDF in Drupal to seriously consider Drupal 7: start by installing core (RDF core issue queue). If you have coding skills, we need your help! When the RDF in contrib module is in a testable shape we'll make a release and you will be able to report bugs. Current Drupal 7 RDF contrib maintainers include Lin Clark, Kelly Lucas and Stéphane Corlosquet. We'll hopefully get more people involved during DrupalCon, where we'll organize some code sprints.
arbitrary relationships
Is there anything like dman's http://drupal.org/project/relationship module, or would something like http://drupal.org/node/704712 with RDFCCK be more appropriate for creating arbitrary semantic relationships?
Got the same feature request
Got the same feature request on my blog. The short answer is that there isn't a module that does that out of the box, but it's something to consider for D7: RDF UI implements generic mappings for entities, but could allow nodes (or any entity in general) to override this.
Yep, that's about it.
Yep, that's about it. Interesting discussion. I'll have to have a read of that paper soon. I got even more craziness coming to this group very soon. Stay tuned.
sparql queries
The rdfx module looks very good. I will try it locally to investigate some more.
In the current application I am working on I am specifically looking at querying sparql endpoints. I have ported the sparql query portion of the sparql module to D7. However it looks like there is some crossover with the functionality in
function rdfx_sparql_request.The biggest difference that I can see is that the sparql module will allow querying of an arbitrary endpoint and at the moment rdfx_sparql_request is hard coded to two potential endpoints. Should these features be separate or should the two be rolled together? Either by dropping the sparql module in D7, or by rolling the sparql module up with the rdfx module.
I can understand that introducing a dependency between a sparql module and the rdfx module would not be a good thing. However there is potentially enough scope in querying sparql endpoints to require a separate endpoint.
For the moment I need to query endpoints in D7, so I will carry on with the sparql module, but I want to make sure that what I do is compatible with the general D7 rdfx direction so I will keep an eye out here.
patch?
How about submiting a patch against rdfx.module to include an optional SPARQL endpoint as parameter of
rdfx_sparql_request()? We should probably continue discussing this in the issue queue.