DE69400870T2 - Dynamisches verknüpfungssystem - Google Patents

Dynamisches verknüpfungssystem

Info

Publication number
DE69400870T2
DE69400870T2 DE69400870T DE69400870T DE69400870T2 DE 69400870 T2 DE69400870 T2 DE 69400870T2 DE 69400870 T DE69400870 T DE 69400870T DE 69400870 T DE69400870 T DE 69400870T DE 69400870 T2 DE69400870 T2 DE 69400870T2
Authority
DE
Germany
Prior art keywords
document
command
anchor
anchor object
link
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69400870T
Other languages
English (en)
Other versions
DE69400870D1 (de
Inventor
David Anderson
Jack Palevitch
Larry Rosenstein
Arnold Schaeffer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Object Technology Licensing Corp
Original Assignee
Taligent Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Taligent Inc filed Critical Taligent Inc
Application granted granted Critical
Publication of DE69400870D1 publication Critical patent/DE69400870D1/de
Publication of DE69400870T2 publication Critical patent/DE69400870T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/134Hyperlinking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)

Description

    Copyright-Hinweis
  • Diese Patentanmeldung enthält urheberrechtlich geschütztes Material, dessen Reproduktion nur als Teil der Patentanmeldung zu informativen Zwecken gestattet ist. Alle anderen Rechte, insbesondere das Recht zur kommerziellen Verwertung derartigen Materials, sind vorbehalten.
  • Gebiet der Erfindung
  • Diese Erfindung betrifft im allgemeinen Verbesserungen von Computersystemen und insbesondere ein System und ein Verfahren zum Verknüpfen von Vorgängen und Bereichen von Informationen zwischen Dokumenten.
  • Hintergrund der Erfindung
  • Die Dokumentenverarbeitung stellt die derzeit vorherrschende Anwendung bei der Personal-Computer-Technologie dar. Beispiele für moderne Textverarbeitungstechnologie umfassen das Textverarbeitungsprogramm WordPerfect und das Word-Textverarbeitungsprogramm von der Microsoft Corporation. Diese Produkte sind dazu geeignet, auf verschiedenen Betriebssystemen und unterschiedlichen Hardware-Plattformen zu laufen. Es wäre komfortabel, wenn es möglich wäre, Informationen zwischen Anwendungen gemeinsam zu verwenden, die auf einer einzigen Hardware-Plattform vorhanden sind. Diese Fähigkeit wurde in manche Anwendung hartkodiert, wobei eine automatische Aktualisierung der Geschäftsgrafikdaten durch Bearbeiten einer Grafiktabelle ermöglicht wird, wie dies im US-Patent 4.674.043 dargestellt wird. Andere Beispiele zum Verknüpfen einer gespeicherten Datei mit einem anderen Dokument finden sich im Benutzerhandbuch von Microsoft Windows, Version 3.1, auf den Seiten 487-514, wo eine kalte Verknüpfungsfähigkeit beschrieben wird. Auf den Seiten 494-495 des Dokumentes werden die Schritte zum Erstellen einer Verknüpfung zwischen einem gespeicherten Dokument und einem anderen Dokument beschrieben. Im beschriebenen System werden Änderungen am verknüpften Dokument, das auf Platte gespeichert wird, in jenem Dokument widerspiegelt, welches die Verknüpfung enthält.
  • Die dynamische Verankerung von Informationen in einem ersten Dokument und der Austausch von Aktualisierungen auf der Basis von Maßnahmen, die gemäß der vorliegenden Erfindung in einem zweiten Dokument durchgeführt werden, ist in der heutigen Textverarbeitungsumgebung nicht möglich.
  • Zusammenfassung der Erfindung
  • Demgemäß ist es eine Hauptaufgabe der vorliegenden Erfindung gemäß den beiliegenden Patentansprüchen, ein System und ein Verfahren zur Auswahl einer Position in einem ersten Dokument, zur Auswahl einer Position in einem zweiten Dokument, zur Durchführung einer Maßnahme am zweiten Dokument und zur automatischen Durchführung derselben Maßnahme am ersten Dokument an der festgelegten Position zu schaffen. Eine alternative Ausführungsform verknüpft ein erstes Objekt mit einem zweiten Objekt und führt eine Maßnahme durch, wie zum Beispiel das Starten einer Anwendung des zweiten Objektes, und führt eine Maßnahme durch, wie zum Beispiel das Starten einer Anwendung des zweiten Objektes, und merkt sich die Position, an der auf das Dokument zuletzt zugegriffen wurde. Eine andere Ausführungsform, welche als Ganzmodell-Ausführungsform bezeichnet wird, erstellt einen Anker zu einem gesamten Objekt. Der Anker ermöglicht, daß eine Maßnahme am gesamten Objekt ausgeführt werden kann. Um zum Beispiel Daten aus einem Zwischenablageobjekt zu kopieren, wird der Kopieren-Befehl auf den Gesamtobjektanker des Zwischenablageobjektes gerichtet. Eine weitere Ausführungsform schafft einen Anker, der das erste falsch geschriebene Wort oder den höchsten Wert in einem Dokument oder einem Tabellenkalkulationsblatt darstellt.
  • Kurze Beschreibung der Zeichnungen
  • Figur 1 ist ein Blockdiagramm eines Personal-Computer- Systems gemäß einer bevorzugten Ausführungsform;
  • Figur 2 ist eine Abbildung einer Dokumentendarstellung mit einem ausgewählten Bereich und einem Anker gemäß einer bevorzugten Ausführungsform;
  • Figur 3 ist ein Flußdiagramm, welches die durchgeführten Verarbeitungsschritte gemäß einer bevorzugten Ausführungsform darstellt;
  • Figur 4 ist eine Abbildung einer Dokumentendarstellung, welche zwei Dokumente mit ihren entsprechenden Ankern zeigt;
  • Figur 5 ist eine Abbildung einer Dokumentendarstellung, wenn ein erster Befehl an einem ersten Dokument gemäß einer bevorzugten Ausführungsform ausgeführt wurde; und
  • Figur 6 ist eine Abbildung einer Dokumentendarstellung, wenn ein erster Befehl an einem zweiten, verankerten Dokument gemäß einer bevorzugten Ausführungsform ausgeführt wurde.
  • Genaue Beschreibung der Erfindung
  • Die Erfindung wird vorzugsweise im Zusammenhang mit einem Betriebssystem ausgeführt, das sich auf einem Personal-Computer, wie zum Beispiel dem IBM PS/2 oder dem Apple Macintosh Computer, befindet. Eine repräsentative Hardwareumgebung wird in Figur 1 dargestellt, welche eine typische Hardware-Konfiguration einer Workstation gemäß der vorliegenden Erfindung darstellt und eine zentrale Recheneinheit 10, wie zum Beispiel einen herkömmlichen Mikroprozessor, und eine Anzahl anderer Einheiten umfaßt, die über einen Systembus 12 miteinander verbunden sind. Die in Figur 1 dargestellte Workstation umfaßt einen Direktzugriffsspeicher (RAM) 14, einen Nur-Lese-Speicher (ROM) 16, einen E/A- Adapter 18 zum Anschluß von Peripheriegeräten, wie zum Beispiel Disketteneinheiten 20, am Bus, einen Benutzerschnittstellenadapter 22 zum Anschluß einer Tastatur 24, einer Maus 26, eines Lautsprechers 28, eines Mikrophons 32 und/oder anderer Benutzerschnittstellengeräte, wie zum Beispiel eines Tast-Bildschirms (nicht dargestellt) am Bus, einen Kommunikationsadapter 34 zum Anschluß der Workstation an einem datenverarbeitenden Netzwerk und einen Anzeigenadapter 36 für den Anschluß eines Anzeigegerätes 38 am Bus. Typischerweise befindet sich auf der Workstation ein Betriebssystems, wie zum Beispiel das Apple System/7 - Betriebssystem.
  • In einer bevorzugten Ausführungsform wird die Erfindung in der Programmiersprache C++ mit Hilfe von objektorientierten Programmiertechniken implementiert. Ein Fachmann wird verstehen, daß es sich bei objektorientierten Programmierobjekten (OOP-Objekte) um Softwareeinheiten handelt, welche Datenstrukturen umfassen sowie Operationen, die auf die Daten wirken. Gemeinsam werden Objekte durch die Elemente dazu befähigt, nahezu jede Echtwelteinheit bezüglich deren Eigenschaften, welche durch deren Datenelemente dargestellt werden, zu modellieren, und deren Verhalten wird durch deren Datenmanipulationsfunktionen dargestellt. Auf diese Weise können Objekte konkrete Dinge wie zum Beispiel Personen und Computer modellieren, und sie können abstrakte Konzepte, wie zum Beispiel Zahlen oder geometrische Konzepte, modellieren. Die Vorteile der Objekttechnologie ergeben sich aus drei Grundprinzipien: Einkapselung, Polymorphismus und Vererbung.
  • Objekte verstecken die internen Strukturen ihrer Daten und die Algorithmen, nach denen ihre Funktionen arbeiten, bzw. kapseln diese ein. Anstatt diese Implementierungsdetails offenzulegen, präsentieren Objekte Schnittstellen, welche deren Abstraktionen säuberlich ohne unwesentliche Informationen darstellen. Polymorphismus ist eine weitere Stufe der Einkapselung. Der Gedanke, der dahintersteckt, ist: viele Formen, eine Schnittstelle. Eine Softwarekomponente kann eine Anforderung an eine andere Komponente stellen, ohne genau zu wissen, worum es sich bei dieser Komponente handelt. Die Komponente, welche die Anforderung erhält, interpretiert diese und berechnet aufgrund ihrer Variablen und Daten, wie die Anforderung auszuführen sei. Das dritte Prinzip ist die Vererbung, welche es Entwicklern ermöglicht, bereits bestehende Konstruktionen und Codes wieder zu verwenden. Durch diese Fähigkeit müssen Entwickler eine Software nicht immer von Grund auf neu erstellen. Stattdessen können Entwickler durch die Vererbung Subklassen ableiten, welche die Verhaltensweisen erben, die dann vom Entwickler den jeweiligen besonderen Anforderungen angepaßt werden.
  • Ein Ansatz des Standes der Technik besteht darin, Objekte und Klassenbibliotheken in einer Prozedurumgebung zu schichten. Viele am Markt befindliche Anwendungsrahmenwerke verwenden diesen Konstruktionsansatz. In dieser Konstruktion befinden sich ein oder mehrere Objektschichten an der Spitze eines monolithischen Betriebssystems. Wenngleich dieser Ansatz alle Prinzipien der Einkapselung, des Polymorphismus und der Vererbung in der Objektschicht verwendet und eine wesentliche Verbesserung gegenüber den Prozedurprogrammiertechniken darstellt, weist dieser Ansatz auch gewisse Einschränkungen auf. Diese Probleme ergeben sich aus der Tatsache, daß es für einen Entwickler zwar einfach ist, seine eigenen Objekte wiederzuverwenden, aber schwierig ist, Objekte aus anderen Systemen zu verwenden, und der Entwickler daher immer noch gezwungen ist, mit prozeduralen Betriebssystemaufrufen (OS-Aufrufe) in tiefere Nichtobjekt-Schichten einzugreifen.
  • Ein weiterer Aspekt des objektorientierten Programmierens ist ein Rahmenwerkansatz für die Anwendungsentwicklung. Eine der besten Definitionen für Rahmenwerke stammt von Ralph E. Johnson von der Universität von Illinois und Vincent F. Russo von Purdue. In ihrem 1991 veröffentlichten Papier mit dem Titel Wiederverwendung von objektorientierten Designs, technischer Bericht UIUCDCS91-1696 von der Universität in Illinois, bieten sie folgende Definition an: "Eine abstrakte Klasse ist eine Konstruktion einer Reihe von Objekten, welche zusammenarbeiten, um eine Reihe von Pflichten auszuüben. Somit stellt ein Rahmenwerk eine Reihe von Objektklassen dar, welche zusammenarbeiten, um festgelegte Gruppen von Berechnungspflichten auszuführen." Vom Standpunkt des Programmierens her betrachtet handelt es sich bei Rahmenwerken im wesentlichen um Gruppen miteinander verbundener Objektklassen, welche eine vorgefertigte Struktur einer Arbeitsanwendung bieten. So könnte zum Beispiel ein Anwenderschnittstellenrahmenwerk die Unterstützung und das "Standard"-Verhalten zum Zeichnen von Fenstern, Rollbalken, Menüs usw. bieten. Da Rahmenwerke auf Objekttechnologie basieren, kann dieses Verhalten vererbt und außer Kraft gesetzt werden, damit Entwickler das Rahmenwerk erweitern und maßgeschneiderte Lösungen auf einem speziellen Wissensgebiet erstellen können. Dies ist ein wichtiger Vorteil gegenüber der herkömmlichen Programmierung, da der Programmierer nicht den ursprünglichen Code verändert, sondern stattdessen die Software erweitert. Darüberhinaus arbeiten sich Entwickler nicht blind durch Schichten von Codes hindurch, weil das Rahmenwerk eine strukturelle Führung und Modellierung bietet, zur selben Zeit aber auch den Entwickler befreit, um dann die spezifischen Maßnahmen, die für den jeweiligen Problembereich einzigartig sind, treffen zu können.
  • Von einer geschäftlichen Perspektive betrachtet können Rahmenwerke als eine Möglichkeit angesehen werden, Expertenwissen in einem bestimmten Wissensbereich einzukapseln oder aufzunehmen. Firmeneigene Entwicklungsorganisationen, Unabhängige Softwareverkäufer (ISV) und Systemintegratoren haben Fachwissen in bestimmten Bereichen erworben, wie zum Beispiel bei der Herstellung, Buchhaltung oder bei Währungsumwandlungen. Dieses Fachwissen wird in ihren Code aufgenommen. Rahmenwerke ermöglichen es diesen Entwicklungsorganisationen, die allgemeinen Merkmale dieses Fachwissens durch Aufnahme in den Code der Organisation festzulegen und zu verpacken. Zum ersten erhalten Entwickler dadurch die Möglichkeit, eine Anwendung, welche das Fachwissen verwendet, zu erstellen oder zu erweitern, wodurch das Problem einmal gelöst wird und die Geschäftsregeln und die Konstruktion verstärkt und auf konsistente Weise angewendet werden. Ebenso sind Rahmenwerke und das in den Rahmenwerken steckende Fachwissen auch von strategischem Wert für jene Organisationen, die sich Fachwissen in vertikalen Märkten erarbeitet haben, wie zum Beispiel in der Fertigung, der Buchhaltung oder der Biotechnologie, und somit einen Verteilungsmechanismus für die Verpackung, den Wiederverkauf und die Ausnutzung ihres Fachwissens und den weiteren Fortschritt und die Ausbreitung der Technologie gefunden haben.
  • Historisch gesehen haben sich die Rahmenwerke erst in jüngster Zeit als ein Hauptströmungskonzept auf Computerplattformen entwickelt. Diese Migration wurde durch die Verfügbarkeit objektorientierter Sprachen wie zum Beispiel C++ unterstützt. Traditionellerweise wurde C++ am häufigsten auf UNIX-Systemen und den Workstations von Forschern verwendet, und kaum auf Computern in kommerziellen Umgebungen. Sprachen wie C++ und andere objektorientierte Sprachen, wie zum Beispiel Smalltalk und andere, haben einer Reihe von Universitäts- und Forschungsprojekten geholfen, die Vorläufer der heutigen kommerziellen Rahmenwerke und Klassenbibliotheken zu schaffen. Einige Beispiele dafür wären Interviews von der Stanford-Universität, der Andrew- Befehlssatz von der Carnegie-Mellon Universität und das ET++-Rahmenwerk von der Zürich-Universität.
  • Es gibt, je nach Niveau des Systems und der Art des Problems, viele Arten von Rahmenwerken. Die Arten der Rahmenwerke reichen von Anwendungsrahmenwerken, die bei der Entwicklung von Anwenderschnittstellen helfen, bis hin zu Rahmenwerken niedrigerer Ebene, welche grundlegende Systemsoftwaredienste wie zum Beispiel Kommunikation, Drucken, Ablagesystemunterstützung, Graphik usw. bieten. Kommerzielle Beispiele von Anwendungsrahmenwerken sind MacApp (Apple), Bedrock (Symantec), OWL (Borland), NeXTStep App Kit (NeXT), und Smalltalk-80 MVC (ParcPlace).
  • Das Programmieren mit Rahmenwerken erfordert von den Entwicklern, die an andere Systemarten gewöhnt sind, eine neue Art des Denkens. Tatsächlich handelt es sich hierbei nicht mehr um das "Programmieren" im herkömmlichen Sinn. In älteren Betriebssystemen, wie zum Beispiel in DOS oder UNIX, schafft das eigene Programm des Entwicklers die gesamte Struktur. Das Betriebssystem bietet Dienstleistungen durch Systemaufrufe - das Programm des Entwicklers führt diese Aufrufe durch, wenn es die Dienstleistung benötigt, und die Kontrolle kehrt wieder zurück, nachdem die Dienstleistung zur Verfügung gestellt wurde. Die Programmstruktur basiert auf der Flußkontrolle, welche im Code enthalten ist, den der Entwickler schreibt.
  • Wenn Rahmenwerke verwendet werden, ist dies genau umgekehrt. Der Entwickler ist nicht mehr für die Flußkontrolle verantwortlich. Der Entwickler muß auf die Tendenz verzichten, die Programmieraufgaben in bezug auf den Fluß der Ausführung verstehen zu wollen. Stattdessen muß sich das Denken auf die Verantwortlichkeiten der Objekte richten, welche sich auf das Rahmenwerk verlassen müssen, um zu bestimmen, wann die Tasks ausgeführt werden sollten. Vom Entwickler geschriebene Routinen werden von einem Code aktiviert, den der Entwickler nicht geschrieben hat, und den der Entwickler niemals sieht. Dieser Flipflop-Vorgang im Kontrollfluß kann eine wesentliche psychologische Barriere für Entwickler darstellen, die nur über Erfahrungen im prozeduralen Programmieren verfügen. Wenn dies jedoch einmal begriffen wird, erfordert das Rahmenwerk-Programmieren wesentlich weniger Aufwand als andere Arten des Programmierens.
  • Ähnlich wie ein Anwendungsrahmenwerk dem Entwickler vorgefertigte Funktionalität bietet, übertragen Systemrahmenwerke, wie zum Beispiel jenes, das in einer bevorzugten Ausführungsform enthalten ist, dasselbe Konzept, indem sie Dienstleistungen auf Systemebene bieten, welche Entwickler, wie zum Beispiel Systemprogrammierer, verwenden, um Unterklassen zu bilden bzw. außer Kraft zu setzen, um maßgeschneiderte Lösungen zu schaffen. Man stelle sich zum Beispiel ein Multimedia-Rahmenwerk vor, welches die Grundlage für die Unterstützung von neuen und unterschiedlichen Geräten wie zum Beispiel Audio, Video, MIDI, Animationen, usw. bieten sollte. Der Entwickler, der eine neue Art von Gerät unterstützen soll, müßte einen Gerätetreiber schreiben. Um dies mit einem Rahmenwerk durchzuführen, muß der Entwickler nur die Eigenschaften und das Verhalten unterstützen, welches dem neuen Gerät eigentümlich ist.
  • Der Entwickler bietet in diesem Fall eine Implementierung für bestimmte Mitgliederfunktionen, die vom Multimedia-Rahmenwerk aufgerufen werden. Ein unmittelbarer Vorteil für den Entwickler ist die Tatsache, daß der generische Code, der für die einzelnen Gerätekategorien benötigt wird, bereits vom Multimedia-Rahmenwerk zur Verfügung gestellt wird. Dies bedeutet, daß der Entwickler des Gerätetreibers weniger Code schreiben, testen und weniger Fehler beseitigen muß. Ein weiteres Beispiel für die Anwendung des Systemrahmenwerkes wären getrennte E/A-Rahmenwerke für SCSI- Geräte, NuBus-Karten und graphische Geräte. Weil es in diesem Zusammenhang eine vererbte Funktionalität gibt, bietet jedes einzelne Rahmenwerk Unterstützung für allgemeine Funktionalitäten, die in seiner Gerätekategorie enthalten sind. Andere Entwickler könnten dann von diesen konsistenten Schnittstellen zu allen Arten von Geräten Gebrauch machen.
  • Eine bevorzugte Ausführungsform übernimmt das Konzept der Rahmenwerke und wendet dieses im gesamten System an. Für den kommerziellen oder firmeninternen Entwickler, den Systemintegrator oder OEM bedeutet dies, daß all die Vorteile, die für ein Rahmenwerk wie zum Beispiel MacApp dargestellt wurden, nicht nur auf die Anwendungsebene für solche Dinge wie Text und Anwenderschnittstellen übertragen werden können, sondern auch auf die Systemebene, für Dienstleistungen wie zum Beispiel Graphiken, Multimedia, Dateisysteme, E/A, Testdurchführung, usw.
  • Die Anwendungserstellung in der Architektur einer bevorzugten Ausführungsform ist im wesentlichen gleich wie das Schreiben bereichsspezifischer Puzzleteilchen, die dem Rahmenwerkprotokoll unterstellt sind. Auf diese Weise ändert sich das gesamte Konzept des Programmierens. Anstelle des Schreibens einer Codezeile nach der anderen, welche mehrfache API-Hierarchien aufrufen, wird Software nunmehr entwickelt, indem Klassen von bereits bestehenden Rahmenwerken innerhalb dieser Umgebung abgeleitet werden, und indem danach je nach Bedarf neues Verhalten hinzugefügt und/oder vererbtes Verhalten außer Kraft gesetzt wird.
  • Somit wird die Anwendung des Entwicklers zu einer Sammlung von Code, der geschrieben und von allen anderen Rahmenwerkanwendungen gleichermaßen benutzt wird. Dies stellt ein sehr mächtiges Konzept dar, weil Entwickler dadurch in der Lage sind, auf der Arbeit anderer aufzubauen. Dies gibt dem Entwickler auch die Flexibilität, ein Programm je nach Bedarf mehr oder weniger maßzuschneidern. Manche Rahmenwerke werden genau so verwendet werden, wie sie sind. In manchen Fällen wird das Ausmaß der maßgeschneiderten Anpassung minimal sein, so daß das Puzzleteilchen, das der Entwickler einfügt, ein kleines ist. In anderen Fällen kann der Entwickler sehr großzügige Veränderungen durchführen und etwas völlig neues schaffen. In einer bevorzugten Ausführungsform, wie sie in Figur 1 dargestellt ist, ist ein Programm, das sich im RAM 14 befindet und der Kontrolle der CPU 10 unterliegt, für die Verwaltung verschiedener Tasks unter Verwendung eines objektorientierten graphischen Rahmenwerks verantwortlich.
  • Überblick über Synchronisierungsverknüpfungen
  • Die Dokumentarchitektur des Systems stellt die Technologie für die Verknüpfung zur Verfügung. Ein Teil dieser Architektur umfaßt die Darstellung und die Befehle für datenorientierte Allzweck-Verknüpfungen. Die Verknüpfungsarchitektur wird auch verwendet, um andere Eigenschaften zu implementieren, die vielleicht keine Ähnlichkeit mit der datenverknüpfenden Allzweck-Anwenderschnittstelle aufweisen, wie zum Beispiel die Anmerkungserstellung. Darüberhinaus können dritte Entwickler die Verknüpfungsarchitektur verwenden, um spezielle Fähigkeiten in ihre eigenen Anwendungen einzubinden, wie zum Beispiel einen Kalender oder eine klassische Hypertextumgebung.
  • Eine Synchronisierungsverknüpfung ermöglicht es, daß dieselben Informationen an mehr als nur einem Ort gesehen werden können. Die Häufigkeit und Richtung, mit welcher der beiden Informationsteile gegenseitig aktualisiert werden, können an beiden Enden der Verknüpfung gesteuert werden. Ein Verknüpfungsanker ist der besondere sichtbare Hinweis auf den Umfang der verknüpften Daten in einem Dokument.
  • Verknüpfungen erstellen
  • Das Erstellen einer Synchronisierungsverknüpfung ist dem Ausschneiden/Kopieren und Einfügen sehr ähnlich. Um eine Verknüpfung zu initiieren, wählt ein Anwender einige Daten aus, wobei er die für den Datentyp erforderliche und geeignete Vorrichtung verwendet. Mit Hilfe der Menübefehle kopiert der Anwender nun die Auswahl. Danach wählt der Anwender am gewünschten Bestimmungsort einen Befehl aus einem Menüpunkt aus und wählt einen weiteren Befehl aus der sich daraus ergebenden Dialogbox. Etwas kann kopiert und danach einmal oder mehrmals als Verknüpfung eingefügt werden, selbst nachdem das Quelldokument geschlossen wurde. Wenn das ursprüngliche Quelldokument wieder geöffnet wird, zeigt es den Verknüpfungsanker, woher die Quelldaten kopiert wurden.
  • Ein direktes Manipulationsverfahren bestünde darin, ein spezielles 'Ziehen-mit-Verknüpfung'-Werkzeug auszuwählen, um die Auswahl zur neuen Position zu ziehen. Durch Gedrückthalten der Options- und Befehlstasten erhielte man eine Tastaturkombination zum Aufruf dieses Werkzeugs. Dadurch wird die Semantik der beiden anderen Modifizierungstasten zusammengefügt - der Optionstaste für das Kopieren und der Befehlstaste für die Referenzverknüpfung.
  • Die Modifizierungstasten stellen daher eine Abkürzung für den Aufruf eines Werkzeugs dar. Das Befehlsmenü 'Verknüpfungseinstellungen' steht zur Verfügung, nachdem eine Auswahl eingefügt wurde (oder nach Wunsch verschoben wurde) und noch ausgewählt ist. Danach könnte ein Anwender etwas auf gewöhnliche Weise kopieren und einfügen und danach, während die eingefügte Information noch ausgewählt ist, die Verknüpfung aufrufen, um den Befehl an einem anderen Dokument auszuführen.
  • Löschen
  • Das Löschen einer Verknüpfung, die nur Informationen empfängt, würde genauso erfolgen wie das Löschen eines beliebigen anderen Objektes. Das Quellobjekt würde an einem Punkt darüber informiert werden, daß der Empfänger nicht mehr existiert. Das Löschen einer Verknüpfung, welche Informationen aussendet, kann einen Warnhinweis erforderlich machen, um den Anwender darauf hinzuweisen, daß das Löschen der Verknüpfung Teile des anderen Dokuments beeinflussen wird. Wenn ein Dokument geöffnet wird, zeigt ein Hinweis an, daß die sendende Verknüpfung nicht mehr existiert. Wenn eine Verknüpfungsquelle gelöscht wird, werden ihre empfangenden Verknüpfungen zu eingebetteten oder absorbierten Daten.
  • Bearbeiten von Daten
  • Ein Anwender interagiert mit verknüpften Daten so wie mit allen anderen eingebetteten oder absorbierten Daten. Wenn verknüpfte Daten ausgewählt werden, stehen die Anker, welche das Ausmaß der Verknüpfung und die Befehle, die zu den Verknüpfungseigenschaften gehören, in den Menüs zur Verfügung. Je nach den Vorrechten des Dokuments und den Eigenschaften der Verknüpfung kann der Anwender in der Lage sein, uneingeschränkt Bearbeitungen und Änderungen durchzuführen, oder er kann darauf eingeschränkt sein, nur Auswahlen an den Daten vorzunehmen. Wenn verknüpfte Daten an beiden Enden bearbeitbar sind, erscheinen Änderungen, die an einem Ende durchgeführt wurden, auch am anderen Ende, und zwar in Übereinstimmung mit der Häufigkeit, mit der die Verknüpfung aktualisiert wird.
  • Wenn die Informationen einer Verknüpfung nur von einem Ende zum anderen fließen, können die Daten am empfangenden Ende nicht bearbeitet werden, aber sie können ausgewählt werden. Wörter und Sätze können zum Beispiel innerhalb eines Absatzes des verknüpften Textes ausgewählt werden. Die Vorrechte eines Dokumentes können auch Auswirkungen auf die Bearbeitbarkeit einer Verknüpfung innerhalb dieses Dokumentes haben. Verknüpfte Informationen können in einem gesperrten Dokument zwar ausgewählt, nicht aber bearbeitet werden. Auswahlen, welche Verknüpfungen enthalten, behalten ihre Verknüpfungen bei, wenn sie kopiert und eingefügt werden. Zum Beispiel wird beim Kopieren und Einfügen eines Wortes aus einem verknüpften Satz auch die Verknüpfung kopiert und eingefügt. Der Befehl 'Inhalte einfügen' würde es ermöglichen, Daten ohne die Verknüpfung einzufügen. Verknüpfte Erweiterungen können Verknüpfungen enthalten und sich mit anderen verknüpften Bereichen überlappen.
  • Wie sehr die Informationen an einem Ende der Verknüpfung verändert werden können, ohne das andere Ende der Verknüpfung zu beeinflussen, hängt von der Implementierung des jeweiligen Datentyps ab. Es ist möglich, daß Anwender durch die Verwendung von Formatvorlagen lokale Änderungen an verknüpften Daten durchführen können.
  • Der Verknüpfung folgen
  • Das andere Ende der Verknüpfung kann gefunden werden, indem besondere Präferenzen (Menüpunkte 'Info holen' oder 'Info verknüpfen') an der Verknüpfung festgelegt werden. Ein Präferenzen-Panel enthält eine aktuelle Referenzverknüpfung zu einem anderen Ende. Oder zumindest könnte sie eine Schaltfläche mit der Aufschrift "Quelle öffnen", "Ziel öffnen", "Anderes Ende öffnen" oder eine Liste der anderen Enden der Verknüpfung enthalten, wenn es mehr als nur eines gibt.
  • Häufigkeit und Richtung der Aktualisierung
  • Eine neu erstellte Synchronisationsverknüpfung wird mit bestimmten Standardeigenschaften erstellt. Eine neue Verknüpfung schickt Daten auf Befehl vom Anwender und in eine einzige Richtung - von der Quelle zum Bestimmungsort. Sie kann am Bestimmungsort nicht bearbeitet werden. Diese Einstellungen wurden so gewählt, weil sie sicher und leicht zu verstehen sind. An den Daten durchgeführte Änderungen fließen nur in jene Richtung, in welche die Verknüpfung erstellt wurde - nämlich von dort, wo die Verknüpfung erstellt wurde, bis zur neuen Position. Änderungen an den Daten erfolgen nur dann, wenn der Anwender die Durchführung der Änderungen anfordert. Der Anwender muß ausdrücklich die Option aktivieren, daß Änderungen an den Daten in beide Richtungen fließen oder häufiger aktualisiert werden.
  • Präferenzen für die Verknüpfung können alle diese Einstellungen an beiden Enden der Verknüpfung ändern. Auf das Präferenzen-Panel kann immer zugegriffen werden, sobald der Verknüpfungsanker sichtbar ist. Ein Präferenzen-Panel für eine ausgewählte Verknüpfung enthält alle im folgenden angeführten Informationen und Befehle:
  • Geschichte der Verknüpfung: erstellt in ... geht zu ... zuletzt aktualisiert am ...
  • Zeitpunkt der Aktualisierung: (standardmäßig: nicht ausgewählt)
  • - beim Schließen
  • - beim Öffnen
  • - zu einem bestimmten Datum und Zeitpunkt
  • - nach Häufigkeit
  • Quelle/Bestimmungsort/Anderes Enddokument öffnen
  • Verknüpfung aufheben
  • Jetzt aktualisieren
  • Bearbeitung am Bestimmungsort ermöglichen (Zwei-Weg- Verknüpfung)
  • Änderungen an den Daten können zum anderen Ende der Verknüpfung "geschoben" werden. Wenn das Dokument, welches das andere Ende der Verknüpfung enthält, offen ist, empfängt es die Meldung, daß neue Informationen zur Verfügung stehen. Wenn das empfangende Dokument zu diesem Zeitpunkt geschlossen ist, empfängt es die Meldung und die neuen Informationen, wenn es geöffnet wird. Eine Verknüpfung kann Daten auch vom anderen Ende der Verknüpfung "ziehen". Dies kann unabhängig davon geschehen, ob das Dokument, welches das andere Ende enthält, geöffnet oder geschlossen ist. Wenn keine Änderungen am anderen Ende vorgenommen worden sind, werden sich die empfangenen Daten nicht sichtbar ändern.
  • Eine bevorzugte Ausführungsform erzeugt dynamische Anker, die auf eine unveränderliche Auswahl oder eine synchronisierte Verknüpfung analogisiert werden können. Auswahlen werden verwendet, um einen Bereich (angrenzend oder nicht angrenzend) von Text oder Tabellenkalkulationszellen oder eine bestimmte Grafik in einem Zeichendokument auszuwählen. Ein Beispiel für eine Auswahl wird in Figur 2 bei 210 dargestellt. Ein Anker ist eine Auswahl, welche über eine bestimmte Zeit gültig ist und den Rückruf der Auswahl durch irgendeine andere Vorrichtung ermöglicht. Für gewöhnlich ist ein Markierer 220 mit der Auswahl verbunden. Ein Anwender kann auf den Markierer klicken, um die Auswahl wieder aktuell zu machen. Eine Verknüpfung in einer bevorzugten Ausführungsform ist eine Verbindung zwischen zwei Ankern. Ein Beispiel für eine dynamische Ankeroperation liegt vor, wenn zwei Auswahlen und zwei unterstützte Operationen Daten über eine Verknüpfung schieben und Daten auf die Verknüpfung ziehen. Eine einzigartige Eigenschaft einer bevorzugten Ausführungsform besteht in der Fähigkeit, eine dynamische Position anstelle einer unbeweglichen Position für die Verknüpfung zu unterstützen.
  • Wenn ein Anwender zum Beispiel zwei Textverarbeitungsdokumente A und B hat und ein Anker mit einem Absatz im Dokument A verbunden ist und ein entsprechender Absatz im Dokument B ebenfalls mit einem weiteren Anker verbunden ist, können die Daten zwischen den beiden Dokumenten mit Hilfe von Schieb- und Ziehbefehlen vor- und zurückgeleitet werden. Das Interessante an den dynamischen Ankern ist die Tatsache, daß der Bestimmungsort solange ungebunden bleibt, bis die Verknüpfung aktiviert wird. Anstatt sich an eine spezifische Auswahl in einem Dokument anzubinden, kann eine dynamische Verbindung 'hindurchtreten'. Ein Rechtschreibprüfer kann zum Beispiel auf dynamische Weise an ein Dokument angebunden sein, um das erste falsch geschriebene Wort im Dokument auszuwählen. Alternativ dazu könnte durch Anbindung an ein Tabellenkalkulationsblatt der größte Wert im Tabellenkalkulationsblatt ausgewählt werden. Grundsätzlich ermöglicht der dynamische Anker die Durchführung einer Laufzeitberechnung, um die aktuellen, spezifischen physikalischen Daten zu bestimmen, mit denen man verknüpft ist.
  • Angenommen, es liegt ein Verknüpfungsmodell des Standes der Technik vor, in welchem alles im Modell ausgewählt wurde und mit welchem eine Verknüpfung verbunden ist: wenn an diesem Modell nun Hinzufügungen vorgenommen werden, enthält die Verknüpfung nicht die neu hinzugefügten Daten, sondern nur das, was ursprünglich ausgewählt war. Bei dem dynamischen Ganzmodell-Anker einer bevorzugten Ausführungsform sind alle Daten des Modells enthalten, unabhängig davon, wieviel später hinzugefügt worden war. Der Anker wird zum Zeitpunkt der Datenanforderung berechnet. Wenn danach weitere Daten zum Modell hinzugefügt werden, berechnet es einen anderen Bereich für den Anker als jenen, der ursprünglich aktiv gewesen wäre. Eine Kopie der Daten in einem Modell wird geladen, wenn ein Kopiervorgang von der Zwischenablage durchgeführt wird. Danach wird ein Verknüpfungsveröffentlichungsvorgang zum dynamischen Anker durchgeführt, welcher alle Daten in diesem Modell darstellt, und so oft ein Einfügen der Daten aus der Zwischenablage angefordert wird, wird eine Abfrage der Verknüpfung durchgeführt, um die Daten über die Verknüpfung zu ziehen. Diese Architektur macht sich die Implementierung dynamischer Anker zunutze und erweitert die Fähigkeit, Informationen über Anker und Verknüpfungen zu ziehen, um eine Zwischenablage zu implementieren. Kein spezieller Code wird benötigt außer jenem, der zum normalen Schieben und Ziehen von Daten über eine Verknüpfung erforderlich ist.
  • Figur 3 ist ein Flußdiagramm, welches die Verarbeitung darstellt, die gemäß einer bevorzugten Ausführungsform hindurchtritt. Die Verarbeitung beginnt am Punkt 300 und geht sofort zum Funktionsblock 310 weiter, wo das erste und das zweite Objekt geöffnet werden. Bei den Objekten könnte es sich um Dokumente, grafische Bilder, Tabellenkalkulationsblätter oder andere Computeranwendungen handeln. Danach wird am Funktionsblock 320 eine Ankerposition in den beiden Objekten erstellt. Der Anker markiert nur einen Auswahlbereich und legt auf abstrakte Weise eine Handlung fest. Die Handlung wird ausgeführt zur darauffolgenden Zeit oder zur Nachschlagezeit. Der Funktionsblock 330 zeigt die Erstellungsverarbeitung für den folgenden Befehl auf der Startseite (start_side) . Diese Verarbeitung wählt die Position der Verknüpfung aus und erzeugt den folgenden Befehl an der Startseite des Dokumentes. Wenngleich in diesem Beispiel sowohl die Startseite (start_side) als auch die Bestimmungsseite (dest_side) in zwei unterschiedlichen Dokumenten vorhanden ist, kann ein Fachmann doch leicht erkennen, daß sich die beiden Anker im selben Dokument befinden könnten. Danach wird am Funktionsblock 340 der Befehl zur Bestimmungsseite (dest_side) zum Anker des anderen Dokumentes gesandt. Der Sendevorgang verursacht die Abfrage der Verknüpfung, wie dies im Funktionsblock 350 dargestellt ist, die Einstellung der Auswahl gleich dem Anker, und das Rollen der Position des Ankers in die Darstellung, wie dies im Funktionsblock 360 enthalten ist. Danach wird der an der Startseite (start_side) angewandte Befehl an der Bestimmungsseite (dest_side) angewandt, wie dies im Funktionsblock 370 dargestellt ist. Schließlich wird die Verarbeitung am Punkt 380 abgeschlossen.
  • Figur 4 ist eine Abbildung einer Dokumentendarstellung, welche zwei Dokumente mit ihren entsprechenden Ankern zeigt. Die beiden Anker erscheinen bei 410 und 420 als strichlierte Linien rund um den ausgewählten Bereich. Wie oben beschrieben ermöglicht es der Anker im Quelldokument 410, daß ein Befehl, der am Quelldokument ausgeführt wurde, auf das verankerte Bestimmungsdokument angewandt wird. Figur 5 ist eine Abbildung einer Dokumentendarstellung, wenn ein erster Befehl an einem ersten Dokument gemäß einer bevorzugten Ausführungsform ausgeführt wurde. In diesem Fall handelt es sich bei dem Befehl um eine Aktualisierung der Verkaufszahlen, welche im verankerten Bereich 500 erscheinen.
  • Figur 6 ist eine Abbildung einer Dokumentendarstellung, wenn ein erster Befehl an einem zweiten verankerten Dokument gemäß einer bevorzugten Ausführungsform ausgeführt wurde. In Figur 6 wurde im Quelldokument ein Befehl auf den verankerten Bereich bei 600 ausgeübt. Der verankerte Bereich zeigt die selben Änderungen, wie sie am Quelldokument vorgenommen wurden. Alternativ dazu könnte in Figur 6 der größte Wert im Tabellenkalkulationsblatt vom dynamischen Anker bei 600 ausgewählt werden. Grundsätzlich ermöglicht der dynamische Anker die Durchführung einer Laufzeitberechnung, um die aktuellen, spezifischen physikalischen Daten zu bestimmen, die für einen Anwender von Interesse sind. ANKER Programmlisting C++ Sprache

Claims (16)

1. Eine Einrichtung zur Gestaltung eines Dokuments unter der Steuerung eines Anwendungsprogramms, enthaltend
(a) einen Prozessor;
(b) einen an den Prozessor angeschlossenen Speicher;
(c) eine Anzeigevorrichtung unter der Steuerung des Prozessors;
(d) ein Dokument, das in dem Speicher resident ist und auf der Anzeigevorrichtung dargestellt wird;
besagte Einrichtung ist gekennzeichnet durch:
(e) durch das Anwendungsprogramm gesteuerte Mittel zur Auswahl eines ersten Teiles des Dokuments und zur Bildung eines ersten Ankerobjekts im Speicher, das mit dem ersten Teiles des Dokuments verbunden ist;
(f) durch das Anwendungsprogramm gesteuerte Mittel zur Bildung eines zweiten Ankerobjekts im Speicher, das mit dem Dokuments verbunden ist;
(g) durch das Anwendungsprogramm gesteuerte Mittel zur Erzeugung eines Verbindungsobjekts im Speicher zur Kopplung des ersten und des zweiten Ankerobjekts;
(h) im ersten Ankerobjekt enthaltene und durch das Anwendungsprogramm gesteuerte Mittel zur Anwendung eines Kommandos auf den ersten ausgewählten Teil des Dokuments;
(i) im ersten Ankerobjekt enthaltene Mittel zur Übertragung des Kommandos zum zweiten Ankerobjekt durch Wirkung des Verbindungsobjekts; und
(j) Mittel, die im zweiten Ankerobjekt enthalten sind und auf das Kommando ansprechen zur Auswahl eines zweiten Teils des Dokuments.
2. Die Einrichtung nach Anspruch 1, worin das erste Ankerobjekt durch das Anwendungsprogramm gesteuerte Mittel zur Darstellung des ersten ausgewählten Teils des Dokuments durch Anzeige einer geometrischen Umrißlinie als Umrandung des ersten ausgewählten Teils des Dokuments.
3. Die Einrichtung nach Anspruch 1, worin das Verbindungsobjekt Mittel enthält, die auf Änderungen im ersten Teil des Dokuments ansprechen und unter Wirkung des Verbindungsobjekts Informationen zum zweiten Ankerobjekt übertragen.
4. Die Einrichtung nach Anspruch 1, worin das Verbindungsobjekt Mittel enthält, die auf Änderungen im ersten Teil des Dokuments ansprechen und unter Wirkung des Verbindungsobjekts auf Informationen im zweiten Ankerobjekt zugreifen.
5. Die Einrichtung nach Anspruch 1, worin das Verbindungsobjekt Mittel enthält, die auf Änderungen im ersten Teil des Dokuments ansprechen zur Anwendung eines Abfragekommandos auf das zweite Ankerobjekt, und das zweiten Ankerobjekt Mittel enthält zur Auswahl eines zweiten Teils des Dokuments auf der Basis des Abfragekommandos.
6. Die Einrichtung nach Anspruch 5, worin das Verbindungsobjekt Mittel enthält, die auf Änderungen im ersten Teil des Dokuments ansprechen zur Anwendung eines Kommandos zur Durchführung einer Rechtschreibprüfung auf das zweite Ankerobjekt, und das zweite Ankerobjekt Mittel enthält zur Auswahl eines zweiten Teils des Dokuments auf der Basis des Kommandos zur Durchführung einer Rechtschreibprüfung.
7. Die Einrichtung nach Anspruch 5, worin das Verbindungsobjekt Mittel enthält, die auf Änderungen im ersten Teil des Dokuments ansprechen zur Anwendung eines Kommandos für die Auswahl des größten Wertes auf das zweite Ankerobjekt, und das zweite Ankerobjekt Mittel enthält zur Auswahl eines zweiten Teils des Dokuments auf der Basis des Kommandos für die Auswahl des größten Wertes.
8. Die Einrichtung nach Anspruch 5, worin das Verbindungsobjekt Mittel enthält, die auf Änderungen im ersten Teil des Dokuments ansprechen zur Anwendung eines Kommandos für die Auswahl des kleinsten Wertes auf das zweite Ankerobjekt, und das zweite Ankerobjekt Mittel enthält zur Auswahl eines zweiten Teils des Dokuments auf der Basis des Kommandos für die Auswahl des kleinsten Wertes
9. Ein Verfahren zur Gestaltung eines Dokuments unter der Steuerung eines Anwendungsprogramms, enthaltend die Schritte:
(a) Laden eines Dokuments in den Speicher und darstellen des Dokuments auf der Anzeigevorrichtung;
(b) Auswahl eines ersten Teiles des Dokuments und Bildung eines ersten Ankerobjekts, das mit dem ersten Teiles des Dokuments im Speicher verbunden ist;
(c) Bildung eines zweiten Ankerobjekts im Speicher, das mit dem Dokuments verbunden ist;
(d) Erzeugung eines Verbindungsobjekts im Speicher zur Kopplung des ersten und des zweiten Ankerobjekts;
(e) Anwendung eines Kommandos auf den ersten ausgewählten Teil des Dokuments;
(f) Übertragung des Kommandos zum zweiten Ankerobjekt unter Wirkung des Verbindungsobjekts; und
(g) Empfang des Kommandos im zweiten Ankerobjekt und Auswahl eines zweiten Teils des Dokuments auf der Basis des Kommandos.
10. Das Verfahren nach Anspruch 9, worin Schritt (b) den Schritt enthält:
(b1) Darstellung des ersten ausgewählten Teils des Dokuments durch Anzeige einer geometrischen Umrißlinie als Umrandung des ersten ausgewählten Teils des Dokuments.
11. Das Verfahren nach Anspruch 9, worin Schritt (f) den Schritt enthält:
(f1) Übertragen von Informationen zum zweiten Ankerobjekt als Antwort auf ein Kommando, das vom ersten Ankerobjekt empfangen wird.
12. Das Verfahren nach Anspruch 9, worin Schritt (f) den Schritt enthält:
(f2) Zugriff zu Informationen vom zweiten Ankerobjekt als Antwort auf ein Kommando, das vom ersten Ankerobjekt empfangen wird.
13. Das Verfahren nach Anspruch 10, worin Schritt (f) den Schritt enthält:
(f3) Anwenden eines Abfragekommandos auf das zweite Ankerobjekt;
(g1) Auswahl eines zweiten Teils des Dokuments auf der Basis des Abfragekommandos.
14. Das Verfahren nach Anspruch 13, worin Schritt (f3) den Schritt enthält:
(f3a) Anwendung eines Kommandos zur Durchführung einer Rechtschreibprüfung auf das zweite Ankerobjekt.
15. Das Verfahren nach Anspruch 13, worin Schritt (f3) den Schritt enthält:
(f3b) Anwendung eines Kommandos für die Auswahl des größten Wertes auf das zweite Ankerobjekt:
16. Das Verfahren nach Anspruch 13, worin Schritt (f3) den Schritt enthält:
(f3c) Anwendung eines Kommandos für die Auswahl des kleinsten Wertes auf das zweite Ankerobjekt.
DE69400870T 1993-07-19 1994-01-03 Dynamisches verknüpfungssystem Expired - Lifetime DE69400870T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US9465793A 1993-07-19 1993-07-19
PCT/US1994/000099 WO1995003574A1 (en) 1993-07-19 1994-01-03 Dynamic linking system

Publications (2)

Publication Number Publication Date
DE69400870D1 DE69400870D1 (de) 1996-12-12
DE69400870T2 true DE69400870T2 (de) 1997-05-15

Family

ID=22246417

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69400870T Expired - Lifetime DE69400870T2 (de) 1993-07-19 1994-01-03 Dynamisches verknüpfungssystem

Country Status (8)

Country Link
US (1) US5787448A (de)
EP (1) EP0689692B1 (de)
JP (1) JPH09500465A (de)
CN (1) CN1110064A (de)
AU (1) AU5990894A (de)
CA (1) CA2155357C (de)
DE (1) DE69400870T2 (de)
WO (1) WO1995003574A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19840000A1 (de) * 1998-09-02 2000-03-09 Esg Elektroniksystem Und Logis Verfahren zum Herstellen von Verweisen zwischen Dateien von Datenbanken und Computernetzwerk
DE19911653A1 (de) * 1999-03-16 2000-09-21 Asea Brown Boveri Verfahren zum selektiven Importieren von Daten in ein Tabellenkalkulationsprogramm

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537526A (en) * 1993-11-12 1996-07-16 Taugent, Inc. Method and apparatus for processing a display document utilizing a system level document framework
US5838906A (en) 1994-10-17 1998-11-17 The Regents Of The University Of California Distributed hypermedia method for automatically invoking external application providing interaction and display of embedded objects within a hypermedia document
US5805159A (en) * 1996-08-22 1998-09-08 International Business Machines Corporation Mobile client computer interdependent display data fields
US6438620B2 (en) * 1996-10-29 2002-08-20 Mitsubishi Denki Kabushiki Kaisha Software linking system in information processor
US5987454A (en) * 1997-06-09 1999-11-16 Hobbs; Allen Method and apparatus for selectively augmenting retrieved text, numbers, maps, charts, still pictures and/or graphics, moving pictures and/or graphics and audio information from a network resource
US6910184B1 (en) * 1997-07-25 2005-06-21 Ricoh Company, Ltd. Document information management system
JPH11110194A (ja) * 1997-10-06 1999-04-23 Toshiba Corp 外部ライブラリ関数との結合方法ならびに同方法がプログラムされ記録される記録媒体
US6061698A (en) * 1997-10-22 2000-05-09 International Business Machines Corporation Merging tagged documents and scripts having dynamic content
US6883176B1 (en) 1999-12-15 2005-04-19 Gateway, Inc. Method and apparatus for launching applications based upon electronic program guide data
US20040210842A1 (en) * 2000-05-23 2004-10-21 Jaffer Qamar Portable computing system for editing and linking text and mathematical expressions
JP2002108845A (ja) * 2000-09-26 2002-04-12 Canon Inc 情報処理装置及びその方法、コンピュータ可読メモリ
CN1591404A (zh) * 2001-11-09 2005-03-09 无锡永中科技有限公司 多版本数据处理***
JP4039884B2 (ja) * 2002-05-16 2008-01-30 株式会社リコー 情報仮置き場管理方法、情報仮置き場管理装置、画像形成装置、プログラム及び記憶媒体
DE10304885A1 (de) * 2003-02-06 2004-08-26 Brandenburgische Technische Universität Cottbus Verfahren und Computereinrichtung zum automatischen Verarbeiten eines Systembestandteils in einer Computer-Betriebsumgebung
US8402384B2 (en) * 2004-11-09 2013-03-19 Research In Motion Limited Dynamic bar oriented user interface
US20070130369A1 (en) * 2005-12-06 2007-06-07 Vasant Nayak Email and Taskmanaging Software
US8219920B2 (en) * 2006-08-04 2012-07-10 Apple Inc. Methods and systems for managing to do items or notes or electronic messages
US8261197B2 (en) * 2006-08-04 2012-09-04 Apple Inc. Methods and systems for managing to do items or notes or electronic messages
US8037021B2 (en) * 2007-06-10 2011-10-11 Apple Inc. Calendaring techniques and interfaces
US8824803B2 (en) 2012-08-31 2014-09-02 Ancestry.Com Operations Inc. Automated field position linking of indexed data to digital images
CN106294372B (zh) * 2015-05-15 2019-06-25 阿里巴巴集团控股有限公司 应用程序页面快速访问方法及应用其的移动终端
JP7423953B2 (ja) * 2019-09-20 2024-01-30 富士フイルムビジネスイノベーション株式会社 情報処理装置及び情報処理プログラム

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4821220A (en) * 1986-07-25 1989-04-11 Tektronix, Inc. System for animating program operation and displaying time-based relationships
US4885717A (en) * 1986-09-25 1989-12-05 Tektronix, Inc. System for graphically representing operation of object-oriented programs
US5142618A (en) * 1986-11-21 1992-08-25 Hitachi, Ltd. Window management apparatus for a document creating apparatus
US5226161A (en) * 1987-08-21 1993-07-06 Wang Laboratories, Inc. Integration of data between typed data structures by mutual direct invocation between data managers corresponding to data types
US4891630A (en) * 1988-04-22 1990-01-02 Friedman Mark B Computer vision system with improved object orientation technique
US4953080A (en) * 1988-04-25 1990-08-28 Hewlett-Packard Company Object management facility for maintaining data in a computer system
EP0347162A3 (de) * 1988-06-14 1990-09-12 Tektronix, Inc. Einrichtung und Verfahren zum Steuern von Datenflussprozessen durch erzeugte Befehlsfolgen
US5041992A (en) * 1988-10-24 1991-08-20 University Of Pittsburgh Interactive method of developing software interfaces
US4975690A (en) * 1988-11-07 1990-12-04 Ibm Corporation Method for concurrent data entry and manipulation in multiple applications
US5133075A (en) * 1988-12-19 1992-07-21 Hewlett-Packard Company Method of monitoring changes in attribute values of object in an object-oriented database
US5050090A (en) * 1989-03-30 1991-09-17 R. J. Reynolds Tobacco Company Object placement method and apparatus
US5157384A (en) * 1989-04-28 1992-10-20 International Business Machines Corporation Advanced user interface
US5060276A (en) * 1989-05-31 1991-10-22 At&T Bell Laboratories Technique for object orientation detection using a feed-forward neural network
US5125091A (en) * 1989-06-08 1992-06-23 Hazox Corporation Object oriented control of real-time processing
US5181162A (en) * 1989-12-06 1993-01-19 Eastman Kodak Company Document management and production system
US5093914A (en) * 1989-12-15 1992-03-03 At&T Bell Laboratories Method of controlling the execution of object-oriented programs
US5075848A (en) * 1989-12-22 1991-12-24 Intel Corporation Object lifetime control in an object-oriented memory protection mechanism
US5151987A (en) * 1990-10-23 1992-09-29 International Business Machines Corporation Recovery objects in an object oriented computing environment
EP0500262B1 (de) * 1991-02-15 2000-03-29 Sun Microsystems, Inc. Verfahren und Gerät zur Verwaltung von erweiterbaren Verbindungen zwischen Anwendungsprogrammen
US5430836A (en) * 1991-03-01 1995-07-04 Ast Research, Inc. Application control module for common user access interface
US5119475A (en) * 1991-03-13 1992-06-02 Schlumberger Technology Corporation Object-oriented framework for menu definition
JPH05225181A (ja) * 1991-03-14 1993-09-03 Nec Corp 編集装置
FR2690260B1 (fr) * 1992-04-17 1997-01-03 Bull Sa Utilisation d'un protocole bidirectionnel de tres haut niveau pour la communication entre un systeme hypermedia et une pluralite d'editeurs.
US5396630A (en) * 1992-10-06 1995-03-07 International Business Machines Corporation Method and system for object management across process boundries in a data processing system
US5412772A (en) * 1992-10-13 1995-05-02 Novell, Inc. System for permitting a view of an object or a user interface to be exchanged between operating system environments
US5437006A (en) * 1993-01-27 1995-07-25 Microsoft Corporation Spreadsheet command/function capability from a dynamic-link library
US5559942A (en) * 1993-05-10 1996-09-24 Apple Computer, Inc. Method and apparatus for providing a note for an application program
US5481666A (en) * 1993-08-25 1996-01-02 Taligent, Inc. Object-oriented navigation system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19840000A1 (de) * 1998-09-02 2000-03-09 Esg Elektroniksystem Und Logis Verfahren zum Herstellen von Verweisen zwischen Dateien von Datenbanken und Computernetzwerk
DE19911653A1 (de) * 1999-03-16 2000-09-21 Asea Brown Boveri Verfahren zum selektiven Importieren von Daten in ein Tabellenkalkulationsprogramm

Also Published As

Publication number Publication date
JPH09500465A (ja) 1997-01-14
US5787448A (en) 1998-07-28
AU5990894A (en) 1995-02-20
CN1110064A (zh) 1995-10-11
CA2155357A1 (en) 1995-02-02
EP0689692A1 (de) 1996-01-03
EP0689692B1 (de) 1996-11-06
WO1995003574A1 (en) 1995-02-02
DE69400870D1 (de) 1996-12-12
CA2155357C (en) 2001-12-18

Similar Documents

Publication Publication Date Title
DE69400870T2 (de) Dynamisches verknüpfungssystem
DE69402523T2 (de) Objektorientiertes systembestimmungssystem
DE69402540T2 (de) Rahmen-system für dokumente
DE69303289T2 (de) Steuersystem für anzeigemenüzustand
DE69400204T2 (de) Ladesystem
DE69400436T2 (de) Run-time lader
DE69304928T2 (de) Atomares befehlsystem
DE69310214T2 (de) Dialogsystem
DE69310202T2 (de) Internationales datenverarbeitungssystem
DE69310187T2 (de) Objektorientiertes fachwerksystem
DE60319229T2 (de) Verfahren und system zur erweiterung der api eines dateisystems
DE69400230T2 (de) Objektorientiertes konstruktivflaechensystem
DE69400433T2 (de) Kollaboratives arbeitssystem
DE69310201T2 (de) Objektorientierte applikationsschnittstelle.
DE69400862T2 (de) Kollaboratives arbeitssystem
DE3586273T2 (de) Implizite erzeugung einer superblockstruktur in einem vieldaten-edierungsgeraet.
DE69310188T2 (de) Objektorientiertes bestaetigungssystem
DE3586274T2 (de) Vieldaten-edierungsgeraet mit gebrauch von attributstroemen fuer textobjekte.
DE3586272T2 (de) Integriertes vieldaten-edierungsgeraet.
Meyrowitz Intermedia: The architecture and construction of an object-oriented hypemedia system and applications framework
DE10135445B4 (de) Integriertes Verfahren für das Schaffen einer aktualisierbaren Netzabfrage
DE69402417T2 (de) Objektorientiertes interprozesskommunikationssystem
DE69635337T2 (de) Erweiterbares und austauschbares system von netzwerkkomponenten
DE10121790B4 (de) Softwarekonfigurationsverfahren zur Verwendung in einem Computersystem
DE60133343T2 (de) Verfahren und System in einem elektronischen Kalkulationsblatt für die Handhabung von benutzerdefinierten Optionen in einer Ausschneiden-Kopieren-Einfügen-Funktion

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: OBJECT TECHNOLOGY LICENSING CORP., CUPERTINO, CALI