<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>