[cells-devel] Triple Cells: AllegroGraph 4.5 "porting"

Kenneth Tilton kentilton at gmail.com
Tue Mar 20 14:10:15 UTC 2012


On 3/19/2012 6:04 PM, Frank Goenninger wrote:
> Am 19.03.2012 um 15:47 schrieb Kenneth Tilton:
>
>> On 3/18/2012 5:53 PM, Frank Goenninger wrote:
>>> Hi Kenny,
>>>
>>> I just began using Triple Cells. We have planned a rather large AllegroGraph-based implementation and as a fan of Cells I am porting Triple Cells to AllegroGraph 4.5.
>> Great. I love the data model (and you know I love Cells). On my project we have a PostGres table called "triple". Only problem is the object column because SQL does not like untyped columns (so I create object columns for any type I need to store<g>).
> Wow - I thought BLOBs would be the way to go. For PostgreSQL, it's this:
> http://www.postgresql.org/docs/current/static/datatype-binary.html

Hey, good idea. Thanks.

>
> [snip]
>
>>> 0>   3c-cell-pulse: sp =  nil
>>> 0>   3c-cell-pulse: sp is NIL !
>>>
>>> It would help if you could shed some light on this ...
>> Not sure I follow the output, but that could be because I have not looked at triplecells in ages. I do not even have that source on this laptop!
>>
>> Big Q: the above looks like it is from the Hello World example/test. Yes?
> It is! I just instrumented it a bit with lots of calls to #'trc.
>
>> Is sp the current datapulse?
> Yes, as in:
>
> (defun 3c-cell-pulse (c)
>    (trc "3c-cell-pulse: c = " c)
>    (let ((sp (get-sp c !ccc:pulse)))
>      (trc "3c-cell-pulse: sp = " sp)
>      (if sp
>        (progn
>          (let ((object (object sp)))
>            (trc "3c-cell-pulse object" object)
>            object)) ;;<<<<----- This is the datapulse, I assume ...
>        (progn
>          (trc "3c-cell-pulse: sp is NIL !")
>          (break)))))
>
> It is right at the first time #'3c-cell-pulse is called when it fails... I am still trying to wrap my head around your use of subject, predicate, object in 3c ;-) It get's pretty "anonymous" with all those "anon" blank nodes ...

Yeah, blank nodes are hard to look at.

In the above get-sp is supposed to return a triple, the object of which 
is the datapulse. So the question is why get-sp returns nil?

You are right, btw, I am so busy I forgot to look at the code when I got 
home. I just spent ten minutes just looking at the code and, wow, this 
will take some refreshing and I'll have to run it and trace a bit to see 
what is up. I'll see if I can get to it tonight.

Have you ever run it on any AG4.x? I do know there have been enough 
changes that I am not surprised we have to get the hood up.

One thought: did you add the bit that complains about not getting a 
pulse? Since this is early in the life of the cell I can imagine that 
the intent was to treat a missing !pulse as "uninitialized". In which 
case I think the error you got was in the caller where upi= tries to 
compare UPIs and it gets upset over being passed nil. In which case it 
would just mean they tightened up something and we need to do our own 
more flexible upi-equal or something.

I will probably start by grabbing triple cells off github and start from 
there just to reduce the variables.

cheers, ken

>
>> I notice your log does not include that, and I would think that would be interesting (unless of course as it seems the whole history is one pulse<g>)
> I /think/ it's one pulse (there's only one call to #'3c-pulse-advance)...
>
>> I can try looking at this tonight. Are you free to send me your triple cells project so I have your diagnostics (and just to be sure we are debugging the same thing)?
> Sure - see attachment. I suggest you unzip it somewhere and wade through it ;-) The main files are ccagcore/object-store.lisp and the triple-cells files, of course.
>
>> Good to hear from you!
>>
>> ken
> Ha, seems as if you're kind of busy these days. Would love to meet with you some time - do you plan to go to ILC this year ?
>
> Cheers
>     Frank





More information about the cells-devel mailing list