Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add cross reference from Oxen of the Sun to Wandering Rocks. #39

Closed
wants to merge 2 commits into from
Closed

Add cross reference from Oxen of the Sun to Wandering Rocks. #39

wants to merge 2 commits into from

Conversation

charlesreid1
Copy link
Contributor

This adds a brief demonstration of how events in the text might be cross-referenced, following TEI:

In Oxen of the Sun, Vincent recounts an encounter with Father Conmee
that occurred in Wandering Rocks. The cross-reference from
Oxen looks like this:

<ref target="u10_wandering_rocks.xml#lb_100202">a slip of underwood

This links to an <lb> tag in Wandering Rocks, modified to have an xml:id:

<lb n="100202" xml:id="lb_100202"/>detached from her light skirt a clinging twig.</p>

This keeps the amount of text inside the <ref> tag fairly limited.

This adds a brief demonstration of how we might cross-reference
parts of the text, following TEI:
* [`<ref>` tag
spec](http://www.tei-c.org/release/doc/tei-p5-doc/en/html/ref-ref.html)
* [Section 16.2: Pointing
Mechanisms](http://www.tei-c.org/release/doc/tei-p5-doc/en/html/SA.html#SAXP)

In Oxen of the Sun, Vincent recounts an encounter with Father Conmee
that occurred in Wandering Rocks. The cross-reference from
Oxen looks like this:

```
<ref target="u10_wandering_rocks.xml#lb_100202">a slip of underwood
```

This links to an `<lb>` tag in Wandering Rocks, modified to have an `xml:id`:

```
<lb n="100202" xml:id="lb_100202"/>detached from her light skirt a clinging twig.</p>
```

This keeps the amount of text inside the `<ref>` tag fairly limited.
* open/master:
  Changed non-breaking spaces to regular spaces.
@charlesreid1
Copy link
Contributor Author

Note these implement the <ref> and xml:id suggestions following #23 (but not boldly).

@yellwork
Copy link
Collaborator

I think this is a really great idea – and a neat, compact encoding – but I worry that to do it justice we would have to go over the entirety of Ulysses, making such reiterations explicit. Essentially, assign an @xml:id to every lb and point reiterations and recapitulations back to it.

What if we undertook a pilot project of, say, linking the interpolations in “Wandering Rocks” to their (re-)appearance in the relevant sections? (As in #23?) Or linking the fragments in the “Sirens” “overture” to their reappearance in the episode? Or, indeed, both of these?!

What would it take, @charlesreid1, to make this linking bidirectional?

@charlesreid1
Copy link
Contributor Author

charlesreid1 commented Nov 19, 2017

Excellent questions. We should probably cc @JonathanReeve so he can weigh in too.

I can see how cross-references could easily get out of hand - what if a particular phrase or image comes up 5 or 6 times? Should they all point to each other? And where does it stop - should every reference to Paddy or to that bar of soap be linked to another part of the text? Should every recurring alliteration from Sirens be tagged back to its original occurrence? I'll attempt an answer here but please do weigh in with your thoughts.

There are many, many recurring images in Ulysses - this one of the twig stuck on the dress just stood out as I was going through Oxen and I remembered that the original event was in Wandering Rocks. (Same with the bar of soap reference from Ithica back to Lotus Eaters in PR #41.) In both cases, the reference occurs in a later chapter and references an earlier occurrence, which is why I didn't add bi-directional references.

In general, cross-references present a difficult question - partly why I raised it. As you proposed, you could do a project where you find recurring references to a particular chapter, like Wandering Rocks, throughout the text. But you could also follow the bar of soap as it appears and reappears, all the way to the last chapter, and mark all of those cross-references; or follow Paddy's ghost as it appears throughout the chapters; or Joseph the Joiner; or the death of Stephen's mother; or &c...

But while it could be dismissed as a potentially infinite task and a potentially huge time sink, I also think it's an integral part of what makes the text so rich, and a task perfectly suited for XML, which is innately "linked" (heh heh) to the idea of cross-references. I think some work has already been done here that wouldn't make it too intimidating (Gifford and Elman and http://www.joyceproject.com scatter many cross-references across chapters); easier if tackled one episode or theme at a time. I also think it could enable some really interesting analysis for Python notebooks (and JS visualizations, a la @muziejus's Wandering Rocks project).


As far as how it would be accomplished, the Linking page of TEI gives a great example right near the top that shows how multiple references could be collected with a link tag.

Let's suppose (hypothetically) we wanted to tag cross-references to Athos. There are three mentions of Athos - two phrases, "be good to Athos, Leopold" (Hades) and "be kind to Athos, Leopold..." (Ithaca), and a third mention, David "shared his bed with Athos, faithful after death. A dog’s spittle" (Circe) - and we wanted to link all three together. Then we could replace the more complicated version of multilple <refs> (two ref targets in Hades, two ref targets in Ithaca, two ref targets in Circe) with <ref> tags that don't know about each other and a single <link> that ties them together.

Before

We would have to give each <ref> multiple targets, and if we left out one reference we'd have to update all three, and keep tracking them down (painful/error-prone):

u06_hades.xml

Be good to Athos, Leopold <ref xml:id="lb_001" target="u15_circe.xml#lb_002 u17_ithaca.xml#lb_003"/>

u15_circe.xml

Athos, faithful after death. <ref xml:id="lb_002" target="u06_hades.xml#lb_001 u17_ithaca.xml#lb_003"/>

u17_ithaca.xml

be kind to Athos, Leopold... <ref xml:id="lb_003" target="u06_hades.xml#lb_001 u15_circe.xml#lb_002"/>

After

Using the <link> tag, we just need to have the one <ref xml:id> tag (possibly adding a topic to the xml:id attributes) ignorant of the other <ref> tags; in this way, the three-way relationship could be replaced with:

cross-references.xml (for example)

<link xml:id="athos_references" target="u06_hades.xml#lb_001_athos u15_circe.xml#lb_002_athos u17_ithaca.xml#lb_003_athos"/>

u06_hades.xml

Be good to Athos, Leopold <ref xml:id="lb_001_athos"/>

u15_circe.xml

Athos, faithful after death. <ref xml:id="lb_002_athos"/>

u17_ithaca.xml

be kind to Athos, Leopold... <ref xml:id="lb_003_athos"/>

Note also that if we missed two dozen references to Athos tucked away somewhere, we could just add two dozen <ref> tags with unique xml:id attributes wherever those occur, and update the <link> tag once. Makes it easy to expand/trim/maintain these cross-reference topic lists.

@JonathanReeve
Copy link
Member

This is a great idea. I'd be in favor of having a cross-references.xml as the canonical place to link to for these. Alternatively, we could put it in the header, if that's valid TEI. We could also handle multiple links by having each link point back to the first, but I like the approach of cross-references.xml better, actually, since there'll be one place to hold all of these.

I guess I'll close this PR, since it looks like you already have an idea for a better method, and open a new issue for cross-referencing.

@JonathanReeve
Copy link
Member

Moved to #42.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants