Project

y_nelson

0.0
No commit activity in last 3 years
No release in over 3 years
Zz structures are an interesting way of representing relations invented by Ted Nelson, whose domain model I provide in a gem Yzz. In this gem, YNelson, I combine Yzz with the universal Petri net provided by YPetri (another gem I wrote) to obtain a hybrid data structure that formalizes and generelizes a spreadsheet. Because let us note spreadsheets (as I have seen them) can be considered Petri nets of a kind, with cell functions acting as Petri net transitions. At the same time, spreadsheets are globally orthogonal structures with 3 typical dimensions (rows, columns and sheets). By using zz structures, the globally orthogonal spreadsheet is generalized as a locally orthogonal zz structure, with relations represented as zz dimensions, thus generalizing and formalizing a spreadsheet. The catch is that I have not yet finished the thinking process regarding what everything should be a zz object: Places (cells) and transitions definitely yes, but how about nets and dimensions? Should YNelson go as far as making namespaces into zz objects? The reason why these questions are hard to answer is because Ted Nelson himself, while providing interfaces guidelines (zz structure views, cursors...) did not comment on these questions. While being a (textual) DSL, YNelson aims to provide convenience on par with actual spreadsheet apps. Unlike YPetri, YNelson also aims to be able to specify more than one Petri net node per command, but this is still under development. See the user guide and the documentation for the details. YNelson documentation is available online, but due to formatting issues, you may prefer to generate the documentation on your own by running rdoc in the gem directory. For an example of how YPetri can be used to model complex dynamical systems, see the eukaryotic cell cycle model which I released as "cell_cycle" gem.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.6
>= 0

Runtime

>= 0
 Project Readme

YNelson

YNelson is a domain model and a simulator of Nelson nets. A Nelson net is a Petri net, whose elements (places and transitions) have at the same time the aspect of cells of the Zz structures described by Ted Nelson.

Petri net aspect

YNelson provides a domain specific language (DSL), that can be loaded by:

  require 'y_nelson'
  include YNelson

YNelson DSL includes aspects of YPetri. It means, that it has compatible interface with YPetri DSL. See YPetri gem for Petri net aspect usage examples.

Zz structure aspect

YNelson places and transtitions are both objects (or "cells", using Ted Nelson's terminology) of a Zz structure. They exist in a multidimensional space, where they can have at most 2 sides -- posward and negward -- in each dimension. Zz structure aspect in general is defined in yzz gem. In addition to this, YNelson automatically creates Zz connections in parallel to arcs of a Petri net. This way, places and transtions of a Petri net, whose relations are normally captured by arcs, can also have other relations defined, captured by Zz dimensions. Zz structure aspect is still under development.

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request