[cells-devel] Triple cells

Ken Tilton kennytilton at optonline.net
Thu Jun 12 19:12:30 UTC 2008


Watt Poosanguansit wrote:
>>should we 
>>forget CLOS and start working on a dynamic object
>>model tailored after RDF?
>>
> 
> 
> I think I am sold on RDF.  It looks like it provides a
> lot of features and more that datawarehousing is
> providing but with alot less weight.  However, I am
> still learning to see if it can be simpler to use it. 
> If you come up with a general way to do the dynamic
> objects, I hope you would blog about it.

I just don't think it will be objects (and I used that word myself above 
by mistake). I think we are now just writing out information, adding 
little branches and subbranches of detail as the information demands, 
rather than forever shoehorning the data into shapes dictated by 
relational design or even CLOS.

But, yes, there is a whole new representational language to be developed 
so things will be simpler. It is easy enough to build up the RDF 
structure adding new information willy-nilly as it comes up during 
application development--what gets interesting is then /reading/ that 
information.

My GUI work offers encouraging news on the read side. One of the things 
I did up front was not make inter-object reference brittle as would 
happen if one was always looking "exactly here" for the widget that 
decided, say, the enabled status of another widget. My solution at first 
  was search by name, and here duplicates were OK as long as the first 
one I got to in an orderly search widening from myself got to the one 
related to me first. Since duplicates would arise from repeating 
clusters and since the dup related to me would be in the same cluster 
this Just Worked.

Later I found myself doing more searching up and down for things of a 
certain type, and again propinquity was a sure guide to relevance. I 
expect we will likely get lucky in the same way reading unstructured 
webs of RDF data.

>  
> 
>>If you want to allow the sixth B and raise an error,
>>you would have an 
>>"errors" rule on A that simply says:
>>
>>    (when (> (length (^A)) 5) (make-instance
>>'too-many-b))
>>
>>If you want to prevent the sixth B from getting in,
>>you would have to 
>>stop it via some add-b-to-a function that checks
>>first of the maximum 
>>has been reached, ie, the old-fashioned way and not
>>using Cells.
>>
> 
> I was thinking of something more complex.  I think I
> kinda get it now.  

Mind you you could automate some of the validation by having cells 
precompute certain conditions such as "I am maxxed out on Bs", such that 
the add-b-to-a function just says:

    (if (maxxed-out...)
       (error)
       (write))

In certain cases that would be overkill, but in others where the 
condition (in this case maxxed-out) is more interesting, it would help 
having that logic encapsulated in its own "slot" of information.

> 
> 
>>I am afraid I am incredibly busy these days and
>>won't have time for more 
>>than an occasional email. :(
> 
> 
> I really appreciate you help.

No, problem. Don't hesitate to ask, I can always beg off if something 
looks too involved.

cheers, kenny



More information about the cells-devel mailing list