CKAN資源

Data Resource

Data Resource

[1] Data Resource | Data Package (v1), , https://specs.frictionlessdata.io/data-resource/

[2] Tabular Data Resource

[3] Patterns | Data Package (v1), , https://specs.frictionlessdata.io/patterns/#json-data-resources

[7] >>6 この時代には Data Packages の一部として規定されていました。

[9] >>8 ここまで遡ると urls としか書かれていなくてよくわかりません。

CKAN 資源

[4] CKAN API における資源Data Resource と縁戚関係にありますが、 まったく同じではありません。 CKANパッケージ

[5] Data ResourceRFC 4627 JSONオブジェクトでなければなりません>>1 CKAN でも資源JSONオブジェクトです。

cache_last_update
CKAN APInull が指定されていることがあります。
cache_url
CKAN APInull が指定されていることがあります。
bytes
Data Resource にあり、資源バイト長とされます。 >>1 CKAN API での利用は未見です。かわりに size が使われます。
created
CKAN API地方日時文字列が指定されていることがあります。 CKAN サイト上の「作成日」に当たります。 サイト日付との比較から、 UTC日時であることがわかります。
data
Data Resource では path と選択的な必須とされています。 >>1 CKAN API での利用は未見です。:data_crs GKAN空文字列のことがあります。
datastore_active
CKAN API1 が指定されていることがあります。
description
Data Resource にあり、資源の説明とされます。 >>1 CKAN API では人間可読の説明文に使われています。
encoding
Data Resource にあり、資源文字符号化を表します。 値はIANA charsetで、省略時の既定値は UTF-8 です。 >>1 しかし処理方法の規定がなく、 mediatype との相互作用などは不明です。 CKAN API では空文字列のこと, utf-8 (mimetype = text/csv) のことがあります。
format
Data Resource では資源の型の標準的なファイル拡張子が期待されるとなっています。 csv, xls, json が例示されています。 >>1 CKAN API では空文字列, CSV, GeoJSON, HTML のような値が使われています (>>10)。 format空文字列かつ mimetypenull のこともあります。
hash
Data Resource にあり、資源MD5ハッシュを表すとされます。 しかし他の算法算法名の小文字をハッシュ値の前に付けることで使えるとされます。 実例として、 sha1: の後に十六進数列を続けた、SHA-1 ハッシュ値と思われるものが示されています。 >>1 CKAN API では空文字列が指定されていることがあります。
id
CKAN APIUUID が指定されていることがあります。
last_modified
Data Packages 時代の資源にあり、資源最終修正時刻ISO 8601 形式 (具体的には不明) で表すとされていました。 >>1 CKAN API では空文字列のことがあります。 GKAN では null地方日時文字列のことがあります。 created より秒の小数部単位で微妙に古いことがあります。
licenses
Data Resource にあります。 >>1 CKAN API での利用は未見です。
mediatype
Data Resource にあり、資源MIME型を表すとされます。 >>1 引数が指定できるのかは不明です。 CKAN API での利用は未見です。
metadata_modified
CKAN API地方日時文字列が指定されていることがあります。 指定されないこともあります。 CKAN サイト上の「メタデータ最終更新日」に当たります。 サイト日付との比較から、 UTC日時であることがわかります。
metadata_type
GKANCKAN API空文字列のことがあります。
mimetype
CKAN APInullMIME型が指定されていることがあります。 かわりに format文字列が指定されていることも、 両方が指定されていることもあります。 (>>10)
mimetype_inner
CKAN APInull が指定されていることがあります。
name
Data Resource では資源の名前あるいは識別子を指定することになっており、 必須とされています。 ASCII小文字等のみで構成され、普通はファイル名拡張子以外の部分になるとされています。 Data Package 内で固有の値でなければなりません>>1 実際の CKAN API ではこれらの制約は適用されていないように見えます。 人間可読資源の短い説明が入っていることが多いようです。 拡張子つきのファイル名 (非ASCII文字を含む。) が入っていることもあります。
openspending_hint
CKAN API"None" が指定されていることがあります。
package_id
CKAN APICKANパッケージid が指定されていることがあります。
path
Data Resource では data と選択的な必須とされ、 url-or-path またはその配列を指定することになっています。 >>1 CKAN API での利用は未見です。
position
CKAN APICKANパッケージresources 配列における索引 (0はじまり) の整数が指定されていることがあります。
profile
Data Resource にあり、指定が推奨されています。 >>1 CKAN API での利用は未見です。
resource_group_id
CKAN API"None" が指定されていることがあります。
resource_type
CKAN APInull, 文字列 image/jpeg が指定されていることがあります。
revision_id
CKAN APIUUID が指定されていることがあります。 id とは違う値です。
schema
Data Resource にあります。 >>1 CKAN API での利用は未見です。
size
CKAN API整数が指定されていることがあります。 資源バイト長と思われます。 null のこともあります。
state
CKAN API"active" が指定されていることがあります。
sources
Data Resource にあります。 >>1 CKAN API での利用は未見です。
title
Data Resource にあり、資源の題名や名札を表します。 >>1 CKAN API での利用は未見です。 name がこれに相当する意味で使われています。
url
Data Packages 時代の資源にあり、資源URL とされていました。 >>1 CKAN API では資源絶対URL (HTTP(S) URL, data:) が入っています。
url_type
CKAN APInull が指定されていることがあります。 文字列 upload (urlCKAN システム管理のファイルであることを表す?) のことがあります。
webstore_last_updated
CKAN API"None" が指定されていることがあります。
webstore_url
CKAN API"None" が指定されていることがあります。

[11] sizenull で実際にはギガバイト級で、 説明文に人間向けにはそのことが書いてあるみたいな厄介なケースが...

[12] >>11 どうやら CKAN にアップロードされたファイル (url_type = upload) だと自動で size が付き、外部の URL を登録した場合にはそれがつかないらしい。

URL

[18] url には資源URL が指定されます。

[22] 大抵は HTTP(S) URL が指定されています。

[27] CKAN 本体、 CKAN API同じ起源URL のこともあれば、 そうでないこともあります。

[28] 例えば本サイトと CKAN サイトが別にあって本サイトの URL が指定されていることや、ファイル配布用サーバーが別にあってその URL が指定されていることがあります。

[29] また、他の CKAN サイトから複製した CKANパッケージを配布しているようなサイトだと、 まったく異なる起源のこともあります。

[23] 非保安輸送路 (http:) が指定されることもしばしばあります。 CKAN サイトもリンク先の URL も、 未だに非保安輸送路でしか接続されないことがしばしばあります。 CKAN

[20] URL にアクセスするとHTTPリダイレクトが返される場合があります。

[25] http: URL が入っていて、アクセスすると https: URLリダイレクトされることがしばしばあります。

[19] 素片識別子付きの絶対URLが入っていることがあり、 HTML ファイルの一部分を資源とみなしているようです。 そのようなCKANパッケージには、 素片識別子以外が同じで素片識別子だけが違う URL が指定されたCKAN資源がいくつか入っている場合があるようです。


[26] 稀に data: URL が入っていることがあります。


[24] 空文字列になることがあり、ダウンロード可能なファイルがないことを表しているようです。


[21] GKAN では formatXYZ のとき、 url絶対URL{x}, {y}, {z} が入ったURL雛形のことがあります。

MIME 型

[10] ファイル形式の指定例

f
format
m
mimetype
h
urlHTTP Content-Type
note
メモ
p
より適切な MIME型
f
application/postscript
h
application/postscript
m
application/postscript
note
.ai
p
application/illustrator
f
ai
m
application/postscript
note
.ai
p
application/illustrator
f
BVF
h
application/zip
m
application/zip
note
ZIP ファイルに入った BVF ファイル。 これを BVF というのは適切ではないが...
p
application/bvf+zip
f
CSV
m
text/csv
h
text/csv
f
CSV
m
text/csv; charset=utf-8
f
CSV
h
text/csv;charset=UTF-8
f
CSV
m
text/csv
h
application/octet-stream
f
.csv
m
text/csv
h
text/csv
f
空文字列
h
application/octet-stream
f
csv
note
>>1 実例未見
f
dBase
m
application/vnd.dbf
note
シェイプファイル形式を構成する DBF ファイル。 application/vnd.dbf はその意味。 DBF ファイルの実態は dBASE 形式のデータベースファイル。 dBase と呼ぶのは誤ってはいないが最適でもない。
f
application/vnd.oma.drm.message
m
application/vnd.oma.drm.message
h
application/vnd.oma.drm.message
note
DM (国土交通省数値地図ファイル形式)。 application/vnd.oma.drm.message拡張子衝突の別形式 (CKAN で使われるとは考えられず、読み替えるべき)
p
application/dm
f
dm
h
application/octet-stream
note
DM (国土交通省数値地図ファイル形式)。
p
application/dm
h
application/octet-stream
f
image/vnd.dxf
f
dxf
m
image/vnd.dxf
h
image/vnd.dxf
f
XLSX
f
XLSX
h
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
f
XLSX
m
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
h
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
f
XLSX
m
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
h
application/octet-stream
f
xlsx全角
m
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
h
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
f
XLSX
m
application/vnd.ms-excel
p
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
note
誤りとは言い切れないが最適ではない。
f
XLSX
m
application/zip
h
application/zip
note
XLSX が正しい (xlsx の実態はZIP)
p
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
f
.xls
m
application/zip
h
application/zip
note
XLSX?
f
.xls
m
application/vnd.ms-excel
h
application/vnd.ms-excel
f
XLS
m
application/vnd.ms-excel
h
application/vnd.ms-excel
f
xls
note
>>1 実例未見
f
XLSM
m
application/vnd.ms-excel.sheet.macroEnabled.12
h
application/vnd.ms-excel.sheet.macroEnabled.12
f
GeoJSON
m
application/geo+json
h
application/geo+json
f
GeoJSON
m
application/json
h
application/json
p
application/geo+json
f
GeoJSON
h
application/json;charset=UTF-8
p
application/geo+json
f
GIF
h
image/gif
m
image/gif
f
gml
h
application/zip
m
application/zip
note
GMLファイルの入った ZIP
f
GTFS
h
application/zip
m
application/zip
p
application/zip (GTFS)
f
GTFS-JP
h
application/zip
m
application/zip
p
application/zip (GTFS (GTFS-JP))
f
gtfs-jp
h
application/zip
m
application/zip
p
application/zip (GTFS (GTFS-JP))
f
GTFS/GTFS-JP
h
application/zip
m
application/zip
p
application/zip (GTFS (GTFS-JP))
f
HTML
h
text/html
m
text/html
f
JPEG
m
image/jpeg
h
image/jpeg
f
JPEG
m
image/jpeg
h
image/jpeg
note
resource_type image/jpeg
f
JSON
m
application/json
h
application/json; charset=utf-8
f
json
note
>>1 実例未見
f
KML
m
application/vnd.google-earth.kml+xml
h
application/vnd.google-earth.kml+xml
f
KML
m
application/zip
h
application/zip
note
KML ファイルの入った ZIPKMZ (とも限らない?)
p
application/vnd.google-earth.kmz
f
MP3
h
audio/mpeg
f
MP4
h
video/mp4
f
MP4
h
video/mp4
m
video/mp4
f
mp4
m
video/mp4
f
mp4全角
h
video/mp4
m
video/mp4
f
PDF
m
application/pdf
h
application/pdf
f
.pdf
m
application/pdf
h
application/pdf
f
PNG
m
image/png
h
image/png
f
RDF
m
application/rdf+xml
h
application/rdf+xml
f
RDF
h
text/xml
p
application/rdf+xml
f
PPTX
m
application/vnd.openxmlformats-officedocument.presentationml.presentation
h
application/octet-stream
f
PPTX
m
application/vnd.openxmlformats-officedocument.presentationml.presentation
f
PPT
m
application/vnd.ms-powerpoint
f
DOCX
m
application/vnd.openxmlformats-officedocument.wordprocessingml.document
h
application/octet-stream
f
sfc
h
application/vnd.nintendo.snes.rom
f
SHP
m
application/zip
h
application/x-zip-compressed
f
SHP
m
application/zip
h
application/zip
f
shape
m
application/zip
h
application/zip
f
SHP
m
application/x-qgis
f
SHP-ZIP
h
application/zip
f
shx
m
application/x-qgis
f
TopoJSON
h
application/json
m
application/json
f
TXT
h
text/plain
m
text/plain
f
DOCX
m
application/vnd.openxmlformats-officedocument.wordprocessingml.document
h
application/vnd.openxmlformats-officedocument.wordprocessingml.document
f
DOC
h
application/msword
f
DOC
h
application/msword
m
application/msword
f
XML
f
ZIP
h
application/zip
f
ZIP
m
application/zip
h
application/zip
f
ZIP
m
application/zip
h
application/octet-stream
f
空文字列
m
application/zip
h
application/zip
f
text/markdown
h
text/markdown
note
urldata:description と同文
f
XYZ

[14] MIME型というものはインターネットメールでも Web でもあまりまともに使われていないのですけど、 CKAN でもかなり酷いですね...

[15] formatmimetypeurlHTTP Content-Type と、3つもあって、しかもそのどれが信じられるともいえないところがまた...

[13] url_typeupload だからといって mimetypeHTTP Content-Type が一致するとは限らないらしい。

[16] format全角英字が入っているところは手入力してるの???

[17] ZIP の場合、多くは formatZIP にしているが、 たまに中身のファイル形式を書いていることもある。 ややこしいのは便宜上 ZIP 圧縮しているだけでなく、業界慣習的に ZIP に入れて配布する事実上の標準が成立しているファイル形式もあるっぽいところで。 その場合確かに ZIP と書くよりファイル形式を書いてくれた方が嬉しい、 ただし中身のファイル形式ではなく「中身+ZIP」と書く方が正確なのだろうけど、 そんな書き方は誰もしていなくて...

メモ