国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

DITA-OT中音樂元素域的擴(kuò)展方法研究

2013-09-08 10:17:08施運(yùn)梅劉旭紅
關(guān)鍵詞:專門化樂譜文檔

劉 鵬,施運(yùn)梅+ ,李 寧,劉旭紅

(1.網(wǎng)絡(luò)文化與數(shù)字傳播北京市重點(diǎn)實(shí)驗(yàn)室,北京100101;2.北京信息科技大學(xué) 計(jì)算機(jī)學(xué)院,北京100101)

0 引 言

達(dá)爾文信息類型架構(gòu) (darwin information typing architecture,DITA)是一套基于XML的面向主題的數(shù)字內(nèi)容結(jié)構(gòu)化寫作與發(fā)布方案[1]。設(shè)計(jì)DITA的初衷是為了滿足技術(shù)文檔寫作和發(fā)布的需求,實(shí)現(xiàn) “一次制作,多元發(fā)布”的應(yīng)用要求。DITA-OT (DITA open toolkit)是支持DITA的開源工具,它較好地實(shí)現(xiàn)了DITA這一架構(gòu)。DITA和DITA-OT“一次制作,多元發(fā)布”的特點(diǎn)決定了它們可用于復(fù)合出版。但復(fù)合出版需要對(duì)多媒體信息進(jìn)行發(fā)布,而DITA對(duì)多媒體內(nèi)容的支持力度較小,當(dāng)前僅支持圖形、圖片等,而像音樂這樣的媒體信息無法用DITA表達(dá),這限制了DITA的應(yīng)用。目前,國(guó)外對(duì)DITA的研究和應(yīng)用主要集中在文檔制作方面[2,3],國(guó)內(nèi)的研究主要是通過對(duì)DITA進(jìn)行深入分析,再將其應(yīng)用到語義信息的組織和技術(shù)文檔的編寫上[4-6]。這些研究尚未涉及DITA對(duì)音樂的支持。

DITA提供了專門化的方法擴(kuò)展其應(yīng)用范圍,這為擴(kuò)展DITA的音樂表現(xiàn)能力提供了可能性。本文探索了一種在DITA-OT中擴(kuò)展音樂媒體的方法,主要思想是通過專門化將表現(xiàn)音樂的置標(biāo)語言音樂擴(kuò)展置標(biāo)語言 (music eXtensible markup language,MusicXML)擴(kuò)展到 DITA-OT中,并在DITA-OT中建立相應(yīng)的轉(zhuǎn)換文件,以支持對(duì) MusicXML的轉(zhuǎn)換。

1 DITA和DITA-OT

1.1 DITA

DITA是IBM公司為結(jié)構(gòu)信息標(biāo)準(zhǔn)化促進(jìn)組織 (organization for the advancement of structure information standards,OASIS)貢獻(xiàn)的發(fā)明,其核心思想是模塊化和可重用。DITA以主題作為文檔內(nèi)容劃分的基本單元,主題是獨(dú)立的信息單元[7]。DITA通過主題圖 (ditamap)將主題按需求組合起來,形成滿足用戶需要的文檔。DITA文檔的組織形式如圖1所示,在每個(gè)主題圖文檔中可根據(jù)用戶需求將不同的主題重組到一起。

圖1 DITA文檔的組織形式

DITA中只定義了一種一般化的主題類型:topic,并通過基于topic的專門化,擴(kuò)展出了3種基本的主題類型:概念 (concept)、任務(wù) (task)和參考 (reference)[8]。DITA允許用戶根據(jù)自己的需要在這四種主題之上進(jìn)行專門化,從而實(shí)現(xiàn)對(duì)DITA的擴(kuò)展,使DITA能符合更廣泛的用戶需求,例如復(fù)合出版領(lǐng)域的需求。DITA專門化的層次結(jié)構(gòu)如圖2所示。

圖2 DITA專門化的層次結(jié)構(gòu)

在DITA中,可以對(duì)某一主題類型中所包含的屬性、元素以及該主題類型自身進(jìn)行專門化,也可以對(duì)DITA中現(xiàn)有的主題圖進(jìn)行專門化。在專門化的過程中,每一個(gè)新擴(kuò)展出來的屬性、元素、主題或主題圖都必須 “繼承于”DITA中同類的基礎(chǔ)結(jié)構(gòu),并且受這些基礎(chǔ)結(jié)構(gòu)的語法、語義的限制,不能超越這種限制,這便產(chǎn)生了專門化的層次結(jié)構(gòu)。

DITA提供的只是一種體系結(jié)構(gòu),是一種理論規(guī)范,要將其應(yīng)用到具體實(shí)踐中,還需要相應(yīng)工具的支持,DITA-OT較好地實(shí)現(xiàn)了DITA的理論框架,為DITA在實(shí)踐中的應(yīng)用提供了可能。

1.2 DITA-OT

DITA-OT是參考DITA標(biāo)準(zhǔn)實(shí)現(xiàn)的一套工具。這個(gè)工具用于把DITA內(nèi)容轉(zhuǎn)換為可發(fā)行格式的文檔,如XHTML、Eclipse Help、HTML Help、JAVAHelp 和 PDF等[9]。DITA-OT的處理流程如圖3所示。

圖3 DITA-OT的處理流程

DITA-OT的處理流程主要分3步:

(1)參數(shù)初始化 初始化DITA-OT的環(huán)境變量。該步驟由批處理文件Batch script完成。

(2)驗(yàn)證源文件和創(chuàng)建臨時(shí)文件 對(duì)源文件 (ditamap或dita)轉(zhuǎn)換之前,需要根據(jù) DTD (document type definition)或Schema驗(yàn)證源文件的有效性,即驗(yàn)證源文件是否符合DITA標(biāo)準(zhǔn);通過驗(yàn)證之后,源文件將被DITA-OT中的相關(guān)程序分析處理,產(chǎn)生一系列的中間文件。

(3)創(chuàng)建目標(biāo)輸出文件 Ant(another neat tool)build tool根據(jù)DITA-OT自帶腳本或用戶自定義腳本,調(diào)用XSLT (eXtensible Stylesheet Language Transformations)processor,XSLT processor根據(jù)XSLT stylesheet(樣式表)中的內(nèi)容,對(duì)中間文件進(jìn)行轉(zhuǎn)換,得到最終的輸出結(jié)果。

XSLT樣式表用于將DITA文檔轉(zhuǎn)換為其它格式的文檔,如XHTML、PDF等。DITA-OT自帶一些XSLT樣式表,但是這些樣式表不足以滿足用戶需求。在專門化的時(shí)候,要在DITA-OT中加入用戶自己編寫的XSLT樣式表。大多數(shù)情況下用戶編寫自己的XSLT樣式表就能實(shí)現(xiàn)轉(zhuǎn)換,但是也有樣式表無法完成的轉(zhuǎn)換,此時(shí)需要編寫JAVA程序完成轉(zhuǎn)換任務(wù)。

DITA-OT提供了四種專門化方式[10]:屬性專門化、元素域?qū)iT化、主題專門化和主題圖專門化。其中,元素域?qū)iT化是向DITA-OT中添加新的元素。

在元素域?qū)iT化時(shí)需要建立擴(kuò)展名分別為mod、ent和dtd的3個(gè)文件。其中,mod和ent文件構(gòu)成了對(duì)新的元素域的描述,dtd是一個(gè)外殼文件,它將mod和ent文件包含進(jìn)來,并聲明包含新的元素域的主題類型。具體地說,mod文件聲明了新的元素域內(nèi)包含的所有元素信息,例如新元素的名字、屬性等信息;ent文件主要包含用于描述元素域的一些實(shí)體的聲明,使用這些實(shí)體來表示關(guān)于該元素域的一些描述,并通過對(duì)這些實(shí)體的引用來將該元素域集成到某一具體的主題類型中。

DITA-OT本身不提供對(duì)音樂的支持,如果需要增加此項(xiàng)功能,必須通過專門化的手段。元素域?qū)iT化可以將表現(xiàn)音樂的MusicXML元素添加到DITA-OT中。

2 音樂擴(kuò)展置標(biāo)語言MusicXML

音樂擴(kuò)展置標(biāo)語言 MusicXML是由Recordare公司開發(fā)的一種置標(biāo)語言[11]。MusicXML的最大優(yōu)點(diǎn)是它基于XML技術(shù),非常便于在網(wǎng)絡(luò)交換,閱讀方便,結(jié)構(gòu)清晰。MusicXML技術(shù)在出現(xiàn)后,發(fā)展非常迅速。目前,MusicXML已經(jīng)被超過100多種音樂應(yīng)用程序所支持,如美國(guó)MakeMusic公司的Finale系列,Recordare公司的Dolet 4 for Finale等。

MusicXML對(duì)于音樂信息的記錄非常全面規(guī)范,包括屬性結(jié)點(diǎn)在內(nèi),共有超過600個(gè)結(jié)點(diǎn),這些結(jié)點(diǎn)可以分為四個(gè)大類:都柏林核心集類的結(jié)點(diǎn)、關(guān)于布局的元素、整體的頭部數(shù)據(jù)和具體的音樂數(shù)據(jù)。最后一大類的信息量最大、最具體,直接和樂理相關(guān)。下面是用MusicXML所寫的 《新年好》樂譜的主要部分:

上述xml文件中以<score-partwise>作為根元素,表明該文檔是以聲部為依據(jù)來記錄樂譜信息的,<creditwords>元素指定了樂譜的名字為 “新年好”,<part>元素表示聲部,本樂譜中只有一個(gè)聲部,故只有一個(gè)<part>元素,<part-name>元素指定了該聲部的名字為 “Piano”,<instrument-name>元素指定了該聲部使用鋼琴 (Piano)來演奏,<measure>元素表示小節(jié),其中包括了該小節(jié)內(nèi)所有音符的音名、音高等信息,上述文檔中省略了這些信息,<part>元素將所有的小節(jié)組合起來,形成最終的樂譜。上述xml文件所表示 《新年好》樂曲的五線譜如圖4所示。

圖4 MusicXML所表示的樂譜

3 在DITA-OT中擴(kuò)展音樂元素域的方法

DITA-OT中提供了元素域的專門化方法,用于向DITA-OT中添加新的元素。MusicXML是表現(xiàn)音樂的、基于XML的置標(biāo)語言,可以用DITA-OT所支持的元素域?qū)iT化的方法,將 MusicXML的元素添加到DITA-OT中,實(shí)現(xiàn)在DITA-OT中擴(kuò)展音樂元素域的目標(biāo)。

對(duì)于元素域?qū)iT化來說,首先需要確定待擴(kuò)展的基礎(chǔ)元素。topic是DITA中的一般主題,是所有其它主題的基礎(chǔ),topic中的基礎(chǔ)元素<foreign>可用于擴(kuò)展多媒體信息[12],因此可以通過對(duì)元素<foreign>的專門化,來實(shí)現(xiàn)將MusicXML的元素添加到DITA-OT中這一目標(biāo)。

為實(shí)現(xiàn)DITA-OT對(duì)新元素的支持,需要定義三個(gè)擴(kuò)展文件:mod、ent和dtd,并通過Ant工具完成 MusicXML的元素域與DITA-OT的結(jié)合。除此之外,還應(yīng)該為專門化定義到不同格式文件的轉(zhuǎn)換過程,以達(dá)到 “一次制作,多元發(fā)布”的要求。具體的擴(kuò)展方法如圖5所示。

圖5 DITA-OT中擴(kuò)展音樂元素域的方法

DITA-OT中擴(kuò)展MusicXML元素域的方法主要分為兩部分:對(duì)MusicXML元素域的專門化;對(duì)專門化的轉(zhuǎn)換支持。圖5中,虛線框中描述的是元素域的專門化。新的元素域?qū)Γ糵oreign>的繼承關(guān)系在實(shí)體文件.ent中定義,mod文件聲明了MusicXML中所包含的元素和屬性,dtd是將ent和mod文件包裹起來的一個(gè)外殼,是DITA-OT尋找新的元素域的入口文件。通過Ant工具,將mod、ent和dtd 3個(gè)文件整合到DITA-OT中。

DITA-OT中的Ant工具將XSLT文件/JAVA類文件與XSLT處理模塊/JAR包處理模塊結(jié)合,并通過這兩個(gè)模塊將DITA文檔轉(zhuǎn)換為XHTML、PDF、MIDI等不同格式的文件,實(shí)現(xiàn) “一次制作,多元發(fā)布”。也就是說,為支持對(duì)新元素到不同格式的轉(zhuǎn)換,需要使用不同的轉(zhuǎn)換文件。對(duì)于易于實(shí)現(xiàn)的格式轉(zhuǎn)換,可以通過XSLT實(shí)現(xiàn),對(duì)于復(fù)雜格式的轉(zhuǎn)換,可以借助JAVA程序?qū)崿F(xiàn)。

4 擴(kuò)展方法的實(shí)現(xiàn)

4.1 MusicXML元素域?qū)iT化的實(shí)現(xiàn)

根據(jù)對(duì)音樂元素域的擴(kuò)展方法,首先要編寫相應(yīng)的mod、ent和dtd文件。這3個(gè)文件既可以采用DTD語法,也可以用Schema語法,本文采用的是DTD語法。3個(gè)文件的主要內(nèi)容如下:

(1)musicxmlDomain.mod:

在該文件中主要指定了MusicXML所有元素都是<musicxml>元素的子節(jié)點(diǎn),partwise.dtd文件是描述 MusicXML的DTD文件,在此處使用了MusicXML的partwise.dtd文件,指定與DITA結(jié)合的是 MusicXML中以聲部為依據(jù)來記錄樂譜的那部分元素。該文件中的最后一句以<musicxml>元素屬性的形式指明了<musicxml>元素是由topic主題類型的<foreign>元素?cái)U(kuò)展來的。

(2)musicxmlDomain.ent:

在該ent文件中聲明了參數(shù)實(shí)體musicxml-d-foreign和一般實(shí)體musicxml-d-att,前者用于指明新的元素域的根節(jié)點(diǎn)<musicxml>是<foreign>元素所表示的概念的子集,后者指明了將新的元素域集成到topic主題類型中,新的元素域的名稱是musicxml-d。

(3)topic.dtd:

該文件將新定義的表示MusicXML的元素域與topic主題類型相結(jié)合,其中 “<!ENTITY included-domains "&musicxml-d-att;">”一句表明該topic主題類型中包含了表示MusicXML的元素域。

隨時(shí)抹掉核桃砧木上萌發(fā)的全部芽眼,以集中養(yǎng)分供給接芽萌發(fā)和新梢生長(zhǎng)。當(dāng)新梢長(zhǎng)到30 cm以上時(shí),及時(shí)摘心,促發(fā)二次枝,適時(shí)解除接口包扎物。

DITA-OT通過Ant工具將編寫的mod、ent和dtd文件與其原有的DTD文件合并到一起,以供以后對(duì)DITA文檔的有效性進(jìn)行驗(yàn)證。

4.2 多元發(fā)布的實(shí)現(xiàn)

按照擴(kuò)展方法的定義,為了滿足復(fù)合出版對(duì)多元發(fā)布的需求,可以將包含MusicXML元素的DITA文檔以不同的文件格式發(fā)布,如XHTML、MIDI、PDF、HTML Help等。本文選擇XHTML作為一種目標(biāo)格式,用來說明將包含MusicXML元素的DITA文檔轉(zhuǎn)換為一般文本文件的過程;選擇MIDI作為另一種目標(biāo)格式,用來說明將包含MusicXML元素的DITA文檔轉(zhuǎn)換為多媒體文件的過程。

(1)到XHTML的轉(zhuǎn)換

一般情況下,瀏覽器對(duì)XHTML中包含的MusicXML元素不進(jìn)行解釋,因此,需要將DITA

文檔中的MusicXML元素轉(zhuǎn)換為瀏覽器能夠解釋的表示方式。SVG (Scalable Vector Graphics,可伸縮矢量圖形)[13]是一種基于XML的圖形置標(biāo)語言,得到各種瀏覽器的支持。SVG與MusicXML都是基于XML,比較容易使用XSLT實(shí)現(xiàn)從MusicXML到SVG的轉(zhuǎn)換。

在編寫XSLT文件的過程中,主要是根據(jù)MusicXML元素所表示的樂譜的內(nèi)容進(jìn)行分類,對(duì)代表不同內(nèi)容的元素分別編寫用于轉(zhuǎn)換的XSLT模板,在模板中設(shè)計(jì)與該元素對(duì)應(yīng)的SVG元素來表示可視化的樂譜內(nèi)容。實(shí)際上在SVG中,大部分是用表示基本圖形的元素 (如表示直線的元素<line>、表示橢圓的元素<ellipse>等)來 “繪制”樂譜的,表1對(duì)其中一些關(guān)鍵的轉(zhuǎn)換進(jìn)行了解釋。

(2)到MIDI的轉(zhuǎn)換

DITA文檔到MIDI文件的轉(zhuǎn)換過程中,主要是提取DITA文檔中的MusicXML元素,并將其轉(zhuǎn)換為MIDI格式,這個(gè)轉(zhuǎn)換采用的是JAVA 程序。JDK1.3及其更高版本中提供對(duì) MIDI文件操作的JAR 包javax.sound.midi.jar[14],調(diào)用該JAR包中相關(guān)的類來完成轉(zhuǎn)換。整個(gè)轉(zhuǎn)換過程主要由兩個(gè)JAVA 類完成,這兩個(gè)類的調(diào)用順序、類名、類的作用、主要函數(shù)及其作用如表2所示。

表1 XSLT文件中關(guān)鍵部分的說明

表2 JAVA程序關(guān)鍵部分的說明

4.3 功能測(cè)試

對(duì)上文中給出的 《新年好》樂譜進(jìn)行測(cè)試。

將表示該樂譜的MusicXML的內(nèi)容添加到DITA文檔中,文檔的主要結(jié)構(gòu)如下。編碼中標(biāo)記 (1)

處省略的內(nèi)容是上文中提到的 《新年好》樂譜的MusicXML的內(nèi)容。

在DITA-OT中將上述DITA文檔轉(zhuǎn)換為XHTML文件,轉(zhuǎn)換結(jié)果如圖6所示。將該結(jié)果和圖4中的樂譜進(jìn)行比較,展現(xiàn)效果一致。

在DITA-OT中將上述DITA文檔轉(zhuǎn)換為MIDI文件,在樂譜編輯軟件MuseScore中打開轉(zhuǎn)換成功的MIDI文件,效果如圖7所示。將轉(zhuǎn)換結(jié)果和圖4中的樂譜作比較,樂譜保持一致。使用支持MIDI的播放器播放該MIDI文件,能夠聽到鋼琴演奏的 《新年好》樂曲,并且音質(zhì)良好。

圖6 轉(zhuǎn)換生成的XHTML文件

圖7 轉(zhuǎn)換生成的MIDI文件在MuseScore中的顯示效果

5 結(jié)束語

本文研究了一種在DITA-OT中擴(kuò)展音樂內(nèi)容的方法,彌補(bǔ)了DITA-OT對(duì)于音樂信息支持能力的不足,并為在DITA-OT中擴(kuò)展其它媒體類型提供了一些借鑒之處。但是這個(gè)工作剛剛起步,要達(dá)到實(shí)用性的效果,還有許多內(nèi)容需要研究,例如完善DITA-OT對(duì)于音樂信息的支持能力、研究轉(zhuǎn)換后的文件和用戶的交互方法、以及轉(zhuǎn)換后的文件對(duì)各種平臺(tái)的自適應(yīng)性等。

除音樂這種媒體形式外,DITA-OT對(duì)于各種媒體的支持能力還有待增強(qiáng),例如對(duì)音頻、視頻的支持能力。還應(yīng)該開展DITA-OT對(duì)各種音頻、視頻信息的擴(kuò)展方法的研究,使其能夠全面地支持多媒體信息的發(fā)布,能夠更好地滿足復(fù)合出版對(duì) “一次制作,多元發(fā)布”以及豐富的多媒體信息的要求。

[1]YANG Gongliang,LI Xiaolei.Evolved structured information system architecting-DITA-based architecture and writing best practice [J].Digital Library Forum,2012 (4):10-16 (in Chinese).[楊公亮,栗曉磊.“進(jìn)化型”結(jié)構(gòu)化信息體系的構(gòu)建--基于DITA結(jié)構(gòu)化信息體系的架構(gòu)及實(shí)施技術(shù)路線 [J].數(shù)字圖書館論壇,2012 (4):10-16.]

[2]Aidan Kehoe & Ian Pitt.Transforming.DITA topics for speech synthesis output [C]//New York,America,2007:147-148.

[3]Oscar Díaz & Felipe I Anfurrutia &Jon Kortabitarte.Using DITA for documenting software product lines [C].New York,America,2009:231-240.

[4]FAN Wei.A study on darwin information typing architecture[J].Journal of Intelligence,2009,28 (11):172-175 (in Chinese).[范煒.達(dá)爾文信息類型架構(gòu)DITA研究 [J].情報(bào)雜志,2009,28 (11):172-175.]

[5]ZHU Ying.A study on the DITA-based writing of technical documents[D].Beijing:Peking University,2010 (in Chinese).[祝穎.基于DITA的技術(shù)文檔寫作研究 [D].北京:北京大學(xué),2010.]

[6]LI Junyu.Design and implementation of DITA-based NGN core network documentation development[D].Shanghai:Shanghai Jiaotong University,2011 (in Chinese).[李俊瑀.基于DITA的NGN核心網(wǎng)文檔開發(fā)的設(shè)計(jì)和實(shí)現(xiàn) [D].上海:上海交通大學(xué),2011.]

[7]FAN Kai.Design and implementation of compound document architecture [D].Beijing:Beijing Information Science &Technology University,2010 (in Chinese).[樊凱.復(fù)合文檔架構(gòu)的研究與實(shí)現(xiàn) [D].北京:北京信息科技大學(xué),2010.]

[8]Eliot Kimber.DITA for practitioners:Vol.1architecture and technology [M].First Edition.California,America:XML Press,2012.

[9]DITA open tookit1.5.4 [EB/OL]. [2012-11-25].http://dita-ot.sourceforge.net/1.5.4/.

[10]DITA configuration and specialization tutorial [EB/OL].[2012-11-25].http://xiruss.org/tutorials/ dita-specialization/dita-specialization-tutorial.pdf.

[11]MusicXML[EB/OL].[2012-11-25].http://zh.wikipedia.org/wiki/MusicXML.

[12]Darwin information typing architecture (DITA)version 1.2[S].2010.

[13]Scalable Vector Graphics (SVG)1.1 [S].2nd ed.2011.

[14]JavaTMPlatform,Standard edition 6API specification [EB/OL].[2012-11-25].http://docs.oracle.com/javase/6/docs/api/.

猜你喜歡
專門化樂譜文檔
山之高
是你一直想著我
有人一聲不吭向你扔了個(gè)文檔
樂譜:放飛夢(mèng)想
北方音樂(2019年20期)2019-12-04 04:07:14
家事司法專門化的路徑與選擇
一毛學(xué)琴記——樂譜失蹤
琴童(2018年11期)2018-01-23 11:34:08
“印度戲劇輸入說”的生發(fā)與南戲研究的專門化
戲曲研究(2017年4期)2017-05-31 07:39:40
基于RI碼計(jì)算的Word復(fù)制文檔鑒別
環(huán)境資源審判專門化的基本路徑
人民周刊(2016年14期)2016-08-02 09:19:30
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
横峰县| 云林县| 伊金霍洛旗| 辉县市| 垣曲县| 来凤县| 台安县| 浦北县| 绥阳县| 鄂伦春自治旗| 吴旗县| 河间市| 清丰县| 信阳市| 宁都县| 应城市| 远安县| 定陶县| 湘潭市| 桓台县| 牡丹江市| 沾化县| 通城县| 偏关县| 建水县| 涪陵区| 和平县| 金门县| 博客| 肥城市| 腾冲县| 铜山县| 江陵县| 普兰县| 扎赉特旗| 大荔县| 肥乡县| 融水| 兴海县| 南川市| 扬中市|