<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:ent="http://www.purl.org/NET/ENT/1.0/" version="2.0">
  <channel>
    <title>Curiouser and Curiouser! on opml</title>
    <link>http://matt.blogs.it/</link>
    <description>RSS feed for topic opml</description>
    <copyright>Copyright 2006 Matt Mower</copyright>
    <generator>Squib/0.4.0.348</generator>
    <managingEditor>self@mattmower.com</managingEditor>
    <webMaster>self@mattmower.com</webMaster>
    <language>en-gb</language>
    <item>
      <title>DTD for OPML</title>
      <link>http://matt.blogs.it/entries/00000835.html</link>
      <pubDate>Thu, 27 Mar 2003 19:37:38 +0000</pubDate>
      <description>I'm about to edit some OPML files, I want to use my XML editor XML-SPY but it works best with either a schema or DTD.&amp;nbsp; Fortunately I was able to find an &lt;A href="http://xml.coverpages.org/opmlSteeleDTD.html"&gt;OPML DTD&lt;/A&gt; thanks to Wayne Steel.</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00000835.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:classification="user" ent:href="http://matt.blogs.it/topics/blogging.xml" ent:id="blogging"/>
        <ent:topic ent:classification="user" ent:href="http://matt.blogs.it/topics/radio-userland.xml" ent:id="radio-userland"/>
      </ent:cloud>
    </item>
    <item>
      <title>Topic Rolls near reality</title>
      <link>http://matt.blogs.it/entries/00000836.html</link>
      <pubDate>Thu, 27 Mar 2003 23:38:44 +0000</pubDate>
      <description>&lt;P&gt;Some while ago I talked about the facility for users to share topics with each other.&amp;nbsp; I was just beginning to experiment with topics and blogging and, at the time, was thinking of an ad hoc P2P mechanism by which users could&amp;nbsp;ensure they were talking about the same thing by using the same topics.&amp;nbsp; I called this concept a topicroll playing on the theme of the blogroll.&lt;/P&gt;
&lt;P&gt;More recently Paolo and I have been working on making use of topics to create a superior &lt;FONT color=maroon&gt;Action Journalling&lt;/FONT&gt; environment.&amp;nbsp; &lt;A href="http://paolo.evectors.it/"&gt;Paolo&lt;/A&gt; has also been involved in the &lt;A href="http://www.bookcafe.net/blog/aggregator/"&gt;Italian Blog Aggregator&lt;/A&gt; project about which he has written on several occasions.&amp;nbsp; These efforts have begun to dovetail and I wanted to document some of what we are doing.&lt;/P&gt;
&lt;P&gt;For a while now liveTopics has provided the ability for Radio users to associate multiple topics with their posts.&amp;nbsp; This allows for fine-grained, ad hoc, associations between posts in a much more flexible way than categories allow.&amp;nbsp; Release 1.1.3 (due RSN) adds also the concept of &lt;FONT color=darkblue&gt;topic types&lt;/FONT&gt; and these are central to our efforts.&lt;/P&gt;
&lt;P&gt;liveTopics &lt;FONT color=darkblue&gt;types &lt;/FONT&gt;are a way of classifying topics into functional categories.&amp;nbsp; For example the default types created by liveTopics are:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;generic 
&lt;LI&gt;person 
&lt;LI&gt;project 
&lt;LI&gt;place 
&lt;LI&gt;time&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Each topic can belong to only one type (which defaults to generic).&amp;nbsp; Now my topic &lt;A href="http://radio.weblogs.com/0107808/topics/topicsP.html#paolo"&gt;Paolo&lt;/A&gt; can be classified as being a &lt;EM&gt;person topic&lt;/EM&gt;.&amp;nbsp; Now all topics are not equal and our software can start to provide useful interfaces based upon topic information.&lt;/P&gt;
&lt;P&gt;Systems such as the Italian Blog Aggregator may want to define a control language for topics rather than allowing users to make up their own.&amp;nbsp; Even if it does not wish to control the topics, it may be useful if users can pre-fill their topic list with system defined topics.&amp;nbsp; That's what the topicroll is all about.&amp;nbsp; Now we're going to implement it.&lt;/P&gt;
&lt;P&gt;To begin with we have choosen to use the &lt;A href="http://www.opml.org/spec"&gt;OPML&lt;/A&gt; format for the topic roll (later on we will probably implement them in &lt;A href="http://www.topicmaps.org/xtm/1.0/"&gt;XTM&lt;/A&gt; as well).&amp;nbsp;&amp;nbsp;Whilst OPML is not a semantically ideal language for describing a topic roll it has&amp;nbsp;a number of advantage for us right now:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;It's simple: It basically has only 1 tag &lt;outline&gt; so it's pretty easy to get along with 
&lt;LI&gt;It's a standard: OPML is already used &amp; understood around the world, we're not inventing it ourselves 
&lt;LI&gt;There are tools: In principle you should be able to create a topic roll in any OPML editor and load it into liveTopics and vice versa&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;As an example you can see my current &lt;A href="http://radio.weblogs.com/0107808/topics/resources/topicRoll.opml"&gt;topicroll&lt;/A&gt; for yourself (although I notice that Radio doesn't seem to make anything of it, I wonder if my OPML is bad).&lt;/P&gt;
&lt;P&gt;[&lt;FONT color=darkblue&gt;28/03&lt;/FONT&gt;: With a little help from Paolo the topicRoll OPML is now fixed and the outline works in Radio!]&lt;/P&gt;
&lt;P&gt;The next step is to allow liveTopics to import topicrolls from other locations.&lt;/P&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00000836.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:classification="user" ent:href="http://matt.blogs.it/topics/mobile-phones.xml" ent:id="mobile-phones"/>
        <ent:topic ent:classification="user" ent:href="http://matt.blogs.it/topics/motorola.xml" ent:id="motorola"/>
      </ent:cloud>
    </item>
    <item>
      <title>OML: Improving outlines</title>
      <link>http://matt.blogs.it/entries/00000873.html</link>
      <pubDate>Wed, 16 Apr 2003 16:40:32 +0100</pubDate>
      <description>&lt;P&gt;Just came across a link to:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://oml.sourceforge.net/cgi-bin/blosxom.cgi/specification"&gt;OML: Outline Markup Language&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;which is an attempt to create a validatable XML language for describing outlines.&amp;nbsp; It's simple and, as you would expect, very similar to OPML.&amp;nbsp; Key differences are:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The use of a &lt;metadata&gt; tag in the &lt;head&gt; section to allow generalized meta data to be used there.&lt;/LI&gt;
&lt;LI&gt;The provision of an optional &lt;data&gt; tag to contain an &lt;outline&gt; nodes contents (rather than packing it into a text attribute)&lt;/LI&gt;
&lt;LI&gt;The provision of an optional &lt;item&gt; tag for use in an &lt;outline&gt; node.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;It is this last that is key to OML since the use of multiple &lt;item&gt; tags can replace the use of custom attributes within the &lt;outline&gt; node.&amp;nbsp; It is these custom attributes which can&amp;nbsp;prevent OPML from being validated.&amp;nbsp; They also make it inconvenient to use tools based upon DTD or schema when editing OPML documents (to which I can attest).&lt;/P&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00000873.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
        <ent:topic ent:classification="user" ent:href="http://matt.blogs.it/topics/java.xml" ent:id="java"/>
        <ent:topic ent:classification="user" ent:href="http://matt.blogs.it/topics/service-oriented-applications.xml" ent:id="service-oriented-applications"/>
      </ent:cloud>
    </item>
    <item>
      <title>Combining OPML and RSS to create an export format for a blog</title>
      <link>http://matt.blogs.it/entries/00002173.html</link>
      <pubDate>Mon, 10 Apr 2006 09:30:46 +0100</pubDate>
      <description>&lt;p&gt;&lt;a href="http://blog.broadbandmechanics.com/2006/04/staying-on-top-whats-up"&gt;Marc Canter links&lt;/a&gt; to Joe Brockmeier's post about &lt;a href="http://internet.newsforge.com/article.pl?sid=06/04/04/2051237&amp;amp;from=rss"&gt;weblogs having a shared format&lt;/a&gt;. Timely.&lt;/p&gt;

&lt;p&gt;I've been thinking about this myself because I want such a format too. Although I have &lt;a href="http://squib.rubyforge.org/"&gt;written a tool to serve my own needs&lt;/a&gt; I won't be using it forever and I (&lt;em&gt;probably&lt;/em&gt;) want to take my blog with me. I've also been thinking about how to do backup and restore. The two problems appear to be the same to me.&lt;/p&gt;

&lt;p&gt;I think we already have the answer: RSS. It's already a natural format for holding the essential data of a weblog and namespacing is an easy way to store the tool-specific data. A tool that understands another tools metadata (e.g. &lt;a href="http://matt.blogs.it/specs/ENT/1.0/"&gt;ENT topics&lt;/a&gt;) can import it, a tool that cannot can safely ignore it. Actually &lt;em&gt;why are we even discussing this?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The real question seems to me to be: how best to use RSS for this purpose? Do we have one gigantic RSS feed for a weblog? In my case with about 2100 posts it would be pretty big and unwieldy. Back in 2004 Paolo and I were talking about how to do &lt;a href="http://matt.blogs.it/2004/10/13.html#a1596"&gt;weblog&lt;/a&gt; &lt;a href="http://paolo.evectors.it/2004/10/07.html#a2276"&gt;archives&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I was messing with an approach that combined RSS and OPML to create a weblog archive. For each post/day/month (pick your granularity) create a corresponding RSS feed of weblog entries. These feeds are then referenced from an OPML file that defines the overall structure of the archived weblog. In this way you can quickly narrow down to find an individual post, or suck up the whole thing (useful for tools like &lt;a href="http://anjo.blogs.com/metis/"&gt;Sigmund&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;For convenience the whole lot could be wrapped up in a .tar.gz.  It might be helpful to include some kind of (optional?) metadata file at the top-level that describes the contents (ala JAR archives).&lt;/p&gt;

&lt;p&gt;I'm not sure why I stopped working on that, maybe it just got shoved aside by other things. I might have a go at adding this feature to Squib since we need a backup format anyway.&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002173.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
      </ent:cloud>
    </item>
    <item>
      <title>Atom is better than RSS</title>
      <link>http://matt.blogs.it/entries/00002182.html</link>
      <pubDate>Wed, 12 Apr 2006 23:16:10 +0100</pubDate>
      <description>&lt;p&gt;I think I can hear a sterile argument brewing about using &lt;a href="http://matt.blogs.it/entries/00002173.html"&gt;OPML and RSS to create weblog archives&lt;/a&gt;. For example: Wouldn't Atom be a better choice? Maybe hAtom? And how about XOXO? Or perhaps our old friend RDF?&lt;/p&gt;

&lt;p&gt;I don't know. Frankly I don't much care either. I have a hard time working up any enthusiasm for such questions.&lt;/p&gt;

&lt;p&gt;I'm not building a CAT scanner or putting a man into orbit. This is an &lt;a href="http://matt.blogs.it/entries/00002181.html"&gt;archive of my weblog entries&lt;/a&gt;. Is OPML good enough? Is RSS good enough? Only time will tell. But if they're not, and you can do a better job, then &lt;strong&gt;please lead the way&lt;/strong&gt;.&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002182.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
      </ent:cloud>
    </item>
    <item>
      <title>An experimental OPML+RSS archive for C&amp;C</title>
      <link>http://matt.blogs.it/entries/00002181.html</link>
      <pubDate>Wed, 12 Apr 2006 19:48:29 +0100</pubDate>
      <description>&lt;p&gt;Over the last couple of days I've hacked together experimental support for OPML+RSS archives in &lt;a href="http://squib.rubyforge.org/"&gt;Squib&lt;/a&gt; as I &lt;a href="http://matt.blogs.it/entries/00002173.html"&gt;described a couple of days ago&lt;/a&gt;. You can grab my entire archive &lt;a href="http://matt.blogs.it/archive/"&gt;from here&lt;/a&gt; either directly or as a .tar.gz archive.&lt;/p&gt;

&lt;p&gt;The structure of the archive looks like this:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://matt.blogs.it/images/misc/archive_structure.jpg" alt="OPML+RSS weblog archive format"/&gt;&lt;/p&gt;

&lt;p&gt;The weblog.opml file is an outline that contains the date-based structure of Curiouser and Curiouser. There is a branch for each year, and each month of each year. At the leaves are pointers to daily RSS files and the ID &amp;amp; title of entries.&lt;/p&gt;

&lt;p&gt;It occurred to me that I could just put the entire entry data directly into the OPML file and cut out the RSS. However, with over 2,100 entries, I felt that would lead to a very big and unwieldy file. Being just a file of pointers means it can still be sensibly opened in an OPML editor.&lt;/p&gt;

&lt;p&gt;Another reason for using RSS is to ensure that users of the archive can take advantage of all the software out there to parse RSS. Once you've figured out which days entries you want, you can hand the corresponding RSS file to a standard parser and get back the entries.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: I've added &lt;code&gt;&amp;lt;link rel="archive" type="application/opml+xml" href=".../archive/data/weblog.opml" /&amp;gt;&lt;/code&gt; to my home page to allow archive auto-discovery. I did a minimum amount of research before doing this so please correct me if that's a gross misuse of a link tag or there is some established way of doing this already.&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002181.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
      </ent:cloud>
    </item>
    <item>
      <title>The parlour state of outlining on Windows</title>
      <link>http://matt.blogs.it/entries/00002190.html</link>
      <pubDate>Wed, 19 Apr 2006 12:10:19 +0100</pubDate>
      <description>&lt;p&gt;At the moment I am knee-deep (expecting to be waist-deep by tea time) in writing my product management plan for 2006/7. Of course I am writing it in the excellent &lt;a href="http://www.omnigroup.com/applications/omnioutliner/pro/"&gt;OmniOutliner Professional&lt;/a&gt; where I am making use of the notes, to-do's, styling, and attachments.&lt;/p&gt;

&lt;p&gt;Now I want to let Graham (CEO), Peter (CTO), and Chris (Business Development Director) see them and make changes. Okay so Omni doesn't handle change tracking like Word but I could live with that.&lt;/p&gt;

&lt;p&gt;What I can't live with is the fact that I have no way of sharing this document with them without, it seems, converting it into some dreadful legacy format like RTF! I guess I can use HTML if I sacrifice their ability to change anything (if I only I were that good!)&lt;/p&gt;

&lt;p&gt;I tried installing Dave Winer's OPML.exe editor on Grahams machine and sharing my outline as OPML. I have no question that Dave understands outlining but OPML.exe is a dreadfully sober experience coming from Omni. Opening my outline (saved as an OPML document) I can see the outline, sure, but I lose the notes, styling, attached documents. In short I lose everything but the structure.&lt;/p&gt;

&lt;p&gt;Apparently it's time to ramp up my campaign of switching Graham to Mac.&lt;/p&gt;</description>
      <guid isPermaLink="true">http://matt.blogs.it/entries/00002190.html</guid>
      <ent:cloud ent:href="http://matt.blogs.it/topics/">
      </ent:cloud>
    </item>
  </channel>
</rss>
