<?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/"
	>

<channel>
	<title>2Paths &#187; semantic web</title>
	<atom:link href="http://www.2paths.com/tag/semantic-web/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.2paths.com</link>
	<description>Custom Software Technical Architecture, Design and Development in Vancouver, BC, Canada</description>
	<lastBuildDate>Mon, 27 Sep 2010 01:15:46 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Show me the data!  Seminar on Innovative Approaches to Turn Statistics into Knowledge 2009 (OECD, US Census Bureau, World Bank)</title>
		<link>http://www.2paths.com/2009/07/28/show-me-the-data-seminar-on-innovative-approaches-to-turn-statistics-into-knowledge-2009-oecd-us-census-bureau-world-bank/</link>
		<comments>http://www.2paths.com/2009/07/28/show-me-the-data-seminar-on-innovative-approaches-to-turn-statistics-into-knowledge-2009-oecd-us-census-bureau-world-bank/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 00:37:33 +0000</pubDate>
		<dc:creator>Aaron</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[aaron.gladders]]></category>
		<category><![CDATA[barcamp.vancouver]]></category>
		<category><![CDATA[bcv09]]></category>
		<category><![CDATA[bls]]></category>
		<category><![CDATA[linked.data]]></category>
		<category><![CDATA[michal.urbanski]]></category>
		<category><![CDATA[OECD]]></category>
		<category><![CDATA[semantic web]]></category>
		<category><![CDATA[us.bureau.of.labor.statistics]]></category>
		<category><![CDATA[us.census.bureau]]></category>
		<category><![CDATA[world.bank]]></category>

		<guid isPermaLink="false">http://www.2paths.com/?p=1162</guid>
		<description><![CDATA[(Update 20091005 &#8211; I gave the same talk at the US Bureau of Labor Statistics and Barcamp Vancouver 2009, in case you end up on this page from either source)
We recently presented at the Turning Statistics Into Knowledge conference, jointly organized by the US Census Bureau, the OECD and the World Bank, on July 15-16 [...]]]></description>
			<content:encoded><![CDATA[<p>(Update 20091005 &#8211; I gave the same talk at the US Bureau of Labor Statistics and Barcamp Vancouver 2009, in case you end up on this page from either source)</p>
<p>We recently presented at the <a href="http://www.oecd.org/progress/ict/statknowledge">Turning Statistics Into Knowledge</a> conference, jointly organized by the <a href="http://www.census.gov/">US Census Bureau</a>, the <a href="http://www.oecd.org/">OECD</a> and the <a href="http://www.worldbank.org/">World Bank</a>, on July 15-16 in DC at the Census Bureau.  Here is a <a href='http://www.2paths.com/wp-content/uploads/2009/07/tsik.zip'>pdf</a> of it including our speaking notes, or you can click through it below, sadly without notes (goto the slideshare site to see the notes).</p>
<div style="width:425px;text-align:left" id="__ss_1776637"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/2Paths/show-me-the-data-turning-statistics-into-knowledge-2009" title="Show me the Data!  Turning Statistics Into Knowledge 2009">Show me the Data!  Turning Statistics Into Knowledge 2009</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=20090715-turningstatisticsintoknowledgerevised-090727160953-phpapp01&#038;stripped_title=show-me-the-data-turning-statistics-into-knowledge-2009" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=20090715-turningstatisticsintoknowledgerevised-090727160953-phpapp01&#038;stripped_title=show-me-the-data-turning-statistics-into-knowledge-2009" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/2Paths">2Paths</a>.</div>
</div>
<p>I promised a number of people links to non-technical to technical primers, here we go:</p>
<p><strong>Non-technical</strong></p>
<ol>
<li>Very straight-forward overview, very good for sharing with non-technical people:<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/OGg8A2zfWKg&#038;hl=en&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/OGg8A2zfWKg&#038;hl=en&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></li>
<li>Very quick one-pager, &#8220;<a href="http://ajbadd.wordpress.com/2009/06/09/the-semantic-web-a-low-fat-no-nonsense-introduction/">The “Semantic Web”: a low-fat, no-nonsense introduction</a>&#8221; by <a href="http://twitter.com/ajubdeen">@ajubdeen</a></li>
<li><a href="http://www.sciam.com/article.cfm?id=the-semantic-web&#038;print=true">Original article</a> from <a href="http://www.w3.org/People/Berners-Lee/">Tim Berners-Lee</a> showing his vision.</li>
<li>CNN <a href="http://www.cnn.com/2008/TECH/12/17/db.semanticweb/index.html?eref=rss_tech">Making sense of the &#8217;semantic Web&#8217;</a></li>
<li><a href="http://www.ted.com/talks/tim_berners_lee_on_the_next_web.html">Tim Berners-Lee 2009 TED talk on Linked Data</a></li>
</ol>
<p><strong>Semi-technical</strong></p>
<ol>
<li>Largely non-technical, injects a few buzzwords, &#8220;<a href="http://www.slideshare.net/mediasemanticweb/quick-linked-data-introduction">Quick Linked Data Introduction</a>&#8221; by <a href="http://mhausenblas.blogr.com/stories/">Michael Hausenblas</a></li>
<li><a href="http://www.readwriteweb.com/archives/understanding_the_new_web_era_web_30_linked_data_s.php">Understanding the New Web Era: Web 3.0, Linked Data, Semantic Web</a> by <a href="http://www.readwriteweb.com/archives/author/richard-macmanus-1.php">Richard MacManus</a>, summarizing a multi-part overview by <a href="http://twitter.com/gregboutin">Greg Boutin</a></li>
</ol>
<p><strong>Technical</strong></p>
<ol>
<li>An <strong>excellent</strong> overview &#8220;<a href="http://www.slideshare.net/mediasemanticweb/linked-data-michael-hausenblas-2009-03-05">Linked Data Tutorial</a>&#8221; by <a href="http://mhausenblas.blogr.com/stories/">Michael Hausenblas</a></li>
<li><a href="http://www.slideshare.net/iandavis/30-minute-guide-to-rdf-and-linked-data">30 Minute Guide to RDF and Linked Data</a> by <a href="http://twitter.com/iand">Ian Davis</a> and <a href="http://twitter.com/tommyh">Tom Heath</a></li>
</ol>
<p>After that, you&#8217;re off to the races!</p>
<p>(but as I said, just send us an email if you have questions or wanted to talk about it some more)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.2paths.com/2009/07/28/show-me-the-data-seminar-on-innovative-approaches-to-turn-statistics-into-knowledge-2009-oecd-us-census-bureau-world-bank/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mulgara RDF Triple-Store</title>
		<link>http://www.2paths.com/2008/12/30/mulgara-rdf-store/</link>
		<comments>http://www.2paths.com/2008/12/30/mulgara-rdf-store/#comments</comments>
		<pubDate>Tue, 30 Dec 2008 20:45:29 +0000</pubDate>
		<dc:creator>Omar</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jena]]></category>
		<category><![CDATA[jrdf]]></category>
		<category><![CDATA[mulgara]]></category>
		<category><![CDATA[rdf store]]></category>
		<category><![CDATA[rmi]]></category>
		<category><![CDATA[semantic web]]></category>
		<category><![CDATA[triples]]></category>

		<guid isPermaLink="false">http://www.2paths.com/?p=437</guid>
		<description><![CDATA[Over the past 4 months I have intermittently been looking into the use of the Mulgara RDF triple store. Mulgara is an open-source RDF triple store that boasts to be able to handle up to 7 Billion nodes and was developed some big players in the semantic web space (Zepheira, Topaz and Fedora Commons). My [...]]]></description>
			<content:encoded><![CDATA[<p>Over the past 4 months I have intermittently been looking into the use of the Mulgara RDF triple store. Mulgara is an open-source RDF triple store that boasts to be able to handle up to 7 Billion nodes and was developed some big players in the semantic web space (Zepheira, Topaz and Fedora Commons). My intention was to see if it could be of use in future projects as an alternative to a traditional database.</p>
<h3>RDF</h3>
<p>For those who are unfamilar with RDF a short description would be:</p>
<blockquote><p>The Resource Description Framework (RDF) is a language for     representing information about resources in the World Wide Web.     This Primer is designed to provide the reader with the basic     knowledge required to effectively use RDF. It introduces the basic concepts of RDF and describes its XML syntax. It describes how to define RDF vocabularies using the RDF Vocabulary Description     Language, and gives an overview of some deployed RDF applications.     It also describes the content and purpose of other RDF specification documents.</p></blockquote>
<p>For more information about RDF read the <a title="RDF Primer" href="http://www.w3.org/TR/rdf-primer/">following primer</a> hosted on the W3C&#8217;s website.</p>
<h3>RDF Stores</h3>
<p>An RDF store allows for flexible definition of content which is a shortcoming of traditional relational database. An example of this would be the need to add a field within a database. In a relational database one would have to define a new column in the database table which is not usually achievable from a program given that most systems are not foolish to allow database changes from code. However, in an RDF data-store things are stored as nodes and relationships between nodes. Therefore to add a new field simply requires that a new node be created and an establishment of a relationship between the existing nodes and the new node. This flexibility is extremely handy in cases where the data being captured by a system changes often. Add to this the creation of an RDF schema or an ontology and one has the ability to semantically query the data you have within your data-store and are able to make use of meta-data in a way that can not be done within a relational database.</p>
<p>I was thinking that this type of flexibility would be of great benefit for a project we hope to be working on in the new year. Given Zephira&#8217;s backing of Mulgara I thought I would investigate whether it could be ready for prime time and the level of complexity required in using it.</p>
<h3>Mulgara</h3>
<p>Mulgara was initiated in 2006 and was a fork of the <a href="http://sourceforge.net/projects/kowari/">Kowari project</a> which died or became unsupported as of 2005. Their claim is that Mulgara has the following featured:</p>
<ul>
<li>Native RDF support</li>
<li>Multiple databases (models) per server</li>
<li>Simple SQL-like query language</li>
<li>Small footprint</li>
<li>Full text search functionality</li>
<li>Datatype support</li>
<li>Supports and tracks W3C Specifications and guidelines</li>
<li>Large storage capacity</li>
<li>Optimized for metadata storage and retrieval</li>
<li>Multi-processor support</li>
<li>Independently tuned for both 64-bit and 32-bit architectures</li>
<li>Low memory requirements</li>
<li>On-disk joins</li>
<li>Streamed query results</li>
</ul>
<p>The remainder of this post will cover my experiences with using Mulgara.</p>
<h3>Rough Start</h3>
<p>Unfortunately things didn&#8217;t start off well.  Though the downloading and installation of the Mulgara server was painless there were a number of issues that I came across that would deter many from considering the use of it in a production level system:</p>
<h4>Connectors are not included in the default download</h4>
<p>Currently there are only a few means of accessing Mulgara to perform CRUD operations:</p>
<ul>
<li>A <a title="JRDF" href="http://jrdf.sourceforge.net/">JRDF</a> connector</li>
<li>A <a title="Jena Semantic Framework" href="http://jena.sourceforge.net/">Jena</a> connector</li>
<li>Straight RMI (remote method invocation)</li>
</ul>
<p>In the default download from the Mulgara website, the JRDF and Jena connectors are not provided. After a lot of struggling, I resorted to downloading the source and building the server from scratch to ensure that the connectors were included within the jar files.</p>
<p>After getting to this stage I tried to follow the tutorials to try and connect and interact with the server. It seems that the documentation on the mulgara website is stale and that they have not been able to keep their tutorials up to date because the code provided in them does not work unless one uses an in-memory database which is not specified in the tutorial. I posted questions to the various user group email lists and receive no responses.</p>
<p>Once I figured those aspects out things went more smoothly though there is a significant amount of boiler plate code that needs to be created to allow for simple CRUD operations.</p>
<h3>Creating a connection to the server</h3>
<p>As noted above, one can not simply use JDBC to connect to the server but have an option of using the majority of the popular RDF creation frameworks such as JRDF, Jena or Sesame. I initially tired to use Jena but it seems that support for the <a title="JenaMulgara connector" href="http://jena.hpl.hp.com/wiki/JenaMulgara">JenaMulgara connector</a> died quite a while ago and the connector does not work for the latest version of Mulgara. Therefore, I moved on to the JRDF connector given that the Sesame connector is quite immature.</p>
<pre class="brush: java">
// Create the URI of the server
java.net.URI serverURI = new java.net.URI(&quot;rmi&quot;, hostName, &quot;/&quot; + serverName, null);</pre>
<p>// Create a new session factory, ensure that it&#8217;s local<br />
SessionFactory sessionFactory = SessionFactoryFinder.newSessionFactory(serverURI, false);</p>
<p>// Get a local JRDF Session (local)<br />
Object o = sessionFactory.newJRDFSession();<br />
org.mulgara.server.JRDFSession session = (JRDFSession) sessionFactory.newJRDFSession();<br />
[/sourcecode]</p>
<h3>Create a model/database</h3>
<p>The above give you a connection to the Mulgara server. To create a model/database requires the following section of code:</p>
<pre class="brush: java">
java.net.URI modelURI = new URI(&quot;rmi&quot;, hostName, &quot;/&quot; + serverName, graphName);
java.net.URI modelType = new URI(&quot;http://mulgara.org/mulgara#Model&quot;);
session.createModel(modelURI, modelType);
org.jrdf.graph.Graph graph = ClientGraph(createGraphProxy(modelURI, session));
</pre>
<h3>Create nodes/relationships</h3>
<p>In order to create RDF triples one needs to specify a subject, predicate and an object. There are three types of Java objects that can be used in this in building these relationships:</p>
<ol>
<li>BlankNode &#8211; a blank node that is a node used to group other relationships. A BlankNode can be used as either a subject or an object</li>
<li>Literal &#8211; a literal value of some sort (String, number, etc.) A literal can only be used as an object and not a subject or predicate</li>
<li>URIReference &#8211; a URIReference is used to define the predicate or relationship between the subject and the object.</li>
</ol>
<pre class="brush: java">
org.jrdf.graph.GraphElementFactory elementFactory = graph.getElementFactory();
org.jrdf.graph.BlankNode blanknode = elementFactory.createResource();
org.jrdf.graph.URIReference predicate = elementFactory.createResource(new URI());
org.jrdf.graph.Literal literal = elementFactory.createLiteral(value);
</pre>
<p>Lastly to create and insert a triple one simply needs to do the following:</p>
<pre class="brush: java">
org.jrdf.graph.Triple triple = elementFactory.createTriple(subject, predicate, object); // Create the triple object
graph.add(triple); // Store the triple in Mulgara server
</pre>
<p>For sample code on how to do everything from connect to query and delete see the end of this post.</p>
<h3>Performance</h3>
<p>I wrote a simple application that took the contents of a relational database and converted it into RDF and stored it in Mulgara. The database I was using was big but not huge, roughly &#8230;. All these numbers are based on running the application on a MacBook Pro with a 2Gh Core Duo processor and 2GB of RAM. I initially wrote the app to do inserts one at a time which was obviously inefficient but I wanted to test out the speed of an insert. Each insert of a single triple took roughly 0.17 seconds. In round 2 I started doing inserts in batch. In batch mode it seems that inserts took roughly 0.08 seconds per insert of a node. Both speeds are not particularly fast but like I said, this is running off my laptop so one can&#8217;t expect superb performance.</p>
<h3>Conclusion</h3>
<p>Given that RDF stores are competing with regular relational databases I would have hoped that there was an easier means of connecting to the database and that RM wasn&#8217;t being used under the hood. Given the push for RESTful interfaces within the semantic world, I was surprised to see that the Mulgara server does not have a RESTful interface which would relieve the need for RMI completely. Once I got over my dependence on the abhorrent tutorials and documentation things went fairly well though I have performance concerns when dealing with large volumes of data. The main area of concern for me is the requirement of RMI which has been well documented as being not very performant. It pains me to have to use RMI when running both the server and the application on the same server. What is nice is that the server is completely transactional and any failure results in a roll-back. The last concern I have is the fact that the user community/group around Mulgara does not seem to be very active or dedicated to ensuring that the product is supported to the extent that one can rely on getting up to date documentation and a steady stream of bug fixes.</p>
<h3>Sample Code</h3>
<p>The following code sample shows how to perform inserts, updates, deletes and selection.</p>
<pre class="brush: java">
package org.twopaths.jrdf;

import java.net.InetAddress;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.UnknownHostException;

import org.jrdf.graph.BlankNode;
import org.jrdf.graph.Graph;
import org.jrdf.graph.GraphElementFactory;
import org.jrdf.graph.GraphElementFactoryException;
import org.jrdf.graph.GraphException;
import org.jrdf.graph.Literal;
import org.jrdf.graph.Triple;
import org.jrdf.graph.URIReference;
import org.jrdf.util.ClosableIterator;
import org.mulgara.client.jrdf.AbstractGraphFactory;
import org.mulgara.query.QueryException;
import org.mulgara.server.JRDFSession;
import org.mulgara.server.NonRemoteSessionException;
import org.mulgara.server.SessionFactory;
import org.mulgara.server.driver.SessionFactoryFinder;
import org.mulgara.server.driver.SessionFactoryFinderException;

public class Sandbox {
	public static void main(String[] args) {
                Graph graph = null;
		try {
			// Create the host name
			String hostname = InetAddress.getLocalHost().getCanonicalHostName();

			// Create the URI of the server
			URI serverURI = new URI(&quot;rmi&quot;, hostname, &quot;/&quot; + &quot;server1&quot;, null);

			// Create a new session factory, ensure that it&#039;s local
			SessionFactory sessionFactory = SessionFactoryFinder.newSessionFactory(serverURI, false);

			// Get a local JRDF Session (local)
			Object o = sessionFactory.newJRDFSession();
			System.out.println(o.getClass().getName());
//			LocalJRDFSession session = (LocalJRDFSession) sessionFactory.newJRDFSession();
			JRDFSession session = (JRDFSession) sessionFactory.newJRDFSession();

			//create a new Model
			URI modelURI = new URI(&quot;rmi&quot;, hostname, &quot;/&quot; + &quot;server1&quot;, &quot;exampleGraph&quot;);
			URI modelType = new URI(&quot;http://mulgara.org/mulgara#Model&quot;);
			session.createModel(modelURI, modelType);

			//create a JRDF Graph for the model
//			graph = new JRDFGraph(session, modelURI);
			graph = AbstractGraphFactory.createGraph(serverURI, modelURI);

			//get the Factory
			GraphElementFactory elementFactory = graph.getElementFactory();

			//create resources
			URIReference person = elementFactory.createResource(new URI(&quot;http://example.org/staffid#85740&quot;));
			BlankNode address = elementFactory.createResource();

			//create properties
			URIReference hasAddress = elementFactory.createResource(new URI(&quot;http://example.org/terms#address&quot;));
			URIReference hasStreet = elementFactory.createResource(new URI(&quot;http://example.org/terms#street&quot;));
			URIReference hasCity = elementFactory.createResource(new URI(&quot;http://example.org/terms#city&quot;));
			URIReference hasState = elementFactory.createResource(new URI(&quot;http://example.org/terms#state&quot;));
			URIReference hasPostCode = elementFactory.createResource(new URI(&quot;http://example.org/terms#postalCode&quot;));

			//create values
			Literal street = elementFactory.createLiteral(&quot;1501 Grant Avenue&quot;);
			Literal city = elementFactory.createLiteral(&quot;Bedford&quot;);
			Literal state = elementFactory.createLiteral(&quot;Massachusetts&quot;);
			Literal postCode = elementFactory.createLiteral(&quot;01730&quot;);

			//create statements
			Triple addressStatement = elementFactory.createTriple(person, hasAddress, address);
			Triple streetStatement = elementFactory.createTriple(address, hasStreet, street);
			Triple cityStatement = elementFactory.createTriple(address, hasCity, city);
			Triple stateStatement = elementFactory.createTriple(address, hasState, state);
			Triple postCodeStatement = elementFactory.createTriple(address, hasPostCode, postCode);

			// Add triples to graph
			graph.add(addressStatement);
			graph.add(streetStatement);
			graph.add(cityStatement);
			graph.add(stateStatement);
			graph.add(postCodeStatement);

			//get all Triples
			Triple findAll = elementFactory.createTriple(null, null, null);
			ClosableIterator allTriples = graph.find(findAll);
			while (allTriples.hasNext()) {
				System.out.println(allTriples.next().toString());
			}

			//search for address (as a subject)
			Triple findAddress = elementFactory.createTriple(address, null, null);
			ClosableIterator addressSubject = graph.find(findAddress);
			while (addressSubject.hasNext()) {
				System.out.println(addressSubject.next().toString());
			}

			//search for the city: &quot;Bedford&quot;
			Triple findCity = elementFactory.createTriple(null, null, city);
			ClosableIterator bedfordCity = graph.find(findCity);
			while (bedfordCity.hasNext()) {
				System.out.println(bedfordCity.next().toString());
			}

			//search for any subject that has an address
			Triple findAddresses = elementFactory.createTriple(null, hasAddress, null);
			ClosableIterator addresses = graph.find(findAddresses);
			while (addresses.hasNext()) {
				System.out.println(addresses.next().toString());
			}

		} catch (UnknownHostException uhe) {
			uhe.printStackTrace();
		} catch (URISyntaxException urise) {
			urise.printStackTrace();
		} catch (SessionFactoryFinderException sffe) {
			sffe.printStackTrace();
		} catch (NonRemoteSessionException nrse) {
			nrse.printStackTrace();
		} catch (QueryException qe) {
			qe.printStackTrace();
		} catch (GraphException ge) {
			ge.printStackTrace();
		} catch (GraphElementFactoryException gefe) {
			gefe.printStackTrace();
		} finally {
                        try {
                            graph.close();
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                }
		System.out.println(&quot;DONE&quot;);
	}
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.2paths.com/2008/12/30/mulgara-rdf-store/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>You know you&#8217;re about to make it big when&#8230;</title>
		<link>http://www.2paths.com/2008/06/19/you-know-youre-about-to-make-it-big-when/</link>
		<comments>http://www.2paths.com/2008/06/19/you-know-youre-about-to-make-it-big-when/#comments</comments>
		<pubDate>Thu, 19 Jun 2008 19:04:16 +0000</pubDate>
		<dc:creator>Omar</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[funny]]></category>
		<category><![CDATA[semantic web]]></category>

		<guid isPermaLink="false">http://blog.2paths.com/you-know-youre-about-to-make-it-big-when.html</guid>
		<description><![CDATA[the defense industry uses your technology. The funny thing about the semantic web conference was the vendor showcases. I went to a few, where a given semantic technology toolkit vendor would showcase how one can make use of their tool or tools. The thing that struck me was that each and every one that I [...]]]></description>
			<content:encoded><![CDATA[<p>the defense industry uses your technology. The funny thing about the semantic web conference was the vendor showcases. I went to a few, where a given semantic technology toolkit vendor would showcase how one can make use of their tool or tools. The thing that struck me was that each and every one that I attended focused on how they were helping the US department of defense catch terrorists or extract evidence of links to terrorism.</p>
<p>There was one vendor showcase in particular that I got a great laugh out of. I was sitting in the very front row, right in front of the presenter who was about 4 feet in front of me. Before I go on I should give you some information about myself, I am a Muslim who looks very Muslim&#8230;ie the full beard, middle eastern looking, etc&#8230; I, like all the other attendees has a name tag on with my full name written in large print which is visible from several feel away. So he starts his talk about the tool that they are selling. Mid way through the presentation he starts a demonstration on how the tool was used to prove that two people who claimed to not know each other did in fact know each other and that they were smuggling funds between them.</p>
<p>As he went through this presentation, he paused, saw me and my name and became really uncomfortable. You see, the names of the people he was talking about had the exact same last name as me and I don&#8217;t think he really saw me sitting there until that point. At that point he tried really really hard to come up with another example to demonstrate the tool but for the life of him he could not. I had to fight the urge not to stir the pot to see how much more uncomfortable I could make him feel.</p>
<p>Regardless, you know this technology is going to take off when the US department of defense is interested in it. It seems that they are dumping large sums of money into it&#8217;s development and use.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.2paths.com/2008/06/19/you-know-youre-about-to-make-it-big-when/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Semantic Web Conference 2008</title>
		<link>http://www.2paths.com/2008/06/19/semantic-web-conference-2008/</link>
		<comments>http://www.2paths.com/2008/06/19/semantic-web-conference-2008/#comments</comments>
		<pubDate>Thu, 19 Jun 2008 18:48:34 +0000</pubDate>
		<dc:creator>Omar</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[semantic web]]></category>

		<guid isPermaLink="false">http://blog.2paths.com/semantic-web-conference-2008.html</guid>
		<description><![CDATA[I had the chance to attend the semantic web conference that what held in San Jose May 18th to 22nd. Before I go any further, there may be many of you who are scratching your head thinking &#8220;What is the semantic web?&#8221; Dictionary.com defines semantics as the following:


Linguistics.

the study of meaning.
the study of linguistic development [...]]]></description>
			<content:encoded><![CDATA[<p>I had the chance to attend the semantic web conference that what held in San Jose May 18th to 22nd. Before I go any further, there may be many of you who are scratching your head thinking &#8220;What is the semantic web?&#8221; Dictionary.com defines semantics as the following:</p>
<ol>
<li>
Linguistics.</p>
<ul>
<li>the study of meaning.</li>
<li>the study of linguistic development by classifying and examining changes in meaning and form.</li>
</ul>
</li>
<li>Also called significs. the branch of semiotics dealing with the relations between signs and what they denote.</li>
<li>the meaning, or an interpretation of the meaning, of a word, sign, sentence, etc.: Let&#8217;s not argue about semantics.</li>
</ol>
<p>What we are talking about here is devising a means for a computer to be able to understand the meaning of language. Once it can understand language. When you enter a question into Google such as &#8220;What is the best way to exercise your lower abs?&#8221; google goes through and analyzes the phrase/sentence you entered into the search box and breaks it up into keywords. It then uses these keywords to search their repository for the information within a web page that <em>best matches</em> the <em>keywords</em> you entered. Therefore, in the example I provided above, it will go through and extract words like &#8216;best&#8217;, &#8216;exercises&#8217;, &#8216;lower&#8217; and &#8216;abs&#8217; and use these keywords to search their repository and return matches that have a <em>high likelihood</em> of containing the information you&#8217;re looking for. Google has little to no idea what the sentance &#8220;What is the best way to exercise your lower abs?&#8221; means.</p>
<p>What semantics hopes to archive is to extract information from the internet such that a computer or set of computers could perform a search understanding exactly what &#8220;What is the best way to exercise your lower abs?&#8221; means and would therefore return search results matching exactly what you are looking for. In the above example it&#8217;s fairly clear what I&#8217;m looking for but what if I entered something like &#8220;paris hilton&#8221;? What exactly am I looking for? Am I interested in the Hilton hotel located in Paris, France or am I interested in information about the trash TV celebrity? By now I&#8217;m sure you get the idea.</p>
<p>Needless to say, getting a computer to understand meaning isn&#8217;t an easy task and therefore the community that is hoping to make semantics a reality holds two conferences a year on the topic to gather like minds and to showcase how the technology has progressed along with any real world uses of the technology.  The conference has been held for the past four years and has grown steadily each and every year. This year there were over 1100 attendees which is remarkable given the downturn in the US economy.  The remainder of this post will outline the technologies of interest and some real implementations of the technology.</p>
<h3>Technologies and Specifications</h3>
<p><a href="http://www.w3.org/2004/01/rdxh/spec"><b>Gleaning Resource Descriptions from Dialects of Languages (GRDDL)</b></a><br />
GRDDL is a W3C specification to allow people to make their content semantically accessible. For example, one can have a website containing all sorts of data within it that may or may not be structured. The GRDDL specification allows one to embed a link to an XSLT transform that will take the XHTML of the webpage as an input and output a set of RDF triples representing the content of your page.</p>
<p><a href="http://www.openrdf.org"><b>Sesame</b></a><br />
Sesame is an open source RDF framework with support for RDF Schema inferencing and querying. It can be deployed on top of a variety of storage systems (relational databases, in-memory, file systems, keyword indexers, etc.), and offers  tools to developers to leverage the power of RDF and RDF Schema.</p>
<p><a href="http://www.openrdf.org"><b>ELMO</b></a><br />
Elmo is a toolkit for developing Semantic Web applications using Sesame. Elmo wraps Sesame, providing a dedicated API for a number of well known web ontologies including Dublin Core, RSS and FOAF. The dedicated API makes it easier to work with RDF data for the supported ontologies. Elmo also offers a set of tools related to the supported ontologies, including an RDF crawler, a FOAF smusher and a FOAF validator.</p>
<p><a href="http://jena.sourceforge.net/"><b>JENA</b></a><br />
JENA is a Semantic web framework that can be used to access RDF, RDFS, OWL and SPARQL and a rule based inference engine. Included within the framework is an RDF API, an OWL API and a SPARQL query engine.</p>
<p><a href="http://www.topazproject.org"><b>Topaz</b></a><br />
Topaz is a RDF persistence and querying service framework.</p>
<p><a href="http://www.1060.org/"><b>NetKernel</b></a><br />
1060 NetKernel is a resource oriented microkernel and RESTful application server created from the convergence and unification of the powerful fundamental concepts found in the World Wide Web and Unix. NetKernel is being used by a large number of major semantic applications.</p>
<p><a href="http://www.purl.org"><b>Persistant URLs</b></a><br />
A PURL is a Persistent Uniform Resource Locator. Functionally, a PURL is a URL. However, instead of pointing directly to the location of an Internet resource, a PURL points to an intermediate resolution service. The PURL resolution service associates the PURL with the actual URL and returns that URL to the client. The client can then complete the URL transaction in the normal fashion. In Web parlance, this is a standard HTTP redirect.</p>
<h3>Implementations</h3>
<p>The following are a list of applications that have been created using semantic technologies in part or as a whole. Examples of implementations such as these provide direction as to where this technology can be used to solve real world problems.</p>
<p><a href="http://www.powerset.com"><b>Powerset</b></a><br />
Powerset is a website that has sucked in the content from <a href="http://www.wikipedia.org">Wikipedia</a> and <a href="http://www.freebase.com">Freebase</a>. They have taken this content and have  translated it into a very very very large RDF store using NetKernel (or so I believe). Therefore, using their interface, one can search the data using semantic technology. If one is doing research on a given topic and has confidence in the data contained within Wikipedia, then using powerset to do your research would be of great use. Search result and content related to a particular item are easily retrivable using powerset.  For example, if I were researching the pouring of concrete and were to enter &#8220;How do you pour concrete&#8221; you would see a result of all content that matches the information you are looking for understanding as best they can the meaning of what you are asking. Upon selecting the first result you would not only be given information about concrete and a slew of related content.</p>
<p><a href="http://www.twine.com"><b>Twine</b></a><br />
Twine is a social network focused on sharing your interests. In other words, creating a grouping of people interested in the same stuff. It is currently in private beta but hopes to go into public beta sometime in the late summer/early fall. The concept revolves around the idea that if you are interested in a certain topic, twine can offer information/articles/etc that fit within that area of interest. This is where the use of semantic technology fits in. They use semantic technology to search for and filter content related to what you are discussing and so on within your group. I was extremely disappointed with the fact that they made no attempt to showcase their technology by providing a walk-through of their application, but rather spent the entire time talking high-level about the application and showing a stupid video created about the website by some pre-teen. A real waste of an opportunity.</p>
<p><a href="http://www.garlik.com"><b>Garlik</b></a><br />
Garlik is the darling of the semantic world. They are an example of where semantic technology can be used to solve real world problems. In this case, the use semantic technology to help protect your identity online. Currently they offer their services within the UK. Information is sketchy as to how exactly they do this using semantic technologies. I was really disappointed that they sent a non-techy to speak about their product but that seemed to be the running theme of the these types of companies within the conference, keep your secrets guarded regardless of whether it would further the proliferation of the technology.</p>
<p><a href="http://remix.zepheira.com/"><b>Zepheira Remix</b></a><br />
Now this tool is something that follows along the lines of Garlik in that it provides a solution to a real world problem. In this case they are focusing on sharing data. They have created a tool that significantly reduces the complexity of using semantics to share data. Remix allows you to import two files and merge, query, generate content between them with no need to understand anything about semantics or even the underlying technology. Remix features an AJAX front end that allows users to massage the data as they see fit and extract a meaningful summary of the data in an HTML format. Zepheira&#8217;s goal is to advocate for the use of semantic technologies while encouraging others to attempt to reduce the barriers of entry to harnessing the power of the technology. ie lets make it easier for people to use semantics through the use of frameworks and applications.</p>
<p>All in all, the conference was great. I have to admit, before attending the conference I was a skeptic about the technology but after the conference I think there are some great possibilities for this technology in the very near future. I look forward to attending next year. The only thing that I believe would improve the conference is an increase in details about the technology and/or implementation/usage of the technology rather than just skimming over things at a very very high level.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.2paths.com/2008/06/19/semantic-web-conference-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

