OsmHackTW / address-TW

open data set of government released address nodes
1 stars 1 forks source link

淘汰 addr:TW:dataset 欄位並改善 source 值 #2

Open Lzmxya opened 3 months ago

Lzmxya commented 3 months ago

addr:TW:datasetsource 這兩個欄位,皆用於表示門牌的資料來源,其中 addr:TW:dataset 填入的是政府資料開放平臺資料集識別碼(datasetId)source 則為各地方政府之名稱。以新北市為例:addr:TW:dataset=168887 指出資料源自於政府資料開放平臺資料集識別碼 168887 號資料集;source=新北市政府 則表示資料源自於新北市政府。這些資料確實由新北市政府提供,然而更精確地說,是新北市政府民政局,這點可從 https://data.gov.tw/dataset/168887 的「提供機關」一欄得知。由此可見,比起 source=新北市政府addr:TW:dataset=168887 是更為精確的來源,當一個元素已有 addr:TW:dataset=168887 時,我們除了可得知其提供機關以外,還能瞭解到它的更新頻率、授權方式和上架日期和資料集名稱「新北市門牌位置數值資料」等詮釋資料,更重要的是:有了政府資料開放平臺的資料集識別碼,我們始能取得該資料集(試想,若僅憑 source=新北市政府,使用者就能找到該資料集的下載網址,那他可真有本事!)。

綜上所述,168887新北市政府 皆在傳達資料的來源,而前者更為準確,因此,兩者應留其一,其一應為 168887

然而,目前已匯入至 OpenStreetMap 的門牌,將政府資料開放平臺的資料集識別碼填於 addr:TW:dataset 欄位,這是十分奇怪、不合邏輯的一件事。以下為個人見解:

  1. 資料集識別碼就是資料來源,既然是來源,何不使用行之有年的 source
  2. 綜觀其他冠有 addr: 的鍵,皆為組成地址的元素,例如郵遞區號、城市、鄉鎮、街道和門牌號碼等。資料集識別碼顯然不會被寫在信封上,因此不應屬於 addr: 群。
  3. 透過 Taginfo 查詢 addr: 可發現,全球僅臺灣以此方式表示資料集來源,且標籤狀態未經批准。
  4. 即便要用此格式表示資料集來源,也應是 addr:dataset_ref:twaddr:dataset_ref=TW168887 而非 addr:TW:dataset,如此才保有在其他地區使用的彈性(其中,比照多語系名稱的命名空間,tw 應為「小寫」)。

基於以上理由(尤其是第二項),我建議:

  1. 逐步淘汰 addr:TW:dataset(考量到資料量龐大,此作業應低優先度分批進行,並儘量依附於其他門牌相關之編輯,如:3+3 郵遞區號)
  2. 刪除 source 欄中模稜兩可的地方政府名稱,改以資料集識別碼資料集實際名稱代之。
至於 source 欄具體該如何填寫,可再討論,以下是幾種或許可行的方式: 方案 優點 缺點 備註
source=data-gov-tw/168887 xxx/xxx 模式已有先例[^1] 可能須在 OpenStreetMap Wiki 撰寫相關文件,供使用者瞭解其涵義 其他來源亦為「政府資料開放平臺」的元素可統一使用此格式
source=https://data.gov.tw/dataset/168887 直接指出來源出處 網址有失效的風險、字元數較多
source=新北市門牌位置數值資料 一目了然、永久有效的來源值 無法直接取得資料 使用者藉由搜尋引擎,仍可檢索到資料集的存放處

歡迎大家集思廣義,探討更佳的標示方式。

[^1]: 例如 microsoft/BuildingFootprintsYahooJapan/ALPSMAP

LaoshuBaby commented 3 months ago

addr:TW:dataset=168887 提出异议,OSM中用数据来源机构的名称直接标注是较为常见的,也不仅仅在台湾。

数字缺少易读性,而且不查文档也不会知道是 https://data.gov.tw/dataset/{id} 中的 id。套用您的句式,若使用者仅凭168887就能找到URL Schema,那他也是很有本事的。因此无论是在tag里面记载URL Schema中的id,还是记载operator,要准确还原dataset的位置,都需要外部文档(可以放在osmwiki上)的支持,对照表和使用过的若干笔数据的来源链接都是少不了的。

此外您也确实指出了,依靠外部链接容易失效和存在变化的可能性(虽然政府公开数据肯定是非常稳定的,但不是专门放url的tag里放了url也不会很优雅)

source=* 的使用也是存在争议的,如osmwiki所述:

With modern editors, the source=* tag is typically added to the changeset when a change is made, not as a tag on a piece of information which may be updated at different times based on different sources.

因此折中一下,我个人会提议 source:dataset=* 用作记载发布单位,用 source:dataset:ref=*source:dataset:url=* 等来标识具体的识别号(而URL Schema呢?则还是要在osmwiki上记载了)

若在osmwiki上有dataset和provider以及url的对照参考表登记,甚至 source:dataset:url=* 也省了

亦感谢您深入探讨这一话题,不妨等下看有无台湾当地的开发者有无更好方案。

LaoshuBaby commented 3 months ago

4. 即便要用此格式表示資料集來源,也應是 addr:dataset_ref:twaddr:dataset_ref=TW168887 而非 addr:TW:dataset,如此才保有在其他地區使用的彈性(其中,比照多語系名稱的命名空間,tw 應為「小寫」)。

此外对这点提出异议,在表示地区代码的时候OSM里面确实有保持大写的习惯,如"place:PH""place:CN"、或是network=*中也有很多例子。即使您指出的《多语言命名规范》一文中,也有这样一段不排斥大小写的示例

Keep uppercase codes used only for naming prefixes or suffixes in region specific tags (that are also independent of the language used): use preferably ISO 3166 codes in this case. For example, Traditional Chinese in Hong Kong is tagged name:zh-Hant-HK=, not name:zh-hant-hk=. (Use of the lowercase spellings largely ended in 2018. [1][2])

Lzmxya commented 3 months ago

此外对这点提出异议,在表示地区代码的时候OSM里面确实有保持大写的习惯

您說的對!仔細看了一下,ISO 3166 的地點代碼慣用大寫,而語言代碼 ISO 639 則慣用小寫。「TW」使用大寫是正確的。

因此折中一下,我个人会提议 source:dataset=* 用作记载发布单位,用 source:dataset:ref=*source:dataset:url=* 等来标识具体的识别号(而URL Schema呢?则还是要在osmwiki上记载了)

然而先前廣泛存在 source:addrsource:maxspeedsource:name 這樣的用法,意為指出該資料來源是針對「後綴提及的標籤」,這將與 source:dataset=* 的思路衝突。若後者成立,那麼 source:addr 的值就該是 新北市板橋區中山路一段161號(來源供應者「新北市政府」的地址)。

source=* 的使用也是存在争议的

沒錯!其實前述 source:addrsource:maxspeed 等用法,在文件上都被歸在〈 Historic usage on objects and attributes〉一節。既然目前的方針是建議在變更集附上 source=* 而非個別元素,我想不如就直接刪去目前地址節點中的 addr:TW:datasetsource,改為在匯入時於變更集的標籤加註。