<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-3322141</id><updated>2009-07-19T20:13:50.365+10:00</updated><title type='text'>More News</title><subtitle type='html'>Technical news mostly about the Semantic Web.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default?start-index=26&amp;max-results=25'/><author><name>Andrew</name><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>2083</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3322141.post-3253205206724003121</id><published>2009-07-12T23:49:00.004+10:00</published><updated>2009-07-12T23:55:22.533+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='haptic'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>See and Feel the iPhone</title><content type='html'>&lt;a href="http://www.macrumors.com/2009/07/02/haptic-feedback-fingerprint-identification-and-rfid-tag-readers-in-future-iphones/"&gt;A recent patent&lt;/a&gt; &lt;a href="http://morenews.blogspot.com/2009/03/haptic-technology-for-iphone.html"&gt;backs up an idea I had about a haptic interface for the iPhone&lt;/a&gt; (&lt;a href="http://www.macrumors.com/2008/04/26/apple-looking-to-license-haptic-technology/"&gt;it's not a new idea even for the iPhone&lt;/a&gt;):&lt;br /&gt;&lt;blockquote&gt;&lt;div&gt;The proposed solution is the adoption of "haptic" display technologies which allow for some tactile feedback from touch screen displays. Apple proposes including a grid of piezoelectronic actuators that can be activated on command. By fluctuating the frequency of these actuators, the user will "feel" different surfaces as their finger moves across it.&lt;/div&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-3253205206724003121?l=morenews.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/3253205206724003121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3322141&amp;postID=3253205206724003121' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/3253205206724003121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/3253205206724003121'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/07/see-iphone.html' title='See and Feel the iPhone'/><author><name>Andrew</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10309956612325990746'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-860016841118773695</id><published>2009-07-12T23:37:00.006+10:00</published><updated>2009-07-12T23:48:04.195+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jrdf'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='sparql'/><category scheme='http://www.blogger.com/atom/ns#' term='groovy'/><title type='text'>JRDF 0.5.5.5</title><content type='html'>It's been a long while between updates but it's finally here.  There's been some general concessions made to long standing "features" in JRDF namely relational semantics and checked exceptions - both are gone.  Yuan-Fang added merge-join support which improved join performance (by up to 8 times).  There's Groovy support and a nasty memory leak fixed.  It's in the &lt;a href="http://sourceforge.net/projects/jrdf/files/"&gt;usual place&lt;/a&gt;.  The next version won't be so far away with some further SPARQL query improvements including perhaps some of the &lt;a href="http://www.w3.org/TR/2009/WD-sparql-features-20090702/"&gt;newly proposed features&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-860016841118773695?l=morenews.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/860016841118773695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3322141&amp;postID=860016841118773695' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/860016841118773695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/860016841118773695'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/07/jrdf-0555.html' title='JRDF 0.5.5.5'/><author><name>Andrew</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10309956612325990746'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-7950196433538246658</id><published>2009-04-27T22:16:00.002+10:00</published><updated>2009-04-27T22:33:46.138+10:00</updated><title type='text'>Happiness by Empiricism (and no numbers or God)</title><content type='html'>&lt;a href="http://www.abc.net.au/tv/fora/stories/2009/04/24/2552097-p.htm"&gt;Daniel Everett: Endangered Languages and Lost Knowledge&lt;/a&gt;.  There are some quite interesting observations made by Daniel about the Piraha:&lt;br /&gt;&lt;blockquote&gt;&lt;div&gt;...so English has how many verb forms, well it has about 5, sing, sang, sung, singing, sings...Spanish or Portuguese might have 40 different verb forms, well Piraha like many American Indian languages has a very complex verbal system.  So Piraha has 16 different suffix that can go with the end of a verb, that gives 2 to the 16th power possible verb forms and that is a lot.  That is more than 40.  And of those things, 3 suffixes are very important and those tell you how you got your evidence.  So every verb has to have on it the source of the evidence, did you hear about it, did you see it with your own eyes, or did you deduce it from the local evidence.  So if I say did John go fishing?  They can say John went fishing "heai" which means I heard that he did, or they can say John went fishing “sibiga” and that means I deduced that he did, or they can say John went fishing “ha” and that means I saw he went.  In some respects they are the ultimate empiricist...&lt;br /&gt;&lt;br /&gt;They actually demanded evidence for what I believe and I realized, I could not give it as well as they wanted me to give it.  So, this changed my profoundly, but I remember telling them about Jesus one time and they said “So Dan, is Jesus is he brown like us or is he white like you?  “I do not know I haven’t seen him.”  “What did your dad say?  Because your dad must have seen him.”  “No, he never saw him.”  “Oh what did your friends say who saw him?”  “No I do not know anybody who saw him.”  “Why are you telling us about him then?  Why would you talk about something you do not have evidence for?”  But of course we do that all the time.&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;This is coupled with the fact that they don't have the concept of one, instead there are only relative terms like little amount.  They also mention that the &lt;a href="http://rosettaproject.org/"&gt;Rosetta Project&lt;/a&gt; is available on DVD.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-7950196433538246658?l=morenews.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/7950196433538246658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3322141&amp;postID=7950196433538246658' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7950196433538246658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7950196433538246658'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/04/happiness-by-empiricism-and-no-numbers.html' title='Happiness by Empiricism (and no numbers or God)'/><author><name>Andrew</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10309956612325990746'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-1113569973203537857</id><published>2009-04-23T05:28:00.006+10:00</published><updated>2009-04-28T05:45:08.617+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='http'/><category scheme='http://www.blogger.com/atom/ns#' term='linked data'/><category scheme='http://www.blogger.com/atom/ns#' term='linkheader'/><category scheme='http://www.blogger.com/atom/ns#' term='powder'/><title type='text'>Linking Resources without HTML, XHTML, Atom...</title><content type='html'>In HTML you can link to alternative versions of your HTML using the link tag:&lt;br /&gt;&amp;lt;link rel="alternate" type="application/rss+xml" title="RSS Feed"&lt;br /&gt;href="report.rss" /&amp;gt;&lt;br /&gt;&lt;br /&gt;There is a way to do linking just using HTTP through the LINK header (as seen in &lt;a href="http://www.w3.org/TR/powder-dr/#httplink"&gt;POWDER&lt;/a&gt;.  It looks very similar but is more powerful, from the IETF draf document:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Link: &amp;lt;http://example.org/&amp;gt;; rel="index start"; &lt;br /&gt;rel="http://example.net/relation/other" rev=copyright&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Defines 4 links for http://example.org/, three outbound (index, start and http://example.net/relation/other) and one inbound (copyright).&lt;br /&gt;&lt;br /&gt;More information: &lt;a href="http://www.infoq.com/presentations/mnot-http-status-1108"&gt;HTTP Status Report&lt;/a&gt; and &lt;a href="http://esw.w3.org/topic/LinkHeader"&gt;LinkHeader&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-1113569973203537857?l=morenews.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/1113569973203537857/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3322141&amp;postID=1113569973203537857' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/1113569973203537857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/1113569973203537857'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/04/linking-resources-with-html-xhtml-atom.html' title='Linking Resources without HTML, XHTML, Atom...'/><author><name>Andrew</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10309956612325990746'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-7592998216179212067</id><published>2009-04-16T06:40:00.007+10:00</published><updated>2009-04-16T07:22:47.652+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='environment'/><title type='text'>Trams in Brisbane and Per Capita Carbon Emissions</title><content type='html'>&lt;a href="http://www.sbs.com.au/news/article/1015639/Australia-must-lead-on-climate:-China"&gt;China expert raps luxurious Aussie life&lt;/a&gt; &lt;br /&gt;&lt;blockquote&gt;&lt;div&gt;Prof Pan was unimpressed with Australia's environmental standards, saying public transport seemed poor and the buildings and street lighting were not energy efficient.&lt;br /&gt;&lt;br /&gt;He labelled as "insufficient" Australia's pledge to cut greenhouse emissions by five to 15 per cent by 2020.&lt;br /&gt;&lt;br /&gt;The Chinese experts called for a global climate pact that would involve each country being allowed to emit a certain amount, based on their populations.&lt;br /&gt;&lt;br /&gt;This is ominous for Australia because it has very high per capita emissions, whereas China has fairly low per capita emissions.&lt;br /&gt;&lt;br /&gt;Australian climate adviser Ross Garnaut backed the per capita push in a video address to the conference, saying it was fair.&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;This was at the &lt;a href="http://www.anu.edu.au/climatechange/content/events/435/"&gt;Australia-China Climate Change Forum&lt;/a&gt;.  &lt;br /&gt;&lt;br /&gt;Although the biggest mistake is that while there is hope that there is clean coal serious investment in other technologies doesn't exist, as highlighted by the recent &lt;a href="http://www.youtube.com/watch?v=W-_U1Z0vezw"&gt;Clean Coal Air Freshener advert&lt;/a&gt; from &lt;a href="http://www.thisisreality.org/"&gt;This is Reality&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;As for public transport, Brisbane used to have &lt;a href="http://en.wikipedia.org/wiki/Trams_in_Brisbane"&gt;trams&lt;/a&gt; including a line along Milton Road.  There was fire &lt;a href="http://en.wikipedia.org/wiki/Paddington_tram_depot_fire"&gt;in Paddington&lt;/a&gt; where &lt;a href="http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=+107+Latrobe+Tce,+Paddington,+QLD+4064+&amp;sll=-27.461625,153.006822&amp;sspn=0.00035,0.000711&amp;ie=UTF8&amp;t=h&amp;z=16&amp;iwloc=A&amp;layer=c&amp;cbll=-27.458991,152.997516&amp;panoid=hyhp32D7FdNdvaN3TEWXQw&amp;cbp=12,29.117459843607183,,0,-3.9150943396226467"&gt;Paddington Central is now&lt;/a&gt; and the trams were replaced by buses.  The &lt;a href="http://www.parliament.qld.gov.au/view/EPetitions_QLD/ClosedEPetition.aspx?PetNum=1096&amp;lIndex=-1"&gt;tram e-petition got a massive 600 signatures&lt;/a&gt; which puts it well behind things like &lt;a href="http://www.parliament.qld.gov.au/view/EPetitions_QLD/CurrentEPetition.aspx?PetNum=1141&amp;lIndex=-1"&gt;a petition against recycling water&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-7592998216179212067?l=morenews.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/7592998216179212067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3322141&amp;postID=7592998216179212067' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7592998216179212067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7592998216179212067'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/04/trams-in-brisbane-and-per-capita-carbon.html' title='Trams in Brisbane and Per Capita Carbon Emissions'/><author><name>Andrew</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10309956612325990746'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-1990233200753552267</id><published>2009-04-15T05:40:00.016+10:00</published><updated>2009-04-16T07:29:19.110+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='mapreduce'/><category scheme='http://www.blogger.com/atom/ns#' term='database'/><title type='text'>MapReduce vs SQL Databases</title><content type='html'>&lt;a href="http://database.cs.brown.edu/sigmod09/"&gt;A Comparison of Approaches to Large-Scale Data Analysis: MapReduce vs. DBMS Benchmarks&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;div&gt;...we present the results of running the benchmark on a 100-node cluster to execute each task. We tested the publicly available open-source version of MapReduce, Hadoop [1], against two parallel SQL DBMSs, Vertica [3] and a second system from a major relational vendor.&lt;br /&gt;&lt;br /&gt;First, as we demonstrate in Section 4, at 100 nodes the two parallel DBMSs range from a factor of 3.1 to 6.5 faster than MapReduce on a variety of analytic tasks. While MR may indeed be capable of scaling up to 1000s of nodes, the superior efﬁciency of modern DBMSs alleviates the need to use such massive hardware on datasets in the range of 1–2PB (1000 nodes with 2TB of disk/node has a total disk capacity of 2PB). For example, eBay’s Teradata conﬁguration uses just 72 nodes (two quad-core CPUs, 32GB RAM, 104 300GB disks per node) to manage approximately 2.4PB of relational data. As another example, Fox Interactive Media’s warehouse is implemented using a 40-node Greenplum DBMS. Each node is a Sun X4500 machine with two dual-core CPUs, 48 500GB disks, and 16 GB RAM (1PB total disk space) [7]. Since few data sets in the world even approach a petabyte in size, it is not at all clear how many MR users really need 1,000 nodes.&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;In section 3.1 there's some points made about the advantages of databases over MR in relation to data integrity, "...a MR framework and its underlying distributed storage system has no knowledge of these rules, and thus allows input data to be easily corrupted with bad data. By again separating such constraints from the application and enforcing them automatically by the run time system, as is done by all SQL DBMSs, the integrity of the data is enforced without additional work on the programmer’s behalf."  &lt;br /&gt;&lt;br /&gt;They mention that "all DBMSs require that data conform to a well-deﬁned schema, whereas MR permits data to be in any arbitrary format. Other differences also include how each system provides indexing and compression optimizations, programming models, the way in which data is distributed, and query execution strategies."&lt;br /&gt;&lt;br /&gt;If you strip it away they are talking about text processing versus indexed data structures (and other parts of a DBMS).&lt;br /&gt;&lt;br /&gt;For loading, "Without using either block-or record-level compression, Hadoop clearly outperforms both DBMS-X and Vertica since each node is simply copying each datafile from the local disk into the local HDFS instance and then distributing two replicas to other nodes in the cluster."  The obvious difference to me would be that the SQL databases are creating "...a hash partitioned across all nodes on the salient attribute for that particular table, and then sorted and indexed on different attributes..."&lt;br /&gt;&lt;br /&gt;For text processing, they note that the main problems with Hadoop are the start-up costs (10-25 seconds before all Map tasks start) and during the Reduce phase the cost of combining many small files.  When you are comparing a fully indexed system versus text processing then you would expect the indexed system to be faster.  Compression was also considered an advantage in the systems like Vertica's over Hadoop - where it actually reduced performance.  It depends on the work being done whether the overhead of compression is worth the overhead so obviously - it's not explained why compression was a negative for Hadoop.&lt;br /&gt;&lt;br /&gt;They also talk about the problems in setting up and configuring the parallel databases over Hadoop, which is not an insignificant difference when you are scaling to 100s and 1000s of nodes.&lt;br /&gt;&lt;br /&gt;In the summary they talk about 25 years of database development and the advantages of B-Trees and column stores.  It begs the question, then why wasn't a similar system used on the Hadoop infrastructure?  MR is really more like distributed processing not an indexed, querying system.  &lt;br /&gt;&lt;br /&gt;If you took away the distributed layer what they are doing is comparing something like grep (a really bad implementation of grep) with Lucene or MySQL.  Would anyone be surprised with the results then?  A better comparison would've been comparing it against HBase or other distributed, indexed, data stores like Hive or Cloudbase.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update&lt;/b&gt;: There's a good followup on the hadoop list by &lt;a href="http://mail-archives.apache.org/mod_mbox/hadoop-core-user/200904.mbox/%3C4312.98.112.71.211.1239808963.squirrel@webmail.streamy.com%3E"&gt;Jonathan Gray&lt;/a&gt; "Hadoop is not suited for random access, joins, dealing with subsets of&lt;br /&gt;your data; ie. it is not a relational database!  It's designed to&lt;br /&gt;distribute a full scan of a large dataset, placing tasks on the same nodes&lt;br /&gt;as the data its processing.  The emphasis is on task scheduling, fault&lt;br /&gt;tolerance, and very large datasets, low-latency has not been a priority. &lt;br /&gt;There are no "indexes" to speak of, it's completely orthogonal to what it&lt;br /&gt;does, so of course there is an enormous disparity in cases where that&lt;br /&gt;makes sense.  Yes, B-Tree indexes are a wonderful breakthrough in data&lt;br /&gt;technology".  He suggested Pig, Hive and Cascading would be more suitable for comparison.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-1990233200753552267?l=morenews.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/1990233200753552267/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3322141&amp;postID=1990233200753552267' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/1990233200753552267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/1990233200753552267'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/04/mr-vs-sql-databases.html' title='MapReduce vs SQL Databases'/><author><name>Andrew</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10309956612325990746'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-6289754058888964733</id><published>2009-04-13T21:49:00.007+10:00</published><updated>2009-04-15T19:34:33.743+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ontology'/><category scheme='http://www.blogger.com/atom/ns#' term='tdd'/><title type='text'>TDD for Ontologies</title><content type='html'>As it was said to me recently, very often something goes from being mysterious and magical to obvious (I'm looking at you not-so-magical-anymore Grails wiring).  So it goes with test driving ontologies (or at least it did for me).  One of the standard methodologies for ontology development is creating competency questions for an ontology to successfully answer.  This generally means gathering requirements, use cases, organising the data and ontology, testing them and maintenance.  Doesn't that sound an awful lot like waterfall?  It would appear obvious, that just like code, ontologies could be developed using test driven design (neh development) instead.  This should have the same benefits as agile code - like being more adaptable to change.&lt;br /&gt;&lt;br /&gt;The closest paper I've come to that talks about this idea is, "&lt;a href="http://www.aifb.uni-karlsruhe.de/WBS/dvr/publications/ontocontent2006unit.pdf"&gt;Unit tests for ontologies&lt;/a&gt;" (and there's also bachelor thesis, &lt;a href="http://www.deri.at/fileadmin/documents/thesis/Unit_Testing_For_Ontologies.pdf"&gt;Unit Testing for Ontologies&lt;/a&gt;).  Unfortunately, it talks about adding tests during the maintenance of software.  Luckily, it talks about using them as a way to initially build the ontology and surely that would be a way to drive out an ontology.  Good stuff.  I could imagine that certain &lt;a href="http://wiki.loa-cnr.it/images/3/31/ERPaperODP.pdf"&gt;good patterns of ontology design&lt;/a&gt; like making them small, self consistent, fast, intuitive, etc. would all come naturally out of applying TDD techniques.&lt;br /&gt;&lt;br /&gt;As an aside the unit testing paper also mentions the usefulness of autoepistemic operators (K and A).  You can state that for a given instance there must exist a certain property, for example, a country must have a capital city.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-6289754058888964733?l=morenews.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/6289754058888964733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3322141&amp;postID=6289754058888964733' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/6289754058888964733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/6289754058888964733'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/04/tdd-for-ontologies.html' title='TDD for Ontologies'/><author><name>Andrew</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10309956612325990746'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-5665495708481979024</id><published>2009-03-31T21:39:00.004+10:00</published><updated>2009-03-31T21:48:56.354+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software development'/><title type='text'>One Way to Describe What I Did Today</title><content type='html'>I've thought a bit about how best to describe what I did today.  I spent a whole day, knowingly, adding more technical debt rather than two days removing existing debt.  Now writing bad code is not linear and it's hard to judge but from what I can tell there is now twice as much debt as yesterday.  And this is seen as progress.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-5665495708481979024?l=morenews.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/5665495708481979024/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3322141&amp;postID=5665495708481979024' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/5665495708481979024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/5665495708481979024'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/03/one-way-to-describe-what-i-did-today.html' title='One Way to Describe What I Did Today'/><author><name>Andrew</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10309956612325990746'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-4822864468596282403</id><published>2009-03-20T07:38:00.003+10:00</published><updated>2009-03-20T07:47:13.476+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='finance'/><title type='text'>Things Get Dark</title><content type='html'>&lt;a href="http://www.vimeo.com/3261363"&gt;The Crisis of Credit Visualized&lt;/a&gt;.  It was quite good except maybe the explanation of leverage was a bit extreme, with 10,000 turning into 990,000.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-4822864468596282403?l=morenews.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/4822864468596282403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3322141&amp;postID=4822864468596282403' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4822864468596282403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4822864468596282403'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/03/things-get-dark.html' title='Things Get Dark'/><author><name>Andrew</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10309956612325990746'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-8167631794753929288</id><published>2009-03-19T20:59:00.004+10:00</published><updated>2009-07-12T23:53:11.326+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='haptic'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Haptic Technology for the iPhone</title><content type='html'>&lt;a href="http://arstechnica.com/apple/news/2009/03/what-apple-didnt-announce-for-iphone-os-30.ars"&gt;One of the questions that often occurs is how could you improve on the iPhone without changing the form factor too much&lt;/a&gt;.  One of the things that occurred to me was mentioned was a keyboard.  But it would be nice to have a keyboard that worked as well as the current one does (well better) so that it could work in both portrait and landscape mode.  Is that crazy talk?&lt;br /&gt;&lt;br /&gt;Well the idea would be to use &lt;a href="http://en.wikipedia.org/wiki/Electrorheological_fluid"&gt;electroheological fluid&lt;/a&gt; to create a keyboard dynamically.  I came across some &lt;a href="http://people.rit.edu/easi/easisem/fricke.html"&gt;discussion on how to use it for braille&lt;/a&gt; and it should work equally well for creating a QWERTY keyboard - although power usage maybe a problem.  For more technical discussion (and I haven't really read it except for the practical use in virtual reality gloves), &lt;a href="http://services.eng.uts.edu.au/cempe/subjects_JGZ/ems/ems_assignments/Ass_7/ER.pdf"&gt;Haptic Interfaces Using &lt;br /&gt;Electroheological Fluids&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-8167631794753929288?l=morenews.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/8167631794753929288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3322141&amp;postID=8167631794753929288' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/8167631794753929288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/8167631794753929288'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/03/haptic-technology-for-iphone.html' title='Haptic Technology for the iPhone'/><author><name>Andrew</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10309956612325990746'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-7689156390511269820</id><published>2009-03-12T15:34:00.000+10:00</published><updated>2009-03-12T15:35:49.982+10:00</updated><title type='text'>You Should Read This</title><content type='html'>&lt;a href="http://bradclow.blogspot.com/2009/03/tonys-letter-to-medical-board-of.html"&gt;Tony's letter to the Medical Board of Queensland&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-7689156390511269820?l=morenews.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/7689156390511269820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3322141&amp;postID=7689156390511269820' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7689156390511269820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7689156390511269820'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/03/you-should-read-this.html' title='You Should Read This'/><author><name>Andrew</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10309956612325990746'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-4501076720305932898</id><published>2009-03-12T13:46:00.002+10:00</published><updated>2009-03-12T13:49:46.031+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jena'/><category scheme='http://www.blogger.com/atom/ns#' term='rdf'/><title type='text'>Some nice programming with Jenabeans</title><content type='html'>&lt;a href="http://www.thewebsemantic.com/2009/03/10/writing-out-sioc-triples-using-jena-jenabean/"&gt;Writing out SIOC triples using Jena + Jenabean&lt;/a&gt; "Jenabean’s model connected programming model makes this easy, using interfaces that declare each of the vocabularies as a set of methods."  The code example shows how you can piece together (using a &lt;a href="http://www.martinfowler.com/bliki/FluentInterface.html"&gt;fluent interface&lt;/a&gt;) different vocabularies:&lt;br /&gt;&lt;code&gt;Thing thing = new Thing(m);&lt;br /&gt;thing.at(uri1).&lt;br /&gt;as(DCTerms.class).&lt;br /&gt;title("Creating connections between discussion clouds with SIOC").&lt;br /&gt;created("2006-09-07T09:33:30Z").&lt;br /&gt;isa(Sioc.Post.class).&lt;br /&gt;has_container(thing.at(uri2)).&lt;br /&gt;...&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-4501076720305932898?l=morenews.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/4501076720305932898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3322141&amp;postID=4501076720305932898' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4501076720305932898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4501076720305932898'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/03/some-nice-programming-with-jenabeans.html' title='Some nice programming with Jenabeans'/><author><name>Andrew</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10309956612325990746'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-2484738210011203638</id><published>2009-03-12T10:19:00.003+10:00</published><updated>2009-03-13T04:37:27.005+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bioinformatics'/><category scheme='http://www.blogger.com/atom/ns#' term='mapreduce'/><title type='text'>CloudBurst</title><content type='html'>&lt;a href="http://apps.sourceforge.net/mediawiki/cloudburst-bio/index.php?title=CloudBurst"&gt;This is software&lt;/a&gt; that uses MapReduce to handle massive amounts of sequence data and reassemble it.  It includes an &lt;a href="http://apps.sourceforge.net/mediawiki/cloudburst-bio/index.php?title=CloudBurst_for_Computer_Scientists"&gt;explanation of the algorithmic side of things&lt;/a&gt;.  I wonder how it compares with &lt;a href="http://genome.cshlp.org/content/18/5/821.full"&gt;using de Bruijn graphs&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-2484738210011203638?l=morenews.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/2484738210011203638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3322141&amp;postID=2484738210011203638' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/2484738210011203638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/2484738210011203638'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/03/cloudburst.html' title='CloudBurst'/><author><name>Andrew</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10309956612325990746'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-7864568008811788450</id><published>2009-03-11T18:17:00.003+10:00</published><updated>2009-03-11T18:32:45.020+10:00</updated><title type='text'>With the passage of time</title><content type='html'>Who would've thought that &lt;a href="http://en.wikipedia.org/wiki/RoboCop"&gt;RoboCop&lt;/a&gt; was overly optimistic.&lt;br /&gt;&lt;br /&gt;First, it was assumed that &lt;a href="http://detnews.com/apps/pbcs.dll/article?AID=/20090308/OPINION03/903080307"&gt;people would still be living there&lt;/a&gt;.  Second, that they'd still be able &lt;a href="http://www.washingtonpost.com/wp-dyn/content/story/2009/03/09/ST2009030902287.html"&gt;to make things like robots&lt;/a&gt;. And third, that cars in America would get &lt;a href="http://en.wikipedia.org/wiki/RoboCop#Vehicles"&gt;8 mpg&lt;/a&gt; and not &lt;a href="http://videos.streetfire.net/video/top-gear-hummer-h1-h2_181453.htm"&gt;1-3.5 mpg&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-7864568008811788450?l=morenews.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/7864568008811788450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3322141&amp;postID=7864568008811788450' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7864568008811788450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7864568008811788450'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/03/with-passage-of-time.html' title='With the passage of time'/><author><name>Andrew</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10309956612325990746'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-541196772710805597</id><published>2009-03-03T13:39:00.006+10:00</published><updated>2009-03-04T05:12:52.370+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rest'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>URLs for 10 minutes</title><content type='html'>&lt;a href="http://msdn.microsoft.com/en-us/magazine/dd458793.aspx"&gt;Protect Your Site With URL Rewriting&lt;/a&gt; seems a little bit of a mad suggestion.  They are basically suggesting that you change your application's URIs every 10 minutes to prevent XSS and XSRF (Cross Site Request Forging).  &lt;br /&gt;&lt;blockquote&gt;&lt;div&gt;&lt;br /&gt;We could mitigate much of the risk of these vulnerabilities by frequently changing our URLs—not once every 200 years but once every 10 minutes. Attackers would no longer be able to exploit application vulnerabilities by mass e-mailing poisoned hyperlinks because the links would be broken and invalid by the time the messages reached their intended victims. With all due respect to Sir Tim, while "cool" URIs may not change, secure ones certainly do.&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The negatives seem vast and I wonder what this is really trying to solve, as they say at the end:&lt;br /&gt;&lt;blockquote&gt;&lt;div&gt;An automatically expiring URL can still be exploited by an attacker with access to a Web server of his own. Instead of sending out malicious hyperlinks that point directly to the vulnerable page, he can send out hyperlinks that point to his own site. When his site gets a hit from one of the phished e-mails, it can contact a landing page on the vulnerable site to obtain a valid time stamp and then redirect the user accordingly.&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;If you are a REST advocate then maybe a quick read over, &lt;a href="http://www.devarticles.com/c/a/Web-Services/The-ResourceOriented-Architecture-in-Action/"&gt;The Resource-Oriented Architecture in Action&lt;/a&gt;, may soothe you (from the excellent book, RESTful Web Services).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-541196772710805597?l=morenews.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/541196772710805597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3322141&amp;postID=541196772710805597' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/541196772710805597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/541196772710805597'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/03/urls-for-10-minutes.html' title='URLs for 10 minutes'/><author><name>Andrew</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10309956612325990746'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-4620358575556056314</id><published>2009-03-03T10:38:00.007+10:00</published><updated>2009-04-13T20:23:29.608+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ontology'/><category scheme='http://www.blogger.com/atom/ns#' term='life science'/><title type='text'>A Quick Survey of Bio-Ontologies</title><content type='html'>The other day I was trying to find a paper that talks about the need for ontologies in biology that dated sometime around the early 90s - way before OWL and the Semantic Web.  I couldn't find the paper I was thinking about, but here are some others that are pretty good that seem to follow at least the same themes:&lt;br /&gt; &lt;br /&gt;"&lt;a href="http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.43.6520"&gt;Ontologies for molecular biology&lt;/a&gt;": "Molecular biology has a communication problem. There are many databases using their own labels and categories for storing data objects and some using identical labels and categories but with a different meaning."&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;"&lt;a href="http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.55.5636"&gt;Ontological Foundations for Biology Knowledge Models&lt;/a&gt;":  This one was good because it talked about processes and transformations which is where the rules and inferencing stuff comes in.&lt;br /&gt;&lt;br /&gt;"&lt;a href="http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.43.6200"&gt;Toward Principles for the Design of Ontologies Used for Knowledge Sharing&lt;/a&gt;": While not specifically about biology, this is probably the most cited paper and it's what I often think about when you're explaining ontologies and the process of improvement that occurs when you make one.&lt;br /&gt;&lt;br /&gt;"&lt;a href="http://bib.oxfordjournals.org/cgi/reprint/7/3/256"&gt;Bio-ontologies: current trends and future directions&lt;/a&gt;":  This covers the process and the parts that make a good ontology on the web.  I guess the key for the use of the Web for ontologies is a means to share knowledge.  It also has a good history of ontologies going back to the 1600s.&lt;br /&gt;&lt;br /&gt;And this one is one of the original GO papers, "&lt;a href="http://www.geneontology.org/GO_nature_genetics_2000.pdf"&gt;Gene Ontology: tool for the unification of biology&lt;/a&gt;".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-4620358575556056314?l=morenews.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/4620358575556056314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3322141&amp;postID=4620358575556056314' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4620358575556056314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4620358575556056314'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/03/quick-survey-of-bio-ontologies.html' title='A Quick Survey of Bio-Ontologies'/><author><name>Andrew</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10309956612325990746'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-4379402400004903830</id><published>2009-03-03T09:58:00.006+10:00</published><updated>2009-03-04T05:12:12.019+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ted'/><category scheme='http://www.blogger.com/atom/ns#' term='environment'/><title type='text'>Plastic Ocean</title><content type='html'>"&lt;a href="http://www.ted.com/talks/capt_charles_moore_on_the_seas_of_plastic.html"&gt;Sailing the Great Pacific Garbage Patch&lt;/a&gt;" has some interesting points including that there's no such thing as a free range fish (because the oceans are so polluted) and that the island of plastic is more a concentration of plastic - which sounds far worse as far as the environment is concerned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-4379402400004903830?l=morenews.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/4379402400004903830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3322141&amp;postID=4379402400004903830' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4379402400004903830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4379402400004903830'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/03/why-not-biodegradable.html' title='Plastic Ocean'/><author><name>Andrew</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10309956612325990746'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-7824405369595457226</id><published>2009-03-03T09:41:00.002+10:00</published><updated>2009-03-04T05:11:53.719+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='creative commons'/><category scheme='http://www.blogger.com/atom/ns#' term='linked data'/><category scheme='http://www.blogger.com/atom/ns#' term='open data'/><category scheme='http://www.blogger.com/atom/ns#' term='life science'/><title type='text'>Adding Some Herbs to Open Databases</title><content type='html'>"&lt;a href="http://www.xconomy.com/seattle/2009/03/02/harnessing-the-crowd-to-make-better-drugs-mercks-stephen-friend-nails-down-5m-to-propel-biology-into-open-source-era/"&gt;Harnessing the Crowd to Make Better Drugs: Merck’s Friend Nails Down $5M to Propel New Open Source Era&lt;/a&gt;" &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;div&gt;Friend, 54, is leaving his high-profile job as Merck’s senior vice president of cancer research, after having nailed down $5 million in anonymous donations to pursue this vision at a nonprofit organization getting started in Seattle called Sage.&lt;br /&gt;&lt;br /&gt;Sage is built on the premise that vast networks of genes get perturbed, or thrown off-kilter, in complex diseases like cancer, diabetes, and obesity. Scientists can’t just pick one faulty gene or protein and make a magic bullet to shut it down. But what if researchers around the world capturing genomic profiles on patients could get all of their data to talk to each other through a free, open database? A researcher in Seattle looking at how all 35,000 genes in breast cancer patients are dialed on or off at a certain stage of illness might be able to make critical comparisons by stacking results up against a deeper and broader data pool that integrates clinical, genetic, and other molecular data from peers in, say, San Francisco, New Haven, CT, or anywhere else.&lt;br /&gt;&lt;br /&gt;Some big names have signed on for the early incubating phase. Besides the full-time efforts of Friend and Schadt, the Sage board includes Nobel Laureate Lee Hartwell of the Fred Hutchinson Cancer Research Center; Paul Ramsey dean of the School of Medicine at the University of Washington; Richard Lifton, the chairman of genetics at Yale University; and Hans Wigzell, director emeritus of Sweden’s Karolinska Institute. For insight into how to apply lessons from the open-source computing world, the board has brought on John Wilbanks, the vice president of science at the San Francisco-based Creative Commons.&lt;br /&gt;&lt;br /&gt;As with any far-out vision, plenty of things can derail it along the way. What if researchers use different gene analysis machines, from Affymetrix, Illumina, or Applied Biosystems? How will Sage reconcile differences in how experiments are designed by different scientists? How will researchers be enticed to let go of their precious data, currently stored on password-protected hard drives and servers? How will Sage manage the intellectual property that arises from the database? Why would companies want to participate and run the risk of putting valuable proprietary data out in public? How will this get financed?&lt;br /&gt;&lt;br /&gt;Some of these things Friend can answer, and some still need to be worked out. Software is already making it possible to manage differences between the various instruments scientists use, and deal with the differences in experimental design, Friend says.&lt;/div&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-7824405369595457226?l=morenews.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/7824405369595457226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3322141&amp;postID=7824405369595457226' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7824405369595457226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7824405369595457226'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/03/adding-some-herbs-to-open-databases.html' title='Adding Some Herbs to Open Databases'/><author><name>Andrew</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10309956612325990746'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-7638520343119101189</id><published>2009-02-12T11:15:00.031+10:00</published><updated>2009-03-04T05:09:53.354+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='rest'/><category scheme='http://www.blogger.com/atom/ns#' term='tdd'/><category scheme='http://www.blogger.com/atom/ns#' term='religion'/><category scheme='http://www.blogger.com/atom/ns#' term='junit'/><category scheme='http://www.blogger.com/atom/ns#' term='scrum'/><category scheme='http://www.blogger.com/atom/ns#' term='jboss'/><title type='text'>LOL (List of Links)</title><content type='html'>&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/hamcrest/wiki/Tutorial"&gt;Hamcrest&lt;/a&gt; integrated in JUnit 4.4 and above (JMock like expectations).  Also allows &lt;a href="http://junit.sourceforge.net/doc/ReleaseNotes4.4.html"&gt;Popper theories&lt;/a&gt; (the link in the release notes is available &lt;a href="http://web.archive.org/web/20071012143326/http://popper.tigris.org/tutorial.html"&gt;through archive.org&lt;/a&gt;). which are similar to TestNG's data points.  There are also some examples: &lt;a href="http://shareandenjoy.saff.net/2007/04/popper-and-junitfactory.html"&gt;here&lt;/a&gt;, &lt;a href="http://shareandenjoy.saff.net/2007/04/exploring-with-junit-factory-103-points.html"&gt;here&lt;/a&gt;, &lt;a href="http://www.lexemetech.com/2007/07/junit-gets-flexible-and-philisophical.html"&gt;here&lt;/a&gt; and &lt;a href="http://groovy.codehaus.org/Using+Popper+with+Groovy"&gt;here&lt;/a&gt; (using Groovy). &lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/windowlicker/"&gt;Window Licker&lt;/a&gt; an interesting approach to Swing testing.  See the &lt;a href="http://windowlicker.googlecode.com/svn/trunk/calculator-example/"&gt;Calculator example&lt;/a&gt; and &lt;a href="http://www.natpryce.com/presentations/xpday-2008.pdf"&gt;XP Day 2008 presentation&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.smh.com.au/national/pastors-abortion-dream-inflames-bushfire-tragedy-20090210-832f.html"&gt;The bushfires are retribution for the damned&lt;/a&gt;. Apparently, &lt;a href="http://www.abc.net.au/news/stories/2008/09/12/2362487.htm"&gt;God waited 5 months&lt;/a&gt; (or maybe he was too busy appearing in toast) to smite those Victorians down.  The most annoying part of this is the fuzzy thinking.  Instead of considering that it might be poor fuel management practices, bad advice on whether to stay or leave or global warming it's actually about abortion.  If you can speak of a real Christian attitude, the people of &lt;a href="http://www.abc.net.au/7.30/content/2008/s2487793.htm"&gt;North Queensland donating their flood relief money straight to the Victorians&lt;/a&gt; seems more along the right lines.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://book.realworldhaskell.org/read/"&gt;Haskell book to read and buy&lt;/a&gt;. Luckily in that order.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://semanticweb.org/wiki/VoiD"&gt;SemWeb project VoiD&lt;/a&gt; a simple vocabulary for linking and describing different data sets.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://dow.ngra.de/2009/02/01/correcting-the-billion-dollar-mistake/"&gt;A couple of ways of fixing the billion dollar mistake&lt;/a&gt; using &lt;a href="http://www.zeroturnaround.com/javarebel/"&gt;Java Rebel&lt;/a&gt; or maybe Maybe Monad (&lt;a href="http://www.codemonkeyism.com/archives/2008/08/06/for-hack-with-option-monad-in-java/"&gt;using Java 5 for loops even&lt;/a&gt;).  Speaking of which: &lt;a href="http://apfelmus.nfshost.com/monoid-fingertree.html"&gt;Monoid fingertree&lt;/a&gt; (trees in Haskell) and  &lt;a href="http://importantshock.wordpress.com/2009/01/18/jquery-is-a-monad/"&gt;JQuery is  a Monad&lt;/a&gt; (&lt;a href="http://groups.google.com/group/comp.lang.javascript/browse_frm/thread/3d90e8b8a8301462?hl=en&amp;pli=1"&gt;apparently that makes it slow&lt;/a&gt;).  I also realized that &lt;a href="http://cleveralias.blogs.com/thought_spearmints/2008/05/generic-java-fu.html"&gt;Void&lt;/a&gt; is a valid type in Java Generics which is helpful in the dreaded Visitor pattern.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.pbs.org/moyers/journal/blog/2009/01/exchange_between_bill_moyers_a.html"&gt;Bill Moyers on Gaza&lt;/a&gt; and &lt;a href="http://www.youtube.com/watch?v=8UxJWdCwOpc"&gt;Dr Izzeldine Abuelaish sharing his grief on Israeli television&lt;/a&gt;.  More information is available from &lt;a href="http://www.abc.net.au/foreign/content/2009/s2487871.htm"&gt;ABC's Foreign Correspondent story, "The Doctor and his Daughters"&lt;/a&gt; because &lt;a href="http://en.wikipedia.org/wiki/Ezzeldeen_Abu_al-Aish"&gt;the wikipedia page has been deleted&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.infoq.com/interviews/poppendieck-lean-2007"&gt;The Poppendieck's on Lean development&lt;/a&gt; as to balance &lt;a href="http://martinfowler.com/bliki/FlaccidScrum.html"&gt;Martin Fowler on Scrum&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Straight_skeleton"&gt;Straight Skeleton&lt;/a&gt; as a way to generate a skeleton from a polygon.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.jboss.org/resteasy/docs.html"&gt;RESTEasy&lt;/a&gt; JBoss' REST framework.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Microsoft's terrible vengence, Songsmith.  If you love music &lt;a href="http://www.youtube.com/azz100c"&gt;don't click here&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;And &lt;a href="http://www.javaworld.com/cgi-bin/mailto/x_java.cgi?pagetosend=/export/home/httpd/javaworld/javaworld/jw-01-2009/jw-01-year-in-review-4.html&amp;pagename=/javaworld/jw-01-2009/jw-01-year-in-review-4.html&amp;pageurl=http://www.javaworld.com/javaworld/jw-01-2009/jw-01-year-in-review-4.html&amp;site=jw_core"&gt;What's up for Java in 2009?&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-7638520343119101189?l=morenews.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/7638520343119101189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3322141&amp;postID=7638520343119101189' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7638520343119101189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7638520343119101189'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/02/lol-list-of-links.html' title='LOL (List of Links)'/><author><name>Andrew</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10309956612325990746'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-7156113433748835223</id><published>2008-12-12T09:35:00.009+10:00</published><updated>2008-12-12T16:22:15.342+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='file system'/><category scheme='http://www.blogger.com/atom/ns#' term='metadata'/><title type='text'>Metadata for Fork Sake</title><content type='html'>Once in a while, I get excited and frustrated about the state of metadata - particularly in file systems.  Previously, I've written about &lt;a href="http://morenews.blogspot.com/2004/02/metadata-mac.html"&gt;rumors of OS X doing metadata better&lt;/a&gt; and &lt;a href="http://morenews.blogspot.com/2003/09/should-rdf-model-be-integrated-into.html"&gt;the wonders of BeOS&lt;/a&gt;.  A &lt;a href="http://en.wikipedia.org/wiki/Resource_fork"&gt;resource fork&lt;/a&gt; is something that Macs have had for ages, although it has appeared in other systems before and since:&lt;br /&gt;&lt;blockquote&gt;&lt;div&gt;The concept of a resource manager for graphics objects, to save memory, originated in the OOZE package on the Alto in Smalltalk-76...Although the Windows NT NTFS can support forks (and so can be a file server for Mac files), the native feature providing that support, called an alternate data stream, has never been used extensively...Early versions of the BeOS implemented a database within the filesystem...Though not strictly a resource fork, AmigaOS stores meta data in files known as .info files...NeXT operating systems NeXTSTEP and OPENSTEP, and its successor, Mac OS X, and other systems like RISC OS implemented another solution. Under these systems the resources are left in an original format, for instance, pictures are included as complete TIFF files instead of being encoded into some sort of container.&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;This links to the &lt;a href="http://folklore.org/StoryView.py?project=Macintosh&amp;story=The_Grand_Unified_Model_The_Finder.txt"&gt;Grand Unified Model 1&lt;/a&gt; and &lt;a href="http://folklore.org/StoryView.py?project=Macintosh&amp;story=The_Grand_Unified_Model_The_Finder.txt"&gt;Grand Unified Model 2&lt;/a&gt; which are also good for a few quotes:&lt;br /&gt;&lt;blockquote&gt;&lt;div&gt;Almost every piece of data in the Macintosh ended up being touched by the Grand Unified Model. Even transient data, data being cut and pasted within and between applications, did not escape. The Scrap Manager labeled each piece of data on the clipboard with a resource type. In another Mac innovation, multiple pieces of data, each of a different type, could be stored on the clipboard simultaneously, so that applications could have a choice of representation of the same data (for example, storing both plain and styled text). And since this data could easily be stored on disk in a resource file, we were able to provide cutting and pasting of relatively large chunks of data by writing a temporary file called the Clipboard.&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;div&gt;&lt;br /&gt;Since resource objects were typed, indicating their internal data format, and had ID's or names, it seemed that files should be able to be typed in the same way. There should be no difference between the formats of an independent TEXT file, stored as a standalone file, and a TEXT resource, stored with other objects in a resource file. So I decided we should give files the same four-byte type as resources, known as the type code. Of course, the user should not have to know anything about the file's type; that was the computer's job. So Larry Kenyon made space in the directory entry for each file for the type code, and the Mac would maintain the name as a completely independent piece of information. &lt;/div&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-7156113433748835223?l=morenews.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/7156113433748835223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3322141&amp;postID=7156113433748835223' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7156113433748835223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7156113433748835223'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/12/metadata-for-forks-sake.html' title='Metadata for Fork Sake'/><author><name>Andrew</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10309956612325990746'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-708719397323546057</id><published>2008-12-09T09:22:00.005+10:00</published><updated>2008-12-15T07:45:43.462+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='restlet'/><category scheme='http://www.blogger.com/atom/ns#' term='rdf'/><title type='text'>Restlet Talk</title><content type='html'>&lt;a href="http://www.slideshare.net/guest7d0e11/creating-a-web-of-data-with-restlet-presentation"&gt;I spoke last night at the Java Users Group about Restlet&lt;/a&gt;.  It's a basic introduction to both Restlet and trying to link data across web sites.  I wasn't very happy with the example - it was basically stolen from &lt;a href="http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html"&gt;a Rails introduction&lt;/a&gt;.  At least I could answer the question about why you would allow your data to be searched (to sell adverts on your recipe web site).  I think it went down okay, mainly because most Java developers are used to large frameworks and complicated APIs in order to do what Restlet does (so it's impressive), the Rails developers knew some of the concepts already and while most are wary of RDF, SPARQL, OWL and the Semantic Web stack it was a fairly incremental addition to achieve something reasonably powerful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-708719397323546057?l=morenews.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/708719397323546057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3322141&amp;postID=708719397323546057' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/708719397323546057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/708719397323546057'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/12/restlet-talk.html' title='Restlet Talk'/><author><name>Andrew</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10309956612325990746'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-9219740569038431016</id><published>2008-12-04T08:51:00.020+10:00</published><updated>2008-12-12T16:13:32.272+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jrdf'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='rdf'/><category scheme='http://www.blogger.com/atom/ns#' term='groovy'/><title type='text'>Getting Groovy with JRDF</title><content type='html'>In an effort to speed up and improve the test coverage in JRDF I've started writing some of the tests in Groovy.  It's been a good experience so far - so much so that I'm probably not going back to writing tests in Java in the future.&lt;br /&gt;&lt;br /&gt;One of the things I wanted to try was a &lt;a href="http://jrdf.svn.sourceforge.net/viewvc/jrdf/trunk/jrdf/test/groovy/org/jrdf/util/test/RdfBuilder.groovy?revision=2823&amp;view=markup"&gt;RdfBuilder&lt;/a&gt;, this is similar to Groovy's &lt;a href="http://groovy.codehaus.org/GroovyMarkup"&gt;NodeBuilder&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;There are a couple of things that make it a bit tricky.  When parsing or debugging builders I haven't yet found a way to find the methods/properties available even using MetaClass.  And of course, when the magic goes wrong it's a bit harder to debug Groovy versus java.&lt;br /&gt;&lt;br /&gt;It certainly smartens up the creation of triples, for example (bits from the &lt;a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/ntriples/test.nt"&gt;NTriples test case&lt;/a&gt;):&lt;code&gt;&lt;br /&gt;def rdf = new RdfBuilder(graph)&lt;br /&gt;rdf.with {&lt;br /&gt;  namespace("eg", "http://example.org/")&lt;br /&gt;  namespace("rdfs", "http://www.w3.org/2000/01/rdf-schema#")&lt;br /&gt;  "eg:resource1" "eg:property":"eg:resource2"&lt;br /&gt;  "_:anon" "eg:property":"eg:resource2"&lt;br /&gt;  "eg:resource1" "eg:property":"_:anon"&lt;br /&gt;  (3..6).each {&lt;br /&gt;    "eg:resource$it" "eg:property":"eg:resource2"&lt;br /&gt;  }&lt;br /&gt;  "eg:resource7" "eg:property":'"simple literal"'&lt;br /&gt;  "eg:resource17" ("eg:property":['"\\u20AC"', &lt;br /&gt;    '"\\uD800\\uDC00"', '"\\uD84C\\uDFB4"', '"\\uDBFF\\uDFFF"'])&lt;br /&gt;  "eg:resource24" "eg:property":'"&amp;lt;a&amp;gt;&amp;lt;/a&amp;gt;"^^rdfs:XMLLiteral'&lt;br /&gt;  "eg:resource31" "eg:property": '"chat"@en'&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;The first two lines defines the two namespaces used.  The third line shows the general use of RDF and Groovy. It works out well, an RDF predicate and object maps to an attribute and value in Groovy.  The next two lines show how you refer to the same blank node across two statements.  And the following lines show using ranges and creating different types of literals.  The third last line creates 4 triples with the same subject and predicate but with different objects.  &lt;br /&gt;&lt;br /&gt;Using the builder results in a file that's smaller than the test case file.  You could remove some duplication by creating a method that takes in a number and the object and generates "eg:resource$number" "eg:property" "$object" but doing that may actually make it harder to read.&lt;br /&gt;&lt;br /&gt;If you stick to only using URIs you can do things like:&lt;code&gt;&lt;br /&gt;rdf.with {&lt;br /&gt;  urn.foo6 {&lt;br /&gt;    urn.bar {&lt;br /&gt;      urn.baz1&lt;br /&gt;      urn.baz2&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;  Which produces two triples: "urn:foo6, urn:bar, urn:baz1" and "urn:foo6, urn:bar, urn:baz2".&lt;br /&gt;&lt;br /&gt;I expect that JRDF will only be more Groovy friendly in the future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-9219740569038431016?l=morenews.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/9219740569038431016/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3322141&amp;postID=9219740569038431016' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/9219740569038431016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/9219740569038431016'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/12/getting-groovy-with-jrdf.html' title='Getting Groovy with JRDF'/><author><name>Andrew</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10309956612325990746'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-4698429136331634939</id><published>2008-11-27T14:28:00.001+10:00</published><updated>2008-11-27T14:42:12.173+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='science'/><title type='text'>Turing in Life</title><content type='html'>Reading the &lt;a href="http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life"&gt;Wikipedia entry on Conway's Game of Life&lt;/a&gt; answers the question of why it was developed "Conway was interested in a problem presented in the 1940s by renowned mathematician John von Neumann, who tried to find a hypothetical machine that could build copies of itself and succeeded when he found a mathematical model for such a machine with very complicated rules on a rectangular grid."  It's interesting that von Neumann's idea of self replication actually predates the discovery of DNA by a few years.&lt;br /&gt;&lt;br /&gt;So I asked Google the question and  &lt;a href="http://rendell-attic.org/gol/tm.htm"&gt;someone has implemented a Turing machine inside Coway's Game of Life&lt;/a&gt;; way back in 2000.  A book called "&lt;a href="http://www.rennard.org/alife/english/logicellgb.pdf"&gt;Collision Based Computing&lt;/a&gt;" and a applet called LogiCell (which uses Conway's Game of Life to do simple calculations) is available &lt;a href="http://www.rennard.org/alife/english/logicellgb.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-4698429136331634939?l=morenews.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/4698429136331634939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3322141&amp;postID=4698429136331634939' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4698429136331634939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4698429136331634939'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/11/interesting-question.html' title='Turing in Life'/><author><name>Andrew</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10309956612325990746'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-1737229384978818440</id><published>2008-11-12T08:41:00.004+10:00</published><updated>2008-11-12T09:00:57.457+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sparql'/><category scheme='http://www.blogger.com/atom/ns#' term='rdf'/><title type='text'>Indexing for Efficient SPARQL</title><content type='html'>Another interesting way of indexing triples: &lt;a href="http://arxiv.org/abs/0811.1083"&gt;A role-free approach to indexing large RDF data dets in secondary memory for efficient SPARQL evaluation&lt;/a&gt; "We propose a simple Three-way Triple Tree (TripleT) secondary-memory indexing technique to facilitate efficient SPARQL query evaluation on such data sets. The novelty of TripleT is that (1) the index is built over the atoms occurring in the data set, rather than at a coarser granularity, such as whole triples occurring in the data set; and (2) the atoms are indexed regardless of the roles (i.e., subjects, predicates, or objects) they play in the triples of the data set. We show through extensive empirical evaluation that TripleT exhibits multiple orders of magnitude improvement over the state of the art on RDF indexing, in terms of both storage and query processing costs."&lt;br /&gt;&lt;br /&gt;While looking around at arXiv I did a quick search and found two more interesting papers that seems &lt;a href="http://morenews.blogspot.com/2008/02/no-crappy-wrappers.html"&gt;related to a previous discussion on how the Semantic Web needs it's own programming language&lt;/a&gt; or I would say at least a way to process the web of data, both by Marko A. Rodriguez: "&lt;a href="http://arxiv.org/abs/0802.3492"&gt;The RDF Virtual Machine&lt;/a&gt;" and "&lt;a href="http://arxiv.org/abs/0807.3908"&gt;A Distributed Process Infrastructure for a Distributed Data Structure&lt;/a&gt;".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-1737229384978818440?l=morenews.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/1737229384978818440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3322141&amp;postID=1737229384978818440' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/1737229384978818440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/1737229384978818440'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/11/indexing-for-efficient-sparql.html' title='Indexing for Efficient SPARQL'/><author><name>Andrew</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10309956612325990746'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-4750848597498131707</id><published>2008-11-11T07:43:00.004+10:00</published><updated>2008-12-12T16:14:39.346+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>While you were away...</title><content type='html'>Now that I'm currently looking around for jobs, I came across a presentation on some of the work the the easyDoc project did at Suncorp, "&lt;a href="http://www.infoq.com/presentations/Super-Agile-Craig-Smith-and-Paul-King"&gt;Technical Lessons Learned Turning the Agile Dials to Eleven&lt;/a&gt;".  It includes automating getter/setter testing, hibernate, and immutability.  It's good to see the sophistication continued to increase after I left to reach quite a high level (like automatic triangulation and doing molecule level testing).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-4750848597498131707?l=morenews.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/4750848597498131707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3322141&amp;postID=4750848597498131707' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4750848597498131707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4750848597498131707'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/11/while-you-were-away.html' title='While you were away...'/><author><name>Andrew</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10309956612325990746'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry></feed>