<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
	>
<channel>
	<title>Comments on: The Anatomy of Interoperability</title>
	<atom:link href="http://www.robweir.com/blog/2007/02/anatomy-of-interoperability.html/feed" rel="self" type="application/rss+xml" />
	<link>http://www.robweir.com/blog/2007/02/anatomy-of-interoperability.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=anatomy-of-interoperability</link>
	<description>Thinking the unthinkable, pondering the imponderable, effing the ineffable and scruting the inscrutable</description>
	<lastBuildDate>Tue, 07 Feb 2012 11:20:47 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: An Invitation: ODF Interoperability Workshop</title>
		<link>http://www.robweir.com/blog/2007/02/anatomy-of-interoperability.html#comment-2637</link>
		<dc:creator>An Invitation: ODF Interoperability Workshop</dc:creator>
		<pubDate>Wed, 06 Jan 2010 02:04:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.robweir.com/blog/2007/02/the-anatomy-of-interoperability.html#comment-2637</guid>
		<description>[...] ways of greater technical coordination, especially in the area of interoperability. I&#8217;ve written about and presented on this topic before. Now is the time for action, and I&#8217;m extremely [...]</description>
		<content:encoded><![CDATA[<p>[...] ways of greater technical coordination, especially in the area of interoperability. I&#8217;ve written about and presented on this topic before. Now is the time for action, and I&#8217;m extremely [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anonymous</title>
		<link>http://www.robweir.com/blog/2007/02/anatomy-of-interoperability.html#comment-634</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Fri, 23 Mar 2007 09:44:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.robweir.com/blog/2007/02/the-anatomy-of-interoperability.html#comment-634</guid>
		<description>If you would like to discover the &lt;a HREF=&quot;http://www.w3.org/QA/TheMatrix&quot; REL=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;Test Suites and Validators at W3C&lt;/a&gt;. This is a table with the full list of specifications and their related test suites, validators, implementations reports and conformance sections.</description>
		<content:encoded><![CDATA[<p>If you would like to discover the <a HREF="http://www.w3.org/QA/TheMatrix" REL="nofollow" rel="nofollow">Test Suites and Validators at W3C</a>. This is a table with the full list of specifications and their related test suites, validators, implementations reports and conformance sections.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anonymous</title>
		<link>http://www.robweir.com/blog/2007/02/anatomy-of-interoperability.html#comment-526</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Wed, 21 Feb 2007 16:08:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.robweir.com/blog/2007/02/the-anatomy-of-interoperability.html#comment-526</guid>
		<description>An insightful document.  One addition would be consider the impact of assistive technologies. Your example of an editor using the paradigm of a printer as the layout or using the web is a good one. If the design point also has to include screen readers, the  spec really needs to be tight so that logical order is preserved as well.</description>
		<content:encoded><![CDATA[<p>An insightful document.  One addition would be consider the impact of assistive technologies. Your example of an editor using the paradigm of a printer as the layout or using the web is a good one. If the design point also has to include screen readers, the  spec really needs to be tight so that logical order is preserved as well.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rob</title>
		<link>http://www.robweir.com/blog/2007/02/anatomy-of-interoperability.html#comment-525</link>
		<dc:creator>Rob</dc:creator>
		<pubDate>Tue, 20 Feb 2007 18:10:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.robweir.com/blog/2007/02/the-anatomy-of-interoperability.html#comment-525</guid>
		<description>Steve,&lt;br/&gt;&lt;br/&gt;I have seen some conformance work in OASIS, though as a separate TC.  For example there was an XSLT Conformance TC a few years ago that developed an XSLT/XPath test suite.  And the W3C does have its online validators, which is great.&lt;br/&gt;&lt;br/&gt;A test suite is a daunting task.  Some work was started at the University of Central Florida and &lt;a HREF=&quot;http://testsuite.opendocumentfellowship.org/&quot; REL=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;picked up&lt;/a&gt; by the OpenDocument Fellowship but it has only a few hundred test cases.  ODF, a 700 page specification probably has on the order of 5 testable statements per page, each one of which could require 4 test cases to test the main and edge conditions, positive and negative tests.  So we&#039;re talking 14,000 test cases.  Even if I&#039;m off by a factor of 2 or 4, this is clearly a large undertaking.  Project this out to OOXML&#039;s 6,000 pages and you would need 120,000 test cases.&lt;br/&gt;&lt;br/&gt;One approach to taming this complexity is what we&#039;re doing on the ODF Formula Subcommittee.  As we define spreadsheet functions, we&#039;re putting in plenty of test cases, 3, 4 or more per function.  This is done in a structured way, with a special named style in the document.  We then have a tool that post-processes the ODF XML of the specification, extracts the formula test cases and creates an ODF spreadsheet document that executes each one of the test cases.  So we in essence have a self-testing specification, at least in this area.&lt;br/&gt;&lt;br/&gt;Hi Ben,&lt;br/&gt;&lt;br/&gt;The ODF specification explicitly handles the case of what to do when you encounter an extension that you don&#039;t understand.  You simply ignore it.  OOXML has another way of handling this.  They allow the application writing the document to encode a feature multiple ways.  For example, you could describe a new bullet list feature using a markup extension understood only by your application and then also provide an alternative rendering in standard OOXML 1.0 to be used if the extension is not understood. The application reading the document processes this section like it was a switch/case/default statement in C. This is a clever approach and probably worth doing something similar in ODF.&lt;br/&gt;&lt;br/&gt;For the case of functional subsets, I still think profiles are the way to go.  This pushes the decision making of how to degrade gracefully into the application doing the writing rather than the one doing the reading.  Of course you don&#039;t always know in advance whether you are targeting a partial implementation, but when you do, that will give you the best results.&lt;br/&gt;&lt;br/&gt;Anonymous #1, you raise a good point.  I&#039;d note that a test suite or a certification program is as much a tool for the consumer or evaluator/purchaser of tools as it is to the vendor.  &lt;br/&gt;&lt;br/&gt;Anonymous #2, thanks.  What you describe is one of my bigger complaints against OOXML.  They have many duplicative ways of describing the same thing, due to their legacy support.  So graphics can be done in DrawingML or in VML.  A document can contain section described in WordProcessingML, or HTML or RTF or legacy versions of WordProcessingML.  Sure, some of this is deprecated or oprional, but a consumer, needs to be able to handle anything.  Even the most trivial of consumers, a tool to extract text for indexing for a search engine will need to handle these many alternatives.&lt;br/&gt;&lt;br/&gt;With XML we at least have a good set of parsers that hide us from the complexities of the lexical space and give us a nice clean InfoSet.  But we don&#039;t yet have similar levels of abstraction for ODF or OOXML.  Of course there is the ODF Toolkit that Sun is starting up at OpenOffice.org.  That is another factor that can increase interoperability:  wrap the complexity of the format in a tool. If the tool is coded to handle the full complexity of the format and to emit only valid ODF, then those who use the tool will experience enhanced interoperability compared to those who write code from scratch.</description>
		<content:encoded><![CDATA[<p>Steve,</p>
<p>I have seen some conformance work in OASIS, though as a separate TC.  For example there was an XSLT Conformance TC a few years ago that developed an XSLT/XPath test suite.  And the W3C does have its online validators, which is great.</p>
<p>A test suite is a daunting task.  Some work was started at the University of Central Florida and <a HREF="http://testsuite.opendocumentfellowship.org/" REL="nofollow" rel="nofollow">picked up</a> by the OpenDocument Fellowship but it has only a few hundred test cases.  ODF, a 700 page specification probably has on the order of 5 testable statements per page, each one of which could require 4 test cases to test the main and edge conditions, positive and negative tests.  So we&#8217;re talking 14,000 test cases.  Even if I&#8217;m off by a factor of 2 or 4, this is clearly a large undertaking.  Project this out to OOXML&#8217;s 6,000 pages and you would need 120,000 test cases.</p>
<p>One approach to taming this complexity is what we&#8217;re doing on the ODF Formula Subcommittee.  As we define spreadsheet functions, we&#8217;re putting in plenty of test cases, 3, 4 or more per function.  This is done in a structured way, with a special named style in the document.  We then have a tool that post-processes the ODF XML of the specification, extracts the formula test cases and creates an ODF spreadsheet document that executes each one of the test cases.  So we in essence have a self-testing specification, at least in this area.</p>
<p>Hi Ben,</p>
<p>The ODF specification explicitly handles the case of what to do when you encounter an extension that you don&#8217;t understand.  You simply ignore it.  OOXML has another way of handling this.  They allow the application writing the document to encode a feature multiple ways.  For example, you could describe a new bullet list feature using a markup extension understood only by your application and then also provide an alternative rendering in standard OOXML 1.0 to be used if the extension is not understood. The application reading the document processes this section like it was a switch/case/default statement in C. This is a clever approach and probably worth doing something similar in ODF.</p>
<p>For the case of functional subsets, I still think profiles are the way to go.  This pushes the decision making of how to degrade gracefully into the application doing the writing rather than the one doing the reading.  Of course you don&#8217;t always know in advance whether you are targeting a partial implementation, but when you do, that will give you the best results.</p>
<p>Anonymous #1, you raise a good point.  I&#8217;d note that a test suite or a certification program is as much a tool for the consumer or evaluator/purchaser of tools as it is to the vendor.  </p>
<p>Anonymous #2, thanks.  What you describe is one of my bigger complaints against OOXML.  They have many duplicative ways of describing the same thing, due to their legacy support.  So graphics can be done in DrawingML or in VML.  A document can contain section described in WordProcessingML, or HTML or RTF or legacy versions of WordProcessingML.  Sure, some of this is deprecated or oprional, but a consumer, needs to be able to handle anything.  Even the most trivial of consumers, a tool to extract text for indexing for a search engine will need to handle these many alternatives.</p>
<p>With XML we at least have a good set of parsers that hide us from the complexities of the lexical space and give us a nice clean InfoSet.  But we don&#8217;t yet have similar levels of abstraction for ODF or OOXML.  Of course there is the ODF Toolkit that Sun is starting up at OpenOffice.org.  That is another factor that can increase interoperability:  wrap the complexity of the format in a tool. If the tool is coded to handle the full complexity of the format and to emit only valid ODF, then those who use the tool will experience enhanced interoperability compared to those who write code from scratch.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anonymous</title>
		<link>http://www.robweir.com/blog/2007/02/anatomy-of-interoperability.html#comment-524</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Tue, 20 Feb 2007 14:59:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.robweir.com/blog/2007/02/the-anatomy-of-interoperability.html#comment-524</guid>
		<description>Thanks, that was probably the best post I&#039;ve read from you yet. I&#039;d like to add a few personal comments.&lt;br/&gt;&lt;br/&gt;One of the issues in dealing with a format is the generator-consumer relationship. The generator is basically free to choose the subset of features from a specification that best suites its needs. The consumer on the other hand, is typically expected to handle input from any generator. This requires handling every aspect of the specification correctly.&lt;br/&gt;&lt;br/&gt;An example might be the choice of encoding of an XML file. Let&#039;s leave alone the way you&#039;re supposed to detect encodings given that the encoding is encoded in that encoding :). A generator could simply choose an encoding of convenience. The consumer must handle any potential encoding. Given the broad set of possible choices, the consumer ends up having to pull in support for a broad array of encodings.&lt;br/&gt;&lt;br/&gt;I guess what I&#039;m trying to say is that the freedom of choice for the generator comes at a significant cost to the consumer.&lt;br/&gt;&lt;br/&gt;This is a pervasive theme for XML. An XML consumer needs to deal with dozens of oddities in the XML specification. Reserved character handling, the issue of whitespace significance, schemas, binary data nonsupport, etc. In the end, consumers end up pulling monster libraries and then have to add custom logic on top just to read the format. Sometimes.</description>
		<content:encoded><![CDATA[<p>Thanks, that was probably the best post I&#8217;ve read from you yet. I&#8217;d like to add a few personal comments.</p>
<p>One of the issues in dealing with a format is the generator-consumer relationship. The generator is basically free to choose the subset of features from a specification that best suites its needs. The consumer on the other hand, is typically expected to handle input from any generator. This requires handling every aspect of the specification correctly.</p>
<p>An example might be the choice of encoding of an XML file. Let&#8217;s leave alone the way you&#8217;re supposed to detect encodings given that the encoding is encoded in that encoding :). A generator could simply choose an encoding of convenience. The consumer must handle any potential encoding. Given the broad set of possible choices, the consumer ends up having to pull in support for a broad array of encodings.</p>
<p>I guess what I&#8217;m trying to say is that the freedom of choice for the generator comes at a significant cost to the consumer.</p>
<p>This is a pervasive theme for XML. An XML consumer needs to deal with dozens of oddities in the XML specification. Reserved character handling, the issue of whitespace significance, schemas, binary data nonsupport, etc. In the end, consumers end up pulling monster libraries and then have to add custom logic on top just to read the format. Sometimes.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anonymous</title>
		<link>http://www.robweir.com/blog/2007/02/anatomy-of-interoperability.html#comment-523</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Tue, 20 Feb 2007 14:03:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.robweir.com/blog/2007/02/the-anatomy-of-interoperability.html#comment-523</guid>
		<description>There is a big risk that if for instance Micrsoft is forced in the next few years to support ODF that they will create an independant implementation that is standardsconform but not interoperable with other implementation. &lt;br/&gt;&lt;br/&gt;The ODF spec is very open to multiple interpreting of it parts and thing like the &quot;office-settings&quot; and the extensibility allow for a wide variety in ODF files. &lt;br/&gt;I it very difficult to get agreement on a set op interoperability guidelines and consent about testsets if large parties will not agree to those and they are not a formal part of the standard specifications.&lt;br/&gt;&lt;br/&gt;It is very well possible that in the a year or two an enourmous amount ODF files will be created using plugins for MS Office. Mayby even more then with OOo. As MS is harresed severly over ODF they might not be persuaded very easily to commit to interoperability. Showing the poor interoperability that the ODF spec allows would confirm why they could not use it as their Office format.</description>
		<content:encoded><![CDATA[<p>There is a big risk that if for instance Micrsoft is forced in the next few years to support ODF that they will create an independant implementation that is standardsconform but not interoperable with other implementation. </p>
<p>The ODF spec is very open to multiple interpreting of it parts and thing like the &#8220;office-settings&#8221; and the extensibility allow for a wide variety in ODF files. <br />I it very difficult to get agreement on a set op interoperability guidelines and consent about testsets if large parties will not agree to those and they are not a formal part of the standard specifications.</p>
<p>It is very well possible that in the a year or two an enourmous amount ODF files will be created using plugins for MS Office. Mayby even more then with OOo. As MS is harresed severly over ODF they might not be persuaded very easily to commit to interoperability. Showing the poor interoperability that the ODF spec allows would confirm why they could not use it as their Office format.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ben Langhinrichs</title>
		<link>http://www.robweir.com/blog/2007/02/anatomy-of-interoperability.html#comment-522</link>
		<dc:creator>Ben Langhinrichs</dc:creator>
		<pubDate>Tue, 20 Feb 2007 13:50:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.robweir.com/blog/2007/02/the-anatomy-of-interoperability.html#comment-522</guid>
		<description>I think you have done a pretty good job of laying out the issues.  One area that might be better fleshed out would be around the areas of functional subsets and supersets.  A major issue with interoperability is whether functionality degrades gracefully when a function/method/tag/feature is encountered which is either in the standard but not implemented in this instance or extends the standard and is not in this implementation.&lt;br/&gt;&lt;br/&gt;The key here is that if the implementation degrades gracefully, and even better if the standard defines a way for the implementation to degrade gracefully, interoperability is well served.  Take HTML as an example.  If an unknown tag is excountered, should the implmentation fail, ignore the tag and everything in it, ignore the tag but not child tags within it?  Those are very important issues with a standard and extensions beyond the standard, and there are ways to define how both subsets and supersets should be handled.</description>
		<content:encoded><![CDATA[<p>I think you have done a pretty good job of laying out the issues.  One area that might be better fleshed out would be around the areas of functional subsets and supersets.  A major issue with interoperability is whether functionality degrades gracefully when a function/method/tag/feature is encountered which is either in the standard but not implemented in this instance or extends the standard and is not in this implementation.</p>
<p>The key here is that if the implementation degrades gracefully, and even better if the standard defines a way for the implementation to degrade gracefully, interoperability is well served.  Take HTML as an example.  If an unknown tag is excountered, should the implmentation fail, ignore the tag and everything in it, ignore the tag but not child tags within it?  Those are very important issues with a standard and extensions beyond the standard, and there are ways to define how both subsets and supersets should be handled.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: steve_l</title>
		<link>http://www.robweir.com/blog/2007/02/anatomy-of-interoperability.html#comment-521</link>
		<dc:creator>steve_l</dc:creator>
		<pubDate>Tue, 20 Feb 2007 11:03:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.robweir.com/blog/2007/02/the-anatomy-of-interoperability.html#comment-521</guid>
		<description>I work in web related specs, and its really hard to get things to work together. Interop is tricky. But without it, you have nothing.&lt;br/&gt;&lt;br/&gt;1. you can have a formal spec written in a formal language like Z, this should give you a rigorous spec without the need to implement all the code. But it is very hard to enumerate all possible failure modes, as that is so implementation specific.&lt;br/&gt;&lt;br/&gt;2. test suites. First. I have found incredible resistance to test-driven development in the OASIS and W3C groups, which I think is partially driven by the fact that many of the people who participate havent coded for a while, and are not current with modern test-driven processes. There is also something about a standards body, where &lt;a HREF=&quot;http://www.waterfall2006.com/loughran.html&quot; REL=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;&lt;br/&gt;the timely 1.0 bit of paper&lt;/a&gt; is deemed important, and the implementation an afterthought.&lt;br/&gt;&lt;br/&gt;A big issue here is politics. There was a lot of pressure to ship ODF in a timely way, and now there is even more pressure from MS to catch up. But without test suites, there is no formal way to verify compliant implementations of either spec. &lt;br/&gt;&lt;br/&gt;There is another way to do interop: the open source way. You dont need multiple implementations -you have an implementation that everyone uses. The UC Berkeley TCP stack is the best example of this. For a long time it was the TCP/IP specification.</description>
		<content:encoded><![CDATA[<p>I work in web related specs, and its really hard to get things to work together. Interop is tricky. But without it, you have nothing.</p>
<p>1. you can have a formal spec written in a formal language like Z, this should give you a rigorous spec without the need to implement all the code. But it is very hard to enumerate all possible failure modes, as that is so implementation specific.</p>
<p>2. test suites. First. I have found incredible resistance to test-driven development in the OASIS and W3C groups, which I think is partially driven by the fact that many of the people who participate havent coded for a while, and are not current with modern test-driven processes. There is also something about a standards body, where <a HREF="http://www.waterfall2006.com/loughran.html" REL="nofollow" rel="nofollow"><br />the timely 1.0 bit of paper</a> is deemed important, and the implementation an afterthought.</p>
<p>A big issue here is politics. There was a lot of pressure to ship ODF in a timely way, and now there is even more pressure from MS to catch up. But without test suites, there is no formal way to verify compliant implementations of either spec. </p>
<p>There is another way to do interop: the open source way. You dont need multiple implementations -you have an implementation that everyone uses. The UC Berkeley TCP stack is the best example of this. For a long time it was the TCP/IP specification.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.513 seconds -->

