[For the PDF version of this reply, the figures or diagrams are interactive and dynamic.]
Net Elements and Annotations: A General-Purpose Visual Programming Language
I use graphics to organize JavaScript™ programs that use the Acrobat®/JavaScript API. Each graphic object represents a Petri Net element (place, transition, input or output) or represents more than one Petri Net element. Each graphic object is actually an annotation of the corresponding net element. However, if every graphic object maps to one and only one net element it may be used to generate the net element. And if a graphic object maps to more than one net element and the mapping is well-defined then it may also be used to generate the net elements. Standard Petri Net elements are represented by certain types of graphics: a circle is a place, a square or rectangle or line is a transition, an arrow from a circle to a square is an input and an arrow from a square to a circle is an output. Furthermore, a net element that is represented by a standard graphics has a set of de-facto standard annotations associated with it.
[The types of annotations in a "Standard Petri Net" are found in the PDF version of this reply.]
Carl Adam Petri described most of these ideas (including the types of annotations in a "Standard Petri Net" in his doctoral dissertation (Petri, 1966). He also applied the net elements and annotations to the description of several logic circuits, such as Figure 6.
Benefits and Challenges
A visual programing language may help a computer programmer develop computer programs (Menzies, 2002).
I have at least three reasons why I find net elements and annotations useful (advantages?).
Firs reason. The process logic can be created one element at a time. This means that a net can be extended by adding elements to the existing net (Petri, 1966). For example, a model of a controller can be divided into internal and external components. The internal component regulates the system. The external component interfaces with the environment by accepting input from the environment. Figure 1 is a Petri Net model of the internal component. It is possible to add a Petri Net model of the external component to the Petri Net model of the internal component by adding the appropriate places and transition (Figure 2).
Figure 1 A Petri Net Model of an Internal Component of a Controller (Halloway, Krogh and Giua, 1997)
Figure 2 A Petri Net Model of an Internal and External Components of a Controller (Halloway, Krogh and Giua, 1997)
Second reason. The codes associated with each net element can come from more than one “programming language” (Petri, 1973). They can come from a computer language such as JavaScript, COBOL, ADA and an assembly language. They can come from a Mathematical language such as algebraic symbols. They can come from prose encoded in English, German, French, Greek, Tagalog, Chinese, etc. Thus it may be used as a basis for communication and collaboration throughout the software or system development life cycle; and among different users, developers and stakeholders (Petri, 1973).
Third reason. It is possible to focus on certain graphics objects in the net and to write out the code or logic annotations for the related graphics objects. Consider a Petri Net model of a card game in Figure 3. If the arrow for the input P7 T4 is a standard graphics for an input in a Place/Transition Net and if m_7 is the mark for the place P7 then the logic annotation for updating the mark of the input place is m_7=m_7-1. If s_9^- is the status of the input then the logic annotation for updating the status of the input is s_9^-=((m_7<1) ?false:true).
Figure 3 A Petri Net model of a card game
I have at least three reason why I find the application of Petri Nets challenging (disadvantages?)
Якщо графічних об’єктів занадто багато, то створити чи прочитати мережу буде важко. Труднощі можна зменшити, взявши підмножину графіки та представити їх за допомогою одного, двох або трьох графічних символів (Noe, 1973; Petri, 1966). Наприклад, якщо вважається, що модель Петрі Net в картковій грі на малюнку 3 має занадто багато графічних об’єктів на діаграмі, можливо, комбінувати частину графіки та зберігати достатню кількість інформації для відображення діаграми в комп'ютерну програму. Розглянемо на малюнку 4 модель Петрі Net тієї ж гри, знайденої на рисунку 3 із графікою високого рівня (Chionglo, 2016a).
Малюнок 4 Сітка Петрі Модель карткової гри за допомогою графіки високого рівня (Chionglo, 2016a)
В іншому прикладі зовнішні компоненти контролера на Фіг.2 можуть бути об'єднані для створення більш короткого графічного зображення, як показано на Фіг.5.
Малюнок 5 Сітчаста модель Петрі контролера з високим рівнем графіки для зовнішніх компонентів
Нарешті, взаємовиключний набір місць або взаємовиключний набір переходів також може бути представлений за допомогою графічного об'єкта високого рівня (Chionglo, 2015).
Друга причина. Навіть із стандартною графікою може бути складним малювати та розміщувати графіку, особливо якщо очікує, що остаточна схема буде зручною для користувачів чи читача. Деякі рішення для створення зручної для користувача або читача діаграми включають: правильне розташування графічних об’єктів, відповідні розміри полотна та форми, кривизна стрілок, тип головок стрілок, розмір і шрифт тексту, та вибір кольорів для графіки та тексту.
Третя причина. Складати анотації з чистих елементів легко впорядковано, оскільки кожна анотація прямо чи опосередковано пов'язана з мережевим елементом. Однак відображення будь-якої примітки разом із графікою кожного чистого елемента може бути не дуже хорошою ідеєю, оскільки на діаграмі може бути занадто багато інформації. Наприклад, розглянемо діаграму моделі Петрі Net логічної ланцюга, яка містить посилання на всі примітки про властивості та логіку (рис. 6). [Оригінальна модель включала тестову умову стану кожного виходу (рисунок 31 на стор. 78 (Petri, 1966)); умова випробування тут було опущено, оскільки воно еквівалентно оригінальній моделі для заданого початкового маркування. Таким чином, кожен вихід має одну логічну анотацію для обчислення позначки місця виводу.]
Малюнок 6 Місце чи перехідна мережа з анотаціями - на основі рисунка 31, сторінка 78 англійського перекладу дисертації Петрі (1966)
Одним із способів пом'якшити цю проблему було б визначити типи анотацій, які використовуються в моделі, та визначити графічні об’єкти, які включають примітки цих типів (Petri, 1966). Таким чином, коли діаграма Петрі Net складається з графічних об'єктів із визначень, інтерпретація цих об'єктів повинна включати «невидимі» анотації. Рисунок 7 слід інтерпретувати як Стандартну мережу Петрі (для означень див. Анотації Стандартної мережі Петрі); отже, логічну анотацію можна випустити з діаграми.
Рисунок 7 Сітка місця / переходу - на основі рисунка 31, сторінка 78 англійського перекладу дисертації Петрі (1966)
Іншим способом пом’якшити цей виклик буде використання переглядів форм приміток для доповнення або доповнення діаграми (Chionglo, 2016b; 2014). Погляди можуть бути далі розділені на менші погляди, і кожен вид може бути відображений і прихований.
Список літератури
Chionglo, JF (2016a). Відповідь на тему "Як спроектувати потік стану для гри на реакцію / скорочення флешкарту?" На сторінці переповнення стека. Доступно за адресою https://www.academia.edu/34059934/A_Reply_to_How_to_design_a_state_flow_for_a_react_redux_flashcard_game_at_Stack_Overflow .
Chionglo, JF (2016b). Перегляд двох форм мережі Петрі. Доступно за адресою http://www.aespen.ca/AEnswers/CAPDissF31P78-form.pdf .
Chionglo, JF (2015). Зменшення кількості графічних елементів з елементами в діаграмі Петрі Net за допомогою графіки високого рівня. Доступний за адресою http://www.aespen.ca/AEnswers/WjTpY1429533268 .
Chionglo, JF (2014). Чисті елементи та примітки для комп'ютерного програмування: обчислення та взаємодії в PDF. Доступно за посиланням https://www.academia.edu/26906314/Net_Elements_and_Annotations_for_Computer_Programming_Computations_and_Interactions_in_PDF .
Halloway, LE; Krogh, BH та Giua, A. (1997). Огляд методів Петрі Net для керованих дискретних систем подій [електронна версія]. Дискретні динамічні системи подій: теорія та програми, Вип. 7. Бостон: Kluwer Academic Publishers, С. 151 - 190.
Мензіс, Т. (2002). Питання оцінювання мов візуального програмування. У СК Чанг (Ред). Посібник з інженерії програмного забезпечення та інженерії знань, Vol. 2 Нові технології. Всесвітнє наукове видавниче співробітництво. Pte. ТОВ, С. 93 - 101.
Ное, Дж. Д. і Натт, Дж. Дж. (1973). “Макросистемні електронні мережі для представлення паралельних систем”, IEEE Transaction on Computers, vol. С-22, № 8, серпень 1973, стор 718 - 727.
Петрі, Каліфорнія (1973). Поняття чистої теорії. В Математичні основи інформатики: зб. симпозіуму та літньої школи, Високі Татри, 3 - 8 вересня 1973, стор. 137 - 146. Математика. Інст. словацького акад. наук, 1973.
Петрі, Каліфорнія (1966). Спілкування з Automota [перед. CF Greene, Jr.] Додаток I до Технічного звіту RADC-TR-65-377 (Том I). Гріффісська військово-повітряна база, штат Нью-Йорк: Центр розвитку повітряної авіації в Римі, відділ досліджень і технологій, командування систем ВПС, військово-повітряна база Гриффісса Отримано 31 серпня 2011 року з http://www.informatik.uni-hamburg.de/TGI/mitarbeiter/profs/petri/doc/Petri-diss-engl.pdf .