print · source · login   

Wiki's global data structure for all benchmark models

The following list displays the general steps to add data to an application:

  1. data structure: get data structure right
  2. data storage: find out how to store the data pieces
  3. data dynamics: find out how to retreive and update the data pieces
  4. data view: find out how to add a view on top of the overall data structure

For model benchmarks in the automata wiki this is worked out as :

  1. data structure
    • models stored per benchmark:
      • a specific protocol or case study for which we got models
      • basicly a small description and model or set of models
    • models grouped per main type
    • within main type each model can have different options, eg. for Register automaton we can have
      • incr ++
      • ineq < >
      • fresh e.g. unique session keys
      • sum
      • ...
  2. data storage
    • per benchmark make a wiki group
    • store all models of that benchmark as uploads in that group
    • per main type make a wiki page with that type's name and in that wiki page list all model names of that type (which were uploaded)
    • per main type wiki page we can specify the options for some models by adding a line
      options: x,y,z
      which applies on the models listed below it
  3. data dynamics
    • via wiki interface we can easily upload or remove models in the benchmark group
    • via wiki interface we can then easily edit the main type pages for the models in the benchmark
  4. data view
    • in header of wiki we have a pulldown menu listing all benchmarks
    • in main sidebar menu on wikipage we link to a overview page where we use pmwiki's pagelist feature to list per main type all benchmarks which have a maintype page for that type ( basicly all benchmarks which have model of that type)
    • per benchmark we have a wiki group with its own sidebar menu in which we link the maintype pages for that benchmark

Notes:

  • the maintype page datastructure must use basic pmwiki listing such that
    • it can easily be parsed by a script to generate a zip file of all models in the wiki
    • and it also gives a nice basic view in the wiki as wikipage.
  • if you want a nicer view on the data the should manually make a nicer view in a special view page which replaces link in sidebar. Note that you now have to maintain both the data page and the view page.
  • if you want to add models but don't want them in the view, we have an extra data page per main model type called Extra<maintype> which list models which get also included in zip but this page is not directly linked from the sidebar menu. However, the developer can just list "all the pages" in the benchmark group when logged in, and then still select to view the extra page.