greggles

Topics

programming

php drupal scheme scheming macros design patterns da la

design

design css

random thoughts

scribbles

alter ego

other me 'em that link us my space me linked in

Collections

Programmable web
PHP design patterns

Similar things

  • Relation modules
  • Relations battle plan
  • Relations and their domain structures
  • Relations API - query generation and TODO
  • relations update
  • A pause for thought and some cut backs
  • Going mad talking about relations
  • Once again relations, or the need to focus on smaller parts of the big picture. A rant.
  • An initial phase runner for drupal install
  • drpkg and relations svn

guild
Home » blogs » vlado's blog

Relations Battle Plan II and first results

Submitted by vlado on Wed, 2005-11-30 10:59.code | drupal | programming | projects | relations

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

vlado's blog | add new comment
Home » blogs » vlado's blog

dikini.net

spreading confusion by accident since 1970