標準通用置標語言SGML及其在自然語言處理中的應用

>>>  古風悠悠—傳統政治與精神文明  >>> 簡體     傳統


       本文語料庫和術語數據庫是當前自然語言處理(naturallanguage processing,簡稱NLP)的重要內容,特別在語料庫語言學興起之后,這方面的研究特別活躍。在文本語料庫和術語數據庫的研制和應用中,如何交流庫與庫之間的信息資源,是一個極為重要而迫切的問題。   為了實現文本語料庫之間以及術語數據庫之間的信息交換(information exchange)和信息的再利用(information reuse), 必須首先解決語言信息格式的標準化問題。國際標準化組織ISO/TC37 /SC3 近年來一直力圖把標準通用置標語言(Standard  GeneralizedMarkup Language )應用于文本語料庫和術語數據庫的研制和開發之中,在最近召開的ISO/TC37/SC3 的會議上, 幾乎每一次會議都要討論SGML在自然語言處理中的應用問題。本文作者曾經作為中國代表參加過1993 年(在丹麥哥本哈根召開)、 1994 年(在挪威奧斯陸召開)和1995年(在美國費城召開)的標準化會議,在會議期間積極參與了有關問題的討論,并參加了有關國際標準的投票,對于這些標準的情況和細節比較了解。因此,我們在本文中介紹一下SGML這種重要的標準通用置標語言以及它在文本語料庫和術語數據庫中的應用,希望這些介紹有助于我國語言信息處理中標準化工作的進一步開展。
  為了幫助人們理解書面信息的內容,書面信息必須顯現為便于人們閱讀的形式,人們便常常在書面文本中加入一些控制標記,如文字的大小、標題的字體、插圖的位置等。但是,每個系統都有自己的控制標記,不同的系統之間沒有統一的格式,標記和格式都沒有通用性;有的系統盡管也采用了所謂“過程性置標”(procedural markup)的辦法,說明在系統中,應該選用什么字體,標題應該處于版面上的什么位置等,但是,這種過程性置標無法使人們了解文件的結構,而且缺乏靈活性。例如,過程性置標告訴人們標題應排在一行的正中,但排在一行正中的不一定是標題,有時可能是插圖或引用的某一內容;又如,當要使用另一個系統,或者使用同一個系統而要改變格式時,過程性置標必須逐一地改變以前所置的標記,重復處理的過程,費時而又費力。這種情況,嚴重地妨礙了信息的交換。因此,很有必要設計一種通用的標記,以提高信息的利用效率。
  美國早在60年代就有學者開始研究這個問題。 1969 年, CharlesGoldfarb在領導IBM公司關于集成法律辦公信息系統的研究項目時, 就同他的合作者Edward Mosher和Raymond Lorie共同設計了通用置標語言(Generalized Markup Language,簡稱GML語言)。1978年,美國國家標準化局(ANSI)的下屬單位成立了一個工作組,由Goldfard領導,進行文本描述語言標準化的研究,這項研究以GML語言為基礎, 進一步設計標準化的通用置標語言(Standard Generalized Markup Language,簡稱SGML 語言)。   這項研究得到了美國圖形通信協會(GraphicCommunication Association,簡稱GCA)的支持,1980年發表了SGML第一稿草案。1983年,GCA推薦SGML第六稿草案作為工業標準, 被美國稅務署和國防部采納,1985年SGML作為國際標準草案發布,1986年,國際標準化組織正式發布了SGML國際標準,標準號是ISO8879-1986。 我國于1995年也把SGML語言作為國家標準,標準號為GB 14814。從研究通用的標記到SGML語言成為正式的國際標準,前后經過了近20年的時間。SGML語言應滿足如下約束條件:
  (1)SGML  語言所置標的文本必須能夠被廣泛使用的文本處理系統和文字處理系統所接受;
  (2)SGML 語言能夠支持現有的大容量文本輸入設備;
  (3)SGML 語言不依賴于任何的字符集, 可以允許在不同的設備上輸入文本;
  (4)SGML 語言獨立于具體的處理程序、系統、設備;
  (5)SGML 語言沒有任何的民族語言傾向;
  (6)SGML  語言應該適合于人們所熟悉的打印機和文字處理程序的習慣;
  (7)SGML 語言置標后的文本應該能夠與其它數據并存;
  (8)SGML 語言應該既可以為計算機所使用, 也可以為人所使用。
  總而言之,SGML語言的設計目的是要使文件信息與設備無關,與處理系統無關,甚至與所用的語種無關。SGML語言的目的,就是要在各個孤立的系統之間架起橋梁,使各個孤立的系統彼此聯系起來。
  SGML語言通過描述文件邏輯結構的方法,使置標具有通用性,并通過一系列的聲明(declaration), 使各個系統都能理解文件的信息與置標。
  任何文件都有其自身的結構。例如,書信由發信人、收信人、信件本體等部分組成,公文由發文單位、收文單位、題目、文號、公文本體等部分組成,學術著作由目錄、序言、學術著作本體、后記等部分組成,等等。學術著作本體又可由若干章組成,每一章又可以由若干節組成,每個節又可以由若干段組成。學術著作的結構可以用下面的樹形圖來表示:
  附圖H19c01.JPG
  書信和公文的結構也可以用類似的樹形圖來表示。SGML語言在邏輯上將文件表示為樹形圖結構。樹形圖上的每一個非終極結點叫做“元素”,一個元素的子結點,叫做這個元素的“內容”。例如,在學術著作的樹形圖結構中,“章”是“著作本體”的內容,“節”是“章”的內容,“段”是“節”的內容。樹形圖上的每一個終極結點沒有內容,這些沒有內容的終極結點,叫做“數據”。
  SGML 語言用描述性置標來區分文件信息中的不同元素, 用“文件類型定義”(Document Type Definition,簡稱DTD )來描述某一類文件的結構,說明在這一類文件中有哪些元素,這些元素之間存在什么樣的關系,SGML 語言還用SGML 聲明(SGML declaration)來說明所用的字符集、置標用字符、語法規則等。
  總起來說,SGML 的文件應該包括三個部分:SGML 聲明、文件類型定義、文件實例。下面我們分別對這三個部分加以說明。
  1.SGML 聲明(SGML declaration)
  SGML 聲明用來定義字符信息、具體語法規則、 容量要求以及選用SGML 的哪些特性。
  (1)字符信息:說明置標用的字符。例如, 重新定義用以區分文件內容與置標的定界符,定義功能字符,更改保留名,關鍵字等。SGML允許指定正文所用的字符集,包括字符表及其對應的編碼。SGML還允許使用多八位編碼字符集,這就可以在不同語種上使用SGML語言并交換文件。
  (2 )具體語法規則:允許用戶按照自己的習慣定義具體語法規則,確定命名的規則,說明哪些字符可用于元素或其他成分的名字及名字開始字等等,改變SGML語言中推薦的語法規則。
  (3 )容量要求:說明各種名字的長度、 標記的長度等。 如果與SGML語言中推薦的容量不一致,用戶可自行定義。
  (4)可選特性:SGML語言中有許多可選特性,例如, 省略標記特性、鏈接類型特性等等,這些可選特性增強了SGML語言的適應性和靈活性。SGML聲明中,應該說明是否選用這些可選特性,并說明具體選用哪種類型的可選特性。
  SGML語言的核心是抽象語法。抽象語法定義了通用標識符、屬性、實體引用等指標的使用方法。對于定界符字符、字符集、關鍵字、保留名、容量值等的規定,是SGML語言中作為向用戶推薦的“基準具體語法”(reference concrete syntax)決定的。 用戶可以根據自己系統的環境、自己的民族語言、自己的鍵盤特點,使用SGML聲明的內容來定義自己的具體語法。在使用不同的具體語法的系統之間交換信息時,SGML聲明是必不可少的,它必須出現在SGML文件的最前面。
    2.文件類型定義(DTD)
  DTD定義文件的結構和在文件信息中的置標規則。在DTD中,要遵照SGML聲明中規定的字符信息和具體語法規則,對一類文件的結構用一組置標聲明(markup declaration)作嚴格的定義。
  在DTD中所用的置標聲明主要有如下幾種:
  (1)元素聲明(element declaration)
  由于SGML語言在邏輯上把文件組織為由元素組成的樹形圖結構,元素是文件信息中的主要成分。元素聲明用于說明每種元素的結構,其內容包括元素類型名及其內容結構,一般格式為:
  〈! ELEMENT元素類型名(內容模型)〉
  ELEMENT是元素聲明的關鍵字, 內容模型中說明該元素內容中允許出現的子元素,并說明這些子元素以哪種關系和方式出現,例如,說明這些子元素是不是順序的,是不是可選的,是不是重復的,等等。
  元素聲明的,還可說明在文件中置標時,是否可以省略文件的開始標記和結束標記。
      (2 )屬性定義表聲明(attribute  definition  listdeclaration)
  元素具有屬性。例如,“插圖”這個元素一般具有“尺寸”和“位置”兩個屬性。由于元素可能具有一個以上的屬性,所以,SGML語言中采用屬性定義表來定義元素的各種屬性。
  屬性定義表由各屬性定義組成。屬性定義包括元素類型名、屬性名、屬性可取的值、缺省值等。例如,“插圖”這個元素的屬性定義表包括:元素類型名“插圖”,屬性名“尺寸、位置”,“尺寸”這個屬性名可取的值NUMBERS,以及缺省值等。其一般格式為:
  〈! ATTLIST元素類型名 屬性名 屬性值  缺省值〉
  ATTLIST是屬性定義表聲明中的關鍵字。
  (3)實體聲明(entity declaration)
  SGML語言除了在邏輯上把文件組織為元素結構之外,它還在物理上把文件組織為實體結構,并采用實體聲明把實體內容與實體名對應起來。
  實體聲明可以在聲明中直接寫出實體的內容,其格式為:
  〈! ENTITY實體名 實體正文〉
  實體聲明也可以不直接定出實體內容,而用實體標識符表示,其格式為:
  〈! ENTITY實體名SYSTEM實體標識符〉
  ENTITY是實體聲明中的關鍵字,另一個關鍵字SYSTEM說明此實體正文在系統中,實體標識符用來說明實體正文存在什么地方。
  實體聲明還可以用來定義不能直接鍵入的字符和某些常用的特殊字符,如數學符號、希臘字母、法語和德語中的特殊字符、漢語拼音中的特殊字符等。例如,
  〈! ENTITY uuml SDATA“[uuml]”=small u, dieresis orumlaut mark--〉這個實體聲明定義了德語和漢語拼音中所使用的特殊字符ü。
  (4)其它聲明
  SGML語言允許文件的某些部分使用其它比較流行的語言置標。例如,某段復雜的公式可以用Tex語言置標,而不是按照SGML定義置標。 文件中還允許夾用某些非SGML語言的字符。這些情況,采用“記法聲明”(notation declaration)來說明。此外,SGML語言中還有“引用聲明”(short declaration)、“注釋聲明”(comment declaration)等。
  上面我們說明了文件類型定義DTD中所用的置標聲明, 即元素聲明、屬性定義表聲明、實體聲明以及其它聲明。文件類型定義DTD 本身是放在文件類型聲明(document type declaration)中的。 文件類型聲明的格式為:
  〈! DOCTYPE文件類型名[DTD]〉
  DOCTYPE是文件類型聲明的關鍵字,在方括號內, 可以是文件類型定義DTD的內容,它們是由上述幾類置標聲明組成的若干語句, 它們也可以是DTD的標識符。如果某類文件的DTD 已經形成共識, 成為公共的DTD,就可以保存在外部實體中,使用時, 只要在文件類型聲明中直接引用該實體就行了。例如,
  〈! DOCTYPE Memo SYSTEM“MEMO.DTD”〉其中的SYSTEM說明文件類型Memo的DTD 在系統中, 存于外部實體MEMO.DTD中。這種DTD成為外部DTD,直接寫在方括號[]內的DTD是內部DTD。如果外部DTD不完全適用,允許在外部DTD之后,用方括號加入置標聲明,以修正或補充已有的DTD。
  3.文件實例(document instance)
  文件實例包含文件信息的正文和置標,它一般由SGML聲明中允許使用的字符組成,其中夾入的置標遵照這類文件的文件類型定義DTD 進行。常用的置標有:
  (1)標記(tag)
  標記用于元素的置標,這是描述性置標。我們使用標記在正文中標出元素的層次結構,它由開始標記(start-tag)和結束標記(end-tag)組成。 在開始標記中說明元素類型名(如“標題元素”)及其屬性(如標題的“位置”),結束標記中說明元素類型名,表示是哪一類元素的結束,因為元素可能有嵌套,在結束標記中指出元素的類別是非常必要的。在開始標記和結束標記之間,是元素的內容。如果省略元素的標記,在元素的置標聲明中應該說明。在文件中置標時,應遵照說明進行。標記應該用特殊的符號括起來,這種符號叫做定界符(delimiter),以便把標記同文件的正文和置標區分開來,定界符一般用尖括號〈〉表示。SGML語言的基準具體語法中推薦了各類定界符,如果要改變這些定界符,可以在SGML聲明中重新定義。
  例如,在術語交換格式中, 用SGML 語言的標記描述了如下的“文本內容”,請注意到其中使用了定界符〈〉,定界符中所括起來的內容就是元素的標記:
  <DOCTYPE tei.2…>
  <tei.2>
     <tei.header>
      …
     </tei.header>
     <text>
       <front>
        …
       </front>
       <boby>
          <termEntry>
           …
          </termEntry>
          <termEntry>
           …
          </termEntry>
           ……
      </boby>
    </text>
  </tei.2>
  這個文本的名字叫做<tei.2>,包括文本標題<tei.header >和文本<text>兩部分。文本的前文<front>主要是一些說明信息, 文本的正文<body>中包括若干術語條<termEntry>相應部分的結尾都標以符號“/”。例如,文本的結尾標以</tei.2>, 文本前文的結尾標以</front>,文本正文的結尾標以</body>,文本中的術語條目結尾標以</termEntry>,等等。采用這樣的標記,文本的結構層次便十分清楚地表示出來了。
  對元素的置標應該完全遵照文件類型定義DTD來進行。例如, 如果我們在DTD中說明了這樣一類文件:它必須有一個名字, 名字之后緊跟著一個標題,標題之后是文本,文本由前文和正文兩部分組成,那么,我們在置標時,就必須遵照DTD規定的結構來進行。 SGML語言的應用系統, 應該對編輯的文件作語法分析,對于不符合DTD所規定的結構,應提出警告。
  (2)實體引用(entity reference)
  在文件類型定義DTD中用實體聲明來定義實體,在文件中, 用“實體引用”來引用已定義的實體,將該實體內容嵌入引用處并替換實體引用置標。
  實體引用置標由引用打開符(一般為&)、實體名、引用關閉符(一般為:)構成。
  實體引用主要用于如下場合:
  A.用名字引用一個很長的或者難以直接鍵入的字符,例如,DTD 中有置標聲明:
  〈!ENTITY AAP“Association of American Publishers”〉
  在文件中如果要用到Association of American Publishers,就可以引用AAP實體來替換它。
  B.分開存放的文件,可以用實體引用把它們放在一起,把它們組織為一個實體。
  近年來,SGML語言被廣泛地應用于出版業中,用DTD來表示書籍、刊物、論文的結構,通過SGML語言置標的出版物,可以被多次地使用,并且便于檢索,便于存儲,便于通過電子的方式發送,大大地促進了電子出版事業的發展。
  國際互聯網Internet的出現,為全世界范圍內的電子信息發送提供了強有力的手段,Internet上有一種環球網WWW(World Wide Web )服務,WWW是基于超文本(hypertext)方式的信息查詢工具,它可以幫助用戶在全世界任何地方查詢到所要的信息。WWW 的文件格式采用統一的超文本置標語言(Hyper Text Markup Language,簡稱HTML 語言),HTML語言有一個固定的SGML聲明和一個DTD,這種語言實質上是SGML 語言的一個應用。在WWW上的文件信息,大部分采用HTML語言格式。 其版面信息豐富多彩,具有超文鏈接(hyperlink)的功能, 便于實現文件之間的鏈接,使用戶在計算機前能讀遍他感興趣的所有信息。HTML語言使用SGML語言定義它的語法,同時還定義了語義,說明各個元素及其屬性在實際應用中的含義。HTML語言定義了題頭(TITLE)、主體(BODY )、插圖(IMG)、各級標題(H1~H6)、段落(P)、列表(有序表OL、無序表UL、表項I)、定義表(題目DT、定義DD)等元素。HTML 語言中還有一個錨元素(anchor),這個錨元素可以在HTML文件之間,或者在HTML文件與其它數據資源之間,建立起超文鏈接,錨元素的屬性值可區分鏈接的起點和終點。當計算機的光標鏈接到起點時,HTML的瀏覽器(browser)便可把屏幕轉而顯示該鏈接的終點,這樣, 用戶便能夠快速地瀏覽他自己感興趣的內容。現在,國外的文本語料庫都采用了SGML標準,我國的語料庫建設如果不考慮SGML標準,就不能與世界接軌。
  國際計算語言學界還把SGML標準應用到術語數據庫的開發之中,其最重要的成果就是術語數據交換格式MARTIF的制定和應用。
  術語數據庫中術語數據的收集、存儲、管理的方式是多種多樣的,因此,機器可讀術語數據的交換就成為了一個十分迫切需要解決的問題,為此,國際標準化組織ISO/TC37/SC3提出了機器可讀術語數據交換格式(Machine-Readable Terminology Interchange Format , 簡稱MARTIF)的國際標準。
  MARTIF是SGML語言在術語數據庫中的一個應用,MARTIF使得在不同硬件和軟件格式中的術語可以互相交換,實現術語資源共享。
   在MARTIF 文件中使用的術語數據管理的基本單元是術語條目,MARTIF的文件是由術語條目構成的。由于術語數據庫是多種多樣的,為了進行術語數據的交換,把單個的術語條目結構映射到MARTIF的結構中去,是一種行得通的做法。因此,我們不以術語數據庫作為術語數據管理的基本單元,而以術語條目作為術語數據管理的基本單元。但是,在術語數據交換時,如果源術語數據庫的結構比目標術語數據庫豐富,交換時就會導致信息的丟失。為了避免信息丟失,有必要重新構造目標術語數據庫,或者對目標術語數據庫重新置標。
  術語條目中可包含若干數據類目(data category)。MARTIF 的目的是對任何結構的術語數據庫中的術語數據進行交換,因此,在術語條目中的數據類目應該具有一致性,這些數據類目之間的關系也必須在術語條目的范圍之內來進行編碼,這樣,它們才有可能被重新分配到目標術語數據庫中去。
  在MARTIF文件中,數據類目是用類標識符(Generic Identifiers,簡稱為GIs)和屬性來描述和置標的。
  類標識符也就是MARTIF中的標記(tag),主要有:
  (1)〈termEntry〉(術語條目)
  包括在一種語言中表達單一概念的、單獨而完整的術語條目以及和它相關的描述性數據,在雙語言或多語言術語的工作中,包含每種語言中的一個或多個術語及相關的描述性數據。
  (2)〈tig〉(terminological information group,術語信息組)
  在一個〈termEntry〉元素中, 包含著與一個單獨的術語相關的若干個信息元素,這些信息元素將在同一平面上發揮其功能,在〈tig 〉的下位元素中,不容許嵌入別的信息。
  (3)〈ntig〉(nested teminological information group, 巢狀術語信息組)
  在一個〈termEntry〉中,當某些信息元素同內部元素相關, 而不是同整個的tig相關的時候,使用巢狀術語信息組。
  為了便于在〈ntig〉中嵌入新信息,可以使用〈 termGrp 〉, 〈termNoteGrp〉,〈descripGrp〉和〈adminGrp〉等元素。
  (4)〈term〉(術語)
  包括單詞型術語、多詞型術語(詞組型術語)以及可以看作術語的符號。
  (5)〈termGrp〉(術語組)
  包括一個〈term〉以及至少一個附加到該術語上的巢狀元素。
  (6)〈termNote〉(術語說明)
  包括與術語相關的信息。
  (7)〈termNoteGrp〉(術語說明組)
  包括一個〈termNote〉以及至少一個附加到與術語相關的信息上的巢狀元素,可用來在〈termGrp〉之中嵌入新的信息。
  (8)〈descrip〉(描述性信息)
  包括諸如定義、上下文、描寫概念和術語的解釋等描述性信息。
  (9)〈descripGrp〉(描述性信息組)
  包括一個〈descrip 〉以及至少一個附加到描述性信息中的巢狀元素。
  (10)〈admin〉(行政性信息)
  包括行政數據。
  (11)〈adminGrp〉(行政信息組)
  包括一個〈admin 〉元素以及至少一個附加到行政信息中的巢狀元素。
  (12)〈note〉(說明)
  包括對〈termEntry〉、〈tig〉、〈ntig〉或者對〈…Grp 〉等元素的說明或意見。
  (13)〈ptr〉(pointer,指針)
  包括一個指針,它指向當前文件中的另一個位置,〈ptr 〉不能作為元素的內容與附加的文本相聯系。
  (14)〈ref〉(reference,參照)
  在當前文件中,把一個參照指定到另一個位置,〈ref 〉可以作為元素的內容與附加的文本相聯系。
  (15)〈xref〉(x-reference,x-參照)
  對圖形、圖式、表格、其它外部文件指派一個參照。
  (16)〈hi〉(highlighting,高亮度顯示)
  用高亮度顯示的方法來標識一個詞或一個短語,以便突出它在周圍文本中的地位。
  (17)〈biblist〉(bibliographical list,文獻表)
  在文件的后面或者在另一個外部文件中,包含一個或多個由〈bibl〉引入的參考文獻條目所構成的表。
  (18)〈bibl〉(文獻)
  包括一個由參考文獻信息構成的條目,它一般置于文件的后面,或者置于外部的文件中。
  (19)〈item〉(項目)
  包括文獻信息的一個實例。
  (20)〈itemGrp〉(項目組)
  包括一個或多個〈term〉。
  (21)〈foreign〉(外語)
  說明一個單詞或一個詞組屬于某種外語。
  MARTIF中使用的屬性主要有:
  (1)id(identifier,等同)
  用于表示與某一個元素等同。
  (2)lang(language,語言)
  用于指出元素內容的語言。使用ISO 639中的代碼。
  〈tig〉、〈ntig〉等標記要使用lang這個屬性。
  (3)type(類別)
  用于把一個類標識符GI同一個屬性值聯系起來,以便在數據類目中形成完整的標記名。
  MARTIF中標記名的完整形式如下:
  (1)開始標記
  〈descrip type='definition'〉
  其中,“〈”是開定界符,“descrip”是類標識符,“type ”是屬性,“=”是值標識符,“‘definition’”是type的屬性值,“〉”是閉定界符。
  (2)結束標記
  〈/ descrip〉
  其中,“〈”是開定界符,“/”是表示結束的符號, “descrip”是類標識符,“〉”是閉定界符。
  例如,opacity (阻光度)這個英語術語條目可用標記和屬性描述如下:
  附圖H19c02.JPG
  其中,〈termEntry id =‘ID00073578’ 〉表示術語條目的號碼為‘ID00073578’。描述性信息〈descrip type=‘subjectField ’〉帶有屬性type,這個type的屬性值為‘subjecField’(專業領域), 該專業領域為 appearance  of materials(材料的外觀),〈/descrip 〉是描述性信息的結束標記。關于專業領域的描述性信息涉及到整個的術語條目,置于〈termEntry〉之后,其它的〈tig〉或〈ntig〉之前。
  在這個術語條目中,因為需要描述若干個信息,因此,使用巢狀元素〈ntig〉,〈ntig lang=en〉表示用英語寫的巢狀術語信息組。 這個〈ntig lang=en〉包括三個組元素:〈termGrp〉,〈descripGrp〉和〈adminGrp〉。它們構成了巢狀術語信息組〈ntig〉下面的第一個層次。第一個組元素〈termGrp〉(術語組)又包括兩個元素:〈term 〉(術語)和〈termNote〉(術語說明),它們構成了巢狀術語信息組的第二個層次。這兩個元素都帶有屬性,〈term type=‘preferredTerm’〉表示〈term〉的type屬性的屬性值為‘preferredTerm ’(優先術語),這個優先術語就是opacity(阻光度),〈/term〉是〈term 〉的結束標記;〈termNote type =‘partOfSpeech ’〉表示術語說明〈termNote〉的type屬性的屬性值為‘partOfSpeech ’(詞類), 術語opacity的詞類為名詞n,〈/termNote〉是〈termNote〉的結束標記,〈/termGrp〉是第一個組元素〈termGrp〉的結束標記。第二個組元素〈descripGrp〉(描述性信息組)也包括兩個元素〈descrip 〉(描述性信息)和〈prt〉(指針), 它們也構成巢狀術語信息組的第二個層次,這兩個元素都帶有屬性,〈descrip type=‘definition ’ 〉表示〈descrip〉的type屬性的屬性值為‘definition’(定義), 這個定義就是degree of obstruction to the transmission of visiblelight(可見光傳播的阻礙程度),〈/descrip〉是〈descrip 〉的結束標記;〈prt type=‘sourceIdentifier’target=‘ASTM.E284 ’〉表示指針的type 屬性的屬性值為‘sourceIdentifier’, 說明該指針指向‘sourceIdentifier’(源標識符),其目標文件是‘ ASTM.E284’(美國材料實驗學會.E284),指針不作為元素內容, 故無結束標記;〈/descripGrp〉是第二個組元素〈descripGrp〉的結束標記。第三個組元素是〈adminGrp〉(行政信息組),這個組元素只有一個元素〈admin〉(行政信息),它也是巢狀術語信息組的第二個層次,〈admin〉也帶有屬性,〈admin type=‘responsibility’〉表示type屬性的屬性值為‘responsibility’(責任者),這個責任者是E12 (責任者的代號),〈/ admin〉是 〈 admin〉的結束標記, 〈/adminGrp〉是〈adminGrp〉的結束標記,〈/ntig〉是巢狀術語信息組〈ntig〉的結束標記,〈/termEntry〉是術語條目的結束標記, 整個的術語條目描述完畢。
  MARTIF規定了術語條目〈termEntry〉應該遵循的如下規則:
  (1)每一個單獨的概念設立一個〈termEntry〉, 一個〈termEntry〉表示一個單獨的概念。
  (2)每個術語、同義詞、術語變體等都有它們各自的〈tig〉或〈ntig〉,必要時,可以允許交叉參照。
  (3)要使用標準化的數據類目。
  (4)如果某個元素涉及到整個的〈termEntry〉而不僅僅涉及到一個〈tig〉或一個〈ntig〉,那么, 就要把這個元素置于標記〈termEntry〉之后,第一個〈tig〉或〈ntig〉的標記之前。
  (5)如果一個〈note 〉或〈termNote〉涉及到個別的元素(例如〈term〉這樣的元素),而不涉及到整個的術語信息組,就使用〈ntig〉元素,再帶上適當的組元素(如〈termGrp〉,〈descripGrp 〉或〈adminGrp〉),并把這個〈note〉或〈termNote〉嵌入到組元素中。哪怕是只有一個元素要用〈ntig〉,也必須使用巢狀元素。不要求嵌入信息的簡單的術語信息組就使用〈tig〉元素;在同一個〈termEntry〉中,可以同時使用〈tig〉和〈ntig〉。
  (6)如果為了說明某個數據類目而須引入標記〈termNote〉, 那么,就要在元素〈termGrp〉中,引入〈termNoteGrp〉以及〈termNote〉和相應的〈note〉。
  (7)如果嵌入到一個組元素〈…Grp〉中的某一元素必須與另外的元素相參照,但是這個元素并不涉及到所有的組元素,那么,就使用標記〈ref〉,把要參照的信息包括到元素〈ref〉的內容中。
  (8)每一個〈tig〉或〈ntig〉都應該具有屬性lang(語言)。屬性可用于任何元素之中,也可以用于一切的子元素中,除非該子元素也有自己的屬性lang,或者屬性lang已經包含在其它的元素之中。
  (9)日期的寫法應該遵照ISO 8610的規定, 按“年—月—日”的順序書寫,例如,1995年10月30日應寫為1995—10—30。
  MARTIF還規定了自己的文件類型定義DTD,包括文件類型聲明、 元素聲明、屬性定義表聲明、實體聲明等,這里就不再細說了。
  MARTIF的DTD規定了MARTIF文件的基本結構。
  一個完整的MARTIF文件包括序言(prologue)和緊跟在序言后面的MARTIF文件實例(document instance)兩部分。MARTIF 文件實例又包括martif文件頭(〈martifHeader〉)和正文(text)兩部分。正文又包括正文前部(front)、正文主體(body)和正文后部(back )三部分,其中,正文前部和正文后部是隨選的,正文主體就是一系列的術語條目,可表示如下圖:
  附圖H19c03.JPG
  MARTIF文件實例的結構可以用DTD的格式描述如下:
  附圖H19c04.JPG
  在對一個MARTIF文件進行轉換之前,首先必須用SGML語言的分析程序對其進行結構分析,確保MARTIF文件完全符合SGML 語言的規定。 用MARTIF置標后的機器可讀術語數據,由于遵從了統一的術語交換格式,可以方便地進行術語數據的交換,推動了術語數據在全世界范圍內的傳播。
當代語言學(國外語言學)京1~11H1語言文字學馮志偉19991999本文根據國際標準ISO 8879—1986和我國國家標準GB 14814,介紹標準通用置標語言的原則和方法,敘述了從通用置標語言GML 到標準通用置標語言SGML的發展過程,詳細說明了標準通用置標語言的三個組成部分(SGML聲明、文件類型定義、文件實例)的具體內容。在標準通用置標語言的基礎上,又進一步根據國際標準ISO DIS 12200, 介紹了機器可讀術語數據交換格式(MARTIF)的數據類目和文件的基本結構,以術語工作為例子說明了SGML在自然語言計算機處理中的應用價值。標準通用置標語言/SGML聲明/文件類型定義/文件實例/標記/實體引用/術語數據交換格式/數據類目馮志偉,國家語言文字工作委員會  100010 北京朝內南小街51號 國家語言文字工作委員會 作者:當代語言學(國外語言學)京1~11H1語言文字學馮志偉19991999本文根據國際標準ISO 8879—1986和我國國家標準GB 14814,介紹標準通用置標語言的原則和方法,敘述了從通用置標語言GML 到標準通用置標語言SGML的發展過程,詳細說明了標準通用置標語言的三個組成部分(SGML聲明、文件類型定義、文件實例)的具體內容。在標準通用置標語言的基礎上,又進一步根據國際標準ISO DIS 12200, 介紹了機器可讀術語數據交換格式(MARTIF)的數據類目和文件的基本結構,以術語工作為例子說明了SGML在自然語言計算機處理中的應用價值。標準通用置標語言/SGML聲明/文件類型定義/文件實例/標記/實體引用/術語數據交換格式/數據類目

網載 2013-09-10 21:20:16

[新一篇] 柳宗元詩歌的“強國利民”人文思想

[舊一篇] 梁啟超、魯濱遜“新史學”思想比較研究
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表