へっぽこびんぼう野郎のnewbie日記

けろけーろ(´・ω・`)! #vZkt8fc6J

JSON-LDとはなにものか。その概要について(プログラマ側)

概要

JSON-LDでググるSEOの話ばっかり出てくるので、プログラマ視点で説明してみる

必要知識

JSON-LDとは

どう厳しくなったのか

次のように、データの意味まで考えて記述しないとエラーになるようになった。

エラーの様子はここで確認できる→ 構造化データ テストツール

↓は正常なやつ

<script type="application/ld+json">
{
  "@type": "Person",
  "name": "Yamada"
}
</script>

↓これはエラー

<script type="application/ld+json">
{
  "@type": 42,
  "name": "Yamada"
}
</script>

こうすることで、データの構造化(つまりデータの意味付け)が簡単になる。

ボキャブラ

データの構造化の規格のこと。

データの構造化っていってもみんな適当に自分の好きなように構造化できるので、じゃあそれ規格化しようということで偉い人がつくってくれた。

たとえばJSON-LDだけだと、 @type"Onigiri" って名前にしようっていうのもできるけど、それ他の人は毎回その構造はどういう構造なのかっていうのを見て考えないといけないから不便じゃね?統一したくね?ってこと

そうやって統一したものをボキャブラリという。日本語で言うと 語彙

ボキャブラリの1つに、 schema.org っていう規格がある。URLっぽくなってるのは、規格の名称をURLにしておくと何かと便利だからなってるっぽい。

基本的にボキャブラリの主流は schema.org っていうやつらしい。他はとりあえず必要無ければ知らなくていい。ぼくは知らん。

scheme じゃないことに注意。 eじゃなくてa

シンタックス

この場合のシンタックスというのは、構造化されたデータを書くときの、書き方のルールのこと。

JSON-LDシンタックスの1つ。

他にRDFa, microdataがある。どっちもHTMLのシンタックスを厳しくした版。

↓はmicrodataの例

<p itemscope>I’m going to the
  <span itemprop="name">Salter Cane</span>
gig next week. Excited!</p>

つらい。XMLHttpRequestのつらさよりつらい。

schema.orgjson-ldを組み合わせた書き方

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "Corporation",
  "name": "ぼくの会社",
  "telephone": "090-1234-5678",
  "url": "http://www.example.jp"
}
</script>

schema.org → 規格化されてるのでいちいち自分でどういう構造化すればいいか考えなくてよくて便利。

json-ldJSONシンタックスで構造化されたデータを書けるから便利。

そんなかんじ

まとめ

データの構造化
・ボキャブラリ
 ・schema.org
・シンタックス
 ・JSON-LD
 ・RDFa
 ・microdata