# Bekannte Probleme bei Anmerkungen und modifizierten Dokumenten

Wenn man Anmerkungen bei Dokumenten benutzt, deren Inhalt modifiziert werden kann, dann kann man auf zwei Probleme stoßen: Waisenkinder und irreführende Anmerkungen. Um die Problematik zu verstehen, muss zunächst erklärt werden wie Amaya Anmerkungen an Dokumente bindet.

Amaya benutzt XPointer um anzugeben, wo eine Anmerkung an ein Dokument gebunden werden soll. XPointer basieren auf der Struktur des Dokuments. Um einen XPointer für eine Markierung zu erzeugen läuft Amaya beispielsweise vom Anfangspunkt der Markierung in der Stuktur rückwärts, bis die Wurzel des Dokuments oder ein Element mit dem Attribut id gefunden wurde. Hat ein Element das Attribut id dann wird die Erzeugung des XPointers beendet und Amaya betrachtet dieses als Beginn des XPointers.

Beispiel: betrachtet man den Quellcode dieses Dokuments, dann erkennt man, dass dieser Abschnitt in ein div-Element eingeschlossen ist, dessen id-Attribut den Wert Issues hat. Hier ist ein Auszug aus dem Code:

      <div id="Issues">
      <h1>Issues with ....</h1>
      <p>If you are using...</p>
      <p>Amaya uses <strong>XPointer</strong>...</p>
      ...
      </div>

Der XPointer zeigt auf den zweiten Abschnitt: `xpointer(id("Issues")/p[2])`

Der obige XPointer zeigt auf das zweite `p`-Element, dessen Elternelement das ID-Attribut mit dem Wert "Issues" hat.

Man beachte, dass die Benutzung des Attibuts id dem Autor des Dokuments erlaubt die gesamte, durch den XPointer referenzierte Information an eine andere Stelle im Dokument zu verschieben, ohne dass dabei der XPointer aktualisiert werden muss. Der XPointer hängt also nicht vom Element, welches ihm vorangeht ab.

## Waisenkinder

Eine Anmerkung wird zum Waisenkind, wenn sie nicht mehr an ein Dokument gebunden ist, das heißt , wenn dessen XPointer nicht mehr in der Struktur des Dokuments aufgelöst werden kann. Dies geschieht, wenn die Struktur des Dokuments geändert wird. Amaya zeigt eine Warnung an, wenn es eine verwaiste Anmerkung während des Herunterladens von Anmerkungen von einem Server erkennt. Alle Waisenkinder werden in der Verweisansicht angezeigt und dort mit einem Fragezeichen-Icon, welches dem Anmerkungs-Icon überlagert ist gekennzeichnet .

## Irreführende Anmerkungen

Eine Anmerkung wird irreführend, wenn sie auf falsche Informationen zeigt. Das geschieht wenn man einen Text mit einer Anmerkung versieht und diesen dann ändert. In der ersten Version von Amaya wird der Benutzer nicht gewarnt, wenn eine Anmerkung in die Irre führt. Zukünftige Versionen können den Benutzer vor einer potentiellen Irreführung warnen.

## Was kann man tun, um dies zu vermeiden?

Als Autor eines Dokuments sollte man versuchen das Attribut `id` strategisch zu plazieren, beispielsweise innerhalb des Elements `<div>` oder `<p>`. Beispilesweise:

      <p id="Amaya">Amaya uses...</p>

Ein XPointer, der auf diesen Absatz zeigt ist: `xpointer(id("Amaya"))`

Somit wird dieser XPointer immer auf den gleichen Absatz zeigen, unabhängig davon, an welcher Stelle in der Dokumentstruktur er sich befindet.

Hinweis: mit Amaya kann man automatisch ein `id`-Attribut einer Anzahl von Elementen zuweisen oder von diesen entfernen, indem man Id hinzufügen/entfernen im Menü Extras ausführt.