<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../../general.ent">
  %general-entities;

  <!ENTITY soprano-download-http "&sourceforge-repo;/soprano/soprano-&soprano-version;.tar.bz2">
  <!ENTITY soprano-download-ftp  " ">
  <!ENTITY soprano-md5sum        "91413e5783efeee0beb747ea4c5c9ef0">
  <!ENTITY soprano-size          "1.9 MB">
  <!ENTITY soprano-buildsize     "22 MB">
  <!ENTITY soprano-time          "0.6 SBU">
]>

<sect1 id="soprano" xreflabel="Soprano-&soprano-version;">
  <?dbhtml filename="soprano.html"?>

  <sect1info>
    <othername>$LastChangedBy: bdubbs $</othername>
    <date>$Date: 2014-06-08 17:14:19 -0400 (Sun, 08 Jun 2014) $</date>
  </sect1info>

  <title>Soprano-&soprano-version;</title>

  <indexterm zone="soprano">
    <primary sortas="a-Soprano">Soprano</primary>
  </indexterm>

  <sect2 role="package">
    <title>Introduction to Soprano</title>

    <para>
      <application>Soprano</application> (formally known as QRDF) is a
      library which provides a nice Qt interface to RDF storage solutions.
      It has a modular structure which allows to replace the actual RDF
      storage  implementation used.
    </para>

    &lfs75_checked;

    <bridgehead renderas="sect3">Package Information</bridgehead>
    <itemizedlist spacing="compact">
      <listitem>
        <para>
          Download (HTTP): <ulink url="&soprano-download-http;"/>
        </para>
      </listitem>
      <listitem>
        <para>
          Download (FTP): <ulink url="&soprano-download-ftp;"/>
        </para>
      </listitem>
      <listitem>
        <para>
          Download MD5 sum: &soprano-md5sum;
        </para>
      </listitem>
      <listitem>
        <para>
          Download size: &soprano-size;
        </para>
      </listitem>
      <listitem>
        <para>
          Estimated disk space required: &soprano-buildsize;
        </para>
      </listitem>
      <listitem>
        <para>
          Estimated build time: &soprano-time;
        </para>
      </listitem>
    </itemizedlist>

    <bridgehead renderas="sect3">Additional Downloads</bridgehead>
    <itemizedlist spacing='compact'>
      <listitem>
        <para>Required patch: <ulink
        url="&patch-root;/soprano-&soprano-version;-dbus-1.patch"/></para>
      </listitem>
    </itemizedlist>

    <bridgehead renderas="sect3">Soprano Dependencies</bridgehead>

    <bridgehead renderas="sect4">Required</bridgehead>
    <para role="required">
      <xref linkend="cmake"/>,
      <xref linkend="qt4"/>, and
      <xref linkend="redland"/>
    </para>

    <bridgehead renderas="sect4">Recommended</bridgehead>
    <para role="recommended">
      <xref linkend="clucene"/>,
      <xref linkend="dbus"/>,
      <xref linkend="libiodbc"/> (required for the Virtuoso backend. Additionally,
      <xref linkend="virtuoso"/> is required as a runtime dependency for this
      backend.)
    </para>

    <bridgehead renderas="sect4">Optional</bridgehead>
    <para role="optional">
      <xref linkend="doxygen"/> (to build the documentation) and
      <ulink url="http://www.openrdf.org/">Sesame2</ulink>
    </para>

    <para condition="html" role="usernotes">User Notes:
      <ulink url="&blfs-wiki;/soprano"/>
    </para>
  </sect2>

  <sect2 role="installation">
    <title>Installation of Soprano</title>

    <para>Install <application>soprano</application> by running the following
    commands:</para>

<screen><userinput>patch -Np1 -i ../soprano-&soprano-version;-dbus-1.patch &amp;&amp;

mkdir build &amp;&amp;
cd    build &amp;&amp;

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      .. &amp;&amp;
make</userinput></screen>

    <para>This package does not come with a working test suite.</para>

    <para>
      Now, as the <systemitem class="username">root</systemitem> user:
    </para>

<screen role="root"><userinput>make install</userinput></screen>

</sect2>
  <sect2 role="commands">
    <title>Command Explanations</title>

    <para>
      <parameter>-DCMAKE_BUILD_TYPE=Release</parameter>: This switch is used
      to apply higher level of the compiler optimizations.
    </para>

    <para>
      <option>-DSOPRANO_DISABLE_CLUCENE_INDEX=ON</option>: This switch disables
      compilation of Clucene-based full-text index.
    </para>

  </sect2>

  <sect2 role="configuration">
    <title>Configuration of Soprano</title>

    <para>
      Create a directory where <application>Soprano</application> places some
      runtime data as the <systemitem class="username">root</systemitem> user:
    </para>

<screen role="root"><userinput>install -m755 -d /srv/soprano</userinput></screen>

    <para>
      The <command>sopranod</command> accepts some parameters. To configure
      how the bootscript starts <command>sopranod</command>,
      create a configuration file again as the 
      <systemitem class="username">root</systemitem> user:
    </para>

<screen role="root"><userinput>cat &gt; /etc/sysconfig/soprano &lt;&lt;EOF
# Begin /etc/sysconfig/soprano

SOPRANO_STORAGE="/srv/soprano"
SOPRANO_BACKEND="virtuoso"                       # virtuoso, sesame2, redland
#SOPRANO_OPTIONS="$SOPRANO_OPTIONS --port 4711"  # Default port is 5000

# End /etc/sysconfig/soprano
EOF</userinput></screen>

<sect3 id="soprano-init">
      <title>Boot Script</title>

      <note>
        <para>
          It is not required to start the <application>Soprano</application>
          server at boottime for <application>KDE</application>.
          <application>KDE</application> will start
          <application>Soprano</application> as needed.
        </para>
      </note>

      <para>
        In order to get <application>Soprano</application> started
        automatically when the system is booted, install the
        <filename>/etc/rc.d/init.d/soprano</filename> init script included
        in the <xref linkend="bootscripts"/> package as the  
        <systemitem class="username">root</systemitem> user:
      </para>

      <indexterm zone="soprano soprano-init">
        <primary sortas="f-soprano">soprano</primary>
      </indexterm>

<screen role="root"><userinput>make install-soprano</userinput></screen>

    </sect3>

  </sect2>

  <sect2 role="content">
    <title>Contents</title>

    <segmentedlist>
      <segtitle>Installed Programs</segtitle>
      <segtitle>Installed Libraries</segtitle>
      <segtitle>Installed Directories</segtitle>

      <seglistitem>
        <seg>
          onto2vocabularyclass, sopranocmd, and sopranod
        </seg>
        <seg>
          libsopranoclient.so, libsopranoindex.so, libsopranoserver.so, and libsoprano.so
        </seg>
        <seg>
          /usr/include/soprano,
          /usr/include/Soprano,
          /usr/lib/soprano, and
          /usr/share/soprano
        </seg>
      </seglistitem>
    </segmentedlist>

  </sect2>

</sect1>
