Hi James,

I've thought about this sort of thing a few times, but I've always ended 
up with the feeling that, in my real-life projects, I don't need the 
complexity of a links document maintained separately from all the other 
documents. For examples like those below, I think I'd simply enter an 
@corresp attribute into one or both of the source documents:

<persName xml:id="FooWanInst1" corresp="doc2.xml#FooWan24"> Mr Foo Wan 

If the back-end system is sophisticated enough (an eXist db, say), then 
that's enough info to get from either document element to the other one. 
If it's not sophisticated, then you'd need a similar @corresp attribute 
in doc2.xml.

It would be handy if, when you're typing an attribute that has values of 
data.pointer, oXygen could offer all the values of xml:id from all the 
currently-open documents as options in a drop-down list. I don't know 
exactly how it could be expected to handle the relative paths between 
such documents, though, especially if they happened to be on different 
drives, opened through WebDav, or something like that.


James Cummings wrote:
> Hi there,
> While working on something completely different I had an idle thought 
> about a potentially useful stand-off markup tool.  I was wondering if 
> anyone has already made something like this (or something specific which 
> could be generalised to do this).
> Let's say I have a document which has some text marked up something like:
> ===doc1.xml===
>    <div>
>       <p xml:id="foo1">Paragraph foo 1 with mention of <persName
>           xml:id="FooWanInst1"> Mr Foo Wan </persName> and <seg
>           xml:id="seg123">a seg</seg>
>       </p>
>       <p xml:id="foo2">Paragraph foo2 has <seg xml:id="seg234">Seg
>           123</seg></p>
>    </div>
> And in another document (or elsewhere in the same document) I have some 
> information marked up something like:
> ===doc2.xml===
>  <div>
>      <listPerson>
>          <person xml:id="FooWan24">
>             <p>Info about Foo Wan</p>
>          </person>
>       </listPerson>
>       <entry>
>         <sense xml:id="seg1">sense of seg</sense>
>         <sense xml:id="seg2">sense of seg</sense>
>       </entry>
>   </div>
> What I want is a little tool which would allow me to make links between 
> any arbitrary items with an @xml:id on them.  So I could click on the 
> element in one document and click an element in another document and get 
> a <link/> created with the two xml:id's as targets. Say something like:
> ===linkGrpDoc.xml===
>   <div>
>     <linkGrp type="people">
>       <link targets="doc2.xml#FooWan24 doc1.xmlFooWanInst1"/>
>     </linkGrp>
>     <linkGrp type="senses">
>       <link targets="doc2.xml#seg1 doc1.xml#seg234"/>
>       <link targets="doc2.xml#seg2 doc1.xml#seg123"/>
>     </linkGrp>
>   </div>
> Seems like the kind of thing which might make a useful webApp or oXygen 
> plugin or similar, so I was wondering if anyone had already made 
> something like this?
> -James

Martin Holmes
University of Victoria Humanities Computing and Media Centre
([log in to unmask])
Half-Baked Software, Inc.
([log in to unmask])
[log in to unmask]