<?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>Blog</title>
	<atom:link href="http://blog.marcuscobden.co.uk/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.marcuscobden.co.uk</link>
	<description>Reflections of a compulsive engineer</description>
	<lastBuildDate>Wed, 01 Sep 2010 10:05:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>On-demand TCP over DNS server</title>
		<link>http://blog.marcuscobden.co.uk/2010/08/on-demand-tcp-over-dns-server/</link>
		<comments>http://blog.marcuscobden.co.uk/2010/08/on-demand-tcp-over-dns-server/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 13:24:39 +0000</pubDate>
		<dc:creator>Marcus</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://blog.marcuscobden.co.uk/?p=40</guid>
		<description><![CDATA[Virtual servers have become quite cheap these days, to the point where I can justify paying the monthly charge on one when I&#8217;m not sure how much I&#8217;ll use it. One of the things I have been running on my VM is a TCP-over-DNS server; it will allow you access to the Internet through some [...]]]></description>
			<content:encoded><![CDATA[<p>Virtual servers have become quite cheap these days, to the point where I can justify paying the monthly charge on one when I&#8217;m not sure how much I&#8217;ll use it.</p>
<p>One of the things I have been running on my <abbr title="Virtual Machine">VM</abbr> is a <a href="http://analogbit.com/software/tcp-over-dns">TCP-over-DNS server</a>; it will allow you access to the Internet through some access points where you&#8217;re forced to login, though it relies on the network administrator neglecting to block certain types of DNS query.  The author has posted a good <a href="http://analogbit.com/tcp-over-dns_howto">how-to and overview</a> of how it works so I&#8217;m not going to go into that here.</p>
<p>Now, I don&#8217;t anticipate using this tunneller very often so it&#8217;d be nice to not run the daemon all the time, but I obviously can&#8217;t enable myself unless I know in advance that I won&#8217;t have Internet access. Therefore, ideally I want the server to run only when I want to use it. Fortunately Linux has long had a means of doing this with the inetd daemon.</p>
<p>The inetd daemon will monitor a network socket, waiting for incoming traffic, and launch your daemon only when it is needed. It then passes the daemon process the existing sockets and waits for it to finish, at which point it&#8217;ll go back to watching for traffic again.</p>
<p>The config line you&#8217;ll need for inetd is as follows (you may need to highlight it and copy it elsewhere, as it doesn&#8217;t show up well in this theme):</p>
<pre>domain  dgram   udp     wait    root    /usr/bin/java   java -jar /path/to/tcp-over-dns-server.jar --domain delegated.domain.com --forward-port 22 --forward-address 127.0.0.1 --mtu 1500 --log-level 1 --idle-timeout 10 --log-file /var/log/tcp-over-dns</pre>
<p>Aside from modifying the server to support inherited channels I have:</p>
<ol>
<li>Added an idle time limit (so the program can exit if it sees no clients after a set number of seconds, and let inetd monitor the port again)</li>
<li>Added a log file option (programs launched by inetd can&#8217;t log to the standard output or error channels as inetd will pipe them into the inherited connection.)</li>
<li>Changed the default behaviour (If a channel is inherited the server will no longer try to bind on its default port)</li>
</ol>
<p>If you&#8217;re interested you can download <a href="http://blog.marcuscobden.co.uk/wp-content/uploads/2010/08/TCP-over-DNS-inetd.tgz">the source code</a> or just the <a href="http://blog.marcuscobden.co.uk/wp-content/uploads/2010/08/tcp-over-dns-server.jar">pre-compiled jar file</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.marcuscobden.co.uk/2010/08/on-demand-tcp-over-dns-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache versions and .htaccess files</title>
		<link>http://blog.marcuscobden.co.uk/2010/06/apache-versions-and-htaccess-files/</link>
		<comments>http://blog.marcuscobden.co.uk/2010/06/apache-versions-and-htaccess-files/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 14:21:31 +0000</pubDate>
		<dc:creator>Marcus</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[World Wide Web]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://blog.marcuscobden.co.uk/?p=34</guid>
		<description><![CDATA[I was looking into a problem someone was reporting with an apache RewriteRule, only to conclude that it was using features of the Regex library which weren't available in their version of apache.
Using the mod_version module allows you to write htaccess files which can fall back to other rules for older versions of apache.]]></description>
			<content:encoded><![CDATA[<p>The other day I was looking into a problem someone was reporting with an <a title="Apache mod_rewrite RewriteRule directive documentation" href="http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#RewriteRule">Apache RewriteRule</a>, only to conclude that it was using features of  the Regex library which weren&#8217;t available in their version of Apache.</p>
<p>I found a means of  detecting the different versions of Apache using the <a title="Apache mod_version documentation" href="http://httpd.apache.org/docs/2.2/en/mod/mod_version.html">mod_version module</a>. This allows you to write htaccess files which can fall back to other rules for older versions of Apache.</p>
<p>Unfortunately it&#8217;s only been available since version 2.0.56, but given that this was before the first release of version 2 it&#8217;s fairly safe to assume that anything without mod_version will be running Apache 1.</p>
<p>I will concede that this sounds very obvious, but there was a surprising  lack of results in google for any of the keywords that I thought to try. For the benefit of anyone searching for this; below is an example of how you can use mod_version in practice:</p>
<pre>&lt;IfModule !mod_version.c&gt;
	# Earlier than version 2.0.56, so almost certainly 1.x
	# as 2.0.63 was the first release of version 2.
&lt;/IfModule&gt;
&lt;IfModule mod_version.c&gt;
	# Version 2.0.56 or later
	&lt;IfVersion &lt; 2.2&gt;
		# Before version 2.2
	&lt;/IfVersion&gt;
	&lt;IfVersion &gt;= 2.2&gt;
		# Version 2.2 or later
	&lt;/IfVersion&gt;
&lt;/IfModule&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.marcuscobden.co.uk/2010/06/apache-versions-and-htaccess-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Observational Identity</title>
		<link>http://blog.marcuscobden.co.uk/2010/04/observational-identity/</link>
		<comments>http://blog.marcuscobden.co.uk/2010/04/observational-identity/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 14:19:51 +0000</pubDate>
		<dc:creator>Marcus</dc:creator>
				<category><![CDATA[Research]]></category>
		<category><![CDATA[Semantic Web]]></category>
		<category><![CDATA[Identity]]></category>
		<category><![CDATA[PhD]]></category>
		<category><![CDATA[Trust]]></category>

		<guid isPermaLink="false">http://blog.marcuscobden.co.uk/?p=32</guid>
		<description><![CDATA[We argued previously that there is a need for a system of identity for Semantic Web Agents, particularly in the process of making judgements of trust. Examining the requirements of a system of identity, we recognise that such a system cannot count on universal uptake among Semantic Web agents, and therefore it cannot require each [...]]]></description>
			<content:encoded><![CDATA[<p>We argued previously that <a href="http://blog.marcuscobden.co.uk/2010/04/trust-and-identity-on-the-semantic-web/">there is a need for a system of identity for Semantic Web Agents, particularly in the process of making judgements of trust</a>.</p>
<p>Examining the requirements of a system of identity, we recognise that such a system cannot count on universal uptake among Semantic Web agents, and therefore it cannot require each agent to state an identity for itself. Additionally even if  universal uptake could be relied upon, we cannot count on the honest and benevolent behaviour of every Semantic Web agent. Thus, as we briefly mentioned at the end of our previous post, a system of identity for the Semantic Web must be primarily built around observable characteristics as a measure of identity.</p>
<p>As an analogy; when surfing the Web you would not rely on a Website&#8217;s claim that it is your bank&#8217;s online portal, you would rely on the factors you can observe (such as the domain name and also the digital certificate) to inform your judgement. Digital certificates are especially important if you are connected to the Internet over an untrusted network connection.</p>
<p>Building on our earlier example of a rudimentary HTTP-based Semantic Web agent, suppose we request a URI from it, and receive some RDF in response. The data we collect about the identity of the agent may look something like the following:</p>
<pre>@prefix rdf: &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;.
@prefix xsd: &lt;http://www.w3.org/2001/XMLSchema#&gt;.
@prefix ex: &lt;http://example.com/ont/&gt;.

_:agent1
	rdf:type 	ex:HTTPAgent;
	ex:port  	80;
	ex:host  	"agent.example.com";
	ex:ip    	"10.0.0.1";
	ex:time  	"2010-04-14T14:37:37Z"^^xsd:dateTime.</pre>
<p>Suppose at some later date we again communicate  with the agent at the domain <code>agent.example.com</code>, and in the process observe that the DNS entry has changed, and the domain now refers to a new IP address. Do we then consider this to be the same agent which we have previous experience of? Further, is the information we have sufficient to make such a decision? Other attributes may influence the judgement of similarity if they significantly alter the behaviour of the agent, software version numbers or digital certificates, for example.</p>
<p>Returning to our analogy, if your browser stored the credentials for your bank&#8217;s online banking portal, you would specify very strict criteria, very similar to what we described above, to dictate which websites are permitted to see this information.</p>
<p>Below follows a second observation record, for an interaction with the same agent at a different IP address.</p>
<pre>_:agent2
	rdf:type 	ex:HTTPAgent;
	ex:port  	80;
	ex:host  	"agent.example.com";
	ex:ip    	"10.0.0.2";
	ex:time  	"2010-04-14T14:37:37Z"^^xsd:dateTime.</pre>
<p>It is possible to encode our criteria for equivalence using OWL (to some  degree) such that a reasoner can identify that two agents are in fact  the same entity. This involves declaring a class of all things which  meet the criteria of being a particular agent such that those which meet  the necessary and sufficient criteria may be considered the same.</p>
<p>Unfortunately the equivalence afforded by OWL causes the effective merging of the identifiers, such that, as below, the metadata from the two different requests becomes inseparable.</p>
<pre>_:agent1
	owl:sameAs   	_:agent2;
	rdf:type 	ex:HTTPAgent;
	ex:port  	80;
	ex:host  	"agent.example.com";
	ex:ip    	"10.0.0.1";
	ex:ip    	"10.0.0.2";
	ex:time  	"2010-04-18T10:24:12Z"^^xsd:dateTime;
	ex:time  	"2010-04-14T14:37:37Z"^^xsd:dateTime.</pre>
<p>The problem with this approach is not  the use of OWL classification (though it is somewhat ill suited to this task), rather it is the result of a simplistic ontology design. We acknowledge that this crude example ontology has many flaws (the assumption that a HTTP agent operates on a sole port and network address, for example), however to fully satisfy our potential requirements we must adopt an event-based ontology design, as these observations  are inherently temporal in nature.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.marcuscobden.co.uk/2010/04/observational-identity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trust and identity on the Semantic Web</title>
		<link>http://blog.marcuscobden.co.uk/2010/04/trust-and-identity-on-the-semantic-web/</link>
		<comments>http://blog.marcuscobden.co.uk/2010/04/trust-and-identity-on-the-semantic-web/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 15:49:40 +0000</pubDate>
		<dc:creator>Marcus</dc:creator>
				<category><![CDATA[Research]]></category>
		<category><![CDATA[Semantic Web]]></category>
		<category><![CDATA[Identity]]></category>
		<category><![CDATA[PhD]]></category>
		<category><![CDATA[Trust]]></category>

		<guid isPermaLink="false">http://blog.marcuscobden.co.uk/?p=29</guid>
		<description><![CDATA[Open Data movements are gradually gaining traction; government transparency efforts in the US and the UK have begun to release data-sets, some of which are published in Linked Data form. As the range and variety of Semantic Web data publishers grows, it is increasingly important that we address the problem of trust. Previously we discussed [...]]]></description>
			<content:encoded><![CDATA[<p>Open Data movements are gradually gaining traction; government transparency efforts in the <a href="http://www.data.gov/">US</a> and the <a href="http://data.gov.uk/">UK</a> have begun to release  data-sets, some of which are published in Linked Data form. As the range and variety of Semantic Web data publishers grows, it is increasingly important that we address the problem of trust.</p>
<p>Previously we discussed the <a title="The challenges of trust on the Semantic Web" href="http://blog.marcuscobden.co.uk/2010/03/trust-and-the-semantic-web/">challenges of a trust layer for the Semantic Web</a>, and more recently,  <a title="How judgements of trust should be made on the Semantic Web " href="http://blog.marcuscobden.co.uk/2010/03/choosing-to-trust/">how we think these challenges should be faced</a>. We are convinced that provenance and reputation information will be a crucial basis  for Semantic Web trust decisions.</p>
<p>Reputation and provenance are by no means new subjects in the domain of Computer Science, both are grounded in substantial bodies of literature. Existing techniques will likely require some adaption in order to match the challenges of the Web of Linked Data.</p>
<p><a title="Olaf Hartig" href="http://olafhartig.de/">Hartig</a> and <a title="Jun Zhao" href="http://users.ox.ac.uk/~zool0770/">Zhao</a>&#8216;s <a title="Provenance Information in the Web of Data" href="http://events.linkeddata.org/ldow2009/papers/ldow2009_paper18.pdf">provenance vocabulary for Linked Data</a> does exactly this, taking existing provenance techniques in a Web-friendly direction, recognising the distinctions between data curation, publishing and access. To do similar for reputation mechanisms will not be prohibitively difficult, however there remains a missing piece of the technological puzzle: a system of identity.</p>
<p>A notion of identity is necessary for any judgement of trust in order to fully link together available information. The <a href="http://xmlns.com/foaf/spec/">FOAF vocabulary</a> gives us identifiers for people, and the <a title="FOAF+SSL: RESTful Authentication for the Social Web" href="http://bblfish.net/tmp/2009/05/spot2009_submission_15.pdf">FOAF+SSL proposals </a>allow us to prove the ownership of (<a href="http://en.wikipedia.org/wiki/Web_of_trust">Web of Trust</a>, or <a title="Public key infrastructure" href="http://en.wikipedia.org/wiki/Public_key_infrastructure">PKI</a> style) digital certificates, however there is of yet no accepted means of identifying a Semantic Web software agent (e.g. a Webserver) beyond the <code>foaf:Agent</code> type.</p>
<p>In order to properly describe the identity of a Semantic Web agent we require more information than a single URI. For example, in the case of a HTTP-Based Semantic Web agent (a Webserver), metadata such as the hostname and network port  is to some purposes integral to the identity of the agent. To avoid coining a new identity with every HTTP request we must have some criteria by which we judge that the other parties of different data exchanges are the same entity.</p>
<p>An important point to make here is that we cannot rely on declarative identities, that is we cannot count on universal uptake among Semantic Web agents of a vocabulary in which to assert identity. Thus an appropriate identity mechanism must consider both observational identities (identities coined by another agent based on its observations) and declarative identities.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.marcuscobden.co.uk/2010/04/trust-and-identity-on-the-semantic-web/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Defining Trust</title>
		<link>http://blog.marcuscobden.co.uk/2010/03/defining-trust/</link>
		<comments>http://blog.marcuscobden.co.uk/2010/03/defining-trust/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 15:39:14 +0000</pubDate>
		<dc:creator>Marcus</dc:creator>
				<category><![CDATA[Research]]></category>
		<category><![CDATA[Semantic Web]]></category>
		<category><![CDATA[PhD]]></category>
		<category><![CDATA[Trust]]></category>

		<guid isPermaLink="false">http://blog.marcuscobden.co.uk/?p=23</guid>
		<description><![CDATA[One of the issues which my internal examiner raised with my interim report was that while I described the differing definitions of trust in the field, I failed to describe the definition I was adopting for my work. This post attempts to describe my definition of trust, in the range of contexts in which it [...]]]></description>
			<content:encoded><![CDATA[<p>One of the issues which my internal examiner raised with my interim report was that while I described the differing definitions of trust in the field, I failed to describe the definition I was adopting for my work. This  post attempts to describe my definition of trust, in the range of contexts in which it is used.</p>
<p>Depending on the context in which  it is used, the term trust may identify a number of different forms of trust, and the distinction between them is rarely made. We describe our definition for each of these below.</p>
<h3>Trust as an act</h3>
<p>We consider this to be the primary meaning of the term &#8220;trust&#8221;. Trusting is the act of relying on the behaviour of another individual in an uncertain environment, where it is subjectively perceived that the outcome of the situation is contingent on the behaviour of the other individual.</p>
<p>Morton Deutsch&#8217;s definition of trust is perhaps the most widely accepted, it states that:</p>
<blockquote cite="http://scholar.google.co.uk/scholar?cluster=822927189413678306">
<ol style="list-style-type: lower-alpha;">
<li>An individual is confronted with an ambiguous path, a path that can lead to an event perceived to be beneficial (Va<sup>+</sup>) or to an event perceived to be harmful (Va<sup>−</sup>);</li>
<li>they perceives that the occurrence of Va<sup>+</sup> or Va<sup>−</sup> is contingent on the behaviour of another person; and</li>
<li>he perceives the strength of Va<sup>−</sup> to be greater than the strength of Va<sup>+</sup>.</li>
</ol>
<p>If he chooses to take an ambiguous path with such properties, I shall say he makes a trusting choice; if he chooses not to take the path, he makes a distrustful choice.</p></blockquote>
<p>We differ in opinion with Deutsch on two counts; we don&#8217;t consider it necessary for Va<sup>−</sup> to be harmful, only that it be less preferable than Va<sup>+</sup>, and thus also that the relative strengths of Va<sup>+ </sup>and Va<sup>+</sup> need not be a factor in whether it is labeled a trusting choice or not. <a href="http://scholar.google.co.uk/scholar?cluster=822927189413678306&amp;hl=en&amp;as_sdt=2000">Reference information for Deutsch&#8217;s work</a> can be found on Google Scholar and the above passage is reproduced from <a href="http://scholar.google.co.uk/scholar?cluster=17778159013893188000&amp;hl=en&amp;as_sdt=2000">Marsh&#8217;s PhD Thesis</a> on trust as a computational concept.</p>
<p>As an aside, we do not believe that one can trust in an inanimate object, the true target of trust must be elsewhere. To trust in the strength of a tree branch is instead to trust that ones own internal models and estimates of its strength are correct. To trust in a safety harness is a similar situation, one does not trust the harness itself, instead one trusts first ones own personal judgement that the safety harness appears  safe and then that those who are responsible for constructing and maintaining the harnesses have done so with due care and diligence.</p>
<h3>Trust as a decision</h3>
<p>The decision of whether or not to trust is a choice between different courses of action, of which one or more is a trusting path, and one or more is a path which does not rely on trust. When dealing with  complex, multifaceted decisions, potential paths may include measures to decrease the degree of risks or selectively avoid particularly risky events, thus it is often possible to take a trusting path which does not rely on trust in every respect.</p>
<p>The degree of risk, the stakes, and the utility of potential outcomes may all play a role in the decision of whether to trust, however one must remember that their evaluation and weighting are inherently subjective.</p>
<h3>Trust as a bond</h3>
<p>Trust as a bond between two people is the notion that they are able to comfortably rely on the behaviour of each other. Thus a bond of trust is the confidence that each will act in the best interests of the other when placed in a scenario where the utility of the other is contingent on their own actions.</p>
<h3>Trust as a property of society</h3>
<p>Trust within society arises from  the confidence that other members of the  society share the same core values and ideals as oneself,   and the conjecture that they  will therefore behave in a manner which is consistent with these.</p>
<p>These behavioral expectations — or social norms — are enforced within the group and breaching them can lead to punishment and exclusion. For an extensive discussion of the roles trust plays within society, see O&#8217;Hara&#8217;s book <a href="http://eprints.ecs.soton.ac.uk/9361/">&#8220;Trust: from Socrates to Spin&#8221;</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.marcuscobden.co.uk/2010/03/defining-trust/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Choosing to trust</title>
		<link>http://blog.marcuscobden.co.uk/2010/03/choosing-to-trust/</link>
		<comments>http://blog.marcuscobden.co.uk/2010/03/choosing-to-trust/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 13:26:47 +0000</pubDate>
		<dc:creator>Marcus</dc:creator>
				<category><![CDATA[Research]]></category>
		<category><![CDATA[Semantic Web]]></category>
		<category><![CDATA[PhD]]></category>
		<category><![CDATA[Provenance]]></category>
		<category><![CDATA[Reputation]]></category>
		<category><![CDATA[Trust]]></category>

		<guid isPermaLink="false">http://blog.marcuscobden.co.uk/?p=20</guid>
		<description><![CDATA[Previously we explored the challenges of trust on the Semantic Web and described our take on how we might go about engineering a trust layer for the Semantic Web technology stack. This post elaborates on the challenge of making a judgement of trust. Recalling the two questions posed in the previous post: Can I rely [...]]]></description>
			<content:encoded><![CDATA[<p>Previously we explored the <a title="The challenges of trust on the Semantic Web" href="http://blog.marcuscobden.co.uk/2010/03/trust-and-the-semantic-web/">challenges of trust on the Semantic Web</a> and described our take on how we might go about engineering a trust layer for the Semantic Web technology stack. This post elaborates on the challenge of making a judgement of trust.</p>
<p>Recalling the two questions posed in the previous post:</p>
<ol>
<li>Can I rely on this piece of information?</li>
<li>Can I trust this service provider?</li>
</ol>
<p>As we observed previously, both questions call for a judgement to be made based on available information.</p>
<p>Consider the first question,  of whether to rely on — and therefore trust in — a piece of information. We believe this decision should be based on the level of belief that is held in that statement. Furthermore, our level of belief in a statement should be grounded in an assessment of its credibility and plausibility.</p>
<p>To clarify further, we consider the credibility of a statement to be an assessment of the reliability and trustworthiness of the agents and processes involved in its assertion. Such an assessment would likely include  analysis of the provenance data associated with the statement, as well as a review of reputation information and first-hand experiences of the actors and processes involved.</p>
<p>With respect to plausibility, we consider it to be a measure of how likely a statement is to be true, against the background of our existing knowledge, taking into account confirmatory or contradictory knowledge and trends.﻿</p>
<p>The second question has much in common with the first; while the primary concern of the judgement is over the expected behaviour of the service provider, it too must be concerned to some degree with the provenance of information. Reputation information is  valuable in judging expected behaviour and facilitates interactions with yet un-encountered providers, however the provenance of reputation information is also important because disreputable sources may provide fraudulent information when collaborating with disreputable service providers.</p>
<p>Therefore, if we are to construct an ecosystem of Semantic Web technologies in order to engineer trust as a macro phenomena, we must first engineer robust  provenance and reputation systems for the Semantic Web.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.marcuscobden.co.uk/2010/03/choosing-to-trust/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Trust and the Semantic Web</title>
		<link>http://blog.marcuscobden.co.uk/2010/03/trust-and-the-semantic-web/</link>
		<comments>http://blog.marcuscobden.co.uk/2010/03/trust-and-the-semantic-web/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 17:11:14 +0000</pubDate>
		<dc:creator>Marcus</dc:creator>
				<category><![CDATA[Research]]></category>
		<category><![CDATA[Semantic Web]]></category>
		<category><![CDATA[PhD]]></category>
		<category><![CDATA[Trust]]></category>

		<guid isPermaLink="false">http://blog.marcuscobden.co.uk/?p=21</guid>
		<description><![CDATA[Trust has long been foreseen as challenge for the Semantic Web research community, appearing in the upper echelons of the Semantic Web Layer Cake technology stack, however Semantic Web research around the topic of trust does not seem to have a clear idea of what exactly this challenge is. Jen Golbeck&#8216;s prominent work with Semantic [...]]]></description>
			<content:encoded><![CDATA[<p>Trust has long been foreseen as challenge for the <a title="Semantic Web" href="http://en.wikipedia.org/wiki/Semantic_Web">Semantic Web</a> research community, appearing in the upper echelons of the <a title="The Semantic Web technology stack layer cake" href="http://en.wikipedia.org/wiki/Semantic_Web_Stack">Semantic Web Layer Cake technology stack</a>, however Semantic Web research around the topic of trust does not seem to have a clear idea of what exactly this challenge is.</p>
<p><a title="Jennifer Golbeck's Homepage" href="http://www.cs.umd.edu/~golbeck/">Jen Golbeck</a>&#8216;s prominent work with Semantic Web technologies has harnessed <a title="Linking Social Networks on the Web with FOAF: A Semantic Web Case Study" href="http://www.cs.umd.edu/~golbeck/downloads/foaf.pdf">trust within social networks</a>, putting it to tasks such as <a title="Trust Networks on the Semantic Web" href="http://www.mindswap.org/papers/CIA03.pdf">Email filtering</a> and <a title="Semantic Web Interaction through Trust Network Recommender Systems" href="http://trust.mindswap.org/papers/FilmTrustInteractionWKSHP.pdf">film recommendation</a>, unfortunately this does not really shed any light on the role trust might play in the Semantic Web technology stack.</p>
<p>If we unpack our expectations of a Semantic Web trust layer, taking the time to  consider what we expect it to achieve,  by what questions we wish to be able to ask of it,  we generally arrive at two questions:</p>
<ol>
<li>Can I rely on this piece of information?</li>
<li>Can I trust this service provider?</li>
</ol>
<p>These two questions are fundamentally different; the first pertains to the  truth of a piece of information, whereas the second concerns the probable behaviour of another agent. However both are similar in that they require a judgement to be made based on  information such as provenance and reputation.</p>
<p>To construct a trust layer we require both the capacity to make such judgements and the information on which to ground such decisions, both of which represent sizable research challenges.</p>
<p>The Semantic Web trust layer will not be a single technology,  rather a collection of interacting techniques and standards whose emergent macro phenomena we must engineer to be trust.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.marcuscobden.co.uk/2010/03/trust-and-the-semantic-web/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Hello WordPress!</title>
		<link>http://blog.marcuscobden.co.uk/2010/03/hello-wordpress/</link>
		<comments>http://blog.marcuscobden.co.uk/2010/03/hello-wordpress/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 13:09:19 +0000</pubDate>
		<dc:creator>Marcus</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Blogger]]></category>
		<category><![CDATA[PhD]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://blog.marcuscobden.co.uk/?p=18</guid>
		<description><![CDATA[Contrary to my previous post, I&#8217;m back on a self-hosted wordpress weblog. The main reason for the change is that Google are discontinuing support for (s)FTP publishing in late March. The transition over to WordPress was painless (though I did have to switch away from FTP publishing to make the posts importer work properly) and [...]]]></description>
			<content:encoded><![CDATA[<p>Contrary to my <a title="Hello World" href="http://blog.marcuscobden.co.uk/2007/12/hello-world/">previous post</a>, I&#8217;m back on a self-hosted wordpress weblog. The main reason for the change is that <a title="Blogger FTP publishing support discontinued" href="http://buzz.blogger.com/2010/01/important-note-to-ftp-users.html">Google are discontinuing support for (s)FTP publishing</a> in late March.</p>
<p>The transition over to WordPress was painless (though I did have to switch away from FTP publishing to make the posts importer work properly) and the admin interface has grown up a lot since I last installed it, I&#8217;m very impressed with how clean and efficient it&#8217;s become.</p>
<p>I&#8217;ve settled on this minimal theme for now, but I intend to make it my own over the next few months. In the mean time, you can hopefully expect more frequent updates as I intend to make this blog a staging area of sorts for my research, a means of clarifying and refining my thoughts.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.marcuscobden.co.uk/2010/03/hello-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automating iSync and Bluetooth</title>
		<link>http://blog.marcuscobden.co.uk/2009/09/automating-isync-and-bluetooth/</link>
		<comments>http://blog.marcuscobden.co.uk/2009/09/automating-isync-and-bluetooth/#comments</comments>
		<pubDate>Sun, 27 Sep 2009 18:17:00 +0000</pubDate>
		<dc:creator>Marcus</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Applescript]]></category>
		<category><![CDATA[Bluetooth]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[iSync]]></category>
		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://newblog.marcuscobden.co.uk/?p=14</guid>
		<description><![CDATA[With some pointers from friends I've beaten applescript into submission and coded up a script to automate the bluetooth iSync syncing with my phone.]]></description>
			<content:encoded><![CDATA[<p>With some pointers from friends I&#8217;ve beaten applescript into submission and coded up a script to automate the bluetooth iSync syncing with my phone.<br/><br />
The script opens up System Preferences and enables Bluetooth, then launches iSync and instructs it to sync. It will then leave Bluetooth in the state that it found it in.<br/><br />
The code is below for anyone who might find it handy :) Oh and for the record this is written to run on Mac OS X Leopard.
</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
</pre></td><td class="code"><pre class="applescript" style="font-family:monospace;"><span style="color: #0066ff;">display dialog</span> <span style="color: #009900;">&quot;Sync?&quot;</span> <span style="color: #0066ff;">buttons</span> <span style="color: #000000;">&#123;</span><span style="color: #009900;">&quot;Ok&quot;</span>, <span style="color: #009900;">&quot;Cancel&quot;</span><span style="color: #000000;">&#125;</span> default button <span style="color: #000000;">2</span>
<span style="color: #ff0033; font-weight: bold;">if</span> <span style="color: #ff0033;">the</span> button returned <span style="color: #ff0033; font-weight: bold;">of</span> <span style="color: #ff0033;">the</span> <span style="color: #0066ff;">result</span> <span style="color: #ff0033; font-weight: bold;">is</span> <span style="color: #009900;">&quot;Cancel&quot;</span> <span style="color: #ff0033; font-weight: bold;">then</span>
    stop
<span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">if</span>
&nbsp;
<span style="color: #ff0033; font-weight: bold;">tell</span> <span style="color: #0066ff;">application</span> <span style="color: #009900;">&quot;System Preferences&quot;</span>
    <span style="color: #0066ff;">activate</span>
    <span style="color: #ff0033; font-weight: bold;">set</span> current pane <span style="color: #ff0033; font-weight: bold;">to</span> pane <span style="color: #009900;">&quot;com.apple.preferences.Bluetooth&quot;</span>
&nbsp;
        <span style="color: #ff0033; font-weight: bold;">tell</span> <span style="color: #0066ff;">application</span> <span style="color: #009900;">&quot;System Events&quot;</span> <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #ff0033; font-weight: bold;">tell</span> <span style="color: #0066ff;">window</span> <span style="color: #009900;">&quot;Bluetooth&quot;</span> <span style="color: #ff0033; font-weight: bold;">of</span> process <span style="color: #009900;">&quot;System Preferences&quot;</span>
            <span style="color: #ff0033; font-weight: bold;">set</span> was_on <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #ff0033;">the</span> value <span style="color: #ff0033; font-weight: bold;">of</span> checkbox <span style="color: #009900;">&quot;On&quot;</span>
&nbsp;
            <span style="color: #ff0033; font-weight: bold;">if</span> value <span style="color: #ff0033; font-weight: bold;">of</span> checkbox <span style="color: #009900;">&quot;On&quot;</span> <span style="color: #ff0033; font-weight: bold;">is</span> <span style="color: #ff0033;">equal</span> <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #000000;">0</span> <span style="color: #ff0033; font-weight: bold;">then</span>
                <span style="color: #ff0033; font-weight: bold;">tell</span> checkbox <span style="color: #009900;">&quot;On&quot;</span> <span style="color: #ff0033; font-weight: bold;">to</span> click
            <span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">if</span>
        <span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">tell</span>
    <span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">tell</span>
&nbsp;
    <span style="color: #ff0033; font-weight: bold;">tell</span> <span style="color: #0066ff;">application</span> <span style="color: #009900;">&quot;iSync&quot;</span>
        synchronize
&nbsp;
        <span style="color: #ff0033; font-weight: bold;">repeat</span> <span style="color: #ff0033; font-weight: bold;">while</span> <span style="color: #000000;">&#40;</span>syncing <span style="color: #ff0033; font-weight: bold;">is</span> <span style="color: #0066ff;">true</span><span style="color: #000000;">&#41;</span>
            delay <span style="color: #000000;">5</span>
        <span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">repeat</span>
        <span style="color: #ff0033; font-weight: bold;">set</span> syncStatus <span style="color: #ff0033; font-weight: bold;">to</span> sync status
&nbsp;
        <span style="color: #ff0033; font-weight: bold;">if</span> syncStatus <span style="color: #ff0033; font-weight: bold;">is</span> <span style="color: #ff0033;">not</span> <span style="color: #000000;">2</span> <span style="color: #ff0033; font-weight: bold;">then</span>
            <span style="color: #ff0033; font-weight: bold;">if</span> syncStatus <span style="color: #000000;">=</span> <span style="color: #000000;">3</span> <span style="color: #ff0033; font-weight: bold;">then</span>
                <span style="color: #ff0033; font-weight: bold;">set</span> syncStatus <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #009900;">&quot;completed with warnings&quot;</span>
            <span style="color: #ff0033; font-weight: bold;">else</span> <span style="color: #ff0033; font-weight: bold;">if</span> syncStatus <span style="color: #000000;">=</span> <span style="color: #000000;">4</span> <span style="color: #ff0033; font-weight: bold;">then</span>
                <span style="color: #ff0033; font-weight: bold;">set</span> syncStatus <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #009900;">&quot;completed with errors&quot;</span>
            <span style="color: #ff0033; font-weight: bold;">else</span> <span style="color: #ff0033; font-weight: bold;">if</span> syncStatus <span style="color: #000000;">=</span> <span style="color: #000000;">5</span> <span style="color: #ff0033; font-weight: bold;">then</span>
                <span style="color: #ff0033; font-weight: bold;">set</span> syncStatus <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #009900;">&quot;last sync cancelled&quot;</span>
            <span style="color: #ff0033; font-weight: bold;">else</span> <span style="color: #ff0033; font-weight: bold;">if</span> syncStatus <span style="color: #000000;">=</span> <span style="color: #000000;">6</span> <span style="color: #ff0033; font-weight: bold;">then</span>
                <span style="color: #ff0033; font-weight: bold;">set</span> syncStatus <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #009900;">&quot;last sync failed to complete&quot;</span>
            <span style="color: #ff0033; font-weight: bold;">else</span> <span style="color: #ff0033; font-weight: bold;">if</span> syncStatus <span style="color: #000000;">=</span> <span style="color: #000000;">7</span> <span style="color: #ff0033; font-weight: bold;">then</span>
                <span style="color: #ff0033; font-weight: bold;">set</span> syncStatus <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #009900;">&quot;never synced&quot;</span>
            <span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">if</span>
        <span style="color: #0066ff;">display dialog</span> <span style="color: #009900;">&quot;syncStatus: &quot;</span> <span style="color: #000000;">&amp;</span>amp; syncStatus
    <span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">if</span>
    <span style="color: #0066ff;">quit</span>
<span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">tell</span>
&nbsp;
<span style="color: #ff0033; font-weight: bold;">if</span> was_on <span style="color: #ff0033; font-weight: bold;">is</span> <span style="color: #ff0033;">equal</span> <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #000000;">0</span> <span style="color: #ff0033; font-weight: bold;">then</span>
    <span style="color: #ff0033; font-weight: bold;">tell</span> <span style="color: #0066ff;">application</span> <span style="color: #009900;">&quot;System Preferences&quot;</span>
        <span style="color: #ff0033; font-weight: bold;">set</span> current pane <span style="color: #ff0033; font-weight: bold;">to</span> pane <span style="color: #009900;">&quot;com.apple.preferences.Bluetooth&quot;</span>
&nbsp;
        <span style="color: #ff0033; font-weight: bold;">tell</span> <span style="color: #0066ff;">application</span> <span style="color: #009900;">&quot;System Events&quot;</span> <span style="color: #ff0033; font-weight: bold;">to</span> <span style="color: #ff0033; font-weight: bold;">tell</span> <span style="color: #0066ff;">window</span> <span style="color: #009900;">&quot;Bluetooth&quot;</span> <span style="color: #ff0033; font-weight: bold;">of</span> process <span style="color: #009900;">&quot;System Preferences&quot;</span>
            <span style="color: #ff0033; font-weight: bold;">if</span> value <span style="color: #ff0033; font-weight: bold;">of</span> checkbox <span style="color: #009900;">&quot;On&quot;</span> <span style="color: #ff0033; font-weight: bold;">is</span> <span style="color: #000000;">1</span> <span style="color: #ff0033; font-weight: bold;">then</span>
                <span style="color: #ff0033; font-weight: bold;">tell</span> checkbox <span style="color: #009900;">&quot;On&quot;</span> <span style="color: #ff0033; font-weight: bold;">to</span> click
            <span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">if</span>
        <span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">tell</span>
        <span style="color: #0066ff;">quit</span>
    <span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">tell</span>
<span style="color: #ff0033; font-weight: bold;">end</span> <span style="color: #ff0033; font-weight: bold;">if</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.marcuscobden.co.uk/2009/09/automating-isync-and-bluetooth/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dual Booting Windows Vista and XP</title>
		<link>http://blog.marcuscobden.co.uk/2009/08/dual-booting-windows-vista-and-xp/</link>
		<comments>http://blog.marcuscobden.co.uk/2009/08/dual-booting-windows-vista-and-xp/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 20:10:00 +0000</pubDate>
		<dc:creator>Marcus</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Drive letters]]></category>
		<category><![CDATA[Dual boot]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[Install]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[Windows Vista]]></category>
		<category><![CDATA[Windows XP]]></category>

		<guid isPermaLink="false">http://newblog.marcuscobden.co.uk/?p=13</guid>
		<description><![CDATA[You can use grub to hide an NTFS partition from the Windows XP installer, coaxing it to install on "C:" rather than something like "H:".]]></description>
			<content:encoded><![CDATA[<p>At work I have 3 Operating systems installed on my PC; Ubuntu Linux, Vista and XP. Originally I only had Ubuntu and Vista, and a big empty portion of the disk intended for XP if I needed it.</p>
<p>Due to these existing partitions, and a USB media card reader, the Windows XP installer would decide label it&#8217;s system partition &#8220;H:&#8221;, instead of the usual &#8220;C:&#8221;. I&#8217;m not sure how much this would have broken, but it annoyed me to the point that I found a hack to fix it.</p>
<p>I found that grub (the linux boot-loader) on my Linux partition allows you to <a href="http://www.gnu.org/software/grub/manual/html_node/DOS-Windows.html">edit the partition table and set the Vista NTFS partition to &#8216;hidden&#8217;</a>. The XP installer could still see there was a partition there, but it didn&#8217;t understand it, and thus labelled it&#8217;s new partition &#8220;C:&#8221;. XP will of course then proceed to clobber your existing bootloader, but that&#8217;s a common occurrence, and fixable from a LiveCD, google is your friend here.</p>
<p>You should also be able to use a copy of grub on a LiveCD to mark the partition as (un)hidden if you don&#8217;t have Linux on your system normally.</p>
<p>Apologies for any vagueness and lack of technical details, this post has been on the back burner for a few months now, and I&#8217;ve actually forgotten most of the details.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.marcuscobden.co.uk/2009/08/dual-booting-windows-vista-and-xp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
