<chapter id="import-export">
<title
>Importar e exportar</title>
<sect1 id="import-export-projects">
    <title
>Compartilhar projetos do &rocs;</title>
    <para
>Os projetos do &rocs; podem ser importados e exportados como pacotes <literal
>.tar.gz</literal
>. Estes pacotes podem ser usados para compartilhar projetos. A importação e exportação pode ser feita com o <menuchoice
><guimenu
>Arquivo</guimenu
> <guimenuitem
>Importar projeto</guimenuitem
></menuchoice
> e <menuchoice
><guimenu
>Arquivo</guimenu
> <guimenuitem
>Exportar projeto</guimenuitem
></menuchoice
>, respectivamente. </para>
</sect1>

<sect1 id="import-export-graphs">
    <title
>Importar e exportar documentos de grafo</title>
    <para
>O &rocs; atualmente suporta a importação e exportação para os seguintes formatos de arquivos:</para>
    <itemizedlist>
        <listitem
><para
>Arquivos DOT, também conhecidos como arquivos Graphviz</para
></listitem>
        <listitem
><para
>Arquivos GML</para
></listitem>
        <listitem
><para
>Arquivos no formato Trivial Graph</para
></listitem>
    </itemizedlist>

<sect2 id="format-specification-tgf">
<title
>Formato de Arquivo Trivial Graph</title>
<para
>O <emphasis
>Formato Trivial Graph</emphasis
> (TGF, sigla em inglês) é um formato de arquivo simples baseado em texto para descrever gráficos. O arquivo TGF consiste de uma lista de definições de nó, o mapa de IDs dos nós para rótulos, seguido de uma lista de arestas. Neste formato, somente é possível ter um rótulo por nó e um valor por aresta. O &rocs; interpreta os gráficos importados como gráficos não direcionados. Os gráficos exportados conterão duas arestas por conexão se as conexões forem bidirecionais. </para>

<sect3>
<title
>Especificação do formato</title>
    <itemizedlist>
        <listitem
><para
>O arquivo inicia com uma lista de nós (um nó por linha), seguida de uma linha com somente o caractere "#", seguida pela lista de arestas (uma aresta por linha).</para
></listitem>
        <listitem
><para
>Um nó consiste de um inteiro (identificador), seguido por um espaço, seguido por um string arbitrário.</para
></listitem>
        <listitem
><para
>Uma aresta consiste de dois inteiros (identificadores) separados por um espaço, seguida por um espaço, seguida por um string arbitrário. É considerado que a aresta aponta do primeiro para o segundo identificador</para
></listitem>
    </itemizedlist>
</sect3>
<sect3>
<title
>Exemplo</title>
<programlisting
>1 nó inicial
2 transmissor
3 fundo
#
1 2 azul
2 1 vermelho
2 3 verde
</programlisting>
</sect3>
</sect2>

<sect2 id="format-specification-dot">
<title
>Linguagem DOT / Formato do Arquivo de Grafos do Graphviz</title>
<para
>A linguagem DOT é uma linguagem descritiva em texto simples que permite tanto uma representação legível para os usuários dos grafos, assim como um processamento eficiente pelos programas de formatação de grafos. O DOT é o formato de arquivo padrão do pacote de visualização de grafos Graphviz, mas também é largamente usado por outras ferramentas de grafos. As extensões dos nomes dos arquivos normais para o DOT são <emphasis
>.gv</emphasis
> e <emphasis
>.dot</emphasis
>. </para>

<sect3>
<title
>Funcionalidades não suportadas</title>
<para
>O &rocs; consegue processar todos os arquivos de grafos que tenham um grafo definido de acordo com a especificação da linguagem DOT<footnote
><para
>http://www.graphviz.org/content/dot-language</para
></footnote
>. O suporte das funcionalidades da linguagem é completo, apesar das seguintes exceções: </para>
    <itemizedlist>
        <listitem
><para
>subgrafo: Devido à falta da funcionalidade do conceito de subgrafos no &rocs;, os subgrafos só são importados como um conjunto de elementos de dados e ligações. Especialmente, as ligações de e para subgrafos não são importadas.</para
></listitem>
        <listitem
><para
>Atributos em &HTML; e &XML;: Os atributos (como as legendas) que contenham uma sintaxe em &HTML; ou &XML; são lidos sem qualquer alteração. Especialmente, não são lidos os ajustes de estilos e tipos de letra destes atributos.</para
></listitem>
    </itemizedlist>
</sect3>
<sect3>
<title
>Exemplo</title>
<programlisting
>digraph meuGrafo {
    a -> b -> c;
    b -> d;
}
</programlisting>
</sect3>
</sect2>

</sect1>
</chapter>