コンテンツにスキップ

MediaWiki Tabular Data との比較

非公式翻訳 (Unofficial translation). これはデータパッケージスタンダードの有志による日本語訳です。 正典は英語原典 datapackage.org 。未訳の箇所は英語の原文を参照してください。

著者 Jakob Voß

MediaWiki は、Wikipedia をはじめ、メディアファイルのリポジトリである Wikimedia Commons など、Wikimedia Foundation の関連プロジェクトを動かすために用いられているソフトウェアである。Commons はおもに画像をホストしているが、表形式データを伴うレコードもいくつか含む。MediaWiki Tabular Data Model はデータパッケージのバージョン 1 に着想を得たものだが、以下に述べるとおり現行のデータパッケージ仕様とはわずかに異なる。

プロパティの比較

MediaWiki tabular data ページは、インラインの表形式データを伴うデータリソースと同様に、個々のデータのテーブルを記述し、それを内包する。いずれも JSON オブジェクトとしてシリアライズされるが、前者は MediaWiki インスタンス(Wikimedia Commons など)上で一意な名前を持つページとして提供される。

トップレベルのプロパティ

MediaWiki Tabular Data には、3 つの必須のトップレベルプロパティと 2 つの省略可能なトップレベルプロパティがある。これらのプロパティの大半は、データリソースの対応するプロパティに対応づけられる。

MediaWiki Tabular DataData Package Table Schema
-(ページ名から暗黙に与えられる)name(必須)は文字列である
description(省略可)はローカライズされた文字列であるdescription(省略可)は CommonMark 文字列である
data(必須)data(省略可)
license(必須)は文字列 CC0-1.0 あるいは別の既知の識別子であるlicenses(省略可)は配列である
schema(必須)は後述のとおりschema(省略可)は複数の形式をとりうる
sources(省略可)は Wiki マークアップを含む文字列であるsources(省略可)はオブジェクトの配列である

相違点は次のとおりである。

  • プロパティ name は存在しないが、ページ名から暗黙に与えられる
  • プロパティ description と sources は別の形式を持つ
  • プロパティ data は常に配列の配列であり、個々の値のデータ型は異なりうる
  • プロパティ schema は必須だが、そのスキーマプロパティの定義が異なる
  • プロパティ licenses は存在せず、代わりに license が単純な文字列値 CC0-1.0 に固定される(他のライセンス指定子も可能な場合がある)

データ型

Tabular Data は、テーブルスキーマのデータ型と重なる 4 つのデータ型をサポートする。

  • number はテーブルスキーマの number の部分集合(NaN・INF・-INF は不可)
  • boolean はテーブルスキーマの boolean と同じ
  • string はテーブルスキーマの string の部分集合(最大でも 400 文字までに制限され、\n や \t を含んではならない)
  • localized は、言語コードを文字列に対応づけるオブジェクトを指し、string 型と同じ制限を持つ。 この型はテーブルスキーマではサポートされない。

MediaWiki Tabular Data のテーブルでは個々の値が常に null になりうるが、テーブルスキーマでは欠損とみなすべき値を schema.missingValues に明示的に列挙する必要がある。

スキーマプロパティ

MediaWiki tabular の schema プロパティは、テーブルスキーマと同様にプロパティ fields を持つオブジェクトを含むが、それ以外のプロパティは許可されない。この配列の要素は、テーブルスキーマのフィールドディスクリプタに似ているが、3 つのプロパティに限定され、値の取りうる範囲も異なる。

MediaWiki Tabular DataData Package Table Schema
name(必須)は ^[a-zA-Z_][a-zA-Z_0-9]* に一致する文字列でなければならないname(必須)は任意の文字列でよい
type(必須)は上記のデータ型のいずれかであるtype(省略可)は異なるデータ型を持つ
title(省略可)はローカライズされた文字列であるtitle(省略可)は単純な文字列である