<?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-21005140</id><updated>2009-10-23T17:01:26.576+01:00</updated><title type='text'>The Wallace Line</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://thewallaceline.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default'/><link rel='alternate' type='text/html' href='http://thewallaceline.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default?start-index=26&amp;max-results=25'/><author><name>chris wallace</name><uri>http://www.blogger.com/profile/12694488941042708861</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>57</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-21005140.post-6936599472754531537</id><published>2009-05-24T17:03:00.003+01:00</published><updated>2009-05-24T18:36:21.239+01:00</updated><title type='text'>Weather Data on the Web</title><summary type='text'>In preparation for our cruise up to Scotland this summer, I'm setting up some SMS services so I can get weather reports on board, provided we're in mobile phone range.  This is based on the two-way service rented from Clickatell.  I recently rewrote a PHP/MySQL router which routes MO calls to an application based on the first word of the message, and returns the reply, if any, to the originator.</summary><link rel='replies' type='application/atom+xml' href='http://thewallaceline.blogspot.com/feeds/6936599472754531537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21005140&amp;postID=6936599472754531537&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/6936599472754531537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/6936599472754531537'/><link rel='alternate' type='text/html' href='http://thewallaceline.blogspot.com/2009/05/weather-data-on-web.html' title='Weather Data on the Web'/><author><name>chris wallace</name><uri>http://www.blogger.com/profile/12694488941042708861</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08781845768293611520'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21005140.post-6034558301719064905</id><published>2009-05-13T19:56:00.003+01:00</published><updated>2009-05-13T20:16:11.111+01:00</updated><title type='text'>Twitter Radio</title><summary type='text'>Thought I'd try to get my XQuery Twitter Radio application going to listen to the tweets from the Mark Logic conference.  It's only a simple script, requires Opera with Voice enabled and uses http-equiv="refresh" to refresh the page.  It only works if the window is active, so it rather limits my use of the computer - just need another to run the radio I guess. If I wasn't marking, I'd write an </summary><link rel='replies' type='application/atom+xml' href='http://thewallaceline.blogspot.com/feeds/6034558301719064905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21005140&amp;postID=6034558301719064905&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/6034558301719064905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/6034558301719064905'/><link rel='alternate' type='text/html' href='http://thewallaceline.blogspot.com/2009/05/twitter-radio.html' title='Twitter Radio'/><author><name>chris wallace</name><uri>http://www.blogger.com/profile/12694488941042708861</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08781845768293611520'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21005140.post-9053493105371338202</id><published>2009-05-06T07:56:00.004+01:00</published><updated>2009-05-06T10:31:09.056+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XQuery'/><category scheme='http://www.blogger.com/atom/ns#' term='exist'/><title type='text'>Matching sequences in XQuery</title><summary type='text'>Collation is a core algorithm in processing sequences. In XQuery, the straight-forward expression of the algorithm is as a recursive function:declare function local:merge($a, $b  as item()*)         as item()* {    if (empty($a) and empty($b))    then ()    else if (empty ($b) or $a[1] lt $b[1])    then  ($a[1], local:merge(subsequence($a, 2), $b))    else  if (empty($a) or $a[1] gt $b[1])    </summary><link rel='replies' type='application/atom+xml' href='http://thewallaceline.blogspot.com/feeds/9053493105371338202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21005140&amp;postID=9053493105371338202&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/9053493105371338202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/9053493105371338202'/><link rel='alternate' type='text/html' href='http://thewallaceline.blogspot.com/2009/05/matching-sequences-in-xquery.html' title='Matching sequences in XQuery'/><author><name>chris wallace</name><uri>http://www.blogger.com/profile/12694488941042708861</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08781845768293611520'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21005140.post-7825894116500219895</id><published>2009-05-01T17:10:00.003+01:00</published><updated>2009-05-01T17:28:16.491+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xquery exist'/><title type='text'>More XQuery performance tests</title><summary type='text'>I noticed this morning that Dan had added an alternative implementation to an article in the XQuery Wikibook on matching words against a list.  It got me wondering which implementation was preferable.  I wrote a few tests and was surprised at the result. My initial implementation based on element comparisons was five times slower than comparing with a sequence of atoms, and Dan's suggestion of </summary><link rel='replies' type='application/atom+xml' href='http://thewallaceline.blogspot.com/feeds/7825894116500219895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21005140&amp;postID=7825894116500219895&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/7825894116500219895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/7825894116500219895'/><link rel='alternate' type='text/html' href='http://thewallaceline.blogspot.com/2009/05/more-xquery-performance-tests.html' title='More XQuery performance tests'/><author><name>chris wallace</name><uri>http://www.blogger.com/profile/12694488941042708861</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08781845768293611520'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21005140.post-3893961577628741877</id><published>2009-04-27T21:09:00.002+01:00</published><updated>2009-04-28T08:00:32.875+01:00</updated><title type='text'>XQuery Unit Tests</title><summary type='text'>I had a fright last week - Wolfgang asked for a copy of the test harness I'd used to evaluate different implementations of a lookup table.  This is code I wrote some time ago, tinkered with, good enough for our internal use but ...  well pretty bad code. I have to confess here that as a lone XQuery programmer, my code doesn't get the level of critique it needs.  The Wikibook has been </summary><link rel='replies' type='application/atom+xml' href='http://thewallaceline.blogspot.com/feeds/3893961577628741877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21005140&amp;postID=3893961577628741877&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/3893961577628741877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/3893961577628741877'/><link rel='alternate' type='text/html' href='http://thewallaceline.blogspot.com/2009/04/xquery-unit-tests.html' title='XQuery Unit Tests'/><author><name>chris wallace</name><uri>http://www.blogger.com/profile/12694488941042708861</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08781845768293611520'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21005140.post-2470093239657400736</id><published>2009-04-19T00:27:00.007+01:00</published><updated>2009-04-20T07:55:38.271+01:00</updated><title type='text'>Implementing a table look-up in XQuery</title><summary type='text'>Handling temporary XML fragments in the eXist XML db has improved markedly in version 1.3.  I have been looking again at an example of processing MusicXML documents which I first wrote up in the XQuery wikibook.  The code requires a translation from the note name (A, B) to the midi note value for each note. The pitch of a note is defined by a structure like:  &lt;pitch&gt;     &lt;step&gt;C&lt;/step&gt;     &lt;alter</summary><link rel='replies' type='application/atom+xml' href='http://thewallaceline.blogspot.com/feeds/2470093239657400736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21005140&amp;postID=2470093239657400736&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/2470093239657400736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/2470093239657400736'/><link rel='alternate' type='text/html' href='http://thewallaceline.blogspot.com/2009/04/implementing-table-look-up-in-xquery.html' title='Implementing a table look-up in XQuery'/><author><name>chris wallace</name><uri>http://www.blogger.com/profile/12694488941042708861</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08781845768293611520'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21005140.post-7141759787063976645</id><published>2009-04-08T07:06:00.004+01:00</published><updated>2009-04-17T15:48:51.604+01:00</updated><title type='text'>XQuery module for Geodesy</title><summary type='text'>I wrote my first attempt at Mercator ~ Latitude/Longitude conversion functions about 2 years ago when working in a case study for SPA2007.  Part of this was documented in the XQuery Wikibook article on UK bus stops and Ordnance Survey coordinates. At the time I did not appreciate why my coordinates were just a bit off but fudged the difference.  Last month I used the same functions to map pedal </summary><link rel='replies' type='application/atom+xml' href='http://thewallaceline.blogspot.com/feeds/7141759787063976645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21005140&amp;postID=7141759787063976645&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/7141759787063976645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/7141759787063976645'/><link rel='alternate' type='text/html' href='http://thewallaceline.blogspot.com/2009/04/xquery-module-for-geodesy.html' title='XQuery module for Geodesy'/><author><name>chris wallace</name><uri>http://www.blogger.com/profile/12694488941042708861</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08781845768293611520'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21005140.post-8072828814958851170</id><published>2009-04-05T07:04:00.002+01:00</published><updated>2009-04-05T08:35:17.283+01:00</updated><title type='text'>Dashboards and Widgets in XQuery</title><summary type='text'>Jim Fuller's recent article on Dashboards in XQuery makes a very good case for using XQuery for mashups generally. Jim's dashboard application reminded me of work I had been doing with my students last term on a configurable web page containing widgets to display NOAA weather data, RSS feeds, Google Maps and their own choice of data source. For this we used PHP with Simple XML, but to demonstrate</summary><link rel='replies' type='application/atom+xml' href='http://thewallaceline.blogspot.com/feeds/8072828814958851170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21005140&amp;postID=8072828814958851170&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/8072828814958851170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/8072828814958851170'/><link rel='alternate' type='text/html' href='http://thewallaceline.blogspot.com/2009/04/dashboards-and-widgets-in-xquery.html' title='Dashboards and Widgets in XQuery'/><author><name>chris wallace</name><uri>http://www.blogger.com/profile/12694488941042708861</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08781845768293611520'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21005140.post-6700906767851181069</id><published>2009-04-01T21:27:00.007+01:00</published><updated>2009-04-02T12:09:03.628+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MicroSoft Word'/><category scheme='http://www.blogger.com/atom/ns#' term='parameterization.'/><category scheme='http://www.blogger.com/atom/ns#' term='XQuery'/><title type='text'>Parameterised MS Word Documents with XQuery</title><summary type='text'>It's coming round to exam time again at UWE, Bristol and as usual I've been struggling to get mine written.  The XQuery-based FOLD application (which supports staff and students in our School) generates exam front pages contain exam details such as module code and title, examination date, length and time as HTML which had to be copied (poorly) into MS Word.  This wasn't very satisfactory and it  </summary><link rel='replies' type='application/atom+xml' href='http://thewallaceline.blogspot.com/feeds/6700906767851181069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21005140&amp;postID=6700906767851181069&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/6700906767851181069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/6700906767851181069'/><link rel='alternate' type='text/html' href='http://thewallaceline.blogspot.com/2009/04/parameterisied-ms-word-documents-with.html' title='Parameterised MS Word Documents with XQuery'/><author><name>chris wallace</name><uri>http://www.blogger.com/profile/12694488941042708861</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08781845768293611520'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21005140.post-752974725705556119</id><published>2009-04-01T09:56:00.006+01:00</published><updated>2009-04-01T21:27:04.781+01:00</updated><title type='text'>Review of IBM developerWorks article by Brian Carey</title><summary type='text'>I've just come across an article published by IBM's developerWorks "Use XQuery for the presentation layer"  by Brian Carey.  This illustrates the value of storing complex data in XML form and using XQuery to select and transform to HTML.  Whilst the main message is well-presented, the implementation, below layers of Java, is over-complicated in a couple of ways.Brian makes the curious observation</summary><link rel='replies' type='application/atom+xml' href='http://thewallaceline.blogspot.com/feeds/752974725705556119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21005140&amp;postID=752974725705556119&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/752974725705556119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/752974725705556119'/><link rel='alternate' type='text/html' href='http://thewallaceline.blogspot.com/2009/04/review-of-ibm-developerworks-article-by.html' title='Review of IBM developerWorks article by Brian Carey'/><author><name>chris wallace</name><uri>http://www.blogger.com/profile/12694488941042708861</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08781845768293611520'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21005140.post-5971237119503173749</id><published>2009-02-23T10:47:00.004Z</published><updated>2009-04-03T11:20:11.180+01:00</updated><title type='text'>Data Normalization</title><summary type='text'>My lastest teaching program is for model inference from un-normalized data.  This had its inception in a PHP tool written some years ago. The new version uses my ER XML schema to integrate the output with the other data modelling tools. Normalisation is usually taught on data base courses via the abstract concepts of first, second third normal and higher normal forms. In my introductory module I </summary><link rel='replies' type='application/atom+xml' href='http://thewallaceline.blogspot.com/feeds/5971237119503173749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21005140&amp;postID=5971237119503173749&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/5971237119503173749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/5971237119503173749'/><link rel='alternate' type='text/html' href='http://thewallaceline.blogspot.com/2009/02/data-normalization.html' title='Data Normalization'/><author><name>chris wallace</name><uri>http://www.blogger.com/profile/12694488941042708861</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08781845768293611520'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21005140.post-1245000325208207317</id><published>2009-02-06T07:39:00.003Z</published><updated>2009-02-08T18:07:41.868Z</updated><title type='text'>Data Modelling Tutor</title><summary type='text'>The SQL tutor is now in use and seems to be finding favour with students and other tutors. There is a long list of things to add, like the ability to discuss an exercise but the course moves on and now I want to apply the same ideas to the teaching of data modelling. Students often find this rather difficult.For the past few years we have used an excellent case tool called QSEE, developed by Mark</summary><link rel='replies' type='application/atom+xml' href='http://thewallaceline.blogspot.com/feeds/1245000325208207317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21005140&amp;postID=1245000325208207317&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/1245000325208207317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/1245000325208207317'/><link rel='alternate' type='text/html' href='http://thewallaceline.blogspot.com/2009/02/data-modelling-tutor.html' title='Data Modelling Tutor'/><author><name>chris wallace</name><uri>http://www.blogger.com/profile/12694488941042708861</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08781845768293611520'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21005140.post-4653612816566073267</id><published>2009-01-23T22:57:00.004Z</published><updated>2009-01-24T08:00:11.105Z</updated><title type='text'></title><summary type='text'>Some years ago I wrote an SQL  workbook  which was used on a couple of courses, but although it had an interactive interface so that that a student could test their SQL statements against the example database,  the results were not checked.  I planned to create an interactive site which would present  tasks to the student, accept the SQL statement input, execute the statement and compare the </summary><link rel='replies' type='application/atom+xml' href='http://thewallaceline.blogspot.com/feeds/4653612816566073267/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21005140&amp;postID=4653612816566073267&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/4653612816566073267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/4653612816566073267'/><link rel='alternate' type='text/html' href='http://thewallaceline.blogspot.com/2009/01/some-years-ago-i-wrote-sql-workbook.html' title=''/><author><name>chris wallace</name><uri>http://www.blogger.com/profile/12694488941042708861</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08781845768293611520'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21005140.post-7542153310782805815</id><published>2008-11-02T23:40:00.003Z</published><updated>2008-11-02T23:51:59.853Z</updated><title type='text'>Listen to Twitter</title><summary type='text'>Finding myself working but wanting to know how Lewis Hamilton was getting on, I wondered if Twitter would be able to let me know.  I was looking for interesting feeds for the students, so I knocked up a bit of XQuery to fetch the atom feed for a Twitter search and turn that into Voice+XML for use with Opera.  Works pretty well even if it is rather unsophisticated and uses page refresh rather than</summary><link rel='replies' type='application/atom+xml' href='http://thewallaceline.blogspot.com/feeds/7542153310782805815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21005140&amp;postID=7542153310782805815&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/7542153310782805815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/7542153310782805815'/><link rel='alternate' type='text/html' href='http://thewallaceline.blogspot.com/2008/11/listen-to-twitter.html' title='Listen to Twitter'/><author><name>chris wallace</name><uri>http://www.blogger.com/profile/12694488941042708861</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08781845768293611520'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21005140.post-4829891792316834689</id><published>2008-10-26T18:49:00.004Z</published><updated>2008-10-27T07:20:32.020Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='semantic web'/><category scheme='http://www.blogger.com/atom/ns#' term='SKOS'/><category scheme='http://www.blogger.com/atom/ns#' term='SPARQL DBpedia'/><title type='text'>Wikipedia Categories for Posters</title><summary type='text'>I'd planned to extend the Alphabet maker into a site that assisted Charlie to find appropriate names by inducing the category of terms and then either warning about names not in the category, or correcting spelling based on names in that category, or even suggesting a name for a missing letter.First I thought  I should understand the categories available in dbPedia and started with the Wikipedia </summary><link rel='replies' type='application/atom+xml' href='http://thewallaceline.blogspot.com/feeds/4829891792316834689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21005140&amp;postID=4829891792316834689&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/4829891792316834689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/4829891792316834689'/><link rel='alternate' type='text/html' href='http://thewallaceline.blogspot.com/2008/10/wikipedia-categories-for-posters.html' title='Wikipedia Categories for Posters'/><author><name>chris wallace</name><uri>http://www.blogger.com/profile/12694488941042708861</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08781845768293611520'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21005140.post-2886377874538754049</id><published>2008-10-22T23:35:00.005+01:00</published><updated>2008-10-23T00:50:04.888+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xquery gift'/><title type='text'>Alphabet Poster</title><summary type='text'>Grandson Charlie (age nearly 6) rang the other night to tell me the animals he had found for the animal alphabet we had discussed the previous night.  I thought it would be a neat present to make a program to create a poster by fetching images from the web for each of his words and lay it out as a poster. I like the idea of writing programs as gifts, but Charlie would prefer something real- like </summary><link rel='replies' type='application/atom+xml' href='http://thewallaceline.blogspot.com/feeds/2886377874538754049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21005140&amp;postID=2886377874538754049&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/2886377874538754049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/2886377874538754049'/><link rel='alternate' type='text/html' href='http://thewallaceline.blogspot.com/2008/10/grandson-charlie-age-nearly-6-rang.html' title='Alphabet Poster'/><author><name>chris wallace</name><uri>http://www.blogger.com/profile/12694488941042708861</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08781845768293611520'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21005140.post-1696190441010763821</id><published>2008-09-22T16:30:00.002+01:00</published><updated>2008-09-22T23:51:27.502+01:00</updated><title type='text'>RDF Vocab work</title><summary type='text'>I'm off to Oxford to learn about RDF Vocabularies at the Oxford Vocamp. My own meanderings in this field have been limited to a rather hacked Vocabulary Browser written in XQuery:http://www.cems.uwe.ac.uk/xmlwiki/Vocab/index.xqand my rather limited attempts to provide an RDF extract from the FOLD  Information System.https://www.cems.uwe.ac.uk/wiki/index.php/FOLD/RDFwith a current dump of the </summary><link rel='replies' type='application/atom+xml' href='http://thewallaceline.blogspot.com/feeds/1696190441010763821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21005140&amp;postID=1696190441010763821&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/1696190441010763821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/1696190441010763821'/><link rel='alternate' type='text/html' href='http://thewallaceline.blogspot.com/2008/09/rdf-vocab-work.html' title='RDF Vocab work'/><author><name>chris wallace</name><uri>http://www.blogger.com/profile/12694488941042708861</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08781845768293611520'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21005140.post-1032472089182932492</id><published>2008-03-01T09:08:00.002Z</published><updated>2008-03-01T11:14:38.136Z</updated><title type='text'>SPARQLing Country Calling Codes</title><summary type='text'>Stimulated by Henry Story's blog entry, I wrote the equivalent in XQuery, and in doing so, bumped into some issues with the dbpedia data. In particular, there is no category I could find to identify a country, but then what constitutes a country depends on what the geographical entity is classified for, so this is to be expected.In the end I resorted to scraping the wikipedia page which lists the</summary><link rel='replies' type='application/atom+xml' href='http://thewallaceline.blogspot.com/feeds/1032472089182932492/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21005140&amp;postID=1032472089182932492&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/1032472089182932492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/1032472089182932492'/><link rel='alternate' type='text/html' href='http://thewallaceline.blogspot.com/2008/03/sparqling-country-calling-codes.html' title='SPARQLing Country Calling Codes'/><author><name>chris wallace</name><uri>http://www.blogger.com/profile/12694488941042708861</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08781845768293611520'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21005140.post-9211116280071138889</id><published>2008-02-28T08:25:00.003Z</published><updated>2008-02-28T08:50:48.379Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='XQuery SMS'/><title type='text'>XQuery SMS service</title><summary type='text'>I've recently resurrected our two-way SMS service for use by my students in their current coursework, a site to gather and report results for their chosen team sport.  I require an exotic interface to the data, for example a speech interface with Opera or an SMS interface.  In my SMS installation, the first word in an in-coming message is used to determine the service to which the message is to </summary><link rel='replies' type='application/atom+xml' href='http://thewallaceline.blogspot.com/feeds/9211116280071138889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21005140&amp;postID=9211116280071138889&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/9211116280071138889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/9211116280071138889'/><link rel='alternate' type='text/html' href='http://thewallaceline.blogspot.com/2008/02/xquery-sms-service.html' title='XQuery SMS service'/><author><name>chris wallace</name><uri>http://www.blogger.com/profile/12694488941042708861</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08781845768293611520'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21005140.post-1533829541447208580</id><published>2008-02-13T17:18:00.003Z</published><updated>2008-02-13T17:31:21.164Z</updated><title type='text'>RDF /Sparql with XQuery</title><summary type='text'>As part of my learning about RDF, Sparql and the semantic web, I thought I would take the familiar employee/department/salary grade example which I used in the XQuery/SQL comparison as a case study.  To this end I wrote two XQuery scripts:XML to RDF  - a script using a generic function, guided by a map , to translate flat XML tables to RDF and RDFSSparql query interface - an XQuery interface to a</summary><link rel='replies' type='application/atom+xml' href='http://thewallaceline.blogspot.com/feeds/1533829541447208580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21005140&amp;postID=1533829541447208580&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/1533829541447208580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/1533829541447208580'/><link rel='alternate' type='text/html' href='http://thewallaceline.blogspot.com/2008/02/rdf-sparql-with-xquery.html' title='RDF /Sparql with XQuery'/><author><name>chris wallace</name><uri>http://www.blogger.com/profile/12694488941042708861</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08781845768293611520'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21005140.post-5626907626435701647</id><published>2008-01-14T22:38:00.000Z</published><updated>2008-01-28T16:21:36.261Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX AHAH'/><title type='text'>AJAX, AHAH and XQuery</title><summary type='text'>Today [well some days ago now, this item got stuck in draft] , I came across the abbreviation AHAH to refer to the  style of using AJAX to request XHTML fragments to be inserted into an HTML page.  The example of XQuery and AJAX to search employee data in the wikibook used this pattern - like the gentleman in Molière's play, I had been speaking AHAH all these years without realising it .I also </summary><link rel='replies' type='application/atom+xml' href='http://thewallaceline.blogspot.com/feeds/5626907626435701647/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21005140&amp;postID=5626907626435701647&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/5626907626435701647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/5626907626435701647'/><link rel='alternate' type='text/html' href='http://thewallaceline.blogspot.com/2008/01/ajax-ahah-and-xquery.html' title='AJAX, AHAH and XQuery'/><author><name>chris wallace</name><uri>http://www.blogger.com/profile/12694488941042708861</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08781845768293611520'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21005140.post-6587393210989219061</id><published>2008-01-12T19:14:00.000Z</published><updated>2008-01-14T17:00:27.383Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='googlechart sparkline'/><title type='text'>GoogleChart API and sparklines</title><summary type='text'>As a long-time fan of Edward Tufte's work, I've often wanted to make use of his sparkline idea, but haven't come across  a suitable tool to make them.  Now the GoogleChart API can generate these and a plethora of other chart types via a web service.Here is an XQuery script to demo the interface, using the character-based simple encoding of the data:Random sparklineWikibook pageI have one small </summary><link rel='replies' type='application/atom+xml' href='http://thewallaceline.blogspot.com/feeds/6587393210989219061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21005140&amp;postID=6587393210989219061&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/6587393210989219061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/6587393210989219061'/><link rel='alternate' type='text/html' href='http://thewallaceline.blogspot.com/2008/01/googlechart-api-and-sparklines.html' title='GoogleChart API and sparklines'/><author><name>chris wallace</name><uri>http://www.blogger.com/profile/12694488941042708861</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08781845768293611520'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21005140.post-8293794093783973493</id><published>2008-01-10T21:24:00.000Z</published><updated>2008-01-11T00:53:26.069Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='AIS'/><title type='text'>AIS</title><summary type='text'>As we start to think about the equipment we need aboard Aremiti, the Westerly ketch we are currently re-fitting, one new item that is on our shopping list is  AIS.All vessels over 300 tons and passenger vessels over 100 tons are required to carry an AIS transmitter. This broadcasts vessel  data such as identification, location, speed and course on a VHF frequency.  This is picked up by shore or </summary><link rel='replies' type='application/atom+xml' href='http://thewallaceline.blogspot.com/feeds/8293794093783973493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21005140&amp;postID=8293794093783973493&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/8293794093783973493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/8293794093783973493'/><link rel='alternate' type='text/html' href='http://thewallaceline.blogspot.com/2008/01/ais.html' title='AIS'/><author><name>chris wallace</name><uri>http://www.blogger.com/profile/12694488941042708861</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08781845768293611520'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21005140.post-1246834122580583297</id><published>2008-01-07T20:14:00.000Z</published><updated>2008-01-07T21:08:11.399Z</updated><title type='text'>More XQuery and Semantic web mashups.</title><summary type='text'>Somewhat rested after a short, breezy holiday in Falmouth , with the server now working, I completed my two case studies of XQuery /DBpedia mashups.  Both are described in the XQuery Wikibook. The implementation is still a bit hairy, but now makes use of the SPARQL Query XML Result format, although I still find it useful to transform to tuples with named elements.The first is the mapping of the </summary><link rel='replies' type='application/atom+xml' href='http://thewallaceline.blogspot.com/feeds/1246834122580583297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21005140&amp;postID=1246834122580583297&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/1246834122580583297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/1246834122580583297'/><link rel='alternate' type='text/html' href='http://thewallaceline.blogspot.com/2008/01/more-xquery-and-semantic-web-mashups.html' title='More XQuery and Semantic web mashups.'/><author><name>chris wallace</name><uri>http://www.blogger.com/profile/12694488941042708861</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08781845768293611520'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21005140.post-7758472146931738145</id><published>2007-12-31T08:49:00.000Z</published><updated>2007-12-31T08:59:56.415Z</updated><title type='text'>Servers down</title><summary type='text'>Wouldn't you just know it?  I no sooner blog about XQuery for Semantic web mashups  than  the servers in my department at the university go off-line and I guess they might not be back up now till the 2nd.  About time we had eXist-db server space in the Cloud I say. I wonder if Amazon would be interested?</summary><link rel='replies' type='application/atom+xml' href='http://thewallaceline.blogspot.com/feeds/7758472146931738145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21005140&amp;postID=7758472146931738145&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/7758472146931738145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21005140/posts/default/7758472146931738145'/><link rel='alternate' type='text/html' href='http://thewallaceline.blogspot.com/2007/12/servers-down.html' title='Servers down'/><author><name>chris wallace</name><uri>http://www.blogger.com/profile/12694488941042708861</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08781845768293611520'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>