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