[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Should xlink:arcrole or xlink:role be the primary way to dispatchon related resources? was Re: URIs, names and well known RDDL names,
- From: "Thomas B. Passin" <tpassin@home.com>
- To: xml-dev@lists.xml.org
- Date: Thu, 11 Jan 2001 00:14:29 -0500
Jonathan Borden says -
>
> Using Ron's analysis, the arrow or arc connecting the document to its
> related resources is named by the attribute xlink:arcrole. The xlink:role
> defines another arrow between the related resource and its type.
>
> To me it seems most natural to have the most important, or primary way
> to name a related resource as an arc from the RDDL document to the related
> resource and that the xlink:arcrole be the name of this arc.
>
This isn't hard to sort out. Any link on any diagram ***should*** be labeled
as to its purpose unless there is a clear convention for its use. This simple
rule is often violated, so that people tend to ***think*** that they know what
a link or arrow means when they often don't. We just have to get clear on
what the label should be.
Now, if you draw an arrow representing an xlink from one node to another, it
should be labeled, even if you omit the label in practice for "simplicity".
Whatever that label would be, that's the arcrole. What could be simpler?
Jonathan said that the xlink:role could be represented by another arc. That's
just going to be confusing. We don't want two arcs for one xlink, I don't
think. If "arcrole" is the label at the middle of the arc, then "role" can be
the label for the far end of the arc.
According to section 5.5 of the xlink rec, role and arcrole are supposed to be
absolute URIs, and the title attribute is there to provide for a
human-readable description of the "the meaning of a link or resource". This
could be ambiguous - do we title the purpose of the link or the nature of the
resource pointed to? I say, title the purpose of the link, since that's the
whole reason for having the xlink in the first place.
This leaves the role. What should "xlink:role" be used for? What's left?
The nature or purpose of the resource pointed to.
Now for some examples, without syntax. I hope I've got the right idea here.
Let's say that your document is supposed to import two schema fragments, have
a main schema that imports the fragments, and finally be transformed using an
xslt stylesheet. The stylesheet itself includes another stylesheet. You
decide to point to all these resources using an rddl document.
For the main schema:
title='Main Schema'
arcrole='urn:rddl:linkrole:xml-main-schema'
role='urn:rddl:resourcetype:xsd-schema' (or use the
schema namespace)
For the two schema fragments:
title = 'Imported Schema'
arcrole='urn:rddl:linkrole:import-schema'
role='urn:rddl:resourcetype:xsd-schema' (or use the
schema namespace)
For the main stylesheet:
title='Main Stylesheet'
arcrole='urn:rddl:linkrole:main-stylesheet'
role='urn:rddl:resourcetype:xslt-stylesheet' (or use the xsl namespace)
For the stylesheet to be included:
title='Included Stylesheet'
arcrole='urn:rddl:linkrole:included-xslt-stylesheet'
role='urn:rddl:resourcetype:xslt-stylesheet' (or use the xsl namespace)
This approach covers it all. The purpose of each xlink is given in human and
machine form, the nature of the resource itself is indicated by the role
attribute. In this example, we can clearly distinguish between the purpose
and the nature of each resource, even when the same kind of resource is used
for different purposes.
Can you see how nicely this would lend itself to an authoring tool? The tool
presents you with a list of known titles. You pick one, and the rddl
generator inserts the appropriate arcrole and role attributes (or maybe gives
you a choice of allowable resource types, such as RELAX or xml-schema).
Sweet!
Regards,
Tom P