Date: 20180809
Version: 1
本篇為前篇「小說背景設定-12」之延伸。
但參考資料做了一些改變,採用教育部國語辭典公眾授權網中的《成語典》,跟上次資料不同的是,該網站提供了成語相關資料的下載,幫助我們更容易了解成語的來源與用法,降低了查找資料的時間。
首先介紹資料格式,相關欄位有編號、成語、注音、漢語拼音、釋義、典源、典故說明、書證、用法說明、近義、反義、辨識、參考語詞,共13項,針對主題進行篩選,不需要注音和漢語注音,典源與典故說明衝突,僅保留典故說明,書證內容不太需要,用法說明與釋義衝突,僅保留釋義,辨識為其他html檔案,不考慮,參考語詞為其他組成之成語,大多數皆不常使用,故最後僅保留6項,另外,為了加入成語能力的解析,故再加上兩個欄位「形」和「義」(文後再解釋),所以結果一共為8項。
該資料表共有5106筆,刪除大多數可義參的成語後,最後成語總數為1568筆,以上這些列述和欄位就是之後成語資料庫的組成。
接下來就是介紹如何使用這個成語資料庫,為了可以隨時隨地查看/更新成語資料,故作成一個APP是一個不錯的點子,而我使用的還是App Inventor 2,而之前常使用的資料庫,google的spreadsheet,只能讀取無法寫入,故這次選用了其他線上資料庫來儲存資料,有tinywebdb和Firebase兩種,上網查了一下,就決定使用Firebase,主要是因為操作簡單,不需要太多額外設定就可以達成,建立好Firebase相關資料後,就要開始匯入,Firebase使用的是json格式資料匯入,故需要將上述成語資料庫轉換成json格式後再上傳,請注意json格式編碼請使用utf-8,否則資料無法上傳。
Firebase json 格式如下:
有興趣的可以上網查一下,Firebase 的資料庫格視為NoSQL,主要是透過Key-Value進行配對,主要是使用物件來進行建置,當然用陣列也是可以。
前置作業完成後,接下來就是使用App Inventor 2 來製作成語APP了,中間過程就不贅述,直接放結果圖如下:
左1是點擊"GO!!"後,會隨機選去一組成語秀出,點擊"釋義、典故、近義、反義"後,會出現左2,會顯示其內容,如果長按"GO!!"的話,會出現左3,可輸入成語的編號,目前有填入相關資訊的是左4,分別在"形"和"義"鍵入相關資訊後,按下"儲存",即可將內容上傳到Firebase。
開發的過程中,花最久的時間反而是在版型的建置上,一開始是用下拉式選單,但發現效果不太好,形和義,本來是當選擇某一個另一個textbox會隱藏,但發現不太好用,最後就改成兩欄式,兩邊可以一起對照的打,再來說明一下的是,在讀取資料的時候,一開始設計是將該組成語所有資訊讀取下來後,在程式內進行檢索,但發現在某些編號的成語,會出現讀取錯誤,我也找不出原因來,最後,就改為每一個按鈕的是去跟Firebase進行讀取,這樣處理後,就沒有再發生讀取錯誤的問題了,再來就是Firebase(免費)有限制每月10GB的下載量,目前看起來很夠用了。
以上就是成語APP的製作過程,接下來就開始進入到正題,也就是本次小說背景設定的設定了。
這篇主要的就是形和義兩種,所謂的義,就是成語的真正意涵,而形則是就字面解釋成語,例如:「三人成虎」,並不是只有三個人變成虎,而是指...等,所以三個人變成虎就是形,而...則是義,也就是說在APP中,要將成語以這兩種角度來詮釋成語能力,希望有一天我可以完成全部1568筆成語的能力詮釋。
另外,該成語的能力也可修成反義,只不過就像法師一樣使用超魔技巧,需要多耗費一樣,使用者也需要提供更多能量。
20180902更新:
在後來使用上發現一點不太好用,就是如果對某個成語有靈感時,但以目前設計是無法找出那個成語的,因為是用隨機取號的方式,所以這次對程式進行了修正,增加了ListPicker的功能,可以在輸入編號的地方,也可以輸入關鍵字,之後程式會用關鍵字搜尋並用ListPicker將搜尋結果顯示出來,讓使用者進行挑選。
只增加了對輸入進行檢核,若是數字,則將該編號相對應的成語拉出,若不是數字,則比對所有成語,將含到該關鍵字的成語列出在ListPicker中,讓使用者挑選,完成後使用起來感覺還不錯。
參考文獻:
1. 教育部國語辭典公眾授權網
沒有留言:
張貼留言