APP下载

PNML到SVG矢量图转换的研究与实现

2011-11-13胡晓静刘士喜

滁州学院学报 2011年5期
关键词:库所矢量图文档

胡晓静,刘士喜,马 骏

(滁州学院计算机与信算工程学院,安徽滁州 239000)

PNML到SVG矢量图转换的研究与实现

胡晓静,刘士喜,马 骏

(滁州学院计算机与信算工程学院,安徽滁州 239000)

针对Petri网的图形化表现形式,讨论了运用XSLT样式表把基于PNML文件的Petri网图形转换为SVG矢量图的方法,给出从Petri网图形到SVG矢量图转换的实现细节。结合应用实例借助PNK(Petri Net Kernel)工具建立模型并进行仿真,验证了方法的有效性。

Petri网;PNML文件;SVG矢量图;XSLT样式表

Petri网是描述分布式系统的建模与分析工具,已被广泛应用于各个领域。Petri网软件工具非常丰富,使用的文件格式也不统一,这种现象致使对同一个系统建模的结果也不同。2000年在Petri网理论和应用国际会议上提出制定基于XML语言的文件交换标准,PNML(Petri Net Markup Language,Petri网标记语言)是其中的一个解决方案[1]。

PNML是基于XML的Petri网文件交换格式,提供一种在不同Petri网工具间交换信息的途径,实现了Petri网工具的互操作性。作为建模工具Petri网直观的图形化表示使其易于理解,然而如何实现Petri网模型在网络中进行有效传输显得尤为必要。SVG是基于XML的文本式可伸缩矢量图形语言描述规范,具有很强的可扩展性,并能够描述任意复杂的图像。由于PNML和SVG都是基于XML的标准,因此可利用XLST(Extensible Stylesheet Language Transformations)互相转化。本文在参考文献[2]和文献[3]的研究基础上给出利用XSLT样式表将PNML文件转换为SVG矢量图的实现细节。

1 PNML、SVG概念及结构

1.1 PNML概念及结构[2]

PNML的体系结构包括元模型、类型和特征定义、协议文档和Petri网文件等部分。PNML把Petri网看成一个贴了标签的有向图,所有的数据能被储存到网、网的节点和弧的标签中。图1给出了PNML各个组成部分及其相互关系。

元模型定义了PNML文件的基本结构,类型定义接口允许定义符合元模型的新Petri网类型,特征定义接口允许定义Petri网的新特征。协议文档定义了所有符合XML语法的PNML标签,利用协议文档可以保证相同的标签在所有的PNML文件中有相同含义。Petri网类型定义(Petri Net Type Definition,PNTD)是根据协议文档中的标签定义某种具体Petri网类型的合法标签,Petri网根据PNTD中定义的标签描述PNML文件。

图1 PNML组成部分及关系

元模型定义了PNML文件的结构,图2显示了用UML符号表示的元模型的组成部分及关系。其中Petri网文件是一个符合PNML规范的文件,一个Petri网文件可以包含多个Petri网。每个Petri网有Place、Transition、Arc、Label和Page等对象,每个对象有唯一的ID进行标识。标签表示对象的名称、Place的初始标记、Transition或Arc的权值等信息。由于Petri网的图形特征,PNML文件中每个对象或标签都包含图形信息。

图2 PNML元模型

1.2 SVG

SVG中有专门用于矢量图形描述的标签,包括矩形<rect>、圆<circle>、椭圆<ellipse>、直线<line>、折线<polyline>、多边形<polygon>和文本(text)。此外SVG还支持图形绘制中常用的由Bezier曲线定义的路径描述和操作,其元素标记为<path>。这些矢量图形对象在SVG文件中以XML标签形式存在,PNML文件中采用XML标签描述Petri网的库所、变迁和弧等对象,因此可以借助XSLT样式表实现PNML文件到SVG图形的转换。

2 PNML文件和转换原理

2.1 PNML文件

图3显示了一个简单的库所/变迁网。对应的PNML文件片段如表1所示。

图3 Petri网模型

表1 PNML文件片段

<pnml></pnml>标签分别表示PNML文件的开始和结束。文档中包含了一个P/T网,以<net></net>标签表示。一个PNML文档中可以包含多个Petri网,每个网用id属性唯一标识,type属性的取值是具体的Petri网类型,例如PTNet。

本例中的网包含两个库所对象、一个变迁和两条弧对象,分别用<place>、<transition>和<arc>标签表示,每个对象使用id属性唯一标识。<marking>标签描述库所的token的信息,<inscription>标签描述弧上的权值。<name>标签描述了对象的名称,<value>标签表示具体取值。<graphics>标签描述库所、变迁和弧等对象的图形信息。<position>标签采用笛卡尔坐标系描述库所和变迁的绝对位置,由于弧是一条由连续点组成的有向线段,<position>标签取线段中间点的坐标描述弧的绝对位置。<offset>标签描述对象名称、token值和弧权值等信息相对于对象本身绝对位置的偏移位置。

2.2 转换原理

XSLT是一种对XML文档进行转化的语言,是XSL(Extensible stylesheet language)规范的一部分,XSLT用于将一种XML文档转换为另外一种XML文档,或者可被浏览器识别的其他类型的文档。

PNML文件中的Place、Transition、Arc和Label等对象可以使用SVG图形中的椭圆<ellipse>、矩形<rect>、路径<path>和文本<text>对象描述。通过XSLT中定义的模板递归读取Place、Transition、Arc和Label等对象信息,转换为SVG矢量图文件中对应的图形对象。Arc对象的转换比较特殊,在SVG中没有元素可以直接描述带有箭头的线段,因此借助SVG中的<path>元素分别绘制线段和箭头。

下面根据具体的XSLT样式单实现表1中的PNML文件转换为可以在网络中传输的SVG文本式矢量图。

3 转换实例

3.1 XSLT样式表

表2是将Place对象转换为SVG中的<ellipse>对象的XSLT文档片段。建立模板递归读取<place>标签的属性、名称、token值和位置等信息。

表2 Place转换片段

表3是Transition对象转换为SVG中的<rect>对象的XSLT文档片段。

表3 Transition转换片段

表4是Arc元素转换为SVG文件中<path>对象的XSLT文件片段。

表4 Arc转换片段

3.2 转换结果

转换后的SVG矢量图形在浏览器中运行结果如图4所示。比较图3中的基于PNML文件描述的Petri网模型和图4中的SVG矢量图,基本实现图形的无差别转换,达到了实验效果。

图4 SVG矢量图在浏览器中运行结果

4 结束语

通过建立Petri网模型实例并分析PNML文件各个对象,借助XSLT样式表实现PNML文件到SVG矢量图的转换。实验结果验证了该转换方法的有效性,下一步考虑如何把复杂的多页PNML文件转换为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.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的转换方法研究与实现[J].计算机科学.2010,37(12),96~98.

[8]吴哲辉.Petri网导论[M].北京:机械工业出版社,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-),女,合肥工业大学硕士,助教,研究方向:Petri网理论及应用。

安徽省教育厅自然科学基金资助项目(KJ2011B116);滁州学院自然科学基金资助项目(2010kj016B);滁州学院自然科学基金项目(2011kj008B)

2011-03-24

猜你喜欢

库所矢量图文档
浅谈Matlab与Word文档的应用接口
Analysis of the line current differential protection considering inverter-interfaced generation station and countermeasures
有人一声不吭向你扔了个文档
利用矢量图对小物体从光滑斜面下滑运动探讨
基于RI码计算的Word复制文档鉴别
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
利用Petri网特征结构的故障诊断方法
基于一种扩展模糊Petri网的列车运行晚点致因建模分析
基于模糊Petri网的数控机床主轴故障诊断*
基于智能Petri网的物流配送路径优化算法