星期五, 5月 26, 2006

官職表的模型問題

好的抽象模型,應該能夠貼切地表達出問題本身的特質。

前一陣子,在「官職表:行政組織與任職人員」裡,我提到「實驗室成員希望能在研究上,找到合適的官職表抽象模型」。

或許是因為「想趕快得到成果」,或許是因為「好的抽象模型本來就不是說說那麼容易」,許多人會直接由輸入(手頭有的資料)與輸出(想要達到的結果)來做對應 -- 畢竟,起點(輸入)與終點(輸出)都知道了,系統本來就是其間的黑盒子。在輸入輸出間,直接做對應,不是自然不過的嗎?

於是,若想發展出一個「formal model」,我們或許會從任職人員起迄時間的列表著手,將每一列對應到一個述詞 (predicate) inPosition(p, q, t1, t2) -- 也就是說,將任職人員起迄的資料,換成一個「看起來有點數學味道」的式子。而 inPosition(p, q, t1, t2)這個式子,就表示了「從時間 t1 到 t2,人名 p 擔任 q 這個職位」。

模型當然可以這樣設計。而且,將手頭的資料表示成邏輯式子的「規則」,想到有了這些規則後,可以應用證明論 (Proof Theory) 來進行推理,內心應該還是興奮的。

然而,我總覺得這樣「從手頭資料直接對應」所取得的模型,雖然因為形式化而具有邏輯味道,但稍嫌人造 (artificial) 且「複雜」。

怎麼會複雜?它不是很恰當地表示了「任職人員起迄時間」這樣的資訊嗎?

我的感覺是這樣的。我們之前提過,官職表除了「任職人員起迄時間」外,還有「階層式的組織圖」資訊。如果獨立地將這兩樣資訊個別模型化,然後再設計一些 relations 來串接它們之間的關係,最後得到的模型,就會是一堆邏輯述詞(而且經常頗為複雜)的集合,有相當的可能,會因此喪失了模型自己應該具備的「直觀、簡潔」特性。

此外,更重要的一點,是看待歷史資料的態度。用「邏輯式子」表達每一項歷史資料,基本上相當於將這些歷史資料看作「事實」。然而,我們也知道,歷史資料雖然有相當的信實性,但還是可能有錯誤,可能有不一致 (inconsistent) 的狀況,也可能有資料不完整的問題。

因此,我總覺得,應該回歸到歷史資料的「本質」上來思考,模型才比較實際。那麼,什麼才是「本質」、怎樣的模型才算是「直觀、簡潔」?坦白說,我也不甚明瞭。只隱隱覺得,那是要經由一番淬鍊、經由相當深入的探索與思考,所得到的直觀。(或許,很弔詭地,「眾裡尋他千百度,驀然回首,那人卻在燈火闌珊處」。最後得到的結論,外觀竟也還是「獨立地將個別的資訊模型化,之後再整合」,也說不定呢。)

沒有留言: