Thursday, September 21, 2006

PLT Scheme Inference Collection

The PLT Scheme Inference Collection has been released. Version 1.3 is the current released version.
All of the basic functionality has been implemented. There are several examples coded: ancestors, Towers of Hanoi, and Sudoku. The Sudoku example is the most complex requiring a search (using hierarchical inference environments).
I am not satisfied with the current implementation of 'modify'. I am going to rename the current functionality to be 'replace'. The semantics match that new term better.
I need to implement a real modify functionality that does modify the underlying fact object. This will be useful with fact objects with names fields: association lists, structures, and class instances. The primary additional work is how to map field names to their location in the fact object. Association lists aren't a problem since the field names are stored in the association list. I haven't found any way to get the names of structure fields - and I'm not sure there is any way to do so. Class instances are still a future implementation feature - but it does seem to be possible to get the field names for classes.
The initial implementation for modify will just support association lists. This will not require any additional syntax beyond modify itself.
Next, I will implement the modify functionality for structures. This will likely involve a new syntax - define-template - to supply the field names. It will have essentially the same syntax as define-struct. I will also implement define-struct/template that does the structure definition and template definition in one call.
This will also make it easier to implement the rule-based system benchmarks. I would like to code and bechmark the performance of the system before I begin adding more efficient algorithms (i.e. hashing for node matches).

Labels:

3 Comments:

Anonymous Anonymous said...

Why you don't share the plt files somewere outside PlanteT?

I don't know any way to download from PlaneT throw proxy with authentification.

1:32 AM  
Blogger Doug Williams said...

I have plans to move the source and documentation files to SourceForge at some point. In the mean time you can leave a request on the PLT Scheme mailing list or e-mail me.

1:48 PM  
Blogger Doug Williams said...

The source code is on SourceForge under the Schematics project.

9:57 PM  

Post a Comment

<< Home