XML Linking Implementation Questionnaire

	    XML Linking Implementation Questionnaire
	    ========================================

General
=======
>What is the name of your organization?
W3C

>How should we contact you on linking matters?
Irene Vatton (irene.vatton@w3.org)

>What is the name of the linking technology?
Amaya. It's one feature of the Amaya editor/browser.

>Please describe its functionality and development status briefly.
We have an annotation application that uses XPointers and XLink. Also, the
Amaya editor is able to create and activate simple XLinks. 

The Xlink and XPointer support is relatively young and not 100% complete.


>Is it publicly available?  If so, what is its current location?
Yes. http://www.w3.org/Amaya/

XLink
=====

>How does the technology use XLink?
When creating links related to XML elements (MathML, and SVG
currently), we do so according to the XLink specification. That is,
we add the link as an attribute to the element that represents the start
point of the link. We can also follow such links when browsing an
XML document. 

>Does (or will) the technology claim XLink conformance?
Yes.

>Please provide details about the parts of XLink implemented.
>- Traversing simple outbound links
Yes

>- Any other comments/details?
In the near future, we'll support the show="new" and show="replace" 
attributes.

>What difficulties did you discover in implementing XLink?
In the case of XHTML, it's difficult to choice whether to generate an anchor
(A) or use XLink when making a new link.

XPointer
========

>How does the technology use XPointer?
Currently, we're using XPointers in an RDF annotation experiment. Users
can annotate any (structured) document they want, by selecting a point or
a range in the document and then using an "annotate" function. We use 
XPointers to describe what was annotated in the document and for adding
a link to the annotation. The merge is done on the client side. 

Our actual XPointer are very rudimentary and of four types:

- one-point to another point using string-range (text in the same element,
  skipping in-lined markup). Example:
   xpointer(string-range(/html[1]/body[1]/p[2],"",84,4)

- one point to another point in the text of wwo elements using string-range
  and range-to. Example:
   xpointer(start-point(string-range(/html[1]/body[1]/dl[1]/dd[1],"",3,1))
            /range-to(end-point(string-range(/html[1]/body[1]/dl[1]/
             dd[3],"",3,1))))

- one point to another point in two elements. Example:
   xpointer(/html[1]/body[1]/div[1]/p[1]/range-to(/html[1]/body[1]
            /div[1]/p[6]))

- one-point. Example:
   xpointer(/html[1]/body[1]/div[1]/p[1]/math[1]/mrow[1]/mfrac[1]
            /mrow[1]/msqrt[1])

If an element has an id attribute, we use that element as the starting point
of the expression.

>Does (or will) the technology claim XPointer conformance?
Yes

>Please provide details about the parts of XLink implemented.
(you mean XPointer?)

>- Bare names
Yes

>- Child sequences
No

>- id() function
Yes

>- Full XPath
No. We only support a minimal functionality (location steps, and predicate 
counts) for the moment. 

>- range-to
Yes. However, we only support for the moment absolute XPointers (starting
from the root of the document or from the first element having an ID in the
path).

>- string-range
Partially. We only support empty strings.

>- Namespace support
Partially. Only supported as "namespace_abbreviation:element_name"

>- In programming API
Yes. We have a function for building an Xpointer, and another for parsing
it. We return an error if we can't resolve the XPointer.

>- In user interface
We have a function for making an annotation. We're planning to add soon
another function to computer the XPointer function of the current selection
and use it in our XLink implementation.

>   - Selecting/showing multiple non-contiguous ranges
No.
   
>- Any other comments/details?

We also support start-point() and end-point().

>What difficulties did you discover in using the XPointer specification?
>From the point of view of someone who was starting with XPointer and XPath,
understanding the concept of context in the case of range-to. That is,
understanding where was the the context when computing the XPointer from
that part.

>What difficulties did you discover in implementing XPointer?
For the annotations, we only wanted to have two points, the beginning and
the end point. We had to go thru an empty string-range, combined with the
start- and end-point functions to achieve this result. See the second example
cited here above.

XML Base
========
>How does the technology use XML Base?
We don't use it yet.

Integration
===========
>How does the technology uses XLink, XPointer, and XML Base in conjunction?
We still haven't integrated XML Base. The use of XLink with XPointer is still
young in our application.

>Please provide details about the implementation.

In the Annotation application, we add an element on the client side and
use Xlink to specify where the body of the annotation is.

Although we haven't finished implementing it, Amaya will be able to create
XLinks with XPointer fragments, where the user memorizes the XPointer of a
target and then create an Xlink to that target, in the same document or in
another one.

- Any other comments/details?

>What difficulties did you discover in using their specifications together?
None yet.

>What difficulties did you discover in implementing them together?
None yet. So far, they have been complimentary.

Conclusion
==========
>Do you have any other comments you would like to share with us?

It has been fun and interesting implementing this technology. The forthcoming
release of Amaya will support the annotation and XPointer features we
described in this report.

-Jose
-----------------------------------------------------------------------------
Jose Kahan                 | w3c/INRIA                          | The taste
W3C technical support team | ZIRST                              |  of rain
[http://www.w3.org]        | 655, avenue de l'Europe            | -Why kneel?
Tel: +33 (0)4 76.61.53.05  | 38330 Montbonnot Saint-Martin France |J.K (1959)
-----------------------------------------------------------------------------

Received on Wednesday, 18 October 2000 10:01:38 UTC