💾 Archived View for scrollprotocol.us.to › devlog › 20240517.gmi captured on 2024-05-26 at 14:32:44. Gemini links have been rewritten to link to archived content

View Raw

More Information

-=-=-=-=-=-=-

Publish Date: 2024-05-17T13:20:34Z

Modification Date: 2024-05-21T08:21:55Z

2024-05-17 Protocol Update: UDC and Code Blocks

Scroll Protocol Homepage

I am preparing a major update to the Scroll Protocol that utilizes the two-digit status codes to provide document categorization in the second digit of success status codes, based on the UDC (Universal Decimal Classification) system. UDC was chosen as the basis because it was simple and intuitive, has 10 main classes, was designed to be universal, and is well-known. It is also an improvement over Dewey Decimal, and is very similar, but more compact, than LCC in how it divides and groups categories.

The goal is to facilitate document categorization and categorization systems, like search engines, directories, and aggregators. Status codes were used to limit the need to add more fields to responses, which decreases the "attack-vector" for extensibility. It also fills all of the available second digits for success codes, limiting any more extension to success codes (unless one switches to hexadecimal or other number bases for response codes).

I have made a couple of small changes to the UDC system, especially the use of the vacant class (4) for unclassed content, scrolltext menus/indexes, and Miscellaneous. I have also expanded class 0 to include documentation and protocol rfcs, clarified class 7 to include music, gaming videos, fictional movies & animation, photography, and other entertainment, and expanded class 8 to include blogs and art/entertainment reviews. Finally, non-entertainment media (usually non-fiction) should be placed in their correct category, even if they are video or audio. For example, a Theology Documentary should be placed in class 2.

Main Classes

Media or documentation *about* software should be in class 0, whereas software (binaries, zips, packages, internet apps) itself should be based on the topic that software covers. Document readers, browsers, chat or social media, etc. should be placed in class 4, along with any other software that doesn't fit in any of the other classes.

Computer Science (class 0) includes information *about* computer architecture, hardware, software, human-computer interaction, AI, etc.

Code Blocks

Gemini used "preformatted blocks" in its document format (gemtext), with an optional alt text that the author can use to describe the block. This is the one bit of presentational markup that gemtext has, but there are several problems with it:

For the above reasons, I have decided to change scrolltext so that preformatted blocks are now designated as "code blocks" and the alt text field is replaced by an identifier of the content of the code block:

Code blocks define a block within the scrolltext that should be distinguished from the rest of the document as a textual format. They may be used for code blocks, ASCII Art, plain text, or other textual formats. They are usually presented visually in fixed-width fonts. Audal presentations should distinguish them from the surrounding text and should present the format tag to the listener.
Code blocks' visual presentation should not be word-wrapped or justified, but they may be character-wrapped. Code blocks are toggled with three backticks (```) on the start of a line. This toggles the start or end of a code block.
The starting toggle of a code block may include an optional tag just after the three backticks that describes the format. Mimetypes starting with `text/` are permitted, but the `text/` prefix should be excluded. Therefore, `text/plain` should be written `plain`.
Examples of code block tags include:
* ascii-art
* plain
* a programming language name
* `samp` for sample software input/output

Most importantly, code blocks are now defined as semantic descriptive markup rather than presentational markup. As in other descriptive markups, the presentation is a function of the descriptive markup.

Since code blocks are viewed as an integral part of the document itself, the alt text should now be placed within a paragraph above or below the block to introduce or summarize it in the context of the rest of the document's text.

Updating Servers and Clients

The reference scroll server implementation is getting an update today that will default status codes to "24" as unclassed. Soon after I will release another version that will allow users to classify their documents.

Profectus and scroll-term will be updated today to account for status codes 20-29 as success.

AuraGem and the Scroll Protocol scrolleries will get an update tomorrow to classify all of their pages. After this is done, the reference client implementations will get another update to display a document's classification to the user.

P.S. TIL the DNS server Antenna uses takes forever to update, longer than the one mozz.us uses.