dds/dds.org

5.0 KiB

Random notes about dds

Building and installing

Running the following:

raco pkg install

in the dds directory will build and install the dependencies and then link the directory as a package.

Building the Scribble documentation

To build the Scribble documentation, run the following:

raco setup -l dds

The dds package must already be installed.

Execute the following code block to open the documentation in the last visited browser window.

(shell-command "firefox doc/dds/index.html")

Racket Package catalog bug <2020-11-26 Thu>

raco pkg had a bug which caused it to fail with the following error:

Resolving "graph-lib" via https://download.racket-lang.org/releases/7.9/catalog/
.raco-wrapped pkg install: cannot find package on catalogs
package: graph-lib

The fix coming from here was to do the following:

raco pkg config --set catalogs https://download.racket-lang.org/releases/7.9/catalog/ ""

It looks like it make raco pkg redetect the proper URLs for Racket package catalogs.

Roadmap   old

I moved the roadmap to README.

DONE Write a function to look the symbol at point [3/3]

  • add a racket-helpdesk-online
  • add keyboard shortcuts to key maps
  • check/add documentation

DONE Finish the example on random networks

DONE Fix the generation of interaction graphs

DONE Make raco test play nicely with my tests

DONE Replace let with test-begin in tests

DONE Initialise the random seed in each test-case

As of [2020-05-24 Sun], I have the impression that the seed is not globally set.

DONE Factor out the code for functions

DONE Move boolean-power and boolean-power-stream to utils

DONE Tabulate multiple functions with the same domain

DONE Think about interactions between Racket code blocks

When a code block calls another code block, the result seems to be dumped to a string. This means that I cannot directly use the result from calling a block, and that I have to do some writing and reading between the two.

Check rs-control.org to see what quick fixes I did recently.

DONE Make shortcuts for TBF/TBN and SBF/SBN

DONE Implement drawing the interaction graphs of TBN

DONE Implement truth tables grouped by Nai

Number of activated inputs in the Boolean input vectors. Mainly to illustrate how abstract representation works and breaks.

DONE Review build-interactive-process-graph

This function includes context sequences in states to differentiate between the same states appearing at different steps of the interactive process. In fact, I don't care about that at all, because if I want to have the complete interactive process, I can just use build-interactive-process.

Comment on <2020-11-09 Mon>: Yeah, but I need the context sequence in the state to be able to define the dynamics properly. This actually shows that the context sequence must be part of the state if we want to capture reaction systems in the framework of discrete dynamical systems.

Secondly, build-interactive-process-graph assumes that the input context sequence is a prefix of an infinite context sequence in which the majority of contexts are empty. This is a rather weird assumption.

Because of these two aspects, I found that this function was rather useless in working with actual reaction systems, in particular in my collaboration with Ion on control of reaction systems.

TODO Review build-interaction-graph

Check that the definition of this function really follows the definition of the interaction graph. Pay attention to the existential vs. universal quantifiers.

TODO Write the docs properly with Scribble

TODO Submit update-graph to stchang

TODO Implement the BN → RS conversion

TODO Implement the minimisation of TBF/SBF

TODO Contribute to Racket

  • Make sequence-filter allow multivalued sequences, provided the arity of the predicate is consistent with the arity of the sequence.
  • Add a sequence->hash function that accepts a multivalued sequence of keys and values (exactly like what in-hash produces) and copies them into a hash table.

TODO Test network inference with Racklog