戻る

Geminiのページを購読する

はじめに

 この文書では、AtomやRSSのような本格的な配信技術がない場合でも、Geminiクライアントが定期的に更新されるGeminiページ(gemlogのインデックスページなど)を「購読」するための規約を説明します。これは、これらの本格的な配信技術に代わる軽量な技術として、定期的にブックマークをチェックするような面倒なことをしなくても、簡単に追える連載コンテンツをGeminiスペースで公開するための障壁を低くすることを目的としています。特に、コンテンツ作成者が作成するであろう、シンプルで、手動で更新され、人間が読みやすい目次が、特別な変更を必要とせずに購読できるようにすることが明確な目標となっています。明らかに、このような規約は、Atomのようなより複雑な技術よりも強力ではなく、考えられるすべての使用例において、より複雑な技術ほどには機能しないでしょう。とはいえ、実際の使用例として合理的に考えられる広い範囲では十分に機能することが期待できます。この規約は、コンテンツ作成者が希望すればAtomフィードを同時に公開することを妨げるものではありません。実際、この規約によってフィードの作成が容易になります。

 この文書の残りの部分では、一つのtext/gemini文書を、必要な要素がすべて存在するAtomフィードであるかのように解釈する方法について説明します。この規約は、クライアントがこのGemini用の軽いフィードの購読と Atomフィードの購読の両方を、単純化されたコードベースと一貫した UI でサポートすることが可能であることを保証するため、そして Atom フィードの単純な自動生成が可能であることを示すために、この方法で記述されています。この購読規約のみをサポートする単純なクライアントは、彼らが適切と考えるように Atom 要素を自由に無視することができます。

フィードの要素

 テキスト/geminiから生成されるURLは、フィードの必須要素である「id」と推奨要素である「link」とで構成されます。

 フィードの必須要素である「title」には、ドキュメント内の「#」で始まる最初のヘッダ行の内容を指定します。このため、「私の宝石記録」や「宝石記録インデックス」ではなく、「Abelard Lindsayの宝石記録」のような、独自の文脈を提供するタイトルを使用することが推奨されます。

 文書内で「##」で始まるヘッダ行が、単一の「#」で始まる最初の行の後、空でないヘッダ行の前にある場合、その内容はフィードのオプションの「subtitle」要素となることがあります。

 フィードの必須要素「updated」は、関連するすべてのエントリの必須要素「updated」のうち最新のものと等しくなるように設定されなければなりません。文書からエントリを抽出できない場合はフィードは空となり(これは Atom 標準規格で認められています)、フィードの「updated」要素は文書が取得された時刻と等しくなるように設定されなければなりません。

エントリーの要素

 フィードのエントリ要素は、リンク行が存在する場合はその部分集合から取得します。

 リンク行の URL の後に続くラベルの最初の 10 文字が ISO 8601 形式の日付 (YYYY-MM-DD) であるものが、ひとつのエントリとなります。この条件を満たさないリンク行は無視されます。

 エントリの必須要素である「id」と必須要素である「link」(一般にAtomエントリでは「link」要素は任意ですが、この規約ではエントリに「content」要素を割り当てないので「rel="alternate"」リンクは必須です)は、いずれも対応するリンクのURLと等しくなります。

 エントリの必須要素である「updated」は、対応するリンク行のラベルの最初にある10文字の日付スタンプで示される日の UTC 正午です。

 エントリーに必要な「title」要素は、対応するリンク行のラベルのうち、最初の空白で区切られた要素(日付スタンプを必ず含む)を削除した後に残るものから取得されます。クライアントは単純に残りをすべて取得してもかまいませんが、ユーザーがたとえば「1965-03-23 - Gemini 3 launch successful!」のように日付とタイトルを区切るラベルを使用するという事実を考慮し、いくつかの簡単なサニタイズが試みられるかもしれません。


 以下のGeminiドキュメントは、gemini://gemini.jrandom.net/gemlog/から提供されています。

# J. Random Geminautのジェムログ

私のジェムログへようこそ!ここでは毎週金曜日に私のアーバンガーデニングと抽象代数学の冒険について読むことができます! ## 私の投稿はこちら

## 私の投稿

=> bokashi.gmi 2020-11-20 - 初期のボカシ堆肥化実験
=> finite-simple-groups.gmi 2020-11-13 - 有限単純群について理解することを試みる...。
=> balcony.gmi 2020-11-06 - ベランダ菜園を始めたよ!

## その他の楽しいgemlog

=> gemini://example.com/foo/ Abelard Lindsay's gemlog
=> gemini://example.net/bar/ Vladimir Harkonnenのジェムログ
=> gemini://example.org/baz/ Case Pollardのgemlog

=> .../ 私のホームページへ戻る

お立ち寄りいただきありがとうございました。

は、以下のAtomフィードと同等と解釈してください。
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title>J. Random Geminautのgemlog</title>
  <link href="gemini://gemini.jrandom.net/gemlog/"/>
  <updated>2020-11-20T12:00:00Z</updated>
  <id>gemini://gemini.jrandom.net/gemlog/</id>

  <entry>
    <title>初期のボカシコンポスト実験</title>。
    <link rel="alternate" href="gemini://gemini.jrandom.net/gemlog/bokashmi.gmi"/>
    <id>gemini://gemini.jrandom.net/gemlog/bokashmi.gmi</id>
    <updated>2020-11-20T12:00:00Z</updated>
  </entry>

  <entry>
    <title>有限単純群を理解するために... </title>
    <link rel="alternate" href="gemini://gemini.jrandom.net/gemlog/finite-simple-groups.gmi"/>
    <id>gemini://gemini.jrandom.net/gemlog/finite-simple-groups.gmi</id>
    <updated>2020-11-13T12:00:00Z</updated>
  </entry>

  <entry>
    <title>ベランダ菜園を始めました!</title>
    <link rel="alternate" href="gemini://gemini.jrandom.net/gemlog/balcony.gmi"/>
    <id>gemini://gemini.jrandom.net/gemlog/balcony.gmi</id>
    <updated>2020-11-06T12:00:00Z</updated>
  </entry>

</feed>

欠点

 この規約の第一の欠点は、投稿が行われた時間帯や日付スタンプが有効なタイムゾーンを伝達しないことです。これは、軽量な購読を、毎日複数の更新が期待され、更新の相対的な順序(フィードソース内とフィードソース間の両方)が重要であるアプリケーション、例えばニュースヘッドライン速報、気象更新、交通状況などのフォローに対して適合しないものにしています。このようなアプリケーションでは、代わりにAtomやRSSなど、より堅牢な購読を実装することが強く推奨されます。

 この欠点は、Geminiスペースにおける「人間の尺度」で動作する一般的で価値のある幅広い活動に対して、深刻な影響を与えるとは思われません。例えば、この規約は、ローカルクライアントを使用している個人の読者が、人々の日常生活、趣味、世界情勢に関する意見、レシピ、写真など、時間的に重要でないコンテンツを数日おきに更新する、厳選された10または20のgemlogを購読するために完全に実行可能です。水曜日の朝にアリスが書いたこのような内容を、水曜日の夜にボブが書いたものより先に読んだり、各人がいつ記事を書いたかを正確に知ることが重要であることは、ほとんどないのです。もし時間帯が投稿内容に関連していれば、著者は必ずそのことに言及するでしょう。

(原典)gemini://gemini.circumlunar.space/docs/companion/subscription.gmi
(2022年12月13日 初版)

戻る