-
Die
Erfindung bezieht sich auf das Verarbeiten elektronischer Dokumente,
insbesondere auf die Erzeugung eines Zieldokuments von einem Quellendokument.
In dieser Beschreibung und in der Dokument-Handhabungs-Terminologie
allgemein bedeutet der Ausdruck "Element" einen Knoten oder
einen Baum von Knoten innerhalb eines Dokuments oder das volle Dokument.
-
Die
gemeinsamste Form elektronischer Dokumentverarbeitung ist der Betrieb
eines Web-Servers, um HTML-Dokumente Browsern über http bereitzustellen. Jedoch
werden verschiedene Mark-up-Sprachen ebenfalls zur Veröffentlichung
von Dokumenten verwendet, und zwar über das Internet oder sonst
wie. Sie haben allgemein eine hierarchische Elementen-Struktur. Die Struktur
ist allgemein durch Fahnen (Zeichensequenzen im Dokument) definiert.
-
In
den vergangenen Jahren wurden elektronische Dokumente weiter entwickelt.
Beispielsweise enthalten Java-Server-Seiten (JSP) sowohl HTML-Mark-up-Inhalt
als auch einen Java-Programmcode. Die Verarbeitung eines derartigen
Dokuments erfordert üblicherweise
das Ausführen
des Java-Codes, häufig,
um Text zu erzeugen. Der Java-Code wird durch den Text, den er erzeugt,
ersetzt, und die resultierende HTML-Seite wird zum Browser gesendet.
Bei einem anderen Beispiel ist das Quellendokument eine Wortverarbeitungsschablone,
die Felder aufweist, um Daten einzugeben. Die Felder sind in einer
festen Struktur, und die Daten können
lediglich an den festen Feldstellen eingegeben werden.
-
Bis
heutezutage ist die Verarbeitung von Quellendokumenten durch die
festen Stellen zum Ändern/zum
Hinzufügen
von Inhalt beschränkt.
Eine andere Beschränkung
ist die, dass die Verarbeitung durch die Bedeutung der Information
im Quellendokument regiert wird. So wird beispielsweise bei JSPs
die Verarbeitung durch den Java-Code regiert, und in der Wortverarbeitungsschablone
können
lediglich Daten in die Datenfelder eingefügt werden. Die
US 5 890 171 und die
US 6 016 494 beschreiben Verfahren
zum Verschmelzen von Dokumenten durch Einfügen eines Dokuments in ein
anderes. In der
US 6 016 494 wird
eine Gruppe von Dokumenten oder Web-Seiten durch Hypertext-Verknüpfungen,
die in den Dateien eingebettet sind, mit einander in Beziehung gebracht.
Eine Seite hat eine Verknüpfung
zur anderen Seite, und, wenn ein Benutzer eine Verknüpfung auswählt, wird
die verknüpfte Seite
in die Seite eingefügt,
welche die Verknüpfung
hat, um eine erweiterte Seite zu bilden. Eine verknüpfte Seite
kann dem Ende einer Ursprungsseite bevorzugter als einer eingebetteten
Seite hinzugefügt
werden. Damit erfordert das Verschmelzen von Dokumenten Benutzerauswahl
einer Verknüpfung
und Direkteinfügung
des verknüpften
Dokuments in das Ursprungsdokument.
-
Die
WO 97/34 240 beschreibt einen Server, bei dem ein SGML-Dokument
in einen Syntaxbaum analysiert (geparst) wird, der die Dokumentenstrukturhierarchie
zeigt, und eine Inhaltsliste, welche die Daten, welche im Dokument
enthalten sind, zeigt. Diese werden verwendet, das Dokument in komprimierter
Form zu speichern und das Dokument zu einem Kunden zu übertragen.
Der Kunde kann den Baum wiedergeben, um das Dokument wiederum zu
erzeugen.
-
Es
ist eine Aufgabe der Erfindung, größere Vielfalt bereitzustellen,
mit der Dokumente verarbeitet werden. Eine weitere Aufgabe besteht
darin, dass die Verarbeitung keine Kenntnis der Bedeutung oder der
Struktur der Information im Quellendokument erfordert.
-
Gemäß der Erfindung
wird ein Dokumentverarbeitungssystem nach Anspruch 1 bereitgestellt.
-
Bei
einer Ausführungsform
umfasst die Verschmelzungseinrichtung eine Einrichtung, um Wurzelquellenknoten
immer als Übereinstimmungsknoten
zu behandeln.
-
Bei
einer weiteren Ausführungsform
umfasst die Verschmelzungseinrichtung eine Einrichtung zum Behandeln
eines Quellenbaum als einen mit einer festen Rolle und des anderen
Quellenbaums als einen mit einer bewegbaren Rolle, bei der die Struktur
des Quellenbaums, welcher die feste Rolle hat, bewahrt wird, und
die Struktur des Quellenbaums, der die bewegbare Rolle hat, geändert werden
kann.
-
Bei
einer Ausführungsform
weist die Verschmelzungseinrichtung eine Einrichtung auf, um (a)
nur einen aus einem Paar übereinstimmender
Knoten in den Zielbaum zu setzen, oder um (b) die übereinstimmenden
Knoten zum Erzeugen eines zusammengesetzten Knotens zu kombinieren,
und die Wahl von (a) oder (b) nach einer Richtlinie erfolgt.
-
Bei
einer weiteren Ausführungsform
ist (b) eine Vorgaberichtlinie.
-
Bei
einer Ausführungsform
umfasst die Zusammenführungseinrichtung
eine Einrichtung zum Hinzufügen
eines nicht-übereinstimmenden
Knotens eines Baums mit beweglicher Rolle zu dem Zielbaum als Ableitungsknoten
von dem Knoten, der seinen Stammknoten von dem Baum mit beweglicher
Rolle zeigt.
-
Bei
einer Ausführungsform
umfasst die Zusammenführungseinrichtung
eine Einrichtung, um den genannten nicht-übereinstimmenden Knoten hinter
abgeleiteten Knoten ei nes übereinstimmenden
Knotens im festen Baum zu setzen, wenn der Stammknoten des genannten
nicht-übereinstimmenden
Knotens ein übereinstimmender
Knoten ist.
-
Bei
einer weiteren Ausführungsform
umfasst die Zusammenführungseinrichtung
eine Einrichtung zum Handhaben eines Knotens mit mehr als einem übereinstimmenden
Vorfahrknoten, indem er relativ zu dem nächsten übereinstimmenden Vorfahrknoten
gesetzt wird.
-
Bei
einer weiteren Ausführungsform
umfasst die Zusammenführungseinrichtung
eine Einrichtung zum Konservieren der Reihenfolge von nicht-übereinstimmenden
Knoten des Quellenbaums, es sei denn, dass sie durch die Anwesenheit
eines übereinstimmenden
Knotens modifiziert wird.
-
Bei
einer Ausführungsform
umfasst die Zusammenführungseinrichtung
eine Einrichtung zum Arbeiten gemäß einer Lookup-Richtlinie,
in der der Quellenbaum mit beweglicher Rolle als eine Resource behandelt wird,
von der Knoten selektiv zum Zusammenführen ausgewählt werden.
-
Bei
einer weiteren Ausführungsform
umfasst die Zusammenführungseinrichtung
eine Einrichtung zum Erkennen eines Platzhalterknotens in dem Baum
mit fester Rolle und zum Setzen eines Satzes von Knoten des Quellenbaums
mit beweglicher Rolle in dem Zielbaum anstatt des Platzhalterknotens.
-
Bei
einer Ausführungsform
umfasst die Zusammenführungseinrichtung
eine Einrichtung zum Aktivieren der Zusammenführung als Reaktion auf ein
vererbendes Quellendokument, welches zeigt, dass der Inhalt von
einem vererbten Quellendokument vererbt werden sollte.
-
Bei
einer weiteren Ausführungsform
umfasst die Zusammenführungseinrichtung
eine Einrichtung zum Ermitteln, ob das vererbende Quellendokument
eine Vererbung anfordert, indem es einen dies anzeigendes Flag liest.
-
Bei
einer weiteren Ausführungsform
umfasst die Zusammenführungseinrichtung
eine Einrichtung zum Lesen des genannten Flags aus dem vererbenden
Dokument.
-
Bei
einer noch weiteren Ausführungsform
umfasst die Zusammenführungseinrichtung
eine Einrichtung zum Erkennen eines Flags, welches die benötigte Vererbung
von einer Vielzahl von vererbten Dokumenten zeigt, und zum Zusammenführen der
vererbenden und der mehreren vererbten Dokumente.
-
Bei
einer Ausführungsform
umfasst die Zusammenführungseinrichtung
eine Einrichtung zum aufeinanderfolgenden Zusammenführen von
Paaren von Dokumenten auf eine verschachtelte Weise, bis alle Quellendokumente
zusammengeführt
sind.
-
Bei
einer weiteren Ausführungsform
umfasst die Zusammenführungseinrichtung
eine Einrichtung zum Zusammenführen
von Teildokumenten.
-
Bei
einer Ausführungsform
umfasst die Zusammenführungseinrichtung
eine Einrichtung zum Arbeiten gemäß Zusammenführungsanweisungen, welche dynamisch
von einer Regel unter Verwendung von aktuellen Parameterwerten erzeugt
werden.
-
Bei
einem anderen Merkmal stellt die Erfindung ein Verfahren zum Verarbeiten
eines Quellendokuments bereit, um ein Zieldokument bereitzustellen,
wobei das Verfahren durch ein Datenverarbeitungssystem ausgeführt wird
und die Dokumente in elektronischer Form sind, dadurch gekennzeichnet,
dass
das Verfahren die Quellendokumente zusammenführt, durch:
Parsen
der Quellendokumente, um Quellenbäume zu erzeugen, die hierarchische
Knotenstrukturen haben;
Zusammenführen der Quellenbäume, um
einen Zielbaum zu erzeugen; und
Rendern des Zielbaums, um das
Zieldokument bereitzustellen; und wobei der Zusammenführungsschritt
aufweist:
Identifizieren von Übereinstimmungscodes (X, Y,
Z) in zumindest zwei Quellenbäumen;
Einführen eines
Einzelknotens entsprechend den Übereinstimmungsknoten
im Zielbaum;
Setzen anderer Knoten im Zielbaum in Bezug auf
den Einzelknoten.
-
Bei
einer Ausführungsform
ist der Einzelknoten entweder (a) einer der Überstimmungsknoten oder (b) ein
zusammengesetzter Knoten der Übereinstimmungsknoten,
und eine Wahl von (a) oder (b) wird gemäß einer konfigurierbaren Richtlinie
getroffen.
-
Bei
einer anderen Ausführungsform
wird das Zusammenführen
durch ein Flag initialisiert, welches in einem Quellendokument eingebettet
ist, welches zeigt, dass dies Inhalt von zumindest einem anderen
Quellendokument vererben sollte.
-
Bei
einer Ausführungsform
wird ein Quellendokument so behandelt, als ob es eine feste Rolle
hat, und ein anderes Quellendokument behandelt wird, als ob es eine
bewegbare Rolle hat, in welcher die Struktur des festen Rollenquellenbaums
bewahrt ist und die Struktur des bewegbaren Rollenquellenbaums geändert werden
kann.
-
Bei
einer anderen Ausführungsform
erweist jedes der genannten Quellendokumente einen separaten Strang
von assoziierten Inhalt auf, und das Verfahren zum Kombinieren der
genannten Stränge
von Inhalt zu einem einzelnen Zieldokument wird durchgeführt.
-
Bei
einer Ausführungsform
ist ein Quellendokument die Ausgabe einer Datenbankabfrage, und
das Verfahren führt
das genannte Ergebnis mit dem anderen Quellendokument zusammen.
-
Bei
einer weiteren Ausführungsform
wird ein Knoten des anderen Quellendokuments mit mehreren Knoten
des Ergebnisquellendokuments zusammengeführt.
-
Kurzbeschreibung der Zeichnungen
-
Die
Erfindung wird besser aus der folgenden Beschreibung einiger Ausführungsformen
verstanden, die lediglich beispielhaft angegeben werden, in Bezug
auf die beiliegenden Zeichnungen, in denen:
-
1 ein
Flussdiagramm ist, welches ein Dokumentverarbeitungsverfahren nach
der Erfindung zeigt;
-
2(a), 3(a) und 4(a) Quellendokumente und 2(b), 3(b) und 4(b) Bäume sind,
die jeweils diese Dokumente zeigen;
-
5 ein
Bildschirm eines Zwischenzieldokuments ist, welches durch einen
Browser angezeigt wird;
-
6(a) ein weiteres Quellendokument ist, 6(b) ein Baum ist, der das Quellendokument zeigt, und 6(c) ein Bildschirm dieses Quellendokuments ist,
wie dies durch einen Browser angezeigt wird;
-
7(a) ein Baum eines Zieldokuments ist, 7(b) das Zieldokument HTML ist, und 7(c) das Zieldokument ist, wie dies durch einen
Browser angezeigt wird;
-
8 ein
Diagramm ist, welches zeigt, wie die Quellenbäume von 2 bis 6 verschmolzen werden, um den Zieldokumentenbaum
bereitzustellen; und
-
9 bis 11 Diagramme
von Bäumen
sind, welche Verschmelzungsoperationen zeigen.
-
Beschreibung der Ausführungsformen
-
Gemäß 1 wird
ein Dokumentverarbeitungsverfahren 1 mit vier Quellendokumenten
wie folgt durchgeführt:
HTML-Dokument
1, genannt "child.html"
HTML-Dokument
3, genannt "buttons.html"
HTML-Dokument
4, genannt "skins.html" und
HTML-Dokument
5, genannt "parent.html".
-
Das
child.html-Dokument 2 wird allgemein als "inheriting" (erbendes)-Dokument
bezeichnet, da dies Flags hat, die darin eingebettet sind, die zeigen,
dass dies Inhalt von zumindest einem anderen Quellendokument erben
sollte. Aus Klarheitsgründen
wird letzteres allgemein als geerbtes "Quellendokument" bezeichnet. Die Marken bei dieser Ausführungsform
sind die Folgen "extends=", denen Namen/Bezeichnungen
der relevanten geerbten Dokumente folgen. Gemäß 2(a) hat
das Dokument Flags, um Inhalt von allen anderen Quellendokumenten 3, 4 und 5 zu
erben.
-
Das
Verfahren 1 umfasst einen Analyseschritt 6, bei
dem der Aufbau (Syntax) des Quellendokuments 2 analysiert
wird, um einen hierarchischen Strukturbaum 7 von Knoten
zu erzeugen, wie in 2(b) gezeigt ist.
Wie aus diesem Diagramm deutlich wird, ist der Datenkopf <html> ein Wurzelknoten,
und abhängige
Knoten sind <head> und <body>. Knoten, die diesen
untergeordnet sind, umfassen <title>, <div> mainInsert
und <div> skinSelect.
-
In
gleicher Weise wird das Quellendokument 3, welches in 3(a) gezeigt ist, im Schritt 8 analysiert, um
einen Baum 9 bereitzustellen, der in 3(b) gezeigt ist. Die Bäume 7 und 9 werden
in einem Schritt 10 verschmolzen, um einen ersten Zwischenzielbaurn,
der nicht gezeigt ist, bereitzustellen. Diese Bäume werden lediglich intern
verarbeitet.
-
Das
Quellendokument 4 (gezeigt in 4(a))
wird dann im Schritt 11 analysiert, um einen Baum 12 zu
erzeugen, der in 4(b) gezeigt ist. Dieser wird
im Schritt 13 mit dem ersten Zwischenbaum verschmolzen,
um einen zweiten Zwischenbaum 14 bereitzustellen. Wenn
der letztere durch einen Browser erbracht und angezeigt werden würde, würde er erscheinen,
wie in 5 gezeigt ist. Diese weist einen Kopftastenbalken auf,
der mit dem Inhalt des buttons.html-Quellendokuments 3 versehen
ist, einen Hauptkörper,
der mit dem Inhalt des child.html-Quellendokuments 2 versehen
ist, und skins (HTML links), die durch den Inhalt des Quellendokuments 4 bereitgestellt
werden.
-
Das
Quellendokument 5 ist in 6(a) gezeigt.
Dieses wird im Schritt 20 analysiert, um einen Baum 21 zu
erzeugen, der in 6(b) gezeigt ist. Der Inhalt
des Quellendokuments 5 ist in 6(c) gezeigt.
Im Schritt 22 wird der Baum 21 mit dem Zwischenbaum 14 verschmolzen,
um einen endgültigen
Zielbaum 23 zu bilden, der in 7(a) gezeigt
ist. Dies wird im Schritt 24 erbracht, um ein endgültiges Zieldokument 25 bereitzustellen,
welches in 7(b) und 7(c) gezeigt
ist.
-
Wie
in 8 gezeigt ist, ist das endgültige Zieldokument 25 das
Ergebnis des Quellendokuments 2, welches von den anderen
drei Quellendokumenten 3, 4 und 5 geerbt
wird. In diesem Dokument werden die Tastenbalken der Dokumente 2 und 5 zu
einer einzigen Reihe 25.3 kombiniert und unter das Hauptbild 25.1 verschoben.
Die Hypertext-Verknüpfun gen 25.2 und 25.4 verbleiben
jedoch am Boden der Anzeige. Man wird es somit als vorteilhaft sehen,
dass einiges des Inhalts umgeordnet und einiges nicht umgeordnet
wird.
-
Wiederum
bezugnehmend auf 7(a) haben die Verschmelzungsschritte
die meisten Knoten der Quellendokumente 2, 3, 4 und 5 zur
Folge, welche im Zieldokument 25 vorhanden sind. Jeder
Verschmelzungsschritt jedoch identifiziert einige Knoten der beiden
Quellenbäume,
die als Übereinstimmungsknoten
verschmolzen wurden und kombiniert diese, um einen zusammengesetzten
Knoten im Zielbaum bereitzustellen. Zusammengesetzte Knoten sind
durch dicke Außenlinien
in 7(a) angedeutet. Diese sind
die Knoten, die als <html>, <head>, <style>, <body>, <td id = "mainInsert"> und <td
id = "buttonBar"> bezeichnet sind. Die übereinstimmenden Knoten der
Quellenbäume
sind derart identifiziert, da sie den gleichen Namen haben. Der Name
des Knotens wird durch das id-Attribut angegeben. Dem zusammengesetzten
Knoten wird dieser (gemeinsame) Name und die angehäuften Attribute
der beiden übereinstimmenden
Knoten gegeben.
-
In
jedem Verschmelzungsschritt wird einem der Quellendokumente eine "feste Rolle" und dem anderen
eine "bewegbaren
Rolle" zugeordnet.
Die Baumstruktur des festen Rollenbaums ändert sich nicht. Die Struktur
des bewegbaren Rollenbaums kann jedoch innerhalb des Rahmenwerks
des festen Rollenbaums geändert
werden. Durch Vorgabe hat der geerbte Baum die feste Rolle und der
erbende Baum hat die bewegbare Rolle.
-
Das
Verfahren 1 wird durch einen Server durchgeführt, beispielsweise
durch einen Java Servlet. Das Zieldokument 25 wird über den
Server zum Kunden übertragen.
Dies ist besonders nützlich,
da dieser komplette Dokumente unmittelbar zum Kunden liefert. Das
Verfahren 1 kann jedoch durch ein Kundensystem oder durch
ein Editierwerkzeug durchgeführt
werden, welches am Servereingang angeordnet ist. Das Editierwerkzeug
verarbeitet Seiten in Ausführungszeit
und zeigt das Zieldokument zur Billigung durch den Entwerfer an.
-
Folgendes
ist eine Beschreibung einer Durchführung dieser Erfindung als
eine Erweiterung eines Web-Servers, der HTML-Dokumente zu Standard-Web-Kunden
liefert. Diese Durchführung
nimmt die Form eines Java Servlet an, der über einen Web-Server läuft.
-
Die
Quellendokumente sind unter Verwendung der XML-Syntax definiert
und sind somit einfach zu analysieren. Ein Dokument besteht aus
Elementen, entweder im Verbund oder einfach. Ein einfaches Element nimmt
die Form an von <tag
attribute-list/> oder
einer Textfolge.
-
Ein
Verbundelement wird geschrieben als:
<tag attribute-list> (opening tag)
andere Elemente (Ableitungen)
</tag> (closing tag)
-
Eine
Fahne (tag) ist ein einzelnes Wort, beispielsweise "html", "table" oder "a". Eine Attributliste von benamten Werten,
getrennt durch Abstände.
Beispielsweise id = "myTable" inheritTag= "no".
-
Die
XML-Vokabularunterstützung
ist sehr ähnlich
xHTML, fügt
jedoch folgendes hinzu:
- • Ein Element <extend/>, welches einen Platzhalter
zeigt, der unten beschrieben wird
- • Ein
Attribut "id" wird für alle Marken
unterstützt.
Dies liefert einen Namen für
den Knoten.
- • Ein
Attribut "extends" wird für alle Marken
unterstützt.
Dieses Attribut zeigt die Dokumente, von denen dieses Element zu
erben ist.
- • Ein
Attribut "nestable" wird für alle Marken
unterstürzt.
Dieser Wert ja/nein zeigt, ob das Element zu verschachteln ist.
- • Überschreiben_Attribut
(overwrite_attribute) = Ja/Nein. Dieses Attribut wird für alle Marken
unterstützt, und
zeigt, ob die geerbten Attribute die geerbten Attribute überschreiben.
- • Ein
Attribut "inherit_tag" wird für alle Marken
unterstützt.
Dieser Wert Ja/Nein zeigt, ob der zusammengesetzte Knoten zu konstruieren
ist, um den Knoten vom Vererbungsbaum (falsch) oder vom vererbten
Baum (wahr) zu begünstigen
ist. Die Vorgabe ist "wahr".
- • Relativreferenzen
in html-Marken, beispielsweise href-Attribute in <a>-Marken werden in Absolutreferenzen übertragen.
Dies bedeutet, dass, wenn eine Relativverknüpfung in ihrer ursprünglichen
Datei korrekt ist, diese in jedem Dokument, welches sie erbt, korrekt
sein wird.
- • Die
Syntax, Relativreferenzen zu absoluten Referenzen aufzulösen, besteht
darin, der Referenz mit "./" vorherzugehen (ein
Punkt und ein Schrägstrich).
Diese Syntax ist allgemein für
Web-Browser transparent (d.h., unsichtbar), jedoch für die Verschmelzungssoftware
signifikant.
- • Vererbungsrichtlinie
zeigt die geeignete Vererbungsrichtlinie.
-
Jeder
Knoten eines Baums enthält
folgendes:
- • Fahne
(tag) – eine
Folge
- • Id – speichert
die Id des Knotens
- • Ableitung – eine Listung
von Knoten
- • Stamm – eine Verknüpfung zu
dem Knoten des Stamms
- • Text – ein Feld,
welches verwendet wird, Textinhalt eines Elements zu speichern,
beispielsweise einen Kommentar oder ein Teststück von der html-Datei.
-
Das
Zieldokument kann anderen Übersetzungen
unterworfen werden, bevor es zum Browser geliefert wird, beispielsweise
XSLT-Übersetzungen
oder einem Verschmelzen von Daten von Datenbanken. Das Ziel wird
in HTML umgesetzt, durch Durchlaufen des Baums und Erzeugen geeigneter
HTML für
jeden Knoten. Das Durchlaufen ist rekursiv. Die Öffnungsfahne wird für jedes
Element erzeugt, danach werden die Zweige des Baums, die bei jeder
Ableitung empfohlen werden, durchquert, und dann wird die Schließfahne erzeugt.
-
Der
Verschmelzungsbetrieb wird nun ausführlicher mit Hilfe von 9, 10 und 11 beschrieben. 9 zeigt
einen Quellenbaum, der aus Knoten besteht, die den Namen F1 bis
F23 haben. Die Knoten F9, F13 und F16 werden auch als Buchstaben "Z", "X" bzw. "Y" bezeichnet. 10 zeigt
einen Quellenbaum, der aus Knoten M1 bis M24 besteht. Die Knoten
M2, M4 und M18 sind ebenfalls durch die Buchstaben "Y", "Z" bzw. "X" identifiziert. 11 zeigt
einen Zielbaum, der aus dem Verschmelzen des Baums von 9 in
einer festen Rolle mit dem Baum von 10 in
einer bewegbaren Rolle resultiert.
-
Anschließend erfolgt
eine Erläuterung,
wie die Lage jedes bewegbaren Knotens M0 bis M24 für den Zielbaum
bestimmt wird.
M0 | M0
geht M4 vorher. M4 ist ein Abkömmling
von F2, so dass M2 F2 vorhergehen muss |
M4 | stimmt
mit F09 überein |
M5 | ist
Abkömmling
von M4 |
M6–M8 | sind
Abkömmlinge
von M5 |
M11,
M12, M13 | |
M14–M17 | geht
M18 vorher, und M18 ist ein Abkömmling
von F16, so dass M11–17
F16 vorhergehen müssen |
M2 | stimmt
mit F16 überein |
M3 | Abkömmling von
M2 |
M9 | Abkömmling von
M2 |
M10 | Abkömmling von
M9 |
M19 | M19
ist ein Abkömmling
von M18, M18 stimmt mit F13 überein,
so ist M19 ein Abkömmling
von M18/F13-Zusammensetzungsknoten und nachdem Abkömmling angeordnet
ist, der von F13 geerbt wurde. |
M20 | Abkömmling von
M 19 |
M21–23 | Abkömmling von
M20 |
M24 | Abkömmling von
M18 |
-
Das
Dokumentverschmelzungsverfahren 1 erlaubt, dass Quellendokumente,
welche separate Stranginhalte enthalten, kombiniert werden können, um
ein Zieldokument zu erzeugen. Das Wort "Strang" bedeutet Inhalt, der beispielsweise
in Verbindung mit einem Bild und einem damit verknüpften Textparagraphen
in Verbindung steht. Die Quellendokumente und das Zieldokument können jeweils
unterschiedliche Syntax-Regeln beachten. Beispielsweise kann das
vererbende Quellendokument xHTML enthalten, das vererbte Quellendokument
XML und das Zieldokument könnte
HTML sein. Der Prozess kann auf Dateien irgendeiner block-strukturierten
Sprache angewandt werden und die resultierende Datei kann in irgendeiner
anderen Sprache übersetzt
werden. Es gibt somit eine ausgezeichnete Vielseitigkeit zum Kombinieren
von Inhalt.
-
Das
Verfahren ist nicht symmetrisch, d.h., ein Dokument A, welches mit
einem Dokument B verschmolzen wird, erzeugt ein anderes Ergebnis
gegenüber
einem Dokument B, welches mit dem Dokument A verschmolzen ist. Der
Verschmelzungsschritt wird durch logisches Addieren von Knoten der
Dokumente in der bewegbaren Rolle zur Struktur des Dokuments in
der festen Rolle erreicht, bei geeigneter Lage. Dieser Prozess bewahrt
die Reihenfolge von Elementen des Dokuments in der festen Rolle,
jedoch bewahrt dieser nicht die Reihenfolge von Elementen vom Dokument
in der bewegbaren Rolle.
-
Ein
Dokument, welches in der festen Rolle geerbt wird, wird seine Gesamtstruktur
bewahren. Das Vererben in der festen Rolle würde beispielsweise in dem Fall
einer HTML-Seite
nützlich
sein, die Mehrfachsprachen unterstützt. Eine solche Seite könnte von
einem anderen Stamm in Abhängigkeit
von der angeforderten Sprache erben. Jede Sprache, die unterstützt wird,
kann in einem separaten vererbten Dokument definiert werden und
zu einer bewegbaren Rolle verschmolzen werden, um ein endgültiges Dokument
in der Wahlsprache des Benutzers erzeugen.
-
Betrachtet
man das Kombinieren von übereinstimmenden
Knoten, so werden die Quellenbaum-Wurzelknoten immer als Übereinstimmungsknoten
angesehen. Andere Übereinstimmungsknoten
können
durch eine Anzahl von Einrichtungen identifiziert werden. Bei dieser
Ausführungsform
zeigen Element-Identifizierer (Namen) Knoten, die verschmolzen werden. Übereinstimmende
Knoten können
alternativ beispielsweise durch Bezugnahme auf die Grammatik oder
Strukturregeln identifiziert werden, die extern zum Dokument gespeichert
sind, oder Syntax der innerhalb der Dokumente. Ein weiteres Verfahren
zum Identifizieren von Übereinstimmungsknoten
besteht darin, bekannte Elemente in der Struktur eines Dokuments
in Übereinstimmung zu
bringen. Beispielsweise wird ein HTML-Dokument immer ein html-Element
haben und üblicherweise
ein Kopf- und ein Körperelement
haben. Es ist vorher bekannt, dass beide Dokumente, die verschmolzen
werden, html-Dokumente sind, dann das System diese Knoten als Übereinstimmungsknoten
behandeln kann. Ein weiteres Verfahren basiert auf Pfaden in Bezug
auf die Knoten, wobei möglicherweise
ein Werkzeug auf der Basis des XPATH W3C Standards verwendet wird.
Diese können
auch Mehrfach-Übereinstimmung
sein, bei dem ein fester Baumknoten mit mehrfachen bewegbaren Baumknoten übereinstimmt.
Dies kann durch wilde Kartenzeichen angedeutet sein ("Muster"). Eine Anwendung
dieses Mechanismus behandelt das Ergebnis einer Datenbankanfrage
als bewegbarer Rollenbaum.
-
Der
zusammengesetzte Knoten wird von einem Mechanismus gebildet, der
für die
Knoten, die gerade verarbeitet werden, geeignet ist. Beispielsweise
umfasst bei HTML und XML ein Knoten eine Fahne und eine Liste von
benamten Attributen oder eine Textinhaltsfolge.
-
Beispielsweise:
<table id="myTable" border="2">
das
Wort "table2 ist
eine Fahne und die Attribute sind "id" mit
einem Wert von "myTable" und "border" mit einem Wert von "2".
-
Der
Prozess zum Bilden eines zusammengesetzten Knotens kann entweder
den Knoten vom vererbenden Baum oder den Knoten vom vererbten Baum
begünstigen.
Ein Mechanismus zum Verschmelzen von HTML/XML-Fahnen ist der, dass
der zusammengesetzte Knoten die Fahne von dem Knotenpunkt der vererbten
Baums nimmt und die Attributliste zusammenfügt. Wenn der Knoten des vererbten
Baums und der Knoten des vererbenden Baums die gleichen Attribute
haben, wird der Wert des Attributs vom vererbten Baumknoten verwendet.
Von diesem Mechanismus sagt man, dass er den vererbten Baum begünstigt.
Ein alternativer Mechanismus begünstigt
den vererbenden Baum, d.h., er verwendet den Attributwert vom vererbenden
Baum und wo beide das gleiche Attribut haben. Ein weiterer Mechanismus
besteht darin, ein Attribut in einem oder dem anderen Knoten zu
verwenden, um zu zeigen, welcher Knoten zu begünstigen ist. Beispielsweise
zeigt ein Attribut inherit_tag="yes", dass der zusammengesetzte
Knoten aufzubauen ist, indem der vererbte Dokumentknoten begünstigt wird.
Eine Verfeinerung dieses Mechanismus erlaubt es dem System, die
Fahne des vererbten Knotens und die Attribute des vererbenden Knotens
und umgekehrt begünstigen.
Dies kann unter Verwendung eines zweiten Attributs erreicht werden,
beispielsweise "overwrite_attributs"="yes" oder "no". Dieser Attributwert
kann zeigen, ob Fahnen-Attribute mit Werten von dem vererbten Element
zu überschreiben sind.
Alternativ können
Attributwerte miteinander verkettet sein. Das Vorgabe-Verhalten
ist dies, dass ein zusammengesetztes Element die Fahne des vererbten
Knotens erbt, jedoch nicht die Attribute des vererbenden Knotens überschreibt,
d.h., inherit_tag="yes", overwrite_attributes="no".
-
In
der folgenden Beschreibung bezieht sich der Ausdruck "fixed node" auf einen Knoten
von dem Baum, der in der festen Rolle ist, für den Verschmelzungsbetrieb.
Der Ausdruck "movable
node" bezieht sich den
Knoten von dem Baum, der in der bewegbaren Rolle ist. Der Ausdruck "fixed children" bedeutet Ableitungsknoten
des "festen Knotens". Der Ausdruck "movable children" bedeutet Ableitungsknoten
des "bewegbaren
Knotens". Folgendes
sind die Regeln für
die Verschmelzungsschritte.
- • Bäume werden
durch Identifizieren der übereinstimmenden
Knoten verschmolzen.
- • Wurzelknoten
der beiden Bäume
werden immer als übereinstimmende
Knoten behandelt.
- • Der
Wurzelknoten des Zielbaums ist eine Zusammensetzung der Wurzelknoten
der beiden Quellenbäume.
- • Die
Beziehung der Reihenfolge aller Knoten des festen Baums wird bewahrt.
- • Ein
Paar von übereinstimmenden
Knoten verursacht einen einzelnen zusammengesetzten Noten, der dem
Zielbaum in einer Lage des übereinstimmenden
Knotens vom festen Baum hinzuzufügen
ist.
- • Der
zusammengesetzte Knoten kann aus Information im bewegbaren Knoten,
dem festen Knoten oder beiden aufgebaut sein.
- • Ein übereinstimmender
Knoten (und der Hilfsbaum, von dem er die Wurzel ist) vom bewegbaren
Baum wird in die Stelle seines übereinstimmenden
Knotens vom festen Baum verschmolzen.
- • Wenn
der feste Baum einen Platzhalterknoten enthält, werden die bewegbaren Ableitungen
dieses Knotens in die Position des Platzhalters versetzt. Ein Platzhalterknoten
wird anschließend
beschrieben.
- • Ein
nicht-überstimmender
Knoten vom bewegbaren Baum wird dem Zielbaum als eine Ableitung
des Knotens zugefügt,
der seinen Stamm vom bewegbaren Baum zeigt. Wenn es eine Ableitung
des Wurzelknotens gibt, wird diese Ableitung der Wurzel im Zielbaum
gesetzt. Wenn dessen Stamm ein Übereinstimmungsknoten
ist, wird dieser nach den Ableitungsknoten vom übereinstimmenden Knoten des
festen Baums gesetzt, wenn diese Ordnung nicht durch einen Platzhalterknoten
oder einen anderen Übereinstimmungsknoten
modifiziert wird.
- • Wenn
ein Knoten mehr als einen Vorfahr hat, d.h., einen Übereinstimmungsknoten,
wird der relativ zum nächsten übereinstimmende
Vorfahr im Zielbaum gesetzt.
- • Die
Reihenfolge von Nicht-Übereinstimmungsknoten
vom bewegbaren Baum wird beibehalten, wenn diese nicht durch das
Vorhandensein eines Übereinstimmungsknotens
oder eines Platzhalters modifiziert wird.
-
Wenn
es keine Übereinstimmungsknoten
oder Platzhalter gibt, welche die Reihenfolge von Ableitungen beeinträchtigen,
wird normalerweise die Liste von Ableitungen eines zusammengesetzten
Knotens die Liste von Ableitungen vom festen Knoten sein und die
Liste von Ableitungen vom bewegbaren Knoten verkettet sein, so dass
die festen Ableitungen den bewegbaren Ableitungen vorhergehen.
-
Ein "Platzhalter"-Knoten im festen
Baum ist ein Dummy-Konten, der zeigt, dass die Knoten, die diesem vorhergehen,
den Knoten vom bewegbaren Baum in der resultierenden Liste vorherzugehen
sind, während
die Knoten, die darauf folgen, den Knoten vom bewegbaren Baum folgen
müssen.
Effektiv ersetzen die Ableitungen des bewegbaren Knotens den Platzhalterknoten.
Wenn ein Platzhalterknoten einen Namen hat, der mit einem von dessen
Vorfahrknoten übereinstimmt
(d.h., einem der Knoten über
diesen in der Baumstruktur), zeigt dies dann, dass der Platzhalterknoten
durch die Ableitungsknoten der benamten Vorfahr-Übereinstimmungsknoten
des bewegbaren Baums zu ersetzen ist. Wenn der Platzhalter keinen
Namen hat, kann das Vorgabe-Verhalten definiert werden. Ein Beispiel
eines möglichen
Vorgabe-Verhaltens besteht darin, dieses zu behandeln, als ob dieses
den Namen seines unmittelbaren Stamms hat. Bei der bevorzugten XML-Ausführungsform
dieser Erfindung ist das Platzhalterelement das "<extend/>"-Element.
-
Ein
Platzhalterknoten kann zeigen, welches bewegbare Rollendokument
sich darauf bezieht. Dies kann mittels einer zusätzlichen Steuereinstellung
für den
Knoten erreicht werden. Dies kann ein Attribut der XML-Fahne sein,
beispielsweise: <extend
src = "parent list">. Das Vorgabeverhalten bei Nichtvorhandensein dieses
Attributs würde
sein, dass sich der Platzhalter auf alle Dokumente bezieht, welche
in der bewegbaren Rolle vererbt werden.
-
Bei
einigen Anwendungen kann es geeigneter sein, dass Elemente lediglich
vererbt werden, wo diese nicht im vererbenden Dokument existieren,
oder dass übereinstimmende
Elemente vollständig
durch das Element vom vererbten Dokument bevorzugt als verschmolzen
ersetzt werden.
-
Diese
alternativen Arten zum Durchführen
von Vererbung werden als "Vererbungs-Richtlinien" bezeichnet. Acht
Vererbungs-Richtlinien sind definiert: prefer_inherited; prefer_inheriting;
merge; merge_only; lookup_policy; prefer_fixed; prefer_movable;
und ignore. Das Wort "Prefer" zeigt, dass, wenn
einem Übereinstimmungsknoten
begegnet wird, eine Kopie des Knotens (und des Hilfsbaums) lediglich
vom bevorzugten Baum dem Zielbaum hinzugefügt wird. "Merge" zeigt, dass die Knoten und die Hilfsbäume wie
oben beschrieben verschmolzen werden sollen. Die Richtlinie "merge_only" zeigt, dass ein
Knoten vererbt wird und lediglich vermischt wird, wenn er sowohl
in dem vererbten als auch dem zu vererbenden Dokumenten auftritt.
In der lookup_policy wird der bewegbare Rollenbaum wie eine Quelle
behandelt, von welcher der feste Rollenbaum übereinstimmende Knoten aufsammelt
und diese und deren Abkömmlinge
zu seiner Struktur verschmilzt. Elemente, die nicht-übereinstimmen, werden nicht
verschmolzen.
-
Hilfe
für unterschiedliche
Verschmelzungs-Richtlinien ist wichtig, da unterschiedliche Arten
von Inhalt unterschiedliche Handhabung erfordern können. Beispielsweise
sollte ein ausführbarer
Script-Inhalt nicht verschmolzen werden, während ein anderer HTML-Layout-Inhalt verschmolzen
werden kann.
-
Das
System trifft keine Annahmen über
den Inhalt der Dokumente, die verschmolzen werden. Beispielsweise
erzeugt die Datei "buttons.html", die in 3(a) gezeigt ist, einen einzelnen Baum (3(b)). Dies ist für die Zwecke dieser Erfindung
akzeptabel. Der Inhalt buttons.html ist jedoch keine gültige HTML-Datei,
da diese kein oberstes html-Element enthält. Wenn der Syntax der Sprache
eines Dokuments nicht speziell ein einzelnes oberstes Element für ein Dokument
angibt, kann diese Erfindung doch noch angewandt werden, wenn ein
Kopf-Pegel-Element im Analyseschritt synthesiert wird.
-
Wie
in 1 gezeigt ist, kann ein Dokument aus einer Liste
von Dokumenten erben, welche als ihre "inherit list" bezeichnet wird. Vererbung geschieht
in der folgenden Reihenfolge:
- • Rekursives
Durchführen
von Vererbung in Bezug auf jeden Abkömmling des aktuellen Knotens
als separater Baum.
- • Wenn
der laufende Knoten von anderen Dokumenten erbt, wiederum vererben
von jedem Dokument in der Vererbungsliste. Dies wird durch Bilden
eines zusammengesetz ten Knotens vom aktuellen Knoten erreicht und
vom Wurzelknoten des Dokuments, von dem geerbt wird. Der zusammengesetzte
Knoten wird zur Wurzel des Zielbaums. Der Hilfsbaum, der am aktuellen
Knoten beginnt, und der Baum, der durch das Dokument gezeigt wird,
von dem geerbt wird, werden dann unter Verwendung der angezeigten
Richtlinie oder der Vorgabevererbungs-Richtlinie verschmolzen, um
den Zielbaum zu bilden. Der Zielbaum wird dann als Dokument verwendet,
der vom nächsten
vererbten Dokument in der Liste erbt.
-
Da
jeder Abkömmlingsknoten
wie ein separater Baum verarbeitet wird, beeinträchtigt dessen Vererbung nicht
seine Geschwister oder andere Knoten im Baum. Dies ist ein rekursiver
Betrieb, der das Enddokument in einer Ordnung vom Boden nach oben
bildet.
-
Ein
Dokument kann eine Anzahl separater Bäume (Elemente) aufweisen. Dies
kann angewandt werden, wenn ein Baum als Hauptbaum in einem Dokument
identifiziert werden kann. Die anderen Bäume (d.h., diejenigen, die
nicht der Hauptbaum sind) können
als Bäume
zum unmittelbaren oder nicht-unmittelbaren Vererben durch Elemente
innerhalb des Hauptbaums dienen. Diese Anordnung erlaubt, dass ein
einzelnes Dokument wieder verwendbare Elemente innerhalb von diesem
enthalten kann.
-
Der
Verschmelzungsprozess kann unter Verwendung von Parametern verbessert
werden. Beispielsweise können
Attribute des vererbenden Knoten als Parameter zum Vererben dienen.
Unter Verwendung von parametrisierter Vererbung kann jede Vererbungsinstanz
eines Dokuments ein anderes Zieldokument ergeben. Dies ist ein besonders
wichtiges Merkmal, wenn dieses mit einer Script-Ausübungsmaschine
kombiniert wird.
-
In
einigen Fällen
kann es geeigneter sein, Verbundelemente bevorzugt gegenüber diesen
zu verschmelzen zu verschachteln. Als Beispiel sollten Rahmensatz-Elemente
bei HTML unterhalb verschachtelt werden, bevorzugt als zu dem vererbenden
Element zu verschmolzen zu werden. Das Element verschachteln kann
durch einen geeigneten Syntax in der block-strukturierten Sprache
hervorgerufen werden. Bei HTML oder XML könnte dies durch das "verschachtelbare" Attribut geschehen,
welches der offnen Fahne eines Elements hinzugefügt wird. Beispielsweise:
<frameset id="dxe_html_frameset" nestable="yes">
-
Diese
Einstellungen können
extern zum Dokument definiert sein.
-
Wenn
ein Element anzeigt, dass dies von einer Liste anderer Elemente
erbt, wird das Element mit im ersten Element verschmolzen. Der resultierende
Baum wird dann mit dem zweiten aufgelisteten Element verschmolzen
usw., bis die Liste der Elemente erschöpft ist. Eine weitere Ausführungsform
der Erfindung könnte eine
andere Sequenz verwenden, um "multiple
inheritance" durchzuführen. Jedes
vererbte Dokument wird bei einem separaten Verschmelzungsbetrieb
vererbt.
-
Der
Vererbungsbetrieb wird durch Information gesteuert, welche in vererbten
oder zu vererbenden Dokumenten oder sonst wo gespeichert ist. Diese
Steuerinformation wird als "inheritance
attributes" für ein Element
bezeichnet. Die Vererbungsattribute werden in den Dokumenten gespeichert,
wo die Sprache dies unterstützt.
Wenn die Sprache nicht diese Erfordernisse unterstützen kann,
ist es möglich,
die notwendige Information in separaten Steuerdokumenten, Dateien
einer Datenbank zu speichern, oder einige statistische Regeln zu
verwenden, um den Vererbungsprozess einzeln anzugeben und zu steuern.
-
Die
Vererbungsliste kann durch ein Attribut gegenüber der sich öffnenden
Fahne eines Elements beispielsweise so angezeigt werden:
<table extends= "comminTable.html">
-
Der
Wert des Attributs kann wie oben beschrieben statisch sein, oder
kann unter Verwendung einer geeigneten Syntax eine Formel, Gleichung
oder Script sein. Beispielsweise könnte die folgende Syntax zeigen, dass
der Attributwert als Script zu behandeln ist:
<table extends=" {isNetscape0?'netscapeTable.html':'explorerTable.html'}">
-
Der
obige Script ist als Beispiel lediglich als eine Script-Sprachen-Festlegung
angegeben. Es ist beabsichtigt, dass dieser zu interpretieren ist,
als "if the browser
is NetscapeTM then inherit from the file
netscapeTable.html otherwise inherit from the file explorerTable.html".
-
Mehrfachdateien,
welche als "Vererbungsdatei" für das Element
zu spezifizieren sind. Beispielsweise eine durch Komma getrennte
Liste:
<table
extends="commonTable.html,mainTable.html">
-
Der
Syntax erlaubt es außerdem
einem Dokument anzugeben, ob Vererbung in der festen Rolle oder in
der bewegbaren Rolle durchzuführen
ist. Dies kann beispielsweise unter Verwendung eines anderen Attributs
erreicht werden, um Vererbung in jeder Rolle anzuzeigen: beispielsweise
zeigt "extends" Attribut Vererbung
in der bewegbaren Rolle, während "use"-Attribut Vererbung
in der festen Rolle zeigt. Alternativ kann es einen Syntax geben,
welche die Rolle zeigt, in welcher Vererbung durchzuführen ist.
Beispielsweise könnte das
Umschließen
eines Dokumentnamens zeigen, dass das Dokument in der bewegbaren
Rolle bei der Vererbung ist.
-
Es
kann einen Mechanismus für
ein Dokument geben, um zu zeigen, welche Rolle in jeder Vererbung zu
erfüllen
ist. Beispielsweise kann ein html-Dokument, welches verwendet, die
native Sprache einer Seite zu definieren, am nützlichsten sein, wenn diese
in der be wegbaren Rolle geerbt wird. Dies kann mittels eines inherit_role="moveable"-Attributs in der
sich öffnenden
Fahne des html-Elements angezeigt werden (das äußerste Element in einem html-Dokument).
Alternativ kann ein Element innerhalb des Kopfelements des html-Dokuments
die gleiche Tatsache zeigen. Der Versuch, eine derartige Datei in
der festen Rolle zu vererben, bewirkt eine Warnung.
-
Die
vererbte Datei kann durch einen relativen oder absoluten Dateinamen
identifi ziert werden, oder mittels einer anderen Namungs-Konvention,
beispielsweise Internet-URLs. Die Dokumente, welche in der Vererbungsliste
angezeigt werden, können
auf dem gleichen Computer oder auf einem anderen Computer gespeichert
sein, oder sie können
von einer anderen Einrichtungsart wiedergewonnen oder geliefert
werden, beispielsweise über
HTTP.
-
Ein
alternatives Verfahren, um die vererbten Dokumente eines Dokuments
anzuzeigen, besteht darin, eine Verknüpfungs-Fahne zu verwenden:
beispielsweise
<link
href="parent url" type="text/html"/>
-
Die
vererbte Datei muss nicht notwendigerweise ein komplettes Dokument
sein. Da die Vererbung in Bezug auf Element-Element-Basis arbeitet,
ist es möglich,
von einem individuellen Dokument in einem Dokument bevorzugt zu
einem vollständigen
Dokument zu erben. Dies kann dadurch eine geeignete Syntax in der Vererbungsliste
spezifiziert sein. Im Fall von einem URL existiert schon eine geeignete
Syntax – der
Anker in einer URL folgt dem Dateipfad und wird von diesem durch
das Quersummenzeichen "#" getrennt. Dieses
wird dazu verwendet, den Namen eines Elements in einem Dokument
anzugeben. Beispielsweise:
<table
extends="commonTable.html#ctable">
-
Es
ist beabsichtigt, dass diese Funktionalität erweitert werden kann, um
Kopie von Elementen zuzulassen, um Verschmelzung von Tabularinformation,
beispielsweise der Ergebnisse von Datenbankanfragen zu liefern.
Es ist außerdem
beabsichtigt, einen Musterübereinstimmungsmechanismus
zu verwenden, da der Anker eines vererbten Dokuments zusätzliche
Funktionalität
in diesem Zusammenhang bereitstellen wird. Die allgemeine bekannte
Xpath-Sprache ist ein geeigneter Mechanismus hier, da diese bestimmt
ist, Elemente im XML-Dokument zu beschreiben. Außerdem kann die Vererbung unter
Verwendung von Mustern (Wildkarten-Zeichen) in einem Knotenidentifizierer
erweitert werden.
-
Wie
bei jedem URL kann sich ein Dokument auf sich selbst beziehen, indem
es lediglich einen Anker enthält,
beispielsweise "#MYTABELE".
-
Das
folgende ist ein Beispiel, wo die Information, die Vererbung steuert
(die Vererbungsattribute), in separaten Elementen gespeichert ist.
<table>
<nodeName>myTable</nodeName>
<extends>commonTable.html</extends>
<extends>mainTable.html</extends>
<inheritance_policy>merge</inheritance_policy>
</table>
-
Alternativ
kann die gleiche Information als Attribute ausgedrückt werden:
<table id = "mytable" extends = "commonTable.html,
mainTable.html" merge_policy
= "merge">
-
Die
Vererbungsattribute, die verwendet werden, sind in der Tabelle 1
unten gezeigt. Jedes dieser Attribute kann für jedes Element definiert werden:
-
-
Wo
Seiten als Antwort auf Anfragen erzeugt werden, beispielsweise in
einem http-Server
für das
World Wide Web, kann Information, welche in der Anfrage geliefert
wird, verwendet werden, um die Vererbungsliste zu erzeugen. Dies
kann durch Bereitstellen im Text der Anfrage der Namen der vererbten
Seiten erreicht werden. Alternativ könnte ein Teil der Anfrage durch
ein Script oder einen anderen programmierten Agenten verwendet werden,
um die geeignete Liste unter Bezugnahme auf andere Information zu
bestimmen, die von dieser von einer externen Quelle verfügbar ist,
beispielsweise einer Konfigurationsdatei, einer Datenbank oder einem
Sitzungsobjekt, d.h., einem Objekt, welches Information über den
Benutzer und dessen Aktivität
enthält.
-
Wo
ein Dokument eine bekannte Struktur hat, kann dann ein bestimmtes
Vorgabeverhalten in den Verschmelzungsprozess eingebaut werden.
Beispielsweise haben HTML-Dateien
eine Struktur, die aus einem html-Element bestehen, welches ein
Kopfelement und ein Bodenelement enthält. Eine mögliche Kurzregel würde sein,
anzunehmen, dass die Kopfelemente Übereinstimmungsknoten sind
und dass die Körperelemente Übereinstimmungsknoten
sind, wenn html-Dokumente verschmolzen werden. Dies würde die
Notwendigkeit nach dem html-Autor beseitigen, um Übereinstimmungs-id-Werte
in jedem der Elemente zu platzieren.
-
Der
Vererbungsbetrieb, der in 2(a) bis 7(c) gezeigt ist, nutzt einige zusätzliche Übereinstimmungsinformation,
welche im Text der Dokumente nicht expliziert ist. Diese Information
basiert auf der Tatsache, dass html-Dokumente einer bekannten Struktur
folgen, die so ist, dass das oberste Element ein html-Element ist,
und ein html-Element einen Kopf und ein Bodenelement enthält. Wegen
dieser Kenntnis behandelt die Verschmelzungsprozedur den html, den
Kopf und die Körperelemente
der Ableitungs- und Stammdokumente wie Übereinstimmungsknoten. Wenn
diese Kenntnis nicht verfügbar
war, um die Prozedur zu verschmelzen, könnte das gleiche Ergebnis dadurch
erreicht werden, indem "id"-Attribute, die übereinstimmen,
in jeder Fahne eingestellt werden, beispielsweise:
<html id = dxe_html>
<head id = dxe_html_head>
<body id = dxe_html_body>
-
Wie
oben beschrieben wird die vollständige
hierarchische Struktur eines Dokuments zu einem Baum zergliedert.
Bei einer alternativen Anwendung wird lediglich ein Bereich des
Dokuments analysiert und die unteren Pegel der Hierarchie werden
ignoriert. Wenn man wiederum ein HTML-Dokument als Beispiel verwendet, könnte das
System ein html-Dokument
auf eine Maximalanzahl von drei Pegeln zergliedern (analysieren),
d.h., auf den Pegel von individuellen Fahnen innerhalb des Kopfes
des Bodenelements, wobei jedes Element bei diesem Pegel wie ein
Blatt der Baumstruktur behandelt wird.
-
Stränge (verknüpfter Inhalt),
welche in separaten Dokumenten definiert sind, können Verknüpfungen zu anderer Information
enthalten. Diese Verknüpfungen
können
entweder absolute oder relative Verknüpfungen sein. Relative Verknüpfungen
verwenden als Startpunkt die Lage der Verknüpfung. Wenn die relative Verknüpfung auf
eine andere Stelle kopiert wird, was beispielsweise vorkommt, wenn
Vererbung stattfindet, wird die relative Verknüpfung ungültig werden. Daher stellt die
Erfindung das Abbilden von relativen Verknüpfungen zu absoluten Verknüpfungen
bereit, bevor diese zu einem neuen Dokument vererbt werden. Ein
Mechanismus, diese Abbildung zu unterbinden, ist ebenfalls vorgesehen.
Das Umsetzen einer Verknüpfung
von einer relativen Verknüpfung
in eine absolute Verknüpfung
ist einfacher Betrieb. Wenn beispielsweise eine Datei an einer Stelle
www.docland.com/index.html mit dem Wert "products.html" gespeichert ist. Dies hat die absolute
url zur Folge:
www.docland.com/products.html.
-
Man
hat sich vorgestellt, dass die vorliegende Erfindung zusätzliche
Funktionalität
aufweisen kann. Man sich vorgestellt, dass beispielsweise Inhalt,
beispielsweise JavaScript-Elemente
vorverarbeitet werden könnten,
um Fehler zu lokalisieren und Funktion sicherzustellen und variable
Namen nicht zusammenprallen, und allgemein, um verlässlichere
Unterstützung
für die
erweiterte Funktionalität
durchzuführen,
die durch diese Erfindung bereitgestellt wird. Dies würde die
Entwicklungszeit für
Web-sites weiter reduzieren.
-
Man
hat sich vorgestellt, dass unter Verwendung der vorliegenden Erfindung
Software-Verlässlichkeit verbessert
wird, da die Funktionalität
jedes Strangs unmittelbar geprüft
werden kann. Inhaltsstränge
können bei
vielen Dokumenten wieder verwendet werden. Außerdem kann ein Strang, der
einmal ausgeführt
wurde, wieder hergenommen werden, um die Leistung oder Funktionalität zu verbessern.
Fehler, welche von Abhängigkeiten
zwischen verschiedenen Teilen eines Dokuments auftreten, können minimiert
werden, da diese untereinander abhängigen Elemente zusammenverpackt
und zusammenvererbt werden können.
-
Man
wird es schätzen,
dass, wo die Erfindung in einem Browser (kundenseitige Durchführung) durchgeführt wird,
diese wesentlich die Kommunikationsbandbreite reduzieren kann, die
erforderlich ist, Seiten vom Server zum Kunden zu übertragen.
Dieser Vorteil entsteht aus der Tatsache, dass vererbte Dokumente
vom Server zum Kunden einmal übertragen
werden können
und auf der Maschine des Kunden gespeichert werden können. Der
Kunde kann diese gespeicherte Kopie für jede nachfolgende Vererbungsseite
wieder verwenden. Dieser Vorteil wird besonders nützlich für Einrichtungen
sein, welche durch Schmalbandbreitenkanäle, beispielsweise mobile drahtlose
Einrichtungen verbunden sind.
-
Ein
Hauptvorteil ist der, dass die Erfindung einen Weg bereitstellt,
bei dem deutlich separate Informationsstränge von unterschiedlichen Quellendokumenten
kombiniert werden, die wieder verwendet werden können, um ein Zieldokument zu
bilden, um somit ein System auf "Komponenten"-Basis zum Erzeugen
von Dokumenten zu unterstützen.
-
Die
vorliegende Erfindung ist nicht auf HTML beschränkt, sondern kann auf einem
weiten Bereich von Sprachen auf Blockstruktur angewandt werden,
beispielsweise: WML, XML, XH#TML, DHTML oder weitere SGML-Ableitungen.
Die vorliegende Erfindung kann auch bei anderen block-strukturierten
Sprachen, beispielsweise Benutzerschnittstellen-Resource-Dateien
angewandt werden, auf Programmiersprachen Pascal und C, und auch
auf Sprachen, die verwendet werden, 2- oder 3-dimensionale Layouts
und Strukturen oder integrierten Schaltungen zu definieren. Die
Erfindung wendet sich außerdem
auf Spra chen und Datenstrukturen, die verwendet werden, Wissenschafts-,
Ingenieur- oder Geschäftsinformation;
Spiele, Kryptographie und andere Bereiche von Informationstechnologie
zu speichern. Die vorliegende Erfindung sieht außerdem eine Weise vor, Dokumente
und Sammlungen von Dokumenten durch Beseitigung von Kopierinhalt
zu komprimieren.
-
Es
ist weiter vorteilhaft, dass, wenn block-strukturierte Sprache bei
der Darstellung der Erfindung in diesen Dateien erläutert wurde,
diese die gesamte elektronische Information umfasst.
-
Es
ist außerdem
vorteilhaft, dass die Erfindung bei Dokumenten angewandt werden
kann, ohne aktuell einen vollständigen
Baum für
beide Dokumente zu bilden. Eine alternative Ausführungsform dieser Erfindung kann
auf den gleichen Verschmelzungsprozess angewandt werden, ohne eine
vollständige
hierarchische Darstellung der Dokumente zu bilden.
-
Es
soll weiter als vorteilhaft anerkannt werden, dass die Darstellung
der hierarchischen Datenstruktur für ein Dokument in einer Vielzahl
von Arten gespeichert werden kann, beispielsweise in einem Computerspeicher
mit wahlfreiem Zugriff, in bezogenen, Objektorientierten oder hierarchischen
Datenbank-Verwaltungssystemen oder in Plattendateien.
-
Die
Erfindung ist nicht auf die Ausführungsformen,
die beschrieben wurden, beschränkt,
sondern kann bezüglich
Konstruktion und Detail variiert werden.