200 likes | 348 Views
The Petri Net Markup Language (PNML). Wellington João da Silva Mestrado Ciência da Computação. Introdução. Existem várias ferramentas para redes de Petri Cada ferramenta tem forma própria de representação da redes Comunicação entre ferramentas é dificultado
E N D
The Petri Net Markup Language (PNML) Wellington João da Silva Mestrado Ciência da Computação
Introdução • Existem várias ferramentas para redes de Petri • Cada ferramenta tem forma própria de representação da redes • Comunicação entre ferramentas é dificultado • Solução: definir um modelo comum de representação das redes de Petri
The Petri Net Markup Language (PNML) • Formato de intercambio para redes de Petri baseado em XML • Tentativa de padronização da representação de redes de Petri usando XML • Objetiva definir um formato de arquivo que suporte todos os tipos de Redes de Petri • Originalmente desenvolvido como um formato de arquivo para a versão Java do Petri Net Kernel
The Petri Net Markup Language (PNML) • PNML distingue • Características gerais de todas as redes de Petri • lugares, transições, arcos, identificações de objetos • Características específicas de cada tipo particular de rede de Petri • marcações, guardas, tempo, inscrição dos arcos,tipo dos lugares
Conceitos Básicos • XML (Extensible Markup Language) • XML é uma especificação desenvolvida pela W3C e designada especificamente para documentos WEB. • XML permite a criação tags próprias, habilitando a definição, transmissão, validação e interpretação de dados entre aplicações ou entre organizações. • XSD (XML Schema Definition) • Especifica como descrever formalmente os elementos em um documento XML. • DTD (Document type definition) • Define a estrutura de um documento XML com uma lista de elementos legais.
Conceitos Básicos • Petri net file • Arquivo utilizado para representar redes de Petri • Objetos • Representam a estrutura da rede • Lugar, transição e arco • Paginas, lugares de referência, transições de referência (específicos da ferramenta) • Cada objeto em uma rede de Petri possui um identificador único. • Objetos são denominados nós, por conveniência
Conceitos Básicos • Rótulo • Atribui informação adicional a um objeto • Nome de um nó, marcação de um lugar, guarda de uma transição, etc. • Dois tipos de rótulos • Anotação - Domínio infinito de valores legais. Ex.: nomes, marcações, etc • Atributo - Domínio finito (e pequeno) de valores legais
Conceitos Básicos • Informação gráfica • Cada objeto está associado com alguma informação gráfica: • Nó – posição • Arco – lista de posições que definem pontos intermediários de um arco • Anotação – posição relativa com respeito ao objeto correspondente
Conceitos Básicos • Páginas e nós de referência • Página é um objeto que pode ser composto de outros objetos, incluindo páginas. • Um arco só pode conectar nós na mesma página. • Nós de Referência são utilizados para conectar nós em páginas distintas • Nós de referência podem ser usados para referenciar nós em qualquer local da rede. • Cuidado deve ser tomado para evitar referências cíclicas.
Conceitos Básicos • Módulos e Instâncias • Suporte a definição de módulos, instanciação de módulos e construção de redes de Petri a partir destas instâncias • Informações específicas da ferramenta • Para algumas ferramentas, pode ser necessário armazenar algumas informações internas que não serão utilizadas por outras ferramentas
Conceitos Básicos • Tipos de Rede • Rótulos disponíveis e combinações legais dos mesmos para um objeto em particular são definidos por um tipo específico de rede de Petri (Petri net Type). • Tecnicamente, um tipo de rede de Petri é um documento que define a sintaxe XML dos rótulos, ou seja, um DTD ou um XML-esquema
Conceitos Básicos • Tipos de Rede e convenções • A principio, um tipo de rede de Petri pode ser definido livremente. Na prática, seus rótulos são escolhidos de uma coleção de rótulos predefinidos, que são fornecidos em um arquivo separado: as convenções. • As convenções garantem que um mesmo rótulo tenha o mesmo significado em todos os tipos de rede de Petri
Exemplo: lugar <place id="p1"> <graphics> <position x="10" y="20" /> </graphics> <name> <value> ready to produce</value> <graphics> <offset x="-5" y="2" /> </graphics> </name> <initialMarking> <value>P</value> <graphics> <offset x="0" y="0" /> </graphics> </initialMarking> </place>
Exemplo: transição <transition id="t1"> ... <toolspecific tool="PN4all" version="0.1"> <hidden/> <toolspecific> </transition>
Exemplo: arco <arc id="a1" source="p1" target="t1"> <graphics> <position x="7" y="19" /> <position x="5" y="17" /> </graphics> <inscription> <value>x</value> <graphics> <offset x="-3" y="5" /> </graphics> </inscription> <type value="normal"/> </arc>
Exemplo: página <page id= "pg1"> <name> <value>Example page of the net</value> </name> <referencePlace id="rp1" ref="p1"> <name>...</name> <graphics> <position x="20" y="20"/> </graphics> </referencePlace> <referenceTransition id="rt1" ref="t1"> ... </referenceTransition> <place id="p2">...</place> <transition id="t2">...</transition> <arc id="a2" source="rp1" target="t2"> ... </arc> ... </page>
Exemplo: rede <net id="n1" type="HLnwt.xsd"> <name> <value> Example high-level net</value> <graphics pageref="pg1"> </name> <place id="p1"> ... </place> <page id="pg1"> ... </page> </net>
Exemplo:Net type Specification DTD <?xml version='1.0' encoding='UTF-8' ?> <!--Generated by XML Authority--> <!ELEMENT name (#PCDATA)> <!ELEMENT extension EMPTY> <!ATTLIST extension name CDATA #REQUIRED class CDATA #REQUIRED > <!ELEMENT extendable (extension*)> <!ATTLIST extendable class CDATA #REQUIRED > <!ELEMENT param EMPTY> <!ATTLIST param name CDATA #REQUIREDvalue CDATA #REQUIRED > <!ELEMENT executable (param*)> <!ATTLIST executable class CDATA #REQUIRED > <!ELEMENT netTypeSpecification (extendable* , executable?)> <!ATTLIST netTypeSpecification name CDATA #REQUIRED >
Algumas considerações • Marcações são rótulos de lugares e ocorrem em redes de todos os tipos, mas suas formas diferem • Parte de PNML ou parte de PNTD? • Rótulos diferem em significado e sintaxe • Como transferir informações entre redes de tipos distintos?
Bibliografia • The Petri Net Markup Language – Matthias Jüngel, Ekkart Kindler, Michael Weber • The Petri Net Markup Languageand other XML-based Interchange Formats for Petri Nets - C. Ermel • Petri net Markup language - http://www.informatik.hu-berlin.de/top/pnml/