๐พ Archived View for gmi.derschwarzestrahler.at โบ en โบ gemlog โบ capsule-dock.gmi captured on 2024-02-05 at 09:37:07. Gemini links have been rewritten to link to archived content
โฌ ๏ธ Previous capture (2023-07-10)
-=-=-=-=-=-=-
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.
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://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.
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.
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/ โญโฏ โฐโฎ โญโฏ โฐโฎ โญโฏ โฐโโฎ โญโโฏ โฐโโฎ โญโโฏ โฐโโโโโโโโโโโโโโโโโโโโโโโโฏ โฐโโโโโโโโโโโโโโโโโโโโโโโโฏ
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:
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/ โญโฏ โฐโฎ โญโฏ โฐโฎ โญโฏ โฐโโฎ โญโโฏ โฐโโฎ โญโโฏ โฐโโโโโโโโโโโโโโโโโโโโโโโโฏ โฐโโโโโโโโโโโโโโโโโโโโโโโโฏ
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.
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!
idiomdrottning.org Tinlylog 2023-01-18 16:30
2023-01-19 Reply to Sandra from idiomdrottning.org: You don't have to!
[2] https://en.m.wikipedia.org/wiki/Docking_and_berthing_of_spacecraft#Docking
Feel free to respond or comment via e-mail:
CC BY-SA 4.0 Martin Marot-Perz, 2023-01-17
โญโโโโโโโโโฎ โโโโโโโ โญโโฏโโโโโโโโโฐโโฎ โโโโโ โโโ โญโฏโโโโโโโโโโโโโฐโฎ โโโโโโโ โโ โญโฏโโโโโโโโโโโโโโโฐโฎโโโโโ โโ โโ โโโโโโโโโโโโโโโโโ โ โ โ โ โฐโฎโโโโโโโโโโโโโโโญโฏโโโโโ โโ โโ โฐโฎโโโโโโโโโโโโโญโฏ โโโโโโโ โโ โฐโโฎโโโโโโโโโญโโฏ โโโโโ โโโ โฐโโโโโโโโโฏ โโโโโโโ