<?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>Frederick Giasson's Weblog &#187; structWSF</title>
	<atom:link href="http://fgiasson.com/blog/index.php/category/structured-dynamics/structwsf/feed/" rel="self" type="application/rss+xml" />
	<link>http://fgiasson.com/blog</link>
	<description></description>
	<lastBuildDate>Fri, 30 Mar 2012 00:56:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>New Mapping Semantic Component In JavaScript</title>
		<link>http://fgiasson.com/blog/index.php/2012/02/27/new-mapping-semantic-component-in-javascript/</link>
		<comments>http://fgiasson.com/blog/index.php/2012/02/27/new-mapping-semantic-component-in-javascript/#comments</comments>
		<pubDate>Mon, 27 Feb 2012 18:16:18 +0000</pubDate>
		<dc:creator>Frederick Giasson</dc:creator>
				<category><![CDATA[Citizen DAN]]></category>
		<category><![CDATA[Open Semantic Framework]]></category>
		<category><![CDATA[Semantic Components]]></category>
		<category><![CDATA[Semantic Web]]></category>
		<category><![CDATA[Structured Dynamics]]></category>
		<category><![CDATA[structWSF]]></category>
		<category><![CDATA[#map]]></category>
		<category><![CDATA[#osf]]></category>
		<category><![CDATA[#semantic components]]></category>
		<category><![CDATA[#semantic web]]></category>
		<category><![CDATA[#structwsf]]></category>

		<guid isPermaLink="false">http://fgiasson.com/blog/?p=1920</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=New Mapping Semantic Component In JavaScript&amp;rft.aulast=Giasson&amp;rft.aufirst=Frederick&amp;rft.subject=Citizen DAN&amp;rft.subject=Open Semantic Framework&amp;rft.subject=Semantic Components&amp;rft.subject=Semantic Web&amp;rft.subject=Structured Dynamics&amp;rft.subject=structWSF&amp;rft.source=Frederick Giasson&#8217;s Weblog&amp;rft.date=2012-02-27&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://fgiasson.com/blog/index.php/2012/02/27/new-mapping-semantic-component-in-javascript/&amp;rft.language=English"></span>
&#160; I am please to announce the release of the new sWebMap Semantic Component in JavaScript. This new mapping component is a standalone JavaScript application that can be integrated on any new or existing web sites and that interact with an Open Semantic Framework (OSF) instance to search, browse, filter and display with geographically-located information [...]]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=New Mapping Semantic Component In JavaScript&amp;rft.aulast=Giasson&amp;rft.aufirst=Frederick&amp;rft.subject=Citizen DAN&amp;rft.subject=Open Semantic Framework&amp;rft.subject=Semantic Components&amp;rft.subject=Semantic Web&amp;rft.subject=Structured Dynamics&amp;rft.subject=structWSF&amp;rft.source=Frederick Giasson&#8217;s Weblog&amp;rft.date=2012-02-27&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://fgiasson.com/blog/index.php/2012/02/27/new-mapping-semantic-component-in-javascript/&amp;rft.language=English"></span>
<p>&nbsp;</p>
<table>
<tbody>
<tr>
<td>I am please to announce the release of the new <a title=\"sWebMap Semantic Component\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU1dlYk1hcA==">sWebMap </a>Semantic Component in JavaScript. This new mapping component is a standalone JavaScript application that can be integrated on any new or existing web sites and that interact with an <a title=\"Open Semantic Framework (OSF)\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvT3Blbl9TZW1hbnRpY19GcmFtZXdvcms=">Open Semantic Framework</a> (OSF) instance to search, browse, filter and display with geographically-located information on an interactive map.</td>
<td><a href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2ZnaWFzc29uLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDEyLzAyL29sZC13b3JsZC1tYXAuanBn"><img class="aligncenter  wp-image-1921" title="old-world-map with markers" src="http://fgiasson.com/blog/wp-content/uploads/2012/02/old-world-map.jpg" alt="" width="245" height="188" /></a></td>
</tr>
</tbody>
</table>
<h3>Features</h3>
<p>The sWebMap is a rich mapping tool that can easily be integrated on any webpage, and that can be extensively customized. The sWebMap does support these features:</p>
<ul>
<li>Full text search for searching and displaying results on a map</li>
<li>Extensive filtering capabilities</li>
<ul>
<li>Filtering by dataset source</li>
<li>Filtering by type</li>
<li>Filtering by attribute/value</li>
<li>Filtering of records that belongs to a specific geographic region</li>
</ul>
<li>Display of record on the map using:</li>
<ul>
<li>Different markers depending on the type of record to display (determined by the ontologies)</li>
<li>Polygon shapes for records that refers to a geographic region</li>
<li>Polyline shapes for records that refers to a geographically-located path</li>
</ul>
<li>Templating of records in a resultset depending on their type</li>
<li>Templating of records&#8217; preview, displayed in an overlay window, depending on their type</li>
<li>Persist records on the map accros searches and filtering operations</li>
<li>Supports map sessions</li>
<ul>
<li>Save map sessions</li>
<li>Load saved map sessions</li>
<li>Delete saved map sessions</li>
<li>Share saved map sessions</li>
</ul>
<li>Supports a multiple-maps mode</li>
<ul>
<li>Three focus maps are available under the main map</li>
<li>Each map focus on a particular region of the main map</li>
<li>User can switch between focus map to see different records in different region</li>
</ul>
</ul>
<p>&nbsp;</p>
<h3>Normal Mode</h3>
<p>Here is what the default sWebMap, in normal mode, using a few datasets related to the city of Iowa looks like. <a title=\"sWebMap Citizen DAN Demo\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2RlbW8uY2l0aXplbi1kYW4ub3JnL3dlYm1hcA==">You can also interact with this sWebMap instance directly on the Citizen DAN demo website here</a>.</p>
<p style="text-align: center;"><a href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2ZnaWFzc29uLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDEyLzAyL3N3ZWJtYXAuanBn"><div style="margin:10px;overflow:hidden;display:table;line-height:0;text-align:center;width:450px;" class="aligncenter"><img class=" size-full wp-image-1922 shadow_curl" title="sWebMap - Normal Mode" src="http://fgiasson.com/blog/wp-content/uploads/2012/02/swebmap.jpg" alt="" width="450" height="406"  style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://fgiasson.com/blog/wp-content/plugins/shadows/shadow_curl.png" class="shadow_img" style="margin:0 !important;height:10px;width:100%;"></div></a></p>
<h3>Multiple Windows Mode</h3>
<p>Here is what the default sWebMap, in multiple windows mode, using a few datasets related to the city of Iowa looks like. <a title=\"sWebMap Citizen DAN Demo\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2RlbW8uY2l0aXplbi1kYW4ub3JnL3dlYm1hcG11bHRp">You can also interact with this sWebMap instance directly on the Citizen DAN demo website here</a>.</p>
<p>&nbsp;</p>
<p style="text-align: center;"><a href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2ZnaWFzc29uLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDEyLzAyL3N3ZWJtYXAtbXVsdGkuanBn"><div style="margin:10px;overflow:hidden;display:table;line-height:0;text-align:center;width:450px;" class="aligncenter"><img class=" size-full wp-image-1923 shadow_curl" title="sWebMap Multiple Maps Mode" src="http://fgiasson.com/blog/wp-content/uploads/2012/02/swebmap-multi.jpg" alt="" width="450" height="557"  style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://fgiasson.com/blog/wp-content/plugins/shadows/shadow_curl.png" class="shadow_img" style="margin:0 !important;height:10px;width:100%;"></div></a></p>
<p>&nbsp;</p>
<h3>Under the Hood: The Open Semantic Framework</h3>
<p>Each sWebMap component communicates with an OSF (Open Semantic Framework) instance. More specifically, a sWebMap component will send Search/Filtering queries to a <a title=\"Search web service endpoint (structWSF)\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU2VhcmNo">geo-enabled structWSF Search web service endpoint</a>.</p>
<p>Depending on the options you had specified when you created the sWebMap control, each time you move (option), zoom (option) or change the filtering criterias, this will send a query to the Search endpoint. The sWebMap control then requests JSON formatted resultset and display the results to the user.</p>
<p>This means that to implement the sWebMap component on your website, you will need to have:</p>
<ul>
<li>a running structWSF instance</li>
<li>some datasets that have geo-localized information</li>
<li><a href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU1dlYk1hcCNTY2hlbWFz">properly defined records and ontologies classes</a></li>
</ul>
<h3>Download</h3>
<p>You can immediately download the entire code source from this GitHub reposiroty:</p>
<p style="text-align: center;"><a title=\"Download the sWebMap Component\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly9naXRodWIuY29tL3N0cnVjdHVyZWRkeW5hbWljcy9TZW1hbnRpYy1Db21wb25lbnRzLU9wZW4tU2VtYW50aWMtRnJhbWV3b3JrL3RyZWUvbWFzdGVyL2pzL3NXZWJNYXA="><img class="aligncenter  wp-image-1893" title="download" src="http://fgiasson.com/blog/wp-content/uploads/2012/01/download.png" alt="" width="307" height="186" /></a></p>
<h3>Installation</h3>
<p>Installing the sWebMap component is really easy. In fact, you only have to load a few JavaScript and CSS files, to defined a <code>&lt;div&gt;&lt;/div&gt;</code> container for the map, and to create a sWebMap component object, which is a single line of code.</p>
<p>Additionally, you can initialize the sWebMap component with one of the multiple <a title=\"sWebMap options available\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU1dlYk1hcCNPcHRpb25z">options available</a>.</p>
<p>Refer you to the <a title=\"Using and Installing sWebMap\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU1dlYk1hcCNVc2FnZQ==">Usage section of the sWebMap component</a> to know exactly how to install and setup a sWebMap component instance.</p>
<h3>Resources</h3>
<p>Here are some additional resources related to the sWebMap component:</p>
<ul>
<li><a title=\"sWebMap documentation\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU1dlYk1hcA==">sWebMap complete documentation</a></li>
<li><a title=\"How to Use the WebMap\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvSG93X3RvX1VzZV90aGVfV2ViTWFw">sWebMap user manual</a></li>
<li><a title=\"Open Semantic Framework (OSF) Installer\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvT3Blbl9TZW1hbnRpY19GcmFtZXdvcmtfSW5zdGFsbGVy">OSF Installer</a> (install the Open Semantic Framework to feed your sWebMap component)</li>
<li><a title=\"sWebMap Demo (normal mode)\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2RlbW8uY2l0aXplbi1kYW4ub3JnL3dlYm1hcA==">sWebMap Demo (normal mode)</a></li>
<li><a title=\"sWebMap Demo (multiple windows mode)\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2RlbW8uY2l0aXplbi1kYW4ub3JnL3dlYm1hcG11bHRp">sWebMap Demo (multiple windows mode)</a></li>
</ul>
<p>&nbsp;</p>
 <img src="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1920" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://fgiasson.com/blog/index.php/2012/02/27/new-mapping-semantic-component-in-javascript/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Open Semantic Framework Running on Micro Instances</title>
		<link>http://fgiasson.com/blog/index.php/2011/12/28/open-semantic-framework-running-on-micro-instances/</link>
		<comments>http://fgiasson.com/blog/index.php/2011/12/28/open-semantic-framework-running-on-micro-instances/#comments</comments>
		<pubDate>Wed, 28 Dec 2011 20:45:47 +0000</pubDate>
		<dc:creator>Frederick Giasson</dc:creator>
				<category><![CDATA[Open Semantic Framework]]></category>
		<category><![CDATA[Semantic Web]]></category>
		<category><![CDATA[Structured Dynamics]]></category>
		<category><![CDATA[structWSF]]></category>
		<category><![CDATA[#aws]]></category>
		<category><![CDATA[#open semantic framework]]></category>
		<category><![CDATA[#rdf]]></category>
		<category><![CDATA[#semantic web]]></category>
		<category><![CDATA[#structwsf]]></category>
		<category><![CDATA[#web services]]></category>

		<guid isPermaLink="false">http://fgiasson.com/blog/?p=1839</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Open Semantic Framework Running on Micro Instances&amp;rft.aulast=Giasson&amp;rft.aufirst=Frederick&amp;rft.subject=Open Semantic Framework&amp;rft.subject=Semantic Web&amp;rft.subject=Structured Dynamics&amp;rft.subject=structWSF&amp;rft.source=Frederick Giasson&#8217;s Weblog&amp;rft.date=2011-12-28&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://fgiasson.com/blog/index.php/2011/12/28/open-semantic-framework-running-on-micro-instances/&amp;rft.language=English"></span>
After releasing the new Open Semantic Framework Installer, we started to test it on machines with all kind of different specifications: different CPU limits, different amount of memory, etc. One of the setup that caught our attention was Amazon&#8217;s EC2 Micro Instance. The Micro Instance is a virtual server type that has been introduced by [...]]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Open Semantic Framework Running on Micro Instances&amp;rft.aulast=Giasson&amp;rft.aufirst=Frederick&amp;rft.subject=Open Semantic Framework&amp;rft.subject=Semantic Web&amp;rft.subject=Structured Dynamics&amp;rft.subject=structWSF&amp;rft.source=Frederick Giasson&#8217;s Weblog&amp;rft.date=2011-12-28&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://fgiasson.com/blog/index.php/2011/12/28/open-semantic-framework-running-on-micro-instances/&amp;rft.language=English"></span>
<table>
<tbody>
<tr>
<td>After releasing the new <a title=\"Open Semantic Framework (OSF) Installer\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvT3Blbl9TZW1hbnRpY19GcmFtZXdvcmtfSW5zdGFsbGVy">Open Semantic Framework Installer</a>, we started to test it on machines with all kind of different specifications: different CPU limits, different amount of memory, etc. One of the setup that caught our attention was Amazon&#8217;s EC2 Micro Instance.</td>
<td><a title=\"Really Small Things\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2Rlc2lnbm1pbmQuZnJvZ2Rlc2lnbi5jb20vYXJ0aWNsZXMvdGhlLXN1YnN0YW5jZS1vZi10aGluZ3Mtbm90LXNlZW4vcmVhbGx5LXNtYWxsLXRoaW5ncy5odG1s"><div style="margin:10px;overflow:hidden;display:table;line-height:0;text-align:center;width:180px;" class="aligncenter"><img class="  wp-image-1840 shadow_curl" title="willard-wigan-small" src="http://fgiasson.com/blog/wp-content/uploads/2011/12/willard-wigan-small-300x200.jpg" alt="" width="180" height="120"  style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://fgiasson.com/blog/wp-content/plugins/shadows/shadow_curl.png" class="shadow_img" style="margin:0 !important;height:10px;width:100%;"></div></a></td>
</tr>
</tbody>
</table>
<p>The Micro Instance is a virtual server type that has been introduced by Amazon a little bit more than a year ago. As described by Amazon, Micro Instances are:</p>
<blockquote><p>Instances of this family provide a small amount of consistent CPU resources and allow you to burst CPU capacity when additional cycles are available. They are well suited for lower throughput applications and web sites that consume significant compute cycles periodically.</p></blockquote>
<p>We were intrigued by this particular type of instance because we wanted to know how the complete Open Semantic Framework stack could operate on such a small server instance.</p>
<h3>Micro Instance Specifications</h3>
<p>The Micro Instance&#8217;s specifications are as follow:</p>
<ul>
<li>613 MB memory</li>
<li>Up to 2 EC2 Compute Units (for short periodic bursts)</li>
<li>32-bit or 64-bit platform</li>
<li>I/O Performance: Low</li>
</ul>
<p>Note that a <a href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2F3cy5hbWF6b24uY29tL2VjMi9pbnN0YW5jZS10eXBlcy8=">EC2 Compute Unit</a> <em>provides the equivalent CPU capacity of a 1.0-1.2 GHz 2007 Opteron or 2007 Xeon processor</em>.</p>
<h3>Installing The Stack</h3>
<p>Installing the stack on the Amazon Micro Instance, using the OSF Installer, is not the fastest experience in the World. In fact, installing the complete stack takes up to 10 hours (5 minutes of your time, but compiling and installing everything takes about 10 hours of CPU time).</p>
<p>The problem is that installing OSF is a CPU intensive task, while the Micro instance is not. The micro instance can sustain small CPU bursts, but it can&#8217;t sustain the creation and compilation of the entire stack. That means that the CPU cycles won&#8217;t be available to the instance, and that the CPU consumption of that instance will be throttled by Amazon, which will significantly slow down the installation process.</p>
<p>However, as you will see below, once OSF is installed on the Micro instance, the complete stack responds perfectly to all queries sent to it.</p>
<h3>Creating an AMI</h3>
<p>The only time you have to spend 10 hours to install the OSF stack on an Amazon Micro Instance is the first time. After that, you would only have to <a title=\"Creating an AMI from a EBS Micro Instance\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2RvY3MuYW1hem9ud2Vic2VydmljZXMuY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL1R1dG9yaWFsX0NyZWF0ZUltYWdlLmh0bWw=">create an Amazon AMI from that vanilla OSF instance</a> for future use. If you proceed that way, you will lower the installation time from 10 hours to a few minutes.</p>
<h3>Reading and Searching Data</h3>
<p>The testing we did for reading and searching data from <a title=\"structWSF\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL29wZW5zdHJ1Y3RzLm9yZy9zdHJ1Y3R3c2Y=">structWSF</a> shows that performances are as good as the ones you would get from a small instance with a normal workload. The <a title=\"Crud Read\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvQ1JVRDpfUmVhZA==">Crud: Read</a> and the <a title=\"Search endpoint\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU2VhcmNo">Search</a> structWSF endpoints are fully responsive and operational.</p>
<h3>Creating, Updating and Deleting Data</h3>
<p>The testing we did for creating, updating and deleting entire datasets takes more time than with a small instance even if the instance is dedicated to that only task, without any other queries processed by the instance at the same time. The reason for this decrease in performances is due to the CPU throttling done by Amazon for this kind of more CPU intensive task. However, since individual records creation, updating and deletion creates &#8220;CPU Peaks&#8221;, such isolated create/update/delete queries doesn&#8217;t greatly affect the overall performances of the instance.</p>
<h3>What This Type Of Instance Is Good For?</h3>
<p>We found that such small instances were perfect for data collection activities performed by a single person, or a small group of collaborators. We also found that it could be used by low-traffic websites such as personal web portal, personal blogs, etc. The complete OSF stack is fully responsive and our analysis shows that the resources (CPU and Memory) are stable and responsive with a normal workload.</p>
<h3>Conclusion</h3>
<p>Such a small server instance can easily be used to create a personal data collection endpoint, or a personal, or small, data presentation portal such as Mike&#8217;s semantic web <a title=\"semantic web Sweet Tools\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ta2JlcmdtYW4uY29tL3N3ZWV0LXRvb2xzLw==">Sweet Tools</a>. It is well suited for data portals that require reading and searching of data with occasional data changes (addition, removal and modification of instance records).</p>
 <img src="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1839" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://fgiasson.com/blog/index.php/2011/12/28/open-semantic-framework-running-on-micro-instances/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Volkswagen UK&#8217;s Search Engine Powered by structWSF</title>
		<link>http://fgiasson.com/blog/index.php/2011/12/21/volkswagen-uks-search-engine-powered-by-structwsf/</link>
		<comments>http://fgiasson.com/blog/index.php/2011/12/21/volkswagen-uks-search-engine-powered-by-structwsf/#comments</comments>
		<pubDate>Wed, 21 Dec 2011 18:23:08 +0000</pubDate>
		<dc:creator>Frederick Giasson</dc:creator>
				<category><![CDATA[Open Semantic Framework]]></category>
		<category><![CDATA[Semantic Web]]></category>
		<category><![CDATA[Structured Dynamics]]></category>
		<category><![CDATA[structWSF]]></category>
		<category><![CDATA[#open semantic framework]]></category>
		<category><![CDATA[#rdf]]></category>
		<category><![CDATA[#semantic web]]></category>
		<category><![CDATA[#structwsf]]></category>
		<category><![CDATA[#volkswagen]]></category>
		<category><![CDATA[#web services]]></category>

		<guid isPermaLink="false">http://fgiasson.com/blog/?p=1826</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Volkswagen UK&#8217;s Search Engine Powered by structWSF&amp;rft.aulast=Giasson&amp;rft.aufirst=Frederick&amp;rft.subject=Open Semantic Framework&amp;rft.subject=Semantic Web&amp;rft.subject=Structured Dynamics&amp;rft.subject=structWSF&amp;rft.source=Frederick Giasson&#8217;s Weblog&amp;rft.date=2011-12-21&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://fgiasson.com/blog/index.php/2011/12/21/volkswagen-uks-search-engine-powered-by-structwsf/&amp;rft.language=English"></span>
It is now official, Volkswagen UK&#8216;s search engine is now powered by structWSF. Their new contextual search engine has been released last Friday. I covered the underlying architecture in one of my recent blog post: Volkswagen's RDF Data Management Workflow. &#160; &#160; John Streit, head of technology at Tribal DDB, described the two key advantages [...]]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Volkswagen UK&#8217;s Search Engine Powered by structWSF&amp;rft.aulast=Giasson&amp;rft.aufirst=Frederick&amp;rft.subject=Open Semantic Framework&amp;rft.subject=Semantic Web&amp;rft.subject=Structured Dynamics&amp;rft.subject=structWSF&amp;rft.source=Frederick Giasson&#8217;s Weblog&amp;rft.date=2011-12-21&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://fgiasson.com/blog/index.php/2011/12/21/volkswagen-uks-search-engine-powered-by-structwsf/&amp;rft.language=English"></span>
<table>
<tbody>
<tr>
<td>It is now official, <a title=\"Volkswagen UK\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy52b2xrc3dhZ2VuLmNvLnVrLw==">Volkswagen UK</a>&#8216;s search engine is now powered by <a title=\"structWSF\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL29wZW5zdHJ1Y3RzLm9yZy9zdHJ1Y3R3c2Y=">structWSF</a>. Their new contextual search engine has been released last Friday. I covered the underlying architecture in one of my recent blog post: <a href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2ZnaWFzc29uLmNvbS9ibG9nL2luZGV4LnBocC8yMDExLzEwLzExL3ZvbGtzd2FnZW5zLXJkZi1kYXRhLW1hbmFnZW1lbnQtd29ya2Zsb3cv">Volkswagen's RDF Data Management Workflow</a>.</td>
<td valign="top"><a href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2ZnaWFzc29uLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDExLzEwL1ZvbGtzd2FnZW4ucG5n"><img class="aligncenter size-full wp-image-1618" title="Volkswagen" src="http://fgiasson.com/blog/wp-content/uploads/2011/10/Volkswagen.png" alt="" width="128" height="128" /></a></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p><center><a href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2ZnaWFzc29uLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDExLzEwL3Z3X3NpdGVfc2VhcmNoX3NjcmVlbnNob3QuanBn"><img class="size-medium wp-image-1599 alignnone" title="vw_site_search_screenshot" src="http://fgiasson.com/blog/wp-content/uploads/2011/10/vw_site_search_screenshot-300x240.jpg" alt="" width="300" height="240" /></a></center>&nbsp;</p>
<p>John Streit, head of technology at Tribal DDB, described the two key advantages of using the structWSF (part of the <a title=\"Open Semantic Framework\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL29wZW5zdHJ1Y3RzLm9yZy9vcGVuLXNlbWFudGljLWZyYW1ld29yaw==">Open Semantic Framework</a> (OSF)) for their website <a title=\"Technology Volkswagen adopts semantic search technology\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy53aXJlZC5jby51ay9uZXdzL2FyY2hpdmUvMjAxMS0xMi8wNy9zZW1hbnRpYy1zZW8tdm9sa3N3YWdlbg==">in an interview with Wired UK</a>:</p>
<blockquote><p>The first is that it gives you a single place to access data. Streit explains: &#8220;Applications often need to retrieve data from multiple sources which adds complexity and development time. By using this technology we can get everything we need from a single place which drastically lowers development time and running costs.&#8221; Furthermore the exposure of data improves search and means that it can be repurposed in new and imaginative ways.</p></blockquote>
 <img src="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1826" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://fgiasson.com/blog/index.php/2011/12/21/volkswagen-uks-search-engine-powered-by-structwsf/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Open Semantic Framework Installer</title>
		<link>http://fgiasson.com/blog/index.php/2011/12/13/the-open-semantic-framework-installer/</link>
		<comments>http://fgiasson.com/blog/index.php/2011/12/13/the-open-semantic-framework-installer/#comments</comments>
		<pubDate>Wed, 14 Dec 2011 00:10:56 +0000</pubDate>
		<dc:creator>Frederick Giasson</dc:creator>
				<category><![CDATA[conStruct]]></category>
		<category><![CDATA[Open Semantic Framework]]></category>
		<category><![CDATA[Semantic Web]]></category>
		<category><![CDATA[Structured Dynamics]]></category>
		<category><![CDATA[structWSF]]></category>
		<category><![CDATA[#developer]]></category>
		<category><![CDATA[#install]]></category>
		<category><![CDATA[#open semantic framework]]></category>
		<category><![CDATA[#semantic web]]></category>
		<category><![CDATA[#structwsf]]></category>
		<category><![CDATA[#web services]]></category>

		<guid isPermaLink="false">http://fgiasson.com/blog/?p=1782</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=The Open Semantic Framework Installer&amp;rft.aulast=Giasson&amp;rft.aufirst=Frederick&amp;rft.subject=conStruct&amp;rft.subject=Open Semantic Framework&amp;rft.subject=Semantic Web&amp;rft.subject=Structured Dynamics&amp;rft.subject=structWSF&amp;rft.source=Frederick Giasson&#8217;s Weblog&amp;rft.date=2011-12-13&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://fgiasson.com/blog/index.php/2011/12/13/the-open-semantic-framework-installer/&amp;rft.language=English"></span>
We are excited to introduce the first Open Semantic Framework installation script. This new installer application will install and configure the entire Open Semantic Framework stack for you. It will take about 10 minutes of your time, and will process in the background for a few hours while everything necessary to build the OSF stack [...]]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=The Open Semantic Framework Installer&amp;rft.aulast=Giasson&amp;rft.aufirst=Frederick&amp;rft.subject=conStruct&amp;rft.subject=Open Semantic Framework&amp;rft.subject=Semantic Web&amp;rft.subject=Structured Dynamics&amp;rft.subject=structWSF&amp;rft.source=Frederick Giasson&#8217;s Weblog&amp;rft.date=2011-12-13&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://fgiasson.com/blog/index.php/2011/12/13/the-open-semantic-framework-installer/&amp;rft.language=English"></span>
<table>
<tbody>
<tr>
<td>We are excited to introduce the first <a title=\"Open Semantic Framework\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL29wZW5zdHJ1Y3RzLm9yZy9vcGVuLXNlbWFudGljLWZyYW1ld29yaw==">Open Semantic Framework</a> installation script. This new <a title=\"Open Semantic Framework Installer\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvT3Blbl9TZW1hbnRpY19GcmFtZXdvcmtfSW5zdGFsbGVy">installer application</a> will install and configure the entire Open Semantic Framework stack for you. It will take about 10 minutes of your time, and will process in the background for a few hours while everything necessary to build the OSF stack is downloaded and compiled.</td>
<td><a href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2ZnaWFzc29uLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDExLzEyL29zZl9pbnN0YWxsZXIucG5n"><img class="aligncenter  wp-image-1795" src="http://fgiasson.com/blog/wp-content/uploads/2011/12/osf_installer-257x300.png" alt="Open Semantic Framework Installer" width="154" height="180" /></a></td>
</tr>
</tbody>
</table>
<p>The only thing you have to do to run the OSF Installer is to issue the few commands outlined below, and then to answer a few questions in the process (which, since most of them use the standard default values, is pretty easy).</p>
<p>The OSF Installer is a major addition to the Open Semantic Framework since it now enables a greater number of people (mere mortals) to install and use the stack, and it enables much faster deployment of the system.</p>
<p>The full installation manual, where each of the steps performed by the installer is explained in detail, is <a title=\"Open Seamantic Framework Installation Manual\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU3RydWN0V1NGX0luc3RhbGxhdGlvbl9HdWlkZQ==">available as a reference here</a>.</p>
<h3>Requirements</h3>
<p>The current version of the Open Semantic Framework Installer is fully operational on:</p>
<ol>
<li>Ubuntu 10.04 (Lucid)</li>
<li>32 Bits Operating System</li>
<li>Access to internet from the server</li>
<li>5GIG of disk space on the partition where you are installing OSF</li>
</ol>
<p>Eventually this installer will be upgraded for 64-bits operating systems, and for other Linux distributions. Also, the current installer should work on newer versions of Ubuntu, but it has only been tested to date on the latest <a title=\"Ubuntu Long Term Support (LTS)\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly93aWtpLnVidW50dS5jb20vTFRT">LTS</a> version.</p>
<h3>Installing the Open Semantic Framework</h3>
<p>The only manual steps need to do to install the Open Semantic Framework are to:</p>
<ol>
<li>Create a folder where to install OSF on your server</li>
<li>Download the <code>osf-install.zip</code> installation package</li>
<li>Make the <code>osf-install.sh</code> installation script executable</li>
<li>Run the <code>osf-install.sh</code> installation script</li>
<li>Answer the questions asked by the installer</li>
</ol>
<p>Here are the commands you have to run:</p>
<div style="overflow:hidden;; " class="alignnone">
<div class="shadow_curl" style="margin:0 !important; max-width:100% !important;"><div class="codecolorer-container bash railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>mnt<span style="color: #000000; font-weight: bold;">/</span><br />
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">wget</span> https:<span style="color: #000000; font-weight: bold;">//</span>github.com<span style="color: #000000; font-weight: bold;">/</span>downloads<span style="color: #000000; font-weight: bold;">/</span>structureddynamics<span style="color: #000000; font-weight: bold;">/</span>Open-Semantic-Framework-Installer<span style="color: #000000; font-weight: bold;">/</span>osf-installer-v1.0a4.zip<br />
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">unzip</span> osf-installer-v1.0a4.zip<br />
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #660033;">-d</span> structureddynamics<span style="color: #000000; font-weight: bold;">*/`</span><br />
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">chmod</span> <span style="color: #000000;">755</span> osf-install.sh<br />
.<span style="color: #000000; font-weight: bold;">/</span>osf-install.sh</div></td></tr></tbody></table></div>
<img src="http://fgiasson.com/blog/wp-content/plugins/shadows/shadow_curl.png" class="aligncenter shadow_img" style="margin:0 !important;height:10px;width:100%;"></div>
</div>
<h3>conStruct and structWSF Upgrades</h3>
<p>In the process, both <a title=\"conStruct\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2RydXBhbC5vcmcvcHJvamVjdC9jb25zdHJ1Y3Q=">conStruct</a> and <a title=\"structWSF\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly9naXRodWIuY29tL3N0cnVjdHVyZWRkeW5hbWljcy9zdHJ1Y3RXU0YtT3Blbi1TZW1hbnRpYy1GcmFtZXdvcms=">structWSF</a> have been enhanced to enable automatic upgrading in the future. Starting with structWSF version <code>1.0a92</code> and conStruct version <code>6.x-1.0-beta9</code>, future upgrades should be done automatically using automatic upgrading procedures.</p>
<p>However, to enable this, existing users will have to upgrade their current versions manually to establish the new automatic upgrades baseline.</p>
<h3>Next Steps</h3>
<p>Once you have installed the OSF stack, you next query the <a title=\"StructWSF\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU3RydWN0V1NG">structWSF</a> Web service endpoints, and import datasets using <a title=\"ConStruct\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvQ29uU3RydWN0">conStruct</a>. Here are a few things you can do to start exploring the Open Semantic Framework:</p>
<ol>
<li>Start exploring <a title=\"Category:StructWSF\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvQ2F0ZWdvcnk6U3RydWN0V1NG">structWSF</a></li>
<li>Start exploring <a title=\"Category:ConStruct\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvQ2F0ZWdvcnk6Q29uU3RydWN0">conStruct</a></li>
<li>Start exploring <a title=\"Category:Ontologies\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvQ2F0ZWdvcnk6T250b2xvZ2llcw==">Ontologies usage in OSF</a></li>
<li>Start <a title=\"Category:Datasets\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvQ2F0ZWdvcnk6RGF0YXNldHM=">importing and manipulating datasets</a></li>
<li>Start exploring the <a title=\"Category:Open Semantic Framework\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvQ2F0ZWdvcnk6T3Blbl9TZW1hbnRpY19GcmFtZXdvcms=">Open Semantic Framework architecture</a></li>
<li><a title=\"StructWSF Web Services Tutorial\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU3RydWN0V1NGX1dlYl9TZXJ2aWNlc19UdXRvcmlhbA==">Start playing with the structWSF web service endpoints</a></li>
</ol>
<p>Since everything is installed on your server, so you only have to play with the stack now. If you break something, just ping us on the <a title=\"Open Semantic Framework Mailing List\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2dyb3Vwcy5nb29nbGUuY29tL2dyb3VwL29wZW4tc2VtYW50aWMtZnJhbWV3b3Jr">mailing list</a> or re-install it without worrying about each installation steps!</p>
<h3>Help</h3>
<p>It may be possible that you experience some issues with this new OSF Installer. If that is the case, I would suggest your to make an outreach to the <code><a title=\"Open Semantic Framework Mailing List\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2dyb3Vwcy5nb29nbGUuY29tL2dyb3VwL29wZW4tc2VtYW50aWMtZnJhbWV3b3Jr" rel=\"nofollow\">Open Semantic Web Mailing List</a></code> so that we fix it on the Git repository.</p>
<p>Just write an email that includes the specifications of the server where you are trying to install OSF on. Then tell us where the issue happens in the installation process. Also add any logs that could be helpful in debugging the issue.</p>
<h3>Conclusion</h3>
<p>This is the first version of the OSF installer, but this is a real balm for installing OSF. As noted, this installer will eventually be upgraded to support 64-bit servers and other Linux distributions. Also, any help improving this installer from Bash wizards would naturally be greatly welcomed.</p>
 <img src="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1782" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://fgiasson.com/blog/index.php/2011/12/13/the-open-semantic-framework-installer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Role and Use of Ontologies in the Open Semantic Framework</title>
		<link>http://fgiasson.com/blog/index.php/2011/12/05/role-and-use-of-ontologies-in-the-open-semantic-framework/</link>
		<comments>http://fgiasson.com/blog/index.php/2011/12/05/role-and-use-of-ontologies-in-the-open-semantic-framework/#comments</comments>
		<pubDate>Mon, 05 Dec 2011 18:02:14 +0000</pubDate>
		<dc:creator>Frederick Giasson</dc:creator>
				<category><![CDATA[Citizen DAN]]></category>
		<category><![CDATA[conStruct]]></category>
		<category><![CDATA[irON]]></category>
		<category><![CDATA[Open Semantic Framework]]></category>
		<category><![CDATA[Semantic Components]]></category>
		<category><![CDATA[Semantic Web]]></category>
		<category><![CDATA[Structured Dynamics]]></category>
		<category><![CDATA[structWSF]]></category>
		<category><![CDATA[#data]]></category>
		<category><![CDATA[#data integration]]></category>
		<category><![CDATA[#ontology]]></category>
		<category><![CDATA[#open semantic framework]]></category>
		<category><![CDATA[#rdf]]></category>
		<category><![CDATA[#semantic web]]></category>

		<guid isPermaLink="false">http://fgiasson.com/blog/?p=1740</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Role and Use of Ontologies in the Open Semantic Framework&amp;rft.aulast=Giasson&amp;rft.aufirst=Frederick&amp;rft.subject=Citizen DAN&amp;rft.subject=conStruct&amp;rft.subject=irON&amp;rft.subject=Open Semantic Framework&amp;rft.subject=Semantic Components&amp;rft.subject=Semantic Web&amp;rft.subject=Structured Dynamics&amp;rft.subject=structWSF&amp;rft.source=Frederick Giasson&#8217;s Weblog&amp;rft.date=2011-12-05&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://fgiasson.com/blog/index.php/2011/12/05/role-and-use-of-ontologies-in-the-open-semantic-framework/&amp;rft.language=English"></span>
Ontologies are to the Open Semantic Framework what humans were to the Mechanical Turk. The hidden human in the Mechanical Turk was orchestrating all and every chess move. However, to the observers, the automated chess machine was looking just like it: a new kind of intelligent machine. We were in 1770. Ontologies plays exactly the [...]]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Role and Use of Ontologies in the Open Semantic Framework&amp;rft.aulast=Giasson&amp;rft.aufirst=Frederick&amp;rft.subject=Citizen DAN&amp;rft.subject=conStruct&amp;rft.subject=irON&amp;rft.subject=Open Semantic Framework&amp;rft.subject=Semantic Components&amp;rft.subject=Semantic Web&amp;rft.subject=Structured Dynamics&amp;rft.subject=structWSF&amp;rft.source=Frederick Giasson&#8217;s Weblog&amp;rft.date=2011-12-05&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://fgiasson.com/blog/index.php/2011/12/05/role-and-use-of-ontologies-in-the-open-semantic-framework/&amp;rft.language=English"></span>
<table>
<tbody>
<tr>
<td style="padding: 3px;">Ontologies are to the <a title=\"Open Semantic Framework\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvT3Blbl9TZW1hbnRpY19GcmFtZXdvcms=">Open Semantic Framework</a> what humans were to the <a title=\"Mechanical Turk\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9UaGVfVHVyaw==">Mechanical Turk</a>. The hidden human in the Mechanical Turk was orchestrating all and every chess move. However, to the observers, the <em>automated</em> chess machine was looking just like it: a new kind of intelligent machine. We were in 1770.</td>
<td style="padding: 3px;"><a href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2NhY2hlLmdhd2tlcmFzc2V0cy5jb20vYXNzZXRzL2ltYWdlcy84LzIwMDgvMDkvbWVjaGFuaWNhbF90dXJrLnBuZw=="><div style="margin:10px;overflow:hidden;display:table;line-height:0;text-align:center;width:180px;" class="aligncenter"><img class=" size-medium wp-image-1748" style="shadow_curl; padding:0 !important; margin:0 !important; max-width:100% !important;" title="Mechanical Turk" src="http://fgiasson.com/blog/wp-content/uploads/2011/12/mechanical_turk-300x274.png" alt="" width="180" height="164" /><br/><img src="http://fgiasson.com/blog/wp-content/plugins/shadows/shadow_curl.png" class="shadow_img" style="margin:0 !important;height:10px;width:100%;"></div></a></td>
</tr>
</tbody>
</table>
<p>Ontologies plays exactly the same role for the Open Semantic Framework (<em>OSF</em>): they orchestrate all and every moves for all the pieces within OSF. They are what instructs <a title=\"structWSF\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL29wZW5zdHJ1Y3RzLm9yZy9zdHJ1Y3R3c2Y=">structWSF</a>, the <a title=\"Semantic Components\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL29wZW5zdHJ1Y3RzLm9yZy9zY29tcG9uZW50">Semantic Components</a>, <a title=\"conStruct\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL29wZW5zdHJ1Y3RzLm9yZy9jb25zdHJ1Y3Q=">conStruct</a>, and all other derivate pieces of user interfaces how to behave.</p>
<p>In this (lengthy) blog post, I will present the main ontologies that have an impact on different parts of OSF. We will see how different ontology classes and properties, and how the description of the records indexed in the system, can impact the behaviors of OSF.</p>
<p>In addition to this post, Mike has also published a <a title=\"An Ontologies Architecture for Ontology Driven Applications\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ta2JlcmdtYW4uY29tLzk4OS9hbi1vbnRvbG9naWVzLWFyY2hpdGVjdHVyZS1mb3Itb250b2xvZ3ktZHJpdmVuLWFwcHM=">blog post today</a> that overviews the overall OSF ontology modularization and architecture.</p>
<p><span id="more-1740"></span></p>
<h3>Constituent Ontologies</h3>
<p>Let&#8217;s take a look at the core ontologies used by the Open Semantic Framework. All these ontologies have been developed in relation to OSF. These, and other external ontologies, have the same role in OSF as the human does in the Mechanical Turk: they instruct the system how to behave.</p>
<p>Here is the list of the core ontologies:</p>
<ol>
<li>The <a title=\"SCO Ontology\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU0NPX09udG9sb2d5">SCO Ontology</a> (Semantic Component Ontology)</li>
<li>The <a title=\"WSF Ontology\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvV1NGX09udG9sb2d5">WSF Ontology</a> (Web Service Framework Ontology)</li>
<li>The <a title=\"AGGR Ontology\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvQUdHUl9PbnRvbG9neQ==">AGGR Ontology</a> (Aggregation Ontology)</li>
<li>The <a title=\"IrON Ontology\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvSXJPTl9PbnRvbG9neQ==">irON Ontology</a> (Instance Record an Object Notation Ontology)</li>
<li>One or more <a title=\"Domain Ontologies in OSF\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvRG9tYWluX09udG9sb2dpZXNfaW5fT1NG">domain ontologies</a>, to capture the concepts and relationships for the purposes of a given OSF installation, and</li>
<li>Possibly <a title=\"UMBEL: Overview and Relation to OSF\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvVU1CRUw6X092ZXJ2aWV3X2FuZF9SZWxhdGlvbl90b19PU0Y=">UMBEL</a> or other upper-level concept ontologies, used for linkages to external systems.</li>
</ol>
<p>(<strong>Note:</strong> the internal wiki links to each of these ontologies also provides links to the actual ontology specifications on Github.)</p>
<p>A useful discussion of these ontologies and their interactions in an OSF instance is provided by the <a title=\"OSF Ontologies Modularization and Architecture\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvT1NGX09udG9sb2dpZXNfTW9kdWxhcml6YXRpb25fYW5kX0FyY2hpdGVjdHVyZQ==">ontology modularization</a> document. This current document focuses primarily on the specific properties and roles associated with them in an OSF installation.</p>
<p>Depending on the specific OSF installation, of course, multiple external ontologies may also be employed. Some of the common external ones used in an OSF installation are described by the <a title=\"Common External Ontologies\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvQ29tbW9uX0V4dGVybmFsX09udG9sb2dpZXM=">external ontologies</a> document. These external ontologies are important &#8212; indeed essential in order to ensure linkage to the external world &#8212; but have little to do with internal OSF control structures. That is why the rest of this discussion focused on internal ontologies only.</p>
<h3>Summary Ontology Roles</h3>
<p>Ontologies play pivotal roles across all parts of the framework. In a broad sense, the internal OSF ontologies are used for annotations, guiding interactions or relating concepts and information to other information. In specific terms, OSF ontologies may play one or more of these dozen or so roles:</p>
<ol>
<li>Define record descriptions</li>
<li>Inform interface displays</li>
<li>Integrate different data sources</li>
<li>Define component selections</li>
<li>Define component behaviors</li>
<li>Guide template selection</li>
<li>Provide reasoning and inference</li>
<li>Guide content filtering (with and without inference)</li>
<li>Tag concepts in text documents</li>
<li>Help organize and navigate Web portals</li>
<li>Manage datasets and ontologies, and</li>
<li>Set access permissions and registrations.</li>
</ol>
<p>In the remainder of this post, for each of these roles, we will see how ontologies affect numerous different parts of the OSF framework. These sections are presented in the order above.</p>
<h3>Define Records Descriptions</h3>
<p>A central role of ontologies in the Open Semantic Framework is their use to describe any kind of record that gets indexed and managed by the system. Since the framework indexes everything into the <a title=\"RDF Concept\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvUkRGX0NvbmNlcHQ=">RDF</a> data model, ontologies are needed as a schema to describe these RDF resources.</p>
<p>The irON ontology is specifically designed for record descriptions and notations. It interacts with all of the domain and (if used, UMBEL) upper level ontologies.</p>
<h3>Inform Interface Displays</h3>
<p>Ontologies have an impact in most of the user interfaces that display record information. The property that has the most impact is <code>iron:prefLabel</code>, which is used to display the label within the user interface that refers to a record or record attributes (properties). This label can be used within text, in a list control, in a tree control, or in any other kind of control that displays references to records.</p>
<p><strong>Note:</strong> there are also other properties that are considered as fallbacks to <code>iron:prefLabel</code> if a record has no triples using the <code>iron:prefLabel</code> property. These include <code>rdfs:label</code>, <code>dcterms:title</code>, <code>foaf:name</code>, etc.</p>
<h3>General User Interface Labels and Descriptions</h3>
<p>There are a few properties that have an impact on most of the components of the OSF stack, most of which come from the irON ontology. Here is the list of these irON properties that impact other parts of the system, mainly related to different user interfaces:</p>
<div align="center">
<table border="1" cellspacing="0" cellpadding="10">
<tbody>
<tr>
<td style="padding: 3px; background-color: #ffffe5; font: bold 100% sans-serif; text-align: center;"><strong>irON Property</strong></td>
<td style="padding: 3px; background-color: #ffffe5; font: bold 100% sans-serif; text-align: center;"><strong>Impact on the different user interfaces</strong></td>
</tr>
<tr>
<td style="padding: 3px;"><code>iron:prefLabel</code></td>
<td style="padding: 3px;">Preferred label to refer to an instance record or specific attribute (property)This impacts most of the user interfaces. As soon as a record is described using this property, the user interface uses it to refer to that record (as a link, in a list, as a word, etc.)</td>
</tr>
<tr>
<td style="padding: 3px;"><code>iron:altLabel</code></td>
<td style="padding: 3px;">Alternative label to refer to an instance record or specific attribute (property)This impacts most of the user interfaces. As soon as a record is described using this property, and that the user interface needs more than one label to refer to that record, it is displayed in the user interface (as a link, in a list, as a word, etc.)</td>
</tr>
<tr>
<td style="padding: 3px;"><code>iron:hiddenLabel</code></td>
<td style="padding: 3px;">Hidden label are labels that shouldn&#8217;t be displayed in any user interface, but that may be used by different systems for indexing purposesThis impacts on different indexation system such as <a title=\"Scones\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU2NvbmVz">Scones</a>. As soon as a record is described using this property, and that a system needs more words (synonyms) to use to describe that record, but that label shouldn&#8217;t be displayed in any user interface, these hidden labels will be used.</td>
</tr>
<tr>
<td style="padding: 3px;"><code>iron:description</code></td>
<td style="padding: 3px;">Description of an instance record.This impacts most of the user interfaces. As soon as a record is described using this property, and that the user interface needs a description to refers to that record, it will be displayed in the user interface (as a link, in a list, as a word, etc.)</td>
</tr>
<tr>
<td style="padding: 3px;"><code>iron:prefURL</code></td>
<td style="padding: 3px;">Preferred URL for an instance recordThis impacts most of the user interfaces. As soon as a record is described using this property, and that the user interface needs a web page URL to refer to that record, it will be displayed in the user interface (as a link)</td>
</tr>
</tbody>
</table>
</div>
<h3>User Interface &#8216;Short&#8217; Labels</h3>
<p>There are a few properties that impact most of the components of the OSF stack. Here is the list of SCO properties that impact other parts of the system, mainly related to different user interfaces:</p>
<div align="center">
<table border="1" cellspacing="0" cellpadding="10">
<tbody>
<tr>
<td style="padding: 3px; background-color: #ffffe5; font: bold 100% sans-serif; text-align: center;"><strong>SCO Property</strong></td>
<td style="padding: 3px; background-color: #ffffe5; font: bold 100% sans-serif; text-align: center;"><strong>Impact on the different user interfaces</strong></td>
</tr>
<tr>
<td style="padding: 3px;"><code>sco:shortLabel</code></td>
<td style="padding: 3px;">The short label is used to display a short version of the label of an attribute/type where it has to be displayed in a restrained region of a component.This impacts multiple different kinds of user interfaces (including the semantic components) in the way that if the user interface knows that the place available to display the label is limited, it will utilize the <code>sco:shortLabel</code> value before any other label values that may be defined for that record.</td>
</tr>
</tbody>
</table>
</div>
<h3>Hierarchical Displays</h3>
<p>The way ontologies define a class or a property structure also has an impact on different kinds of hierarchical displays. An example of this is the &#8220;Filter by Kinds&#8221; section of the <a title=\"Individual conStruct Search Tool\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvSW5kaXZpZHVhbF9jb25TdHJ1Y3RfU2VhcmNoX1Rvb2w=">structSearch</a> and <a title=\"Individual conStruct Browse Tool\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvSW5kaXZpZHVhbF9jb25TdHJ1Y3RfQnJvd3NlX1Rvb2w=">structBrowse</a> modules. The possible filters that may be applied to a search query will be displayed to the user according to the hierarchy as defined in the ontologies.</p>
<h2>Integrate Heterogeneous Data Sources</h2>
<p>The principle reason why the Open Semantic Framework uses RDF and ontologies to describe all the data it indexes and manages is to facilitate data integration from multiple and heterogeneous data sources. The premise of using RDF and ontologies is:</p>
<div>The RDF framework, along with using ontologies as schema, is the most flexible means currently available to describe any kind of data. The RDF-ontology combination can be used to represent any data coming from any other source, data management system, format, or unstructured to structured basis for describing information. (See further the <a href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ta2JlcmdtYW4uY29tLzQ4My9hZHZhbnRhZ2VzLWFuZC1teXRocy1vZi1yZGYv" rel=\"nofollow\">Advantages and Myths of RDF</a>.)</div>
<p>This foundation leads to the extreme flexibility of the Open Semantic Framework. The rationale behind this flexibility, and its benefits, has been described in many locations within this wiki. You may also want to see this article on <a href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=Li4vaW5kZXgucGhwLzIwMTEvMDkvMjcvb25lLW9mLXNlbWFudGljLXdlYnMtYWRkZWQtdmFsdWUv" rel=\"nofollow\">One of the Semantic Web's Core Added Value</a>.</p>
<p>Ontologies have a dramatic &#8212; and positive &#8212; impact on the data integration and presentation tasks within an OSF instance.</p>
<h2>Define Component Selections</h2>
<p>A key aspect of the SCO Ontology is its use as the means to define what semantic components (or widgets) display what types of information within data records.</p>
<p>These assignments are done via the <a title=\"SControl\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU0NvbnRyb2w=">sControl</a> component. The properties for this component define what components may display what type (class) of data records. Here is the list of SCO properties that impact the sControl&#8217;s behaviors:</p>
<div align="center">
<table border="1" cellspacing="0" cellpadding="10">
<tbody>
<tr>
<td style="padding: 3px; background-color: #ffffe5; font: bold 100% sans-serif; text-align: center;"><strong>SCO Property</strong></td>
<td style="padding: 3px; background-color: #ffffe5; font: bold 100% sans-serif; text-align: center;"><strong>Impact on the sControl component</strong></td>
</tr>
<tr>
<td style="padding: 3px;"><code>sco:displayControl</code></td>
<td style="padding: 3px;">Annotate a class or a property to reference it to a display control. This indicates what are the semantic components that can normally be used to display some information about a record of a certain type, or a record that is described using some property.This property impacts the behavior of the sControl component in the sense that for a given record&#8217;s description, and a given ontology, the sControl component will select different semantic controls for displays. The actual information displayed and with what widget(s) depends on the type of the record and the properties that are used to describe it.</td>
</tr>
<tr>
<td style="padding: 3px;"><code>sco:comparableWith</code></td>
<td style="padding: 3px;">Is is possible to specify a &#8220;comparableWith&#8221; relation between two predicates. These comparable attributes have the same allowedValue(s), and the semantics of the predicates that are deemed comparable are the same. Since the kinds of values, and their semantics, are the same, they are then considered comparable.This property is normally applied when it is desirable, for example, to plot values of different attributes describing similar records on some visualization component (for example, a linear chart).This property impacts the behavior of the sControl component in the sense that for a given record&#8217;s description, and a given ontology, the sControl component will display information about multiple input records depending if the value of some of the properties used to describe it are comparable.</td>
</tr>
</tbody>
</table>
</div>
<h2>Define Component Behaviors</h2>
<p>In the Open Semantic Framework, one of the most important roles of ontologies is to define the interaction between different pieces of the system. Because of the extent of these interactions, this section is the longest and most detailed amongst all of the dozen or so ontology roles.</p>
<p>The SCO ontology can have multiple effects on multiple parts of an OSF instance. This section describes those interactions.</p>
<h3>sMap Component</h3>
<p>The <a title=\"SMap\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU01hcA==">sMap</a> component had different behaviors depending on how its input record is described. Here is the list of SCO properties that will have an impact on the sMap&#8217;s behaviors:</p>
<div align="center">
<table border="1" cellspacing="0" cellpadding="10">
<tbody>
<tr>
<td style="padding: 3px; background-color: #ffffe5; font: bold 100% sans-serif; text-align: center;"><strong>SCO Property</strong></td>
<td style="padding: 3px; background-color: #ffffe5; font: bold 100% sans-serif; text-align: center;"><strong>Impact on the sMap component</strong></td>
</tr>
<tr>
<td style="padding: 3px;"><code>sco:gisMap</code></td>
<td style="padding: 3px;">Reference a map binary file created created from a ShapeFile map file and <a href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2dpdGh1Yi5jb20vc3VubGlnaHRsYWJzL2NsZWFybWFwcy90cmVlL21hc3Rlci90b29scy8=" rel=\"nofollow\">ClearMapsBuilder</a>. The referenced map file is a serialized ActionScript object.The <code>sco:gisMap</code> defines the first layout that is related to a given resource. Normally, this resource is part of the map related by the gisMap predicate. Read more about maps in the <a title=\"SMap\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU01hcA==">sMap</a>documentation page.There is only one gisMap relationship per resource, other relationships should be made with the <code>sco:relatedGisMap</code>predicate.This property impacts the behavior of the sMap component in the sense that it is the record&#8217;s description, and is the property that tells the component what map to render to the user.</td>
</tr>
<tr>
<td style="padding: 3px;"><code>sco:relatedGisMap</code></td>
<td style="padding: 3px;">Reference a map binary file created created from a ShapeFile map file and ClearMapsBuilder. The referenced map file is a serialized ActionScript object.The <code>sco:relatedGisMap</code> defines a related map layout that is related to a given resource. The resource is related to that map layer in some ways, but it is not necessarily part of the layer. Read more about maps in the <a title=\"SMap\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU01hcA==">sMap</a>documentation page.This property impacts the behavior of the sMap component in the sense that it is the record&#8217;s description, and is the property that tells the component what map to render to the user.</td>
</tr>
</tbody>
</table>
</div>
<h3>sWebMap Component</h3>
<p>The <a title=\"SWebMap\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU1dlYk1hcA==">sWebMap</a> component has different behaviors depending on how its input record is described. Here is the list of SCO and <a href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly9naXRodWIuY29tL3N0cnVjdHVyZWRkeW5hbWljcy9PbnRvbG9naWVzLU9wZW4tU2VtYW50aWMtRnJhbWV3b3JrL3RyZWUvbWFzdGVyL3dnczg0" rel=\"nofollow\">WGS84</a> properties that impact the behavior of an sWebMap:</p>
<div align="center">
<table border="1" cellspacing="0" cellpadding="10">
<tbody>
<tr>
<td style="padding: 3px; background-color: #ffffe5; font: bold 100% sans-serif; text-align: center;"><strong>SCO/WGS84 Property</strong></td>
<td style="padding: 3px; background-color: #ffffe5; font: bold 100% sans-serif; text-align: center;"><strong>Impact on the sWebMap component</strong></td>
</tr>
<tr>
<td style="padding: 3px;"><code>sco:polygonCoordinates</code></td>
<td style="padding: 3px;">Defines the coordinates of a polygon shape that represents a geographic area determined by a record.<a href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9hcGlzL2ttbC9kb2N1bWVudGF0aW9uL2ttbHJlZmVyZW5jZS5odG1sI2Nvb3JkaW5hdGVz" rel=\"nofollow\">Coordinates are defined as coordinates in KML</a>This property impacts the behavior of the sWebMap component in the sense that for a given <a title=\"StructXML\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU3RydWN0WE1MIy4zQ3Jlc3VsdHNldF8uMkYuM0U=">resultset</a> of records, polygon shapes are displayed on a World map for each of the records described with the property.</td>
</tr>
<tr>
<td style="padding: 3px;"><code>sco:polylineCoordinates</code></td>
<td style="padding: 3px;">Defines the coordinates of a polyline shape that represents a record on a map.<a href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9hcGlzL2ttbC9kb2N1bWVudGF0aW9uL2ttbHJlZmVyZW5jZS5odG1sI2Nvb3JkaW5hdGVz" rel=\"nofollow\">Coordinates are defined as coordinates in KML</a>This property impacts the behavior of the sWebMap component in the sense that for a given <a title=\"StructXML\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU3RydWN0WE1MIy4zQ3Jlc3VsdHNldF8uMkYuM0U=">resultset</a> of records, polylines are displayed on a World map for each of the records described with the property.</td>
</tr>
<tr>
<td style="padding: 3px;"><code>sco:mapMarkerImageUrl</code></td>
<td style="padding: 3px;">URL of an icon image to use as a marker on a web map. Normally, this property is used to annotate a Class description. All of the records belonging to that class are marked on a map using this icon image.This property impacts the behavior of the sWebMap component in the sense for a given <a title=\"StructXML\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU3RydWN0WE1MIy4zQ3Jlc3VsdHNldF8uMkYuM0U=">resultset</a> of records, and a given ontology description, all records of a given type of class that are displayed with the marker icon found at the URL specified for <code>sco:mapMarkerImageUrl</code>.</td>
</tr>
<tr>
<td style="padding: 3px;"><code>wgs84:lat</code></td>
<td style="padding: 3px;">Latitude coordinate of a record on a World map.This property impacts the behavior of the sWebMap component in the sense for a given <a title=\"StructXML\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU3RydWN0WE1MIy4zQ3Jlc3VsdHNldF8uMkYuM0U=">resultset</a> of records, each record with a wgs84:lat property is displayed on the sWebMap at that latitude coordinate.</td>
</tr>
<tr>
<td style="padding: 3px;"><code>wgs84:long</code></td>
<td style="padding: 3px;">Longitude coordinate of a record on a World map.This property impacts the behavior of the sWebMap component in the sense for a given <a title=\"StructXML\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU3RydWN0WE1MIy4zQ3Jlc3VsdHNldF8uMkYuM0U=">resultset</a> of records, each record with a wgs84:long property is displayed on the sWebMap at that longitude coordinate.</td>
</tr>
<tr>
<td style="padding: 3px;"><code>wgs84:alt</code></td>
<td style="padding: 3px;">Altitude of a record on a World map.This property impacts the behavior of the sWebMap component in the sense for a given <a title=\"StructXML\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU3RydWN0WE1MIy4zQ3Jlc3VsdHNldF8uMkYuM0U=">resultset</a> of records, each record with a wgs84:alt property is displayed on the sWebMap at that altitude indicator.</td>
</tr>
</tbody>
</table>
</div>
<h3>sStory Component</h3>
<p>The <a title=\"SStory\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU1N0b3J5">sStory </a> component has different behaviors depending on how its input record is described. Here is the list of SCO properties that impact an sStory component:</p>
<div align="center">
<table border="1" cellspacing="0" cellpadding="10">
<tbody>
<tr>
<td style="padding: 3px; background-color: #ffffe5; font: bold 100% sans-serif; text-align: center;"><strong>SCO Property</strong></td>
<td style="padding: 3px; background-color: #ffffe5; font: bold 100% sans-serif; text-align: center;"><strong>Impact on the sStory component</strong></td>
</tr>
<tr>
<td style="padding: 3px;"><code>sco:storyUrl</code></td>
<td style="padding: 3px;">URL reference to a webpage representation of the story that got indexed into <a title=\"Scones\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU2NvbmVz">Scones</a>.This property impacts the behavior of the sStory component in the sense that for a given record&#8217;s description, the sStory component refers users to the original webpage URL that got processed by Scones and is displayed in the sStory component.</td>
</tr>
<tr>
<td style="padding: 3px;"><code>sco:storyTextUri</code></td>
<td style="padding: 3px;">URI reference to the text of a storyThis property impacts the behavior of the sStory component in the sense that for a given record&#8217;s description, the sStory component uses the text document referenced by this property to display in the text display of the sStory component.</td>
</tr>
<tr>
<td style="padding: 3px;"><code>sco:storyAnnotatedTextUri</code></td>
<td style="padding: 3px;">URI reference to the annotated text of a story. Annotations are serialized in XML given the <a title=\"GATE\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvR0FURQ==">GATE</a>format.This property impacts the behavior of the sStory component in the sense that for a given record&#8217;s description, the sStory component usesw the Gate annotated text document referenced by this property to display the tagged concepts in the tags section of the sStory viewer, and also uses it to highlight the tagged terms within the text viewer.</td>
</tr>
</tbody>
</table>
</div>
<h3>sBarChart and sLinearChart Components</h3>
<p>The <a title=\"SBarChart\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU0JhckNoYXJ0">sBarChart</a> and the <a title=\"SLinearChart\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU0xpbmVhckNoYXJ0">sLinearChart</a> components exhibit different behaviors depending on how the input records that are enabled for these component types are described. Here is the list of the SCO properties that impact this behavior:</p>
<div align="center">
<table border="1" cellspacing="0" cellpadding="10">
<tbody>
<tr>
<td style="padding: 3px; background-color: #ffffe5; font: bold 100% sans-serif; text-align: center;"><strong>SCO Property</strong></td>
<td style="padding: 3px; background-color: #ffffe5; font: bold 100% sans-serif; text-align: center;"><strong>Impact on the sBarChart and the sLinearChart components</strong></td>
</tr>
<tr>
<td style="padding: 3px;"><code>sco:comparableWith</code></td>
<td style="padding: 3px;">Is is possible to specify a &#8220;comparableWith&#8221; relation between two predicates. These comparable attributes have the same allowedValue(s), and the semantics of the predicates that are deemed comparable are the same. Since the kinds of values, and their semantics, are the same, they are then considered comparable.This property is normally applied when it is desirable, for example, to plot values of different attributes describing similar records on some visualization component (for example, a linear chart).This property impacts the behavior of the sLinearChart component in the sense that for a given record&#8217;s description, and a given ontology, the sLinearChart component will display the values of the comparable attributes on the a linear chart.</td>
</tr>
<tr>
<td style="padding: 3px;"><code>sco:unitType</code></td>
<td style="padding: 3px;">URI reference to a unit type ontology. The <code>sco:unitType</code> property is used to determine the type of unit referenced by a property. For example, if a data property has <code>xsd:float</code> as range, then <code>sco:unitType</code>determines what kind of things referred to by this number.The semantic components make all of the properties that share the same <code>sco:unitType</code>comparable (so, possibly displayable on the same semantic component, such as the sBarChart and the sLinearChart).This property impacts the behavior of the sLinarChart and the sBarChart component in the sense that for a given record&#8217;s description, and a given ontology, the sLinarChart or the sBarChart can be selected and used to display the values with the same unit type on one of these charts.</td>
</tr>
<tr>
<td style="padding: 3px;"><code>sco:orderingValue</code></td>
<td style="padding: 3px;">The value of the <code>sco:orderingValue</code> predicate is used to order the predicate of a set of comparable predicates. This set of comparable predicates is normally created from the set composed of all <code>compatibleWith</code>predicates. This is normally used to plot, and order, values of different attributes describing similar records on some visualization component (for example, a linear chart).This property impacts the behavior of the sLinarChart and the sBarChart component in the sense that for a given record&#8217;s description, and a given ontology, the sLinarChart or the sBarChart will order the values of comparable properties on the charts, according to the ordering value defined for each property.</td>
</tr>
</tbody>
</table>
</div>
<h3>sRelationBrowser</h3>
<p>The <a title=\"SRelationBrowser\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU1JlbGF0aW9uQnJvd3Nlcg==">sRelationBrowser</a> component exhibits different behaviors depending on how its input record is described. Here is the list of SCO properties that impact the sRelationBrowser component:</p>
<div align="center">
<table border="1" cellspacing="0" cellpadding="10">
<tbody>
<tr>
<td style="padding: 3px; background-color: #ffffe5; font: bold 100% sans-serif; text-align: center;"><strong>SCO Property</strong></td>
<td style="padding: 3px; background-color: #ffffe5; font: bold 100% sans-serif; text-align: center;"><strong>Impact on the sRelationBrowser component</strong></td>
</tr>
<tr>
<td style="padding: 3px;"><code>sco:relationBrowserNodeType</code></td>
<td style="padding: 3px;">Reference to a relation browser node type used to skin a node according to its type. This should be a reference to a type URI defined in a relation browse nodes skins configuration file. If a record is defined with this property, the relation browser tries to find a node of that type to apply to it as a skin.This property impacts the behavior of the sRelationBrowser component in the sense that for a given record&#8217;s description, and a given ontology, the sRelationBrowser component uses the skin specified by the <code>sco:relationBrowserNodeType</code> attribute to display the record in the sRelationBrowser component.</td>
</tr>
</tbody>
</table>
</div>
<h3>sDashboard</h3>
<p>The <a title=\"SDashboard (page does not exist)\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHA/dGl0bGU9U0Rhc2hib2FyZCZhbXA7YWN0aW9uPWVkaXQmYW1wO3JlZGxpbms9MQ==">sDashboard</a> component exhibits different behaviors depending on how its input record is described. Here is the list of SCO properties that impact the sDashboard component:</p>
<div align="center">
<table border="1" cellspacing="0" cellpadding="10">
<tbody>
<tr>
<td style="padding: 3px; background-color: #ffffe5; font: bold 100% sans-serif; text-align: center;"><strong>SCO Property</strong></td>
<td style="padding: 3px; background-color: #ffffe5; font: bold 100% sans-serif; text-align: center;"><strong>Impact on the sDashboard component</strong></td>
</tr>
<tr>
<td style="padding: 3px;"><code>sco:dashboardSessionFileUri</code></td>
<td style="padding: 3px;">URI reference to the Dashboard session accessible on the Web.This property impacts the behavior of the sRelationBrowser component in the sense that for a given record&#8217;s description, and a given ontology, the sDashboard component loads the Dashboard session referenced by this property.</td>
</tr>
</tbody>
</table>
</div>
<h2>Guide Visualization Template Selection</h2>
<p>One of the core features of the conStruct set of Drupal modules is the ability to use different display templates depending on the types of records available. The selection of these templates is based on the types of those records and the type hierarchies described by the OSF ontologies. This section describes how these ontologies guide template selections.</p>
<p>As a refresher on templates and their use, see the <a title=\"Building conStruct Templates\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvQnVpbGRpbmdfY29uU3RydWN0X1RlbXBsYXRlcw==">Building conStruct Templates</a> document. It describes how the templating engine works and how to create various templates.</p>
<h3>Template Selection</h3>
<p>Template selection is the action of binding an instance record to a display template based on its <em>type</em>. Three things are required to make this happen:</p>
<ol>
<li>Instance records have to be typed</li>
<li>An ontological structure of type relationships (via <code>subClasses</code>) has to exist in one or more OSF ontology(ies), and</li>
<li>A template has to exist for the type of the instance record.</li>
</ol>
<p>(<strong>Note:</strong> a specific template by type is not strictly required, since lacking a specific template for the target type, the system will invoke the nearest template up the parental chain in the governing ontology structure, eventually getting to the most generic template available, that for &#8220;thing&#8221;.)</p>
<h3>Impact of Ontologies on Template Selection</h3>
<p>conStruct&#8217;s templating engine selects record display templates based on the class hierarchy loaded on a OSF instance. It also uses inference on types to select the proper template for a given record.</p>
<p>Let&#8217;s say that we try to display information about a <code>foaf:Person</code> instance record. What the system attempts to do is to find a template that displays information about this kind of instance record. First, the <code>foaf:Person</code> type (class) has to be defined in the ontological structure of the OSF instance; if it is not, then no specific template will be selected and the system will default to using the <code>owl_thing.html</code> template (see below). If the type (class) is found, the system will next check to see if a template exists for that specific type. If one exists one, it will use the matching template. If one does not, it will next select the parent class of the type and try the match again. If it again fails, it will continue its test up the parental chain. If all tests fail, it will use the default <code>owl_thing.html</code> template. Whichever template is selected then becomes the basis for formatting and presenting the visual record display.</p>
<p>We can use a simple class hierarchy, matched to a simple set of available template files, to illustrate how ontologies impact the conStruct templating system.</p>
<div>
<table width="100%" border="1" cellspacing="0" cellpadding="10">
<tbody>
<tr>
<td style="padding: 3px; background-color: #ffffe5; font: bold 100% sans-serif; text-align: center;"><strong>Loaded Class Hierarchy</strong></td>
<td style="padding: 3px; background-color: #ffffe5; font: bold 100% sans-serif; text-align: center;"><strong>Available template files</strong></td>
</tr>
<tr>
<td style="padding: 3px;">
<pre>owl:Thing
   |
   |
    --&gt; foaf:Agent
            |
            |
            |--&gt; foaf:Person
            |
            |
             --&gt; foaf:Organization</pre>
</td>
<td style="padding: 3px;">
<pre>  owl_thing.tpl
  foaf_agent.tpl
  foaf_organization.tpl</pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>Now, let&#8217;s say that our OSF portal is about to display information about a <code>foaf:Person</code> record. As we can notice, there is no <code>foaf_person.tpl</code> template available for a <code>foaf:Person</code>. However, because of the ontology structure, the system next attempts to select a template from a <em>parent</em> class of that <code>foaf:Person</code>.</p>
<p>What the system would do is to check if there is a template available for a record of type <code>foaf:Person</code>. Since there is none, it would try to find one for a parent type, so in this case the <code>foaf:Agent</code> class. In our example, there is now a match. The templating engine thus uses the <code>foaf_agent.tpl</code> template to display information about the <code>foaf:Person</code> record.</p>
<p>Were the <code>foaf_agent.tpl</code> not to exist, then the templating engine would fall back to the <code>owl_thing.tpl</code> template, which is considered to be the &#8220;generic record display template&#8221;, or the template of last resort.</p>
<p>This design means that if:</p>
<ol>
<li>the ontological structure changes over time, or</li>
<li>new templates get added to the system</li>
</ol>
<p>then there may be an impact on how the record gets displayed.</p>
<p>The major advantage of this design is that more and more specific formatting templates may be added to an OSF installation over time, both improving the tailored look of results displays and accommodating more structure and relationships as they evolve.</p>
<h2>Provide Reasoning and Inference</h2>
<p>A standard use of ontologies is for reasoning and inference, and those used by OSF are no exception.</p>
<p>By extension, however, we can also use these same capabilities to check on data consistency and coherence. This is an important feature of the system since the system can detect if there are logical inconsistencies or logical incoherencies that have been developed by the system administrator during ontology growth and development. Having coherent and consistent ontologies means that we have the proper foundations to create consistent and coherent datasets of instance records.</p>
<p>See further the discussion on <a title=\"Inferencing with ProtÃ©gÃ©\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvSW5mZXJlbmNpbmdfd2l0aF9Qcm90JUMzJUE5ZyVDMyVBOQ==">reasoning using ProtÃ©gÃ©</a>.</p>
<h2>Guide Content Filtering</h2>
<p>Filtering data is the action of getting a subset of records from a complete dataset based on some selection criteria. In OSF, the predominant share of filtering is done using the structWSF <a title=\"Search\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU2VhcmNo">Search</a> Web service endpoint. The a minority of filtering is done using the <a title=\"SPARQL\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU1BBUlFM">SPARQL</a> endpoint. It is also possible to filter via the AGGR aggregation ontology.</p>
<p>Possible filtering criteria for the Search endpoint are:</p>
<ol>
<li>Filtering by type(s)</li>
<li>Filtering by attribute(s)</li>
<li>Filtering by attribute(s)/value(s)</li>
<li>Filtering by geo-localization (within a given geographical area)</li>
</ol>
<p>These filtering activities are performed by different tools of the stack, such as:</p>
<ul>
<li>structSearch</li>
<li>structBrowse</li>
<li>sWebMap</li>
</ul>
<p>These tools are impacted by the definition of the loaded ontologies. The filtering of the values by types, attributes and attributes/values requires an ontology class or an ontology property as filtering criteria.</p>
<h3>Filtering with Inference</h3>
<p>Also, the <em>any</em> <a title=\"Search\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU2VhcmNo">Search</a> query can be performed with <code>inference</code> enabled. Just like with the template selection section noted above, inference can have a big impact on the number and nature of returned results. Let&#8217;s consider this example class structure:</p>
<div>
<table width="100%" border="1" cellspacing="0" cellpadding="10">
<tbody>
<tr>
<td style="padding: 3px; background-color: #ffffe5; font: bold 100% sans-serif; text-align: center;"><strong>Loaded Class Hierarchy</strong></td>
<td style="padding: 3px; background-color: #ffffe5; font: bold 100% sans-serif; text-align: center;"><strong>Indexer Records</strong></td>
</tr>
<tr>
<td style="padding: 3px;">
<pre>owl:Thing
   |
   |
    --&gt; bibo:Document
            |
            |
            |
             --&gt; bibo:Image
                     |
                     |
                     |--&gt; muni:HeritageImage
                     |        |
                     |        |
                     |         --&gt; muni:ParkHeritageImage
                     |
                     |
                     |--&gt; muni:NeighborhoodImage
                     |
                     |
                     |
                      --&gt; muni:ParkImage</pre>
</td>
<td style="padding: 3px;">
<pre>  &lt;1&gt; a bibo:Image .
  &lt;2&gt; a muni:HeritageImage .
  &lt;3&gt; a muni:HeritageImage .
  &lt;4&gt; a muni:ParkHeritageImage .
  &lt;5&gt; a muni:ParlImage .</pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>This class structure shows a hierarchy of images where the leaf classes are topical image classes (so classes where their individuals are considered images representing one of the topic: Heritage, Neighborhood and Park). Now let&#8217;s see how this class structure impacts Search queries, and returned results, by different tools (structSearch, structBrowse, sWebMap and others).</p>
<p>Here is a series of Search queries sent to a structWSF instance that has this class hierarchy loaded, using the sample specification noted above. This tables shows the results potentially returned by the Search endpoint with and without inferencing turned on:</p>
<div>
<table width="100%" border="1" cellspacing="0" cellpadding="10">
<tbody>
<tr>
<td style="padding: 3px; background-color: #ffffe5; font: bold 100% sans-serif; text-align: center;"><strong>Use Case</strong></td>
<td style="padding: 3px; background-color: #ffffe5; font: bold 100% sans-serif; text-align: center;"><strong>Type Filter</strong></td>
<td style="padding: 3px; background-color: #ffffe5; font: bold 100% sans-serif; text-align: center;"><strong>Inference</strong></td>
<td style="padding: 3px; background-color: #ffffe5; font: bold 100% sans-serif; text-align: center;"><strong>Returned Results</strong></td>
</tr>
<tr>
<td style="padding: 3px;">#1</td>
<td style="padding: 3px;"><code>muni:HeritageImage</code></td>
<td style="padding: 3px;">Off</td>
<td style="padding: 3px;">
<pre>&lt;2&gt; a muni:HeritageImage .
&lt;3&gt; a muni:HeritageImage .</pre>
</td>
</tr>
<tr>
<td style="padding: 3px;">#2</td>
<td style="padding: 3px;"><code>muni:HeritageImage</code></td>
<td style="padding: 3px;">On</td>
<td style="padding: 3px;">
<pre>&lt;2&gt; a muni:HeritageImage .
&lt;3&gt; a muni:HeritageImage .
&lt;4&gt; a muni:ParkHeritageImage .</pre>
</td>
</tr>
<tr>
<td style="padding: 3px;">#3</td>
<td style="padding: 3px;"><code>bibo:Image</code></td>
<td style="padding: 3px;">Off</td>
<td style="padding: 3px;"></td>
</tr>
<tr>
<td style="padding: 3px;">#4</td>
<td style="padding: 3px;"><code>bibo:Image</code></td>
<td style="padding: 3px;">On</td>
<td style="padding: 3px;">
<pre>&lt;1&gt; a bibo:Image .
&lt;2&gt; a muni:HeritageImage .
&lt;3&gt; a muni:HeritageImage .
&lt;4&gt; a muni:ParkHeritageImage .
&lt;5&gt; a muni:ParlImage .</pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>In the Use Case #1, the user requests all of the <code>muni:HeritageImages</code> without inferencing. This means that the Search endpoint will return all of the records that have been typed as <code>muni:HeritageImage</code>. In this case, the records <code>&lt;2&gt; and &lt;3&gt;</code> got returned.</p>
<p>Use Case #2 is a variant of Use Case #1, only now with inferencing enabled. In this use case, the Search endpoint will return all the <code>muni:HeritageImage</code> and all the records that are typed with one of its subtypes (in this case, <code>muni:ParkHeritageImage</code>). For this query, records <code>&lt;2&gt;, &lt;3&gt; and &lt;4&gt;</code> got returned. This case shows where ontologies can have a dramatic impact on the system. If we modify that class hierarchy and put the <code>muni:ParkHeritageImage</code> as being a sub-class-of <code>bibo:Image</code>, then the same results would be returned for Use Case #2 than we got with Use Case #1.</p>
<p>With Use Case #3, the endpoint does not return any results because inferencing is disabled, and because there is no record typed as <code>bibo:Image</code>.</p>
<p>Use Case #4 is a variant of Use Case #3 where inferencing is enabled. The endpoint returns all the image records because all of them are <code>bibo:Image</code> by inference on type.</p>
<h3>Filtering via the AGGR Ontology</h3>
<p>The <a title=\"AGGR Ontology\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvQUdHUl9PbnRvbG9neQ==">AGGR Ontology</a> also has an impact on anything that displays facets of filtered searches. Amongst others, it impacts the structSearch and structBrowse <a title=\"ConStruct\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvQ29uU3RydWN0">conStruct</a> modules. It also impacts different user interfaces that use the Search Web service endpoint to perform auto-completion tasks.</p>
<h2>Tag Concepts in Text Documents</h2>
<p>In the <a title=\"Open Semantic Framework\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvT3Blbl9TZW1hbnRpY19GcmFtZXdvcms=">Open Semantic Framework</a>, the <a title=\"Scones\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU2NvbmVz">Scones</a> Web service endpoint is what is used to analyze unstructured text documents, then turning them into semi-structured text documents by automatically tagging concepts. The concept tagging takes place using <a title=\"Ontology-based Information Extraction\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvT250b2xvZ3ktYmFzZWRfSW5mb3JtYXRpb25fRXh0cmFjdGlvbg==">ontology-based information extraction</a>, or OBIE. Named entity dictionaries are the basis for entity tagging.</p>
<p>These concepts used for the tagging come from selected ontologies loaded on the system. The way these ontologies have been created, and the way the classes and named individuals have been defined, has a dramatic impact on the quality of the documents tagged by Scones.</p>
<p>Scones uses two things from ontologies:</p>
<ul>
<li>its classes</li>
<li>its named individuals</li>
</ul>
<p>Depending on settings, one or both of these sources may be used for scones tagging.</p>
<p>There are a few properties intimately related to the Scones Web service endpoint:</p>
<div align="center">
<table border="1" cellspacing="0" cellpadding="10">
<tbody>
<tr>
<td style="padding: 3px; background-color: #ffffe5; font: bold 100% sans-serif; text-align: center;"><strong>Properties</strong></td>
<td style="padding: 3px; background-color: #ffffe5; font: bold 100% sans-serif; text-align: center;"><strong>Impact on Scones</strong></td>
</tr>
<tr>
<td style="padding: 3px;">iron:prefLabel</td>
<td style="padding: 3px;">Preferred label to refer to an instance record.This property impacts the behavior of the Scones tagger in the sense that the value of the <code>iron:prefLabel</code> property is used to detect and tag as a reference the corresponding class or named individual.</td>
</tr>
<tr>
<td style="padding: 3px;">iron:altLabel</td>
<td style="padding: 3px;">Alternative label to refer to an instance record.This property impacts the behavior of the Scones tagger in the sense that the value(s) of the <code>iron:altLabel</code> property is used to detect and tag as a reference the corresponding class(es) or named individual(s).</td>
</tr>
<tr>
<td style="padding: 3px;">iron:hiddenLabel</td>
<td style="padding: 3px;">Hidden label are labels that are not displayed in any user interface, but may be used by different systems for indexing purposes (such as for recognizing misspellings).This property impacts the behavior of the Scones tagger in the sense that the value(s) of the <code>iron:hiddenLabel</code> property is used to detect and tag as a reference the corresponding class(es) or named individual(s). As we saw above, hidden labels are not displayed in user interfaces. However, they <em><strong>are</strong></em> used to specify variations in the way some of the other labels may be written. These hidden labels are explicitly used by the Scones tagger.</td>
</tr>
<tr>
<td style="padding: 3px;">sco:namedEntity</td>
<td style="padding: 3px;">Specifies if a resource can be considered a named entity. Literal value: &#8220;true&#8221; or &#8220;false&#8221;.This property impacts the behavior of the Scones tagger in the sense that all of the records with the <code>sco:namedEntity</code> property set to <code>true</code>are automatically added by the Scones endpoint to its Named Entities Dictionaries.This means that all the records that are specified to be named entities will be used by Scones to tag any input text documents.</td>
</tr>
</tbody>
</table>
</div>
<h2>Help Navigate and Organize Web Portals</h2>
<p>In OSF, ontologies also have an impact on the general organization of a Web portal and how it is navigated.</p>
<h3>Portal Navigation</h3>
<p>In an OSF portal, its domain ontologies use the <code>sRelationBrowser</code> for general navigation. The relation browser is a tool that lets users dynamically navigate a graph (that is, nodes with arcs that links these nodes). The most widespread usage of the relation browser is to let users navigate the links between ontology concepts. These concepts are the anchor points of what other content is available on the Web portal. By navigating the concepts (classes) structure, users are able to explore an OSF portal&#8217;s entire content.</p>
<p>Each node in the <code>sRelationBrowser</code> semantic component is linked to whatever other kinds of related records exist in the system. Depending on the types of those records, other semantic components can then be invoked to display this tightly related content for each node.</p>
<p>Ontologies thus impact navigation and discovery on an OSF portal in two ways:</p>
<ol>
<li>They impact the navigation of the structure by defining which concepts are linked to other concepts and with what property</li>
<li>They define what related records may get displayed to the user based on their classes and properties.</li>
</ol>
<h3>Layouts Organization</h3>
<p>OSF Web portals are mainly organized by <a title=\"Configuration Workflow\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvQ29uZmlndXJhdGlvbl9Xb3JrZmxvdyNMYXlvdXRz">Layouts</a>. A <a title=\"Layout Concept\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvTGF5b3V0X0NvbmNlcHQ=">layout</a> is a specific page presentation format with specific design, components and ordering and sizing of those components. This page presentation is highly influenced by the kind of things indexed in the system. Generally, layouts present records of a certain type (or family of types), along with specialized functions that users are able to use to perform different actions on that set of records.</p>
<p>Here are a few examples of such layouts:</p>
<ul>
<li><a title=\"Sample Chart Template\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU2FtcGxlX0NoYXJ0X1RlbXBsYXRl">Sample Chart Template</a></li>
<li><a title=\"Sample Image Template\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU2FtcGxlX0ltYWdlX1RlbXBsYXRl">Sample Image Template</a></li>
<li><a title=\"Sample Topic Template\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU2FtcGxlX1RvcGljX1RlbXBsYXRl">Sample Topic Template</a></li>
<li><a title=\"Sample WebMap Template\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU2FtcGxlX1dlYk1hcF9UZW1wbGF0ZQ==">Sample WebMap Template</a></li>
</ul>
<p>These layouts aggregate all of the records of a certain type (like images of all kinds), display them using different kind of tools (like an Images Gallery), and filter them depending on different filtering criteria (like mapping the position where each image got captured, on a map, within a specific neighborhood area).</p>
<p>The ontologies impact the general organization of the Web portal because of the kind of things that are indexed in the system interacting with the available layouts.</p>
<h2>Manage Datasets and Ontologies</h2>
<p>Basic settings for managing datasets and ontologies is provided by the <a title=\"WSF Ontology\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvV1NGX09udG9sb2d5">WSF Ontology</a>. It presently does so via two mechanisms.</p>
<h4>Datasets Syncing Framework</h4>
<p>The <a title=\"Datasets Syncing Framework\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvRGF0YXNldHNfU3luY2luZ19GcmFtZXdvcms=">Datasets Syncing Framework</a> behaves differently depending on the value of the <code>wsf:crudAction</code> property for each input record.</p>
<div align="center">
<table border="1" cellspacing="0" cellpadding="10">
<tbody>
<tr>
<td style="padding: 3px; background-color: #ffffe5; font: bold 100% sans-serif; text-align: center;"><strong>WSF Property</strong></td>
<td style="padding: 3px; background-color: #ffffe5; font: bold 100% sans-serif; text-align: center;"><strong>Impact on the DSF</strong></td>
</tr>
<tr>
<td style="padding: 3px;"><code>wsf:crudAction</code></td>
<td style="padding: 3px;">States the CRUD action that should be used to index a given record into structWSF. This property is used by the Datasets Syncing Framework to determine if the record feed to it should be created, deleted or updated.The value of this property can be one of:(1) create (2) update (3) deleteThis property impact the behavior of the DSF in the sense that it is the record&#8217;s description, using this property that will tells the framework how to behave (create, delete or update) toward the input record. If nothing is specified, the record will simply be ignored.</td>
</tr>
</tbody>
</table>
</div>
<h4>structOntology</h4>
<p>The <a title=\"StructOntology: Overview\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU3RydWN0T250b2xvZ3k6X092ZXJ2aWV3">structOntology</a> conStruct module exhibits different behavior depending on the value of the <code>wsf:ontologyModified</code> property for each input ontology description.</p>
<div align="center">
<table border="1" cellspacing="0" cellpadding="10">
<tbody>
<tr>
<td style="padding: 3px; background-color: #ffffe5; font: bold 100% sans-serif; text-align: center;"><strong>WSF Property</strong></td>
<td style="padding: 3px; background-color: #ffffe5; font: bold 100% sans-serif; text-align: center;"><strong>Impact on the DSF</strong></td>
</tr>
<tr>
<td style="padding: 3px;"><code>wsf:ontologyModified</code></td>
<td style="padding: 3px;">States if an ontology has been modified since the last time it got saved on the file system of the OSF server instance.This property impacts the behavior of the structOntology module in the sense that if, for an input ontology, the description of that ontology states that this property is &#8220;true&#8221;, then it will notify the user via its loaded ontologies list that the ontology has been modified, and that it has not yet been saved.</td>
</tr>
</tbody>
</table>
</div>
<h2>Set Access Permissions and Registrations</h2>
<p>The <a title=\"WSF Ontology\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvV1NGX09udG9sb2d5">WSF Ontology</a> also has a principal purpose to describe the internal state of a structWSF instance such as the internal access control records, the datasets descriptions, the registered web service endpoints, etc. As a result, this ontology can have multiple effects on other parts of an OSF instance.</p>
<p>The WSF Ontology is used to describe three main areas of a <a title=\"StructWSF\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU3RydWN0V1NG">structWSF</a> installation:</p>
<ol>
<li>datasets registry</li>
<li>access definition registry</li>
<li>registered web services endpoints registry</li>
</ol>
<p>These registries are hosted in some specialized datasets in the triple store (<a title=\"Virtuoso\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvVmlydHVvc28=">Virtuoso</a> for most OSF installations). The information indexed in these different registries is defined using the WSF ontology.</p>
<p>All structWSF Web services are affected by these registries.</p>
 <img src="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1740" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://fgiasson.com/blog/index.php/2011/12/05/role-and-use-of-ontologies-in-the-open-semantic-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Moving Projects from Google Code to GitHub</title>
		<link>http://fgiasson.com/blog/index.php/2011/11/21/moving-projects-from-google-code-to-github/</link>
		<comments>http://fgiasson.com/blog/index.php/2011/11/21/moving-projects-from-google-code-to-github/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 21:29:50 +0000</pubDate>
		<dc:creator>Frederick Giasson</dc:creator>
				<category><![CDATA[conStruct]]></category>
		<category><![CDATA[irON]]></category>
		<category><![CDATA[Open Semantic Framework]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Semantic Components]]></category>
		<category><![CDATA[structWSF]]></category>
		<category><![CDATA[#developer]]></category>
		<category><![CDATA[#git]]></category>
		<category><![CDATA[#github]]></category>
		<category><![CDATA[#google code]]></category>
		<category><![CDATA[#source control]]></category>
		<category><![CDATA[#svn]]></category>

		<guid isPermaLink="false">http://fgiasson.com/blog/?p=1677</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Moving Projects from Google Code to GitHub&amp;rft.aulast=Giasson&amp;rft.aufirst=Frederick&amp;rft.subject=conStruct&amp;rft.subject=irON&amp;rft.subject=Open Semantic Framework&amp;rft.subject=Programming&amp;rft.subject=Semantic Components&amp;rft.subject=structWSF&amp;rft.source=Frederick Giasson&#8217;s Weblog&amp;rft.date=2011-11-21&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://fgiasson.com/blog/index.php/2011/11/21/moving-projects-from-google-code-to-github/&amp;rft.language=English"></span>
Last week we slowly migrated Structured Dynamics&#8216; Google Code Projects to GitHub.We have been thinking about moving to GitHub for some time now, but we only wanted to move projects to it if no prior history and commits were dropped in the process. One motivation for the possible change has been the seeming lack of [...]]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Moving Projects from Google Code to GitHub&amp;rft.aulast=Giasson&amp;rft.aufirst=Frederick&amp;rft.subject=conStruct&amp;rft.subject=irON&amp;rft.subject=Open Semantic Framework&amp;rft.subject=Programming&amp;rft.subject=Semantic Components&amp;rft.subject=structWSF&amp;rft.source=Frederick Giasson&#8217;s Weblog&amp;rft.date=2011-11-21&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://fgiasson.com/blog/index.php/2011/11/21/moving-projects-from-google-code-to-github/&amp;rft.language=English"></span>
<table>
<tbody>
<tr>
<td>Last week we slowly migrated <a title=\"Structured Dynamics LLC.\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3N0cnVjdHVyZWRkeW5hbWljcy5jb20=">Structured Dynamics</a>&#8216; Google Code Projects to <a title=\"Structured Dynamics' Open Source Projects\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly9naXRodWIuY29tL3N0cnVjdHVyZWRkeW5hbWljcw==">GitHub</a>.We have been thinking about moving to GitHub for some time now, but we only wanted to move projects to it if no prior history and commits were dropped in the process. One motivation for the possible change has been the seeming lack of support by Google for certain long-standing services: we are seeing disturbing trends across a number of existing services. We also needed a migration process that would work with all of our various projects, without losing a trunk, branch, tag or commits (and their related comments).</td>
<td><a href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly9naXRodWIuY29tL3N0cnVjdHVyZWRkeW5hbWljcw=="><img class="aligncenter size-medium wp-image-1713" src="http://fgiasson.com/blog/wp-content/uploads/2011/11/github-profile-200x300.png" alt="" width="120" height="180" /></a></td>
</tr>
</tbody>
</table>
<p>It was not until recently that I found a workable process. Other people have successfully migrated Google Code SVN projects to GitHub, but I had yet to find a consolidated guide to do it. It is for this last reason that I write this blog post: to help people, if they desire, to move projects from Google Code to GitHub.</p>
<h3>Moving from Google Code to GitHub</h3>
<p>The protocol outlined below may appear complex, but it looks more intimidating than it really is. Moving a project takes about two to five minutes once your GitHub account and your migration computer is properly configured.</p>
<p>You need four things to move a Google Code SVN project to GitHub:</p>
<ol>
<li>A Google Code project to move</li>
<li>A GitHub user account</li>
<li>SSH keys, and</li>
<li>A <em>migration computer</em> that is configured to migrate the project from Google Code to GitHub. (in this tutorial, we will use a Ubuntu server; but any other Linux/Windows/Mac computer, properly configured, should do the job)</li>
</ol>
<h3>Create GitHub Account</h3>
<p>If you don&#8217;t already own a GitHub account, the first step is to <a title=\"Create GitHub Account\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly9naXRodWIuY29tL3NpZ251cC9mcmVl">create one here</a>.</p>
<h3>Create &amp; Configure SSH Keys</h3>
<p>Once your account has been created, you have to create and setup the SSH keys that you will use to commit the code into the Git Repository on GitHub:</p>
<ol>
<li>Go to the <a title=\"GitHub SSH Keys Registration Page\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly9naXRodWIuY29tL2FjY291bnQvc3No">SSH Keys Registration page of your account</a></li>
<li>If you already have a key, then add it to this page, <a title=\"How to create SSH keys on Windows for GitHub\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2hlbHAuZ2l0aHViLmNvbS93aW4tc2V0LXVwLWdpdC8=">otherwise read this manual to learn how to generate one</a></li>
</ol>
<h3>Configure Migration Server</h3>
<p>The next step is to configure the computer that will be used to migrate the project. For this tutorial, I use a <em>Ubuntu server</em> to do the migration, but any Windows, Linux or Mac computer should do the job if properly configured.</p>
<p>The first step is to install Git and Ruby on that computer:</p>
<div style="overflow:hidden;; " class="alignnone">
<div class="shadow_curl" style="margin:0 !important; max-width:100% !important;"><div class="codecolorer-container bash railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp;<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> git-core <span style="color: #c20cb9; font-weight: bold;">git-svn</span> ruby rubygems</div></td></tr></tbody></table></div>
<img src="http://fgiasson.com/blog/wp-content/plugins/shadows/shadow_curl.png" class="aligncenter shadow_img" style="margin:0 !important;height:10px;width:100%;"></div>
</div>
<p>To perform the migration of a Google Code SVN project to GitHub, we are using a Ruby application called <code><a href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly9naXRodWIuY29tL25pcnZkcnVtL3N2bjJnaXQ=">svn2git</a></code> that is now developed by <a href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly9naXRodWIuY29tL25pcnZkcnVt">Kevin Menard</a>. The next step is to install <code>svn2git</code> on that computer:</p>
<div style="overflow:hidden;; " class="alignnone">
<div class="shadow_curl" style="margin:0 !important; max-width:100% !important;"><div class="codecolorer-container bash railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp;<span style="color: #c20cb9; font-weight: bold;">sudo</span> gem <span style="color: #c20cb9; font-weight: bold;">install</span> svn2git --source http:<span style="color: #000000; font-weight: bold;">//</span>gemcutter.org</div></td></tr></tbody></table></div>
<img src="http://fgiasson.com/blog/wp-content/plugins/shadows/shadow_curl.png" class="aligncenter shadow_img" style="margin:0 !important;height:10px;width:100%;"></div>
</div>
<h3>Migrate Project</h3>
<p>Before migrating your project, you have to link the Google Code committers to GitHub accounts. This is done by populating a simple text file that will be given as input to <code>svn2git</code>.</p>
<p>Open the <code>authors.txt</code> file into a temporary folder:</p>
<div style="overflow:hidden;; " class="alignnone">
<div class="shadow_curl" style="margin:0 !important; max-width:100% !important;"><div class="codecolorer-container bash railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp;<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">vim</span> <span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>authors.txt</div></td></tr></tbody></table></div>
<img src="http://fgiasson.com/blog/wp-content/plugins/shadows/shadow_curl.png" class="aligncenter shadow_img" style="margin:0 !important;height:10px;width:100%;"></div>
</div>
<p>Then, for each author, you have to add the mapping between their Google Code and GitHub accounts. If a Google Code committer does not exist on GitHub, then you should map it to your own GitHub account.</p>
<div style="overflow:hidden;; " class="alignnone">
<div class="shadow_curl" style="margin:0 !important; max-width:100% !important;"><div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp;(no author) = Frederick Giasson &lt;fred@f...com&gt;<br />
&nbsp;fred@f...com = Frederick Giasson &lt;fred@f...com&gt;</div></td></tr></tbody></table></div>
<img src="http://fgiasson.com/blog/wp-content/plugins/shadows/shadow_curl.png" class="aligncenter shadow_img" style="margin:0 !important;height:10px;width:100%;"></div>
</div>
<p>The format of this <code>authors.txt</code> file is:</p>
<div style="overflow:hidden;; " class="alignnone">
<div class="shadow_curl" style="margin:0 !important; max-width:100% !important;"><div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp;Google-Account-Username = Name-Of-Author-On-GitHub &lt;Email-Of-Author-On-Github</div></td></tr></tbody></table></div>
<img src="http://fgiasson.com/blog/wp-content/plugins/shadows/shadow_curl.png" class="aligncenter shadow_img" style="margin:0 !important;height:10px;width:100%;"></div>
</div>
<p>Take note of the first Google Code committer <code>(no author)</code> mapping. This link is required for every <code>authors.txt</code> file. This placeholder is used to map the initial commit performed by the Google Code system. (When Google Code initializes a new project, it uses that username for creating the first commit of any project.)</p>
<p>When you are done, save the file.</p>
<p>Now that set up is complete, you are ready to migrate your project. First, let&#8217;s create the folder that will be used to checkout the SVN project on the server, and then to push it on GitHub.</p>
<div style="overflow:hidden;; " class="alignnone">
<div class="shadow_curl" style="margin:0 !important; max-width:100% !important;"><div class="codecolorer-container bash railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span><br />
<span style="color: #c20cb9; font-weight: bold;">mkdir</span> myproject<br />
<span style="color: #7a0874; font-weight: bold;">cd</span> myproject</div></td></tr></tbody></table></div>
<img src="http://fgiasson.com/blog/wp-content/plugins/shadows/shadow_curl.png" class="aligncenter shadow_img" style="margin:0 !important;height:10px;width:100%;"></div>
</div>
<p>In this tutorial, we have a normal migration scenario. However, your migration scenario may differ from this one. It is why I would suggest you check out the <a href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly9naXRodWIuY29tL25pcnZkcnVtL3N2bjJnaXQ=">different scenarios that are supported by <code>svn2git</code> document</a>. Change the following command accordingly. Let&#8217;s migrate the Google Code SVN Project into the local Git repository:</p>
<div style="overflow:hidden;; " class="alignnone">
<div class="shadow_curl" style="margin:0 !important; max-width:100% !important;"><div class="codecolorer-container bash railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp;<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>gems<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">1.8</span><span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>svn2git http:<span style="color: #000000; font-weight: bold;">//</span>myproject.googlecode.com<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">svn</span> <span style="color: #660033;">--authors</span> <span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>authors.txt <span style="color: #660033;">--verbose</span></div></td></tr></tbody></table></div>
<img src="http://fgiasson.com/blog/wp-content/plugins/shadows/shadow_curl.png" class="aligncenter shadow_img" style="margin:0 !important;height:10px;width:100%;"></div>
</div>
<p>Make sure that no errors have been reported during the process. If it is the case, then refer to the <code>Possible Errors and Fixes</code> section below to troubleshoot your issue.</p>
<p>The next step is to create a new GitHub repository where to migrate the SVN project. <a title=\"Create a new GitHub repository\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly9naXRodWIuY29tL3JlcG9zaXRvcmllcy9uZXc=">Go to this GitHub page to create your new repository</a>. Then you have to configure Git to add a remote link, from the local Git repository you created on your migration computer, to this remote GitHub repository:</p>
<div style="overflow:hidden;; " class="alignnone">
<div class="shadow_curl" style="margin:0 !important; max-width:100% !important;"><div class="codecolorer-container bash railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp;<span style="color: #c20cb9; font-weight: bold;">git remote</span> add origin <span style="color: #c20cb9; font-weight: bold;">git</span><span style="color: #000000; font-weight: bold;">@</span>github.com:you-github-username<span style="color: #000000; font-weight: bold;">/</span>myproject.git</div></td></tr></tbody></table></div>
<img src="http://fgiasson.com/blog/wp-content/plugins/shadows/shadow_curl.png" class="aligncenter shadow_img" style="margin:0 !important;height:10px;width:100%;"></div>
</div>
<p>Finally, let&#8217;s push the local Git repository master, branches and tags to GitHub. The first thing to push onto GitHub is the SVN&#8217;s trunk. It is done by running that command:</p>
<div style="overflow:hidden;; " class="alignnone">
<div class="shadow_curl" style="margin:0 !important; max-width:100% !important;"><div class="codecolorer-container bash railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp;<span style="color: #c20cb9; font-weight: bold;">git push</span> <span style="color: #660033;">-u</span> origin master</div></td></tr></tbody></table></div>
<img src="http://fgiasson.com/blog/wp-content/plugins/shadows/shadow_curl.png" class="aligncenter shadow_img" style="margin:0 !important;height:10px;width:100%;"></div>
</div>
<p>Then, if your project has multiple branches and tags, you can push them, one by one, using the same command. However, you will have to replace <code>master</code> by the name of that branch or tag. If you don&#8217;t know what is the exact name of these branches or tags, you can easily list all of them using this Git command:</p>
<div style="overflow:hidden;; " class="alignnone">
<div class="shadow_curl" style="margin:0 !important; max-width:100% !important;"><div class="codecolorer-container bash railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp;<span style="color: #c20cb9; font-weight: bold;">git show-ref</span></div></td></tr></tbody></table></div>
<img src="http://fgiasson.com/blog/wp-content/plugins/shadows/shadow_curl.png" class="aligncenter shadow_img" style="margin:0 !important;height:10px;width:100%;"></div>
</div>
<p>Once you have progressed through all branched and tags, you are done. If you take a look at your GitHub project&#8217;s page, you should see that the trunk, branches, tags and commits are now properly imported into that project.</p>
<h3>Possible Errors And Fixes</h3>
<h4>Fatal Error: Not a valid object name</h4>
<p>There are a few things that can go wrong while trying to migrate your project(s).</p>
<p>One of the errors I experienced is a <code>"fatal"</code> error message <code>"Not a valid object name"</code>. <a href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cHM6Ly9naXRodWIuY29tL25pcnZkcnVtL3N2bjJnaXQvaXNzdWVzLzI2">To fix this</a>, we have to fix a line of code in <code>svn2git</code>. Open the <code>migration.rb</code> file. Check around the <code>line 227</code> for the method <code>fix_branches()</code>. Remove the first line of that method, and replace the second one by:</p>
<div style="overflow:hidden;; " class="alignnone">
<div class="shadow_curl" style="margin:0 !important; max-width:100% !important;"><div class="codecolorer-container ruby railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="ruby codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp;svn_branches = <span style="color:#0066ff; font-weight:bold;">@remote</span>.<span style="color:#9900CC;">find_all</span> <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#006600; font-weight:bold;">|</span>b<span style="color:#006600; font-weight:bold;">|</span> !@tags.<span style="color:#9966CC; font-weight:bold;">include</span>?<span style="color:#006600; font-weight:bold;">&#40;</span>b<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&amp;&amp;</span> b.<span style="color:#9900CC;">strip</span> =~ <span style="color:#006600; font-weight:bold;">%</span>r<span style="color:#006600; font-weight:bold;">&#123;</span>^svn\<span style="color:#006600; font-weight:bold;">/</span><span style="color:#006600; font-weight:bold;">&#125;</span> <span style="color:#006600; font-weight:bold;">&#125;</span></div></td></tr></tbody></table></div>
<img src="http://fgiasson.com/blog/wp-content/plugins/shadows/shadow_curl.png" class="aligncenter shadow_img" style="margin:0 !important;height:10px;width:100%;"></div>
</div>
<h4>Error: author not existing</h4>
<p>While running the <code>svn2git</code> application, the process may finish prematurely. If you check the output, you may see that it can&#8217;t find the match for an author. What you will have to do is to add that author to your authors file and re-run <code>svn2git</code>. Otherwise you won&#8217;t be able to fully migrate the project.</p>
<p>I&#8217;m not quite sure why these minor glitches occurred during my initial migrate, but with the simple fixes above you should be good to go.</p>
 <img src="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1677" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://fgiasson.com/blog/index.php/2011/11/21/moving-projects-from-google-code-to-github/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Open Sources Projects As A Pool Of Resources</title>
		<link>http://fgiasson.com/blog/index.php/2011/10/17/open-sources-projects-as-a-pool-of-resources/</link>
		<comments>http://fgiasson.com/blog/index.php/2011/10/17/open-sources-projects-as-a-pool-of-resources/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 02:17:42 +0000</pubDate>
		<dc:creator>Frederick Giasson</dc:creator>
				<category><![CDATA[conStruct]]></category>
		<category><![CDATA[Open Semantic Framework]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Semantic Components]]></category>
		<category><![CDATA[Semantic Web]]></category>
		<category><![CDATA[Structured Dynamics]]></category>
		<category><![CDATA[structWSF]]></category>
		<category><![CDATA[#business]]></category>
		<category><![CDATA[#developer]]></category>
		<category><![CDATA[#enterprise]]></category>
		<category><![CDATA[#open source]]></category>
		<category><![CDATA[#structured dynamics]]></category>
		<category><![CDATA[#structwsf]]></category>

		<guid isPermaLink="false">http://fgiasson.com/blog/?p=1558</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Open Sources Projects As A Pool Of Resources&amp;rft.aulast=Giasson&amp;rft.aufirst=Frederick&amp;rft.subject=conStruct&amp;rft.subject=Open Semantic Framework&amp;rft.subject=Programming&amp;rft.subject=Semantic Components&amp;rft.subject=Semantic Web&amp;rft.subject=Structured Dynamics&amp;rft.subject=structWSF&amp;rft.source=Frederick Giasson&#8217;s Weblog&amp;rft.date=2011-10-17&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://fgiasson.com/blog/index.php/2011/10/17/open-sources-projects-as-a-pool-of-resources/&amp;rft.language=English"></span>
In a previous blog post, I wrote about how Open Source may be unnatural, and even counter intuitive, to many people. However, that really begs some questions evident with my current company's strategy. Why have Mike Bergman and I chosen to develop no less than three major open source projects (structWSF, conStruct and the Semantic [...]]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Open Sources Projects As A Pool Of Resources&amp;rft.aulast=Giasson&amp;rft.aufirst=Frederick&amp;rft.subject=conStruct&amp;rft.subject=Open Semantic Framework&amp;rft.subject=Programming&amp;rft.subject=Semantic Components&amp;rft.subject=Semantic Web&amp;rft.subject=Structured Dynamics&amp;rft.subject=structWSF&amp;rft.source=Frederick Giasson&#8217;s Weblog&amp;rft.date=2011-10-17&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://fgiasson.com/blog/index.php/2011/10/17/open-sources-projects-as-a-pool-of-resources/&amp;rft.language=English"></span>
<table>
<tbody>
<tr>
<td>In a previous blog post, I wrote about how <a title=\"Unnatural Open Source\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2ZnaWFzc29uLmNvbS9ibG9nL2luZGV4LnBocC8yMDExLzEwLzA1L3VubmF0dXJhbC1vcGVuLXNvdXJjZS8=">Open Source may be unnatural, and even counter intuitive, to many people</a>. However, that really begs some questions evident with my current company's strategy.</td>
<td><div style="margin:10px;overflow:hidden;display:table;line-height:0;text-align:center;width:210px;" class="aligncenter"><img class=" size-medium wp-image-1650" style="shadow_curl; padding:0 !important; margin:0 !important; max-width:100% !important;" title="The construction of the Bridge of Quebec. Last step to bridge the North and South side of the Fleuve Saint-Laurent." src="http://fgiasson.com/blog/wp-content/uploads/2011/10/quebec_bridge_construction-300x207.jpg" alt="" width="210" height="145" /><br/><img src="http://fgiasson.com/blog/wp-content/plugins/shadows/shadow_curl.png" class="shadow_img" style="margin:0 !important;height:10px;width:100%;"></div></td>
</tr>
</tbody>
</table>
<p>Why have <a title=\"Structured Dynamics - About\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3N0cnVjdHVyZWRkeW5hbWljcy5jb20vYWJvdXQuaHRtbA==">Mike Bergman</a> and I chosen to develop no less than three major open source projects (<a title=\"structWSF\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL29wZW5zdHJ1Y3RzLm9yZy9zdHJ1Y3R3c2Y=">structWSF</a>, <a title=\"conStruct\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL29wZW5zdHJ1Y3RzLm9yZy9jb25zdHJ1Y3Q=">conStruct</a> and the <a title=\"Semantic Components\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL29wZW5zdHJ1Y3RzLm9yZy9zY29tcG9uZW50">Semantic Components</a>), encompassing more than 100 000 lines of new code and leveraging between 30 to 50 other open source software and libraries? Why have we open sourced all our software? Why has open source formed the core business strategy of <a title=\"Structured Dynamics LLC.\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3N0cnVjdHVyZWRkeW5hbWljcy5jb20v">Structured Dynamics</a> in the last three years? How have we been able to profitably sustain the company, even in the midst of the global economic crisis that began in 2008?</p>
<p>I will try to answer these questions in this blog post, perhaps even providing some guidance for newer startups that may follow behind us.</p>
<h3><strong>Why Open Sourcing?</strong></h3>
<p>Why did Structured Dynamics chose to open source all of its software? There are multiple reasons why people and businesses choose to go open source. For some, it is because they think that it is where the market place is moving. For others it is because they think that a community will emerge around their effort, and then get free resources that improve the piece of software. Some think that their software will promptly be reviewed by professional programmer. Others may think that their system will become more secure. Etc.</p>
<p>For Structured Dynamics the reason why we choose to go open source is somewhat different:</p>
<blockquote><p>We perceived that by open sourcing our complete software stack we could bootstrap the company without any external investment.</p></blockquote>
<h3><strong>Making a Living out of Open Source Projects</strong></h3>
<p>There are multiple ways to do a living from an open source project:</p>
<ul>
<li>Doing consultancy work related to the project</li>
<li>Implementing the software(s) into clients&#8217; computer environment(s)</li>
<li>Selling training classes</li>
<li>Selling support contracts</li>
<li>Selling maintenance contracts</li>
<li>Selling hosted instances of the software (the <a title=\"Software as a service\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Tb2Z0d2FyZV9hc19hX3NlcnZpY2U=">SaaS </a>model for one)</li>
<li>Selling development time to improve some part(s) of the software</li>
<li>Creating conferences around their open source projects</li>
<li>Selling proprietary extensions</li>
<li><em>I am probably missing a few, so please add them in a comment section below, and I will make sure to add them to this list.</em></li>
</ul>
<p>Depending on the software you are developing, and depending on the business plan of your company, you may be doing one &#8212; or multiple &#8212; of these things to generate some money from your open source projects.</p>
<p>At Structured Dynamics we are doing some of them: we do get consultancy contracts related to the <a title=\"Open Semantic Framework\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL29wZW5zdHJ1Y3RzLm9yZy9vcGVuLXNlbWFudGljLWZyYW1ld29yaw==">Open Semantic Framework</a> and we do implement OSF in our clients&#8217; computer environments.</p>
<p>But, more importantly, we are also doing development contracts related to the framework. In fact, each project we are working on is quite different. Our major projects involve companies that reside in totally different domains, have different needs and need to accommodate different kinds of users. However, most of the projects share the same core needs, and all of them advance the core technology in ways meaningful to our vision. We choose our customers &#8212; and , of course, <em>vice versa</em> &#8212; based on a true sense of partnership wherein both parties have their objectives furthered.</p>
<p>Let&#8217;s see how we use these relationships to drive the development of the Open Semantic Framework.</p>
<h3><strong>Open Source Project as a Pool of Resources</strong></h3>
<p>In the last three years, Structured Dynamics has attracted multiple companies and organizations that share our vision, and which are willing to invest in the Open Semantic Framework open source project. (See Mike's recent <a href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ta2JlcmdtYW4uY29tLzk2OS9vZi1mbGFncG9sZXMtYW5kLWZpc2hlcy8=">post on business development</a> for a bit more on that aspect of things.) Each of these clients did want to use the OSF framework for their own needs. However, each of them did want to do something special that was not currently implemented in the framework.</p>
<p>What we created in these three years is a pool of resources that we used to develop the framework such that it accommodates the needs of each of our clients. Each of our clients then becomes a participant to the shared pool of innovation. Our clients have been willing to invest in the open source framework because they need their own features and because they know that they will benefit from what other participants of the pool will invest themselves down the road.</p>
<p>In that scenario, we are the managers of a pool of resources. We have the vision of where we want the framework to go, we know the roadmap of the project and we know the needs of each participant (our clients). What we do is to try to optimize the resources we get from each of our clients by developing the framework such that it can accommodate as broad of a spectrum of participants as possible. Then, we seek to find new participants that have some needs that will help us continue to develop the next steps of the roadmap. In this manner, we Jacob's Ladder our existing work to increase the capabilities for later clients, but earlier clients still benefit because they can upgrade to the later improvements. This is a self-sustaining model to continue to move the development of the framework forward.</p>
<p>By finding new clients, what we do is to give a return on investment to the other pool participants. Most of the new features that we develop for these new clients will benefit the other participants to the pool and will create new possibilities for them without any additional investment. All of our first clients have implemented what other participants later invest into the pool, thus crystallizing and augmenting their return on investment by using these new features.</p>
<h3><strong>Open Source is Not Just About Software</strong></h3>
<p>Open Source is not just about pieces of code, and this is quite important to understand. What we have open sourced with the Open Semantic Framework is much more than a series of code sources. We open sourced the <strong>entire</strong> framework:</p>
<ol start="1">
<li>The source codes</li>
<li>The documentation</li>
<li>The processes</li>
<li>The methodologies</li>
</ol>
<p>We term this comprehensive approach our <a href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ta2JlcmdtYW4uY29tLzg4Mi9saXN0ZW5pbmctdG8tdGhlLWVudGVycHJpc2UtdG90YWwtb3Blbi1zb2x1dGlvbnMtcGFydC0xLw==">total</a> <a href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ta2JlcmdtYW4uY29tLzg4My9saXN0ZW5pbmctdG8tdGhlLWVudGVycHJpc2UtdG90YWwtb3Blbi1zb2x1dGlvbnMtcGFydC0yLw==">open</a> <a href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5ta2JlcmdtYW4uY29tLzg4NC9saXN0ZW5pbmctdG8tdGhlLWVudGVycHJpc2UtdG90YWwtb3Blbi1zb2x1dGlvbnMtcGFydC0zLw==">solution</a>.</p>
<p>This distinction with other open source projects is an essential differentiator with our approach. We choose to open source all of the pieces related to the framework. What drove this decision is a simple sentence that shows our philosophy behind it:</p>
<blockquote><p>"We're Successful When We're Not Needed"</p></blockquote>
<p>If the APIs, processes and methodologies are not properly documented, it means that we would certainly be needed by our clients, which would mean that we failed to open source our solution. But since we are working to open source our code, our processes and our methodologies, we are on the way to successfully open source the Open Semantic Framework since we won&#8217;t be needed by our clients.</p>
<p>This business approach is not as crazy as it sounds. We are free to work on new and important innovations, and are not basing our company culture on dependency and a constant drain by our customers. I know, it does not sound like Larry Ellison, but sounds good to us and our clients. It is certainly not a maximum revenue objective built on the backs of individual clients.</p>
<p>Our life is more fun and our clients trust us with new stuff. Further, each step of the way, we are able to leverage our own framework for unbelievable productivity in what we deliver for the money. But that is a topic for another day.</p>
<p>We think Structured Dynamics' business approach is a contemporary winning strategy. Our customers get good and advanced capabilities at low cost and risk, while we get to work on innovative extensions that are raising the semantic baseline for the marketplace. Who knows if we will always continue this path, but for now it is leading to sustained development and market growth for open semantic frameworks, including our own OSF.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
 <img src="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1558" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://fgiasson.com/blog/index.php/2011/10/17/open-sources-projects-as-a-pool-of-resources/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Volkswagen&#8217;s RDF Data Management Workflow</title>
		<link>http://fgiasson.com/blog/index.php/2011/10/11/volkswagens-rdf-data-management-workflow/</link>
		<comments>http://fgiasson.com/blog/index.php/2011/10/11/volkswagens-rdf-data-management-workflow/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 22:53:38 +0000</pubDate>
		<dc:creator>Frederick Giasson</dc:creator>
				<category><![CDATA[Open Semantic Framework]]></category>
		<category><![CDATA[Semantic Web]]></category>
		<category><![CDATA[Structured Dynamics]]></category>
		<category><![CDATA[structWSF]]></category>
		<category><![CDATA[#rdf]]></category>
		<category><![CDATA[#semantic web]]></category>
		<category><![CDATA[#solr]]></category>
		<category><![CDATA[#sparql]]></category>
		<category><![CDATA[#structwsf]]></category>
		<category><![CDATA[#volkswagen]]></category>

		<guid isPermaLink="false">http://fgiasson.com/blog/?p=1593</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Volkswagen&#8217;s RDF Data Management Workflow&amp;rft.aulast=Giasson&amp;rft.aufirst=Frederick&amp;rft.subject=Open Semantic Framework&amp;rft.subject=Semantic Web&amp;rft.subject=Structured Dynamics&amp;rft.subject=structWSF&amp;rft.source=Frederick Giasson&#8217;s Weblog&amp;rft.date=2011-10-11&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://fgiasson.com/blog/index.php/2011/10/11/volkswagens-rdf-data-management-workflow/&amp;rft.language=English"></span>
TribalDDB UK&#8217;s team just published a new case study to the W3C: Case Study: Contextual Search for Volkswagen and the Automotive Industry. They discuss the benefits of some of the semantic web technologies, techniques and concepts that they use to help them managing their data. They describe their approach and outline their design. It covers [...]]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Volkswagen&#8217;s RDF Data Management Workflow&amp;rft.aulast=Giasson&amp;rft.aufirst=Frederick&amp;rft.subject=Open Semantic Framework&amp;rft.subject=Semantic Web&amp;rft.subject=Structured Dynamics&amp;rft.subject=structWSF&amp;rft.source=Frederick Giasson&#8217;s Weblog&amp;rft.date=2011-10-11&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://fgiasson.com/blog/index.php/2011/10/11/volkswagens-rdf-data-management-workflow/&amp;rft.language=English"></span>
<table>
<tbody>
<tr>
<td>TribalDDB UK&#8217;s team just published a new case study to the W3C: <a title=\"Case Study: Contextual Search for Volkswagen and the Automotive Industry\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy53My5vcmcvMjAwMS9zdy9zd2VvL3B1YmxpYy9Vc2VDYXNlcy9Wb2xrc3dhZ2VuLw==">Case Study: Contextual Search for Volkswagen and the Automotive Industry</a>. They discuss the benefits of some of the semantic web technologies, techniques and concepts that they use to help them managing their data. They describe their approach and outline their design. It covers the technical aspects of their new Semantic Web Platform that <a title=\"Volkswagen's Use of structWSF in their Semantic Web Platform\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2ZnaWFzc29uLmNvbS9ibG9nL2luZGV4LnBocC8yMDExLzA5LzIxL3ZvbGtzd2FnZW5zLXVzZS1vZi1zdHJ1Y3R3c2YtaW4tdGhlaXItc2VtYW50aWMtd2ViLXBsYXRmb3JtLw==">I wrote about a few weeks ago</a>.</td>
<td valign="top"><a href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2ZnaWFzc29uLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDExLzEwL1ZvbGtzd2FnZW4ucG5n"><img class="aligncenter size-full wp-image-1618" title="Volkswagen" src="http://fgiasson.com/blog/wp-content/uploads/2011/10/Volkswagen.png" alt="" width="128" height="128" /></a></td>
</tr>
</tbody>
</table>
<p>In this blog post, I want to further explain their data management workflow, and how their data get exposed to different kind of users.</p>
<h3>Two Classes of Users</h3>
<p>Let&#8217;s take a look at their data ingest/management/publishing workflow:</p>
<p><center><a href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2ZnaWFzc29uLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDExLzEwL3Z3X3dvcmtmbG93LmpwZw=="><img class="size-medium wp-image-1594 alignnone" title="vw_workflow" src="http://fgiasson.com/blog/wp-content/uploads/2011/10/vw_workflow-300x204.jpg" alt="" width="300" height="204" /></a></center>As you can see, all their data get collected, transformed and imported into <a title=\"structWSF\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL29wZW5zdHJ1Y3RzLm9yZy9zdHJ1Y3RXU0Y=">structWSF</a>. As I explained in my <a title=\"Volkswagen's Use of structWSF in their Semantic Web Platform\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2ZnaWFzc29uLmNvbS9ibG9nL2luZGV4LnBocC8yMDExLzA5LzIxL3ZvbGtzd2FnZW5zLXVzZS1vZi1zdHJ1Y3R3c2YtaW4tdGhlaXItc2VtYW50aWMtd2ViLXBsYXRmb3JtLw==">previous blog post</a>, they are using structWSF to manage all their RDF data and access all the functionalities from the different web service endpoints.</p>
<p>However, how the data get exposed to the users is not that clear. In fact, it depends on the classes of users. A user can be multiple different things: it may be a person, it may be a computer software, it may be an organization, etc. However, there are two general classes of users:</p>
<ol>
<li>Public users, and</li>
<li>Private users</li>
</ol>
<p>Public users are users that have no direct relation with Volkswagen and that have no access to their internal network. Private users are generally internal departments or some internal software applications that have direct access to the structWSF instance.</p>
<h3>Private Users</h3>
<p>Private users generally have access to all structWSF web service endpoints. This means that all structWSF functionalities are accessible to them by querying the endpoints.</p>
<p>Two different kind of private users are specified in the use case&#8217;s schema:</p>
<ol>
<li>Volkswagen Site Search</li>
<li>Other / External Applications</li>
</ol>
<p>The Volkswagen site search is a software application that uses the <a title=\"structWSF search web service endpoint\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU2VhcmNo">structWSF Search endpoint</a> to search, filter and expose their data to their users (the people who perform searches on the Volkswagen UK website).</p>
<p><center><a href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2ZnaWFzc29uLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDExLzEwL3Z3X3NpdGVfc2VhcmNoX3NjcmVlbnNob3QuanBn"><img class="size-medium wp-image-1599 alignnone" title="vw_site_search_screenshot" src="http://fgiasson.com/blog/wp-content/uploads/2011/10/vw_site_search_screenshot-300x240.jpg" alt="" width="300" height="240" /></a></center>The other/external applications are software applications that have access to the structWSF instance. These are generally internal applications that run in the same network. One of these applications is an internal software that exports all the RDF data from the <a title=\"structWSF SPARQL web service endpoint\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU1BBUlFM">structWSF SPARQL endpoint</a>, and import it into <a title=\"Kasabi\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2thc2FiaS5jb20=">Kasabi</a>.</p>
<p>These are two examples of software applications that Volkswagen created around the structWSF web services to re-purpose, re-contextualize and re-publish their RDF data.</p>
<h3>Public Users</h3>
<p>There is currently two kinds of public users of this new Volkswagen Semantic Platform:</p>
<ul>
<li>People, and</li>
<li>Software applications</li>
</ul>
<p>Two interfaces have been made publicly available for each of these kinds of users:</p>
<ul>
<li>A website search engine page for people, and</li>
<li>A SPARQL endpoint for software applications</li>
</ul>
<p>When a person user reaches the website&#8217;s search page, the search query get sent to the <a title=\"structWSF search web service endpoint\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2h3aWtpLm9wZW5zdHJ1Y3RzLm9yZy9pbmRleC5waHAvU2VhcmNo">structWSF Search web service endpoint</a>. The result is then returned to the engine, get templated and displayed to the person user.</p>
<p>A SPARQL endpoint is accessible to the software applications. This endpoint is hosted by the <a title=\"Kasabi\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2thc2FiaS5jb20=">Kasabi </a>information marketplace. Volkswagen chooses to export everything from their structWSF into Kasabi to outsource the maintenance of their public SPARQL endpoint.</p>
<h3>Unlock the Power</h3>
<p>As we saw in this blog post and in the W3C use case, all Volkswagen UK data is internally managed by structWSF; however they are not locked into that system. They can easily communicate with external services to add new functionalities to their stack or to take business decision such as outsourcing the management of some publicly accessible data access endpoints.</p>
<p>This is an important characteristic of their design:</p>
<blockquote><p><strong>By choosing semantic web technologies (such as structWSF), techniques and concepts (such as their <a title=\"Volkswagen Vehicles Ontology\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy52b2xrc3dhZ2VuLmNvLnVrL3ZvY2FidWxhcmllcy92dm8vbnM=">Vehicles OWL Ontology</a> and RDF), they are not locking themselves into a specific framework. They can easily communicate with external systems and applications. This means that they can quickly adapt their system to their constantly changing needs.<br />
</strong></p></blockquote>
<h3>Conclusion</h3>
<p>I wrote this blog post to further explain Volkswagen&#8217;s data management workflow. I wanted to make sure that people were understanding the role that structWSF has in this use case, and the ecosystem it operates in.</p>
 <img src="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1593" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://fgiasson.com/blog/index.php/2011/10/11/volkswagens-rdf-data-management-workflow/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Unnatural Open Source</title>
		<link>http://fgiasson.com/blog/index.php/2011/10/05/unnatural-open-source/</link>
		<comments>http://fgiasson.com/blog/index.php/2011/10/05/unnatural-open-source/#comments</comments>
		<pubDate>Wed, 05 Oct 2011 13:14:53 +0000</pubDate>
		<dc:creator>Frederick Giasson</dc:creator>
				<category><![CDATA[conStruct]]></category>
		<category><![CDATA[Open Semantic Framework]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Semantic Components]]></category>
		<category><![CDATA[Structured Dynamics]]></category>
		<category><![CDATA[structWSF]]></category>
		<category><![CDATA[#business]]></category>
		<category><![CDATA[#developer]]></category>
		<category><![CDATA[#enterprise]]></category>
		<category><![CDATA[#fear]]></category>
		<category><![CDATA[#open source]]></category>

		<guid isPermaLink="false">http://fgiasson.com/blog/?p=1342</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Unnatural Open Source&amp;rft.aulast=Giasson&amp;rft.aufirst=Frederick&amp;rft.subject=conStruct&amp;rft.subject=Open Semantic Framework&amp;rft.subject=Programming&amp;rft.subject=Semantic Components&amp;rft.subject=Structured Dynamics&amp;rft.subject=structWSF&amp;rft.source=Frederick Giasson&#8217;s Weblog&amp;rft.date=2011-10-05&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://fgiasson.com/blog/index.php/2011/10/05/unnatural-open-source/&amp;rft.language=English"></span>
I have never been an open source software advocate. In fact, like most people, I always wondered how companies could find a business advantage in developing open source softwares and how they could make money out of it to grow. It is nice to have open source softwares, but it is hard to imagine how [...]]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Unnatural Open Source&amp;rft.aulast=Giasson&amp;rft.aufirst=Frederick&amp;rft.subject=conStruct&amp;rft.subject=Open Semantic Framework&amp;rft.subject=Programming&amp;rft.subject=Semantic Components&amp;rft.subject=Structured Dynamics&amp;rft.subject=structWSF&amp;rft.source=Frederick Giasson&#8217;s Weblog&amp;rft.date=2011-10-05&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://fgiasson.com/blog/index.php/2011/10/05/unnatural-open-source/&amp;rft.language=English"></span>
<table>
<tbody>
<tr>
<td>I have never been an open source software advocate. In fact, like most people, I always wondered how companies could find a business advantage in developing open source softwares and how they could make money out of it to grow. It is nice to have open source softwares, but it is hard to imagine how you could justify putting thousands of hours in open source software projects if it is not only by passion.</td>
<td><div style="margin:10px;overflow:hidden;display:table;line-height:0;text-align:center;width:179px;" class="alignnone"><img class=" size-medium wp-image-1538" style="shadow_curl; padding:0 !important; margin:0 !important; max-width:100% !important;" title="ESCHER ROOM" src="http://fgiasson.com/blog/wp-content/uploads/2011/09/ESCHER-ROOM-298x300.jpg" alt="" width="179" height="180" /><br/><img src="http://fgiasson.com/blog/wp-content/plugins/shadows/shadow_curl.png" class="shadow_img" style="margin:0 !important;height:10px;width:100%;"></div></td>
</tr>
</tbody>
</table>
<p><span style="color: #ff0000;"><span style="color: #000000;">In this post I will explain what I think is the main factor that put people, businesses and organizations on guard when come the time to think about open source softwares. In fact, I think it has much more to do with our nature: how we naturally are as human being, and much less to do with any real business related factors.</span></span></p>
<p><span style="color: #ff0000;"><span style="color: #000000;"> In a follow-up blog post, I will explain how <a title=\"Structured Dynamics LLC.\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3N0cnVjdHVyZWRkeW5hbWljcy5jb20=">Structured Dynamics</a> embraced open source software, how we developed the company around the concept, and how we are managing the development of our project such that it benefits all our clients along with the company. But first, let&#8217;s try to figure out why much people are suspicious regarding open source softwares.</span><br />
</span></p>
<h3>The Fear</h3>
<blockquote><p><em>"I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. And when it has gone past I will turn the inner eye to see its path. Where the fear has gone there will be nothing. Only I will remain."</em></p>
<p><center><em>- Dune, Frank Herbert</em></center></p></blockquote>
<p>Have you ever heard someone telling you:</p>
<blockquote><p><em>I found an incredible business idea! I am pretty sure that I am the first one to think about that. I will get some good money down the road!</em></p></blockquote>
<p>Then, you naturally asked for more information about this great idea! And then the answer you got was something like:</p>
<blockquote><p><em>Hooo! But I can&#8217;t tell you, this is really secret right now, at least until everything is ready to go.</em></p></blockquote>
<p>Does this sound familiar? I does to me. I hear it often. But, why does people react that way? It is simply by fear: fearing that someone &#8220;steal&#8221; their ideas, start a company based on them, build projects or services that implemented them, and get rich while you are flipping burgers at McDonald&#8217;s.</p>
<p>To me, this is the main reason why people, organizations and businesses are suspicious regarding open source software: because of fear; fear of loosing something they don&#8217;t even have.</p>
<p>But the question is: is that rational? From my experience, and my understanding of how things works, I can certainly say that it is not. This way of thinking is not rational because it doesn&#8217;t take into account a few things:</p>
<ul>
<li>The ability of others to do something with your ideas</li>
<li>The ability of others to have the vision you have for your ideas</li>
<li>The willingness of others to spend all their time and energy to make these ideas working</li>
<li>People tend to do what they want to do, and not what others wantsÂ­</li>
</ul>
<p>The same behavior seems to happen with open source projects. When I am explaining to people what we are doing, one of the first reaction is: why your work is open and free? Don&#8217;t you fear that someone steal your project and ideas? How can you make money if it is free, people will just run with it for themselves no?</p>
<p>The simple answer to all these question is: no. No we don&#8217;t feature that anybody steal our projects and ideas just by cloning them from the source control. We don&#8217;t because of the four reasons listed above. We don&#8217;t because we trust our vision and our abilities to implement it in our various open source projects. And yes we can sustain the company pretty well with these projects and it is what I will cover in my following blog post.</p>
<h3>Conclusion</h3>
<p>Non-Open Source softwares are just like when someone has a business idea &#8220;for the next big thing&#8221; and that doesn&#8217;t want to share it with anybody else because he think that someone will take that idea and run with it by himself. In fact, it is quite the opposite. I learned with experience that there is only one person (or organization) that can make such a great idea a relative success: the person (or organization) that lives for that idea. An idea is just an idea, and has nothing great in it, until it gets implemented, until the idea lives by itself, propelled by it most dedicated advocate: its creators and their boundless enthusiasm. Any idea would fail without this&#8230; and would worth nothing; it would just be an idea.</p>
 <img src="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1342" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://fgiasson.com/blog/index.php/2011/10/05/unnatural-open-source/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Volkswagen&#8217;s Use of structWSF in their Semantic Web Platform</title>
		<link>http://fgiasson.com/blog/index.php/2011/09/21/volkswagens-use-of-structwsf-in-their-semantic-web-platform/</link>
		<comments>http://fgiasson.com/blog/index.php/2011/09/21/volkswagens-use-of-structwsf-in-their-semantic-web-platform/#comments</comments>
		<pubDate>Wed, 21 Sep 2011 20:59:20 +0000</pubDate>
		<dc:creator>Frederick Giasson</dc:creator>
				<category><![CDATA[Open Semantic Framework]]></category>
		<category><![CDATA[Semantic Web]]></category>
		<category><![CDATA[Structured Dynamics]]></category>
		<category><![CDATA[structWSF]]></category>
		<category><![CDATA[UMBEL]]></category>
		<category><![CDATA[#linkeddata]]></category>
		<category><![CDATA[#rdf]]></category>
		<category><![CDATA[#semantic web]]></category>
		<category><![CDATA[#structwsf]]></category>
		<category><![CDATA[#volkswagen]]></category>

		<guid isPermaLink="false">http://fgiasson.com/blog/?p=1374</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Volkswagen&#8217;s Use of structWSF in their Semantic Web Platform&amp;rft.aulast=Giasson&amp;rft.aufirst=Frederick&amp;rft.subject=Open Semantic Framework&amp;rft.subject=Semantic Web&amp;rft.subject=Structured Dynamics&amp;rft.subject=structWSF&amp;rft.subject=UMBEL&amp;rft.source=Frederick Giasson&#8217;s Weblog&amp;rft.date=2011-09-21&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://fgiasson.com/blog/index.php/2011/09/21/volkswagens-use-of-structwsf-in-their-semantic-web-platform/&amp;rft.language=English"></span>
TribalDDB London, Volkswagen UK&#8216;s partner, mentioned earlier this week that Volkswagen are using some parts of the Open Semantic Framework to develop the next generation of their online platform. This story has been published by Jennifer Zaino&#8217;s in her article: Volkswagen: Das Auto Company is Das Semantic Web Company! I can now talk about this [...]]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Volkswagen&#8217;s Use of structWSF in their Semantic Web Platform&amp;rft.aulast=Giasson&amp;rft.aufirst=Frederick&amp;rft.subject=Open Semantic Framework&amp;rft.subject=Semantic Web&amp;rft.subject=Structured Dynamics&amp;rft.subject=structWSF&amp;rft.subject=UMBEL&amp;rft.source=Frederick Giasson&#8217;s Weblog&amp;rft.date=2011-09-21&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://fgiasson.com/blog/index.php/2011/09/21/volkswagens-use-of-structwsf-in-their-semantic-web-platform/&amp;rft.language=English"></span>
<table>
<tbody>
<tr>
<td>
<blockquote><p><a title=\"TribalDDB London\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5kZGJ1ay5jb20vdHJpYmFsZGRi">TribalDDB London</a>, <a title=\"Volkswagen UK\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy52b2xrc3dhZ2VuLmNvLnVrLw==">Volkswagen UK</a>&#8216;s partner, mentioned earlier this week that Volkswagen are using some parts of the <a title=\"Open Semantic Framework\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL29wZW5zdHJ1Y3RzLm9yZy9vcGVuLXNlbWFudGljLWZyYW1ld29yaw==">Open Semantic Framework</a> to develop the next generation of their online platform.</p></blockquote>
</td>
<td><img class="alignnone size-medium wp-image-1413" title="volkswagen-beetle" src="http://fgiasson.com/blog/wp-content/uploads/2011/09/volkswagen-beetle-300x114.gif" alt="" width="180" height="68" /></td>
</tr>
</tbody>
</table>
<p>This story has been published by Jennifer Zaino&#8217;s in her article: <a title=\"Volkswagen uses structWSF in their new platform\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3NlbWFudGljd2ViLmNvbS92b2xrc3dhZ2VuLWRhcy1hdXRvLWNvbXBhbnktaXMtZGFzLXNlbWFudGljLXdlYi1jb21wYW55X2IyMzIzMw==">Volkswagen: Das Auto Company is Das Semantic Web Company!</a></p>
<p>I can now talk about this project that uses some pieces of the <a title=\"Open Semantic Framework\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL29wZW5zdHJ1Y3RzLm9yZy9vcGVuLXNlbWFudGljLWZyYW1ld29yaw==">framework </a>that we have been developing for more than 3 years now.</p>
<h3>The Objective</h3>
<p>Volkswagen&#8217;s main objective behind the development of the next version of their Web platform started by improving their online search engine, but as William Greenly mentioned, it quickly became a strategic decision:</p>
<blockquote><p>"So the objectives were about site search and improving it, but in the long-run it was always the idea to contextualize content, to facet content, to promote it in different contexts."</p></blockquote>
<p>The objective is to create a platform that gives them the <strong>flexibility</strong> to <strong>leverage</strong> all the data assets they own. This flexibility will help them to leverage the data assests they have to improve not only their search engine, but also to contextualize it in different parts of their websites, partner&#8217;s websites or to promote, and publish that same information on different communication channels or devices.</p>
<h3>The Flexibility</h3>
<table>
<tbody>
<tr>
<td><div style="margin:10px;overflow:hidden;display:table;line-height:0;text-align:center;width:101px;" class="alignnone"><img class=" size-medium wp-image-1416 shadow_curl" title="ganesha" src="http://fgiasson.com/blog/wp-content/uploads/2011/09/ganesha-211x300.jpg" alt="" width="101" height="144"  style="padding:0 !important; margin:0 !important; max-width:100% !important;"><br/><img src="http://fgiasson.com/blog/wp-content/plugins/shadows/shadow_curl.png" class="shadow_img" style="margin:0 !important;height:10px;width:100%;"></div></td>
<td>What is a flexible platform in that context? A flexible platform is one that can integrate any kind of information sources. Such information sources in the context of Volkswagen can be a series of relational dataset schemas spread around the World, Excel spreadsheets, CSV files, old plain text technical documents about past model of cars, semi-structured documents such as webpages, etc.</td>
</tr>
</tbody>
</table>
<p>A flexible platform is also one that minimally impact (if at all) the data consumers if the data structure changes in the system. This is really important since the World we live in constantly changes. This means that things constantly change and we have to reflect these changes in the data we own and maintain. This is why this point is so important, because we want to minimize the impact of the data structure changes that will happen all the time.</p>
<p>Having the flexibility to constantly adapt your data, while minimally impacting the data consumers of the system, enables you to make quick decision to adapt your strategy in a highly competitive World. This flexibility gives you a clear business advantage.</p>
<p>A flexible platform is also one that let you publish your data the way you want, in the format that is needed. Such a flexible platform has to give you access to an interface that give you access to all the functionalities of the platform without having to care about what happens under the hood.</p>
<p>A flexible system is one that can communicate your information on any kind of communication channels, and to any devices that have access to the Web.</p>
<h3>Under the Hood</h3>
<p>That next generation platform that Volkswagen is currently developing is partly based on a few of the main pieces of the Open Semantic Framework. These pieces help them to reach their goal by helping them giving the flexibility their platform needs.</p>
<p>The first step they gone thru was to create their <a title=\"Volkswagen Vehicles Ontology\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy52b2xrc3dhZ2VuLmNvLnVrL3ZvY2FidWxhcmllcy92dm8vbnM=">Volkswagen Vehicles Ontology</a> that is used to describe all the entities they want to index into their platform. The <a title=\"OWL 2\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy53My5vcmcvVFIvb3dsMi1vdmVydmlldy8=">Web Ontology Language</a> (OWL), along with the <a title=\"RDF\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy53My5vcmcvVFIvUkVDLXJkZi1zeW50YXgv">Resource Description Framework</a> (RDF) is what gives them the complete flexibility on how they can integrate all the pieces of information they want, in a canonical format.</p>
<table>
<tbody>
<tr>
<td>Then they choose to use <a>structWSF </a>(the structured data web services framework). This piece gives them the flexibility to get a series of web interfaces (web service endpoints) to create, update, manage and query their data. This web service layer enables them to do anything they want with their data, from anywhere on the Web. This is possible because all the functionalities of the framework are exposed as web service endpoints. StructWSF also gives them the possibility to communicate their data in multiple different formats. This makes it the perfect flexible system to feed their information in different contexts, in different communication channels or on different devices.</td>
<td><img class="alignnone size-full wp-image-941" title="triple_120" src="http://fgiasson.com/blog/wp-content/uploads/2009/06/triple_120.png" alt="" width="120" height="120" /></td>
</tr>
</tbody>
</table>
<p>At Volkswagen, structWSF is used to populate, and keep in sync, their Solr and Triple Store instances. It gives them the time to care about the more important aspects of their platform, and to care about how the data should be synced between the various specialized data management systems.</p>
<p>By using structWSF to manage their data, they are able to reach some objectives to make their platform as flexible as possible:</p>
<ul>
<li>To be able to minimize the impact of data changes to the data consumers</li>
<ul>
<li><em>Because structWSF uses OWL &amp; RDF to describe all the data it index</em></li>
</ul>
<li>To be able to manipulate their data from anywhere</li>
<ul>
<li><em>Because all the functionalities of structWSF are exposed as web service endpoints</em></li>
</ul>
<li>To be able to communicate the information in different contexts, communication channels and devices</li>
<ul>
<li><em>Because structWSF has, in its core, is designed to transform all the data it indexes in any other kind of format</em></li>
</ul>
</ul>
<h3>The Next Step</h3>
<p>One of their longer term goal and objective is to analyze their unstructured and semi-structured textual documents to extract some structure out of them, and to index them into their semantic platform. To do this, they are looking at using <a title=\"Scones web service endpoint\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3N0cnVjdHVyZWRkeW5hbWljcy5jb20vc2NvbmVzLmh0bWw=">Scones</a>, which is the structWSF semantic tagger web service endpoint. Scones will use some subject reference structures such as <a title=\"UMBEL Ontology\" href="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3VtYmVsLm9yZw==">UMBEL </a>to semantically tag the textual document. Once the document as been processed by Scones, and indexed in structWSF, it can now be re-published in different contexts based on the reference concepts that have been tagged to it. This gives them the flexibility to leverage non-structured sources of data and to re-purpose it in different ways by publishing it in different context and in different systems.</p>
<p>This second system will enable them to leverage the investment they made in the past, by writing all these textual documents, and to re-purpose, and re-contextualizing, them in all kind of different contexts.</p>
<h3>Conclusion</h3>
<p>I think that TribalDDB and Volkswagen make the good decision for their future. Taking the business decision to develop and maintain a completely new kind of information system is not an easy decision to take. I am not saying that they made the good choice to use our pieces of the stack. The decision goes far beyond this. Such a Semantic Platform challenges everything in an organization: the people that takes the decisions, the people that create and manage the data, the people that develop the system, the people that maintain that system, the consumers of the system, the customers, the partners, etc. This is a <strong>big</strong> decision; whatever the technology stack you plan to use. I congratulate them for the decision they took.</p>
<p>I strongly believe that this was the right decision to take considering the future opportunities they are creating to themselves.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
 <img src="http://fgiasson.com/blog/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1374" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://fgiasson.com/blog/index.php/2011/09/21/volkswagens-use-of-structwsf-in-their-semantic-web-platform/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced (Requested URI is rejected)
Database Caching 13/19 queries in 0.010 seconds using disk: basic

Served from: fgiasson.com @ 2012-05-23 08:14:53 -->
