<docbook><section><title>VirtLinkedDataDeploymentTutorialDOAP</title><para> </para>
<title> Linked Data Deployment DOAP Tutorial</title> Linked Data Deployment DOAP Tutorial
<para>The following tutorial demonstrates deployment of DOAP files as Linked Data.</para>
<bridgehead class="http://www.w3.org/1999/xhtml:h2"> Prerequisites</bridgehead>
<para>In order to be able to produce the steps below, you need to have at least the following packages installed: </para>
<itemizedlist mark="bullet" spacing="compact"><listitem>ODS — ods_framework_dav.vad </listitem>
<listitem>Briefcase — ods_briefcase.vad </listitem>
<listitem>Conductor — conductor_dav.vad</listitem>
</itemizedlist><bridgehead class="http://www.w3.org/1999/xhtml:h2">  Tutorial</bridgehead>
<orderedlist spacing="compact"><listitem>Go to ODS, i.e., <ulink url="http://host:port/ods">http://host:port/ods</ulink> and register user, for ex.
 john.
</listitem>
<listitem>Login as user john and go to ODS-&gt;Briefcase </listitem>
<listitem>Create new instance with checked box &quot;Visible to Public&quot;.
</listitem>
<listitem>Browse path DAV/home/john.
</listitem>
<listitem>As result there will be shown a new created by the system folder &quot;Public&quot;.
 Place in this folder your DOAP files.
 For ex.
 place the attached to this article <ulink url="VirtLinkedDataDeploymentTutorialDOAP/doap_iODBC.rdf">doap_iODBC.rdf</ulink>, <ulink url="VirtLinkedDataDeploymentTutorialDOAP/doap_odbc-OAT.rdf">doap_OAT.rdf</ulink>, <ulink url="VirtLinkedDataDeploymentTutorialDOAP/doap_odbc-bench.rdf">doap_odbc-bench.rdf</ulink>, <ulink url="VirtLinkedDataDeploymentTutorialDOAP/doap_odbc-rails.rdf">doap_odbc-rails.rdf</ulink>, <ulink url="VirtLinkedDataDeploymentTutorialDOAP/doap_ODS.rdf">doap_ODS.rdf</ulink>, <ulink url="VirtLinkedDataDeploymentTutorialDOAP/doap_VOS.rdf">doap_VOS.rdf</ulink> files.
</listitem>
<listitem>Upload to the DAV/home/john/Public folder also .ttl, .nt and .rdf files for ex.
 such as: <ulink url="VirtLinkedDataDeploymentTutorialDOAP/open_source_projects.nt">open <emphasis>source_projects.nt</emphasis></ulink>, <ulink url="VirtLinkedDataDeploymentTutorialDOAP/open_source_projects.ttl">open_source_projects.ttl</ulink>, <ulink url="VirtLinkedDataDeploymentTutorialDOAP/open_source_projects.rdf">open_source_projects.rdf</ulink> </listitem>
<listitem>Now go to path /DAV/home/john/rdf_sink and click the &quot;Upload&quot; button.
</listitem>
<listitem>In the shown form perform the following: <orderedlist spacing="compact"><listitem>Select for &quot;Destination&quot; the &quot;RDF Store&quot; check-box </listitem>
<listitem>Enter for &quot;RDF graph name&quot; your graph name, for ex.
 <ulink url="http://myhost.com/doap.">http://myhost.com/doap.</ulink> </listitem>
<listitem>For &quot;Source&quot;: &quot;File&quot; click the &quot;Browse&quot; button and upload either a DOAP file (if you do this, you need to perform the same upload steps for every DOAP file), or upload one rdf file, which contain information for all your DOAP files.
 In our tutorial such file is the <ulink url="VirtLinkedDataDeploymentTutorialDOAP/open_source_projects.rdf">open <emphasis>source_projects.rdf</emphasis></ulink> one.
</listitem>
</orderedlist></listitem>
<listitem>As result there will be created a graph with inserted triples the information retrieved from the uploaded rdf file(s).
<itemizedlist mark="bullet" spacing="compact"><listitem>For reference how the rdf_sink folder works, please visit our article <ulink url="../ODS/ODSRDFSinkFolder">ODS RDF Sink Folder Implementation</ulink> </listitem>
<listitem>Also you can take a look to our article <ulink url="VirtuosoRDFSinkFolder">Virtuoso RDF Sink Folder Implementation</ulink> </listitem>
<listitem>Full information you can find at <ulink url="VirtRDFInsert">RDF Insert Methods in Virtuoso</ulink> article.
</listitem>
</itemizedlist></listitem>
<listitem>Let&#39;s check the data in the graph &lt;<ulink url="http://myhost.com/doap">http://myhost.com/doap</ulink>&gt;: <orderedlist spacing="compact"><listitem>Go to the Virtuoso sparql endpoint, i.e.
 to <ulink url="http://host:port/sparql.">http://host:port/sparql.</ulink> </listitem>
<listitem>Enter for Default Graph URI your graph, for ex.http://myhost.com/doap </listitem>
<listitem>Enter for Query: <programlisting>SELECT *
WHERE {?s ?p ?o}
</programlisting></listitem>
<listitem>Click the &quot;Run Query&quot; button.
</listitem>
<listitem>As result should be shown the saved triples, for ex.: <programlisting>s                                            p                                                 o
http://myhost.com/DOAP/odbc-rails.rdf#this   http://www.w3.org/1999/02/22-rdf-syntax-ns#type   http://usefulinc.com/ns/doap#Project
http://myhost.com/DOAP/odbc-rails.rdf#this   http://www.w3.org/2000/01/rdf-schema#seeAlso      http://data.openlinksw.com/oplweb/product_family/uda#this
http://myhost.com/DOAP/odbc-rails.rdf#this   http://xmlns.com/foaf/0.1/maker                   http://myhost.com/dataspace/organization/john#this
http://myhost.com/DOAP/odbc-rails.rdf#this   http://usefulinc.com/ns/doap#created              2006-08-23
http://myhost.com/DOAP/odbc-rails.rdf#this   http://usefulinc.com/ns/doap#license              http://usefulinc.com/doap/licenses/mit
http://myhost.com/DOAP/odbc-rails.rdf#this   http://usefulinc.com/ns/doap#name                 ODBC Data Adapter for Ruby on Rails
http://myhost.com/DOAP/odbc-rails.rdf#this   http://usefulinc.com/ns/doap#homepage             http://rubyforge.org/projects/odbc-rails/
...
</programlisting></listitem>
</orderedlist></listitem>
<listitem>You can also execute from ISQL DESCRIBE over the Project rdf:about values, in order to check that all the data in the graph is correct: <programlisting>SQL&gt; SPARQL DESCRIBE &lt;http://myhost.com/DOAP/iodbc.rdf#this&gt; FROM &lt;http://myhost.com/doap&gt;;
callret-0
LONG VARCHAR
_______________________________________________________________________________

&lt;http://myhost.com/DOAP/iodbc.rdf#this&gt; &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt; &lt;http://usefulinc.com/ns/doap#Project&gt; ;
        &lt;http://www.w3.org/2000/01/rdf-schema#seeAlso&gt; &lt;http://data.openlinksw.com/oplweb/product_family/uda#this&gt; ;
        &lt;http://xmlns.com/foaf/0.1/maker&gt; &lt;http://myhost.com/dataspace/organization/john#this&gt; ;
        &lt;http://usefulinc.com/ns/doap#created&gt; &quot;1998-12-27&quot; ;
        &lt;http://usefulinc.com/ns/doap#license&gt; &lt;http://usefulinc.com/doap/licenses/lgpl&gt; ;
        &lt;http://usefulinc.com/ns/doap#name&gt; &quot;iODBC&quot; ;
        &lt;http://usefulinc.com/ns/doap#homepage&gt; &lt;http://www.iodbc.org/&gt; ;
        &lt;http://usefulinc.com/ns/doap#shortdesc&gt; &quot;iODBC is the acronym for Independent Open DataBase Connectivity, an Open-Source platform-independent implementation of both the ODBC and X/Open specifications.&quot; ;
        &lt;http://usefulinc.com/ns/doap#description&gt; &quot;The ability to develop applications independent of back-end database engine, operating system, and for the most part programming language. Although ODBC and iODBC are both C-based Application Programming Interfaces (APIs) there are numerous cross language hooks and bridges from languages such as: C++, Java, Perl, PHP, Python, Ruby, TCL, and others.&quot; ;
        &lt;http://usefulinc.com/ns/doap#mailing-list&gt; &lt;http://www.iodbc.org/index.php?page=maillists&gt; ;
        &lt;http://usefulinc.com/ns/doap#download-page&gt; &lt;http://www.iodbc.org/index.php?page=downloads/index&gt; ;
        &lt;http://usefulinc.com/ns/doap#programming-language&gt; &quot;C&quot; ;
        &lt;http://usefulinc.com/ns/doap#category&gt; &lt;http://projects.apache.org/category/database&gt; ;
        &lt;http://usefulinc.com/ns/doap#release&gt; _:b1000057228 ;
        &lt;http://usefulinc.com/ns/doap#maintainer&gt; _:b1000057229 .
</programlisting></listitem>
<listitem>Now go to Virtuoso Conductor, i.e.
 <ulink url="http://host:port/conductor">http://host:port/conductor</ulink> and login as dba.
</listitem>
<listitem>Go to <ulink url="WebDAV">WebDAV</ulink>&amp;HTTP-&gt;HTTP Hosts&amp;Directories </listitem>
<listitem>Define a new Host in the form shown at the bottom, i.e.: <orderedlist spacing="compact"><listitem>Enter the Interface address in the first field where is shown the value 0.0.0.0 </listitem>
<listitem>Enter the port in the second field </listitem>
<listitem>Enter the HTTP host name, for ex.
 myhost.com </listitem>
<listitem>Click the button &quot;Add&quot;.
<figure><graphic fileref="VirtLinkedDataDeploymentTutorialDOAP/url1.png" /></figure> </listitem>
</orderedlist></listitem>
<listitem>Click the blue folder icon infront of the created host.
</listitem>
<listitem>As result will be shown for &quot;Logical Path&quot;: /.
 Click its &quot;Edit&quot; link <figure><graphic fileref="VirtLinkedDataDeploymentTutorialDOAP/url2.png" /></figure> </listitem>
<listitem>In the shown form: <orderedlist spacing="compact"><listitem>Check the check-box &quot;Default directory&quot; </listitem>
<listitem>Check the check-box &quot;Physical path is a <ulink url="WebDAV">WebDAV</ulink> repository&quot;.
</listitem>
<listitem>Enter for field &quot;Physical path&quot; an existing location of your default host, for ex.
 /DAV/mysite/ <itemizedlist mark="bullet" spacing="compact"><listitem>if there is no such folder mysite: <orderedlist spacing="compact"><listitem>Go <ulink url="WebDAV">WebDAV</ulink> Content Management and create under dav folder with name &quot;mysite&quot;.
</listitem>
<listitem>Go to folder &quot;mysite&quot; </listitem>
<listitem>Upload a default index file which contain rel links to the DOAP files, for ex, the following index.htm file: <programlisting>&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=ISO-8859-1&quot; /&gt;
&lt;title&gt;My Site&lt;/title&gt; 

&lt;link rel=&quot;meta&quot; title=&quot;DOAP&quot; href=&quot;projects/doap_OAT.rdf&quot;
      type=&quot;application/rdf+xml&quot; /&gt;
&lt;link rel=&quot;meta&quot; title=&quot;DOAP&quot; href=&quot;projects/doap_ODS.rdf&quot;
      type=&quot;application/rdf+xml&quot; /&gt;
&lt;link rel=&quot;meta&quot; title=&quot;DOAP&quot; href=&quot;projects/doap_VOS.rdf&quot;
      type=&quot;application/rdf+xml&quot; /&gt;
&lt;link rel=&quot;meta&quot; title=&quot;DOAP&quot; href=&quot;projects/doap_iODBC.rdf&quot;
      type=&quot;application/rdf+xml&quot; /&gt;
&lt;link rel=&quot;meta&quot; title=&quot;DOAP&quot; href=&quot;projects/doap_odbc-bench.rdf&quot;
      type=&quot;application/rdf+xml&quot; /&gt;
&lt;link rel=&quot;meta&quot; title=&quot;DOAP&quot; href=&quot;projects/doap_odbc-rails.rdf&quot;
      type=&quot;application/rdf+xml&quot; /&gt;
&lt;link rel=&quot;meta&quot; title=&quot;DOAP&quot; href=&quot;projects/open_source_projects.rdf&quot;
      type=&quot;application/rdf+xml&quot; /&gt;
&lt;link rel=&quot;meta&quot; title=&quot;DOAP&quot; href=&quot;projects/open_source_projects.nt&quot;
      type=&quot;text/rdf+n3&quot; /&gt;
&lt;link rel=&quot;meta&quot; title=&quot;DOAP&quot; href=&quot;projects/open_source_projects.ttl&quot;
      type=&quot;text/rdf+ttl&quot; /&gt;
&lt;/head&gt;

&lt;body&gt;
Some text here...
&lt;/body&gt;
&lt;/html&gt;
</programlisting></listitem>
</orderedlist></listitem>
</itemizedlist></listitem>
<listitem>Enter for &quot;Default page&quot;: index.htm </listitem>
<listitem>Check the check-box &quot;Override exec permission flag in <ulink url="WebDAV">WebDAV</ulink>&quot; </listitem>
<listitem>Change &quot;VSP User&quot; to: dba </listitem>
<listitem>Click the button &quot;Save changes&quot;.
<figure><graphic fileref="VirtLinkedDataDeploymentTutorialDOAP/url3.png" /></figure> </listitem>
</orderedlist></listitem>
<listitem>Now let&#39;s create a new virtual directory: <orderedlist spacing="compact"><listitem>Click the &quot;New Directory&quot; link for the host with name &quot;myhost.com&quot;.
</listitem>
<listitem>In the shown form select type &quot;<ulink url="WebDAV">WebDAV</ulink> domain&quot; and click &quot;Next&quot;.
<figure><graphic fileref="VirtLinkedDataDeploymentTutorialDOAP/url4.png" /></figure> </listitem>
<listitem>In the shown form: <orderedlist spacing="compact"><listitem>Enter for &quot;Path&quot;: /DOAP </listitem>
<listitem>Enter for &quot;Physical path&quot; the location of the DOAP files, i.e.
 /DAV/home/john/Public/DOAP/ </listitem>
<listitem>Check the check-box &quot;Allow Directory Browsing&quot;.
</listitem>
<listitem>Click the &quot;Save Changes&quot; button.
<figure><graphic fileref="VirtLinkedDataDeploymentTutorialDOAP/url5.png" /></figure> </listitem>
</orderedlist></listitem>
</orderedlist></listitem>
<listitem>Let&#39;s add a URL rewrite rule to the created virtual directory: <orderedlist spacing="compact"><listitem>For the virtual directory &quot;/DOAP&quot; click the link &quot;URL-rewrite&quot;.
</listitem>
<listitem>In the shown form: <orderedlist spacing="compact"><listitem>Change &quot;Rule matching&quot; to: Last matching </listitem>
<listitem>Enter for &quot;Request Path pattern&quot;: <programlisting>/DOAP/([^#]*)
</programlisting></listitem>
<listitem>Enter for &quot;Accept Header Request pattern&quot;: <programlisting>(application/rdf.xml)|(text/rdf.n3)|(text/rdf.turtle)|(text/rdf.ttl)
</programlisting></listitem>
<listitem>Leave &quot;Destination format Conversion function&quot; and &quot;HTTP Response Headers&quot; empty.
</listitem>
<listitem>Change &quot;HTTP Response Code&quot; to: Internal Redirect.
<figure><graphic fileref="VirtLinkedDataDeploymentTutorialDOAP/url6.png" /></figure> </listitem>
<listitem>For &quot;Destination Path format&quot; click the &quot;SPARQL&quot; button.
</listitem>
<listitem>Enter in the &quot;SPARQL Query&quot; text-area the following: <programlisting>DESCRIBE &lt;http://myhost.com/DOAP/$s1#this&gt; FROM &lt;http://myhost.com/doap&gt;
</programlisting><figure><graphic fileref="VirtLinkedDataDeploymentTutorialDOAP/url7.png" /></figure> </listitem>
<listitem>Click the button &quot;Format&quot;.
<figure><graphic fileref="VirtLinkedDataDeploymentTutorialDOAP/url8.png" /></figure> </listitem>
<listitem>Click the button &quot;Add&quot;.
<figure><graphic fileref="VirtLinkedDataDeploymentTutorialDOAP/url9.png" /></figure> </listitem>
</orderedlist></listitem>
</orderedlist></listitem>
<listitem>Now let&#39;s check with the Virtuoso RDF Browser the data retrieved from the DOAP files: <orderedlist spacing="compact"><listitem>Go to <ulink url="http://demo.openlinksw.com/DAV/JS/rdfbrowser/index.html">http://demo.openlinksw.com/DAV/JS/rdfbrowser/index.html</ulink> </listitem>
<listitem>Checking the OAT DOAP file: <orderedlist spacing="compact"><listitem>Enter for Data Source URI: <ulink url="http://myhost.com/projects/doap_OAT.rdf">http://myhost.com/projects/doap_OAT.rdf</ulink> </listitem>
<listitem>Click the &quot;Query&quot; button&quot;.
</listitem>
<listitem>As result should be retrieved 23 triples.
 Click the &quot;Project&quot; OAT link in order to expand the rest of the triples.
</listitem>
</orderedlist></listitem>
<listitem>Checking the ODS DOAP file: <orderedlist spacing="compact"><listitem>Enter for Data Source URI: <ulink url="http://myhost.com/projects/doap_ODS.rdf">http://myhost.com/projects/doap_ODS.rdf</ulink> </listitem>
<listitem>Click the &quot;Query&quot; button&quot;.
</listitem>
<listitem>As result should be retrieved 31 triples.
 Click the &quot;Project&quot; &quot;<ulink url="OpenLink">OpenLink</ulink> Data Spaces (ODS - Open Source Edition)&quot; link in order to expand the rest of the triples.
</listitem>
</orderedlist></listitem>
<listitem>Check the rest of the DOAP files from <ulink url="http://myhost.com/projects/">http://myhost.com/projects/</ulink> </listitem>
<listitem>You can also retrieve information for all the files querying the open_source_projects.rdf for ex.</listitem>
</orderedlist></listitem>
</orderedlist><bridgehead class="http://www.w3.org/1999/xhtml:h2"> References</bridgehead>
<itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="../ODS/ODSRDFSinkFolder">ODS RDF Sink Folder Implementation</ulink> </listitem>
<listitem><ulink url="VirtuosoRDFSinkFolder">Virtuoso RDF Sink Folder Implementation</ulink> </listitem>
<listitem><ulink url="VirtRDFInsert">RDF Insert Methods in Virtuoso</ulink> </listitem>
<listitem><ulink url="VirtLinkedDataDeployment">Virtuoso Linked Data Deployment</ulink> </listitem>
<listitem><ulink url="VirtuosoUrlRewriting">Virtuoso URL Rewriting</ulink> </listitem>
<listitem><ulink url="VirtuosoContentNegotiation">Transparent Content Negotiation in HTTP server</ulink></listitem>
</itemizedlist><para><ulink url="CategoryVirtuoso">CategoryVirtuoso</ulink> <ulink url="CategoryDOAP">CategoryDOAP</ulink> </para>
</section></docbook>