From bdminton at gmail.com Sun Sep 2 18:06:45 2007 From: bdminton at gmail.com (Benjamin Minton) Date: Mon, 3 Sep 2007 08:06:45 +1000 Subject: [Aiml-programr-developers] Test Message Mailing List Message-ID: Test Message Mailing List -- B.D.Minton Brisbane QLD AU bdminton at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/aiml-programr-developers/attachments/20070903/75e0ba6c/attachment.html From ntoll at ntoll.org Sun Sep 2 18:30:02 2007 From: ntoll at ntoll.org (Nicholas H.Tollervey) Date: Sun, 02 Sep 2007 23:30:02 +0100 Subject: [Aiml-programr-developers] First post summary... Message-ID: <46DB396A.5080402@ntoll.org> For the sake of completeness, the following is a summary of Mauro's suggestions for modus operandi and the next steps: I would like to rework with you the whole project, I think it would be much more fun than fixing the old one. Still, it is nice to have something that works to play with. I think that we should then proceed as follows: 1 - we select a small set of classes we consider "central" 2 - we discuss and rework them 2.1 - If possible we do not break programR, but this is not a priority 3 - priority is to have Unit/Functional tests for the central classes After a while, the old classes will all be integrated/obsolete. I think that as first step, this should do. We can use Dia for UML, but in a typical TestDrivenDevelopment, the test remain central, not the design. A good candidate as "central class" is graph_master. I would like to add that I think we should also have a clear specification of the processes we intend to implement through the use of use-cases, stories and the more formal activity diagrams. Like Mauro (see above), I think reworking the whole project rather than fixing the old one will be more fun and give us more scope for changing and re-designing (where necessary) the library. Best wishes, Nicholas From mauro at cicio.org Thu Sep 6 16:37:10 2007 From: mauro at cicio.org (mauro at cicio.org) Date: Thu, 6 Sep 2007 22:37:10 +0200 Subject: [Aiml-programr-developers] test Message-ID: Hi All From mauro at cicio.org Fri Sep 7 02:56:43 2007 From: mauro at cicio.org (mauro at cicio.org) Date: Fri, 7 Sep 2007 08:56:43 +0200 Subject: [Aiml-programr-developers] Home site Message-ID: Hi there, I usually have a slight sense of frustration when I see a projects that does not have it's hown home page to show. Since we have one, it would be good to have it linked from rubyforge. I am used to SourceForge, where you get a ssh access, but I don't know how to set the home page in RubyForge. Do you have any idea? the link is: http://projects.dottorsi.com/programr Ciao, Mauro From mauro at cicio.org Fri Sep 7 04:00:08 2007 From: mauro at cicio.org (mauro at cicio.org) Date: Fri, 7 Sep 2007 10:00:08 +0200 Subject: [Aiml-programr-developers] Items for the next release Message-ID: The following in in brainstorming mode. = RAKE ===== Nicholas, time ago, has suggested, among other things, to offer a rake interface to the tests. Even if the current ./bin/test is fine to me for the moment, I agree in saying that a rake would be much better choice considering that the amount of tests should be growing and we might want to group them in different orders. Still, I think that it would be better not to create unnecessary dependencies for our users. My opinion: yes to rake for the developer tasks, no user tasks rake based. What do you think? If you agree, I would put rake in the todo list with lower priority than, say, actually begin writing the tests. = TEST SET ======== The supported features so far should be the ones in http://projects.dottorsi.com/ki/programr/pages/Features It might be that the list is not 100% up-to-date. I think that at the moment the one that knows the most of AIML among us is Nicholas, so I believe that he is the best fit to select an appropriate test set (of course if Nicholas likes the idea to have also this task). Do you have THE list of tests that we have to pass in order to consider programR compliant to the AIML standards? If you do, then I would consider as one of the highest priority tasks to have this list in our todo (on task per each item of the list). = GRAPHMASTER OR NOT GRAPHMASTER? ========================== On the "kernel" side, I have proposed to begin from the GRAPHMASTER. It should have some basic tests and it should be well understood before proceeding. We have to know how it works in order to understand how it can be improved to support all the AIML tags which are not yet supported. In a chat with Ben, it came out that this could be an interesting starting point for him as well. = OTHERS ======= Like the Agile Developers say, we either have A - a fixed time frame and we do as much as we can or B - a fixed amount of features and we do them as soon as we can Just as a discussion base, I propose to work with B with the following features: - solid test/verification of the current supported TAGS - improved felxibility of the kernel - standardization of the delivery package (gem?) It is probably worh to repeat it: I am 100% in brainstorming mode. Ciao, Mauro From ntoll at ntoll.org Fri Sep 7 18:14:47 2007 From: ntoll at ntoll.org (Nicholas H.Tollervey) Date: Fri, 07 Sep 2007 23:14:47 +0100 Subject: [Aiml-programr-developers] Items for the next release In-Reply-To: References: Message-ID: <46E1CD57.6000904@ntoll.org> Guys, First off, apologies for being off the radar for a few days... "real-life" has imposed itself on my time - my wife is due with our third child in a fortnight - so I've had lots to do (putting up nursery related things, buying nappies etc...). However, I'm at a UK Python developers conference this weekend and there are a number of hours free in the schedule when I can do the things I've been meaning to do for ProgramR. They are: 1. Finish the high-level activity diagram and associated notes I started on Wednesday. This explains the life cycle of a request to an AIML bot. I'm including examples of how the input text is normalised and output text generated (according to the AIML standard) so the various activities associated with a request / response include concrete examples. 2. Write up how I did the graphmaster algorithm in Program#. We can use this as a compare and contrast exercise with the current implementation. My main concern is that I think in a C-like way and I'll need guidance on how best to do stuff the Ruby way. :-) Something I'm looking forward to. 3. Start looking at / organising the unit tests. Program# has over 200 associated with it... the original ProgramD provides another set (my own evolved from this set). I'll dig up the ProgramD unit tests from their CVS site. There is no "official" test-set, although the AIML specification is mostly good at being unambiguous when it comes to handling the AIML tags, so we can use that as vade mecum. Now, onto Mauro's email: Rake seems to be an excellent tool for project automation - and I certainly believe that we should automate as much as possible. However, I agree that we should impose as few constraints on "regular" users. I personally think we should concentrate on implementing a Ruby library with Rake and unit tests and other things for developers and also create a simple (and less encumbered - dependency wise) GUI (TK?) application for non-devs who want to play. All this to come under the umbrella of "ProgramR". As I suggested above, I don't mind at all taking ownership of the unit tests. This is, of course, only one of the tasks we should start before actually coding. We should spend some time working out the basic geography / organisation of the project so we meet our 1.0 goal of a fully compliant AIML implementation in Ruby. I also agree with Mauro's suggestion of having a fixed amount of features that we do as soon as we can. I'll post to this list (and possibly also to my blog) the work I mentioned at the start of this email as and when it gets finished. Ciao, Nicholas mauro at cicio.org wrote: > The following in in brainstorming mode. > > = RAKE > ===== > Nicholas, time ago, has suggested, among other things, to offer a rake > interface to the tests. > Even if the current ./bin/test is fine to me for the moment, I agree > in saying that a rake would be much better choice considering that the > amount of tests should be growing and we might want to group them in > different orders. > Still, I think that it would be better not to create unnecessary > dependencies for our users. > My opinion: yes to rake for the developer tasks, no user tasks rake based. > What do you think? > If you agree, I would put rake in the todo list with lower priority > than, say, actually begin writing the tests. > > = TEST SET > ======== > The supported features so far should be the ones in > http://projects.dottorsi.com/ki/programr/pages/Features > It might be that the list is not 100% up-to-date. > I think that at the moment the one that knows the most of AIML among > us is Nicholas, so I believe that he is the best fit to select an > appropriate test set (of course if Nicholas likes the idea to have > also this task). > Do you have THE list of tests that we have to pass in order to > consider programR compliant to the AIML standards? If you do, then I > would consider as one of the highest priority tasks to have this list > in our todo (on task per each item of the list). > > = GRAPHMASTER OR NOT GRAPHMASTER? > ========================== > On the "kernel" side, I have proposed to begin from the GRAPHMASTER. > It should have some basic tests and it should be well understood > before proceeding. We have to know how it works in order to understand > how it can be improved to support all the AIML tags which are not yet > supported. > In a chat with Ben, it came out that this could be an interesting > starting point for him as well. > > = OTHERS > ======= > Like the Agile Developers say, we either have > A - a fixed time frame and we do as much as we can > or > B - a fixed amount of features and we do them as soon as we can > > Just as a discussion base, I propose to work with B with the following features: > - solid test/verification of the current supported TAGS > - improved felxibility of the kernel > - standardization of the delivery package (gem?) > > It is probably worh to repeat it: I am 100% in brainstorming mode. > > Ciao, > Mauro > _______________________________________________ > Aiml-programr-developers mailing list > Aiml-programr-developers at rubyforge.org > http://rubyforge.org/mailman/listinfo/aiml-programr-developers > > From ntoll at ntoll.org Fri Sep 7 18:21:15 2007 From: ntoll at ntoll.org (Nicholas H.Tollervey) Date: Fri, 07 Sep 2007 23:21:15 +0100 Subject: [Aiml-programr-developers] Home site In-Reply-To: References: Message-ID: <46E1CEDB.2030004@ntoll.org> Mauro, Hmm... when you set up the project did you not get information regarding access to web space at ruby-forge (according to the admin page it should be in the */var/www/gforge-projects/aiml-programr directory). Alternatively you can select the "Edit Public Info" link under the admin tab and change the homepage URL. I'll leave it up to you to decide where this should point. :-) Nicholas * mauro at cicio.org wrote: > Hi there, > > I usually have a slight sense of frustration when I see a projects > that does not have it's hown home page to show. Since we have one, it > would be good to have it linked from rubyforge. I am used to > SourceForge, where you get a ssh access, but I don't know how to set > the home page in RubyForge. > Do you have any idea? the link is: > > http://projects.dottorsi.com/programr > > Ciao, > Mauro > _______________________________________________ > Aiml-programr-developers mailing list > Aiml-programr-developers at rubyforge.org > http://rubyforge.org/mailman/listinfo/aiml-programr-developers > > From bdminton at gmail.com Fri Sep 7 21:20:53 2007 From: bdminton at gmail.com (Benjamin Minton) Date: Sat, 8 Sep 2007 11:20:53 +1000 Subject: [Aiml-programr-developers] Thoughts on programR AIML ver 1.0 Message-ID: High level diagramme: Nick, when you get a chance can you please send me a copy of the diagrammee as I would like to read through it and start to get a handle on the programR work-flow process. Just confirm that you are using the Gnome package Dia for these UML images. Once I get a solid understanding of this, I could author a complete, precise and complex document detailing exactly how this process occurs. The I will make a simpler version to be included as part of the Userspace Tools & Documents. Tests: I agree with this, on the concepts of good projects is good user documentation and tests. There are many test models that we can use from the Ruby codespace and in particular Ruby on Rails. I was wondering if we could make programR into a Rails application also or just leave it as a standalone package depedndent on the Ruby Librabries or even both.. Rake: I like the concept of automation, certainly for testing/deployment but recognise the value of developing a dual user fork, one for developers and the other for users. As far as an interface, if we just code a GUI based on another common well-supported Open Source library (Tcl/TK) that should allow maximum cross system interoperability. I know that none of us like WIN software but we will need to code for it in some capacity I think. Or alternately, ProgramR is only going to be an application served by a webserver. I think this is one of those key geography questions that you are asking Nick. Maybe both then, a simple standalone version with all enclosed libraries, documentation, tests etc that can run standalone and a full developers version that runs via Apache or a Rails application. Organisation: I'd be happy to start write user Documentation, deployment instructions onto *nix based systems, with perhaps a focus on Debian-based distributions. I already have a monster HOWTO on installing/configuring RadiantCMS/Rails onto a Debian Etch Server. Could also migrate that rather easily into an Ubuntu specific HOWTO also. I'd also be happy to run/report all tests as they get built and configure some sort of benchmarking programme to report of direct shell enquiries to the interpreter and via an interface (webserver/standalone). Comments welcome! Nick: congratulations on the impending child ... awesome! Regards, Ben. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/aiml-programr-developers/attachments/20070908/4c60a4f0/attachment-0001.html From ntoll at ntoll.org Sat Sep 8 01:52:15 2007 From: ntoll at ntoll.org (Nicholas H.Tollervey) Date: Sat, 08 Sep 2007 06:52:15 +0100 Subject: [Aiml-programr-developers] Thoughts on programR AIML ver 1.0 In-Reply-To: References: Message-ID: <46E2388F.60209@ntoll.org> Just a quick note, Yes, I'm using Dia for UML diagrams. I'll probably embed them into an OOo doc - in fact I'll add the files to subversion. Speak to you soon, Nicholas Benjamin Minton wrote: > High level diagramme: > > Nick, when you get a chance can you please send me a copy of the > diagrammee as I would like to read through it and start to get a > handle on the programR work-flow process. Just confirm that you are > using the Gnome package Dia for these UML images. > > Once I get a solid understanding of this, I could author a complete, > precise and complex document detailing exactly how this process > occurs. The I will make a simpler version to be included as part of > the Userspace Tools & Documents. > > Tests: > > I agree with this, on the concepts of good projects is good user > documentation and tests. There are many test models that we can use > from the Ruby codespace and in particular Ruby on Rails. I was > wondering if we could make programR into a Rails application also or > just leave it as a standalone package depedndent on the Ruby > Librabries or even both.. > > Rake: > > I like the concept of automation, certainly for testing/deployment but > recognise the value of developing a dual user fork, one for developers > and the other for users. As far as an interface, if we just code a GUI > based on another common well-supported Open Source library (Tcl/TK) > that should allow maximum cross system interoperability. I know that > none of us like WIN software but we will need to code for it in some > capacity I think. Or alternately, ProgramR is only going to be an > application served by a webserver. I think this is one of those key > geography questions that you are asking Nick. Maybe both then, a > simple standalone version with all enclosed libraries, documentation, > tests etc that can run standalone and a full developers version that > runs via Apache or a Rails application. > > Organisation: > > I'd be happy to start write user Documentation, deployment > instructions onto *nix based systems, with perhaps a focus on > Debian-based distributions. I already have a monster HOWTO on > installing/configuring RadiantCMS/Rails onto a Debian Etch Server. > Could also migrate that rather easily into an Ubuntu specific HOWTO also. > > I'd also be happy to run/report all tests as they get built and > configure some sort of benchmarking programme to report of direct > shell enquiries to the interpreter and via an interface > (webserver/standalone). > > Comments welcome! > > Nick: congratulations on the impending child ... awesome! > > Regards, Ben. > ------------------------------------------------------------------------ > > _______________________________________________ > Aiml-programr-developers mailing list > Aiml-programr-developers at rubyforge.org > http://rubyforge.org/mailman/listinfo/aiml-programr-developers > From bdminton at gmail.com Sun Sep 9 01:30:36 2007 From: bdminton at gmail.com (Benjamin Minton) Date: Sun, 9 Sep 2007 15:30:36 +1000 Subject: [Aiml-programr-developers] Test Email Only Message-ID: Test Email Only -------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/aiml-programr-developers/attachments/20070909/bd87d561/attachment.html From ntoll at ntoll.org Sun Sep 9 03:46:55 2007 From: ntoll at ntoll.org (Nicholas H.Tollervey) Date: Sun, 09 Sep 2007 08:46:55 +0100 Subject: [Aiml-programr-developers] e-mail problems? In-Reply-To: References: Message-ID: <46E3A4EF.7040804@ntoll.org> Yeah, I sent on yesterday (8th Sept) and a couple the day before. I've also cc'd the list with this email. Hope it gets through. Nicholas mauro at cicio.org wrote: > Hi, > > I am not receiving mails from anybody. Have you sent anything to our > programR in the last 3 days? > > Ciao, > Mauro > > From mauro at cicio.org Sun Sep 9 05:08:26 2007 From: mauro at cicio.org (mauro at cicio.org) Date: Sun, 9 Sep 2007 11:08:26 +0200 Subject: [Aiml-programr-developers] Items for the next release In-Reply-To: <46E1CD57.6000904@ntoll.org> References: <46E1CD57.6000904@ntoll.org> Message-ID: Apologies to you and your wife for stealing you time right now! Compliments for the newcomer! In the following I try to find the concrete tasks to write in our list and to see what I can do for the project in the next days. If you need my help in other areas, please just say so. * On your point 1: of course this is going to be very valuable! - What I can do: not too much I am afraid, but given that I have been designing for years, if you need me to review your design, just ask. Your call. * On your point 2: yes, I think comparing graphmasters of programR and Program# is the best way for all of us to learn from our experiences. If possible, I would suggest to prepare the ground by working on the programR graphmaster in parallel. More concretely: a - Nicholas documents Program#'s graphmaster b - Ben and I document programR's one. (Ben, if you are still up to it, I would be glad to brainstorm, give feedback and support your effort to study/document the graphmaster. Just let me know.) c - Once we all know about the 2 experiences, we brainstorm on them and, eventually, generate the programR 2 concept. If it is OK for you, I think we can extract from the above concrete tasks to be put in our task list. - What I can do: as agreed wiith Ben, I'll support all his activity in understanding/documenting GM. Ben's call. * On your point 3 You say that there is not an "official" test-set. I believe that this is a great service we can offer to the community: a well done and complete test set with punctual references to the AIML documentation. If we do a good job, other implementations could benefit from it (and port our tests to their benefit) - What I can do: help in coding the tests specified by Nick (may I use Nick? I am a slow typer...) Rake vs sh --------------- To be clear: I am 100% for automation (being a linux user for 12 years :-)) I guess I consider "natural" to use the shell, not Rake. I see Rake as something that creates an additional dependency for the end user that is not a rubyst. I think I have to review this position of mine because: + ruby is much more spread now than when I begun using it + rake is probably an accepted standard by now (is it part the ruby distribution?) + the end user probably does not use neither sh nor rake So, on my side, I welcome using rake for our tests if you prefer so. Currently programR runs the tests from bin/test (we have seen that the tests work fine). - Rubify ----------- Probably I am the one with the longest ruby experience and amount of red books on this language. I would be glad to support you both in making the R in programR as big as possible!!! (now is a bit to C (loris) or Java (mauro)) Ciao, Mauro > They are: > > 1. Finish the high-level activity diagram and associated notes I started > on Wednesday. This explains the life cycle of a request to an AIML bot. > I'm including examples of how the input text is normalised and output > text generated (according to the AIML standard) so the various > activities associated with a request / response include concrete examples. > 2. Write up how I did the graphmaster algorithm in Program#. We can use > this as a compare and contrast exercise with the current implementation. > My main concern is that I think in a C-like way and I'll need guidance > on how best to do stuff the Ruby way. :-) Something I'm looking forward to. > 3. Start looking at / organising the unit tests. Program# has over 200 > associated with it... the original ProgramD provides another set (my own > evolved from this set). I'll dig up the ProgramD unit tests from their > CVS site. There is no "official" test-set, although the AIML > specification is mostly good at being unambiguous when it comes to > handling the AIML tags, so we can use that as vade mecum. > > Now, onto Mauro's email: > > Rake seems to be an excellent tool for project automation - and I > certainly believe that we should automate as much as possible. However, > I agree that we should impose as few constraints on "regular" users. I > personally think we should concentrate on implementing a Ruby library > with Rake and unit tests and other things for developers and also create > a simple (and less encumbered - dependency wise) GUI (TK?) application > for non-devs who want to play. All this to come under the umbrella of > "ProgramR". > > As I suggested above, I don't mind at all taking ownership of the unit > tests. This is, of course, only one of the tasks we should start before > actually coding. We should spend some time working out the basic > geography / organisation of the project so we meet our 1.0 goal of a > fully compliant AIML implementation in Ruby. I also agree with Mauro's > suggestion of having a fixed amount of features that we do as soon as we > can. > > I'll post to this list (and possibly also to my blog) the work I > mentioned at the start of this email as and when it gets finished. > > Ciao, > > Nicholas > > mauro at cicio.org wrote: > > The following in in brainstorming mode. > > > > = RAKE > > ===== > > Nicholas, time ago, has suggested, among other things, to offer a rake > > interface to the tests. > > Even if the current ./bin/test is fine to me for the moment, I agree > > in saying that a rake would be much better choice considering that the > > amount of tests should be growing and we might want to group them in > > different orders. > > Still, I think that it would be better not to create unnecessary > > dependencies for our users. > > My opinion: yes to rake for the developer tasks, no user tasks rake based. > > What do you think? > > If you agree, I would put rake in the todo list with lower priority > > than, say, actually begin writing the tests. > > > > = TEST SET > > ======== > > The supported features so far should be the ones in > > http://projects.dottorsi.com/ki/programr/pages/Features > > It might be that the list is not 100% up-to-date. > > I think that at the moment the one that knows the most of AIML among > > us is Nicholas, so I believe that he is the best fit to select an > > appropriate test set (of course if Nicholas likes the idea to have > > also this task). > > Do you have THE list of tests that we have to pass in order to > > consider programR compliant to the AIML standards? If you do, then I > > would consider as one of the highest priority tasks to have this list > > in our todo (on task per each item of the list). > > > > = GRAPHMASTER OR NOT GRAPHMASTER? > > ========================== > > On the "kernel" side, I have proposed to begin from the GRAPHMASTER. > > It should have some basic tests and it should be well understood > > before proceeding. We have to know how it works in order to understand > > how it can be improved to support all the AIML tags which are not yet > > supported. > > In a chat with Ben, it came out that this could be an interesting > > starting point for him as well. > > > > = OTHERS > > ======= > > Like the Agile Developers say, we either have > > A - a fixed time frame and we do as much as we can > > or > > B - a fixed amount of features and we do them as soon as we can > > > > Just as a discussion base, I propose to work with B with the following features: > > - solid test/verification of the current supported TAGS > > - improved felxibility of the kernel > > - standardization of the delivery package (gem?) > > > > It is probably worh to repeat it: I am 100% in brainstorming mode. > > > > Ciao, > > Mauro > > _______________________________________________ > > Aiml-programr-developers mailing list > > Aiml-programr-developers at rubyforge.org > > http://rubyforge.org/mailman/listinfo/aiml-programr-developers > > > > > > _______________________________________________ > Aiml-programr-developers mailing list > Aiml-programr-developers at rubyforge.org > http://rubyforge.org/mailman/listinfo/aiml-programr-developers > From ntoll at ntoll.org Sun Sep 9 06:28:55 2007 From: ntoll at ntoll.org (Nicholas H.Tollervey) Date: Sun, 09 Sep 2007 11:28:55 +0100 Subject: [Aiml-programr-developers] Items for the next release In-Reply-To: References: <46E1CD57.6000904@ntoll.org> Message-ID: <46E3CAE7.4090009@ntoll.org> Guys, I'm emailing between talks at the UK Python conference, so this will be quick. Expect a bigger email later today or start of next week with various diagrams and pseudo code for the graphmaster. Put simply, I agree with all the points you make Mauro. Just to clarify specifics: * Test suite: the ProgramD tests are probably the best place to start. I've just been in a Python talk about crafting and writing a test suite that reflects a concrete specification so will use the good advice I got in there to start this task. I agree with you Mauro, it woudl be a good community resource to provide this. * Rake: IIRC, apart from on Debian based distros (where Ruby is cut into smaller packages) the Ruby package for Windows, Mac OSX and other distros includes Rake. As we're a Ruby project we might as well use it as we'll be certain it will be there (whereas shell script won't for Windows users - assuming we still agree on cross-platform as a "feature"). * Rubyfy: The great thing about conferences is that O'Reilly always have a stand with 33% discount. I'm going to have to confess that I've been buying more Ruby than Python books :-) Thanks for your comments about our imminent arrival. This is no.3 for us so we almost know what we're doing. To be honest, the worst thing is the waiting for Mary to "pop". The alleged due date is 19th Sept but (as I'm sure you know) a baby can be full-term and arrive two weeks either side of this date - and if this one is like our other two, it'll be a fortnight late. :-( Interesting times ahead... :-) Best wishes, Nicholas mauro at cicio.org wrote: > Apologies to you and your wife for stealing you time right now! > Compliments for the newcomer! > > In the following I try to find the concrete tasks to write in our list > and to see what I can do for the project in the next days. > If you need my help in other areas, please just say so. > > * On your point 1: of course this is going to be very valuable! > > - What I can do: not too much I am afraid, but given that I have been > designing for years, if you need me to review your design, just ask. > Your call. > > * On your point 2: yes, I think comparing graphmasters of programR and > Program# is the best way for all of us to learn from our experiences. > If possible, I would suggest to prepare the ground by working on the > programR graphmaster in parallel. More concretely: > a - Nicholas documents Program#'s graphmaster > b - Ben and I document programR's one. > (Ben, if you are still up to it, I would be glad to brainstorm, give > feedback and support your effort to study/document the graphmaster. > Just let me know.) > c - Once we all know about the 2 experiences, we brainstorm on them > and, eventually, generate the programR 2 concept. > If it is OK for you, I think we can extract from the above concrete > tasks to be put in our task list. > > - What I can do: as agreed wiith Ben, I'll support all his activity in > understanding/documenting GM. Ben's call. > > * On your point 3 > You say that there is not an "official" test-set. I believe that this > is a great service we can offer to the community: a well done and > complete test set with punctual references to the AIML documentation. > If we do a good job, other implementations could benefit from it (and > port our tests to their benefit) > > - What I can do: help in coding the tests specified by Nick (may I use > Nick? I am a slow typer...) > > Rake vs sh > --------------- > To be clear: I am 100% for automation (being a linux user for 12 years :-)) > I guess I consider "natural" to use the shell, not Rake. I see Rake as > something that creates an additional dependency for the end user that > is not a rubyst. > I think I have to review this position of mine because: > + ruby is much more spread now than when I begun using it > + rake is probably an accepted standard by now (is it part the ruby > distribution?) > + the end user probably does not use neither sh nor rake > So, on my side, I welcome using rake for our tests if you prefer so. > Currently programR runs the tests from bin/test (we have seen that the > tests work fine). > > - Rubify > ----------- > Probably I am the one with the longest ruby experience and amount of > red books on this language. I would be glad to support you both in > making the R in programR as big as possible!!! (now is a bit to C > (loris) or Java (mauro)) > > Ciao, > Mauro > >> They are: >> >> 1. Finish the high-level activity diagram and associated notes I started >> on Wednesday. This explains the life cycle of a request to an AIML bot. >> I'm including examples of how the input text is normalised and output >> text generated (according to the AIML standard) so the various >> activities associated with a request / response include concrete examples. >> 2. Write up how I did the graphmaster algorithm in Program#. We can use >> this as a compare and contrast exercise with the current implementation. >> My main concern is that I think in a C-like way and I'll need guidance >> on how best to do stuff the Ruby way. :-) Something I'm looking forward to. >> 3. Start looking at / organising the unit tests. Program# has over 200 >> associated with it... the original ProgramD provides another set (my own >> evolved from this set). I'll dig up the ProgramD unit tests from their >> CVS site. There is no "official" test-set, although the AIML >> specification is mostly good at being unambiguous when it comes to >> handling the AIML tags, so we can use that as vade mecum. >> >> Now, onto Mauro's email: >> >> Rake seems to be an excellent tool for project automation - and I >> certainly believe that we should automate as much as possible. However, >> I agree that we should impose as few constraints on "regular" users. I >> personally think we should concentrate on implementing a Ruby library >> with Rake and unit tests and other things for developers and also create >> a simple (and less encumbered - dependency wise) GUI (TK?) application >> for non-devs who want to play. All this to come under the umbrella of >> "ProgramR". >> >> As I suggested above, I don't mind at all taking ownership of the unit >> tests. This is, of course, only one of the tasks we should start before >> actually coding. We should spend some time working out the basic >> geography / organisation of the project so we meet our 1.0 goal of a >> fully compliant AIML implementation in Ruby. I also agree with Mauro's >> suggestion of having a fixed amount of features that we do as soon as we >> can. >> >> I'll post to this list (and possibly also to my blog) the work I >> mentioned at the start of this email as and when it gets finished. >> >> Ciao, >> >> Nicholas >> >> mauro at cicio.org wrote: >> >>> The following in in brainstorming mode. >>> >>> = RAKE >>> ===== >>> Nicholas, time ago, has suggested, among other things, to offer a rake >>> interface to the tests. >>> Even if the current ./bin/test is fine to me for the moment, I agree >>> in saying that a rake would be much better choice considering that the >>> amount of tests should be growing and we might want to group them in >>> different orders. >>> Still, I think that it would be better not to create unnecessary >>> dependencies for our users. >>> My opinion: yes to rake for the developer tasks, no user tasks rake based. >>> What do you think? >>> If you agree, I would put rake in the todo list with lower priority >>> than, say, actually begin writing the tests. >>> >>> = TEST SET >>> ======== >>> The supported features so far should be the ones in >>> http://projects.dottorsi.com/ki/programr/pages/Features >>> It might be that the list is not 100% up-to-date. >>> I think that at the moment the one that knows the most of AIML among >>> us is Nicholas, so I believe that he is the best fit to select an >>> appropriate test set (of course if Nicholas likes the idea to have >>> also this task). >>> Do you have THE list of tests that we have to pass in order to >>> consider programR compliant to the AIML standards? If you do, then I >>> would consider as one of the highest priority tasks to have this list >>> in our todo (on task per each item of the list). >>> >>> = GRAPHMASTER OR NOT GRAPHMASTER? >>> ========================== >>> On the "kernel" side, I have proposed to begin from the GRAPHMASTER. >>> It should have some basic tests and it should be well understood >>> before proceeding. We have to know how it works in order to understand >>> how it can be improved to support all the AIML tags which are not yet >>> supported. >>> In a chat with Ben, it came out that this could be an interesting >>> starting point for him as well. >>> >>> = OTHERS >>> ======= >>> Like the Agile Developers say, we either have >>> A - a fixed time frame and we do as much as we can >>> or >>> B - a fixed amount of features and we do them as soon as we can >>> >>> Just as a discussion base, I propose to work with B with the following features: >>> - solid test/verification of the current supported TAGS >>> - improved felxibility of the kernel >>> - standardization of the delivery package (gem?) >>> >>> It is probably worh to repeat it: I am 100% in brainstorming mode. >>> >>> Ciao, >>> Mauro >>> _______________________________________________ >>> Aiml-programr-developers mailing list >>> Aiml-programr-developers at rubyforge.org >>> http://rubyforge.org/mailman/listinfo/aiml-programr-developers >>> >>> >>> >> _______________________________________________ >> Aiml-programr-developers mailing list >> Aiml-programr-developers at rubyforge.org >> http://rubyforge.org/mailman/listinfo/aiml-programr-developers >> >> > > From mauro at cicio.org Sun Sep 9 08:38:02 2007 From: mauro at cicio.org (mauro at cicio.org) Date: Sun, 9 Sep 2007 14:38:02 +0200 Subject: [Aiml-programr-developers] Thoughts on programR AIML ver 1.0 In-Reply-To: References: Message-ID: Hi, I am trying to catchup with the mails I missed in the last days... This answers Ben's one. > Nick, when you get a chance can you please send me a copy of the diagrammee > as I would like to read through it and start to get a handle on the programR > work-flow process. Just confirm that you are using the Gnome package Dia for > these UML images. Right. I myself always used Dia, so I am happy with it. I believe that in the meantime something else is out there for Ruby... is it true? I remeber a few years ago I patched a ruby/dia module written by a Russian guy (direct engeenirig). Is there anything for reverse engeeniring? Not urgent at all, just curious. For programR, we can live happly with DIaUml. > Once I get a solid understanding of this, I could author a complete, precise > and complex document detailing exactly how this process occurs. Cool! > The I will > make a simpler version to be included as part of the Userspace Tools & > Documents. Even cooler! > Tests: > > I agree with this, on the concepts of good projects is good user > documentation and tests. There are many test models that we can use from the > Ruby codespace and in particular Ruby on Rails. I was wondering if we could > make programR into a Rails application also or just leave it as a standalone > package depedndent on the Ruby Librabries or even both.. At the moment I am completely in the RoR world, so I defenitevily would like to have programR as RoR plugin. Considering that I am not interested in the Tk interface, I think we can already have some assignments done :-) Anyhow: we should look at the specification to: - build a gem - create a plugin and based on those use a compatible dir structure. Very likely the current one is already OK (almost). I can take care of this aspects if you are not in a hurry to do it yourselves... I created a couple of tasks and put myself as assignee, but I can change this of course. As soon as we have a clear idea on the list of tests, we can probably put them in the task list as well, as single tasks. It can be a way to help programR as soon as we have 30minutes: program a small test and close a task. > Rake: > > I like the concept of automation, certainly for testing/deployment but > recognise the value of developing a dual user fork, one for developers and > the other for users. As far as an interface, if we just code a GUI based on > another common well-supported Open Source library (Tcl/TK) that should allow > maximum cross system interoperability. I know that none of us like WIN > software but we will need to code for it in some capacity I think. Or > alternately, ProgramR is only going to be an application served by a > webserver. I think this is one of those key geography questions that you are > asking Nick. Maybe both then, a simple standalone version with all enclosed > libraries, documentation, tests etc that can run standalone and a full > developers version that runs via Apache or a Rails application. I see programR as a library, but it should be more (it is not libraryR after all :-)) I like the idea of the RoR plugin. Is anybody signing in for a Tk (or similar) interface? I would just then different downloads: library only, library+GUI, RoRplugin. > Organisation: > > I'd be happy to start write user Documentation, deployment instructions onto > *nix based systems, with perhaps a focus on Debian-based distributions. I > already have a monster HOWTO on installing/configuring RadiantCMS/Rails onto > a Debian Etch Server. Could also migrate that rather easily into an Ubuntu > specific HOWTO also. > I'd also be happy to run/report all tests as they get built and configure > some sort of benchmarking programme to report of direct shell enquiries to > the interpreter and via an interface (webserver/standalone). Fine, it seems a lot of valuable work to be done. Ciao, Mauro From ntoll at ntoll.org Mon Sep 10 16:28:34 2007 From: ntoll at ntoll.org (Nicholas H.Tollervey) Date: Mon, 10 Sep 2007 21:28:34 +0100 Subject: [Aiml-programr-developers] Activity diagram, explanation of the Graphmaster etc... (long email) Message-ID: <46E5A8F2.4020407@ntoll.org> Guys, As promised, I've included images (and source there-of) as attachments to this email. I strongly suggest you read the "formal" AIML specification found here: http://www.alicebot.org/TR/2001/WD-aiml/ Once you've digested and understood this document then you've pretty much got all the information you need and we will only (only?) have to worry about implementation of the standard. The summary I've written below is to be read as well as the standard and I hope it gives either a good introduction before reading the standard or clarifies things. Activity Diagram for a Request --------------------------------------------------- (BotLifecycle.* - UML on the left, example text on right) There are three broad steps in the life-cycle of a request to an AIML bot: 1. Normalization - prepare the raw input into a path to be fed into the Graphmaster. 2. Query the Graphmaster - search for a