I've had a long time itch to redo HTML. I now have the time and resources to focus exclusively on that and a few other projects that eventually all intertwine.
HTML doesn't let you annotate a file, it requires you to modify it.
I propose instead to put markup in 1 or more layers separate from the underlying text (or video, or audio, etc.). It's a simple matter to split HTML into these layers, each byte inbound is part of an HTML tag, or the underlying source to be marked up.
As each tag comes it, the source byte count is recorded as the start, and length is set to 0
When the tag closes, length = (source byte count - start)
Separating the tags from the source solves a lot of navigation issues. Any modifications to the plaintext could be saved as operational transforms, thus all markup layers could have those same transforms applied in a straightforward manner.
Layers of markup could be turned on and off, or even have an value analogous to Opacity applied to them.
Layers could composed of multiple sources as well, allowing for transclusion and many of the other ideas from Ted Nelson's Xanadu.
My goal in the end is to be able to compose documents which draw from many sources, into a view (or set of views) that helps convey complex ideas with a rich context without the need to create a forest of HTML pages. I want to fulfil the vision of the Memex laid out by Bush in 1945.
After that, then we get to apply this idea to source code, and things get really interesting.
---
On the back burner, is MSTOICAL, my fork of STOICAL, which is a fork of STOIC, a forth dialect that supports types and type checking in a manner much unlike Fig-Forth. (I'm not a C programmer, and there's a lot of code to review, I'm thinking the first project will help annotate the second)
Comments
I've had a long time itch to redo HTML. I now have the time and resources to focus exclusively on that and a few other projects that eventually all intertwine.
HTML doesn't let you annotate a file, it requires you to modify it.
I propose instead to put markup in 1 or more layers separate from the underlying text (or video, or audio, etc.). It's a simple matter to split HTML into these layers, each byte inbound is part of an HTML tag, or the underlying source to be marked up.
As each tag comes it, the source byte count is recorded as the start, and length is set to 0 When the tag closes, length = (source byte count - start)
Separating the tags from the source solves a lot of navigation issues. Any modifications to the plaintext could be saved as operational transforms, thus all markup layers could have those same transforms applied in a straightforward manner.
Layers of markup could be turned on and off, or even have an value analogous to Opacity applied to them.
Layers could composed of multiple sources as well, allowing for transclusion and many of the other ideas from Ted Nelson's Xanadu.
My goal in the end is to be able to compose documents which draw from many sources, into a view (or set of views) that helps convey complex ideas with a rich context without the need to create a forest of HTML pages. I want to fulfil the vision of the Memex laid out by Bush in 1945.
After that, then we get to apply this idea to source code, and things get really interesting.
---
On the back burner, is MSTOICAL, my fork of STOICAL, which is a fork of STOIC, a forth dialect that supports types and type checking in a manner much unlike Fig-Forth. (I'm not a C programmer, and there's a lot of code to review, I'm thinking the first project will help annotate the second)