Schema.orgの舞台裏がどのように動作しているのか、そして開発者が注目すべき理由
Googleがページが単なる材料のテキストではなく、実際のアップルパイのレシピを含んでいることをどのようにして知っているのかと思ったことはありますか?あるいは、メールクライアントがメッセージリスト内に「予約確認」ボタンを直接表示するのはなぜでしょうか?答えは常に同じです——Schema.orgです。しかし、おなじみのitemtypeとitempropタグの裏には、独自の、時には非常に奇妙なルールで動作する大規模なGitHubリポジトリが隠れています。
このプロジェクトのソースコードを掘り下げてみることにしました会发现,它不仅仅是参考指南的集合,而是一个完整的软件环境,拥有自己的逻辑、测试,甚至还有「有用的混乱」的哲学。
このプロジェクトの本当の姿
通常、Schema.orgはドキュメントとして認識されています。アクセスして、必要なデータ型をコピーして、コードに貼り付けます。しかし、schemaorgリポジトリは、网站本身を構築するものではありません。它包含所有实体定义、数百个标记示例,以及将分散文件转换为搜索引擎和浏览器可理解的结构的Python软件。
このプロジェクトはW3Cの監督下にあり、Google、Microsoft、Yahoo、Pinterestのメンバーも議論に参加しています。これは、業界大手が共通言語に合意し、インターネットのいたるところで車輪の再開発を避ける稀なケースです。
単なるテキストではない
dataフォルダを覗くと、標準が実際にどのように「呼吸」しているかを確認できます。コアスキーマはTurtle形式(.ttl)で保存されています。これは、世界についてのstatementsのセットであるRDFのサブセットです。
興味深いことに、開発者は意図的に「美しい」アーキテクチャを拒否しています。READMEでは明示的に述べています:私たちは存在論的な純粋さや elegance を追求していません。厳格な論理とウェブマスターの実装容易性の間で選択がある場合、シンプルさを優先します。例えば、ウェブマスターの便宜のためだけにプロパティなしでデータ型を追加することもあります。これは形式的なモデリングの愛好家にとっては異端のように聞こえるかもしれません。
リポジトリの主な特徴
- 实用的な進化。 プロジェクトチームは大規模な改修には懐疑的です。「より正しい」という理由でイベント階層の手直しを提案しても、おそらく丁寧に耳を傾けてチケットをクローズするでしょう。彼らは、変更が主要なデータ消費者(検索エンジンやクラウドサービス)で実際に使用されているかどうかを気にしています。
- ローカルテスト。 リポジトリには、マシン上でSchema.orgのコピーをデプロイできるソフトウェアが含まれています。新しいデータ型を提案し、全体の構造にどのように適合するかを確認したい場合に便利です。
- テキストファイル内の例。 プロジェクトの価値のかなりの部分は/releases/downloadファイルにあります。バス時刻表のマークアップ方法から複雑な医療手順の記述まで、何千ものケースがそこに集められています。
技術的な側面
このプロジェクトはPython(バージョン3.6以上が必要)で動作しています。サイトのローカルバージョンを実行するには、Windowsの場合はLinuxまたはWSL2が必要です。
プロセスは大まかに次のように見えます:
- 依存関係をインストールします。
- ビルドスクリプトを実行します。
- ポート8080でローカルサーバーを取得します。
すべてのソフトウェアはサイトの静的コピーの作成用に調整されています。インフラストラクチャは少し保守的に見えます(Google App Engine、特定のPythonスクリプトを使用)が、長年動作しており、コミュニティからの大量の編集を処理しています。
開発者が掘り下げるべき理由
便利なウェブサイトがあるのにリポジトリをクローンするのは不要に思えるかもしれません。本当に役立つシナリオがいくつかあります。
まず、標準ドキュメントが不完全に思える場合。/releases/downloadフォルダ内のソースコードには、コメントや下書き(Pendingセクション内)を見つけることが多く、まだメインページにロールアウトされていませんが、主要なプレイヤーによってすでに実装されています。
次に、データ解析や検証用の独自のツールを構築している場合。/releases/downloadをプライマリソースとして使用することは、Webサイトページをスクレイピングしようとするよりもはるかに信頼性があります。機械処理 готовый クリーンなデータです。
第三に、企業と一般の開発者の利害が衝突する大規模なオープンソースプロジェクトの 管理方法を学ぶのに最適な学校です。Issue #1を覗いてみてください——多年的リリース計画が行われており、カオスコントロールの例です。
更新を購読すべき人
SEO、検索エンジン開発、または単にWeb上のデータを構造化したい場合は、このリポジトリをブックマークに追加するべきです。
精巧なフレームワークや完璧なコードは期待しないでください。このプロジェクトはコンテンツ、合意、そして实用主義についてです。ワールドクラスの標準でも完璧な公式ではなく、妥協と何百万もの人々の実際の経験から構築されていることを確認するのは時に有用です。
始めるには、/releases/downloadフォルダを覗いてみるだけです。structuredインターネットが実際にはどのように見えるべきかについて、面白いものがたくさんあることを約束します。
関連プロジェクト