Relations Battle Plan II and first results

I uploaded the first version of the relations module to the Bryght svn repository. I intend to use it for easier management and brainstorming. When the module is considered alpha quality it will get into drupal's contrib cvs, maybe earlier. I don't want to pollute it earlier than nessesary.

current status

The bulk of the sql query generation has been done. An initial working version of the url parser, implemention a simple relation definition language parser has been done.

the critical things todo

There are a few things, which need to be done in order for the api to be properly usable. The main show-stoppers are the relation nodeapi and themeing of the output. I haven't done anything on the nodeapi side, since I'm not sure about the UI. Needs experimenting. For the themeing, I need to think through themeing based on the field meta-data. Thes goes dangerously into the cck teritory. If anyone has any ideas, please come up and shout.

the current paln and implementation status (PLAN in the module directory)

Below You can see the current version of the battle plan. I will be changing it with time.

---------------------------------------------------------
relations url parser
---------------------------------------------------------
to be used for testing and on the fly list generation,
combined with url aliasing this gives an enourmous flexi-
bility to the web developer and site-admin
---------------------------------------------------------
1 +  sub relations
1 +  where conditions
1 +    eq
1 +    gt
1 +    lt
1 +    and
1 +    or
1 +  output fields filter
1 -  group
1 -  order
2 -  theme profiles
3 -  range

---------------------------------------------------------
relations query builder
---------------------------------------------------------
the heart of the relations api. Resposible to generate 
the SQL queries from query signatures. Should support 
operations between different relateions - like union, 
intesection, ....
---------------------------------------------------------
1 +  WHERE
1 +  FROM
1 +  FIELDS
1 +  fields filter
1 +  GROUP
1 +  ORDER
4 -  JOIN

3 -  INSERT
3 -  UPDATE
3 -  DELETE
1 +  SELECT
3 -  LIMIT (ranges)

4 -  stored procedures
4 -  views

3 -  syntax errors && warnings


---------------------------------------------------------
relations nodeapi
---------------------------------------------------------
Relation persistance is planned to be implemented via 
nodeapi. This way we get documentation of the relations 
as well as signatures, etc...

The leaf realtions will use the same mechanism. The 
difference will be in passing the attached object (node, 
user, ...) to the relation as parameter.
---------------------------------------------------------
1 -  add     relation
1 -  remove
1 -  update
2 -  caching
2 -    SQL
2 -    php
2 -  relation signature constructor
2 -  parameter


---------------------------------------------------------
specialised relations (indexes, structures)
---------------------------------------------------------
these are specialised hardcoded relations. The intent is 
for them to provide more efficient handling of the data, 
as well as additional predicates/functions
---------------------------------------------------------
3 -  hierarchies
4 -  extended (deep) graphs

---------------------------------------------------------
default themes
---------------------------------------------------------
we will require meta-data based resolution for displaying
the relations. This should be done based on context. This
is the place to proveide mappings for other formats as 
RSS, ATOM,RDF, OWL, OPML, DC, as well as various associated
microformats.
---------------------------------------------------------
2 -  some basic theming
3 -  meta-data based theming - design and implementation
3 -  microformats - technorati tags, whatever is appropriate
3 -  RSS 1.0 mapping
3 -  RSS 2.0 mapping
3 -  ATOM mapping
3 -  OPML
3 -  DC mapping
3 -  RDF mapping
4 -  OWL mapping

if you want to keep track of the realtions progress and my posts on the topic you can subscribe to the relations feed

Powered by Drupal, an open source content management system