Techioz Blog

概要

json ldを使用してschema.orgメタデータをセットアップしたいと考えています。たとえば、次のリンクはゴーストを使用しており、「application/ld+json」メタデータがあります。

私のRailsアプリでも同様のことを実現したいと考えています。どのように実装すればよいでしょうか。 これを行うための宝石はありますか?

解決策

JSON-LD gem (http://rubygems.org/gems/json-ld) がありますが、特に探しているものではないかもしれません。 JSON-LD のポイントは、それが単なる JSON であるという点であり、この場合は値を解釈するために schema.org コンテキストを使用していることに注意してください。データが ActiveRecord モデル内にあると仮定すると、レコードのプロパティが適切な schema.org プロパティに対応していることを確認する方法が必要になります。この場合、モデルを JSON (#to_json) にシリアル化するだけで、ほとんどの作業が完了します。残っているのは、@context@id、および @type フィールドを JSON に追加することです。

たとえば、次のようなものにシリアル化された User モデルがあるとします。

{
  "name": "Harry",
  "email": "[email protected]"
}

http://schema.org/person の「name」と「email」の両方のプロパティとして、次のように @context@type を追加するだけで途中までは完了できます。

{
  "@context": "http://schema.org/",
  "@type": "Person",
  "name": "Harry",
  "email": "[email protected]"
}

RESTful アプリを構築していると仮定すると、すべてのオブジェクトに、この人のリソース URL に対応する @id を与えることをお勧めします。これは次のようになります。

{
  "@context": "http://schema.org/",
  "@id": "http://example.com/people/harry",
  "@type": "Person",
  "name": "Harry",
  "email": "[email protected]"
}

ここで、http://example.com/people/harry を JSON (または JSON-LD) として取得すると、その表現を取り戻すことができます。

JSON-LD のもう 1 つの点は、これが「リンク データ」用であるため、HTML 内で行うのと同じように、他のリソースへの参照を含めると、それらを見つけられるようにするのに役立ちます。 schema.org ドキュメントには、定義されているほとんどすべての型に対して、JSON-LD を含むさまざまな型のマークアップを生成する方法の例が多数含まれています。一例については http://schema.org/person を、完全な型階層については http://schema.org/docs/full.html を参照してください。

JSON-LD gem は、このデータを他のソース (通常は何らかの RDF 形式) から生成する場合、または受信したデータを解釈する場合に便利です。 http://json-ld.org/playground でこれを試すことができます。

例のように、type=“application/ld+json” のスクリプト タグを使用して、HTML に JSON-LD を含めることもできます。データがどのように表示されるかを確認したい場合は、Google 構造化データ テスト ツールまたは http://linter.structurd-data.org/ でテストできます。