概要
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/ でテストできます。