<?xml version="1.0"?>
<!-- RSS generated by Radio UserLand v8.0.8 on Fri, 17 Sep 2004 18:06:41 GMT -->
<rss version="2.0">
	<channel>
		<title>Andy Roberts&apos; Radio Weblog</title>
		<link>http://radio.weblogs.com/0131247/</link>
		<description>This is a personal weblog. The opinions expressed here represent my own and not those of my employer.</description>
		<copyright>Copyright 2004 Andy Roberts</copyright>
		<lastBuildDate>Fri, 17 Sep 2004 18:06:41 GMT</lastBuildDate>
		<docs>http://backend.userland.com/rss</docs>
		<generator>Radio UserLand v8.0.8</generator>
		<managingEditor>aroberts@bowstreet.com</managingEditor>
		<webMaster>aroberts@bowstreet.com</webMaster>
		<category domain="http://www.weblogs.com/rssUpdates/changes.xml">rssUpdates</category> 
		<skipHours>
			<hour>23</hour>
			<hour>0</hour>
			<hour>1</hour>
			<hour>2</hour>
			<hour>3</hour>
			<hour>4</hour>
			<hour>5</hour>
			<hour>6</hour>
			</skipHours>
		<cloud domain="radio.xmlstoragesystem.com" port="80" path="/RPC2" registerProcedure="xmlStorageSystem.rssPleaseNotify" protocol="xml-rpc"/>
		<ttl>60</ttl>
		<item>
			<title>Language Oriented Programming - new buzzword</title>
			<link>http://radio.weblogs.com/0131247/2004/09/17.html#a19</link>
			<description>&lt;P&gt;Some interviews over at &lt;A href=&quot;http://codegeneration.net/&quot;&gt;codegeneration.net&lt;/A&gt; show that there&apos;s a new buzzword that&apos;s gaining momentum - language oriented programming.&lt;/P&gt;
&lt;P&gt;Here&apos;s my take on it:&amp;nbsp; Programming languages, up to now, have been largely thought of as general purpose.&amp;nbsp; People use these languages to create libraries and macros, and then they have to write lots of doc on how to use these libraries.&lt;/P&gt;
&lt;P&gt;What&apos;s really going on is that the libraries are themselves extensions of the underlying languages.&lt;/P&gt;
&lt;P&gt;A bunch of people are realizing that if there were a formal way to define a language (using some language of course), then it would be possible for people to define their language extensions using this same language - rather than using a different technique like Java docs.&amp;nbsp; In addition, if there were such a thing as a formal definition of the language, then one could auto-generate editors for creating documents in those languages.&lt;/P&gt;
&lt;P&gt;There are actually a ton of people working on this.&amp;nbsp; Here&apos;s my quick list:&lt;/P&gt;
&lt;P&gt;1)&amp;nbsp; Microsoft - Jack Greenfield and Kieth Short.&amp;nbsp; They call them DSL&apos;s or domain specific languages.&amp;nbsp; You can read about it at &lt;A href=&quot;http://www.theserverside.net/articles/showarticle.tss?id=SoftwareFactories&quot;&gt;this link&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;2)&amp;nbsp; JetBrains - &lt;A href=&quot;http://codegeneration.net/tiki-read_article.php?articleId=60&quot;&gt;Sergey Dmitriev&lt;/A&gt; is building something called a &quot;meta-programming system&quot;, which is a system that lets you define a new language and run a program that generates various things like editors.&lt;/P&gt;
&lt;P&gt;3)&amp;nbsp; Intentional Software - &lt;A href=&quot;http://codegeneration.net/tiki-read_article.php?articleId=61&quot;&gt;Charles Simonyi&lt;/A&gt;.&amp;nbsp; Same kind of thing with a focus on transformation of documents from one language rep to another using a &quot;reduction compiler&quot;.&lt;/P&gt;
&lt;P&gt;4)&amp;nbsp; Xactium - &lt;A href=&quot;http://codegeneration.net/tiki-read_article.php?articleId=68&quot;&gt;Andy Evans&lt;/A&gt;.&amp;nbsp; Provides a tool that lets you define a language as an extension/combination of other languages.&lt;/P&gt;
&lt;P&gt;5)&amp;nbsp; IBM -&amp;nbsp;really the &lt;A href=&quot;http://www.eclipse.org/&quot;&gt;Eclipse project&lt;/A&gt; on EMF - driven by Ed Merks and crew.&amp;nbsp; EMF ECore lets you define a &quot;language&quot; of sorts, and then the Edit and Editor plugins will generate an editor and custom command stack.&lt;/P&gt;
&lt;P&gt;So - that&apos;s a lot.&lt;/P&gt;
&lt;P&gt;I&apos;ve thought about the work on language oriented programming, and our parametric modeling technology in The Factory.&amp;nbsp; The two are complementary.&amp;nbsp; Parametric modeling assumes that you start with a well defined &quot;domain&quot; or target, and then you build a set of builders for that domain.&amp;nbsp; These builders then enable users to compose &quot;fabrication engines&quot; - we call them models - that produce artifacts in these domain languages.&amp;nbsp; if you change the set of input parameters to a model and regenerate - you get a different instance of the domain specific output object.&amp;nbsp; This produces a kind of runtime automation that enables one to automatically morph the structure of a domain specific object without human intervention.&amp;nbsp; And this enables the automatic customization of code for syndicating apps out to partner sites - which is what the Factory is used for.&lt;/P&gt;
&lt;P&gt;An interesting execrise would be to ultimately provide a tool that would auto-generate collections of builders - based on reading one or more&amp;nbsp;language definition objects.&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0131247/2004/09/17.html#a19</guid>
			<pubDate>Fri, 17 Sep 2004 18:04:53 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=131247&amp;amp;p=19&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0131247%2F2004%2F09%2F17.html%23a19</comments>
			</item>
		<item>
			<title>Turning the Web Inside Out</title>
			<link>http://radio.weblogs.com/0131247/2004/09/09.html#a18</link>
			<description>&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;It used to be that people would visit their favorite web sites using a browser, and they would hop from site to site to do everything from research to e-commerce to news gathering.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Now, however, there&amp;#146;s a new usage pattern emerging: people aren&amp;#146;t visiting sites as much any more.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Instead, they&amp;#146;re letting a new breed of services and applications bring the content of sites to them.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;It&amp;#146;s this inversion, or &amp;#147;turning inside out&amp;#148; of the web that I&amp;#146;m talking about.&lt;?xml:namespace prefix = o ns = &quot;urn:schemas-microsoft-com:office:office&quot; /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;This new usage pattern on the web is signaling a transition from the old model of: &amp;#147;I&amp;#146;ll come to you&amp;#148;, to &amp;#147;you come to me&amp;#148;.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;This is why I use the term &amp;#147;inside out&amp;#148; - it&amp;#146;s as if people are using the web in a way that nobody intended to a few years ago &amp;#150; like wearing your sweatshirt inside out.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Didn&amp;#146;t Madonna do that already?&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;Visiting a bunch of web sites has become too labor intensive for many web users.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;So, an innovative new kind of site has started to crop up that does the &amp;#147;legwork&amp;#148; or aggregating of info from groups of disparate destination sites &amp;#150; like hotels.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Take hotels.com as an example: here&amp;#146;s a site that eliminates the need to visit dozens of hotel destination sites and enter the same information in over and over.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;&amp;#147;Middle man&amp;#148; sites like hotels.com have introduced a huge challenge to the original destination site providers of hotels, airlines, and product manufacturers because those providers now have to suddenly find a new way to &amp;#147;export&amp;#148; or syndicate portions of their own sites into the &amp;#147;middle man&amp;#148; sites, or risk being cut off at the head.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;This phenomenon is called &amp;#147;disintermediation&amp;#148;, and you see it when you go to a site like cheaptickets.com and buy an airfare based totally on price and other mundane factors, but not on the brand name of the airline, or the snaziness of the airlines&amp;#146; site.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;Middle man sites have started a trend of bringing services to the user, rather than forcing the user to hunt around for a set of comparable services, and this trend is just the beginning of a much bigger trend that&amp;#146;s literally turning the web inside out.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;Now consider the Web log, or &amp;#147;blog&amp;#148;.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Blogs are basically online diaries, updated frequently by individuals, and read by groups of friends and colleagues.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Blogs, too, have taken on a life of their own in the last two years, and have become micro destination sites for individuals interested in particular topics.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Now, more than ever, people are visiting blogs as a way of getting aggregated information on specific subjects they&amp;#146;re intimately interested in.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;What&amp;#146;s more, companies have been creating blogs of their key executives as a way to extend their corporate reach. There may even be more people reading Jonathan Schwartz&amp;#146;s (Sun) blog than people visiting Sun&amp;#146;s web site itself (who knows, if not now then maybe in a year from now)!&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;Given the explosive growth of blogs, imagine if blog owners started putting ads for services in their blogs.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Blogs would then become a new level of intermediate web site that would totally eclipse, or disintermediate, the destination sites of today.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;The wild thing is that there are a staggering number of blogs &amp;#150; and that number is growing fast.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;But another emerging technology has come along too - the aggregator.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Aggregators have started to perform the tasks of finding, filtering, sorting, and formatting the information from a whole bunch of blogs.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Aggregators are like personal portals &amp;#150; ultra personal portals, that is.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Think of everyone having an aggregator as being like everyone having a desktop with a browser on it.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;There are going to be potentially billions of aggregator apps out there &amp;#150; a concept that gets Microsoft&amp;#146;s attention.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;In addition, there are aggregator services popping up on the web.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Some examples are del.icio.us, feedster, and technorati.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;According to &lt;SPAN style=&quot;mso-bidi-font-family: Arial&quot;&gt;del.icio.us&amp;#146; own description, &amp;#147;del.icio.us is a social bookmarks manager. It allows you to easily add sites you like to your personal collection of links, to categorize those sites with keywords, and to share your collection not only between your own browsers and machines, but also with others&amp;#148;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;mso-bidi-font-family: Arial&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;SPAN style=&quot;mso-bidi-font-family: Arial&quot;&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;So, what does this all mean?&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;One way to look at it is that the web started out being a powerful &amp;#147;thing&amp;#148; (think noun) to make information available in a connected worldwide way.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Now, however, the web is becoming a powerful &amp;#147;service&amp;#148; (think verb) that gets the right information to the right people at the right time.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;People don&amp;#146;t look for information on the web.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Rather, they let the web find the right information for them.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Just look at the explosive rise of the Google service as an example.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;Now, let your imagination do a fast forward.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Image a totally &amp;#147;inside-out web&amp;#148; where there are no longer &amp;#147;user visited&amp;#148;, &amp;#147;UI type&amp;#148; web sites any more &amp;#150; but instead, billions of aggregators, and billions of information feeds.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;In this world, every user has his or her own powerful aggregator that serves as a gateway, or portal, or presentation layer to the right information gathered from the web at the right time.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Aggregators can also aggregate from other aggregators &amp;#150; creating a fabric of n-tier information transforms.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;The aggregator does everything to provide each user with his or her own personal, filtered, prioritized, and organized view of the world - a view that&amp;#146;s updated in real time.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Think of it as the concept of portal to the absolute extreme.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;What&amp;#146;s different in this world is that the number of aggregators or users (i.e. &amp;#147;sinks&amp;#148;) far dominates the number of originating service providers (i.e. &amp;#147;sources&amp;#148;) that we know of today - by potentially orders of magnitude.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;In this world, if you&amp;#146;re a service provider, you have the huge new challenge of finding a way to get your service plugged into and visible in the billions of aggregators/personal blog/portal sites that will be out there.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;But how do you do this?&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;You need to think about ways of making your currently &amp;#147;stationary&amp;#148; web-based services become &amp;#147;portable&amp;#148;, and then sending them out into the world to get syndicated into millions of other aggregation layers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;Validation of this phenomenon is demonstrated by what Google is doing right now.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Google&amp;#146;s search service is arguably the &amp;#147;mother of all&amp;#148; aggregators today &amp;#150; a 100,000 server &amp;#147;Hal&amp;#148; in the sky.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Imagine the world where Google adds to this &amp;#147;virtual aggregator&amp;#148; a desktop aggregator portion that becomes the portal and presentation layer for whatever a user wants to see in the whole world &amp;#150; tied into the Google server farm in the sky.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Move over Microsoft&amp;#133;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;As Google sees it, the value of the web is not rooted in the connectivity that the web provides, but rather, it&amp;#146;s rooted in the service of prioritizing potential connections that can be made on the web, based on supply and demand.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Google is the ultimate matchmaker, willing to introduce user X to service Y based on the fact that one or both of these parties is willing to pay a fee to get the best match.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;It&amp;#146;s no wonder that Google has moved into the email and blogger space, and has launched an initiative to bring on veteran &amp;#147;desktop software developers&amp;#148; like Adam Bosworth, to build out the &amp;#147;consumer portion&amp;#148; of this mother of all aggregators.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;That&amp;#146;s my opinion.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;In summary, this phenomenon of &amp;#147;turning the web inside out&amp;#148; is forcing service providers to find new ways of syndicating and embedding their services in the form of micro-apps into the millions of other intermediate aggregation layers that are cropping up on the web.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Add to this the fact that mass syndication leads to mass customization, and it&amp;#146;s like fast food.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;If you provide a service to millions of people, you had better make it &amp;#147;Have it Your Way&amp;#148; to quote Burger King&amp;#146;s slogan, and that&amp;#146;s where Bowstreet comes into the picture.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;Bowstreet provides the product (The Factory) that enables service providers to mass customize and syndicate their web-based services into thousands to, who knows, millions of partner sites.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;If the total inversion of the web comes true, then we may be talking about billions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0131247/2004/09/09.html#a18</guid>
			<pubDate>Thu, 09 Sep 2004 19:05:06 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=131247&amp;amp;p=18&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0131247%2F2004%2F09%2F09.html%23a18</comments>
			</item>
		<item>
			<title>Pushing RSS to the Next Level</title>
			<link>http://radio.weblogs.com/0131247/2004/07/08.html#a17</link>
			<description>&lt;P&gt;A lot of people are talking about RSS as being the next big thing on the web.&amp;nbsp; Why?&amp;nbsp; On the surface, the answer seems to be that RSS lets users build their own views of the web, using aggregators, rather than having to visit many sites manually, and doing the aggregation manually.&amp;nbsp; I think there&apos;s more to it than this.&lt;/P&gt;
&lt;P&gt;RSS aggregators are basically just filtering and sorting programs.&amp;nbsp; Google is&amp;nbsp;an example of a&amp;nbsp;filtering and sorting program too.&amp;nbsp; Most RSS aggregators do filtering and sorting based upon the content of the RSS feeds to which they substribe.&amp;nbsp; Some go further, however - like feedster.com - and use another form of data, or metadata, which captures changes to RSS feeds.&amp;nbsp; Feedster uses weblogs.com to find out when RSS feeds change, and this helps it index more efficiently, as well as provide another dimension of filtering based upon change.&lt;/P&gt;
&lt;P&gt;I think that weblogs.com is a primitive form of what I&apos;ve been calling the deltaweb - the web that describes ongoing changes to the web.&amp;nbsp; This is what&apos;s really beyond RSS as we know it today.&amp;nbsp;&amp;nbsp;The RSS of tomorrow will include a&amp;nbsp;formalization of how we characterize changes to things.&lt;/P&gt;
&lt;P&gt;I&apos;ve noticed some cool things going on in the world of &quot;change related&quot; software.&amp;nbsp; &lt;A href=&quot;http://bitconjurer.org/&quot;&gt;Bram&lt;/A&gt;&amp;nbsp; - who wrote BitTorrent - is now working on &lt;A href=&quot;http://codeville.org/&quot;&gt;Codeville&lt;/A&gt; which is all about channeling and integrating change information among P2P nodes.&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0131247/2004/07/08.html#a17</guid>
			<pubDate>Thu, 08 Jul 2004 14:33:14 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=131247&amp;amp;p=17&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0131247%2F2004%2F07%2F08.html%23a17</comments>
			</item>
		<item>
			<title>Searching for &quot;Delta Web&quot; on Feedster vs. Google.</title>
			<link>http://radio.weblogs.com/0131247/2004/03/29.html#a16</link>
			<description>&lt;P&gt;Interesting - I did only two blog posts on the concept of the &quot;Delta Web&quot; last week, and then went to Feedster and Google today&amp;nbsp;to do a search on the words &quot;Delta Web&quot;.&amp;nbsp; Just curious to see what woud happen.&amp;nbsp;I was surprised.&amp;nbsp; On Feedster, my blog entries came up first and second!!!.&amp;nbsp; On Google, a whole bunch of stuff on Delta airlines popped up.&lt;/P&gt;
&lt;P&gt;This tells me a couple of things:&amp;nbsp; 1)&amp;nbsp;Feedster is fast, and 2) Feedster is relevant.&amp;nbsp; Of course, Feedster is limited to rss feeds.&lt;/P&gt;
&lt;P&gt;Here&apos;s the &lt;A href=&quot;http://www.feedster.com/search.php?hl=en&amp;amp;ie=UTF-8&amp;amp;q=delta+web&amp;amp;btnG=Search&amp;amp;sort=relevance&amp;amp;inrss=&amp;amp;inrssid=&quot;&gt;Feedster&lt;/A&gt; link that shows the search results of &quot;Delta Web&quot;.&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0131247/2004/03/29.html#a16</guid>
			<pubDate>Mon, 29 Mar 2004 16:05:49 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=131247&amp;amp;p=16&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0131247%2F2004%2F03%2F29.html%23a16</comments>
			</item>
		<item>
			<title>Delta Web - More thoughts</title>
			<link>http://radio.weblogs.com/0131247/2004/03/26.html#a15</link>
			<description>&lt;P&gt;I was looking at Jeremy Allaire&apos;s proposal for &lt;A href=&quot;http://radio.weblogs.com/0113297/2003/10/01.html&quot;&gt;RSS-Data&lt;/A&gt; last night, and it made me think of a few things about RSS Data, and the Delta Web idea.&amp;nbsp; First, I&apos;d like to think that if people want to put foreign payloads into RSS feeds, then XML namespaces should be enough.&amp;nbsp; You don&apos;t need to force people to use a specific markup - just because there are tools out there that can read this markup.&amp;nbsp; the fact is, at some point an aggregator has to understand the domain specific meaning of a block of data, so the data may as well be encoded in the domain specific format associated with its domain namespace.&amp;nbsp; Plus, isn&apos;t the whole idea behind a namespace to enable a set of XML tags to have a single, universal meaning (rather than a meaning relative to a document)&amp;nbsp;- by way of the uniqueness of the namespace?&amp;nbsp; I thought so...&amp;nbsp; So, if someone wants to add data to an RSS feed that&apos;s outside the scope of RSS, then just use a namespace and be done.&lt;/P&gt;
&lt;P&gt;But this got me to thinking about the Delta Web idea.&amp;nbsp; In the Delta Web, I proposed using two references to identify a change.&amp;nbsp; One was the reference to the context of the change (i.e. an XML document - for example), and the other one was a reference to the changed entity (i.e. an XPath reference to the changed stuff in the doc - for example).&amp;nbsp; This is all well and good, except that if these are references, and there&apos;s no &quot;copy&quot; of the changed content, then it might be hard to find out what the content is if the original content has since changed.&amp;nbsp; That&apos;s a mouthful I know.&lt;/P&gt;
&lt;P&gt;here&apos;s what I mean.&amp;nbsp; If I add an &amp;lt;event&amp;gt; element to my &amp;lt;calendar&amp;gt; XML document, and I create a Delta Web doc that identifies both the contextual ref, and the relative ref - that&apos;s great for right now.&amp;nbsp; This is because an interested party (like my aggregator) could go to the original doc and find the reference to what changed, and read it - if it wanted to.&amp;nbsp; But, now let&apos;s say that two minutes after I add the &amp;lt;event&amp;gt;, I decide to rip it out and replace it with a different &amp;lt;event&amp;gt;.&amp;nbsp; And I&apos;m a good boy and I update my Delta Web doc with&amp;nbsp;two new entries&amp;nbsp;- a delete and an add - and they exist right after the first one.&amp;nbsp; Note - these three entries will all have different dates - so they&apos;re unique in the delta web sense.&lt;/P&gt;
&lt;P&gt;However, if my aggregator reads the delta web doc and goes to the web doc trying to see &quot;what&quot; changed, it won&apos;t be able to find the first &quot;added&quot; entity.&amp;nbsp; This is because the second change obliterated it.&amp;nbsp; Oops.&amp;nbsp; Well, wait a minute.&amp;nbsp; maybe the job of the Delta Web is not to capture the content of the change, but just the metadata about it.&amp;nbsp; That&apos;s the way I&apos;m leaning.&amp;nbsp; Maybe it&apos;s an extension of the Delta Web schema to have tags that might capture copies of the data that changes at each point.&amp;nbsp; Why load up the Delta Web with all that change data if it&apos;s not even the job of the delta web to preserve the content of the change.&lt;/P&gt;
&lt;P&gt;Of course, it would be easy enough to have an optional element in the Delta Web schema that would reference the changed content - or actually be a locally embedded copy of it.&amp;nbsp; that&apos;s easy.&amp;nbsp; I would just want to make it be optional.&amp;nbsp; Also, I would want to be able to have my delta web doc define what changed - rather than necessarily be a complete re-buildable representation of how it changed.&lt;/P&gt;
&lt;P&gt;This kind of ties back into my thinking of the Delta Web as being the first derivative of the web with respect to some parameter(s) like time.&amp;nbsp; The derivitive function is not supposed to be something that enables rebuilding of the original function.&amp;nbsp; To do that in math you need to integrate the derivative function with respect to some boundary conditions.&amp;nbsp; Maybe the concept of &quot;boundary conditions&quot; is analogous to the concept of the data snapshot copies that could be optionally included or referenced by a Delta Web entry.&amp;nbsp; I don&apos;t know.&lt;/P&gt;
&lt;P&gt;Next, I think we need a trial schema for the delta web.&amp;nbsp;&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0131247/2004/03/26.html#a15</guid>
			<pubDate>Fri, 26 Mar 2004 18:07:42 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=131247&amp;amp;p=15&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0131247%2F2004%2F03%2F26.html%23a15</comments>
			</item>
		<item>
			<title>The Delta Web</title>
			<link>http://radio.weblogs.com/0131247/2004/03/25.html#a14</link>
			<description>&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;FONT face=Arial size=2&gt;The web is a giant distributed state machine.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Sometimes, however, I think of the web in kind of a weird way, as just another program running on my pc.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Following this simplistic thought process, I can use the web by entering a string, hitting Enter, and receiving back a page of data.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;In other words &amp;#150; it&amp;#146;s just a simple &amp;#147;function&amp;#148; that performs a task similar to that of a clerk at the post office.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Of course, this way of looking at the web makes it seem trivial, but at the same time, you have to admit, it&amp;#146;s kind of accurate &amp;#150; because that&amp;#146;s the way the web actually looks from your desktop.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;?xml:namespace prefix = o ns = &quot;urn:schemas-microsoft-com:office:office&quot; /&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;FONT face=Arial size=2&gt;So, if the web is just a big &amp;#147;function&amp;#148;, then what&amp;#146;s so interesting about it?&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Well, one thing jumps to mind.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Each time you issue a parameterized request, you have the ability to cause the state of the web function to change internally. For example, 6 months ago, I issued a request to the web that caused it to change its state, indicating that I now had 4 tickets on Delta airlines.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Of course, I was buying plane tickets via the web, and I had just submitted the final form that contained the &amp;#147;OK&amp;#148; information to commit the transaction.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;But looking at this from a super simplistic point of view, I entered a string of characters into the web &amp;#147;function&amp;#148; and hit Enter.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Back came a pile of data, and of course, the change in state that indicated that I now owned 4 tickets.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;FONT face=Arial size=2&gt;The reason I&amp;#146;m making the web out to look like a simple &amp;#147;function&amp;#148; is because it helps me think about things we could do to make this function more useful.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;FONT face=Arial size=2&gt;Enter the idea of the &amp;#147;delta web&amp;#148;.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Think of the delta web as being a kind of &amp;#147;function&amp;#148; as well.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;The delta web&amp;#146;s function is to quantify state changes in the web function.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;What does this mean?&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Well, let&amp;#146;s set the stage as follows, and bear with me.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Let&amp;#146;s call the web function F.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;F takes a parameter called URL, which we&amp;#146;ll call u, and it returns data called d.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;So, when I issue a request to the web, via my browser, what I&amp;#146;m really doing is issuing a call to F(u), and F(u) returns d, so we have d = F(u).&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;That might not sound so good, but what the heck.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;FONT face=Arial size=2&gt;Next, because we said that the web has this interesting characteristic where the state can change over time through regular use, it means that the time parameter &amp;#147;t&amp;#148; has to somehow figure into the function F as well.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;In other words, F is not just a function of u, which would make F stateless.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Since F(u) can be called, and return data d, and possibly change its state internally, and then since F(u) can be called again in the future and return a different d &amp;#150; namely d&amp;#146;, because the state changed, we have to add t to the function F.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;This is how we do it.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;The web function becomes: d = F(u, t).&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;This way, d = F(u, t) can produce one result, whereas d&amp;#146; = F(u, t + i) can produce a different result, simply by varying time.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;The t + i part just means that t is a different time from t + i.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;FONT face=Arial size=2&gt;So, the delta web ends up being a function that represents the first derivative of the web function with respect to one of the variable input parameters: u or t.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Written in pseudo math terms, the delta web is essentially dF/dt or dF/du, where F(u, t) is the function representing the web.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;For now, I&amp;#146;m interested in the rate of change of the web with respect to the parameter time &amp;#150; and hence dF/dt.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;FONT face=Arial size=2&gt;OK &amp;#150; where&amp;#146;s all this going?&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Imagine a function that could track change to the web as a function of time, and put this to use in a positive way.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;This would be useful.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Especially if you could look forward in time and examine units of change in the web, relative to units of change in time.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;This would be like looking at the elevation course map for a bike race and realizing that you&amp;#146;re about to come up onto a monster hill in two miles.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Using this map, you could anticipate the change in course pitch, and prepare by taking a deep breath and concentrating.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;FONT face=Arial size=2&gt;Now, I&amp;#146;m going to really change gears and put this whole conversation into a business context.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Let&amp;#146;s say that an airline has a flight booking service on the web that let&amp;#146;s people buy tickets online.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Let&amp;#146;s say that in two weeks, the airline plans to cut the price of its flights from &lt;?xml:namespace prefix = st1 ns = &quot;urn:schemas-microsoft-com:office:smarttags&quot; /&gt;&lt;st1:City&gt;&lt;st1:place&gt;Boston&lt;/st1:place&gt;&lt;/st1:City&gt; to LA from $1200 to $200.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;The web function in this case is &amp;#147;find a flight&amp;#148;, and it is characterized by a unique URL that feeds the web function.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;In this case, the URL contains information defining the origination city, destination city, and departure date.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;The return of the function is a set of flight numbers, prices, and availability. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;FONT face=Arial size=2&gt;The delta web function for this case would be characterized as &amp;#147;changes to find a flight&amp;#148;.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;The delta web function is driven by the same kind of URL parameter, as in the &amp;#147;find a flight&amp;#148; web function above, in addition to a time parameter that defines the point in time in which you&amp;#146;d like to measure the change to the web function.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;This means that if you gave the delta web function a URL, along with a time t &amp;#150; past, present, or future, then the delta web function would tell you about changes to the web function at any of those points in time. &lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;Using the delta web function, a business that utilizes the web function could adjust the way it uses the web function for points in the future.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;For example, a syndication partner that provides embedded access to the &amp;#147;find a flight&amp;#148; service from its own site, might decide to change the way it handles the return data from the URL, so that it either passes on the price drop to the partner&amp;#146;s end users, or pad the price back up in order to keep a cut of the price drop for itself.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;FONT face=Arial size=2&gt;The delta web function could also be used to track the more simplistic kinds of changes to the web function that RSS is used to track changes to weblogs.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;The delta web function would have general purpose syntax for defining context of change, characteristic of change, and point of time of change.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;For example, if you added an entry to your weblog today, and wanted to update the delta web at the same time, you&amp;#146;d create a unit of data that combined the context of the change (i.e. the URL to the blog), the characteristic of the change to the blog (i.e. the relative URL to the new entry, and the type of operation - namely &amp;#147;add&amp;#148;), and the point in time of the change.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;With this new piece of data, you&amp;#146;d update the delta web so that one could issue a query to the delta web in the form of URL and date, and get back the change data describing the change relative to that URL and point in time.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;FONT face=Arial size=2&gt;Since the web function F is a giant function that lets you specify many billions of sub-functions in the form of URL&amp;#146;s, the delta web could simply be implemented as just a set of sub-functions within the giant, already existing function F.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;In other words, people could create their own delta web sites that would be hosted by the web.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;You don&amp;#146;t need a separate web for dF/dt that takes URL and time t.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Instead, you could have web sites that would allow input parameters in the form of URL and time t, and they&amp;#146;d produce delta web formatted markup documents.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;FONT face=Arial size=2&gt;The next thing to consider is the markup for delta web data.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;A simple approach would be to create an XML schema for delta web data.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;This could then ride inside payloads such as SOAP, RSS, whatever.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;FONT face=Arial size=2&gt;Moving beyond the issue of syntax for delta web data, what&amp;#146;s really cool is imagining new kinds of software that would consume and produce delta web data.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Let&amp;#146;s take the case of web based calendars.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Say that I decide to post a set of URLs on the web, whereby each one returns an XML-based event schedule for a specific month.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Let&amp;#146;s also say that I provide information that tracks changes to my scheduled events, by providing a delta web document that identifies changes at different points in time.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;FONT face=Arial size=2&gt;Given this delta web data, one could write an aggregator that would track changes to calendars, and use this &amp;#147;delta&amp;#148; information to either update someone else&amp;#146;s calendar, or produce a new &amp;#147;higher level&amp;#148; delta web document.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Here&amp;#146;s where it gets interesting.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;An aggregator of the delta web would be able to do things like provide its own summarization delta web documents for other delta web aggregators.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;An example would be a delta web aggregator that would look at all the delta web docs for a set of employee calendars, update a group level calendar, and build a coarser grained delta web document representing changes to the group&amp;#146;s calendar.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;If all the employees became busy at various times next week, the group level delta web aggregator could update &amp;#147;blackout periods&amp;#148; on the group level calendar, and update the delta web doc for the group calendar.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;FONT face=Arial size=2&gt;Another freaky thing you could imagine is delta web docs that track changes to other delta web docs.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;These higher order delta web docs would be representative of &amp;#147;second derivatives&amp;#148; of the web function.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;You could also imagine delta webs that measure perturbations &amp;#150; or changes to the web function &amp;#150; as a function of the web&amp;#146;s URL parameter &amp;#150; rather than time.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;A delta web could measure the change in the web&amp;#146;s response function when a URL&amp;#146;s parameters were changed.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;FONT face=Arial size=2&gt;One of the next steps is to define a simple markup for the delta web.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;As I see it, there are 4 key elements that define a change:&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;1) the pattern that defines the context of the change, 2)&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;the pattern that defines the boundary of the change relative to the context, 3) the nature of the change (add or delete), and 4) the point in time of the change.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Following is a brief discourse on each.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt 83.25pt; TEXT-INDENT: -47.25pt; mso-list: l0 level1 lfo1; tab-stops: list 83.25pt&quot;&gt;&lt;SPAN style=&quot;mso-fareast-font-family: Arial; mso-bidi-font-family: Arial&quot;&gt;&lt;SPAN style=&quot;mso-list: Ignore&quot;&gt;&lt;FONT face=Arial size=2&gt;1)&lt;/FONT&gt;&lt;SPAN style=&quot;FONT: 7pt &apos;Times New Roman&apos;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Arial size=2&gt;Pattern defining context of change &amp;#150; this is a URL.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;It&amp;#146;s a pattern, used by the web function to define a precise sub function.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;In simple web terms, it could be a URL to an XML document.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt 83.25pt; TEXT-INDENT: -47.25pt; mso-list: l0 level1 lfo1; tab-stops: list 83.25pt&quot;&gt;&lt;SPAN style=&quot;mso-fareast-font-family: Arial; mso-bidi-font-family: Arial&quot;&gt;&lt;SPAN style=&quot;mso-list: Ignore&quot;&gt;&lt;FONT face=Arial size=2&gt;2)&lt;/FONT&gt;&lt;SPAN style=&quot;FONT: 7pt &apos;Times New Roman&apos;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Arial size=2&gt;Pattern that defines the boundary of the change &amp;#150; this is a relative URL.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;In the simple XML document case, it could be an XPath reference to an element in the XML document.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;The XPath ref defines the beginning and ending of the change &amp;#150; namely the start and end element marker locations.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt 83.25pt; TEXT-INDENT: -47.25pt; mso-list: l0 level1 lfo1; tab-stops: list 83.25pt&quot;&gt;&lt;SPAN style=&quot;mso-fareast-font-family: Arial; mso-bidi-font-family: Arial&quot;&gt;&lt;SPAN style=&quot;mso-list: Ignore&quot;&gt;&lt;FONT face=Arial size=2&gt;3)&lt;/FONT&gt;&lt;SPAN style=&quot;FONT: 7pt &apos;Times New Roman&apos;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Arial size=2&gt;The nature of the change &amp;#150; this is simple &amp;#150; add and remove.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;In the case of add, the meaning is that we added the data matching the pattern defined in 2) above.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;In the case of remove, it means that we removed the data matching the pattern defined in 2) above.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt 83.25pt; TEXT-INDENT: -47.25pt; mso-list: l0 level1 lfo1; tab-stops: list 83.25pt&quot;&gt;&lt;SPAN style=&quot;mso-fareast-font-family: Arial; mso-bidi-font-family: Arial&quot;&gt;&lt;SPAN style=&quot;mso-list: Ignore&quot;&gt;&lt;FONT face=Arial size=2&gt;4)&lt;/FONT&gt;&lt;SPAN style=&quot;FONT: 7pt &apos;Times New Roman&apos;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Arial size=2&gt;Point of time of the change &amp;#150; this is the date when the change takes place.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;FONT face=Arial size=2&gt;More to come soon!!!&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;FONT face=Arial size=2&gt;Ps &amp;#150; I was a physics major in college &amp;#150; which might provide a bizarre explanation for the really whacko way I conceptualize the web.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style=&quot;MARGIN: 0in 0in 0pt; TEXT-INDENT: 0.5in&quot;&gt;&lt;o:p&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0131247/2004/03/25.html#a14</guid>
			<pubDate>Thu, 25 Mar 2004 21:06:21 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=131247&amp;amp;p=14&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0131247%2F2004%2F03%2F25.html%23a14</comments>
			</item>
		<item>
			<title>RSS extension for Eventing</title>
			<link>http://radio.weblogs.com/0131247/</link>
			<description>&lt;P&gt;There&apos;s a new extension to RSS for eventing called &lt;A href=&quot;http://www.esfstandard.org/&quot;&gt;ESF&lt;/A&gt; .&amp;nbsp;&amp;nbsp;We could use this eventing mechanism to propagate information on changes to web services.&amp;nbsp; Check &lt;A href=&quot;http://blogs.law.harvard.edu/cesarbrea/&quot;&gt;Cesar&apos;s&lt;/A&gt;&amp;nbsp; blog for his angle on it...&lt;/P&gt;</description>
			<guid>http://radio.weblogs.com/0131247/2004/03/23.html#a13</guid>
			<pubDate>Tue, 23 Mar 2004 13:20:01 GMT</pubDate>
			<comments>http://radiocomments2.userland.com/comments?u=131247&amp;amp;p=13&amp;amp;link=http%3A%2F%2Fradio.weblogs.com%2F0131247%2F2004%2F03%2F23.html%23a13</comments>
			</item>
		</channel>
	</rss>
