<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss1full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://purl.org/rss/1.0/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0"><channel rdf:about="http://nuin.blogspot.com/"><title>Reactive, autonomous</title><link>http://nuin.blogspot.com/</link><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rdf+xml" href="http://feeds.feedburner.com/ReactiveAutonomous" /><description>Software agents and the semantic web, and other technology musings</description><dc:language>en</dc:language><dc:creator>noreply@blogger.com (Ian)</dc:creator><dc:date>2013-02-04T05:24:20-08:00</dc:date><admin:generatorAgent xmlns:admin="http://webns.net/mvcb/" rdf:resource="http://www.blogger.com" /><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/">203</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/">25</openSearch:itemsPerPage><feedburner:info uri="reactiveautonomous" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><items><rdf:Seq><rdf:li rdf:resource="tag:blogger.com,1999:blog-8627566.post-3634302185158032258" /><rdf:li rdf:resource="tag:blogger.com,1999:blog-8627566.post-3032533716301674169" /><rdf:li rdf:resource="tag:blogger.com,1999:blog-8627566.post-2636495097502105457" /><rdf:li rdf:resource="tag:blogger.com,1999:blog-8627566.post-8160974852455452974" /><rdf:li rdf:resource="tag:blogger.com,1999:blog-8627566.post-5307346682930973321" /><rdf:li rdf:resource="tag:blogger.com,1999:blog-8627566.post-4972885183119150787" /><rdf:li rdf:resource="tag:blogger.com,1999:blog-8627566.post-6058812297333291113" /><rdf:li rdf:resource="tag:blogger.com,1999:blog-8627566.post-4482459621448501551" /><rdf:li rdf:resource="tag:blogger.com,1999:blog-8627566.post-2289839734870907405" /><rdf:li rdf:resource="tag:blogger.com,1999:blog-8627566.post-7262409574571855920" /><rdf:li rdf:resource="tag:blogger.com,1999:blog-8627566.post-6649804871089272341" /><rdf:li rdf:resource="tag:blogger.com,1999:blog-8627566.post-4050460185989065703" /><rdf:li rdf:resource="tag:blogger.com,1999:blog-8627566.post-4828867700508271299" /><rdf:li rdf:resource="tag:blogger.com,1999:blog-8627566.post-7996916570350603186" /><rdf:li rdf:resource="tag:blogger.com,1999:blog-8627566.post-2798759270005595821" /><rdf:li rdf:resource="tag:blogger.com,1999:blog-8627566.post-6370371869392292793" /><rdf:li rdf:resource="tag:blogger.com,1999:blog-8627566.post-8382937878674725582" /><rdf:li rdf:resource="tag:blogger.com,1999:blog-8627566.post-6965987701169061979" /><rdf:li rdf:resource="tag:blogger.com,1999:blog-8627566.post-8928776992759043321" /><rdf:li rdf:resource="tag:blogger.com,1999:blog-8627566.post-38254491096783149" /><rdf:li rdf:resource="tag:blogger.com,1999:blog-8627566.post-6563022167985102607" /><rdf:li rdf:resource="tag:blogger.com,1999:blog-8627566.post-7556737544345748629" /><rdf:li rdf:resource="tag:blogger.com,1999:blog-8627566.post-8324803341135590605" /><rdf:li rdf:resource="tag:blogger.com,1999:blog-8627566.post-761459380771168682" /><rdf:li rdf:resource="tag:blogger.com,1999:blog-8627566.post-6321041992498736225" /></rdf:Seq></items><geo:lat>51.14276</geo:lat><geo:long>-2.71619</geo:long></channel><item rdf:about="tag:blogger.com,1999:blog-8627566.post-3634302185158032258"><title>Firefox4 on 64 bit Ubuntu</title><link>http://feedproxy.google.com/~r/ReactiveAutonomous/~3/qaSXLAAR0vI/firefox4-on-64-bit-ubuntu.html</link><dc:subject>firefox</dc:subject><dc:subject>64-bit</dc:subject><dc:subject>ubuntu</dc:subject><dc:subject>4.0</dc:subject><dc:creator>noreply@blogger.com (Ian)</dc:creator><dc:date>2011-03-25T05:11:46-07:00</dc:date><description>&lt;p&gt;Now that Firefox 4 final is out, I wanted to switch to using it rather than version 3.x on my Ubuntu 10.10 systems. You can download a &lt;a href="http://download.mozilla.org/?product=firefox-4.0&amp;os=linux&amp;lang=en-GB"&gt;Linux version&lt;/a&gt; of Firefox 4.0 from the Mozilla site, but it's 32-bit only. While it will run, the problem I found is that all of my plugins (libflashplayer, etc) stopped working. The solution is to install the 64-bit build of Firefox 4, which is available on a &lt;a href="https://launchpad.net/ubuntu"&gt;launchpad&lt;/a&gt; &lt;a href="https://launchpad.net/~mozillateam/+archive/firefox-stable"&gt;PPA&lt;/a&gt;. Thus:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt-add-repository ppa:mozillateam/firefox-stable 
sudo apt-get update
sudo apt-get upgrade&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That gave me a new, working FireFox 4.0. Most of my extensions worked OK, with the exception of del.icio.us (fix &lt;a href="http://support.delicious.com/forum/comments.php?DiscussionID=5168"&gt;here&lt;/a&gt;), and All-in-one sidebar (now uninstalled). And, weirdly, the language packs aren't compatible between 3.x and 4.0, but I assume that will get sorted in time.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=qaSXLAAR0vI:NqnefOnrj6A:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=qaSXLAAR0vI:NqnefOnrj6A:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?i=qaSXLAAR0vI:NqnefOnrj6A:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactiveAutonomous/~4/qaSXLAAR0vI" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-25T12:11:46.296Z</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://nuin.blogspot.com/2011/03/firefox4-on-64-bit-ubuntu.html</feedburner:origLink></item><item rdf:about="tag:blogger.com,1999:blog-8627566.post-3032533716301674169"><title>Quick tip: SHA1 or MD5 checksum strings in Java</title><link>http://feedproxy.google.com/~r/ReactiveAutonomous/~3/mWZ75IilU_E/quick-tip-sha1-or-md5-checksum-strings.html</link><dc:creator>noreply@blogger.com (Ian)</dc:creator><dc:date>2011-03-24T07:38:04-07:00</dc:date><description>&lt;p&gt;In a recent project (OK, I was processing &lt;a href="http://www.foaf-project.org"&gt;FOAF&lt;/a&gt; data), I needed to be able to generate the hex-encoded string of a SHA1 checksum. The built-in Java security classes can do the heavy-lifting, of generating the checksum itself, but they deliver the resulting checksum as a byte-array. I needed the string encoding of that array. There are various code-snippets around on the web to do that, by iterating over the byte array and incrementally building up the string in a buffer, but they look low-level and inelegant. The following is much neater (written for SHA1, but the method works for the other digest formats):&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;public String getEncodedSha1Sum( String key ) {
    try {
        MessageDigest md = MessageDigest.getInstance( "SHA1" );
        md.update( key.getBytes() );
        return new BigInteger( 1, md.digest() ).toString(16);
    }
    catch (NoSuchAlgorithmException e) {
        // handle error case to taste
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Kudos to &lt;a href="http://stackoverflow.com/users/3415/brian-gianforcaro"&gt;Brian Gianforcaro&lt;/a&gt; on StackOverflow for the tip&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=mWZ75IilU_E:3WYLHd3H8II:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=mWZ75IilU_E:3WYLHd3H8II:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?i=mWZ75IilU_E:3WYLHd3H8II:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactiveAutonomous/~4/mWZ75IilU_E" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-24T14:38:04.114Z</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nuin.blogspot.com/2011/03/quick-tip-sha1-or-md5-checksum-strings.html</feedburner:origLink></item><item rdf:about="tag:blogger.com,1999:blog-8627566.post-2636495097502105457"><title>Ruby, rvm and Eclipse</title><link>http://feedproxy.google.com/~r/ReactiveAutonomous/~3/JlpFbrKKuRU/ruby-rvm-and-eclipse.html</link><dc:creator>noreply@blogger.com (Ian)</dc:creator><dc:date>2011-01-27T15:30:02-08:00</dc:date><description>&lt;p&gt;I've switched to using &lt;a href="http://rvm.beginrescueend.com/"&gt;rvm&lt;/a&gt; for all of my ruby development. Rvm makes it trivial to have multiple copies of ruby installed side-by-side, while trying to do that using &lt;code&gt;apt-get&lt;/code&gt; was proving a big headache. It has brought one minor gotcha though: rvm runs a script from the &lt;code&gt;.bashrc&lt;/code&gt; or &lt;code&gt;.bash_profile&lt;/code&gt; to set up the environment so that a current &amp;ndash; default &amp;ndash; version of ruby is always selected. If the &lt;code&gt;.bashrc&lt;/code&gt; isn't run, no rvm and hence no ruby. I have my Linux desktop set up so that I have a quick-lauch button for Eclipse on the toolbar docked to the edge of my screen. Launching Eclipse from there &lt;em&gt;doesn't&lt;/em&gt; invoke &lt;code&gt;.bashrc&lt;/code&gt; for the containing shell, hence Eclipse wasn't seeing my installed rubies. I could point to the actual location of the ruby interpreters, but my applications weren't able to load any gems.&lt;/p&gt;
&lt;p&gt;My solution was to force Eclipse to run in a shell which does load &lt;code&gt;.bashrc&lt;/code&gt;. This is simply achieved by the &lt;code&gt;-i&lt;/code&gt; and &lt;code&gt;-c&lt;/code&gt; flags for &lt;code&gt;/bin/bash&lt;/code&gt;: i to force an interactive shell (which loads .bashrc) and c to run a specific command (Eclipse in this case).&lt;/p&gt;

&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_7zzP34g7xD0/TUH_BF8XHII/AAAAAAAAAGc/GM6UA7XYG6o/s1600/launch-eclipse.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 129px;" src="http://3.bp.blogspot.com/_7zzP34g7xD0/TUH_BF8XHII/AAAAAAAAAGc/GM6UA7XYG6o/s320/launch-eclipse.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5567011008646945922" /&gt;&lt;/a&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=JlpFbrKKuRU:yAwV5kFSG18:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=JlpFbrKKuRU:yAwV5kFSG18:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?i=JlpFbrKKuRU:yAwV5kFSG18:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactiveAutonomous/~4/JlpFbrKKuRU" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-27T23:30:02.947Z</app:edited><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_7zzP34g7xD0/TUH_BF8XHII/AAAAAAAAAGc/GM6UA7XYG6o/s72-c/launch-eclipse.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total><feedburner:origLink>http://nuin.blogspot.com/2011/01/ruby-rvm-and-eclipse.html</feedburner:origLink></item><item rdf:about="tag:blogger.com,1999:blog-8627566.post-8160974852455452974"><title>Maven, Eclipse and Tomcat: alternative to WTP</title><link>http://feedproxy.google.com/~r/ReactiveAutonomous/~3/uIlnaWvQKOU/maven-eclipse-and-tomcat-alternative-to.html</link><dc:subject>wtp</dc:subject><dc:subject>eclipse</dc:subject><dc:subject>tomcat</dc:subject><dc:subject>maven</dc:subject><dc:creator>noreply@blogger.com (Ian)</dc:creator><dc:date>2010-07-16T10:33:36-07:00</dc:date><description>&lt;p&gt;Despite some frustrations, I like using &lt;a href="http://maven.apache.org/"&gt;Maven&lt;/a&gt; in my Java projects for its dependency management and standardized project layouts. Since I develop in &lt;a href="http://www.eclipse.org/"&gt;Eclipse&lt;/a&gt; primarily, I use the &lt;a href="http://m2eclipse.sonatype.org/"&gt;m2eclipse&lt;/a&gt; plugin to make Eclipse maven-aware. Which generally works well, except in the case of developing web applications. Eclipse's primary tool for managing web application development is the &lt;a href="http://www.eclipse.org/webtools/"&gt;web tools project&lt;/a&gt; or WTP. WTP takes a fairly heavyweight approach to web apps; in particular it likes to copy the contents of a project into a special location (typically &lt;code&gt;${workspace}/.metadata/.plugins/org.eclipse.wst.server.core/tmp0&lt;/code&gt;) and use that as the web application context. It has to re-copy, including maven dependencies, when code is updated. Partly for this reason, and partly because WTP and m2eclipse &lt;a href="https://issues.sonatype.org/sr/jira.issueviews:searchrequest-printable/temp/SearchRequest.html?jqlQuery=(summary+~+wtp+OR+description+~+wtp)+AND+status+%3D+Open&amp;tempMax=1000"&gt;don't always play nice&lt;/a&gt;, I've been looking at alternatives.&lt;/p&gt;
&lt;p&gt;A colleague recommends the &lt;a href="http://www.eclipsetotale.com/tomcatPlugin.html"&gt;Sysdeo Tomcat plugin&lt;/a&gt; for Eclipse, which runs only &lt;a href="http://tomcat.apache.org/"&gt;Tomcat&lt;/a&gt; (fairly obviously), not the other app-containers that WTP supports, but does so in-place: there's no need for code to be copied to a temporary context. Although there's no Eclipse update URL, it's easy enough to install the plugin. The plugin provides a Tomcat extension &lt;a href="http://www.eclipsetotale.com/tomcatPlugin/readmeDevLoader.html"&gt;DevLoader&lt;/a&gt;, which puts dependencies (including maven-managed dependencies) on the app's classpath without them needing to be in &lt;code&gt;webapp/lib&lt;/code&gt;. To enable the DevLoader functionality with Tomcat version 6, I had to follow the instructions on &lt;a href="http://tech-nickel.blogspot.com/2008/10/eclipse-tomcat-sysdeo-and-devloader.html"&gt;this blog post&lt;/a&gt; to make a &lt;code&gt;devloader.jar&lt;/code&gt;, rather than follow the instructions on the plugin website (which I suspect worked for older versions of Tomcat).&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=uIlnaWvQKOU:yUbLZZBseN8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=uIlnaWvQKOU:yUbLZZBseN8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?i=uIlnaWvQKOU:yUbLZZBseN8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactiveAutonomous/~4/uIlnaWvQKOU" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-16T18:33:36.872+01:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nuin.blogspot.com/2010/07/maven-eclipse-and-tomcat-alternative-to.html</feedburner:origLink></item><item rdf:about="tag:blogger.com,1999:blog-8627566.post-5307346682930973321"><title>Design vs engineering: not an either-or</title><link>http://feedproxy.google.com/~r/ReactiveAutonomous/~3/9vXm50LIGgs/design-vs-engineering-not-either-or.html</link><dc:subject>design engineering user-experience</dc:subject><dc:creator>noreply@blogger.com (Ian)</dc:creator><dc:date>2010-06-24T08:08:01-07:00</dc:date><description>&lt;p&gt;A serendipitous collision of two worlds through links passed via &lt;a href="http://twitter.com"&gt;Twitter&lt;/a&gt; today. First, a nice rant from Andraz Tori from &lt;a href="http://www.zemanta.com"&gt;Zemanta&lt;/a&gt;: &lt;a href="http://www.slideshare.net/andraz/semtech2010-do-semanticwebuserinterfaceshavetobeugly"&gt;&lt;em&gt;Do semantic web interfaces have to be ugly?&lt;/em&gt;&lt;/a&gt;. Tori bemoans semantic web applications that let their clever technological underpinnings and perfect abstractions hang out for all to admire, rather than focussing on helping the user to achieve their goals through superior user experience design. Well and good. Then I got linked to an article by Brian Zmijewski of &lt;a href="http://www.zurb.com"&gt;Zurb&lt;/a&gt;: &lt;a href="http://www.zurb.com/article/382/fewer-engineers-please"&gt;&lt;em&gt;Fewer engineers please!&lt;/em&gt;&lt;/a&gt;. In this piece, Zmijewski argues that smaller project teams are better: if two pizzas can't feed the team then it's too big. In particular, the suggestion is that there should be fewer engineers messing up the user experience design (ok, I'm paraphasing a bit ... but only a bit). Separate from the main thesis (I'll come back to that), the most interesting part of the article is the furious reaction in the comments, mostly from engineers who claim that the only role of designers is to &amp;quot;pretty things up&amp;quot;, presumably by picking exactly the right shade of pastel or something. Of course, if I can borrow an American phrase, that's a total crock. Designers do much more than that. But equally, engineers shouldn't be parodied as introverted inaesthetes either. Nobody &lt;em&gt;wants&lt;/em&gt; to develop a poor product or let down customers and users. It's bad for business, but it's fundamentally &lt;em&gt;unsatisfying&lt;/em&gt; to work on something that people don't like or won't buy.&lt;/p&gt;
&lt;p&gt;What's most depressing to me is to hear from both sides &amp;quot;No, &lt;strong&gt;we&lt;/strong&gt; solve problems - that's &lt;strong&gt;our&lt;/strong&gt; training&amp;quot;. And it's true, both engineering training and design training focusses on solving problems. Which is right? Well, it's not a zero-sum game, so both camps are correct &amp;ndash; up to a point. What we need more of, in my view, is &lt;em&gt;really thinking about the end-user&lt;/em&gt;. The design community have, traditionally, had a greater strength in this regard, but it's a teachable skill and it's a skill that should be shared and developed, not hoarded. Design &lt;em&gt;thinking&lt;/em&gt; should not the sole purview of design&lt;em&gt;ers&lt;/em&gt;. Let's work together to build some non-ugly semantic web interfaces, and other great products.&lt;/p&gt;
&lt;p&gt;Are small project teams better? It's axiomatic that adding more people that necessary just increases waste and delay, but arbitrary rules are silly. It depends what you're trying to achieve. Yes a small teams can do good work, but, for example, nearly two thousand two hundred people built the &lt;a href="http://public.web.cern.ch/public/en/LHC/LHC-en.html"&gt;LHC&lt;/a&gt;. That would be a singularly big pizza.&lt;/p&gt;
&lt;p&gt;In summary: fewer arbitrary rules and demarcations, more user-centred &lt;a href="http://www.coderenaissance.com/2008/11/renaissance-developer.html"&gt;renaissance developers&lt;/a&gt;.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=9vXm50LIGgs:DXGFep29dMg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=9vXm50LIGgs:DXGFep29dMg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?i=9vXm50LIGgs:DXGFep29dMg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactiveAutonomous/~4/9vXm50LIGgs" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-24T16:08:01.970+01:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nuin.blogspot.com/2010/06/design-vs-engineering-not-either-or.html</feedburner:origLink></item><item rdf:about="tag:blogger.com,1999:blog-8627566.post-4972885183119150787"><title>Skype and Ubuntu: lost notification sounds - solution</title><link>http://feedproxy.google.com/~r/ReactiveAutonomous/~3/3TA9dfsG8RM/skype-and-ubuntu-lost-notification.html</link><dc:subject>skype</dc:subject><dc:subject>sound</dc:subject><dc:subject>linux</dc:subject><dc:subject>ubuntu</dc:subject><dc:creator>noreply@blogger.com (Ian)</dc:creator><dc:date>2010-05-30T11:29:44-07:00</dc:date><description>&lt;p&gt;I use &lt;a href="http://www.skype.com/intl/en-us/get-skype/on-your-computer/linux/"&gt;Skype for Linux&lt;/a&gt; very successfully on my 64bit Ubuntu 10.04 distribution – it's a great way to call in to the daily scrum at work, for example. Recently update-manager upgraded my Skype to version 2.1.0.81, at which point I stopped hearing notification sounds (e.g. the incoming-call notification, which is pretty handy!). I still got on-screen popup notifications where enabled, and I could still make calls and hear callers, but no notification sounds.&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;The solution was to go to the &lt;code&gt;gnome-volume-control&lt;/code&gt;, and massively increase the slider for &lt;code&gt;Alert volume&lt;/code&gt; slider. It had been at about 20%, it's now set at about 95%. However, I can once again hear skype notifications – at pretty much the same volume as before. So I don't know what's changed between &lt;code&gt;gnome-volume-control&lt;/code&gt; and Skype: there may have been an update to the volume control that I didn't notice go by, or maybe this version of Skype is more sensitive to that setting. Still, at least that's one more annoyance is off the list.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=3TA9dfsG8RM:d6Sbxpeh3mE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=3TA9dfsG8RM:d6Sbxpeh3mE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?i=3TA9dfsG8RM:d6Sbxpeh3mE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactiveAutonomous/~4/3TA9dfsG8RM" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-30T19:29:44.728+01:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">14</thr:total><feedburner:origLink>http://nuin.blogspot.com/2010/05/skype-and-ubuntu-lost-notification.html</feedburner:origLink></item><item rdf:about="tag:blogger.com,1999:blog-8627566.post-6058812297333291113"><title>A bit of gentle advice for student projects</title><link>http://feedproxy.google.com/~r/ReactiveAutonomous/~3/xjY7ZAsruQk/bit-of-gentle-advice-for-student.html</link><dc:subject>design</dc:subject><dc:subject>UX</dc:subject><dc:subject>Jena</dc:subject><dc:subject>user-interface</dc:subject><dc:creator>noreply@blogger.com (Ian)</dc:creator><dc:date>2010-05-28T04:36:59-07:00</dc:date><description>&lt;p&gt;Because my email address is attached to some the &lt;a href="http://openjena.org"&gt;Jena&lt;/a&gt; source code, I quite often get direct email from students seeking help with projects. In general I don't mind this, though I'm sufficiently busy with actual work that I can't offer much direct support. My usual feedback is that most people need to get much clearer what they are actually to do. Often they come with very vague ideas:&lt;/p&gt;
&lt;blockquote&gt;
I have to complete my project on ontology. Can you please help me to create a Jena interface?
&lt;/blockquote&gt;

&lt;p&gt;Which gives pretty much nothing to go on. As a UI designer, you need &lt;em&gt;some&lt;/em&gt; idea of who you are designing for, and what they care about. Here's my standard advice, which I've given out sufficiently often that it's worth repeating it in public so that I can just refer to it in future!&lt;/p&gt;

&lt;p&gt;
My core advice would be to get much clearer what you mean by &amp;quot;Jena
interface&amp;quot; &amp;ndash; (or however you've termed your project) without more context, I don't understand what that means, and I suspect you don't really understand it either. 
&lt;/p&gt;&lt;p&gt;
So my suggestion is:
consider a person using your interface when it's completed. Ask
yourself some basic questions about them: are they beginners or
experts? Are they a programmer, end-user, ontology designer, or what?
What are the most important tasks do they need to do in order to
succeed in their role? For example, an ontology designer might want to load an
ontology file that someone else has created and add their own
annotations to it, to fit their customers data needs. Or, a programmer might want to search for an ontology
that would help them represent concepts about wildlife for a media
catalogue program, so that users of the catalogue can tag consistently. By making this description as detailed as possible, you get a
much clearer
understanding of your users' needs. 
&lt;/p&gt;&lt;p&gt;
Then ask yourself what are the
three most important features of your interface that would make those
users' jobs easier. Imagine them sending a twitter message: &amp;quot;Hey,
this interface is really cool, it allows me to do X really well!&amp;quot;
And that gives you the starting point for your
design process.&lt;/p&gt;&lt;p&gt;
By the way it doesn't matter if you are only doing this as a student
project, not as a real product. Either find a group of real users
to work with, or 
make up some users and jobs for them
to do. That way, you'll end up with a more interesting interface, and
it will make it &lt;em&gt;much&lt;/em&gt; easier for you to write your end-of-project
report!
&lt;/p&gt;&lt;p&gt;
And by the way, specific questions about Jena should be asked on the &lt;a href="http://tech.groups.yahoo.com/group/jena-dev"&gt;Jena support email list&lt;/a&gt;.
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=xjY7ZAsruQk:oiej6yZ0HxE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=xjY7ZAsruQk:oiej6yZ0HxE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?i=xjY7ZAsruQk:oiej6yZ0HxE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactiveAutonomous/~4/xjY7ZAsruQk" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-28T12:36:59.428+01:00</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nuin.blogspot.com/2010/05/bit-of-gentle-advice-for-student.html</feedburner:origLink></item><item rdf:about="tag:blogger.com,1999:blog-8627566.post-4482459621448501551"><title>Google gdata library and maven</title><link>http://feedproxy.google.com/~r/ReactiveAutonomous/~3/HgdJs9oPITM/google-gdata-library-and-maven.html</link><dc:creator>noreply@blogger.com (Ian)</dc:creator><dc:date>2010-02-22T05:08:26-08:00</dc:date><description>&lt;p&gt;Despite a number of requests from a variety of users, there are as-yet no official maven versions of 
Google's &lt;a href="http://code.google.com/p/gdata-java-client/"&gt;gdata client Java library&lt;/a&gt;. There are various scripts to push the &lt;code&gt;.jar&lt;/code&gt; files into a local repo, and &lt;a href="http://code.google.com/p/google-apis-mavenized/"&gt;one project on Google code&lt;/a&gt; containing an older version of the client library, mavenized.
I think it's up to the code maintainers (Google) to put a process in place for pushing official maven versions
of the gdata &lt;code&gt;.jars&lt;/code&gt; out to the public repos. In the meantime, the best we can hope for is to load 
into local repos. However, a problem with the scripts I've seen is that they bake-in the various versions of the libraries to the script. So here's my variant, which takes the artifact name and version from the &lt;code&gt;.jar&lt;/code&gt; filename:
&lt;/p&gt;
&lt;code&gt;&lt;pre&gt;#!/bin/bash

for f in java/lib/*.jar
do
  if [[ $f =~ java/lib/gdata-([a-z-]*)-(.*)\.jar ]]; then
      n=${BASH_REMATCH[1]}
      v=${BASH_REMATCH[2]}

      echo "installing mvn artifact $n $v"
      mvn install:install-file -DgroupId=com.google.gdata \
          -DartifactId=$n -Dversion=$v -Dfile=$f -Dpackaging=jar \
          -DgeneratePom=true
  fi
done&lt;/pre&gt;&lt;/code&gt;
&lt;p&gt;Tested on my Linux system at home, but I'm expecting this to also run on Windows/cygwin when I get into the office tomorrow!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; Thanks to &lt;a href="http://twitter.com/ildella"&gt;ildella&lt;/a&gt; on Twitter for pointing out that there's a maintained, up-to-date collection of &lt;a href="http://code.google.com/p/mandubian-mvn/"&gt;maven-ized gdata artifacts&lt;/a&gt; on googlecode.&lt;/p&gt;
&lt;p&gt;del.icio.us: &lt;a href="http://del.icio.us/tag/maven"&gt;maven&lt;/a&gt;, &lt;a href="http://del.icio.us/tag/gdata"&gt;gdata&lt;/a&gt;,&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=HgdJs9oPITM:cdwECRTTpW0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=HgdJs9oPITM:cdwECRTTpW0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?i=HgdJs9oPITM:cdwECRTTpW0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactiveAutonomous/~4/HgdJs9oPITM" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-22T13:08:26.536Z</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://nuin.blogspot.com/2010/02/google-gdata-library-and-maven.html</feedburner:origLink></item><item rdf:about="tag:blogger.com,1999:blog-8627566.post-2289839734870907405"><title>British English Thesaurus for OpenOffice 3.x</title><link>http://feedproxy.google.com/~r/ReactiveAutonomous/~3/fm-tSBKWAQk/british-english-thesaurus-for.html</link><dc:creator>noreply@blogger.com (Ian)</dc:creator><dc:date>2010-01-09T08:01:16-08:00</dc:date><description>&lt;p&gt;OpenOffice 3.x on Ubuntu doesn't come with a thesaurus for British English (en-gb), which is irritating. Google shows lots of recipes for faking a British thesaurus using the installed thesaurus for US English, which is at best an approximation, but in any case they don't work on OO3. A much better solution is to download the
&lt;a href="http://www.weeklywhinge.com/?p=69"&gt;British English Thesaurus OpenOffice extension&lt;/a&gt; from &lt;a href="http://www.blogger.com/blog-this.g?loginRedirect=mpeqfxrucsfl&amp;amp;pli=1"&gt;the weekly whinge&lt;/a&gt; and install it (from any OO application: &lt;code&gt;Tools » Extension manager... » Add ...&lt;/code&gt;). Kudos!&lt;/p&gt;
&lt;p&gt;del.icio.us: &lt;a href="http://del.icio.us/tag/openoffice"&gt;openoffice&lt;/a&gt;,
&lt;a href="http://del.icio.us/tag/thesaurus"&gt;thesaurus&lt;/a&gt;,
&lt;a href="http://del.icio.us/tag/solved"&gt;solved&lt;/a&gt;.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=fm-tSBKWAQk:v3DvBHbbeWg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=fm-tSBKWAQk:v3DvBHbbeWg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?i=fm-tSBKWAQk:v3DvBHbbeWg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactiveAutonomous/~4/fm-tSBKWAQk" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-09T16:01:16.813Z</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nuin.blogspot.com/2010/01/british-english-thesaurus-for.html</feedburner:origLink></item><item rdf:about="tag:blogger.com,1999:blog-8627566.post-7262409574571855920"><title>Great article: learning from hostage negotiators</title><link>http://feedproxy.google.com/~r/ReactiveAutonomous/~3/VprIC0r8QBQ/great-article-learning-from-hostage.html</link><dc:creator>noreply@blogger.com (Ian)</dc:creator><dc:date>2009-11-28T00:37:19-08:00</dc:date><description>&lt;p&gt;Really interesting article on &lt;a href="http://www.boxesandarrows.com/"&gt;Boxes and arrows&lt;/a&gt;:
&lt;a href="http://www.boxesandarrows.com/view/what-design?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+BoxesAndArrows_Stories+%28Boxes+and+Arrows%29&amp;amp;utm_content=Bloglines"&gt;what design researchers can learn from hostage negotiators&lt;/a&gt;. I've used something akin to the &lt;em&gt;coach&lt;/em&gt; role in user-studies that I have conducted in the past, though in our case the coach also had the role of note-taker, freeing the lead interviewer to be able to listen carefully to the interviewee without being distracted by getting the key points down on paper. Nonetheless, an essential part of the note-taker's role was to notice if the interviewer had missed some interesting avenue to follow, and prompt (but not take over the dialogue).&lt;/p&gt;
&lt;p&gt;del.icio.us: &lt;a href="http://del.icio.us/tag/user-studies"&gt;user-studies&lt;/a&gt;,
&lt;a href="http://del.icio.us/tag/best-practice"&gt;best-practice&lt;/a&gt;.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=VprIC0r8QBQ:MlfBt0u1rf8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=VprIC0r8QBQ:MlfBt0u1rf8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?i=VprIC0r8QBQ:MlfBt0u1rf8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactiveAutonomous/~4/VprIC0r8QBQ" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-28T08:37:19.723Z</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nuin.blogspot.com/2009/11/great-article-learning-from-hostage.html</feedburner:origLink></item><item rdf:about="tag:blogger.com,1999:blog-8627566.post-6649804871089272341"><title>Moving along</title><link>http://feedproxy.google.com/~r/ReactiveAutonomous/~3/2jMw74uR9PM/moving-along.html</link><dc:creator>noreply@blogger.com (Ian)</dc:creator><dc:date>2009-11-03T16:57:23-08:00</dc:date><description>&lt;p&gt;Friday October 30th was my last working day at HPLabs after 20+ years with HP, most of that in the research labs. I'm not going to introspect too much on the event itself &amp;ndash; the reasons for the large-scale changes in staffing are for HPL management not me to discuss. Suffice to say that &lt;a href="http://jena.sf.net"&gt;Jena&lt;/a&gt; will &lt;a href="http://jena-announce.blogspot.com/2009/10/openjena.html"&gt;continue&lt;/a&gt;, and indeed become more &lt;a href="http://openjena.org"&gt;open&lt;/a&gt;, and the current Jena team members will continue to contribute to the platform, albeit from different host organizations. For me personally, alongside a number of ex-HP colleagues I'll be moving to a new Linked Open Data startup named Epimorphics. More details on what that involves in due course! However, after a long time in corporate R&amp;amp;D for a very large organization, I'm very much looking forward to working for a company that is smaller (but with big ambitions) and more agile.&lt;/p&gt;
&lt;p&gt;In the meantime, it does mean that I can no longer be reached on my old email address: &lt;code&gt;ian.dickinson@hp.com&lt;/code&gt;. For people who used to use that address, please update your contacts list to point to &lt;code&gt;i.j.dickinson@gmail.com&lt;/code&gt;.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=2jMw74uR9PM:VchKV834aWA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=2jMw74uR9PM:VchKV834aWA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?i=2jMw74uR9PM:VchKV834aWA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactiveAutonomous/~4/2jMw74uR9PM" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-04T00:57:23.543Z</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://nuin.blogspot.com/2009/11/moving-along.html</feedburner:origLink></item><item rdf:about="tag:blogger.com,1999:blog-8627566.post-4050460185989065703"><title>ISWC research track - raw notes 4</title><link>http://feedproxy.google.com/~r/ReactiveAutonomous/~3/78Y5sk0AuwI/iswc-research-track-raw-notes-4.html</link><dc:creator>noreply@blogger.com (Ian)</dc:creator><dc:date>2009-10-28T12:21:47-07:00</dc:date><description>&lt;p&gt;Lifting events in RDF from interactions with annotated web pages - Stuhmer et al&lt;/p&gt;
&lt;p&gt;Want to model complex events - multiple mouse clicks. Use case: online advertisement. Contextual advertisement, behavioural advertising. Context, eg Adsense, based on ip etc. Behavioural - based on history of user's web pages, using cookies or web-bugs.&lt;/p&gt;
&lt;p&gt;Drawbacks: context - similarity matching not robust. Behavioural - old history may not be relevant. To remedy: build complex events as short-term profiles, model these in an OWL ontology. Schema seems to encode a basic ontology of event expressions: conjunction, sequence, etc. Simple events: DOM (incl. mouse clicks) and clock.&lt;/p&gt;
&lt;p&gt;Add some context to simple events. More than just the DOM location (that would be just syntax). Annotate pages with RDFa, use those annotations to enrich simple events. If the event happens on one node which is an RDF subject, use that to constrain the choice of subjects. Otherwise, go up the DOM tree to the dominator node, which may be the document root.&lt;/p&gt;
&lt;p&gt;Contributions: the technical implementatio, the event model itself.&lt;/p&gt;
&lt;p&gt;Server side event processing - not done yet. [which makes it hard to see what the value is, since they don't illustrate the interpretation of the events]&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=78Y5sk0AuwI:EbbStrx-8cQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=78Y5sk0AuwI:EbbStrx-8cQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?i=78Y5sk0AuwI:EbbStrx-8cQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactiveAutonomous/~4/78Y5sk0AuwI" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-28T19:21:47.174Z</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nuin.blogspot.com/2009/10/iswc-research-track-raw-notes-4.html</feedburner:origLink></item><item rdf:about="tag:blogger.com,1999:blog-8627566.post-4828867700508271299"><title>ISWC - SPARQL WG panel</title><link>http://feedproxy.google.com/~r/ReactiveAutonomous/~3/kGTD9ZKzbN4/iswc-sparql-wg-panel.html</link><dc:creator>noreply@blogger.com (Ian)</dc:creator><dc:date>2009-10-28T08:58:53-07:00</dc:date><description>&lt;p&gt;WG has just published a first set of six working drafts that indicate what's coming in SPARQL 1.1. Caveat: no decisions yet, just indications. Naming: SPARQL 1.1 query, update and service description. Picked about 10 out of about 50 proposed extensions. Stable by Spring'10, Completed in Aug'10. &lt;/p&gt;
&lt;p&gt;Project expressions - select something in a query that is not just a simple variable. Aggregates - min, max, count, etc. Subqueries - embed one query in another. Negation - sparql 1.0 makes it difficult to ask what is not known, fix this in 1.1. Service description - language for describing common extensions in a given sparql end point. Update language - 1.0 is read-only, member submission of rough draft of update language, will be in 1.1. Update protocol - use of HTTP POST for update. Map basic RDF operations to core HTTP operations (RESTful RDF via sparql). Following are 'time permitting', will be done if there is time ... Property paths - arbitrary length paths through the graph; regex-alike expressions. Basic federated query - based on ARQ's SERVICE keyword. Entailment regimes - what does it mean to query SPARQL in the face of RDFS or OWL, or RIF rulesets. Common functions - commonly used built-ins.&lt;/p&gt;
&lt;p&gt;Slides &lt;a href="http://www.slideshare.net/LeeFeigenbaum/sparql2-status"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Brief intro from WG members. Moved on to Q&amp;amp;A, but I had to leave to check out of the hotel.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=kGTD9ZKzbN4:3YG2lml91q4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=kGTD9ZKzbN4:3YG2lml91q4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?i=kGTD9ZKzbN4:3YG2lml91q4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactiveAutonomous/~4/kGTD9ZKzbN4" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-28T15:58:53.789Z</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nuin.blogspot.com/2009/10/iswc-sparql-wg-panel.html</feedburner:origLink></item><item rdf:about="tag:blogger.com,1999:blog-8627566.post-7996916570350603186"><title>ISWC Tom Mitchell keynote - raw notes</title><link>http://feedproxy.google.com/~r/ReactiveAutonomous/~3/HVh-7YEkBsk/iswc-tom-mitchell-keynote-raw-notes.html</link><dc:creator>noreply@blogger.com (Ian)</dc:creator><dc:date>2009-10-28T07:14:08-07:00</dc:date><description>&lt;p&gt;How will we populate the semantic web on a vast scale? - Tom Mitchell keynote&lt;/p&gt;
&lt;p&gt;Three answers: humans will enter structured info; database owners will publish; computers will read unstructured web data.&lt;/p&gt;
&lt;p&gt;Read the Web project. Inputs: initial ontology, handful of training examples, the web (!), occasional access to a human trainer. Goals: (1) system running 24x7, each day extract more facts from the web to populate the initial ontology, (2) each day learn to perform #1 better than the day before.&lt;/p&gt;
&lt;p&gt;Natural language understanding is hard. How to make it more plausible for machines to read? ways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;leverage redundancy on the web (many facts are repeated often, in different forms)&lt;/li&gt;
&lt;li&gt;target reading to populate a given ontology, restrict focus of attention&lt;/li&gt;
&lt;li&gt;Use new semi-supervised learning algorithms&lt;/li&gt;
&lt;li&gt;Seed learning from Freebase, DbPedia, etc...&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;State of project today: ontology of 10^2 classes, 10-20 seed examples of each, 100 million web pages. Running on yahoo m45 cluster. Examples include both relations and categories.&lt;/p&gt;
&lt;p&gt;All code is open-source, available on web site. Currently XML, working on RDF.&lt;/p&gt;
&lt;p&gt;Impressive demo of determining academic fields: 20 input examples, looked like hundreds of learned examples, good quality results. Output includes the learned patterns and alternate interpretations considered. approx 20K entities, approx 40K extracted beliefs&lt;/p&gt;
&lt;p&gt;Semi-supervised learning starts to diverge after a few iterations. Under-constrained. Making the task apparently more complex by learning many classes and relations simultaneously. Adds constraints. Unlabeled examples become constraints. Nested, coupled constraints. &amp;quot;Kryzewski coaches for the Devils&amp;quot;  have to simulatenously classify coach name and team name.&lt;/p&gt;
&lt;p&gt;&amp;quot;Luke is mayor of Pittsburgh&amp;quot; - learn functions for classifying Pittsburgh as a city based on (a) &amp;quot;Pittsburgh&amp;quot; and separately (but coupled) (b) &amp;quot;Luke is mayor of&amp;quot;&lt;/p&gt;
&lt;p&gt;Information from the ontology provides constraints to couple classifiers together: e.g disjointness between concepts. Also provides for consistency of arguments in noun phrases (domain and range constraints).&lt;/p&gt;
&lt;p&gt;Coupled bootstrap learner. Given ontology O and corpus C. Assign positive and negative examples to classifiers (e.g. cities are negative examples of teams). Extract candidate (conservative), filter, train instance and pattern classifiers, assess, promote high confidence candidats, share examples back to coupled classifiers using ontology (including using the subsumption hierarchy)&lt;/p&gt;
&lt;p&gt;Rather than focussing on single sentences in single docs, system looks across many sentences to look for co-occurrence statistics. Macro-read many documents, rather than micro-read single document.&lt;/p&gt;
&lt;p&gt;Example of IBM learned facts. Rejected candidates might be good input to a human doing manual ontology design.&lt;/p&gt;
&lt;p&gt;If some coupling is good, how to get even more? One answer: look at html structure, not just plain text. If some cars are li elements in a list, then likely the other li's are cars as well. PhD student &lt;a href="http://amsterdam.lti.cs.cmu.edu/"&gt;Richard Wang&lt;/a&gt; at CMU - SEAL system. Combine SEAL and CBL. Combined system generally gets good results, though performance is poor in some categories (e.g. sports equipment). To address performance issues, extend ontologies to include nearby but distinct categories. &lt;/p&gt;
&lt;p&gt;System runs for about a week, before needing restart. Some categories saturate fairly quickly.&lt;/p&gt;
&lt;p&gt;Want a system that learns other categories of knowledge. Tries to learn rules by mining the extracted KB. Need positive examples - get from KB. Where to get negative examples? Not stored in KB. Get help from ontology. For restricted cardinality properties (e.g. functional), can infer negative examples.&lt;/p&gt;
&lt;p&gt;Examples of learned rules - conditional horn clauses with weights. Showed some of the failed rules as well, e.g. skewed resuls due to partial availability of data. Good rules can be very useful, but bad rules are very bad - need human inspection to filter out bad rules.&lt;/p&gt;
&lt;p&gt;Future work: add modules to inner loop of extractor, e.g. use morphology of noun phrases. Making independent errors is good! Also: tap in to Freebase and DbPedia to provide many more examples during bootstrap.&lt;/p&gt;
&lt;p&gt;Q: can system correct previous mistakes? A: current system marches forward without making any retractions. Internally, evidence of error builds up. Should be possible to correct previously made assertions.&lt;/p&gt;
&lt;p&gt;Q: how to deal with ambiguity? e.g. Cleveland is a city and a baseball team. A: current system is a KB of noun phrases non entities in the world. Knows that things can't be multiple categories. Leads to inconsistency. Need to change program to have distinct terms for the word and its separate senses.&lt;/p&gt;
&lt;p&gt;Q: what about probabilistic KB? A: currently store probs, but hard part is how to integrate 10^5 probabilistic assertions. How to do prob reasoning at scale? Not known.&lt;/p&gt;
&lt;p&gt;Q: can you learn rules with rare exceptions? A: can have exceptions, but not different types. Could understand the counter-examples to an otherwise good rule. Could generate new knowledge (example of 'continuing education students'). &lt;/p&gt;
&lt;p&gt;Q: how to deal with dynamic changes to the world? A: yes, it's a problem. Second most common cause of errors. Would need to add some temporal reasoning to the KB.&lt;/p&gt;
&lt;p&gt;Q: what can we do from semweb to encourage ML researchers to contribute? A: it will happen, &lt;strong&gt;if&lt;/strong&gt; you [sw community] can build big databases. Very excited about DbPedia. Suggest pushing on natural language processing conferences. They are not aware of these [semweb] kinds of resources. Btw, there are other linguistic resources you can draw on as well as wordnet, e.g verbnet, propnet (?).&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=HVh-7YEkBsk:4pcEqW09ZeY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=HVh-7YEkBsk:4pcEqW09ZeY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?i=HVh-7YEkBsk:4pcEqW09ZeY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactiveAutonomous/~4/HVh-7YEkBsk" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-28T14:14:08.795Z</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nuin.blogspot.com/2009/10/iswc-tom-mitchell-keynote-raw-notes.html</feedburner:origLink></item><item rdf:about="tag:blogger.com,1999:blog-8627566.post-2798759270005595821"><title>Open architectures for open government - raw notes</title><link>http://feedproxy.google.com/~r/ReactiveAutonomous/~3/NfMLvb96nOA/open-architectures-for-open-government.html</link><dc:creator>noreply@blogger.com (Ian)</dc:creator><dc:date>2009-10-27T13:45:21-07:00</dc:date><description>&lt;p&gt;Cory Casanave&lt;/p&gt;
&lt;p&gt;Many different architectures and solutions from many vendors. Want to link them together in open architectures. Integrate data as part of the LOD cloud. Flexible, standards based, flexible, info managed at source, .... Not perfect, but what other technology choice is there?&lt;/p&gt;
&lt;p&gt;Architectures as data. Pictorial form: powerpoint, visio, sometimes UML. Architectures should be seen as data we can manipulate and share. Where the data is an how to use it. Example: process for decommisioning a nuclear reactor [is that an architecture?]. Current architecture assets are trapped in stovepipes.&lt;/p&gt;
&lt;p&gt;Goal: linked open architectures. Want business and technology view of data. Need different viewpoints for different stakeholders, but over the same data.&lt;/p&gt;
&lt;p&gt;Motivations include: federated data, collaboration, cost reduction, planning &amp; governance, agile, drive IT solutions.&lt;/p&gt;
&lt;p&gt;How? Publish architecture models as LoD, in their current vocabularies. [how to publish a visio diagram?] Roadmap for enhancing value: adapt and develop well-defined &amp;quot;semantic hub&amp;quot; models, map new architectures to these hubs, define stakeholder viewpoints, tools and techniques, external comment &amp;amp; input. Working groups at OMG and W3C.&lt;/p&gt;
&lt;p&gt;Want standards based. e.g XMI, UML, BPMN, SoaML. Can publish these today. Exmample: data model with addresses, contact details, etc. Can convert XMI form into RDF [though the example given didn't look like valid RDF to me], and publish automatically by checking into a special SVN repo.&lt;/p&gt;
&lt;p&gt;Demo at &lt;a href="portal.modeldriven.org/project/EKB"&gt;portal.modeldriven.org/project/EKB&lt;/a&gt;. Resources: GAIN initiative (open government, open linked data and architecture &lt;a href="portal.modeldriven.org/project/GAIN"&gt;portal.modeldriven.org/project/GAIN&lt;/a&gt;.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=NfMLvb96nOA:hCIQ4Zz8Y1Y:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=NfMLvb96nOA:hCIQ4Zz8Y1Y:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?i=NfMLvb96nOA:hCIQ4Zz8Y1Y:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactiveAutonomous/~4/NfMLvb96nOA" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-27T20:45:21.864Z</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nuin.blogspot.com/2009/10/open-architectures-for-open-government.html</feedburner:origLink></item><item rdf:about="tag:blogger.com,1999:blog-8627566.post-6370371869392292793"><title>ISWC research track - raw notes 3</title><link>http://feedproxy.google.com/~r/ReactiveAutonomous/~3/7s-hHxRGeqg/iswc-research-track-raw-notes-3.html</link><dc:creator>noreply@blogger.com (Ian)</dc:creator><dc:date>2009-10-27T12:25:10-07:00</dc:date><description>&lt;p&gt;OntoCase: Automatic ontology enrichment based on ontology design patterns - Blomqvist&lt;/p&gt;
&lt;p&gt;Ontology design patterns: &lt;a href="http://www.ontologydesignpatterns.org"&gt;www.ontologydesignpatterns.org&lt;/a&gt;. This talk focus on content pattens: small ontologies with a speficic design rationale&lt;/p&gt;
&lt;p&gt;Semantic web: want more lightweight ontologies from non-logicians, e.g. web developers. Start with domain specification (e.g. texts) and task specs (e.g. competency questions). Ontology learning is possible, but accuracy is low and relational information is especially hard. Problems with background information. &lt;/p&gt;
&lt;p&gt;OntoCase aims to add some explicit background knowledge and enrichment, built on top of exsiting ontology learning tools. Adds ontology design patterns. Input: learned OWL ontology and set of patterns. Output: ontology enriched by patterns. By: matching, cloning and integrating patterns. Two modes: true enrichment and pruning mode. In pruning, only include the parts of the input that match a pattern. &lt;/p&gt;
&lt;p&gt;Example: input concepts person, hero (subclass of hero), stage. Match to agent pattern.&lt;/p&gt;
&lt;p&gt;Evaluation ... missed some details ... can add background knowledge, and increase in accuracy of added relationships.&lt;/p&gt;
&lt;p&gt;Future work: general improvements, does not use task inputs at the moment.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=7s-hHxRGeqg:SwxALoryXQU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=7s-hHxRGeqg:SwxALoryXQU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?i=7s-hHxRGeqg:SwxALoryXQU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactiveAutonomous/~4/7s-hHxRGeqg" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-27T19:25:10.952Z</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nuin.blogspot.com/2009/10/iswc-research-track-raw-notes-3.html</feedburner:origLink></item><item rdf:about="tag:blogger.com,1999:blog-8627566.post-8382937878674725582"><title>ISWC research track - raw notes 2</title><link>http://feedproxy.google.com/~r/ReactiveAutonomous/~3/38YOyQCis88/iswc-research-track-raw-notes-2.html</link><dc:creator>noreply@blogger.com (Ian)</dc:creator><dc:date>2009-10-27T12:00:02-07:00</dc:date><description>&lt;p&gt;Graph based ontology construction from heterogenous sources - Boehm et al&lt;/p&gt;
&lt;p&gt;Gene ontology: 28K concepts, 42K relations, takes human experts years to make a new release. Would like automatic ontology bootstrapping. Four steps: concept definition, concept discovery, relationship extraction, ontology extraction  &lt;/p&gt;
&lt;p&gt;Contribution: combination of heterogenous information sources. Given a set of concepts and a large text corpus, create directed weighted concept graph, find a sub-graph that is consistent (cycle free), valid and balanced.&lt;/p&gt;
&lt;p&gt;List of desirable topological properties, tree form, balance, etc.&lt;/p&gt;
&lt;p&gt;Solution 1: greedy edge inclusion. copy nodes first, then copy edges one at a time discarding any that add a cycle.&lt;/p&gt;
&lt;p&gt;solution 2: find set of nodes that are strongly likely to be a super-concept of other concepts. recursively add children, using a fan-out limit.&lt;/p&gt;
&lt;p&gt;Evaluation. Text corpuse PhenomicDB. Compare to Mammalian Phenoeype. Weighted dominating set approach had highest precision.&lt;/p&gt;
&lt;p&gt;[Author did not report on the human-acceptability of the auto-generated ontologies.]&lt;/p&gt;
&lt;p&gt;Q: what's the basis of the desirability of the topological properties? A: introspection from own inspection. Comment from audience: tangled hierarchies can be shown to be better for browsing.&lt;/p&gt;
&lt;p&gt;[other questions, rather hard to hear since there was no microphone]&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=38YOyQCis88:TLqKHtKzBAo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=38YOyQCis88:TLqKHtKzBAo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?i=38YOyQCis88:TLqKHtKzBAo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactiveAutonomous/~4/38YOyQCis88" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-27T19:00:02.862Z</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nuin.blogspot.com/2009/10/iswc-research-track-raw-notes-2.html</feedburner:origLink></item><item rdf:about="tag:blogger.com,1999:blog-8627566.post-6965987701169061979"><title>ISWC research track - raw notes 1</title><link>http://feedproxy.google.com/~r/ReactiveAutonomous/~3/x8ApHTxO6Js/iswc-research-track-raw-notes-1.html</link><dc:creator>noreply@blogger.com (Ian)</dc:creator><dc:date>2009-10-27T11:30:32-07:00</dc:date><description>&lt;p&gt;Detecting high-level changes in RDF/S&lt;/p&gt;
&lt;p&gt;Want to detect significant changes. Low-level language: report adds and removes of triples. Hight Level languages define classes of event: change_superclass, pull_up_class, etc. High level changes are closer to the intent of the change maker. High level changes are more concise.&lt;/p&gt;
&lt;p&gt;Challenges: granularity (not too high or low), must be able to support a deterministic algorithm to assign triples to high-level changes.&lt;/p&gt;
&lt;p&gt;Language defines triples added/removed, and semantic conditions on the triple set either before or after. For determinism, language must be complete and unambiguous in the consumption of changes. &lt;/p&gt;
&lt;p&gt;Heuristic changes are those that require matchers, e.g. rename class.&lt;/p&gt;
&lt;p&gt;[I have a nagging doubt that their algorithm won't work on a model that includes inference, not just raw triples. don't have a counterexample yet, though]
&lt;p&gt;Algorithm is in theory quadratic, in practice the results are better than that.&lt;/p&gt;
&lt;p&gt;Q: applies to OWL as well? A: no, only RDFS&lt;/p&gt;
&lt;p&gt;Q: how do you know whether these are the right set of high-level applications? tested by introspection with human experts.&lt;/p&gt;
&lt;p&gt;Q: related to refactoring languages in SW eng? A: probably, haven't looked at that.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=x8ApHTxO6Js:3MiYUrj45rM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=x8ApHTxO6Js:3MiYUrj45rM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?i=x8ApHTxO6Js:3MiYUrj45rM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactiveAutonomous/~4/x8ApHTxO6Js" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-27T18:30:32.913Z</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nuin.blogspot.com/2009/10/iswc-research-track-raw-notes-1.html</feedburner:origLink></item><item rdf:about="tag:blogger.com,1999:blog-8627566.post-8928776992759043321"><title>ISWC In Use Track - raw notes 4</title><link>http://feedproxy.google.com/~r/ReactiveAutonomous/~3/cfk4SB1UPVc/iswc-in-use-track-raw-notes-4.html</link><dc:creator>noreply@blogger.com (Ian)</dc:creator><dc:date>2009-10-27T09:21:02-07:00</dc:date><description>&lt;p&gt;Rapid: enabling scalable ad-hoc analytics on the semantic web - Sridhar et al&lt;/p&gt;
&lt;p&gt;Motivation: rapid growth in RDF data. Progress on storage, but not analytics.&lt;/p&gt;
&lt;p&gt;analytical queries include multiple groupings and aggregations. E.g for each month of the year, the average sales vs the sales in the preceding month. Hard to do in databases, even hard in RDF because: absence of schema, combine data and metadata.&lt;/p&gt;
&lt;p&gt;goal: using map-reduce to do RDF analytics. High-level dataflow languages e.g. pig, latin, etc, but these languages expect structured not semi-structured &lt;/p&gt;
&lt;p&gt;RAPID uses pig as a basis. Extend pig latin with RDF primitives. showed raw pig latin program - about 10 steps. Q: how to automate/abstract this, to avoid chance of user errors? [missed a bit here]&lt;/p&gt;
&lt;p&gt;expression types: class expression, path expression. Three key functions: generate fact dataset, generate base dataset, multi-dimensional join. GFD re-assembles n-ary relationsships from triples. GBD - container tuples for each group for which aggregation is required. MDJ find match between base and fact tuples, and update base dataset. &lt;p&gt;
&lt;p&gt;Reasonable results compared to non-optimised MapReduce applications. Comment from the audience: very slow (five orders of magnitude) compared to traditional data-warehousing. &lt;/p&gt;
&lt;p&gt;[Saw comments on IRC via Twitter that this is just like early 90's BI applications. The example wasn't well chosen from that pov, but I think this is quite interesting. Doing analytics on large scale datasets is going to be a huge problem in my opinion]&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=cfk4SB1UPVc:AYserKDOhUQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=cfk4SB1UPVc:AYserKDOhUQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?i=cfk4SB1UPVc:AYserKDOhUQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactiveAutonomous/~4/cfk4SB1UPVc" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-27T16:21:02.406Z</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nuin.blogspot.com/2009/10/iswc-in-use-track-raw-notes-4.html</feedburner:origLink></item><item rdf:about="tag:blogger.com,1999:blog-8627566.post-38254491096783149"><title>ISWC In Use Track - raw notes 3</title><link>http://feedproxy.google.com/~r/ReactiveAutonomous/~3/O2B4ZqSSLsQ/iswc-in-use-track-raw-notes-3.html</link><dc:creator>noreply@blogger.com (Ian)</dc:creator><dc:date>2009-10-27T08:58:01-07:00</dc:date><description>&lt;p&gt;Tudor Groza et al - Bridging the gap between linked open data and the semantic desktop.&lt;/p&gt;
&lt;p&gt;web - problem finding and linking relevant work. desktop - publication silo, problem finding and linking relevant files.&lt;/p&gt;
&lt;p&gt;Linked open data on the web - linking. Semantic desktop - linking. Can we connect them?&lt;/p&gt;
&lt;p&gt;Incremental enrichment process. Extract shallow metadata, expand using linked data, integrate into semantic desktop.&lt;/p&gt;
&lt;p&gt;Extraction of metadata: shallow or deep. [Author going extremely quickly though his material, very hard to take notes ... have to read the paper]&lt;/p&gt;
&lt;p&gt;Good results from small-scale user study.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=O2B4ZqSSLsQ:Y8hyre674ac:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=O2B4ZqSSLsQ:Y8hyre674ac:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?i=O2B4ZqSSLsQ:Y8hyre674ac:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactiveAutonomous/~4/O2B4ZqSSLsQ" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-27T15:58:01.176Z</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nuin.blogspot.com/2009/10/iswc-in-use-track-raw-notes-3.html</feedburner:origLink></item><item rdf:about="tag:blogger.com,1999:blog-8627566.post-6563022167985102607"><title>ISWC In Use Track - raw notes 2</title><link>http://feedproxy.google.com/~r/ReactiveAutonomous/~3/B2Hs3blPfq4/iswc-in-use-track-raw-notes-2.html</link><dc:creator>noreply@blogger.com (Ian)</dc:creator><dc:date>2009-10-27T08:39:33-07:00</dc:date><description>&lt;p&gt;Kalyanpur et al - extracting enterprise vocabularies&lt;/p&gt;
&lt;p&gt;IBM and Gartner. Enterprises need semantic vocabularies. Can they be generated bottom-up from source documents? Tried using NLP tools and off-the-shelf named entity recognizers, but poor recall (50% of possible terms identified by domain expert). &lt;/p&gt;
&lt;p&gt;Summary of solution: algorithm to discover domain-specific terms and types; techniques to improve quality and coverage of LOD; statistical domain-specific NER's using LOD.&lt;p&gt;
&lt;p&gt;discovering domain-specific terms. use part-of-speech tagger to identify all nouns as possible terms, then filter using tfidf , then infer types using LOD, then use types to further filter the terms. Result in 896 terms, estimated probable terms would be 3000 in full dataset. &lt;/p&gt;
&lt;p&gt;Improving recall: improved type mappings between dbpedia and freebase using conditional probs. New mappings included in dbpedia downlaod since Aug'09. Improved LOD: add instance types. Get entity disambiguation for free using term URI's.  Generate candidate patterns using super-types from ontology, let machine learning system score each candidate.&lt;p&gt;
&lt;p&gt;Final result: start with precision - recall of 80-23, raised it to 78-46 with all improvements. Conclusion: lots of benefits of using LOD as input for vocabulary extraction.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=B2Hs3blPfq4:lyRbWeL5Clc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=B2Hs3blPfq4:lyRbWeL5Clc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?i=B2Hs3blPfq4:lyRbWeL5Clc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactiveAutonomous/~4/B2Hs3blPfq4" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-27T15:39:33.643Z</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nuin.blogspot.com/2009/10/iswc-in-use-track-raw-notes-2.html</feedburner:origLink></item><item rdf:about="tag:blogger.com,1999:blog-8627566.post-7556737544345748629"><title>ISWC In Use Track - raw notes 1</title><link>http://feedproxy.google.com/~r/ReactiveAutonomous/~3/wQ7DmfutPZk/iswc-in-use-track-raw-notes-1.html</link><dc:creator>noreply@blogger.com (Ian)</dc:creator><dc:date>2009-10-27T08:00:51-07:00</dc:date><description>&lt;p&gt;Auer &amp;amp; Lehmann - Spatially Linked Geodata&lt;/p&gt;
&lt;p&gt;Many real-world tasks use spatial data. Current LOD datasets only have large-scale geographic structures, not bakeries, recycling bins, etc. How to get geo data for small scale objects? OpenStreetMap.com - provides a crystallization point for spatial web data integration. stats on current size of database, growth rates 7-11% montly in various categories. collaborative process, data stored in RDB but available as periodic dumps or incremental update feeds. Can add arbitrary key-value pairs to any element, can be used to add semweb annotations. &lt;/p&gt;
&lt;p&gt;Authors' project converts OSM models and properties to RDF/OWL. Result: 500 classes, 50 object properties, 15K data properties (which seems like a lot)&lt;/p&gt;
&lt;p&gt;Use triplify to generate RDF from relational data. Dump at &lt;a href="http://linkedgeodata.org/Datasets"&gt;linkedgeodata.org/Datasets&lt;/a&gt;, sparql endpoint hosted by OpenLink. Other REST interfaces: points within a circular radius of a given point (cool!), points within a radius belonging to a class, points in a radius with a given property value. &lt;/p&gt;
&lt;p&gt;Want to link to other LOD datasets, e.g DbPedia. Some owl:sameAs links in schema are obvious. Also use DL-learner to match categories. For instance data, three matching criteria: name, location, type. Some problems matching locations, since no consensus on where to place location markers for large entities like cities. For large countries, e.g. Russia, centroids can be 1000km apart between OSM and Wikipeida. needed some string matching metrics to get name matches, but set threshold fairly high. Generated 50K matches to DbPedia objects, mostly cities.&lt;/p&gt;
&lt;p&gt;Demo - very nice. Facet browsing can be used to narrow selections. Much effort to index data for efficient facet lookup. Quadtile indexing - 2 bits per quad, recurse. 18 zoom levels, producing discrete hypercube. &lt;/p&gt;
&lt;p&gt;Future work: link to other datasets. Refine LGD schema. Refine browser. Apply best practices from other Geo projects.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=wQ7DmfutPZk:vkoYjK1QJqQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=wQ7DmfutPZk:vkoYjK1QJqQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?i=wQ7DmfutPZk:vkoYjK1QJqQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactiveAutonomous/~4/wQ7DmfutPZk" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-27T15:00:51.520Z</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nuin.blogspot.com/2009/10/iswc-in-use-track-raw-notes-1.html</feedburner:origLink></item><item rdf:about="tag:blogger.com,1999:blog-8627566.post-8324803341135590605"><title>ISWC keynote: Pat Hayes - raw notes</title><link>http://feedproxy.google.com/~r/ReactiveAutonomous/~3/q1ZIoHzh8L4/iswc-keynote-pat-hayes-raw-notes.html</link><dc:creator>noreply@blogger.com (Ian)</dc:creator><dc:date>2009-10-27T07:07:47-07:00</dc:date><description>&lt;p&gt;Two talks in one. Blogic (web log = blog, so web logic = blogic). RDF Redux - how we could easily revise RDF to make it more expressive, without changing the meaning of existing RDF.&lt;/p&gt;
&lt;p&gt;Principles of blogic. Web portability: logic and entailments can be accessed elsewhere, should commute. RDF is portable, ISO common logic is portable, OWL-DL, classical FOL are not. OWL-2 is better, but not quite there.&lt;/p&gt;
&lt;p&gt;Names. IRI's have structure and meaning, can be owned and controlled, etc. However, in logic names are opaque tokens. Big disconnect, but not sure how to address it. RDF semantic interpretations are mappings from a given vocabulary, but it would be better to state 'from all possible names'&lt;/p&gt;
&lt;p&gt;Horatio principle: truly universal quantification not a good idea. OWL is mostly OK, but complement is problematic.&lt;/p&gt;
&lt;p&gt;SameAs not the same as. We need a way to describe co-reference without equating the conceptualisations. E.g DbPedia and CYC have different conceptualisations for sodium, but are denoted owl:sameAs.&lt;/p&gt;
&lt;p&gt;Death by layering. Layer cake diagram is a good computer architecture layer but a really bad approach for semantics. E.g term URI's from OWL have different meanings depending on whether the triples are seen as basic RDF or as OWL. &lt;/p&gt;
&lt;p&gt;Part 2: RDF redux&lt;/p&gt;
&lt;p&gt;There are many things wrong with RDF that should be done better. [List]. However, there is a more basic problem: blank nodes in RDF are broken. Basic issue is that it is not obvious how to describe a bNode mathematically. Approach was to use set theory, but this was wrong. Using a Platonic idea to describe syntax. Fix would be to view graphs as drawn on some surface, then bNodes are marks on that surface. RDF redefined to be a graph + a surface, doesn't operationally change any existing RDF. No graph can be on more than one surface. Fixes lots of problems: copy vs. merge, named graphs, etc. Provides a syntactic scope for RDF nodes. &lt;p&gt;
&lt;p&gt;Surfaces themselves can have meaning. E.g: positive surfaces assert contents are true, negative surfaces assert contents are false, neutral surface, deprecated surface.&lt;/p&gt;
&lt;p&gt;Would have to allow surfaces to nest, would require changes to RDF syntax. Allowing this, RDF would get full first-order semantics a la CS Pierce. Thus RDFS would not be a layer on RDF, but an abbreviation for assertions that are already expressible in (revised) RDF.&lt;/p&gt;
&lt;p&gt;Question on tractability. Aren't the layers there for tractability? Ans: no, can still use languages with defined characteristics. Anyway layers don't do that either. This proposal is about metatheory, not practice.&lt;/p&gt;
&lt;p&gt;Question: does it support other hard extensions like fuzzy langs, temporality? Ans: Doesn't solve, but gives it a clear point to start.&lt;/p&gt;
&lt;p&gt;Question: (TimBL) isn't this what N3 has with curly bracket contexts? Ans: maybe, but Pierce was first&lt;/p&gt;
&lt;p&gt;Q: so why not just fix RDF? A: would love to, what's the process?&lt;/p&gt;
&lt;p&gt;Q: this borrows from conceptual graphs, but they aren't widely used, why would this succeed? No, just suggesting a refinement of the foundations of RDF. Don't overemphasise Pierce.&lt;/p&gt;
&lt;p&gt;Q: we want family of nearly-same-as relations. What does logic offer? A: good question, wish I knew the ans! Context is important - success of communication depends on choosing the right interpretation of names. Lynne Stein argues this is a much more fundamental problem.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=q1ZIoHzh8L4:NVd1y2FHQS4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=q1ZIoHzh8L4:NVd1y2FHQS4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?i=q1ZIoHzh8L4:NVd1y2FHQS4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactiveAutonomous/~4/q1ZIoHzh8L4" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-27T14:07:47.815Z</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nuin.blogspot.com/2009/10/iswc-keynote-pat-hayes-raw-notes.html</feedburner:origLink></item><item rdf:about="tag:blogger.com,1999:blog-8627566.post-761459380771168682"><title>Semantic Sensor Networks - raw notes 4</title><link>http://feedproxy.google.com/~r/ReactiveAutonomous/~3/Q7aOqM7iJ3I/semantic-sensor-networks-raw-notes-4.html</link><dc:creator>noreply@blogger.com (Ian)</dc:creator><dc:date>2009-10-26T08:17:36-07:00</dc:date><description>&lt;p&gt;Semantic management of streaming data - Rodriguez et al&lt;/p&gt;
&lt;p&gt;Extension to RDF with a triple store and query engine to bridge triple stores and streaming stores. RDF does not have a built-in concept of time or dynamic data. Virtual sensors project views out of streamed radar data. &lt;/p&gt;
&lt;p&gt;Resources, not triples, are timestamped. Add an annotation to the resource URI containing the timestamp. Finding the latest value of a stream requires optional and filter-not-bound in regular SPARQL. In TA-RDF, this reduces to annotation &amp;quot;[LAST]&amp;quot;. Implementation based on Tupelo over Sesame.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=Q7aOqM7iJ3I:g22xc6Y2Y_o:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=Q7aOqM7iJ3I:g22xc6Y2Y_o:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?i=Q7aOqM7iJ3I:g22xc6Y2Y_o:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactiveAutonomous/~4/Q7aOqM7iJ3I" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-26T15:17:36.746Z</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nuin.blogspot.com/2009/10/semantic-sensor-networks-raw-notes-4.html</feedburner:origLink></item><item rdf:about="tag:blogger.com,1999:blog-8627566.post-6321041992498736225"><title>Semantic Sensor Networks - raw notes 3</title><link>http://feedproxy.google.com/~r/ReactiveAutonomous/~3/XRQaPRG3sqg/semantic-sensor-networks-raw-notes-3.html</link><dc:creator>noreply@blogger.com (Ian)</dc:creator><dc:date>2009-10-26T06:25:11-07:00</dc:date><description>&lt;p&gt;Generating Data Wrapping ontologies from sensor networks - Sequeda et al&lt;/p&gt;
&lt;p&gt;goal to learn wrapper ontologies from sensor networks, analogous to data source wrappers. Straight road problem: cars on a toll road have sensors, tolls are set to control flow. Seems to depend on a network of derived queries that are given for this domain. Was able to observe relationships between entities, but reducing the relationships to a recongnisable simple form remains future work.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=XRQaPRG3sqg:ehkS4yJkipM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ReactiveAutonomous?a=XRQaPRG3sqg:ehkS4yJkipM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ReactiveAutonomous?i=XRQaPRG3sqg:ehkS4yJkipM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ReactiveAutonomous/~4/XRQaPRG3sqg" height="1" width="1"/&gt;</description><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-26T13:25:11.165Z</app:edited><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://nuin.blogspot.com/2009/10/semantic-sensor-networks-raw-notes-3.html</feedburner:origLink></item></rdf:RDF>
