Ekasiliconのゴミ捨て場

ゴミがあります。そこに。

さっくりわかるActivityPub

初めましての方は初めまして。Ekasiliconと申します。さて私は去る2024年5月11日に開催されたUNTIL.LT #0x04に参加させていただきました。

そこにおいて「さっくりわかるActivityPub」というタイトルで10分間のLTをしました。この記事ではどのような話をしたのかをブログの記事という形にして記録していこうかと思います。

タイトル

さっくりわかるActivityPub

あーすというところに所属しております。Ekasiliconと申します。さて今回私は「さっくりわかるActivityPub」というタイトルでお話をさせていただこうかと思います。

ちょっと前から話題になっているかもしれないMisskeyやMastodon、いわゆる分散型SNS(この呼び方はそこまで好きじゃない)と呼ばれているものに関係する話で、普通に面白いポイントがある技術だと思っているので、皆さんに"さっくりと"理解していただいた上で、興味を持っていただければ嬉しいなと思います。

話すこと・話さないこと

前回試験的に行ってみて割と好評だった、話すこと・話さないことについて簡単に説明していこうと思います。まず以下のことについて話します。

  • Fediverseの概念
  • ActivityPubとは
  • 簡単な歴史(RSS等)
  • 嬉しいところ

反対に以下のことについては説明しません。

  • HTTPそのもの
  • 込み入ったActivityPubの話
  • JSON
  • 詳しい歴史
  • つらいところ(布教したいので)

こういった内容については、よしなに憶測で補ったり調べていただいたりしていただければと思います。

Bluesky、一般公開

さて先日…といっても2月の話ですが、Blueskyが招待制ベータから誰でも登録できる公開の正式版となりました。ついでにロゴも青空から蝶になりました。蝶のように長生きしてくれれば嬉しいですね。

このBlueskyというものの売り文句の1つに「分散型」というのもあって、MisskeyやMastodonを思い浮かべた方もいるかもしれません。しかしながらこれは「AT Protocol」という新規設計されたプロトコルを使用しており、MisskeyやMastodonといったものが使用している「ActivityPub」とは異なるプロトコルです。今回はBlueskyとは関係ない、MisskeyやMastodonなどと関連するプロトコルについて話していきたいと思います。

MastodonとかMisskeyとか

先ほどから話しているMisskeyやらMastodonやらとはなんぞや、という話ですが、これはSNSのソフトウェア自身を指す言葉です。よく「Misskey始めました!」と言ってアットマーク以降の文字列を貼っている人がいますが、多くの場合それは開発者やそれに近しい人が運用しているサーバーのことを指すことが多いです。例えばMastodonであればMastodon.social、MisskeyであればMisskey.io、といった感じです。当然ながら全然別のサーバーも存在しており、つくばねすきー(mi.tsukuba.dev)においてはMisskeyというソフトウェアが動いていますが、Misskey.ioとは異なるものとなっています。

もちろんお持ちのサーバーへインストールすることも可能です。これらは自由ソフトウェアであって、勝手にソースを見た人が改善されていたりフォークされたりしています。

「連合」出来る

他にも先ほどから出ているワードとして「Fediverse」というものがありますが、これはどういうものでしょうか。前のスライドで説明させていただいたMastodonやMisskey等では、これらをインストールしているサーバー同士でコミュニケーションをとることが可能となっております。これを一般に「連合(Federation)」と呼んでいます。

情報同士が送られ合うといういわば「宇宙」のようなもののため、FederationとUniverseをくっつけて「Fediverse」と言っているわけです。さて、このFediverseはどうやって実現しているのでしょうか?

ActivityPub

それが先ほどから出ている「ActivityPub」というものです。これはW3Cから出ているHTTPの拡張、ということになっています。あんまりHTTPしているという感じはしないんですけどね。

MastodonやMisskeyの各サーバーには「INBOX」と「OUTBOX」があり、それぞれのサーバーが対応するものに応じて他のサーバーのこれらをGETやPOSTなどで叩く、という感じです。なんてナウでヤングなRESTワールドなんでしょう。

JSON-LDを使用

もちろんGETとPOSTだけで全てを賄っている、というわけではなく、送り付けあっているのはJSON-LDです。ただのJSONと何が違うかという話ですが、大まかに言えば「JSONのプロパティ名やデータ型などをきちんと定義した(ようなもの)」、という感じでしょうか。ちなみにRDFなどもこれによって表現が出来ます。

ActivityPubの世界ではActivity Streams 2.0で語彙を定義しています。一例を出すと、typeには「Note」、「Like」、「Follow」などがあります。SNS感がありますね。

アクター(各ユーザー)への変換

アクター(各ユーザー)への変換

もちろん、JSON-LDを送り付けあうだけではFediverseは成立しません。色々な面白い処理を行っています。ここでは一例としてアクター、一般的にはSNSを使っている各ユーザーへの変換を見ていきましょう。

ActivityPub上でアクターは「@ユーザー名@ドメイン」というメールアドレスのような形式で表記されます。例えばUNTIL.のアカウントであれば「@[email protected]」という感じです。ここで面白いのは、人間が見るべきものと機会が見るべきものが異なることがあり得る、異なるようにすることが出来るという点です。例としてはVivaldi Socialã‚„Instrgramが始めたThreadsが挙げられます。このようなものを実現するために、Host MetadataというものとWebFingerというものの合わせ技で解決しています。

まず「@ユーザー名@ドメイン」という形が与えられた場合、初めに[ドメイン]/.well-known/host-metaを見に行きます。ここにはWebfingerをどこに投げればいいのかが示されています。

その次に得られたWebfingerの投げ先が示された場合、その先を見に行きます。だいたい[ドメイン]/.well-known/webfinger?resource=“ユーザー名@ドメイン”みたいな感じです。ここには通信を行うべきアドレスと、人間が見るべきプロフィールページのURLが書かれていたりします。こうして受け取ったものをよしなにユーザーへ渡せばよいわけです。

一例(@vivaldi@vivaldi.netの場合)

$ curl social.vivaldi.net/.well-known/host-meta -L
<?xml version="1.0" encoding="UTF-8"?>
<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
  <Link rel="lrdd" template="https://social.vivaldi.net/.well-known/webfinger?resource={uri}"/>
</XRD>

$ curl https://social.vivaldi.net/.well-known/webfinger?resource="[email protected]"
{"subject":"acct:[email protected]","aliases":["https://social.vivaldi.net/@Vivaldi","https://social.vivaldi.net/users/Vivaldi"],"links":[{"rel":"http://webfinger.net/rel/profile-page","type":"text/html","href":"https://social.vivaldi.net/@Vivaldi"},{"rel":"self","type":"application/activity+json","href":"https://social.vivaldi.net/users/Vivaldi"},{"rel":"http://ostatus.org/schema/1.0/subscribe","template":"https://social.vivaldi.net/authorize_interaction?uri={uri}"},{"rel":"http://webfinger.net/rel/avatar","type":"image/png","href":"https://social-cdn.vivaldi.net/system/accounts/avatars/109/338/455/962/321/184/original/882e31b8fd08cf9d.png"}]}

RSS

どうしてこのようなものが出来たのでしょうか、歴史を探るためにRSSの仕組みを眺めましょう。大まかに言えばRSSは以下の仕組みで動いています。

  1. ウェブサイト上で記事が追加・更新される
  2. 更新した旨をRSSファイルに記述する
  3. ユーザーはそのRSSファイルを定期的に取得し、前回取得した時の差分や時間を見て更新を把握する
  4. ユーザーはRSSファイルや更新されたWebサイトを見に行く

細かいところでは違うところもあるのですが、大まかに言えばこんな感じです。さて、ここにおいては大きく以下の問題があります。

  • リアルタイムに情報を得られない(ユーザーがRSSファイルを取得するまで更新された旨を知るすべがない)
  • 特定の記事に対してフィードバックや反応を送ることが出来ない(mailto:がスパムによって事実上使えなくなった)

これらをどうにかして解決しようと、先人たちは様々な発明を行ってきました。例えば、RSSからAtomにしてみたり、WebSub (PubSubHubbub)を作ってみたり、Salmon Protocolを提唱してみたり、Webfingerを作ってみたり…などなどです。このような技術をまとめて作られたのがOStatusです。これに対応したソフトウェアとしてGNU Socialが良く知られています。

ただOStatusが複雑になりすぎたということで、Pump.ioというプロジェクトがActivityPubの原型を提唱し、現在ではW3Cの勧告となっている、というのが大まかな流れです。ActivityPubはとてもシンプルということになっていますね。

対応しているソフトウェア

このような謎のプロトコル、ActivityPubというものに対応しているソフトウェアはそんなに無いのであろう、と思ってしまうかもしれませんが、実はそんなことはありません。例えば以下のようなソフトウェアが対応しています。

全世界のウェブサイトの半分くらいを占めているWordPressも(プラグインを入れれば)対応しているということですので、ActivityPubの輪は確実に広まっているといえるのではないでしょうか。SNS向けのものですので、受け取れる情報量にはどうしても差が出来てしまいますが、そこもまた面白いポイントでしょう。

嬉しいところ

というわけで最後に嬉しいところをまとめておこうかと思います。

  • 異なるソフトウェアとさえ通信出来る! - もちろん制限されるところもある。しかし1つのアカウントでコミュニケーションが取れる。
  • 大富豪にお金を払わなくとも本人証明が出来る - 自分が所有しているドメインでサーバーを立てればよい。Blueskyのドメインをハンドルネームのようにするのとは異なります。
  • 変な技術なので面白い - HTTP(とその他もろもろ)でこれが実現できるの??という驚きがあります。基本となっているのはお馴染みのWeb技術です。

最後に

というわけでActivityPubをさっくり説明しました。何となく理解してくれれば嬉しいです。ありがとうございました。

「エンゲージのうた」と「ドリフ大爆笑のOP」と「隣組(楽曲)」

YouTubeを眺めていたらエンゲージのCMが流れてきました。


www.youtube.com

仕事探しは エンゲージ
転職・バイトも エンゲージ
新卒・パートも エンゲージ
求人サイトは エンゲージ

といった、エンゲージそのものを宣伝するCMです。見ていただければ分かる通り「ド♪ド♪ドリフの大爆笑 笑ってください今日もまた」で知られている往年の番組のオープニング曲が使われているように見えます。ところが概要欄には以下のように書いてあります。

「エンゲージ」の新キャラクターに就任した草彅剛さんが登場!転職、バイト・パート、新卒まで幅広くカバーし、すべての人の仕事選びを支える国内最大級の求人サイト「エンゲージ」の魅力を、草彅さんが40名以上のキャストと豪華なステージで表現します。30秒Ver.限定の、掛け合いなどの演出も必見!国民的メロディにのせた、クセになる歌とダンスにもご注目ください。

「ドリフ大爆笑のオープニング」と書いてもおかしくはないところですが「国民的メロディ」と書いてあります。もちろんCMなので何らかの都合はあるかもしれないですが、ドリフ大爆笑とは書けなかったのかということが気になります。

調べてみるとドリフ大爆笑の歌は曲も詩も完全にオリジナルだと思っていたのですが、どうやら曲は戦時中の1940年に発表された「隣組」という曲が元らしいです。一応まだ著作権が存続しているらしいので音源を貼ることは控えますが、確かに曲はほとんど同じに見えます。なので冒頭のエンゲージのCMは替え歌の替え歌ということになり、かつ元の曲が堂々とは書きづらい曲ということで「国民的メロディ」という言葉でごまかした(?)のでしょう。

ところで4番まである「隣組」の歌詞を見てみるとそれぞれの後ろが以下の歌詞で終わっています。

(1番) 知らせられたり 知らせたり
(2番) 教えられたり 教えたり
(3番) 助けられたり 助けたり
(4番) 纏められたり 纏めたり

受動と能動がセットになっていてとてもリズミカルですが、どこかで聞いたことがあるような歌詞です。そう、CGCソングで。


www.youtube.com

1番が「助けられたり 助けられたり」、2番が「知らせられたり 知らせたり」、3番が「教えられたり 教えたり」という風に順番が入れ替わっていますが、全くといっていいほど同じです。1番は色々な人が支えあって生きている、2番は役に立つ情報が互いに交し合われている、3番は安くて豊富な商品について交換し合っている、というような状況にはなっていますが、「スーパーで能動的に情報を交し合うことないでしょ」とは思っていました。

しかしながらこういったバックボーンがあるなら納得です。恐らく戦時中に流されまくった結果、多くの人々の耳に残り、まさしく「国民的メロディ」になっていたこの曲のフレーズを使ってみたということでしょう。調べてみたら「この世界の片隅に」の映画版でも使われていたらしいので、ある意味戦時下の国民を象徴するような曲、というようなことなのではないでしょうか。

また一つ知見が得られました。いい話ですね。

ここまで書いて

…とここまで書いてから日本語版ウィキペディアの「隣組 (歌))」に(出典はあって無いような感じですですが)ほとんど同じことが書いてありました。一応このブログの方が後発であるということを記した上で終わろうと思います。

2023年を抱負を基に振り返る

初めましての方は初めまして。Ekasiliconと申します。

さて、2023年ももうすぐサービス終了が迫ってまいりました。1月1日からは新バージョン2024が始まるらしいので、楽しみにしておくと良いことがあるかもしれません。このような時期に書く投稿として「一年を振り返る」といったものがあります。人間の生活ってコンテンツらしいですからね。

ekasilicon.hatenadiary.jp

さて私は上記の通り2023年1月1日に「新年の抱負」を書いていました。新年というブーストがかかっていることで無責任なことが良く書かれているなと思います。というわけでこの記事では私の一年を1月1日に書いた抱負を基に振り返っていきたいかと思います。

振り返り

健康的な生活リズムを身に着ける

この記事を書いているのは金曜日の昼休みですが、どうやら木曜日の19時から起きているようです。健康的ですね。

人間生活に適した食事をする

個人的には積極的に野菜を取得することを心がけるようにしました。例えばコンビニ立ち寄った際にはカット野菜を買ってみたり、スーパーに行った際には野菜ジュースを調達してみたりしました。またカット白菜を購入し、鍋チックな料理を作ってみたりもしました。

しかしながらこの試みはあまり上手くいかなかったような気がします。確かにカット野菜を購入してはいましたが、そのカット野菜を用いて作る料理が俗に「エカパスタ」と称される簡易調理低コストスパゲッティでしたので、炭水化物と油分は効率良く取得することは出来ましたが、それ以外の栄養取得のコストパフォーマンスはそこまで良いものではありませんでした。また野菜ジュースを購入する機会であるスーパーへ行くという行為は2週間に1回あれば良い方でしたので、野菜取得は必ずしも成功したと自信を持っては言えません。

とはいえ後ろの事柄よりは積極的に気持ちを出したので、まあ良いことであろうかなとは思います。

何かいい感じのものを作る

Ekasiliconとしていい感じのものを作ったかと言われると、公式サイト内のWorksをご覧ください…という感じです。UNTIL.LTである程度話した以外はVTuberサークル「つくぶい!」のサイトをNuxt3で作ったくらいなのでちょっと微妙かもという感じです。ただ公式サイトをAstroで作り直したので努力はしたのかなと思いたいです。

インターネッツから出られる状態を維持する

幸か不幸か任せていただくタスクが多くなったので、インターネット以外と触れ合う機会が多くなりました。あまり自発的なものではないのでいい話かと聞かれれば微妙ですが、インターネッツ以外にも出られる環境を維持できていて良いかと思います。知らんけど。

人間と会話をする

先述の通り任せていただくタスクが多くなったので必然的に人間と会話する機会が増えました。また後輩が増えたことによって会話する人間が増えました。さらに言えばオンデマンドばかりの科目が減ったので同級生と触れ合う機会が増えたのもあり、人間とめちゃくちゃ会話するようになりました。

逆に人間と無意味に会話することの楽しさを感じるようになってしまって、これに依存してしまいそうでちょっと怖いかも。

単位の危機をそうそう起こさない

単位を取るための試験に気持ちを入れると、別の単位を取るための試験の存在自体を忘却するらしいです。いい知見が得られましたね。 †RIP 3単位†

以上のどれかに取り組もうと思い始めようとする

過去の私は偉いので露骨なセーフラインを引いていたみたいです。ヨシ!

一年を振り返ってみて

終わり生物、一年やそこらで変わらないみたいです。いい話ですね。

国立国会図書館にContribute(?)しようとした話

初めましての方は初めまして。Ekasiliconと申します。さて私は去る2023年12月3日に開催されたUNTIL.LT #0x03に参加させていただきました。

そこにおいて「国立国会図書館にContribute(?)しようとした話」というタイトルで10分間のLTをしました。この記事ではどのような話をしたのかをブログの記事という形にして記録していこうかと思います。

ちなみにこの記事はcoins Advent Calendar 2023の15日目です。日付には特に思い入れはありません。前日と翌日はいらっしゃいませんが、前にはEmblenさんの「Mod13スピードはいいぞ」、後ろにはMutsuha Asadaさんのグミに関する記事があるらしいです。

タイトル

国立国会図書館図書館へContribute(?)しようとした話

あーすというところに所属しております。Ekasiliconと申します。さて今回私は「国立国会図書館図書館へContribute(?)しようとした話」というタイトルでお話をさせていただこうかと思います。何を言っているかよく分からないと思うので何をした簡単に示しますと、

  • 国立国会図書館が管理しているLODに不具合と思われる挙動を発見した
  • 日本の役所とは思えないほど情報技術に理解があったのでスムーズに進行
  • 国立国会図書館へContribute(したかった)

という感じです。何をやったのかよく分からないような説明ですね。

話すこと・話さないこと

前提情報について説明していきます。以下の5つのことについて説明します。

反対に以下のようなことは説明しません。

  • XML
  • オープンデータ
  • HTTP Status Code

これらについては適当にその辺の端末でググっていただければと思います。Googleが嫌いな方はDuckDuckGoとかを使ってください。

前提情報

国立国会図書館

タイトルにもある「国立国会図書館」とは何ぞや?ということですが、国立国会図書館は

国立国会図書館は、真理がわれらを自由にするという確信に立つて、憲法の誓約する日本の民主化と世界平和とに寄与することを使命として、ここに設立される。

という前文の国立国会図書館法によって作られた図書館です。カッコいいですよね。

日本で唯一出版された本全てを持っている図書館(まあ納本制度が守られているかというと…ですが)です。図書館としてこれだけでも大変ありがたい存在ではあるのですが、書誌情報等のオープンデータにも積極的であることで知られています。

ISIL

最近聞かなくなりましたね、「ISIL」。しかしながら今回話題にするのはイスラム国とか言われていた方ではなく、図書館及び関連組織のための国際標準識別子という長ったらしい名前を持つ物で、図書館とか博物館などの施設に国際的な番号を付与するというものです。国別に管理が分かれており、日本においては先に説明した国立国会図書館が付与・管理を行っています。

ISILは16桁以内の文字列からなり、例えば国立国会図書館であれば「JP-1000001」という風になっています。0が5個並んでいるのでWi-Fiみたい*1ですね。ちなみに国別コードとハイフンの後は国ごとにバラバラ(16文字以内であればなんでも良い)で、クソみたいなフレキシブルな仕様となっています。

LOD

Linked Open Dataの略です。コンピューター処理に適したオープンデータの形態の1つ…と簡単にまとめてしまうとNakayaさんがキレてしまいそうだとちょっと思っているのですが、まあWeb 3.0*2の実現に極めて重要なものであると思っていただければよいかと思います。

ISIL LOD

日本において国立国会図書館がISILに関するLODを試験的に提供されており、図中にQRコードで記載したリンクからアクセスすることが出来ます。世界に唯一の番号ですので、これに色々紐づけてあげると少ない情報から多くの情報が確実に得られて嬉しいわけです。

ここにおいては「AのほにゃららはBである」という主語・述語・目的語の3要素*3がXMLで記載されています。そのためDOMをドムドムするといい感じに情報が得られます。

W3ID.org

このようなLODは世界に多数ありますが、管理主体が多様であることからアクセス方法が異なったりして煩雑といえます。これらを軽減するプロジェクトとしてW3ID.orgというものが存在しており、適切にIDを指定してあげるといい感じにリダイレクトが走ります。

ちなみに「リダイレクトが走る」というのは文字通りリダイレクトが走っています。どういうことか知りたい人はGitHubリポジトリにある.htaccessの大軍を適当に眺めてみるといいでしょう。かなりダイレクトな解決方法がなされています。

Wikidata

WikidataというものはWikipediaの運営財団が行っている知識データベースと呼ばれるものです。プロパティとデータの関係性をひたすら記述しています。当然ながら機械可読性は高いものとなっており、検索エンジンなどのナレッジパネルにも活用されています。

本題

前提知識が長くなってしまいました。では本題に移っていきましょう。

私がやりたかったこととしては

  1. 博物館について書かれた日本語版ウィキペディアの記事からWikidataに飛ぶ
  2. WikidataからISILを得る
  3. W3ID.orgを通って国立国会図書館のLODへ行く
  4. 情報を得る

ということです。具体的な例、というか問題点に気づいた例を見ていきましょう。私はあーすと呼ばれる場所にいますので、いわき市アンモナイトセンターの記事から話は始まります。

  1. 日本語版ウィキペディアのいわき市アンモナイトセンターの記事からWikidata(Q114231317)に飛ぶ
  2. WikidataからISIL(P791: JP-2000699)を得る
  3. P791の書式指定URLであるW3ID.orgを通り国立国会図書館LODへ
  4. HTTP 303の後にHTTP 404が返ってきたので情報が得られなかった

という感じです。情報が得られなかったので当然ながら調査を始めます。一瞬W3ID.orgのミスかと思いましたが、303が返ってきている時点で間違ってはいないようなので取り敢えず棄却できます。よくよく眺めてみると、404が返ってきたアドレスである「https://www.ndl.go.jp/jp/dlib/standards/opendataset/isil-2000.rdf」は存在しませんが国立国会図書館のサイトを潜ってみると「https://www.ndl.go.jp/jp/dlib/standards/opendataset/isil-1000.rdf」は存在するらしいです。

すなわちW3ID.orgに指定されており303を吐いてきた「http://id.ndl.go.jp/vocab/isil/$1」からのリダイレクトミス(typo)ではないかと推察しました。

非同期コミュニケーション

私は日本人なので電子メールを書くことが出来ます。FAXではなく。というわけで非同期コミュニケーションと言い張り午前1時35分にメールを送信しました。社会的ですね。内容としては上記のことを簡単にまとめた後に「Wikidataの書式指定URLに用いられているW3IDに指定されているので影響デカいかも」みたいなことを書きました。

するとその日の18時過ぎにメールが返ってきました。そのまま載せるわけにはいかないので内容を要約すると、

  • 連絡ありがとうございます。
  • 試行版LODのベースとなっているデータは博物館等への付与以前のもの
  • 対応については今後検討するが、当面は図書館だけのものとして活用していただければ

といったものでした。本当にごめんなさい!!!

反省点

同級生のように国の機関へContributeしたかったという気持ちと、データは簡単にいっぱいアクセスできた方が嬉しいという気持ちがあり拙速な連絡をしてしまったというのが最も大きな反省点と言えるでしょう。メールも今読み返してみると必要最小限度すぎる気がします。

反省点

この他にもダックテスト*4を崇めすぎたという点や、世の中には英語以外も言語と認めており仕様を日本語で書いてくれる人もいるということを忘れていたという点などもあります。

結語

というわけで皆さん、確認というのは重要ということが分かりました。生活の参考にしてみてください。とはいえ、オープンデータは楽しいので皆さん愛してください!!!一緒に"Web 3.0"の世界に貢献しましょう!!!!!!


…という話をしてきました。カスみたいな話ですが何かの参考になれば幸いです。それでは。

*1:災害時に公衆無線LANが自由に使えるようになる「00000JAPAN」みたいだなと話しながら思っていました。

*2:Web 3.0、またの名を「セマンティック・ウェブ」。ブロックチェーンとかAIとかメタバースとかがごちゃ混ぜにされている†Web3†とは特に関係は無い。

*3:LT中には触れませんでしたが、これがRDFにおける「トリプル」です。

*4:「あるものがカモのように動き、カモのように鳴き、カモのように泳ぐのなら、多分それはカモであろう。」という帰納法の1つ。

2023年の抱負(12月1日公開)

2022年12月31日の次の日は2023年1月1日であることが知られています。いわゆる「お正月」シーズンの始まりですね。積みあがったやることに目を背けながら、実家のこたつでゴロゴロしている人々は、この時期になると新年らしいことを行おうとします。その一つとして「新年の抱負」というものを人類は作りがちですが、年末になって振り返ってみると抱負そのものすら忘れてしまい、結果として何の意味もないものとなってしまう人も少なくはないでしょう。

そのため予約投稿機能を活用して2023年12月1日にこの抱負を公開するように設定してみました。そうすれば黒歴史製造機としてお馴染みの「未来への手紙」と同じように、何らかの素材として活用できると思います。では、書いていきましょう。

2023年1月1日 Ekasilicon。

続きを読む

doiって何どい?

論文とかを読んでいると、「doi:」から始まるよく分からない英数字の羅列であったりとか、「https://doi.org」から始まるURLがさもありがたい神様のように扱われていたりする場面に遭遇することがあります。これは果たしてどんな意味を持っているのでしょうか。

ここでは可能な限り専門用語を用いずに、このよく分からない「doi」が何かを説明してみようかと思います。正確性はある程度落ちていますが、大まかにどのようなものかを理解する手助けになれば幸いです。

まとめ

  • リンク切れを防ぐための文字列
  • 世界に一つしかない
  • 短縮リンクみたいなノリで使っても嬉しい

ウェブではどうやって情報が手に入るのか?

この「doi」について理解する前に、ウェブ(WWW)*1上ではどのような形で情報を得られるのかを考えてみましょう。普段はあまり意識しませんが、基本的にウェブにおいては私たちが「ファイルを寄越せ!」と言わない限り何も起こりません。このファイルというのは理屈の上では何でもよく、Wordファイルでも画像でもメモ帳で適当に作ったテキストでも構いません*2。

この「ファイルを寄越せ!」というのを詳しく見ていきましょう。私たちが図書館に行って漢字の読み方を知りたい時には、まず広辞苑を開いてその中にある特定のページを開きます。これを細かく分解すると、

  1. 「広辞苑」という名前の本にたどり着く
  2. 「広辞苑」の中にある特定のページを開く
  3. そして私たちがそのページの中から情報を読み取る

という感じになります。ウェブでも似たようなことが行われており、例えば私のサイトのリンク集である「https://www.eka.earth/links」というところにたどり着くためには、

  1. 「www.eka.earth」という場所にたどり着く*3
  2. 「www.eka.earth」の「links」と名付けられたファイルを開く*4
  3. そして情報を読み取る

といったようなことが行われています。ここにおいて重要なことは、ファイルの中身ではなくその場所に基づいてファイルを寄越してもらっているということです*5。広辞苑で漢字の読み方を調べるのとやっていることは大差が無く、便利でかつ自然な仕組みだなあと思われたかと思います。一方この方式はちょっと不便なところが存在してしまいます。広辞苑は一旦出版されてしまえば(その版である限り)同じ情報が同じページに掲載されていることが明らかです。しかしながらウェブではちょっと事情が異なります。ウェブではその情報を書き換えたりその場所を移し替えることが簡単に出来てしまいますので、「○○の情報はここにありました!」という昔の人の情報に従ってファイルを探したとしても、今は別の場所に存在してしまったり削除されてしまっていたりしていて情報が結局得られないということが起きてしまうのです。

ファイルの中身そのものを用いて情報を共有するシステムも無いことはありませんが*6、多くの人々にとっては今の仕組みが便利かつ自然なものです。しかしながらこのような問題があるので、特に学術論文などの根拠のベースが別の場所にあるものですと、知らない間にそのベースが消えてしまうことになりますから使いづらいものとなってしまいます。これを少しでも軽減するために生まれたのが本題である「doi」です。

世界に一つだけのリンク

doiはまず管理対象とするもの*7に対して、世界で唯一の番号を振ります。これは絶対に被らないようになっており、管理対象とするものときちんと関係づけが行われます。次に管理対象とするものがある場所(例えば https://www.eka.earth/links )をその番号と紐づけておきます。こうすることで世界で唯一の番号が分かれば、それが存在する場所の情報がきちんと得られるようになるということです。

重要なのはこの存在する場所の情報は変更可能であるということです。もちろん変更した後の情報に試しにアクセスしてみたらファイルが存在しないような形で意図的に編集することは出来ません。これを可能にすることによって、例えば「広辞苑」の名前が急に「にっぽん漢字マスター」になったとしても、急にいろは順に並び替えが行われたとしても、これに対応するようにdoi側の、世界で唯一の番号に紐づいている情報を書き換えることで、世界で唯一の番号が分かれば、それが存在する場所の情報がきちんと得られるという状態を維持することが出来ます。

また論文などの場所の情報に著者の名前やタイトルなどをそのまま使ってしまうとどうしても長くなってしまいますし、似たような情報の論文があったとして、これを取り違えてしまうことも考えられます。しかしながらこの世界で唯一の番号を使うことによって、取り違えを防ぐことが出来る他、Twitterなどにおいて論文を共有する時などに「この論文です!」ということを短くかつ明確に示すことが出来ます。そのため、論文(に限りませんが)への短縮リンクみたいに使うことも出来ます。

結びに

以上、doiとはどのようなものかについて可能な限り簡単にして説明してみました。本文中に脚注(右上によった数字みたいなやつ)が付きまくっていることに気づいた読者の方もいらっしゃるかと思いますが、そちらにはもうちょっと踏み込んだ説明やワードのヒントを書いてあります。ちょっと面白いかも!と思われた方は調べてみてみると楽しいかもしれません。

それでは。

*1:細かい話ですが、「インターネット」と「ウェブ(WWW)」は異なる概念です。ウェブはインターネットに含まれる概念(インターネットの方が大きい概念)であり、インターネットそのものは世界中のコンピュータを結ぶネットワークそのもの及びそこで使える諸々のことを指します。

*2:通常はHTMLと呼ばれる、ウェブにおいて便利に使えるよう特別に書き方が設計されたファイルが用いられています。HTMLはパソコンでカタカタして作るファイル(メモ帳でも作れる)なのですが、別のところに置いた画像や動画などを呼び出して表示させるといったことが可能です。

*3:ここにおいてはDNSと呼ばれる仕組みが用いられております。欧米の住所のように逆から、すなわち"earth"→"eka"→"www"のような形で、それぞれの名前がどこにあるのかを問い合わせてくれます。

*4:正確に言えば「links」と名付けられたフォルダの中にあるindex.htmlが開かれます。

*5:ちなみにURLの「L」はLocationの「L」です

*6:IPFSが代表的です。

*7:本や雑誌の記事の記事、画像一枚それぞれにも振ることが出来ます。

IzanaiTokimekiFantasy!「地球学類」についての感情

初めましての方は初めまして。Ekasiliconと申します。

私は直接関与していませんが、私が一方的に認識している方々が関わっているプロジェクトとして「IzanaiTokimekiFantasy!」と呼ばれるものがあります。これは特定の学類等を擬人化し、それを用いたボードゲームを制作するものです。現状Twitterには擬人化されたキャラクターが適宜公開されており、キャラクターごとの関係性を想像してニッコニコになることが出来ています。

さて昨日以下のツイートがなされました。

地球学類さんです!!!!「過去も未来も、全部地球が教えてくれるよ。」、いいセリフですね。

Ekasiliconという名前からはあまり想像されませんが、地球学類とはそれなりに関係があるのでこのツイートを見てクソデカ感情を抱いてしまったのでパソコンのキーボードをひっぱたいています。以下クソデカ感情をそのまま文字に書き起こしたものですのでちゃんとした日本語になっていない可能性が多々ありますが、気持ちを吐き出させてください。

その服装しなくない????

地球学類なんだよね君???地球学類なんだよね?外出るんだよね?フィールドワークきちんとするんだよね???

じゃあそのスカートは何ですか死にたいんですか???謎の金具ついているからそれを山の中で引っ掛けるか無くすし、靴もどう考えても石畳とアスファルトにしか対応していなさそうだし…。時期は分かりませんがそんなアディダスのジャージのような下では普通に泥まみれびっちょびちょになったとして風邪ひかないんですね??氷の上に座ってもいいんですね?自分の尻に鉄板でも入れているんですかね????

上半身も気温に合わせて服装を調整できる点はいいものの、服の袖はもうちょっとダボダボでないものか袖口を調整できるものの方が絶対良い気がします。またハンマーというよりは草刈り鎌というような形状で、好意的に捉えれば第四紀の研究をしているのかなと感じますが、「君のお気に入りの鉱石だよ」と言っているキャラクターが持っているようなものか???という気持ちです。どちらかといえば「腕足類だね。キャッキャ」と言っている人間のハンマー(?)じゃないかな~~~という感じがします。

そんでもって前髪!!!ヘアピンでどうにかなると思っていますか??絶対外出たら「切ってくればよかったかな…」と思いますよ???野外で邪魔で仕方ないものランキングにおいて190cmのところに生えている蜘蛛の巣の1つ上に来るものだと思うんですよね。6日前から気になり始めるレベルの前髪でもこう思うのですから、目が一個隠れるレベルの前髪なんぞ無限に邪魔に感じると思います。日常生活でも純粋に不便ですし。

普通にアクティブ、じゃない?

説明文には「意外とアクティブな面もあり突発的に旅行やフィールドワークに行くことも多い。」とありますが、地球がフィールドの人間は普通にアクティブじゃないと生きていけない、というかインドアであったとしてもGISとニコニコしながらにらめっこしているためある種のアクティブであると思います。外から見ればアクティブでないかのように見えるかもしれませんが、普通に外に出ているので…という気持ちがあります。

結びに

以上、何というか悪口というかマイナス面を強調してしまっている文章な気がしますが、冒頭に書かせていただいた通り普通に擬人化がなされるのは普通に嬉しいし、ニッコニコすることが出来ますのでどんどんやっていただきたいな~~という気持ちです。またフィールドワークにおける適切な服装は、それなりの規模の図書館には大体あるフィールドジオロジーシリーズの第1巻である「フィールドジオロジー入門(ISBN: 9784320046818)」に掲載されているので、もしITF!の関係者がこの記事をご覧になっている場合は参考にしていただければなと思います。