I am setting this idea free into the universe in the hope that someone will help me.
Man is shaped by his tools and media. This is a bit abstract, a bit vague. Let me give you an example the is directly relevant to my life. I have to write a thesis. A thesis has a certain shape and form. Certain un-get-around-able conventions. English is read from left to right and from top to bottom. One proceeds from the start and works ones way linearly through the thesis. A thesis is a scholarly work, it contains notes (be they footnotes or endnotes), it contains a table of contents, acknowledgements, and so on. There is a rigid paratext. The content itself is restricted to non-fiction, must have a degree of originality, must push back the boundaries of knowledge somewhat, should refer inter-textually to the scholarly universe.
Even though we now use electronic typewriters we (academics) still produce PDFs to be sent to the printer to be converted into a stream of linear pages to be bound. To be sure there is non-linear structure to a thesis what with sections and sub-sections, a tree-like structure.
But what if we were to set the thesis free? To allow it to be pathologically non-linear if necessary, to be recursive, to contain computational elements, to be (though I’m told the term is passé) interactive? What then?
Concept Juice is going to be a Ruby on Rails web application. It’ll allow me to play with the stuff of thought. (Not at all ambitious then.) My hunch is that Concepts will be typed, as in intuitionistic type theory(ITT). Don’t ask me to explain why I believe that or what I mean by that. That’s for another time. Also, a problem – I don’t know how to code ITT. So I’m asking the universe for help. Essentially think about Concept Juice like a mind mapping software where topics and sub-topics are replaced by typed entities. Because I can’t get my head fully around ITT I’m going to cheat and just make concepts Ruby types for now and convert them to ITT later. I’m also going to allow for vague types and families of vague types meaning that you can have two concepts that you haven’t pinned down but they’ll be regarded by the system as similar because they are of the same vague type if you see what I mean. I don’t know what it would mean to have a concept with no type or a nil or null type, I’d love other people’s thoughts on that.
Book Shape will know about scholarly works and will exist as a library, a ruby gem. It is fed a stream of pages (a path is traced through a thicket of content) and that path has very definite pages: a cover, a title page, an edition notice, one or more pages for a list of figures, one or more pages for a table of contents, one or more pages for acknowledgements, one or more pages for a foreword, one or more pages for a preface, one or more pages for the actual content, a bibliography, endnotes, an index. Book Shape generates a LaTeX project (XeTeX flavour I imagine) and from there a PDF can be generated.
Fly into the world pretty ideas.