W3C Opens Public Discussion Forum on US Patent 5,838,906 and Eolas v. Microsoft.
Hmmm, tricky one this. The patent appears to have been filed in 1994 with sample code illustrating modification of the NCSA Mosaic browser, the patent specifically illustrates the introduction of the EMBED tag (without trawling through the back archives, the EMBED tag was probably not part of the W3C specs at this time). A fundamental question with this patent is can you patent the introduction of any tag that does something "new", or is the patent logically invalid because the processing of all tags is logically the same; the parser encounters a tag a calls the relevant code via the relevant interfaces to render or otherwise process the contents of the tag. Many operating systems support the concept of dynamically loadable code modules (e.g. Windows DLL), in writing a browser one might reasonably implement the processing of each and every tag in different loadable modules; the 'wiring' of the correct module to load may be hard coded or may be determined from the tag contents.
This patent seems to claim: The present invention provides a method for running embedded program objects in a computer network environment. The particular module to load is determined via a mime type attribute on the tag. So, is the fundamental claim the ability to load different code dependent upon the attributes of the tag - this would imply that the script tag with a language attribute is also in violation of the patent (but the patent seems to include interaction with the user as a requirement, does script interact)? It would seem that this is the fundamental claim, otherwise, since all content is rendered via computer code, and dynamically loadable modules for tags are a reasonable architectural decision, all browser tags are covered by the patent, or at the least all extension tags are covered by the patent which blows XHTML, XFORMS etc etc out of the water.
Or look at the patent another way - it specifically talks about program objects and further executable application. One reading might be that dynamically loadable modules that reside in the same process space (ActiveX controls) escape the patent but that dynamically loadable modules residing in a separate process space do not (Java applets, .NET based controls etc). The title of the patent is "Distributed hypermedia method for automatically invoking external application..." - all depends upon what you mean by external.
Another interesting part of the patent is this:
Other existing approaches to embedding interactive program objects in documents include the Object Linking and Embedding (OLE) facility in Microsoft Windows, by Microsoft Corp., and OpenDoc, by Apple Computer, Inc. At least one shortcoming of these approaches is that neither is capable of allowing a user to access embedded interactive program objects in distributed hypermedia documents over networks.
This is interesting because it states OLE can't do what they are claiming for an invention (otherwise it would be prior art) and yet ActiveX controls were once named OLEControls (!), OLE is merely a set of (COM) interfaces and the whole of IE is built on COM interfaces. MS defined a whole bunch of new OLE interfaces to do this - to make life easier - its an interesting question as to whether the OLE interfaces that existed in 1994 could have had code added (without changing the interface) to enable say Word to work over HTTP (i.e. treat http as a file system). What is the definition of hypermedia they are relying upon? What do they mean 'over networks'?
If we fall back on the patent claims that the EMBED and similar tags (e.g. OBJECT) that dynamically determine user interaction code to execute are covered by the patent then the route round would seem to be an alternative mechanism for determining the code to execute and that this is sufficiently novel or has prior art that it could either itself be patented or is prior to 1994 so escapes the Eolas patent. It is unclear whether the css behavior attribute is covered by the patent - it is one step removed from the tag attribute, does that count as clear water. Something that has been going on for years and years and years is customisation of application behaviour by some sort of parameter file - one could introduce a new meta tag or some such that contains parameters such as when you see this type of tag do this - coupled with namespaces this would seem to be clear water (one could argue that an external css file is a parameter file, so the behavior attribute is OK). Applications that host the web browser control and inform it that when such and such a namespace is seen on a tag, call me would also seem to be clear of the patent (e.g. Zeepe).