25 Oct 2012 12:56
3 Oct 2012 03:47
Connecting two models
Mark Cox <markcox80 <at> gmail.com>
2012-10-03 01:47:49 GMT
2012-10-03 01:47:49 GMT
G'day,
I think my mental model of Cells is wrong. Perhaps someone can help.
I have two model classes:
(defmodel model ()
((item-index
:initarg :item-index
:accessor item-index))
(:default-initargs
:item-index (c-in 0)))
(defmodel view ()
((item-index
:initarg :item-index
:accessor item-index))
(:default-initargs
:item-index (c-in 0)))
What I would like to do is to connect the item-index slot of an
instance of MODEL to the item-index in an instance of VIEW. i.e.
(defun connect-model-and-view (model view)
(setf (item-index view) (c? (item-index model))))
which does not appear to be possible.
I have navigated around the issue by introducing a third model class,
CONTROLLER, that has an item-index slot initialised with (c?
(Continue reading)
1 Oct 2012 13:53
Cells-test status
Mark Cox <markcox80 <at> gmail.com>
2012-10-01 11:53:59 GMT
2012-10-01 11:53:59 GMT
G'day, I am interested in using the cells-test system to guide my efforts on getting cells to work with ECL. Are the tests current as they fail on SBCL and CLISP? Thanks Mark The error I get is: <SOME PARTS OMITTED> "----------UTILSRESET----------------------------------" 0> : output thought #<cells::person #x1a1383e5> "speedy" 0> : i am thinking "speedy" you can call me (speedy chill) (CELLS::ATTEMPTING (NULL (CELLS::MD-SLOT-CELL CELLS::P 'CELLS::SPEECH))) (CELLS::ATTEMPTING (ASSOC 'CELLS::SPEECH (CELLS::CELLS-FLUSHED CELLS::P))) (CELLS::ATTEMPTING (CELLS::C-OPTIMIZED-AWAY-P (CDR (ASSOC 'CELLS::SPEECH (CELLS::CELLS-FLUSHED CELLS::P))))) SYSTEM::%STRUCTURE-REF: 1 is not a structure of type CELLS:CELL [Condition of type SIMPLE-TYPE-ERROR]
17 Apr 2012 20:17
can one make dependencies between models?
Mirko Vukovic <mirko.vukovic <at> gmail.com>
2012-04-17 18:17:22 GMT
2012-04-17 18:17:22 GMT
Hello,
I am doing very basic cell-stuff, much like the ones in the doc folder: Not liking excel and its cousins, I am implementing spread-sheet like calculations in cells.
My question:
1) Can I build two models (model1, model2) and specify that a slot in model2 depends on changes in some other slot in model1?
2) Related: can I change a slot specification in a model. For example from `c-in' to `c?'. I assume that I can, but I would have to re-initialize the model somehow. Correct?
I am also very interested in the question posted just a few minutes ago. I would like to build an automated way of generating a GUI front end my cell models.
Thanks,
Mirko
<div><p>Hello,<br><br>I am doing very basic cell-stuff, much like the ones in the doc folder: Not liking excel and its cousins, I am implementing spread-sheet like calculations in cells.<br><br>My question:<br><br>1) Can I build two models (model1, model2) and specify that a slot in model2 depends on changes in some other slot in model1?<br> 2) Related: can I change a slot specification in a model. For example from `c-in' to `c?'. I assume that I can, but I would have to re-initialize the model somehow. Correct? <br><br>I am also very interested in the question posted just a few minutes ago. I would like to build an automated way of generating a GUI front end my cell models.<br><br>Thanks,<br><br>Mirko<br></p></div>
17 Apr 2012 19:18
How to get started?
Jim Prewett <download <at> hpc.unm.edu>
2012-04-17 17:18:07 GMT
2012-04-17 17:18:07 GMT
Hello, I've recently stumbled across Cells and it sounds pretty interesting. I'm wondering how to get started learning about how to use Cells. In general, I've got several Lisp projects that could use a GUI and the various Cells-based GUI projects look interesting to me. I think I should probably learn how to use Cells (at some basic level) before trying to dive into one of the GUI packages. Is there a Cells-based GUI package that is currently preferred? In general, I learn best by first following a simple example, then modifying it to do my bidding. Can someone show me how to get started? I'm also wondering if someone can explain the difference between DEFMODEL and DEFMD to me. Thanks so much!, Jim James E. Prewett Jim <at> Prewett.org download <at> hpc.unm.edu Systems Team Leader LoGS: http://www.hpc.unm.edu/~download/LoGS/ Designated Security Officer OpenPGP key: pub 1024D/31816D93 HPC Systems Engineer III UNM HPC 505.277.8210
22 Mar 2012 18:20
Re: TripleCells: A new twist to the unbound variable CACHE challenge ...
Kenneth Tilton <kentilton <at> gmail.com>
2012-03-22 17:20:50 GMT
2012-03-22 17:20:50 GMT
On 3/21/2012 3:44 PM, Frank Goenninger wrote:
>>> Von: Kenneth Tilton<kentilton <at> gmail.com>
>>> Datum: 21. März 2012 14:57:23 MEZ
>>> An: Frank Goenninger<frgo <at> me.com>
>>> Betreff: Re: [cells-devel] Triple Cells: AllegroGraph 4.5 "porting"
>>>
>>> Sorry, we went so late last night I completely forgot about this. I'll keep trying to find time (and keep
sending me emails so I remember to). I will try to dig thru the below.
>>>
>>> Do I gather there is a new error now about CACHE? I do not even recognize that.
> After a full recompile I get another error:
> Error: Attempt to take the value of the unbound variable `CACHE'.
>
> Note: Not cache? but cache ...
>
> Digging into the 3c code reveals:
>
> The cell rule gets stored as a string. This is done in #'3c? :
>
> (defmacro 3c? (rule&key test ephemeral observer)
> `(call-3c? '(lambda (node cache cache?) ;;<<<<<<<<------ This is the "offending" LoC ...
> (declare (ignorable cache cache?))
> (let ((*calc-nodes* (cons node *calc-nodes*)))
> ,rule)) ;;<<<<<<<<<------ There cache is not defined anymore - see below for explanation ...
> :test ,test
> :observer ,observer
> :ephemeral ,ephemeral))
>
> When running #'test-prep I get the following last lines in a trace:
>
> 0> 3c?-rule: got rule "(lambda (triple-cells::node triple-cells::cache triple-cells::cache?)
> (declare (ignorable triple-cells::cache triple-cells::cache?))
> (let ((triple-cells::*calc-nodes*
> (cons triple-cells::node triple-cells::*calc-nodes*)))
> (let ((h (3c (3c-find-id \"dell\") !hw:happen)))
> (trc \"rule sees happen\" h)
> (cond ((string-equal h \"arrive\") \"home\")
> ((string-equal h \"leave\") \"away\")
> (triple-cells::cache? cache)
> (t \"away\")))))"
>
> I can't see what is wrong with this...
cache needs the explicit package as well:
(cond ((string-equal h \"arrive\") \"home\")
((string-equal h \"leave\") \"away\")
(triple-cells::cache? triple-cells::cache) ;;<-- need package on both
(t \"away\")))))"
HTH, ken
18 Mar 2012 23:04
18 Mar 2012 22:53
Triple Cells: AllegroGraph 4.5 "porting"
Frank Goenninger <frgo <at> me.com>
2012-03-18 21:53:13 GMT
2012-03-18 21:53:13 GMT
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. I am running in a situation where I get a problem with 3c-pulse-advance: (I have instrumented 3c a bit ...0> PULSE> ---- advancing: (:change) 0> 3c-make storing type !hw:computer future-part 0> 3c-in nil t equal !hw:echo-happen {_:anon4} 0> stmt-new called with {_:anon3} !hw:happen {_:anon4} {_:anon4} 0> stmt-new (3c-cell? o) <_:anon4 type input> 0> 3c-install-cell called with s p o {_:anon3} !hw:happen {_:anon4} 0> subject-cells-node called with s = {_:anon3} 0> subject-cells-node tr nil 0> subject-cells-node new-blank-node {_:anon5} 0> subject-cells-node (add-triple s !ccc:cells n) 13 0> 3c-install-cell subject-cells-node s = {_:anon5} 0> subject-cells-node called with s = {_:anon3} 0> subject-cells-node tr <_:anon3 cells _:anon5> 0> subject-cells-node (object tr) = {_:anon5} 0> 3c-install-cell (add-triple (subject-cells-node s) p o) 14 0> 3c-install-cell (add-triple o !ccc:is-cell-of-model s) 15 0> 3c-install-cell (add-triple o !ccc:is-cell-of-predicate p) 16 0> stmt-new called with {_:anon3} !hw:location {_:anon6} {_:anon6} 0> stmt-new (3c-cell? o) <_:anon6 type ruled> 0> 3c-install-cell called with s p o {_:anon3} !hw:location {_:anon6} 0> subject-cells-node called with s = {_:anon3} 0> subject-cells-node tr <_:anon3 cells _:anon5> 0> subject-cells-node (object tr) = {_:anon5} 0> 3c-install-cell subject-cells-node s = {_:anon5} 0> subject-cells-node called with s = {_:anon3} 0> subject-cells-node tr <_:anon3 cells _:anon5> 0> subject-cells-node (object tr) = {_:anon5} 0> 3c-install-cell (add-triple (subject-cells-node s) p o) 22 0> 3c-install-cell (add-triple o !ccc:is-cell-of-model s) 23 0> 3c-install-cell (add-triple o !ccc:is-cell-of-predicate p) 24 0> stmt-new called with {_:anon3} !hw:response {_:anon7} {_:anon7} 0> stmt-new (3c-cell? o) <_:anon7 type ruled> 0> 3c-install-cell called with s p o {_:anon3} !hw:response {_:anon7} 0> subject-cells-node called with s = {_:anon3} 0> subject-cells-node tr <_:anon3 cells _:anon5> 0> subject-cells-node (object tr) = {_:anon5} 0> 3c-install-cell subject-cells-node s = {_:anon5} 0> subject-cells-node called with s = {_:anon3} 0> subject-cells-node tr <_:anon3 cells _:anon5> 0> subject-cells-node (object tr) = {_:anon5} 0> 3c-install-cell (add-triple (subject-cells-node s) p o) 31 0> 3c-install-cell (add-triple o !ccc:is-cell-of-model s) 32 0> 3c-install-cell (add-triple o !ccc:is-cell-of-predicate p) 33 0> cell-model called with c = {_:anon7} 0> cell-model object {_:anon3} 0> subject-cells-node called with s = {_:anon3} 0> subject-cells-node tr <_:anon3 cells _:anon5> 0> subject-cells-node (object tr) = {_:anon5} 0> subject-cells-node called with s = {_:anon3} 0> subject-cells-node tr <_:anon3 cells _:anon5> 0> subject-cells-node (object tr) = {_:anon5} 0> 3c-cell-pulse: c = {_:anon6} 0> 3c-cell-pulse: sp = nil 0> 3c-cell-pulse: sp is NIL ! It would help if you could shed some light on this ... (I know you have other stuff to do but still
TIA! Hope all is fine on your side. Missing you on c.l.l. ... Cheers Frank
18 Mar 2012 19:20
functional programming
Dan Lentz <danlentz <at> gmail.com>
2012-03-18 18:20:05 GMT
2012-03-18 18:20:05 GMT
I'm an extreme newbie to cells and have just begun reviewing the literature so this may be a FAQ, but in general how does cells relate to "functional" programming practice? My first reaction is that is seems antithetical, as it inherently introduces state and eliminates referential transparency. However if one looks at it as a declarative approach in making statements about relations, perhaps not. maybe it can therefore be used in a functional style along the same lines as standard clos/mop, which can also be considered stateful if evaluated at the level of the individual sub protocols etc. Really my question is "is cells something one should consider if otherwise one has worked hard to achieve functional style practices?" ---- Replace the method the carefully chosen name deletes the comment
1 Feb 2012 14:07
ELS 2012, Zadar, Croatia
Marco Antoniotti <marcoxa <at> cs.nyu.edu>
2012-02-01 13:07:47 GMT
2012-02-01 13:07:47 GMT
Apologies for the multiple postings. PAPER SUBMISSION DEADLINE EXTENDED European Lisp Symposium 2012, Zadar, Croatia, April 30th - May 1st, 2012 http://european-lisp-symposium.org The purpose of the European Lisp Symposium is to provide a forum for the discussion and dissemination of all aspects of design, implementation and application of any of the Lisp and Lisp-inspired dialects, including Common Lisp, Scheme, Emacs Lisp, AutoLisp, ISLISP, Dylan, Clojure, ACL2, ECMAScript, Racket, SKILL, and so on. We encourage everyone interested in Lisp to participate. The main theme of the 2012 European Lisp Conference is "Interoperability: Systems, Libraries, Workflows". Lisp based and functional-languages based systems have grown a variety of solutions to become more and more integrated with the wider world of Information and Communication Technologies in current use. There are several dimensions to the scope of the solutions proposed, ranging from "embedding" of interpreters in C-based systems, to the development of abstractions levels that facilitate the expression of complex context dependent tasks, to the construction of exchange formats handling libraries, to the construction of theorem-provers for the "Semantic Web". The European Lisp Symposium 2012 solicits the submission of papers with this specific theme in mind, alongside the more traditional tracks which have appeared in the past editions. We invite submissions in the following forms: Papers: Technical papers of up to 15 pages that describe original results or explain known ideas in new and elegant ways. Demonstrations: Abstracts of up to 4 pages for demonstrations of tools, libraries, and applications. Tutorials: Abstracts of up to 4 pages for in-depth presentations about topics of special interest for at least 90 minutes and up to 180 minutes. Lightning talks: Abstracts of up to one page for talks to last for no more than 5 minutes. All submissions should be formatted following the ACM SIGS guidelines and include ACM classification categories and terms. For more information on the submission guidelines and the ACM keywords, see: http://www.acm.org/sigs/publications/proceedings-templates and http://www.acm.org/about/class/1998. Important dates: February 15th 2012: submission deadline (extended deadline) March 7th 2012: acceptance results April 30th 2012: Conference opens Program Commitee. Chair: Marco Antoniotti, Università degli Studi di Milano Bicocca, Milan, ITALY Local organizers: Damir Cavar, Eastern Michigan University Franjo Pehar, University of Zadar Damir Kero, University of Zadar Members: Giuseppe Attardi, Università degli Studi di Pisa, Pisa, ITALY Pascal Costanza, Intel, Bruxelles, BELGIUM Marc Feeley, Université de Montreal, Montreal, CANADA Scott McKay, Google, U.S.A. Kent Pitman, U.S.A. Christophe Rhodes, Department of Computing, Goldsmiths, University of London, London, UNITED KINGDOM Robert Strandh, LABRI, Université de Bordeaux, Bordaux, FRANCE Didier Verna, EPITA / LRDE, FRANCE Taiichi Yuasa, Kyoto University, JAPAN -- Marco Antoniotti
23 Jan 2012 12:59
ELS2012 Zadar, Croatia, Call for Papers
Marco Antoniotti <marcoxa <at> cs.nyu.edu>
2012-01-23 11:59:39 GMT
2012-01-23 11:59:39 GMT
Apologies for the multiple postings... =========================================================================== European Lisp Symposium 2012, Zadar, Croatia, April 30th - May 1st, 2012 http://european-lisp-symposium.org The purpose of the European Lisp Symposium is to provide a forum for the discussion and dissemination of all aspects of design, implementation and application of any of the Lisp and Lisp-inspired dialects, including Common Lisp, Scheme, Emacs Lisp, AutoLisp, ISLISP, Dylan, Clojure, ACL2, ECMAScript, Racket, SKILL, and so on. We encourage everyone interested in Lisp to participate. The main theme of the 2012 European Lisp Conference is "Interoperabilty: Systems, Libraries, Workflows". Lisp based and functional-languages based systems have grown a variety of solutions to become more and more integrated with the wider world of Information and Communication Technologies in current use. There are several dimensions to the scope of the solutions proposed, ranging from "embedding" of interpreters in C-based systems, to the development of abstractions levels that facilitate the expression of complex context dependent tasks, to the construction of exchange formats handling libraries, to the construction of theorem-provers for the "Semantic Web". The European Lisp Symposium 2012 solicits the submission of papers with this specific theme in mind, alongside the more traditional tracks which have appeared in the past editions. We invite submissions in the following forms: Papers: Technical papers of up to 15 pages that describe original results or explain known ideas in new and elegant ways. Demonstrations: Abstracts of up to 4 pages for demonstrations of tools, libraries, and applications. Tutorials: Abstracts of up to 4 pages for in-depth presentations about topics of special interest for at least 90 minutes and up to 180 minutes. Lightning talks: Abstracts of up to one page for talks to last for no more than 5 minutes. All submissions should be formatted following the ACM SIGS guidelines and include ACM classification categories and terms. For more information on the submission guidelines and the ACM keywords, see: http://www.acm.org/sigs/publications/proceedings-templates and http://www.acm.org/about/class/1998. Important dates: Jan 31st 2012: submission deadline Feb 21st 2012: acceptance results April 30th, 2012 Conference opens Program Commitee. Chair: Marco Antoniotti, Università degli Studi di Milano Bicocca, Milan, ITALY Local organizers: Damir Ćavar, Eastern Michigan University Franjo Pehar, University of Zadar Damir Kero, University of Zadar Members: Giuseppe Attardi, Università degli Studi di Pisa, Pisa, ITALY Pascal Costanza, Intel, Bruxelles, BELGIUM Marc Feeley, Université de Montreal, Montreal, CANADA Scott McKay, Google, U.S.A. Kent Pitman, U.S.A. Christophe Rhodes, Department of Computing, Goldsmiths, University of London, London, UNITED KINGDOM Robert Strandh, LABRI, Université de Bordeaux, Bordaux, FRANCE Didier Verna, EPITA / LRDE, FRANCE Taiichi Yuasa, Kyoto University, JAPAN _______________________________________________ cells-devel site list cells-devel <at> common-lisp.net http://common-lisp.net/mailman/listinfo/cells-devel
0> PULSE> ---- advancing: (:change)
0> 3c-make storing type !hw:computer future-part
0> 3c-in nil t equal !hw:echo-happen {_:anon4}
0> stmt-new called with {_:anon3} !hw:happen {_:anon4} {_:anon4}
0> stmt-new (3c-cell? o) <_:anon4 type input>
0> 3c-install-cell called with s p o {_:anon3} !hw:happen {_:anon4}
0> subject-cells-node called with s = {_:anon3}
0> subject-cells-node tr nil
0> subject-cells-node new-blank-node {_:anon5}
0> subject-cells-node (add-triple s !ccc:cells n) 13
0> 3c-install-cell subject-cells-node s = {_:anon5}
0> subject-cells-node called with s = {_:anon3}
0> subject-cells-node tr <_:anon3 cells _:anon5>
0> subject-cells-node (object tr) = {_:anon5}
0> 3c-install-cell (add-triple (subject-cells-node s) p o) 14
0> 3c-install-cell (add-triple o !ccc:is-cell-of-model s) 15
0> 3c-install-cell (add-triple o !ccc:is-cell-of-predicate p) 16
0> stmt-new called with {_:anon3} !hw:location {_:anon6} {_:anon6}
0> stmt-new (3c-cell? o) <_:anon6 type ruled>
0> 3c-install-cell called with s p o {_:anon3} !hw:location {_:anon6}
0> subject-cells-node called with s = {_:anon3}
0> subject-cells-node tr <_:anon3 cells _:anon5>
0> subject-cells-node (object tr) = {_:anon5}
0> 3c-install-cell subject-cells-node s = {_:anon5}
0> subject-cells-node called with s = {_:anon3}
0> subject-cells-node tr <_:anon3 cells _:anon5>
0> subject-cells-node (object tr) = {_:anon5}
0> 3c-install-cell (add-triple (subject-cells-node s) p o) 22
0> 3c-install-cell (add-triple o !ccc:is-cell-of-model s) 23
0> 3c-install-cell (add-triple o !ccc:is-cell-of-predicate p) 24
0> stmt-new called with {_:anon3} !hw:response {_:anon7} {_:anon7}
0> stmt-new (3c-cell? o) <_:anon7 type ruled>
0> 3c-install-cell called with s p o {_:anon3} !hw:response {_:anon7}
0> subject-cells-node called with s = {_:anon3}
0> subject-cells-node tr <_:anon3 cells _:anon5>
0> subject-cells-node (object tr) = {_:anon5}
0> 3c-install-cell subject-cells-node s = {_:anon5}
0> subject-cells-node called with s = {_:anon3}
0> subject-cells-node tr <_:anon3 cells _:anon5>
0> subject-cells-node (object tr) = {_:anon5}
0> 3c-install-cell (add-triple (subject-cells-node s) p o) 31
0> 3c-install-cell (add-triple o !ccc:is-cell-of-model s) 32
0> 3c-install-cell (add-triple o !ccc:is-cell-of-predicate p) 33
0> cell-model called with c = {_:anon7}
0> cell-model object {_:anon3}
0> subject-cells-node called with s = {_:anon3}
0> subject-cells-node tr <_:anon3 cells _:anon5>
0> subject-cells-node (object tr) = {_:anon5}
0> subject-cells-node called with s = {_:anon3}
0> subject-cells-node tr <_:anon3 cells _:anon5>
0> subject-cells-node (object tr) = {_:anon5}
0> 3c-cell-pulse: c = {_:anon6}
0> 3c-cell-pulse: sp = nil
0> 3c-cell-pulse: sp is NIL !
It would help if you could shed some light on this ... (I know you have other stuff to do but still
RSS Feed