<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>Object Commando &#187; Semantic Web</title>
	<atom:link href="http://objectcommando.com/blog/category/semantic-web/feed/" rel="self" type="application/rss+xml" />
	<link>http://objectcommando.com/blog</link>
	<description>languages, development and design</description>
	<lastBuildDate>Sat, 24 Dec 2011 05:22:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<!-- podcast_generator="podPress/8.8" - maintenance_release="8.8.4" -->
		<copyright>Copyright &#xA9; 2012 Object Commando </copyright>
		<managingEditor>ryan@objectcommando.com ()</managingEditor>
		<webMaster>ryan@objectcommando.com ()</webMaster>
		<category>posts</category>
		<itunes:keywords></itunes:keywords>
		<itunes:subtitle></itunes:subtitle>
		<itunes:summary>languages, development and design</itunes:summary>
		<itunes:author></itunes:author>
		<itunes:category text="Society &amp; Culture"/>
		<itunes:owner>
			<itunes:name></itunes:name>
			<itunes:email>ryan@objectcommando.com</itunes:email>
		</itunes:owner>
		<itunes:block>No</itunes:block>
		<itunes:explicit>no</itunes:explicit>
		<itunes:image href="http://www.objectcommando.com/blog/wp-content/plugins/podpress/images/powered_by_podpress_large.jpg" />
		<image>
			<url>http://www.objectcommando.com/blog/wp-content/plugins/podpress/images/powered_by_podpress.jpg</url>
			<title>Object Commando</title>
			<link>http://objectcommando.com/blog</link>
			<width>144</width>
			<height>144</height>
		</image>
		<item>
		<title>Strange Loop Talk &#8211; Triplestore Testing</title>
		<link>http://objectcommando.com/blog/2010/10/15/454/</link>
		<comments>http://objectcommando.com/blog/2010/10/15/454/#comments</comments>
		<pubDate>Fri, 15 Oct 2010 13:56:18 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[Semantic Web]]></category>
		<category><![CDATA[Revelytix]]></category>

		<guid isPermaLink="false">http://www.objectcommando.com/blog/?p=454</guid>
		<description><![CDATA[I gave a talk yesterday at Strange Loop giving a high level of what I've been working on for the last 6 months. The abstract of the talk was: Determining what RDF repository to use for a project can be a daunting task. With so many repository choices, benchmarks and usage scenarios, where do you [...]]]></description>
			<content:encoded><![CDATA[<p>I gave a talk yesterday at <a href="http://strangeloop2010.com/">Strange Loop</a> giving a high level  of what I've been working on for the last 6 months. The abstract of the talk was:</p>
<blockquote><p>
  Determining what RDF repository to use for a project can be a<br />
  daunting task. With so many repository choices, benchmarks and usage<br />
  scenarios, where do you start? This talk discusses how Revelytix<br />
  answered that question. The talk will cover the test framework<br />
  written by Revelytix in Clojure, including a language for defining<br />
  tests, a harness for executing the tests and using CouchDB to store<br />
  the results. Example Clojure code will be included along with a<br />
  discussion around the available RDF benchmarks. The talk will also<br />
  discuss the test harness using EC2 instances for cheap performance<br />
  testing and how we interpreted those results using Incanter.
</p></blockquote>
<p>It was a short talk, so I went through the material pretty fast, but  the slides can be found <a href="http://www.objectcommando.com/blog/wp-content/uploads/2010/10/TriplestoreTestingInTheCloud.pdf">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://objectcommando.com/blog/2010/10/15/454/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing Parliament on Ubuntu</title>
		<link>http://objectcommando.com/blog/2010/04/25/installing-parliament-on-ubuntu/</link>
		<comments>http://objectcommando.com/blog/2010/04/25/installing-parliament-on-ubuntu/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 02:00:47 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[Semantic Web]]></category>
		<category><![CDATA[Parliament]]></category>
		<category><![CDATA[Revelytix]]></category>
		<category><![CDATA[triple store]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.objectcommando.com/blog/?p=279</guid>
		<description><![CDATA[What is Parliament? Parliament is an open source triple store that is an improved version of DAMLDB. There is some good information on using the triple in the User's Guide. What's interesting about Parliament is how it stores the triples. Relational databases are a more common implementation of an RDF store, but Parliament goes a [...]]]></description>
			<content:encoded><![CDATA[<h3>What is Parliament?</h3>
<p><a href="http://parliament.semwebcentral.org">Parliament</a> is an open source triple store that is an improved version of <a href="http://www.daml.org/2001/09/damldb/">DAMLDB</a>.  There is some good information on using the triple in the <a href="http://parliament.semwebcentral.org/ParliamentUserGuide.pdf">User's Guide</a>.  What's interesting about Parliament is how it stores the triples.  Relational databases are a more common implementation of an RDF store, but Parliament goes a different way.  Parliament takes linked list style of approach  It uses BerkeleyDB for storing the URI values and then stores the triple of references in a linked list.  For more information on their approach, there's a great paper on it than can be found <a href="http://parliament.semwebcentral.org/ISWC2009ParliamentPaper.pdf">here</a>.</p>
<h3>Building Parliament for Ubuntu</h3>
<p>Parliament has binaries on it's website for Windows and Mac, but none for Ubuntu (or any other Linux distro).  Parliament is written in C++ and Java, so make sure you have the g++ package and the JDK installed.  You'll also need to make sure you have a Subversion client installed to get the source and Ant installed to build the Java code.  Below are the steps I went through to get Parliament to run on Linux:</p>
<ol>
<li>Build Boost Jam</li>
<ul>
<li>Download and unzip <a href="http://sourceforge.net/projects/boost/files/boost-jam/3.1.17/">Boost Jam</a></li>
<li>Run build.sh in the boost-jam directory</li>
<li>Put jam executable in your PATH</li>
</ul>
<li>Build the Boost C++ Libraries</li>
<ul>
<li> Download and unzip <a href="http://sourceforge.net/projects/boost/files/boost/1.42.0/">Boost</a></li>
<li>cd into the boost directory and build boost with the following command (modify accordingly if your not on a 64 bit system)
<pre>
bjam -q --build-dir=linux/build --stagedir=linux/stage
--layout=versioned --with-test architecture=combined address-model=64
variant=debug,release threading=multi link=shared runtime-link=shared
stage
</pre>
</li>
</ul>
<li>Build and Install BerkleyDB</li>
<ul>
<li>Download and unzip [http://www.oracle.com/technology/software/products/berkeley-db/htdocs/popup/db/4.7.25/db-targz.html BerkleyDB] 4.7.x</li>
<li>cd into <berkeley_install_dir>/build/unix and type ../dist/configure</li>
<li>run make</li>
<li> run sudo make install</li>
</ul>
<li>Create the following environment variables (if you don't already have them</li>
<ul>
<li>JAVA_HOME=/usr/lib/jvm/java-6-sun</li>
<li>BOOST_ROOT=/path/to/boost/boost_1_42_0</li>
<li>BDB_HOME=/usr/local/BerkeleyDB.4.7/</li>
<li>BOOST_BUILD_PATH=$BOOST_ROOT/tools/build/v2</li>
<li>BOOST_TEST_LOG_LEVEL=message</li>
</ul>
<li>Building Parliament</li>
<ul>
<li>Checkout the Parliament source: <em>svn checkout --username anonsvn https://projects.semwebcentral.org/svn/parliament/trunk</em></li>
<li>Copy the parliament_dir/doc/Linux/*.jam files to ~/</li>
<li>The Parliament build uses pushd and popd, which is not build into /bin/dash (which is where /bin/sh is symlinked in Ubuntu).  To fix this, I changed the /bin/sh symlink to /bin/bash
<li>Copy build.properties.template from the Parliament source directory to build.properties</li>
<li>Comment the various build architectures (for Mac and Windows) and make sure the below line in uncommented <em>nativeBuildParams=toolset=gcc-4.4 address-model=64 variant=release</em></li>
</ul>
<li>Source Changes</li>
<ul>
<li>When I tried to build Parliament the first time, I received an error that the method <em>remove</em> could not be found when compiling Parliament/KbCore/FileHandle.cpp.  It was due to the lines of code below:
<pre name="code" class="C++">
#if defined(PARLIAMENT_WINDOWS)
	if (!DeleteFile(filePath.c_str()))
#else
	if (remove(filePath.c_str()) == -1)
#endif
</pre>
<p>I added an include to the top of the file:</p>
<pre name="code" class="C++">
#if !defined(PARLIAMENT_WINDOWS)
#	include &lt;errno.h&gt;
#	include &lt;fcntl.h&gt;
#	include &lt;sys/stat.h&gt;
#      include &lt;stdio.h&gt; //&lt;-- Added this
</pre>
<p>to fix the problem.</p>
<li>The and build file includes the Mac environment variable for the C libraries, but not the Linux ones.  I changed the build.xml in the Parliament directory to include either the Linux or Mac environment variable depending on the build architecture:
<pre name="code" class="xml">
	&lt;condition property="libraryEnvVariable" value="DYLD_LIBRARY_PATH"&gt; &lt;!-- Line 290 --&gt;
			&lt;os family="mac"/&gt;
		&lt;/condition&gt;
		&lt;condition property="libraryEnvVariable" value="LD_LIBRARY_PATH"&gt;
			&lt;and&gt;
				&lt;os family="unix"/&gt;
				&lt;not&gt;&lt;os family="mac"/&gt;&lt;/not&gt;
			&lt;/and&gt;
		&lt;/condition&gt;
...
 &lt;env key="${libraryEnvVariable}" path="${artifactsDir}/${nativeArtifactsDir}"/&gt; &lt;!-- Line 302 --&gt;
</pre>
</ul>
<li>From the source tree root, run ant</li>
<li>Copy Parliament-v2.6.7.0-InsertPlatformHere.zip from the target directory to your install directory (can be anywhere)</li>
<li>In the install directory copy all of the files from gcc-4.4/release/64/ to the ParliamentKB directory</li>
<li>Run the StartParliament.sh script to start Parliament</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://objectcommando.com/blog/2010/04/25/installing-parliament-on-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.711 seconds -->

