<chapter id="import-export"> <title >Імпортування та експортування</title> <sect1 id="import-export-projects"> <title >Обмін проектами &rocs;</title> <para >Проекти &rocs; можна імпортувати та експортувати у форматі файлів архівів <literal >.tar.gz</literal >. Такими архівами можна скористатися для обміну проектами, імпортування та експортування можна здійснювати за допомогою пунктів меню <menuchoice ><guimenu >Документ графу</guimenu > <guimenuitem >Імпортувати проект</guimenuitem ></menuchoice > та <menuchoice ><guimenu >Документ графу</guimenu > <guimenuitem >Експортувати проект як</guimenuitem ></menuchoice >, відповідно. </para> </sect1> <sect1 id="import-export-graphs"> <title >Імпортування та експортування документів графів</title> <para >У поточній версії &rocs; передбачено підтримку імпортування та експортування даних файлів у таких форматах:</para> <itemizedlist> <listitem ><para >файли DOT, також відомі як файли Graphviz</para ></listitem> <listitem ><para >файли GML;</para ></listitem> <listitem ><para >Файли у форматі TGF</para ></listitem> <listitem ><para >Формат KML</para ></listitem> </itemizedlist> <sect2 id="format-specification-tgf"> <title >Формат файлів звичайних графів (TGF)</title> <para ><emphasis >Звичайний формат графів</emphasis > (Trivial Graph Format або TGF) є простим текстовим форматом файлів, призначеним для опису графів. Файл TGF містить список визначень вузлів з прив’язкою ідентифікаторів вузлів до міток, за яким вказано список ребер. У такому форматі можливий запис лише однієї мітки на вузол і одного значення на ребро. &rocs; обробляє імпортовані графи у цьому форматі як неорієнтовані. Експортовані графи у цьому форматі міститимуть по два ребра на з’єднання, якщо з’єднання у них є двонапрямленими. </para> <sect3> <title >Специфікація формату</title> <itemizedlist> <listitem ><para >Файл починається зі списку вузлів (один вузол на рядок), далі має бути рядок з єдиним символом «#», за яким має йти список ребер (по одному ребру на рядок).</para ></listitem> <listitem ><para >Запис вузла складається з цілого числа (ідентифікатора), пробілу і довільного рядка.</para ></listitem> <listitem ><para >Запис ребра складається з двох цілих чисел (ідентифікаторів), відокремлених пробілом, пробілу та довільного рядка. Вважається, що спрямоване ребро виходить з вузла з першим ідентифікатором і прямує до вузла з другим ідентифікатором.</para ></listitem> </itemizedlist> </sect3> <sect3> <title >Приклад</title> <programlisting >1 starting node 2 transmitter 3 sink # 1 2 blue 2 1 red 2 3 green </programlisting> </sect3> </sect2> <sect2 id="format-specification-dot"> <title >Мова DOT та формат файлів графів Graphviz</title> <para >Мова DOT є мовою текстового опису графів, у якій поєднується придатне до читання людиною представлення графів та можливості ефективної обробки графу програмами компонування. DOT є типовим форматом файлів для комплексу програм для візуалізації графів Graphviz, але цей формат також широко використовується іншими програмами для обробки графів. Типовими суфіксами назв файлів у форматі DOT є <emphasis >.gv</emphasis > та <emphasis >.dot</emphasis >. </para> <sect3> <title >Непідтримувані можливості</title> <para >Програма &rocs; здатна обробляти всі файли графів, які містять дані, що відповідають специфікації мови DOT<footnote ><para >http://www.graphviz.org/content/dot-language</para ></footnote >. Передбачено повну підтримку можливостей мови, окрім таких виключень: </para> <itemizedlist> <listitem ><para >підграфи: через відсутність концепції підграфів у &rocs;, підграфи (subgraph) імпортуються лише як набори елементів даних зі з’єднаннями. Зокрема, не імпортуються дані щодо вхідних і вихідних з’єднань між підграфами.</para ></listitem> <listitem ><para >Атрибути &HTML; і &XML;: атрибути (зокрема мітки) що містять синтаксичні конструкції &HTML; або &XML; читаються без обробки. Зокрема, не виконується обробка інструкцій щодо зміни шрифтів та стилю запису з атрибутів.</para ></listitem> </itemizedlist> </sect3> <sect3> <title >Приклад</title> <programlisting >digraph myGraph { a -> b -> c; b -> d; } </programlisting> </sect3> </sect2> </sect1> </chapter>