๐Ÿ’พ Archived View for gmi.derschwarzestrahler.at โ€บ en โ€บ gemlog โ€บ capsule-dock.gmi captured on 2023-01-29 at 02:34:54. Gemini links have been rewritten to link to archived content

View Raw

More Information

โžก๏ธ Next capture (2023-04-19)

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

Where are the borders of a Gemini Capsule? A proposal for "docks"

As we know, the whole gemini protocol is full of nomenclature from spaceflight. The name "Gemini" refers to a NASA manned spaceflight Programme in the 1960s, the sum of all content here is the "gemini space", we, the publishers, are "geminauts" and we fly around in our capsules. So far, so good. But no, there is one detail I found: While in manned spaceflight it is clear, what a capsule is (a small enclosed structure where astronauts can reside in savely, while flying around in space, which is a "shitty place" [1]), it is actually not that clear in geminispace. There is some inconsistency in what a "capsule" actually is.

Formal vs. Technical borders of a capsule

You might wonder what I am talking about. Well, formally we can tell quite well, what a capsule is. It is usually a more or less consistent collection of content from one or more fellow geminauts, often structured with a nice start page, one or more gemlogs and potentially other stuff. We, as human readers, usually have a feeling of what a capsule is, what belongs to it, and when we leave a capsule and visit another one.

Things get complicated with machines, i.e. software that reads gemini capsules. I'm talking especially about gemini crawlers of search engines. These crawlers seem to have a simplistic understanding, that a capsule is everything, that belongs to a domain. This might be the case for many capsules, but is definitely not for all. The most common examples are tilde servers with multiple users, where every user's directory is considered as his own capsule. However, the search engines don't think so, they consider the whole tilde server as one big capsule.

An example to illustrate this: Let's say we have the tilde server gemini://example.com with the users Buzz and Neil. Buzz postes something in his capsule on gemini://example.com/~buzz/article1.gmi and Neil replied to it on his capsule gemini://example.com/~neil/reply.gmi, linking to Buzz' article. If we now make a backlink search for gemini://example.com/~buzz/article1.gmi on gemini://geminispace.info/backlinks or gemini://tlgs.one/backlinks?, Neil's reply will be listed as "internal backlink", not as "cross-capsule backlink". This is wrong from the human perspective, but totally understandable from the machine's perspective. The search engine just knows the domain and its directories and paths, it isn't able to recognise, that the subdirectories ~buzz/ and ~neil/ are actually separate capsules.

The issue can go the other way round as well. I host a side project on my server here, called "Kritzelwand" (only in german) under the following subdomains:

gemini://gmi.kritzelwand.at

gemini://archiv.kritzelwand.at

gemini://kommentierte.kritzelwand.at

So there are three subdomains with different content, with content cross-linking each other. I consider all the content under these three domains as one capsule. Again, the search engines disagree with it and list backlinks between the domains as "cross-capsule backlinks.

Now you might say that this is a non-issue, and you might be right. Nevertheless, it is an issue that appeals to me and made me think: Can't we simply tell the engines, what a capsule really is, where it starts and where it stops? Yes we can, and I found a simple way to do it. Here is my proposal for "docks" a small and simple mechanism to define the boundaries of a gemini capsule. Further steps would be to write a full specification or RFC and to implement it in the webcrawlers, but let's start with small steps.

The docks of our capsules

Let's stay with the spaceflight nomenclature. Docking maneuvers are important for manned space operations, and the Gemini programme was the first space programme, where docking systems were used [2]. The dock is the mandatory interface for entering a space capsule, so let's use them here as well. My docks are simple gemtext files with the name ".dock.gmi". They are the mandatory interfaces for my method of defining a gemini capsule.

A capsule with a main dock

Let's start with the most simple way to define a gemini capsule. You just need to place a file called ".dock.gmi" in the top directory of your capsule, regardless if it is a domain root directory, a tilde directory or something else. This file must contain at least one link, which points to the .dock.gmi file in the top directory of this capsule (let's call it the "root dock"). In this simple case, this means, that the link points to the file itself:

=> .dock.gmi

This might look silly in the first place, but you will understand the idea behind it when you read the further examples.

I added such a file to gemini://gmi.derschwarzestrahler.at/en/.dock.gmi to declare, that the en-subdirectory is the root of my english capsule, which is separate from my german capsule in the domain root. I added one in the root dir as well (gemini://gmi.derschwarzestrahler.at/.dock.gmi), but this I would consider as optional, since a domain root can be considered as a capsule root by default.

For a better understanding I try to visualize the capsule scenario in a simple Unicode art:

              โ•”โ•ฃ-โ• โ•—                              โ•”โ•ฃ-โ• โ•—
              โ•‘ =>โ•‘                              โ•‘ =>โ•‘
    โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•œ   โ•™โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ          โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•œ   โ•™โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ      
  โ•ญโ”€โ•ฏ                       โ•ฐโ”€โ•ฎ      โ•ญโ”€โ•ฏ                       โ•ฐโ”€โ•ฎ
 โ•ญโ•ฏ                           โ•ฐโ•ฎ    โ•ญโ•ฏ                           โ•ฐโ•ฎ
โ•ญโ•ฏ gemini://                   โ•ฐโ•ฎ  โ•ญโ•ฏ gemini://                   โ•ฐโ•ฎ
โ”‚   gmi.derschwarzestrahler.at/ โ”‚  โ”‚   gmi.derschwarzestrahler.    โ”‚
โ•ฐโ•ฎ                             โ•ญโ•ฏ  โ•ฐโ•ฎ                     at/en/  โ•ญโ•ฏ
 โ•ฐโ•ฎ                           โ•ญโ•ฏ    โ•ฐโ•ฎ                           โ•ญโ•ฏ
  โ•ฐโ”€โ•ฎ                       โ•ญโ”€โ•ฏ      โ•ฐโ”€โ•ฎ                       โ•ญโ”€โ•ฏ
    โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ          โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

Subdocks and root docks

Now let's go to the case with a multi-domain capsule. As I mentioned above, I host my "Kritzelwand"-capsule under three subdomains. The main subdomain is gemini://gmi.kritzelwand.at. In the root directory of this domain I place a .dock.gmi file, but this time with more than one link. The first link must point again to the .dock.gmi file in the top directory of this capsule, which is, again, the file itself. But now I'll add two more links. As I wrote, my capsule also consists of two additional subdomains. To declare this, I am literally docking these submodules to my main capsule, by linking to the .dock.gmi files in the other domain roots, so to say to the subdocks:

=> .dock.gmi
=> gemini://archiv.kritzelwand.at/.dock.gmi
=> gemini://kommentierte.kritzelwand.at/.dock.gmi

gemini://gmi.kritzelwand.at/.dock.gmi

We are not finished yet. The respective counterparts, the .dock.gmi files of the two other subdomains, must be declared as well. Again, the first link in these files must point to to the .dock.gmi file in the top directory of this capsule, but in this case it is an external link back to the parent dock:

=> gemini://gmi.kritzelwand.at/.dock.gmi

gemini://archiv.kritzelwand.at/.dock.gmi

gemini://kommentierte.kritzelwand.at/.dock.gmi

Okay, now I have declared my capsule to span across several domains or subdomains, by defining subdocks and parent docks and linking them together. The linking in two directions is necessary to ensure that subdocks are in full control of their geminauts and the mechanism is not misused. Every foreign link in a dock must have a reverse link back. Otherwise, A malicious geminaut (let's hope that such a person will not join geminispace for a long time) could define a subdock to a foreign capsule without their consent. It is clear that this should not be possible and crawlers should see such cases as errors to ignore.

Again, a nice visualisation:

               โ•”โ•ฃ-โ• โ•—
               โ•‘ =>โ•‘
     โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•œ   โ•™โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ  
   โ•ญโ”€โ•ฏ                       โ•ฐโ”€โ•ฎ
  โ•ญโ•ฏ                           โ•ฐโ•ฎ
 โ•ญโ•ฏ                             โ•ฐโ•ฎ
 โ”‚ gemini://gmi.kritzelwand.at/  โ”‚
 โ•ฐโ•ฎ                             โ•ญโ•ฏ
  โ•ฐโ•ฎ                           โ•ญโ•ฏ 
   โ•ฐโ”€โ•ฎ                       โ•ญโ”€โ•ฏ
     โ•ฐโ•–   โ•“โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•–   โ•“โ•ฏ
      โ•‘<= โ•‘             โ•‘<= โ•‘
      โ•šโ•ฃ โ• โ•             โ•šโ•ฃ โ• โ•
      โ•”โ•ฃ โ• โ•—             โ•”โ•ฃ โ• โ•—
      โ•‘ =>โ•‘             โ•‘ =>โ•‘
  โ•ญโ”€โ”€โ”€โ•œ   โ•™โ”€โ”€โ”€โ•ฎ     โ•ญโ”€โ”€โ”€โ•œ   โ•™โ”€โ”€โ”€โ•ฎ
โ•ญโ”€โ•ฏ gemini:// โ•ฐโ”€โ•ฎ โ•ญโ”€โ•ฏ gemini:// โ•ฐโ”€โ•ฎ
โ”‚    archiv.    โ”‚ โ”‚ kommentierte. โ”‚
โ”‚  kritzelwand. โ”‚ โ”‚  kritzelwand. โ”‚
โ•ฐโ”€โ•ฎ    at     โ•ญโ”€โ•ฏ โ•ฐโ”€โ•ฎ     at    โ•ญโ”€โ•ฏ
  โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ     โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

Finally, I want to define another case, which is quite interesting:

Bridge docks

As I made hopefully clear, there is a huge difference between the first link in a .dock.gmi, and all the following links. The first link defines the root dock of the capsule, while the other ones define subdocks. in the previous section I covered a linking between a root dock and a subdock. However it is also possible to have a linking between two subdocks. I would call such a case "bridge docks".

I have made such a bridge dock between my English and my German capsule of "Der Schwarze Strahler". The dock file of my German main capsule contains a subdock link to my english capsule,

=> .dock.gmi
=> en/.dock.gmi

gemini://gmi.derschwarzestrahler.at/.dock.gmi

while in my English capsule it is vice versa:

=> .dock.gmi
=> ../.dock.gmi

gemini://gmi.derschwarzestrahler.at/en/.dock.gmi

Therefore, I declare my two capsules as standalone capsules with separate root docks, but linked together via respective subdocks. I would call this situation a bridge. Here is my visualisation for it:

              โ•”โ•ฃโ•โ• โ•—                                    โ•”โ•ฃโ•โ• โ•—
              โ•‘ =>โ•‘                                    โ•‘ =>โ•‘
    โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•œ   โ•™โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ                โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•œ   โ•™โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ      
  โ•ญโ”€โ•ฏ                       โ•ฐโ”€โ•ฎ            โ•ญโ”€โ•ฏ                       โ•ฐโ”€โ•ฎ
 โ•ญโ•ฏ                           โ•ฐโ•ฎ          โ•ญโ•ฏ                           โ•ฐโ•ฎ
โ•ญโ•ฏ gemini://                   โ•˜โ•โ•โ•โ•—โ•”โ•โ•โ•โ•โ•โ•› gemini://                   โ•ฐโ•ฎ
โ”‚   gmi.derschwarzestrahler.at/ => โ•™โ•จโ•ฅโ•– <=   gmi.derschwarzestrahler.    โ”‚
โ•ฐโ•ฎ                             โ•’โ•โ•โ•โ•โ•โ•โ•šโ•โ•โ•โ••                     at/en/  โ•ญโ•ฏ
 โ•ฐโ•ฎ                           โ•ญโ•ฏ          โ•ฐโ•ฎ                           โ•ญโ•ฏ
  โ•ฐโ”€โ•ฎ                       โ•ญโ”€โ•ฏ            โ•ฐโ”€โ•ฎ                       โ•ญโ”€โ•ฏ
    โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ                โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

More complex docking models: Cascades and circles

My examples still are easy in that way, that I always link to a single root dock. However, more complex docking situations could be possible: What if the root docking mechanism goes in a cascade over several capsules? How many Iterations are acceptable before the crawler should give up? Or, what if we have a circular docking at the end? Do we have some kind o "super-capsule" then? Well, I will keep these theoretical questions open by now.

Conclusions

So far this whole idea is only a proposal, which I started to implement on my own capsules. The next steps would be maybe some clean RFC-style specification (I'm not yet planning it, if you are motivated feel free to start it!), and then an implementation in crawlers, so that search engines finally get this thing with the capsules right. It could also be useful for gemini clients, since many of them implement a navigation with "go to parent" and "go to root" option. Wouldn't it be nice if "go to root" would bring us to the actual root of a capsule? (Of course this also adds complexity and traffic, since the client would have to check the whole path for ".dock.gmi" files). Anyway, I am looking forward to hopefully another geminispace-discussion with people who like or dislike the idea!

Article Threadlog - Mentions and Replies

idiomdrottning.org

idiomdrottning.org Tinlylog 2023-01-18 16:30

2023-01-19 Reply to Sandra from idiomdrottning.org: You don't have to!

Footnotes

[1] As the Austrian Science-Comedy-Group "Science Busters" once wrote: "Das Universum ist eine ScheiรŸgegend" ("The Universe is a shitty place")

[2] https://en.m.wikipedia.org/wiki/Docking_and_berthing_of_spacecraft#Docking

Feel free to respond or comment via e-mail:

300nm@derschwarzestrahler.at

CC BY-SA 4.0 Martin Marot-Perz, 2023-01-17

โ‡‘ Gemlog

    โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ    โ•”โ•โ•โ•โ•โ•โ•—
  โ•ญโ”€โ•ฏโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•ฐโ”€โ•ฎ  โ•”โ•โ•โ•โ•— โ•šโ•โ•—
 โ•ญโ•ฏโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•ฐโ•ฎ โ•”โ•โ•โ•—โ•šโ•โ•— โ•šโ•—
โ•ญโ•ฏโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•ฐโ•ฎโ•”โ•โ•—โ•šโ•— โ•šโ•— โ•šโ•—
โ”‚โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ   โ•‘ โ•‘  โ•‘  โ•‘
โ•ฐโ•ฎโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•ญโ•ฏโ•šโ•โ•โ•”โ• โ•”โ• โ•”โ•
 โ•ฐโ•ฎโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•ญโ•ฏ โ•šโ•โ•โ•โ•”โ•โ• โ•”โ•
  โ•ฐโ”€โ•ฎโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•ญโ”€โ•ฏ  โ•šโ•โ•โ•โ• โ•”โ•โ•
    โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ    โ•šโ•โ•โ•โ•โ•โ•