This section will catalogue the resources that I have created, that contribute substantively to the protocol artifact. Many of these are things I have already completed or at least started on. I plan to demarcate the works that are entirely new as of this project.
The software here is the engine itself and other software—useful in its own right—that I needed to write to realize it. The main implementation language is Ruby, chosen because it is a general-purpose, dynamically-typed, object-oriented, interpreted language (where the interpreter is not mediated by a VM like Java), that at the time I started working on this, had third-party functionality that competing languages (specifically Python and JavaScript) did not (and don't, to the best of my knowledge).
This library began life in as a breadboard for good ideas about Web content
. This is going to be the reference implementation of our engine.
entireresources returned as an HTTP response. To help with this, I designed the UUID-NCName representation so that I could make UUIDs fit into the grammar space of XML IDs, with the side effect that they are lexically shorter.
App::IBISThis is a prototype I wrote in Perl, in the back half of , initially to test the RDF-KV protocol. I needed a relatively self-contained, feature-complete vocabulary to make a graph-based Web application out of, so as an expedient I chose the IBIS vocabulary I had written . While not only useful in its own right, it was an excellent proof of concept that served as a laboratory for developing many valuable techniques. Nevertheless, the software itself is constitutionally limited in its capabilities, and will ultimately be replaced by what I am currently calling the Swiss Army Knife.
These are data vocabularies I have written that are of immediate use in the engine. I have written them in a way that is simultaneously human- and machine-readable (I prefer the term computable or at least machine-actionable, since all digital data is trivially machine-readable
). I plan to cover the method in the implementation guide.
These are specs I have written that are germane to the project, but that are neither code nor data vocabularies.