Data Resource

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オブジェクトです。

attr_str
CKAN API空文字列が指定されていることがあります。 fiware-ngsi 関係と思われます。
auth_type
CKAN APIoauth2 が指定されていることがあります。 fiware-ngsi 関係と思われます。
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 では人間可読の説明文に使われています。 Markdown のことがあります。
encoding
Data Resource にあり、資源文字符号化を表します。 値はIANA charsetで、省略時の既定値は UTF-8 です。 >>1 しかし処理方法の規定がなく、 mediatype との相互作用などは不明です。 CKAN API では空文字列のこと, utf-8 (mimetype = text/csv) のことがあります。
entity
CKAN APIJSON配列が指定されていることがあります。 fiware-ngsi 関係と思われます。
expression
CKAN API空文字列が指定されていることがあります。 fiware-ngsi 関係と思われます。
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 での利用は未見です。
payload
CKAN API文字列 (中身は JSON) が指定されていることがあります。 fiware-ngsi 関係と思われます。
position
CKAN APICKANパッケージresources 配列における索引 (0はじまり) の整数が指定されていることがあります。
profile
Data Resource にあり、指定が推奨されています。 >>1 CKAN API での利用は未見です。
resource_group_id
CKAN API"None" が指定されていることがあります。
resource_private_flag
CKAN API0 が指定されていることがあります。
resource_type
CKAN APInull, 文字列 image/jpeg が指定されていることがあります。
revision_id
CKAN APIUUID が指定されていることがあります。 id とは違う値です。
schema
Data Resource にあります。 >>1 CKAN API での利用は未見です。
service_path
CKAN APIURL path が指定されていることがあります。 fiware-ngsi 関係と思われます。
size
CKAN API整数が指定されていることがあります。 資源バイト長と思われます。 null のこともあります。
state
CKAN API"active" が指定されていることがあります。
sources
Data Resource にあります。 >>1 CKAN API での利用は未見です。
tenant
CKAN API空文字列が指定されていることがあります。 fiware-ngsi 関係と思われます。
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"null が指定されていることがあります。
webstore_url
CKAN API"None"null が指定されていることがあります。

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

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

[32] >>31URL もその他の情報もない謎の空の資源が含まれる事例。 「名無しのリソース」は CKAN が補った題名で API のデータには入っていない。

[53] >>52 や同じサイトの他のパッケージ資源description が定型化していて (機械的に生成されたものが登録されているのでしょう)、 末尾に 「: ファイルサイズは 4.85 MB です。」 のようにファイルサイズが入っています。 sizenull なのですが...

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] 空文字列になることがあり、ダウンロード可能なファイルがないことを表しているようです。

[33] >>32 のような事例もあります。


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

[54] GKAN では formatWMS のとき、 url? で終わる (URL query空文字列の) URL のことがあります。 >>50 URL query を付けることで WMSHTTP(S) URL として使えるもので、 そのままアクセスしてもエラーになるだけです。


[35] FIWARE-NGSI API 情報が入っているケースがあります。 >>34

[36] formatfiware-ngsi となる他に、いくつか関連情報が入っています。 url絶対URLですが、それだけで GET アクセスしても意味がありません。


[57] >>55 >>56 これは一例で、このサイトの他のパッケージも同じですが、 HTML では https://city.himeji.gkan.jp/gkan/dataset/f56d226f-eaaf-4c03-835a-35ccf8d6a12a/resource/a9dfbd33-27a3-41a0-9b4d-8f1d2000bec5/download/282014_himetyari.geojson のような URL にリンクしており、 CKAN API では https://city.himeji.gkan.jp/admin/gkan/dataset/f56d226f-eaaf-4c03-835a-35ccf8d6a12a/resource/a9dfbd33-27a3-41a0-9b4d-8f1d2000bec5/download/282014_himetyari.geojson のような URL にリンクしています。 API の方は /admin が余分に入っています。 アクセスすると 401 エラーになります。 /admin を削れば正常にアクセスできます。

[58] 同じ GKAN でも >>50 のサイトは正常なので、このサイトの構築上の問題と思われます。

MIME 型

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

f
format
m
mimetype
h
urlHTTP Content-Type
note
メモ
p
より適切な MIME型
src
実例
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
application/postscript
h
application/octet-stream
note
.ai が入った ZIPファイル
src
>>38
f
apk
h
application/vnd.android.package-archive
m
application/vnd.android.package-archive
src
>>49
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
src
>>43
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
CSV(全角UTF-8)全角
m
application/zip
h
binary/octet-stream
note
CSVが入ったZIP
src
>>64
f
CSV(全角Shift-JIS)全角
m
application/zip
h
binary/octet-stream
note
CSVが入ったZIP
src
>>64
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
XLSX(全角Shift-JIS)全角
m
application/zip
h
application/zip
note
XSLXが入ったZIP, なにがShift-JISなのか不明
src
>>65
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
XLSM
h
application/vnd.ms-excel.sheet.macroEnabled.12
src
>>61
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
GeoTiff
src
>>52
m
application/zip
h
application/zip
note
一式入ったZIPファイル
f
GeoTiff
src
>>51
m
image/jpeg
h
image/jpeg
note
誤り? それとも GeoTiff から生成したJPEG?
f
GeoTiff/KML
src
>>50
m
application/zip
h
application/zip
f
GeoTiff/KML
m
application/zip
h
application/x-zip-compressed
src
>>51
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)
src
>>42
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
HTML
h
text/html
src
>>47
note
説明ページ (画像データ (パッケージに含まれず。) へのリンクあり)
f
空文字列
h
text/html
src
>>62
note
説明ページ
f
空文字列
h
text/html; charset=UTF-8
src
>>64
note
説明ページ
f
LINK
h
text/html; charset=UTF-8
src
>>44
note
動的生成ページ
f
JPEG
m
image/jpeg
h
image/jpeg
src
>>41
f
JPEG
m
image/jpeg
h
image/jpeg
note
resource_type image/jpeg
f
JPEG
src
>>46
h
image/jpeg
f
JSON
m
application/json
h
application/json; charset=utf-8
f
json
note
>>1 実例未見
f
JSON(全角UTF-8)全角
m
application/zip
h
application/zip
src
>>65
note
JSONが入ったZIP
f
jsonld
h
application/octet-stream
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
KMZ
m
application/vnd.google-earth.kmz
h
application/octet-stream
src
>>50
f
MP3
h
audio/mpeg
f
mp3
src
>>43
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
ODS(全角Shift-JIS)全角
m
application/zip
h
application/zip
note
ODSが入ったZIP, 何がShift-JISなのか不明
src
>>65
f
PDF
m
application/pdf
h
application/pdf
f
PDF
h
application/octet-stream
p
application/pdf
src
>>38
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
XML
h
text/xml; charset=utf-8
note
RDF/XML
p
application/rdf+xml
src
>>45
f
XML
m
application/xml
h
application/rdf+xml
src
>>62
note
RDF/XML (DCAT (参照しているCKANパッケージの劣化コピー))
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
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
src
>>59
note
SHPファイル等一式が入ったZIPファイル
f
shape
m
application/zip
h
application/zip
f
SHP
m
application/x-qgis
f
SHP-ZIP
h
application/zip
f
SHP
h
application/octet-stream
src
>>37
note
SHPファイルが入ったZIPファイル
f
SHP
m
application/zip
h
application/octet-stream
src
>>50
note
SHPファイルが入ったZIPファイル
f
shx
m
application/x-qgis
f
TIFF
h
application/octet-stream
src
>>40
p
image/tiff
f
TopoJSON
h
application/json
m
application/json
f
TTL
h
text/turtle
m
text/turtle
src
>>40
f
ttl
h
text/turtle
m
text/turtle
f
turtle
h
text/turtle
m
text/turtle
src
>>48
f
ttl
h
application/octet-stream
src
>>45
p
text/turtle
f
RDF
h
application/rdf+xml
src
>>45
p
text/turtle
f
TXT
h
text/plain
m
text/plain
f
TXT
h
text/plain
m
text/plain
src
>>50
note
UTF-8
f
JSON
src
>>50
note
name 末尾が「(全角TileJSON)全角
m
application/json
h
application/json; charset=utf-8
f
DOCX
m
application/vnd.openxmlformats-officedocument.wordprocessingml.document
h
application/vnd.openxmlformats-officedocument.wordprocessingml.document
f
DOCX
m
application/vnd.openxmlformats-officedocument.wordprocessingml.document
h
application/octet-stream
f
DOC
h
application/msword
f
DOC
h
application/msword
m
application/msword
f
XBRL(全角UTF-8)全角
src
>>63
h
binary/octet-stream
m
application/zip
note
XBRLファイルが入ったZIP
f
XML
src
>>60
h
text/xml
m
null
f
XML(全角UTF-8)全角
src
>>62
h
application/octet-stream
note
XMLファイルが入ったZIP
f
XML(全角UTF-8)全角
src
>>65
h
application/zip
m
application/zip
note
XMLファイルが入ったZIP
f
ZIP
h
application/zip
f
ZIP
m
application/zip
h
application/zip
f
ZIP
m
application/zip
h
application/octet-stream
f
ZIP
h
application/octet-stream
p
application/zip
src
>>38
f
空文字列
m
application/zip
h
application/zip
f
JSON,DAT,DAT_OLD,MCA,TOML,LOCK
m
application/zip
h
application/zip
src
>>39
note
ZIP内のファイル拡張子の列挙
f
空文字列
h
application/octet-stream
note
.mcworld (Minecraft データファイル)
src
>>39
f
text/markdown
h
text/markdown
note
urldata:description と同文
f
XYZ
m
null
src
>>50
note
urlURL雛形
f
fiware-ngsi
f
WMS
src
>>50
m
null
note
WMS, urlURL query空文字列にしたもの

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

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

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

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

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

関連

CKANパッケージ

メモ