Data Resource

Data Resource

目次

  1. Data Resource
  2. CKAN 資源
    1. URL
    2. MIME 型
  3. 関連
  4. メモ

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] ファイル形式の指定例

formatmimetypeurlHTTP Content-Typeメモより適切な MIME型実例
application/postscriptapplication/postscriptapplication/postscript.aiapplication/illustrator
aiapplication/postscript.aiapplication/illustrator
application/postscriptapplication/octet-stream.ai が入った ZIPファイル>>38
apkapplication/vnd.android.package-archiveapplication/vnd.android.package-archive>>49
BVFapplication/zipapplication/zip ZIP ファイルに入った BVF ファイル。 これを BVF というのは適切ではないが...application/bvf+zip
CSVtext/csvtext/csv
CSVtext/csv; charset=utf-8
CSVtext/csv>>43
CSVtext/csv;charset=UTF-8
CSVtext/csvapplication/octet-stream
.csvtext/csvtext/csv
CSV(全角UTF-8)全角application/zipbinary/octet-streamCSVが入ったZIP>>64
CSV(全角Shift-JIS)全角application/zipbinary/octet-streamCSVが入ったZIP>>64
空文字列application/octet-stream
csv>>1 実例未見
dBaseapplication/vnd.dbf シェイプファイル形式を構成する DBF ファイル。 application/vnd.dbf はその意味。 DBF ファイルの実態は dBASE 形式のデータベースファイル。 dBase と呼ぶのは誤ってはいないが最適でもない。
application/vnd.oma.drm.messageapplication/vnd.oma.drm.messageapplication/vnd.oma.drm.message DM (国土交通省数値地図ファイル形式)。 application/vnd.oma.drm.message拡張子衝突の別形式 (CKAN で使われるとは考えられず、読み替えるべき)application/dm
dmapplication/octet-stream DM (国土交通省数値地図ファイル形式)。application/dm
image/vnd.dxfapplication/octet-stream
dxfimage/vnd.dxfimage/vnd.dxf
XLSX
XLSXapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet
XLSXapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet
XLSXapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetapplication/octet-stream
xlsx全角application/vnd.openxmlformats-officedocument.spreadsheetml.sheetapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet
XLSXapplication/vnd.ms-excel誤りとは言い切れないが最適ではない。application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
XLSXapplication/zipapplication/zipXLSX が正しい (xlsx の実態はZIP)application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
XLSX(全角Shift-JIS)全角application/zipapplication/zipXSLXが入ったZIP, なにがShift-JISなのか不明>>65
.xlsapplication/zipapplication/zip XLSX?
.xlsapplication/vnd.ms-excelapplication/vnd.ms-excel
XLSapplication/vnd.ms-excelapplication/vnd.ms-excel
xls>>1 実例未見
XLSMapplication/vnd.ms-excel.sheet.macroEnabled.12application/vnd.ms-excel.sheet.macroEnabled.12
XLSMapplication/vnd.ms-excel.sheet.macroEnabled.12>>61
GeoJSONapplication/geo+jsonapplication/geo+json
GeoJSONapplication/jsonapplication/jsonapplication/geo+json
GeoJSONapplication/json;charset=UTF-8application/geo+json
GeoTiffapplication/zipapplication/zip一式入ったZIPファイル>>52
GeoTiffimage/jpegimage/jpeg誤り? それとも GeoTiff から生成したJPEG?>>51
GeoTiff/KMLapplication/zipapplication/zip>>50
GeoTiff/KMLapplication/zipapplication/x-zip-compressed>>51
GIFimage/gifimage/gif
gmlapplication/zipapplication/zipGMLファイルの入った ZIP
GTFSapplication/zipapplication/zipapplication/zip (GTFS)>>42
GTFS-JPapplication/zipapplication/zipapplication/zip (GTFS (GTFS-JP))
gtfs-jpapplication/zipapplication/zipapplication/zip (GTFS (GTFS-JP))
GTFS/GTFS-JPapplication/zipapplication/zipapplication/zip (GTFS (GTFS-JP))
HTMLtext/htmltext/html
HTMLtext/html説明ページ (画像データ (パッケージに含まれず。) へのリンクあり)>>47
空文字列text/html説明ページ>>62
空文字列text/html; charset=UTF-8説明ページ>>64
LINKtext/html; charset=UTF-8動的生成ページ>>44
JPEGimage/jpegimage/jpeg>>41
JPEGimage/jpegimage/jpegresource_type image/jpeg
JPEGimage/jpeg>>46
JSONapplication/jsonapplication/json; charset=utf-8
json >>1 実例未見
JSON(全角UTF-8)全角application/zipapplication/zipJSONが入ったZIP>>65
jsonldapplication/octet-stream
KMLapplication/vnd.google-earth.kml+xmlapplication/vnd.google-earth.kml+xml
KMLapplication/zipapplication/zipKML ファイルの入った ZIPKMZ (とも限らない?)application/vnd.google-earth.kmz
KMZapplication/vnd.google-earth.kmzapplication/octet-stream>>50
MP3audio/mpeg
mp3audio/mpeg>>43
MP4video/mp4
MP4video/mp4video/mp4
mp4video/mp4
mp4全角video/mp4video/mp4
ODS(全角Shift-JIS)全角application/zipapplication/zipODSが入ったZIP, 何がShift-JISなのか不明>>65
PDFapplication/pdfapplication/pdf
PDFapplication/octet-streamapplication/pdf>>38
.pdfapplication/pdfapplication/pdf
PNGimage/pngimage/png
RDFapplication/rdf+xmlapplication/rdf+xml
RDFtext/xmlapplication/rdf+xml
XMLtext/xml; charset=utf-8RDF/XMLapplication/rdf+xml>>45
XMLapplication/xmlapplication/rdf+xmlRDF/XML (DCAT (参照しているCKANパッケージの劣化コピー))>>62
PPTXapplication/vnd.openxmlformats-officedocument.presentationml.presentationapplication/octet-stream
PPTXapplication/vnd.openxmlformats-officedocument.presentationml.presentation
PPTapplication/vnd.ms-powerpoint
sfcapplication/vnd.nintendo.snes.rom
SHPapplication/zipapplication/x-zip-compressed
SHPapplication/zipapplication/zipSHPファイル等一式が入ったZIPファイル>>59
shapeapplication/zipapplication/zip
SHPapplication/x-qgis
SHP-ZIPapplication/zip
SHPapplication/octet-streamSHPファイルが入ったZIPファイル>>37
SHPapplication/zipapplication/octet-streamSHPファイルが入ったZIPファイル>>50
shxapplication/x-qgis
TIFFapplication/octet-streamimage/tiff>>40
TopoJSONapplication/jsonapplication/json
TTLtext/turtletext/turtle>>40
ttltext/turtletext/turtle
turtletext/turtletext/turtle>>48
ttlapplication/octet-streamtext/turtle>>45
RDFapplication/rdf+xmltext/turtle>>45
TXTtext/plaintext/plain
TXTtext/plaintext/plainUTF-8>>50
JSONapplication/jsonapplication/json; charset=utf-8name 末尾が「(全角TileJSON)全角>>50
DOCXapplication/vnd.openxmlformats-officedocument.wordprocessingml.documentapplication/vnd.openxmlformats-officedocument.wordprocessingml.document
DOCXapplication/vnd.openxmlformats-officedocument.wordprocessingml.documentapplication/octet-stream
DOCapplication/msword
DOCapplication/mswordapplication/msword
XBRL(全角UTF-8)全角application/zipbinary/octet-streamXBRLファイルが入ったZIP>>63
XMLnulltext/xml>>60
XML(全角UTF-8)全角application/octet-streamXMLファイルが入ったZIP>>62
XML(全角UTF-8)全角application/zipapplication/zipXMLファイルが入ったZIP>>65
ZIPapplication/zip
ZIPapplication/zipapplication/zip
ZIPapplication/zipapplication/octet-stream
ZIPapplication/octet-streamapplication/zip>>38
空文字列application/zipapplication/zip
JSON,DAT,DAT_OLD,MCA,TOML,LOCKapplication/zipapplication/zipZIP内のファイル拡張子の列挙>>39
空文字列application/octet-stream .mcworld (Minecraft データファイル)>>39
text/markdowntext/markdownurldata:description と同文
XYZnullurlURL雛形>>50
fiware-ngsi
WMSnullWMS, urlURL query空文字列にしたもの>>50

[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パッケージ

メモ#