ブログ記事に OGP article メタデータを追加した

no extension

他所のブログ記事を眺めてたら <head> 要素内のメタデータに

<meta property="article:tag" content="foo">

みたいな記述が見える。 article なんてあったか? と思い,調べてみたら,どうやら OGP の中で定義されている語彙(vocabulary)のようだ。

オブジェクトタイプに article を指定する

article を使うためには prefixarticle の語彙を定義し og:typearticle を指定する。

<html>
<head prefix="og: http://ogp.me/ns# article: http://ogp.me/ns/article#">
  ...
  <meta property="og:type" content="article">
  ...
</head>

content 属性は本来リテラルデータを指すので内容に(RDF 上の)意味はないのだが,どうやらただの文字列ではなく, Web 上のリソースを指定しなければいけないようだ。 したがって <head> 要素に

<meta property="og:type" content="article">

と書きたければ <head> 要素の prefix 属性を使って

<head prefix="og: http://ogp.me/ns# article: http://ogp.me/ns/article#"> ... </head>

のように記述する必要がある。 まぁ RDFa の設計思想的には間違ってるけどね。 もう,私は気にしないことにしている。

OGP では article を含め,以下の語彙が定義されている。

IRI resource types
music https://ogp.me/ns/music# music.song, music.album, music.playlist, music.radio_station
video https://ogp.me/ns/video# video.movie, video.episode, video.tv_show, video.other
article http://ogp.me/ns/article# article
book http://ogp.me/ns/book# book
payment http://ogp.me/ns/payment# payment.link
profile http://ogp.me/ns/profile# profile
website http://ogp.me/ns/website# website

これ以外の語彙が欲しいなら独自に定義するしかない。

article のメタデータ

article の語彙で使えるメタデータは以下の通り

property content description
article:published_time ISO 8601 形式の日時 記事の公開日時
article:modified_time ISO 8601 形式の日時 記事の最終更新日時
article:expiration_time ISO 8601 形式の日時 記事の有効期限
article:author profile リソース 記事の著者情報
article:section 文字列 記事のセクション(カテゴリ)
article:tag 文字列 記事のタグ

article:author に正しくリソース(通常は URI)を指定している Web ページを見たことがない(笑) みんな名前を文字列で書いてるっぽい。 私も profile の語彙でわざわざメタデータを書く気にならないので,名前の文字列をセットしている。 文法的には content 属性はリテラル値なので,ただの文字列でも文法上はエラーにならないのだが。

article:authorarticle:tag が複数ある場合は <meta> 要素を複数書けばよい。

<meta property="article:tag" content="foo">
<meta property="article:tag" content="bar">

article:sectionarticle:tag には文字列を指定するとあるが,それって意味なくね? 普通はセクションやタグの情報を示すリソースを示すものなんじゃないのか?

OGP は,やっぱり OGP だった

以上を踏まえて,このブログサイトも <head> 要素に OGParticle メタデータを追加している。 まぁ article メタデータがどのくらい活用されているのかは分からないけど。 しばらくは様子見ということで。

OGP は(RDFa に則ってるのに)相変わらずセマンティック・ウェブからかけ離れたところにいるのがいい感じである(笑)

ブックマーク