On Thu, 9 Nov 2006, Dries Buytaert wrote:
On 09 Nov 2006, at 10:10, Gabor Hojtsy wrote:
The RDF triple approach is a true and tried method to handling relations (see the existing module description). I would propose that we should include a small triple handler in core. This would be good for i18n and other modules to use, so we might get to a win-win situation. Contrib modules can extend on this triple handling with RDF generation and such.
Interesting thought, but it is not quite clear what you envision the 'triple handler' to do? Do you suggest we store RDF in the database? (I don't like that idea.) Or should we just look at RDF and use matching terminology/properties so we can generate RDF if we want to?
We should not store RDF. RDF at its basics is just a triple description format (a predicate about a subject relating to an object). This is like "node/6 is translation of node/2". We need to somehow adress node/6 and node/2 and we should be able to mark that the relationship is about translation. We can of course introduce a new table into core to handle this just for i18n, and it would be very simple to do: CREATE TABLE translation ( nid1 int nid2 int ); The problem is that it is too domain specific and not really forward looking IMHO. We might just end up with this, but we might get further if we think ahead. There is an ongoing relationships discussion in the community to somehow provide this triple-like system to relate nodes to each other (and even nodes to users etc). By offloading this work to a relationships API, I hope to get more out of this "related nodes" concept then just binary relations of translation nodes. Also this would be something to do for those who are absolutely not interested in i18n, but would like to help bring some cool stuff into Drupal. The existing relations efforts (some ready code) already operate in this field, and category module uses a similar conceptual approach. I hope that this way we can also revitalize the book module. Whether you generate RDF out of these simple triples is up to you (certainly not with core support). Gabor