一般語言學(General Linguistics)中,將自然語言程序(Natural Language Process, NPL)概分為包括語音(phonology)、形態(morphology)、語法(syntax)、語意(semantics)、語用(pragmatics)幾個部分的模型;然而根據其在應用與採樣領域上的不同需要,語言模型往往會在模型的建構上產生一些差異[1]。由於本次操作將建築空間與自動機規則類比於語言,因此在基礎的計算機語言學(computational linguistics )模型之外,另外結合了辭典學(lexicography)與數位圖學(digital geometry)概念,並將模型修正為以下幾個部分:
單元規則與形式(morphology: unit grammar, formation)
字辭組成定義(lexicon: syntax between units)
句型規則與結構(syntax: sentence grammar, structure )
語意(semantics: mode of sentence)
語用(pragmatics: remapping semantics from 2D to 3D)
以下以細胞自動機規則體現於建築形式操作之練習為例進行模型應用說明
本次操作分為三個部分進行討論。
首先是在processing中實作細胞自動機所使用的語言學模型與函式定義之分析。
其次說明因為lexicon規則所造成的syntax結構差異與各種semantics樣態。
最後是將2D細胞自動機資料轉換到3D物件時,不同領域模型間交互轉換的pragmatics分析。
細胞自動機所使用的語言學模型與函式定義之分析
Processing中的細胞自動機程式包含[Cell]和[Automa]兩種Class:
1. [Cell] 類型規定了單一的元素(atomic morphology)的規則與形式屬性;
Morphology 規則擁有各種set, get方法(method)與 MouseEvent, replace等反應。
Morphology 形式則由Ctint, display等控制顯示輸出的方法規定。
其中atomic中疊代紀錄的當前細胞狀態(statue)與下一代狀態(statueF)屬性,隱藏了將會被[Automa]應用的自動機語言的字辭組成定義(lexicon)。
透過lexicon定義的存在,每次重繪(redraw) [Automa],每個[Cell]都會在執行完所有[Cell]與其鄰近單元的生成分析(becoming rule)後才會執行replace函式規則,以確保自動機的疊代規則保有其同時性。
2. [Automa]類型則規定了取得[Cell]屬性與定義的各種方法,[Cell]週邊鄰近的生成規則(lexixon) 以及[Cell]彼此間的文法結構(Syntactic)
Lexicon: 包括 各種自[Automa]取得 陣列內容的getACell方法。
以及在[Automa]中,每一代[Cell]間彼此疊代的關係[2]。
Syntax: 包括 安置[Cell]的排列規則 與 陣列表現的 display 方法。
經典細胞自動機規則造成的差異表現在自動機生成Semantics狀態分析上
以下整理出經典規則所產生出來的幾種可能狀態
類型一、不會變動的狀態(static mode)
類型二、週期變動的狀態(cycle mode)
類型三、趨向擴張的狀態 ( extension tendency)
類型四、趨向消滅的狀態 (eliminate tendency)
類型五、穩定移動的狀態 (stable motion tendency)
將2D自動機資訊Mapping到3D幾何圖形上的Pragmatics操作
將一個9X9的擴張變化的細胞自動機狀態類比於空間中柱式剖面
1.[Automa]中的[Cell]直接對應不同高程上的格狀剖面
若是沒有因應2D與3D語法構成上的差異進行修正,剖面之間會產生單點連接的破碎狀態,即使使用可以平滑化cube單元的mesh技術,仍然必須將每一個[Cell]單元的邊緣重疊貼合才能成為一個完整的連續體。
<Simple Cube>
2.重構每一代[Automa]的輸出資料為Boolean的010資料格式
Morphology:並非直接套用[Cell]類型中已有的格狀形式,而是將2D的[Automa]重新修正為無形式的(formless) 1維 0101串列,並重新對應到空間中的point3d物件上。
Lexicon:但若仍然只是將不同的剖面套用到空間高程再使用cross reference的對應關係進行聯結,則資料會出現過多網絡交錯的現象。因此在3D空間中,仍然需要加入新的鄰近資料判斷規則,來合理化空間結構體的形式。在本操作中是限制每一個下方節點只會往上方的鄰近單元生長支架結構體。
<Linear Mesh>
3.結構量體完成後,將結構框架套用到mesh geometry底下進行重塑
Syntax:雖然透過lexicon篩選規則減少了許多重複與過度交錯的線條,然而因為Grasshopper運算數量上的限制;本次操作先在每一代的剖面支架量體上進行聯集運算。再將所有的支架聯集為一個完整的整體。最後根據mesh的平滑化規則,取得mesh的degree為2得到最後的柱式類型。
<Smoth Mesh>
現階段操作顯示
若是在不同領域的語言模型下進行轉譯操作,應當因應不同的狀態而進行pragmatics的修正:先將單位元素重新解構為最原始的無形式atomic資料串,再重新分析規劃不同維度的morphology、lexicon、syntax內容。後續預期將在不同的柱式類型操作上,再歸類出這種自動機規則應用於建築型式操作的semantics內容。
[1] Computational Linguistics: Models, Resources, Applications, by Igor A. Bolshakov & Alexander Gelbukh, 2004.
[2] 本次操作所引用的經典細胞自動機生成規則:
存活的細胞:
鄰近細胞中,恰有二或三個是活細胞時,則該細胞才繼續存活 其餘死亡
死亡的細胞(未塗色的空方格):
鄰近細胞中,恰有三個是活細胞時,則該處誕生一個活細胞
if (getACell(v).getStatue()==1){
if (sacount!=2 || sacount !=3){getACell(v).setStatueF(0);}
}else if (getACell(v).getStatue()==0){
if (sacount==3){ getACell(v).setStatueF(1);}
}