胡曉靜,劉士喜,馬 駿
(滁州學院計算機與信算工程學院,安徽滁州 239000)
PNML到SVG矢量圖轉(zhuǎn)換的研究與實現(xiàn)
胡曉靜,劉士喜,馬 駿
(滁州學院計算機與信算工程學院,安徽滁州 239000)
針對Petri網(wǎng)的圖形化表現(xiàn)形式,討論了運用XSLT樣式表把基于PNML文件的Petri網(wǎng)圖形轉(zhuǎn)換為SVG矢量圖的方法,給出從Petri網(wǎng)圖形到SVG矢量圖轉(zhuǎn)換的實現(xiàn)細節(jié)。結(jié)合應用實例借助PNK(Petri Net Kernel)工具建立模型并進行仿真,驗證了方法的有效性。
Petri網(wǎng);PNML文件;SVG矢量圖;XSLT樣式表
Petri網(wǎng)是描述分布式系統(tǒng)的建模與分析工具,已被廣泛應用于各個領域。Petri網(wǎng)軟件工具非常豐富,使用的文件格式也不統(tǒng)一,這種現(xiàn)象致使對同一個系統(tǒng)建模的結(jié)果也不同。2000年在Petri網(wǎng)理論和應用國際會議上提出制定基于XML語言的文件交換標準,PNML(Petri Net Markup Language,Petri網(wǎng)標記語言)是其中的一個解決方案[1]。
PNML是基于XML的Petri網(wǎng)文件交換格式,提供一種在不同Petri網(wǎng)工具間交換信息的途徑,實現(xiàn)了Petri網(wǎng)工具的互操作性。作為建模工具Petri網(wǎng)直觀的圖形化表示使其易于理解,然而如何實現(xiàn)Petri網(wǎng)模型在網(wǎng)絡中進行有效傳輸顯得尤為必要。SVG是基于XML的文本式可伸縮矢量圖形語言描述規(guī)范,具有很強的可擴展性,并能夠描述任意復雜的圖像。由于PNML和SVG都是基于XML的標準,因此可利用XLST(Extensible Stylesheet Language Transformations)互相轉(zhuǎn)化。本文在參考文獻[2]和文獻[3]的研究基礎上給出利用XSLT樣式表將PNML文件轉(zhuǎn)換為SVG矢量圖的實現(xiàn)細節(jié)。
1.1 PNML概念及結(jié)構(gòu)[2]
PNML的體系結(jié)構(gòu)包括元模型、類型和特征定義、協(xié)議文檔和Petri網(wǎng)文件等部分。PNML把Petri網(wǎng)看成一個貼了標簽的有向圖,所有的數(shù)據(jù)能被儲存到網(wǎng)、網(wǎng)的節(jié)點和弧的標簽中。圖1給出了PNML各個組成部分及其相互關系。
元模型定義了PNML文件的基本結(jié)構(gòu),類型定義接口允許定義符合元模型的新Petri網(wǎng)類型,特征定義接口允許定義Petri網(wǎng)的新特征。協(xié)議文檔定義了所有符合XML語法的PNML標簽,利用協(xié)議文檔可以保證相同的標簽在所有的PNML文件中有相同含義。Petri網(wǎng)類型定義(Petri Net Type Definition,PNTD)是根據(jù)協(xié)議文檔中的標簽定義某種具體Petri網(wǎng)類型的合法標簽,Petri網(wǎng)根據(jù)PNTD中定義的標簽描述PNML文件。
圖1 PNML組成部分及關系
元模型定義了PNML文件的結(jié)構(gòu),圖2顯示了用UML符號表示的元模型的組成部分及關系。其中Petri網(wǎng)文件是一個符合PNML規(guī)范的文件,一個Petri網(wǎng)文件可以包含多個Petri網(wǎng)。每個Petri網(wǎng)有Place、Transition、Arc、Label和Page等對象,每個對象有唯一的ID進行標識。標簽表示對象的名稱、Place的初始標記、Transition或Arc的權(quán)值等信息。由于Petri網(wǎng)的圖形特征,PNML文件中每個對象或標簽都包含圖形信息。
圖2 PNML元模型
1.2 SVG
SVG中有專門用于矢量圖形描述的標簽,包括矩形<rect>、圓<circle>、橢圓<ellipse>、直線<line>、折線<polyline>、多邊形<polygon>和文本(text)。此外SVG還支持圖形繪制中常用的由Bezier曲線定義的路徑描述和操作,其元素標記為<path>。這些矢量圖形對象在SVG文件中以XML標簽形式存在,PNML文件中采用XML標簽描述Petri網(wǎng)的庫所、變遷和弧等對象,因此可以借助XSLT樣式表實現(xiàn)PNML文件到SVG圖形的轉(zhuǎn)換。
2.1 PNML文件
圖3顯示了一個簡單的庫所/變遷網(wǎng)。對應的PNML文件片段如表1所示。
圖3 Petri網(wǎng)模型
表1 PNML文件片段
<pnml></pnml>標簽分別表示PNML文件的開始和結(jié)束。文檔中包含了一個P/T網(wǎng),以<net></net>標簽表示。一個PNML文檔中可以包含多個Petri網(wǎng),每個網(wǎng)用id屬性唯一標識,type屬性的取值是具體的Petri網(wǎng)類型,例如PTNet。
本例中的網(wǎng)包含兩個庫所對象、一個變遷和兩條弧對象,分別用<place>、<transition>和<arc>標簽表示,每個對象使用id屬性唯一標識。<marking>標簽描述庫所的token的信息,<inscription>標簽描述弧上的權(quán)值。<name>標簽描述了對象的名稱,<value>標簽表示具體取值。<graphics>標簽描述庫所、變遷和弧等對象的圖形信息。<position>標簽采用笛卡爾坐標系描述庫所和變遷的絕對位置,由于弧是一條由連續(xù)點組成的有向線段,<position>標簽取線段中間點的坐標描述弧的絕對位置。<offset>標簽描述對象名稱、token值和弧權(quán)值等信息相對于對象本身絕對位置的偏移位置。
2.2 轉(zhuǎn)換原理
XSLT是一種對XML文檔進行轉(zhuǎn)化的語言,是XSL(Extensible stylesheet language)規(guī)范的一部分,XSLT用于將一種XML文檔轉(zhuǎn)換為另外一種XML文檔,或者可被瀏覽器識別的其他類型的文檔。
PNML文件中的Place、Transition、Arc和Label等對象可以使用SVG圖形中的橢圓<ellipse>、矩形<rect>、路徑<path>和文本<text>對象描述。通過XSLT中定義的模板遞歸讀取Place、Transition、Arc和Label等對象信息,轉(zhuǎn)換為SVG矢量圖文件中對應的圖形對象。Arc對象的轉(zhuǎn)換比較特殊,在SVG中沒有元素可以直接描述帶有箭頭的線段,因此借助SVG中的<path>元素分別繪制線段和箭頭。
下面根據(jù)具體的XSLT樣式單實現(xiàn)表1中的PNML文件轉(zhuǎn)換為可以在網(wǎng)絡中傳輸?shù)腟VG文本式矢量圖。
3.1 XSLT樣式表
表2是將Place對象轉(zhuǎn)換為SVG中的<ellipse>對象的XSLT文檔片段。建立模板遞歸讀?。紁lace>標簽的屬性、名稱、token值和位置等信息。
表2 Place轉(zhuǎn)換片段
表3是Transition對象轉(zhuǎn)換為SVG中的<rect>對象的XSLT文檔片段。
表3 Transition轉(zhuǎn)換片段
表4是Arc元素轉(zhuǎn)換為SVG文件中<path>對象的XSLT文件片段。
表4 Arc轉(zhuǎn)換片段
3.2 轉(zhuǎn)換結(jié)果
轉(zhuǎn)換后的SVG矢量圖形在瀏覽器中運行結(jié)果如圖4所示。比較圖3中的基于PNML文件描述的Petri網(wǎng)模型和圖4中的SVG矢量圖,基本實現(xiàn)圖形的無差別轉(zhuǎn)換,達到了實驗效果。
圖4 SVG矢量圖在瀏覽器中運行結(jié)果
通過建立Petri網(wǎng)模型實例并分析PNML文件各個對象,借助XSLT樣式表實現(xiàn)PNML文件到SVG矢量圖的轉(zhuǎn)換。實驗結(jié)果驗證了該轉(zhuǎn)換方法的有效性,下一步考慮如何把復雜的多頁PNML文件轉(zhuǎn)換為SVG矢量圖。
[1]R.Bastide,J.Billington,E.Kindler.Meeting on XML/SGML based Interchange Formats for Petri Nets,Arhus,Den-mark,June 2000.21st ICATPN.
[2]J.Billington,S.Christensen,K.van Hee.The Petri Net Markup Language:Concepts,technology,and tools[J].In W.van der Aalst and E.Best,Application and Theory of Petri Nets 2003,24th International Conference,LNCS 2679,483-505.Springer,June 2003.
[3]C.Stehno.Petri Net Markup Language:Implementation and Application[J].In J.Desel and M.Weske,editors,Promise 2002,Lecture Notes in Informatics P-21,18-30.Gesellschaft f¨ur Informatik,2002.
[4]J.Ferraiolo,F(xiàn).Jun,and D.Jackson(eds.).Scalable Vector Graphics(SVG)1.1 Speci?cation.URL http://www.w3.org/TR/SVG11/,2003.
[5]Petri Net Kernel.http://www.informatik.hu-berlin.de/top/pnk/.2001/11/09.
[6]XSL Transformations(XSLT)Version 2.0.URL http://www.w3.org/TR/2005/WD-xslt20-20050211,2005.
[7]周建濤,邊曉軍.WF-net模型到PNML的轉(zhuǎn)換方法研究與實現(xiàn)[J].計算機科學.2010,37(12),96~98.
[8]吳哲輝.Petri網(wǎng)導論[M].北京:機械工業(yè)出版社,2006.
Research on Transformation from PNML to SVG Graphics
Hu Xiaojing,Liu Shixi,Ma Jun
(School of Computer and Information Engineering,Chuzhou University,Chuzhou 239000,China)
Aiming at the graphic feature of Petri Nets,this paper discusses the transformation method from PNML file format based of Petri net to SVG vector graphics based on XSLT technology and depicts the implementation details.The result is verified by using the PNK tools to establish and simulate the model.
Petri Net;PNML file;SVG graphics;XSLT stylesheet
TP311
A
1673-1794(2011)05-0022-03
胡曉靜(1985-),女,合肥工業(yè)大學碩士,助教,研究方向:Petri網(wǎng)理論及應用。
安徽省教育廳自然科學基金資助項目(KJ2011B116);滁州學院自然科學基金資助項目(2010kj016B);滁州學院自然科學基金項目(2011kj008B)
2011-03-24