?

數據庫管理軟件在考古報告編寫工作中的應用

2024-01-11 07:49祁冰謝堯亭
文物季刊 2023年4期

祁冰?謝堯亭

摘要:本文以山西翼城大河口西周墓地Ⅱ區的報告整理過程為例,介紹了利用數據庫管理軟件實現將田野考古原始數據轉換成考古報告文本的方法。以此種方法生成的報告文本支持隨時修改文本格式和原始數據,從而將負責資料整理的考古學者從大量機械重復的數據統計、核對檢查工作中解放出來,改進了報告整理的工作流程,加快了科研成果轉化的速度,順應了考古學吸納新方法、新技術的時代趨勢。

關鍵詞:考古報告整理 考古數據庫 FileMaker Excel Power Quary

Abstract: Taking the compiling process of excavation report of the AreaⅡ in Dahekou cemetery of Western Zhou, Yicheng county, Shanxi province as an example,this paper introduces the method of transforming the original archaeological data on field work into excavation report by using database management software.The report text generated by this method supports the revision of text format and original data at any time. This liberates the archaeologists from a large number of mechanically repeated data statistics checking and inspection, improves the work process of report collation, speeds up the transformation of scientific research achievements and conforms to the trend of archaeology to absorb new methods and technologies.

Keywords: Compile of archaeological reports Archaeological database File Maker Excel Power Quary

前 言

20世紀60年代后期,隨著計算機性能的提高和社會相關需求的增加,計算機數據庫系統出現并很快被應用于生產生活之中。20世紀80年代,我國就有學者倡導將計算機數據庫技術與考古學研究結合。其后數十年,越來越多的學者進行了實際應用和理論探討。近年來,隨著個人計算機的普及與具備圖形化操作界面的數據庫管理軟件的完善,計算機數據庫系統的技術門檻被大幅度降低,其在考古行業中的應用已屢見不鮮。但是,目前考古工作者對數據庫管理軟件的使用多集中于田野發掘階段的存儲材料和室內研究階段的分析數據等方面,而對于資料整理與報告編寫階段中的應用方法則談及較少,缺乏可供參考的案例。眾所周知,考古資料的整理是一項耗時耗力的繁瑣工作,同時又是將原始材料變為科研成果的關鍵環節。因此,如果能夠在資料整理過程中充分利用數據庫管理軟件強大的“數據處理”功能,即可大幅度提高其中部分基礎工作的效率和準確性、降低人工和時間成本、加快學術成果的轉化速度。

大河口西周墓地位于山西省翼城縣縣城以東約6000米處大河口村北的臺地上,整個墓地共有西周墓葬2200余座。為便于開展工作,我們將該墓地劃分為13個區域。其中,Ⅱ區位于墓地中部偏西,共有墓葬90余座,以中小型土坑豎穴墓為主??紤]到該區墓葬的特點,我們在整理資料過程中嘗試采用了計算機數據庫技術,取得了較好的效果。下面就以報告文本中字數多、內容繁的“墓葬分述”部分為例,介紹我們利用“低代碼”數據庫軟件實現將原始資料直接轉化成考古報告文本的具體方法。

軟件的選擇與報告體例的確定

目前市面上流行的數據庫管理軟件眾多,體量和功能也不盡相同,我們通過比對各軟件的上手難度、購買價格等特點,最終選擇了Claris FileMaker Pro和Excel Power Query來完成整個工作流程。

確定報告的體例是報告編寫工作的第一步。我們在參考學習《天馬—曲村》等經典報告的基礎上,結合大河口西周墓地的特點,制定了包括章節大綱、段落結構在內的詳細編寫體例,其中“墓葬分述”部分的體例示意如下:

墓葬情況

(1)位置(該墓葬在所屬發掘區的具體位置及其與周邊遺跡的關系。)

(2)墓向

(3)墓壙(墓葬整體形制、墓口形狀、現墓口距地表深度、墓口尺寸、墓壁剖視形狀、墓壁形態、二層臺情況及尺寸、墓內填土情況、腰坑的有無及其特征等。)

(4)葬具(葬具規格、保存狀況、結構、棺槨板的數量和尺寸、墊木等其他附屬結構的具體情況等。)

(5)葬式(墓主葬式、頭向、面向、雙手位置、年齡、性別等。)

(6)隨葬品數量及放置情況(墓葬每個空間每個方位隨葬品的詳細放置情況,包括種類、數量、件號等。)

(以上所有內容需根據墓葬具體情況進行增刪,保持結構明確、語意連貫,防止機械死板,對于特殊的遺跡現象要重點詳細描述。)

隨葬器物

(按照材質、類別依次介紹所有隨葬品,具體信息包括器物號、保存情況、材質、形制、紋飾、制作痕跡、尺寸等。)

數據庫的建立與數據錄入

我們選擇使用Claris Filemaker Pro來完成數據庫的建立與數據錄入工作。該軟件可以處理圖片、文本等數據,支持xlsx、csv等表格文件的導入導出,自帶輕量化編程語言,界面簡單、易于上手。建立數據庫之前,要對原始資料進行整理檢查,充分了解數據的整體情況,保證數據條目內容的“正確性”和“相容性”。數據庫的建立過程共分三步。

第一步,編制數據表單。為了能夠全面準確地記錄大河口墓地Ⅱ區各墓葬的諸項信息,我們以《田野考古工作規程(2009版)》中的相關要求及各類表格為參考,制定了一系列電子表單,用以分類記錄各項數據。根據表單對應的具體數據內容,可將其分為兩個類別,與遺跡有關的表單包括:墓葬數據庫、人骨數據庫、獸骨數據庫、墓葬照片庫、墓葬線圖庫,與遺物相關的表單包括器物數據庫、器物線圖庫、器物照片庫。在各個表單中,我們分別為墓葬、器物、照片、線圖等內容設計了盡可能多的屬性(即數據庫軟件中的“字段”)以供填寫。雖然每個數據條目的“字段”繁多,但是由于FileMaker等數據庫處理軟件都擁有輸入界面布局設計功能,通過合理規劃設計,可以輕松實現輸入界面的“多而不亂”(圖一)。

第二步,設置表單間關系。將墓葬數據庫中的“墓葬編號”字段與人骨數據庫、獸骨數據庫、墓葬照片庫、墓葬線圖庫、器物數據庫中的“所屬墓葬”字段關聯;將器物數據庫中的“(器物)合成編號”字段與器物照片庫、器物線圖庫、器物拓片庫的同名字段關聯。經上述操作后,即完成對整個數據庫系統中數據表單間對應與層級關系的設置(圖二)。

第三步,設計智能化輸入界面。該部分工作的最終目的是為了便于后續數據的輸入,主要通過修改各輸入欄的呈現方式和簡單的腳本編輯來實現。大體分為如下幾種情況:一、添加相關記錄跳轉和新增記錄功能。在輸入界面添加具備“轉到相關記錄”、“添加新記錄”等功能的按鈕,便于隨時瀏覽和檢索相關數據。二、設置多樣化的輸入欄。為規范描述語句和統一表達方式、加快輸入速度,我們將一部分“字段”的輸入方式更改為單選框、多選框和下拉菜單。例如:墓壙信息中存在一些可定性描述的特征,該類特征的輸入欄可設置為“單選按鈕”的樣式(圖三,左)。三、優化輸入界面的顯示邏輯。我們主要采用了兩種方式。(一)通過在輸入信息所用文本框的“隱藏對象時間”屬性內輸入判斷語句,實現某些字段的輸入框可以根據相關內容自動顯示或隱藏。如:當“腰坑有無”字段的內容為“無”時,則不再出現腰坑相關信息的輸入框。(二)利用復制、粘貼、新增條目等簡單腳本,自動填寫一些固定格式的內容,在提高輸入速度的同時避免了人工輸入過程中可能出現的錯誤。如:當需要在器物數據庫中新加隨葬品時,只需要直接點擊現有器物編號后面的“+”按鈕,即可出現新的空白輸入界面,并自動將原有器物編號加1后填寫在器物編號字段中。四、為了能夠更加直觀地反映葬具、隨葬品等與墓葬之間的“一對多”關系,我們還在墓葬數據庫中設置了“入口工具”以批量顯示人骨數據庫、器物數據庫中的相關記錄,便于瀏覽、編輯(圖三,右)。

完成數據庫的建設之后,即可組織人員進行數據輸入。需要補充的是,以上數據庫還可以通過進一步完善功能的方式,應用到從現場發掘到室內整理的各個工作環節之中。示例如下:

一、增加“數字化墓葬發掘日記”功能。田野考古工作中需要對各種遺跡現象和現場判斷進行全面記錄,傳統的紙質發掘日記僅能記錄文字和草圖,雖然發掘者可以利用照相機和攝像機進行一些信息補充,但是需要在每天發掘結束后及時對照片、視頻進行整理,費時費力。Filemaker具有全平臺覆蓋的特點和云端服務功能,可以很好地優化上述工作流程。首先為已有數據庫設計“發掘日記”和“發掘日記附件”表單,在表單中添加時間戳、創建人、所屬墓葬(文本類型)、正文(文本類型)、附件(容器類型)等字段;再利用“所屬墓葬”字段將兩份表單分別與“墓葬數據庫”建立關聯并在對應界面添加“入口”工具以羅列相關內容;最后優化輸入界面布局,使其適應手機的屏幕尺寸。完成上述步驟之后,數據庫中就被添加了“數字化墓葬發掘日記”模塊(圖四,1)。將此數據庫上傳至軟件的云端服務器,參與發掘的工作人員就可以在手機端的Filemaker Go應用中,通過輸入預先分配好的賬戶名和密碼來訪問數據庫并進行編輯,實現團隊協作、實時錄入(圖四,2)。該數字化日記中每篇日記的“創建人”和“時間”會根據實際情況自動生成,防止出現錯誤,而且除了文本以外,該日記的“附件”中還可以加入照片、錄像、錄音等內容,記錄手段十分豐富。

二、增加“數字三維模型瀏覽”功能??脊殴ぷ髡咴谶M行器物描述和后期研究過程中需要反復觀察遺跡的圖像資料和遺物本體。通過現代數字三維重建和三維掃描技術獲得的高精度模型,既豐富了遺跡和遺物信息的記錄方式,也為上述工作提供了便利。這類數字三維模型資料也可通過數據庫進行管理,以實現隨時調取查閱、多類信息比對的目的?;竟ぷ魉悸肥牵合葘⒅谱骱玫母呔葦底秩S模型通過虛幻(Unreal)引擎打包制作成可以獨立運行的可執行文件(圖五,1);再將其保存在數據庫根目錄下的一個特定文件夾中;最后在數據瀏覽界面添加“查看模型”按鈕,通過為該按鈕添加“打開文件”腳本實現通過器物編號尋找對應的文件并將其打開的效果(圖五,2)。

數據轉換與合成

輸入完數據的下一階段工作,就是通過數據庫管理軟件中的數據處理功能將各條原始數據進行轉換并最終合成完整的報告文本。下面就依據體例要求,從“基本思路”“計算腳本、函數參數”“生成結果”三個方面介紹我們所采用的方法。

一、Filemaker中的數據處理

通過分析制定好的體例可知,“墓葬情況”中除“隨葬品數量及放置情況”以外的部分以及“隨葬器物”中每件器物的具體描述部分都以詞句的拼接組合為特點,適合在FileMaker中通過編輯腳本完成。具體方法介紹如下。

在“墓葬數據庫”和“器物數據庫”表單中分別添加一個“計算”類型字段,依次命名為“墓葬情況描述合成P1”、“隨葬品描述合成”,設置其計算結果為“文本”類型,通過編輯該字段的腳本,讓各數據庫中的字段按照體例要求的格式存儲在這一字段中。腳本中需要用到List(列表)、If(判斷)等函數以及連接“&”、換行“?”和空格等符號。其中List用于逐一羅列“一對多”條目的內容,如某一墓葬中的槨、棺。If函數用于判斷特定字段的填寫內容,并根據判斷結果生成對應的文本。連接符、換行符和空格用于調整文本格式。為了便于后續修改,避免腳本行數過多,我們在每一小部分內容之后,都設置了一個文本合成字段,命名為“某某合成”(圖三,左),最后再將各個小部分的合成文本合并為最終需要的文稿(腳本示例見附錄一)。

完成上述工作后,就可以將“墓葬數據庫”、“器物數據庫”中所需字段導入Excel Power Query成為表格(Table)文件?!澳乖釘祿臁眱H需導入“所屬墓葬”和“文稿”兩個字段即可?!捌魑飻祿臁敝械摹安馁|”“件號”“器名”“件數量”“組數量”“隨葬品描述合成”等信息還要經過統計后呈現在“墓葬情況”中的“隨葬品數量及放置情況”部分和“隨葬器物”部分,所以要將“隨葬品描述合成”之外的所有字段一并導入(圖六)。

二、Excel Power Query中的數據處理

(一)生成“隨葬品數量及放置情況”部分

根據體例要求,該部分內容以數據統計結果為主,這正好讓Excel Power Query中M函數強大的數據處理功能有了用武之地。較之人工統計,利用M函數處理數據具有準確、高效、可后續修改原始數據、可自定義排序等優勢。

我們使用M函數生成報告的主要方法有兩種。第一種為“分類匯總”,該方法使用到的核心函數是Table.Group(表格分組),此函數可以以某一個或多個字段為索引,對現有表格(Table)進行分組,并將其生成列表(List)。對生成的列表使用List.Sum(列表求和)、List.Count(列表計數)、List.Distinct(列表去重)、Text.Combine(文本連接)等函數即可分別實現對列表內數據的求和、計數、羅列等功能。如以“所屬墓葬”字段為索引,對“(器物)名稱”使用Table.Group與List.Sum的函數組合,即可獲得每個墓葬中所出隨葬品的總數。第二種為“格式調整”,該方法的作用與Filemaker中利用腳本合成文稿相同,即通過對表格(Table)、列表(List)或文本(Text)數據補充詞句、添加換行或空格,構成格式完美、語句通順的報告文本。使用到的函數有Table.AddColumn(表格添加列)、Table.NestedJoin(表格追加)、Text.Replace(文本替換)以及文本連接符號“&”、換行轉義符“#(lf)”等。當然,在實際應用中還要根據具體情況對數據進行預先處理,這就可能使用到If(條件判斷)等函數。

下面就依據報告文本中的先后順序,介紹利用M函數進行報告文本生成的工作流程。

1.隨葬品數量及材質

由于隨葬品中存在成組的器物(如各種材質的串飾)和單件的器物(如陶鬲)兩種類別,需要對相關數據進行預處理。由于我們在填寫“器物數據庫”時,將單件器物的“組數量”字段以“0”表示,故可利用If(條件判斷)函數設計如下判斷邏輯:若器物的組數量不為“0”,則以組數量計數,反之則以件數量計數。在此基礎上,即可利用Table.AddColumn(添加列)函數新增“隨葬品數量預處理”列,用以存儲判斷結果。然后,將“隨葬品數量預處理”中的數據以“所屬墓葬”為索引進行分組求和,即獲得每座墓葬中隨葬品的總件(組)數;將“材質類別”字段同樣以“所屬墓葬”為索引,進行分組去重羅列,即獲得每座墓葬中所出隨葬品的材質種類的總述。最后,合并以上結果并存儲至新增字段“總數量合成”中(圖七;各步驟函數的具體參數設置見附錄一)。生成結果如圖所示(圖八)。

2.隨葬品種類

先以“所屬墓葬”、“名稱”為索引,分別對“組數量”和“件數量”字段分組求和,再將“名稱”字段與求和結果進行文本連接,即獲得每座墓葬中每種隨葬品的總件(組)數量的分述。最后以“所屬墓葬”為索引,將上述結果分組羅列即可獲得每座墓中隨葬品種類及數量的總述(圖九;各步驟函數的具體參數設置見附錄一)。生成結果如圖所示(圖一〇)。

3.隨葬品放置情況

根據體例要求,該部分可分為兩段文字。

第一段。先以“所屬墓葬”為索引對“放置空間”進行分組去重求和,即可得到每座墓葬中所有隨葬品放置空間的總數量,隨后進行格式調整,使其單獨成段。

第二段。需要進行多次分組統計。以“所屬墓葬”、“放置空間”、“放置方位”、“名稱”字段為索引,先對“組數量”和“件數量”字段分組求和,即獲得每座墓中每個位置上每種隨葬品的數量,再對“件號”進行分組羅列,即可獲得每座墓中每個位置每種隨葬品的件號總述。隨后將兩部分結果連接,即可獲得每座墓中每個位置上每種隨葬品的數量及其編號總述。接下來,先以“所屬墓葬”和“放置空間”為索引將上述結果分組羅列,即獲得每座墓中每個空間所有方位隨葬品的數量及件號的總述。再以“所屬墓葬”為索引將上述結果分組羅列,經過調整格式后,即獲得每座墓中隨葬品位置及放置情況的總述。需要指出的是,為了便于閱讀,可以在介紹每個空間隨葬品放置情況的語句前面增加序號。實現的方法是,在進行最后一步分組羅列之前,先利用連接符“&”為每個空間所有方位隨葬品的數量及件號列表(List)前添加一個空值“null”,再使用Combiner.Combine Text By Each Delimiter(合并文本且添加自定義分隔符)函數代替Text.Combine函數來完成文本合并工作。前者可以將自定義列表中的內容逐一作為被合并各項之間的分隔符。由于每座墓中隨葬品的放置空間總數最多不過10處,所以我們設定了從①到⑩的數字序列作為間隔符(圖一一;各步驟函數的具體參數設置見附錄一)。生成結果如圖所示(圖一二)。

(二)生成“隨葬器物”部分

此部分文本需要按照材質類別、器物名稱,逐一介紹各隨葬品的具體情況,使用函數的基本思路與“隨葬品放置情況”的第二段類似——先逐級分組羅列,再添加序號并調整格式。本文不再重復介紹(各步驟函數的具體參數設置見附錄一)。最終效果如圖所示(圖一三)。

(三)最終合成“墓葬分述”部分

利用Table.NestedJoin函數或者“合并查詢”工具將之前的所有轉換結果以“所屬墓葬”為索引,全部嵌套合并到原先導出的“墓葬信息表”中;再利用Table.Expand Table Column(表格展開)函數將嵌套后的各列逐一展開;最后使用Table.Add Colum新建一個字段,用以存儲最終合成的總文本。至此,全部工作流程已經完成,接下來只需要將“總合成”字段的內容全選,復制到文字處理軟件(如Microsoft Word)中即可。最終效果如圖所示(圖一四)。

小 結

本文介紹的工作流程共分為兩個階段八個步驟(圖一五)。雖然整體步驟稍顯繁瑣,但是完成一次之后便可以此為模板,根據實際需求隨時調整原始數據、文本格式等,相當便捷。而且其最終呈現的效果完全符合報告體例要求,與人工編寫別無二致。

考古學發展至今,從田野發掘到后期研究中的各個環節都在不斷吸納新技術、新方法??脊艌蟾孀鳛榭脊挪牧系闹匾宫F形式,也必然需要在遵循傳統原則的基礎上持續改進工作方法、提高整理效率、豐富展現形式,從而更好地為科研服務。希望本文能夠在實踐和理論方面對相關工作起到些許促進作用,填補以往應用案例中的空白。必須承認的是,技術在進步,觀念在革新,本文所介紹的工作流程必定會很快落后于時代。但筆者認為,在研究如何利用計算機技術輔助考古學研究的過程中,最重要的并非掌握某一具體問題的解決方案,而是始終擁有利用計算機技術解決考古工作中實際問題的理念和與時俱進、不斷創新的思想。希望有更多的學者參與到相關問題的討論之中,持續推進傳統考古工作的現代化、準確化、高效化。

本文是國家社科基金重大項目“山西翼城大河口西周墓地考古發現與綜合研究”(項目批準號:17ZDA218)的階段性成果。

王珊、薩師煊:《數據庫系統概論(第5版)》,高等教育出版社,2014年。

李科威:《計算機考古芻議》,《東南文化》1988年第5期。

實際應用方面,以河南澠池班村遺址的發掘為早期嘗試案例,近些年比較典型的有吉林大安后套木嘎遺址的發掘,參考:班村考古隊:《班村遺址發掘操作原則(討論稿)》,《中國歷史博物館館刊》1995年第1期;霍立治:《計算機與考古學》,《中國歷史博物館館刊》1995年第1期;史寶琳,劉曉溪:《后套木嘎遺址田野考古數據庫的建設》,《邊疆考古研究》2013年第2期;霍東峰,梁建軍:《田野考古資料數據庫的理論、方法與實踐——以后套木嘎遺址為例》,《邊疆考古研究》2015年第1期;王立新、SEBILLAUDP、霍東峰:《大安后套木嘎遺址發掘方法、技術與記錄手段的新嘗試》,《吉林大學社會科學學報》2016年第1期。方法探討方面,具有代表性的文章有如下幾篇。騰銘予:《計算機與考古學——計算機技術在中國考古學領域的應用》,《吉林大學社會科學學報》1997年第3期;郭健、闞映紅、王卉等:《文物管理信息系統中數據庫的建立》,《中國地理信息系統協會第四次會員代表大會暨第十一屆年會論文集》,2007年,第498~506頁;胡金華、穆朝娜、仇鳳琴:《田野考古檔案資料規范化管理的思考》,《中國文物科學研究》2007年第3期;劉建國:《數字考古的理論與實踐》,《南方文物》2007年第1期;陳立飛:《基于.Net平臺的田野數字考古信息系統的設計與實現》,河北師范大學碩士學位論文,2013年;王華忠:《考古發掘數據處理分析關鍵技術研究與實現》,浙江大學碩士學位論文,2013年;田博宇:《基于.Net平臺的田野數字考古信息系統的研究與開發》,河北師范大學碩士學位論文,2013年;繆雪燕:《田野考古數字化實踐與思考》,鄭州大學碩士學位論文,2017年;高勁松、韓牧哲:《考古發掘資料圖數據庫的語義關聯構建研究》,《圖書情報工作》2021年第9期。

Filemaker的前身可追溯至1980年,1984年正式更名為Filemaker,現在歸屬于蘋果公司(Apple Inc.)的全資子公司 Claris。該軟件界面簡潔,易于上手。官網: https://www.claris.com。與之具有類似功能的軟件還有微軟的Microsoft Access。

Power Query是Microsoft Excel的一個插件,專門用于處理大量復雜數據,其自帶的M函數可以滿足各類數據整理的需求。官網:https://powerquery.microsoft.com/en-us/。

北京大學考古學系商周組、山西省考古研究所:《天馬—曲村(1980-1989)》,科學出版社,2000年。

同[1]。

國家文物局編:《田野考古工作規程》,文物出版社,2009年。

“隨葬品數量及放置情況”部分為“P2”。

錄入與轉換數據的工作其實也可以全部在Excel Power Quary中完成,但是為了充分發揮不同軟件的優勢,我們決定將兩個軟件結合起來完成整個工作流程。

相當于“墓葬數據庫”中的“文稿”。

為行文簡潔,本文省略將數據轉換為Excel Power Quary中表格(Table)的操作方法以及每個函數中各參數的具體含義,請參看軟件自帶的幫助文檔和微軟官方網站的函數參考(https://learn.microsoft.com/zh-CN/powerquery-m/power-query-m-function-reference)。

“可后續編輯”指:利用Excel Power Query完成統計并生成文本后,可以隨時修改原始數據并利用“刷新”功能更新統計結果和最終生成的文本。

“可自定義排序”是指:利用Excel中的“自定義排序”功能,可以設定并隨時更改最終報告文本中需要逐項介紹的內容的排列順序,以實現報告全篇格式統一、便于查閱。

“羅列”是指將列表內各項內容連接合并為一整條文本格式數據,并以設定好的字符作為原先各項的間隔和結尾。

該項內容也屬于早年學者所提出的“計算機考古”的一部分。

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合