XLink: Who Cares?
The question "who cares?" is usually a rhetorical question -- not a query for information, but a statement in question form that expresses something declarative. This rhetorical question usually means "I don't care and doubt if anyone does." When I say "XLink: who cares?", however, I don't mean it rhetorically. I really want to know: who out there still cares about XLink?
I did care, ever since I first heard about the work on "XML Part 2: Linking," as it was called at the announcement of XML's existence at SGML '96. (XSL, before XSLT was split away from XSL-FO, was Part 3). I got excited at the concept of linking that was more powerful than HTML's but easier to understand than HyTime's. I looked forward to the creation of out-of-line links that connected two, three, or more resources into a single link without requiring write access to those resources. I saw how the ability to define and assign link types would ease the end user's difficulty in navigating the growing amount of connected information on the Web. I thrilled to the talk of linkbases becoming a new category of information product to buy and sell, creating new information by making intelligent connections between existing information.
XLink is the only XML-related W3C specification that took over four years to get from first Working Draft to Recommendation status. Now that it's been a stable, finished spec for eight months, we're still seeing very little activity. So what's out there? Who cares about XLink?
Current Products and Projects
The W3C's XML Linking Implementations page, although it was last updated in December of 2000, still lists nearly all of the active XLink implementations out there -- and it only has seven entries.
The chart's columns show the basic features to look for in an XLink implementation. The first two columns list the two categories of links: simple links, which associate a single local resource to a single remote resource, and extended links, which can link multiple resources, all of which may be external to the document containing the link markup. This ability to provide "out-of-line" links, or links between arbitrary resources on the Web without requiring write access to those resources, was one of the most exciting promised features of XLink; the seven rows of the chart have two "yes" entries in this column, one "partial," one "N/A," one blank, and two "no" entries.
The remaining columns of the chart mostly describe various possible link semantics: whether each software project can implement the new/replace/embed values of the xlink:show attribute and the "onLoad" value of the xlink:actuate attribute (see Fabio Arciniegas's XLink Reference or a piece that I did for background on these two attributes), as well as columns to indicate support for linking of third-party resources and support for linkbases.
The only project with more than three "yes" entries in the table's eight columns is Fujitsu's XLiP, the "XLink Processor." Its XLink engine advertises support for XLink simple and extended links, including support for locator, resource, and arc elements. The engine itself isn't available, but Fujitsu offers two demos that you can download that use the engine. With the older demo (last modified September 5, 2000, and only supporting the Candidate Recommendation version of XLink), a Java-based browser lets you open up included sample files and display them in a tree. It displays tree nodes that can serve as the starting resource in an XLink traversal in red; selecting them and clicking the "Start Traversal" button either jumps the cursor to the appropriate node or displays a dialog box that offers a choice of actuate actions.
The other demo, made available last December, is a server-side XLink application requiring the Tomcat web server and some additional Java libraries to run. A web page of screenshots show how it displays XBRL balance sheets and lets you follow XLink-based links on balance sheet entries.
A team at Fujitsu continues to work on XLiP but have no plans to release it outside of Japan, so we can't count on it to contribute much to XLink's popularity in the rest of the world.
xlinkit and RDDL
xlinkit, according to its home page, is a "lightweight application service that provides rule-based link generation and checks the consistency of distributed documents, databases and web content." It evolved out of research on distributed software engineering at University College, London, and the transition from university research project to commercial software offering is currently underway. xlinkit evaluates a set of distributed resources such as XML documents and databases against a set of user-specified rules and generates a set of XLink links that identify consistent and inconsistent data relationships according to those rules. xlinkit doesn't use any XLink semantics, so the task of identifying sets of resources whose data are inconsistent according to a set of defined rules could probably be done just as well using any markup that collected URLs into groups and added additional information to each group -- for example, RDF.
|What's your viewpoint on XLink? Will its time come, or should it be left in the past? Share your opinions in our forum.|
|Post your comments|
The xlinkit folks also have a free XLink extended link processor called XTooX that reads a document with extended links, reads in any resources referenced by those links, and creates new versions of those resources with the links incorporated into them.
RDDL, an effort to put something usable at the address referenced by a namespace URL, uses XLink syntax to specify the relationship between the URL and other resources. (See RDDL Me This: What Does a Namespace URL Locate? by Elliotte Rusty Harold for a good introduction.) RDDL is a specification, not a product or a program; like xlinkit it uses XLink to identify resource relationships. It goes beyond xlinkit's use of XLink (in fact, beyond any project's use) by using the xlink:role and xlink:arcrole attributes to describe the nature and purpose of the related resources. This use of XLink semantics plants RDDL a little more firmly in XLink territory than xlinkit. In its own words the RDDL spec "has no official standing and has not been considered nor approved by any organization," but as a well thought-out approach to a real problem that uses XLink to address that problem, it's a nice example of XLink use. Apart from xlinkit, it's a pretty lonely example.
The currently available release of Mozilla, the open source basis for recent releases of Netscape Navigator, implements simple links with xlink:show value of "new" or "replace" but not "embed" and an xlink:actuate value of "onLoad" or "onRequest". You can see this support in Netscape Navigator 6.2 as well if you take either browser to a test page that I put together. Mozilla and Navigator have no support for extended links, and none seems to be planned.
Neither Internet Explorer 6.0 nor Opera 6.01 have any of the simple XLink support shown by Mozilla. (It is possible to impose some XLink simple link support on Opera using undocumented CSS tricks described by Simon St. Laurent in an April 2000 XML.com article XML Web Pages with Opera 4.0.) A search on microsoft.com for pages that mention both Internet Explorer and XLink revealed no hints about eventual support. A similar search at opera.com revealed nothing about planned XLink support for the Opera browser.
DocZilla, a Mozilla-based browser from the Finnish company CiTEC, is the only product not listed on the W3C's "XML Linking Implementations" page that I could find with any degree of XLink support. DocZilla adds to Mozilla's support of simple links with some skeletal support, still in the beta stage, for extended links. (Like Mozilla, they have no support for embedded links planned.) You can play with DocZilla's support for extended links by taking an evaluation copy of DocZilla 1.0 to its fire test page. CiTEC offers no other documentation or demonstrations of extended link support; even this single demo page is apparently not widely known within CiTEC.
X2X is a link manager from empolis, a software and services company based in Germany, and it can import and export extended links. By using a relational database as its core engine, X2X can scale up to a large number of links with no loss of speed. X2X version 2 was released last June, and it looks like a very powerful product -- extensive documentation is available from the product's home page -- but at £25,000 for an intranet license and £50,000 for an Internet license, it's not priced to become the widely-used killer app that will gain XLink a footing in a large number of XML systems.
4Suite is an open source collection of Python tools for XML processing. Its 4XLink module provides a bit of XLink support by processing XLink links with an xlink:actuate value of "onLoad" and xlink:show values of "embed" or "replace". As a document processing system, and not an end-user GUI tool, it couldn't be expected to implement an xlink:actuate value of "onRequest" or an xlink:show value of "new" -- new what? -- so full support of the XLink spec wouldn't be something to look for here. 4Suite's change log file lists "Introduced 4XLink: A processor to expand XLink attributes" as a November 1, 2000 entry and doesn't mention XLink since, so this too doesn't look like a source of much recent XLink activity. (4Suite also includes 4RDF, an RDF library. Uche Ogbuji, one of the key people behind 4Suite, has been a very active proponent of RDF of late.)
Pages: 1, 2