DE3855152T2 - Verteiltes Computersystem - Google Patents
Verteiltes ComputersystemInfo
- Publication number
- DE3855152T2 DE3855152T2 DE3855152T DE3855152T DE3855152T2 DE 3855152 T2 DE3855152 T2 DE 3855152T2 DE 3855152 T DE3855152 T DE 3855152T DE 3855152 T DE3855152 T DE 3855152T DE 3855152 T2 DE3855152 T2 DE 3855152T2
- Authority
- DE
- Germany
- Prior art keywords
- database
- text data
- interest
- file
- speech
- 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 - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S379/00—Telephonic communications
- Y10S379/902—Auto-switch for an incoming voice data, or fax telephone call, e.g. comp/fax/tel
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S379/00—Telephonic communications
- Y10S379/908—Multimedia
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
- Y10S707/99945—Object-oriented database structure processing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
- Diese Erfindung betrifft verteilte Digitalcomputersysteme (einschließlich Systemen mit heterogenen Betriebsumgebungen) und im besonderen Verfahren und Einrichtungen, die (1) Benutzern solcher Systeme ermöglichen, datenintensive Dateien, z.B. digitale Sprach- und Musikdateien, "eingescannte" Bilddateien sowie Trickbilddeteien oder Deteien mit bewegtem Video, zu erzeugen, zu manipulieren, daran teilzuhaben und praktisch unbeschränkt zu benutzen, während (2) die Notwendigkeit vermieden wird, mehrfache Copien von solchen Dateien zu erstellen, zu speichern und zu handhaben, und (3) den solchen Dateien zugeteilten Speicherraum wiederzuverwenden, wenn sie nicht mehr gebraucht werden.
- Herkömmliche verteilte Computersysteme haben begrenzte Anwender für alphanumerische und einfache graphische Kommunikation (hierin kollektiv als "Textkommunikation" bezeichnet), wenngleich Sprache, Video und sogar Musikmedien für die zwischenmenschliche Kommunikation oft leistungsfähiger und wirkungsvoller sind. Andere haben die Notwendigkeit erkannt, solche Systeme ausreichend zu erweitern, um die Nicht- Text-Kommunikation als eine Alternative oder Ergänzung zur Textkommunikation zu unterstützen. Erhebliche Bemühungen und Kosten sind z.B. sowohl der Entwicklung von Sprachnachrichtensystemen als auch der Entwicklung von Multimediasystemen, um Text mit Sprache zu kommentieren, gewidmet worden. Sprache ist das Nicht-Text-Kommunikationsmedium, das zur Verwendung in verteilten Computersystemen - weitesten untersucht worden ist, so daß diese Erfindung in diese Kontext beschrieben werden wird, um ein repräsentatives Beispiel zur Verfügung zu stellen. Dessen ungeachtet versteht sich, daß die breiteren Aspekte dieser Erfindung auch auf andere Arten von datenintensiven Nicht-Text-Kommunikationen in verteilten Computersystemen anwendbar sind.
- Verschiedene interessierende und potentiell wichtige Vorteile fließen vom Umgehen mit Sprach- und anderen Nicht-Textmedien als Daten in eine verteilte Rechenumgebung. Siehe Nicholson, "Integrating Voice in the Office World", Byte, Band 8, Nr. 12, Dez. 1983, Seiten 177-184. Sie ermöglicht, Nicht-Textmedien in elektronische Briefnachrichten und in Anmerkungen, die sich auf gewöhnliche Textdateien beziehen, sowie in Aufforderungen und andere interaktive Nachrichten, die die Benutzerschnittstelle der Rechenumgebung zur Verfügung stellt, leicht einzubeziehen. Kurz gesagt, eine derartige Handhabung erlaubt den Benutzern, diese Nicht-Text-Datendateien in ziemlich derselben Weise wie sie herkömmliche Textdateien handhaben, zu erzeugen zu manipulieren und daran teilzuhaben, und ermöglicht den Programmierern, Funktionen, die solche Nicht-Text-Datendateien einschließen, allgemein in derselben Weise zu implementieren, wie sie Funktionen, die Textdateien umfassen, implementieren.
- Sprach- und andere Nicht-Text-Datendateien unterscheiden sich jedoch wesentlich von gewöhnlichen Text-Datendateien. Zum Beispiel können klassische Workstations keine Sprach-Datendateien in Analogform aufzeichnen oder abspielen, so daß für diesen Zweck besondere Einrichtungen benötigt werden. Noch wichtiger, Sprach-Datendateien sind typischer viel größer als Textdateien, die dieselben Wörter enthalten. In der Tat verbraucht die Aufzeichnung unverdichteter Sprache mit normaler Telefonqualität etwa 64 kBit Speicher pro Sekunde, was mehrere Größenordnungen größer ist als die Speicherkapazität, die für eine gleichwertige Passage von geschriebenem Text benötigt wird. Noch ein anderer zu berücksichtigender Faktor ist, daß es für das Übertragen von Sprache strenge Echtzeitforderungen gibt, weil unbeabeichtigte Pausen oder das Zerhacken von Wörtern bei der Wiedergabe von Sprache ein Wahrnehmungsproblem erzeugt, das das Bestreben zu kommunizieren stört oder gar zunichte macht.
- Benutzer von verteilten Computersystemen befinden sich gelegentlich in heterogenen Rechenumgebungen mit diversen Netzwerkdieneten, die unter Verwendung von verschiedenen Übertragungsprotokollen durchgeführt werden. Außerdem kann der Verkehr zwischen solchen Rechenumgebungen über ein Vielfalt von öffentlichen oder privaten Netzbetreibern geleitet werden, was vorstellbar verschiedene Leitungsschaltschemas umfassen kann. Gateways sind entwickelt worden, um Textnachrichtenverkehr zwischen heterogenen Umgebungen zu vermitteln, so daß der Wert und der Nutzen von Nicht-Text-Übertragungen in solchen Systemen zum wesentlichen Teil von der Einfachheit abhängen kann, mit der Nicht-Text- Kommunikationen über solche Gateways übermittelt werden können.
- Andere haben einige der Probleme angesprochen, die zu lösen sind, um Sprach- und ähnliche Nicht-Text-Kommunikationen in verteilten Rechenumgebungen durchzuführen. Der 'Sydis Information Manager' benutzt besondere Workstations (genannt "VoiceStations") zum Aufnehmen, Editieren und Wiedergeben von Sprache. Siehe Nicholson, "Integrating Voice in the Office World", Byte, Band 8, Nr. 12, Dez. 1983, Seiten 177- 184. Außerdem ist ein System zum Integrieren von Sprache und Daten für einfache Workstation-Anwendungen beschrieben worden, nämlich Ruiz, "Voice and Telephone Applications for the Office Workstation", Proceedings 1st International Conference on Computer Workststions, San Jose, Ca., November 1985, Seiten 158-163. Sprachspeichersysteme mit Einrichtungen zum Aufzeichnen, Editieren und Abspielen von Sprache sind vorgeschlagen worden, nämlich Maxemchuk, "An Experimental Speech Storage and Editing Facility", Bell System Technical Journal, Band 58, Nr. 9, Okt. 1980, Seiten 1383-1396.
- Noch mehr zu dem Punkt, es gibt Systeme, die Benutzern ermöglichen, Dokumente zu benutzen, die eingebette Verweise auf Nicht-Text-Mediaobjekte enthalten, die in einem gemeinsamen Dateidienst liegen, und den "Abfall" von diesen Objekten zu sammeln, um den diesen zugeteilten Speicherraum wiederzuverwenden, wenn es keine Dokomente oder Dokumentenableger mehr gebt, die Verweise auf sie enthalten. Siehe Thomas et al., "Diamond: A Multimedia Message System Built on a Distributed Architecture", Computer, Band 18, Nr. 12 Dez. 1985, Seiten 65-78. Systeme wie das Diamond-System, die textlich eingebettete Verweise benutzen, um auf Sprach-, Video- und diverse andere Arten von Nicht- Textdaten zu verweisen, werden gelegentlich als "Hypermedia-Systeme" bezeichnet. Siehe Yankelovich et al., "Reading and Writing the Electronic Book", Computer, Band 18, Nr. 10, Okt. 1985 Seiten 15-60. Anders als die meisten anderen vorgeschlagenen Systeme umgehen die von dem Diamond-System benutzten eingebetteten Verweise die Notwendigkeit, Kopien der Nicht-Text-Datendateien (d.h. Sprachdateien) in jede Dokumentendatei, zu der sie gehören, einzuschließen. Das einfache auf Verweiszählung basierende Abfallsammelscheme des Diamond-Systems ist jedoch unverträglich mit dem Erlauben, Verweise auf intern gespeicherte Objekte in Dokumente oder Dokumentenableger, die außerhalb des Systeme gespeichert werden, einzuschließen.
- Der interessierende Stand der Technik, der die Abfallsammlung von gewohnlichen Datendateien betrifft, ist ebenfalls aufgedeckt worden. Der 'Cambridge File Server' verlangt von den Klienten, eine bestimmte Aktion zu ergreifen, um zu verhindern, daß Dateien als Abfall gesemmelt werden, weil er Dateien automatisch löscht, die von klientenaktualisierten und server-unterhaltenen Indizes nicht zugänglich sind. Siehe Mitchell et. al., "A Comparison of Two Network-Based File Servers", Communications of the ACM, Band 25, Nr. 4, April 1982, Seiten 233-245. Etwas weniger relevant, aber doch als ein Beispiel von Interesse, wie ein hochzuverlässiger Verweis-Server zu bauen ist, ist das in Liskov et al. beschriebene System "Highly-Available Distributed Services and Fault Tolerant Distributed Garbage Collection", Proceedings of Symposium on Principles of Distributed Computing, Alberta, Kanada, August 1986, Seiten 29-39. Das Abfallsammelscheme, das sie sich vorstellen, verlangt von allen Stellen, die Verweise auf entfernt gespeicherte gemeinsame Objekte speichern, lokal einen Abfallsammler ablaufen zu lassen, der den Zweck hat, Information über verteilte Verweisungen an einen gemeinsamen Verweisungs-Server zu senden.
- Ebenfalls von Interesse ist Swinehart et al., "Adding Voice to an Office Computer Network", Proceedings of the IEEE GlobCom, Nov. 1983, Seiten 392-398. Swinehart et al. beschreiben einen besonders konstruierten Prozessor, der an ein Telefongerät angeschlossen wird und digitalisierte Sprache, Signalisierung und Überwachungsinformation in einzelnen Paketen über ein Ethernet LAN sendet.
- Ebenfalls von Interesse ist Terry et al., "Managing Stored Voice in the Etherphone System", ACN Transactions on Computer Systeme 6(1): 3-27, Februar 1988.
- Wenigstens zwei Probleme sind noch zu lösen. Angesichts der sehr großen Größe der meisten Nicht-Text-Datendateien (z.B. Sprach-Datendateien) ist es wichtig, daß ein Verfahren entwickelt wird, um diese Dateien mit Hilfe von einfachen Datenbänken zu editieren, ohne daß die Dateien bewegt, kopiert oder entschlüsselt (wenn in verschlüsselter Form gespeichert) werden müssen, und um die Ergebisse der Editiervorgänge zu beschreiben. Ferner wird ein Verfahren zur Verwendung einfacher Datenbänke benötigt, um einen Abfallsammler zu unterstützen, der automatisch den Speicherraum wiederverwendet, der überholten Nicht-Text- Datendateien zugewiesen ist.
- Die Erfindung ist wie in Anspruch 1 beansprucht.
- Erfindungsgemäß wird eine interessierende Datenbank in einem verteilten Rechensystem unterhalten, um die einzelnen Interessen von Benutzern an zentral gespeicherten Nicht-Text-Mediendateien, z.B. digitale Sprach- eingescannte Bild- und Video-Dateien, zu registrieren, wobei einmalig benamte, stücklistenartige dauernde Datenstrukturen verwendet werden, um den Beutzern einen kontrollierten Zugriff auf die darunterliegenden Nicht-Text-Mediendateien durch eingebettete Namensverweise auf solche Stücklisten in gewöhnlichen Nachrichten- oder Textdateien zu geben, also wird auch eine Datenbank von Stücklisten unterhalten. Ein Abfallsammler zählt periodisch die Interessen-Datenbank auf, um Interesseneinträge zu löschen, die ungültig gemecht worden sind. Alte Stücklisten werden aus der Verweisdatenbank gelöscht, wenn es keine aufgezeichneten Interessen mehr gibt, die auf sie verweisen, und Nicht-Text-Nediendateien werden gelöscht, um den ihnen zugeteilten Speicherraum wiederzuverwenden, wenn es keine Stücklisten mehr gibt, die auf sie verweisen.
- Weitere Merkmale und Vorteile dieser Erfindung werden ersichtlich, wenn die folgende ausführliche Beschreibung in Verbindung mit den anliegenden Zeichnungen gelesen wird.
- Inhalt der Zeichnungen:
- Fig. ist eine schematische Zeichnung, die zwei Lokale Netzwerke zeigt, die auf Befehl durch Gateways und einen Kommunikationskanal verbunden sind, wobei die Netzwerke nach Naßgabe dieser Erfindung konfiguriert sind, um zusätzlich zu gewöhnlichen Textübertragungen Sprachübertragungen zu unterstützen.
- Fig. 2 ist ein Workstation-Schirmbild, das eine geeignete Benutzerschnittstelle zum Aufzeichnen, Editieren und Wiedergeben von Sprachdateien veranschaulicht.
- Fig. 3 ist eine geschichtete Darstellung eines Sprachmanagers für ein Lokales Netzwerk.
- Fig. 4 ist eine Darstellung, die die Korrelation der Sprachdateien mit den Datenstrukturen zeigt, die benutzt werden, um auf sie zu verweisen.
- Fig. 5 ist ein vereinfachtes Funktionsflußdiagramm eines Interessen- Abfallsammlers.
- Fig. 6 ist ein vereinfachtes Funktionsflußdiagramm eines Sprachstrang- Abfallsammlers.
- Fig. 7 ist ein vereinfachtet Funktionsflußdiagramm eines Sprachdetei- Abfallsammlers.
- Fig. 8 ist ein vereinfachtes teilweises Funktionsflußdiagramm für einen integrierten Sprachstrang/Sprachdatei-Abfallsammler.
- Fig. 9 ist ein vereinfachtes teilweises Funktionsflußdiagramm für einen integrierten Interessen/Sprachstrang-Abfallsammler.
- Fig. 1 zeigt ein verteiltes Computersystem 21 (nur im relevanten Teil dargestellt), das ein Lokales Netz (LAN) 22 mit einem Gateway 23 umfaßt, das es mit einem anderen LAN (nicht gezeigt) direkt oder möglicherweise über eine geschaltete Kommunikationseinrichtung verbindet. In Einklang mit der üblichen Konfiguration von CSMA/CD (d.h. Ethernet) Netzen besitzt das LAN 22 eine lineare Topologie zum Verbinden einer Mehrzahl von Workstations 24a und 24b, aber es wird ersichtlich sein, daß es oder jedes andere LAN, mit dem es verbunden ist, eine andere Topologie, z.B. eine ringartige Topologie, haben kann. Noch weitere Beispiele der heterogenen Umgebung, die vorhanden sein kann, die diversen Eigenschaften kommerziell erhältlicher Workstations und LANs vorausgesetzt, werden ersichtlich sein, so ist zu verstehen, daß das Gateway 23 Funktionen der Reformatierung und der Zeitneusteuerung ausführt, die benötigt werden, um Daten von einem LAN, das nach Maßgabe eines Übertragungsprotokolls arbeitet, an ein anderes LAN, das nach Maßgabe eines anderen Übertragungsprotokolls arbeitet, zu übertragen. Weitere Gateways können, wenn gewünscht, bereitgestellt werden, um das System 21 zu erweitern, um noch mehr LANs (nicht gezeigt) zu umfassen.
- Um Benutzern zu ermöglichen, über das LAN 22 zusätzlich zu oder anstelle von üblichen Textnachrichten und Datendateien, die sie über ihre Workstations 24a und 24b austauschen, Sprachnachrichten zu senden und zu empfangen, sind mikroprozessorgestützte Telefongeräte 31a und 31b vorhanden, die sich in der Nähe der Workstations 24a bzw. 24b befinden, aber damit physikalisch nicht verbunden sind. Diese Telefongeräte setzen Sprache in das digitale Datenformat um, das benötigt wird, um dem Übertragungsprotokoll des LAN zu genügen, mit dem sie verbunden sind. Die Telefongeräte 31a und 31b z.B. digitalisieren, paketieren und verschlüsseln Sprache in Telefonqualität zur direkten Übertragung über das Ethernet-artige LAN 22. Hinsichtlich einer ausführlicheren Beschreibung, wie dies durchgeführt wird, siehe Swinehart et al., "Adding Voice to an Office Computer Network", Proceedings IEEE Globecom '83, Nov. 1983, und Swinehart et al., "An Experimental Environment for Voice System Development", IEEE Office Knowledge Engineering Newsletter, Feb. 1987. Wie vorangehend zum Ausdruck gebracht, sind die Telefongeräte 31a und 31b nicht direkt mit den Workstations 21a und 21b verbunden, da ähnliche Telefongeräte mit verschiedenen Workstations benutzt werden können, wie sie z.B. in einer heterogenen Umgebung vorhanden sein können.
- Erfindungsgemäß enthält das System 21 einen Sprachmanager 34, der mit dem LAN 22 verbunden ist, um eine Speicherung für Sprache, Telefongespräche, Musik und andere mit annehmbarer Tonqualität aufgezeichnete Klänge bereitzustellen. Andere spezialisierte Quellen von, oder Senken für, Schall, z.B. ein Text/Sprache-Umsetzer (nicht gezeigt), der Textfolgen empfängt und die entsprechende Sprach-Datendatei zur Wiedergabe über ein oder mehr Telefongeräte 31a und 31b zurückgibt, können, wenn gewünscht, in dem Sprachmanager 34 enthalten sein.
- Ein Sprach-Steuerserver 35 liefert Steuerfunktionen ähnlich denen eines herkömmlichen Geschäfts-Telefonsystems und dirigiert die Interaktionen zwischen den anderen Komponenten des Systems 21, während sie auf Sprache arbeiten. In Einklang mit seinen gewöhnlichen Telefonsystemfunktionen erlaubt der Sprach-Steuerserver 35, spracheführende Dialoge sowohl zwischen zwei oder mehr Benutzern als auch zwischen jedem Benutzer und einem Sprach-Dateiserver 36 über die Benutzertelefone 31a und 31b, die LANs 22 und, wenn angebracht, das Gateway 23 schnell herzustellen. Wenn ein solcher Dialog hergestellt ist, verteilt der Steuerserver 35 außerdem einen Kommunikationsweg- Identifizierer, DialogID, an alle Teilnehmer in dem Dialog, einschließlich der Telefongeräte und der Workstations der Benutzer, die darin verwickelt sind, als auch an den Sprach-Dateiserver 36, wenn er aktiviert ist, um den Dialog aufzuzeichnen. Wie man sehen wird, wird diese DialogID benutzt, um den Dialog in Anforderungen und Berichten zu identifizieren, die nach dem Ende des Dialogs vom Sprach- Steuerserver 35 oder den Teilnehmern ausgegeben werden können.
- Die ganze für die Sprachübertragungen benötigte Steuerung wird über einen entfernten Prozeduraufruf (RPC), Protokoll, vollbracht, das vorzugsweise ein gesichertes Protokoll ist. Siehe z.B. Birrell et al., "Implementing Remote Procedure Calls", ACM Transactions on Computer Systems, Band 2, Nr. 1, Feb. 1984, Seiten 39-69, und Birell et al., "Secure Communications Using Remote Procedure Calls", ACM Transactions on Computer Systems, Band 3, Nr. 1, Feb. 1985, Seiten 1-14. Mehrfache Implementierungen des RPC-Protokolls erlauben die Integration der Workstations 24a und 24b für Sprachoperationen, auch wenn sie Programme ablaufen lassen und Sprachanwendungen ausfghren, die unter Verwendung verschiedener Programmierungsumgebungen programmiert sind. Wie man sehen wird, halten die vom Sprach-Steuerserver 35 als Reaktion auf die RPCs, die er im Verlauf eines Dialogs empfängt, ausgegebenen Berichte die Teilnehmer über die relevanten Systemektivitäten, die den Dialog unterstützen, informiert.
- Die aktiven Teilnehmer an einem Dialog tauschen Sprache mit Hilfe eines geeigneten Sprachübertragungsprotokolls aus. Man vergleiche wieder den vorerwähnten Artikel von Swinehart "Adding Voice to an Office Cauputer Network". Während jedes Dialogs wird die gesamte gesendete Sprache codiert, vorzugsweise mit einer gesicherten Verschlüsselung, z.B. die DES electronic-codebook (ECB) Verschlüsselung, die auf einem zufällig erzeugten Codierungsschlüssel basiert, der vom Sprach-Steuerserver 35 ausgegeben wird. Siehe z.B. National Bureau of Standards, "Data Encryption Standard", Federal Information Processing Standard (FIPs), U.S. Department of Commerce, Veröffentlichung Nr. 46, Januar 1977. Dieser Schlüssel wird an die Dialogteilnehmer als Reaktion auf die von ihnen ausgegebenen RPCs verteilt) um dadurch ihren Telefongeräten 31a und 31b zu ermöglichen, den Dialog zu entschlüsseln.
- Entsprechend einem oder mehr wichtigen Merkmalen dieser Erfindung versehen die Workstations 24a und 24b die Benutzer mit einer erweiterten Kontrolle über die Sprachmöglichkeiten des Systems 21. Fig. 2 zeigt das Schirmbild 41 einer typischen Workstation, z.B. der Workstation 24a, wie es erscheint, wenn der Benutzer zwei Fenster 42 und 43 geöffnet hat, eines zum Betrachten von Text kommentiert mit Verweisen auf eine Sprachpassage wie bei 42, und ein anderes zu Betrachten einer graphischen Darstellung einer gegebenen Sprachpassage wie bei 43. Diese Sprachverweise werden typischerweise durch ballonartige Symbole, die in den Text des kommentierten Dokuments, wie bei 44, eingebettet sind, angezeigt, so daß ein beliebiges ausgewähltes Symbol "geöffnet" werden kann, um seine graphische Darstellung, wie bei 43, zu betrachten, während es wiedergegeben und/oder editiert wird. Die graphische Darstellung der Sprache benutzt geeigneterweise eine lineare Kette von abwechselnden hellen und dunklen Balkan, um proportional lange Intervalle von Sprache und Stille darzustellen. Die Stille wird über eine Schwellenoperation ermittelt, wenn der Energiepegel der Sprache unter einen vorbestimmten Schwellenpegel abfällt, also wird man verstehen, daß ein solcher Begriff hier in seinem relativen Sinn gebraucht wird.
- Als Einleitung zu einer Beschreibung der Sprach- und anderer Ton-Editierfunktionen, die die Benutzer durch die Benutzung ihrer Workstations 24a und 24b durchführen können, wird es hilfreich sein, die elementaren Funktionen RECORD, PLAY und STOP, die die Benutzer aufrufen können, kurz zu durchzugehen. Wenn ein Benutzer eine RECORD-Anweisung ausgibt, gibt der Sprach-Steuerserver 35 eine DialogID aus, die einen Übertragungsweg zum Verbinden des Benutzertelefongerätes mit dem Sprach-Dateiserver 36 identifiziert. Der Sprachmanager 34 reagiert auf die DialogID, indem er Speicherplatz auf dem Sprach-Dateiserver 36 zum Aufzeichnen einer neuen Sprachdatei zuweist und indem er einer ner solchen Sprachdatei einen einmaligen Namen, SprachStrangID erteilt. Danach wird die Aufzeichnung fortgesetzt, bis der Benutzer eine STOP- Anweisung ausgibt. Während die Aufzeichnung stattfindet, akkumuliert außerdem der Sprachmanager eine Zählung, um die Länge des Sprachstranges, VR, in geeigneten Zeiteinheiten, z.B. 1/8000 Sek. pro Einheit, festzustellen. Als Reaktion auf die STOP-Anweisung werden alle Aufnahme oder Wiedergabeoperationen, die dann im Gange sind oder für die durch die gegebene DialogID identifizierte Sitzung eingeplant sind, sofort angehalten. Die PLAY-Anweisung ist ähnlich der RECORD-Anweisung außer, daß sie durch einen Benutzer eingeleitet wird, der eine SprachStrangID und ein spezifiziertes Intervall ausgibt, das entweder den ganzen Sprachstrang oder ein spezifiziertes Intervall davon bei einer geeigneten Auflösung (in diesem Fall 0.1 ms) definiert. Der Sprach-Steuerserver 35 reagiert auf die PLAY-Anweisung, indem er eine DialogID ausgibt, um einen Übertragungsweg vom Sprach- Dateiserver 36 zum Benutzertelefongerät herzustellen, und der Sprachmanager 34 veranlaßt den Sprach-Dateiserver 36, das benutzergewählte Intervall der ausgewählten VF, wie durch die benutzerspezifizierten VRs (ID, Intervall) bestimmt, zu senden.
- Typischerweise werden die Funktionen RECORD und PLAY asynchron mit entfernten Prozeduraufrufen durchgeführt, die zurückkehren, nechdem sie durch den Sprach-Dateiserver 36 eingeplant worden sind. Geplante Operationen werden im allgemeinen der Reihe nach ausgeführt, um dedurch dem Sprachmanager 34 zu ermöglichen, eine Geradeausprozedur zum Erzeugen von Berichten zu benutzen, um die Benutzer über den Statue ihrer Anforderungen auf dem gleichen Stand zu halten. Der Sprachmanager 34 gibt z.B. geeigneterweise eine RequestID zurück, wenn jede geplant. Operation begonnen und vollendet ist, um ihm dadurch zu ermöglichen, Aufrufe an jeden an einer solchen Operation beteiligten Benutzer abzugeben, wobei die Aufrufe typischerweise wie folgt aussehen:
- REPORT[RequestID, {begonnen/beendet/ausgespült}].
- Sprachstränge, VRs, die aufgezeichnete Sprachdateien, VFs, oder Teil. und Kombinationen davon identifizieren, sind unveränderbar, können aber von den Benutzern benutzt werden, um durch Anwenden der normalan Editierfunktionen ihrer Worksatations 24a und 24b neue unveränbare VRs zu erzeugen. Um das Editieren zu unterstützen, kann eine Operation DESCRIBE (VoiceRopeID) aufgerufen werden, um den Sprachmanager 34 zu veranlassen, an die Workstation des Anforderers eine Liste von Zeitintervallen zurückzugeben, die die nicht-stillen Sprachstöße (wie hierin verwendet ist "Sprachstoß" eine Folge von Sprachproben begrenzt durch ein vorbestimmtes Mindestintervall von Stille) des spezifizierten VR bezeichnen. Diese Sprachstoßliste wird wiederum benutzt, um die graphische Darstellung der Sprachstöße und der dazwischenliegenden Intervalle von Stille des ausgewählten VR zu erzeugen, wie in dem Fenster 43 von Fig. 2 gezeigt. Vorzugsweise wird eine Suchtabelle der mit allen auf dem Sprach-Dateiserver 36 aufgezeichneten Sprachdateien, VFs, verbundenen Sprachstöße unterhalten, um das beim Zusammenstellen der Sprachstoßliste für einen gegebenen Sprachstrang enthaltene Overhead zu verringern.
- Die herkömmlichen Texteditierfunktionen, die direkt auf das Sprachstrang-Editieren angewandt werden können, sind:
- CONCATENTATE [SprachStrangID&sub1;, SprachStrangID&sub2;,...] - bringt eine neue Sprach-ID zurück, um einen neuen VR zu erzeugen, der die Verkettung von bestehenden VRs ist;
- SUBSTRING [SprachStrangID&sub1;, Intervall] - bringt eine neue Sprach-StrangID zurück, um einen neuen VR zu erzeugen, der aus einem spezifizierten Abschnitt eines vorhandenen VR besteht;
- REPLACE [SprachStrangID&sub1;, Intervall, SprachStrangID&sub2;,]bringt eine neue SprachStrangID zurück, um einen neuen Sprachstrang zu erzeugen, bei dem die bestehende SprachStrangID&sub2; für ein spezifiziertes Intervall der bestehenden SprachStrangID&sub1; eingesetzt wird, wodurch eine Verbindung der Funktionen CONCATENATE und SUBSTRING durchgeführt wird.
- LENGTH [SprachStrangID) - bringt eine Länge zurück, um die Länge eines bestehenden VR in geeigneten Zeiteinheiten, z.B. ms zu bestimmen.
- Diese Funktionen stehen typischerweise dem Sprachmanager 34 über RPC- Aufrufe zur Verfügung.
- Den VRs können Zugriffssteuerungen überlagert werden, um den Wiedergabezugriff auf ihre darunterliegen VFs zu steuern und das Editieren der VRs zu begrenzen. Diese Zugriffssteuerlisten können Namen von Einzelpersonen oder Gruppen enthalten. Siehe Birrell et al., Grapevine: "An Exercise in Distributed Computing", Communications of the ACM, Band 25, Nr. 4, April 1982, Seiten 260-274. Solche Zugriffskontrollen können z.B. vom Erzeuger eines gegebenen VR jederzeit eingerichtet und geändert werden durch Aufrufen: PERMIT [SprachStrangID, Spieler, Editierer], um den Zugriff auf den spezifizierten VR auf die benannten Spieler und die benannten Editierer zu beschränken. Eine geeignete Voreinstellung für den Zugriffssteuermechanismus würde entweder den unbeschränkten Zugriff auf den VR ermöglichen oder den Zugriff auf seinen Erzeuger beschränken.
- Wie man einsehen wird, haben VRs den wichtigen Vorteil, daß sie von vielen Benutzern geteilt und in vielfache normale Textdokumente einbezogen werden können, um berechtigten Benutzern Zugriff auf die darunterliegenden VFs zu gewähren, ohne daß diese datenintensiven Nicht- Text-VFs kopiert, bewegt oder an mehreren Stellen gespeichert werden müssen. Gemäß einem wichtigen Merkmal dieser Erfindung steht es außerdem den Benutzern frei, Dokumente, die VRs enthalten, je nach ihren einzelnen Bedürfnissen und Wünschen On-line oder Off-line zu speichern.
- Um dem Benutzer diese Freiheit zu gewähren, während sichergestellt wird, daß Platz auf dem Dateiserver 36, der durch veraltete VFs belegt wird, rechtzeitig zurückgewonnen wird, gibt es einen auf Interessen basierenden Abfallsammler, der veraltete VFs identifiziert und löscht, wie unten ausführlicher beschrieben wird. Vorzugsweise sind diese Benutzerinteressen benutzer- und klassenspezifisch, so daß sie auf der Basis der gewöhnlichen Verzeichnisoperationen jedes Benutzers erzeugt und automatisch gelöscht werden können, wobei jeder Benutzer verantwortlich ist, sein eigenes persönliches Interesse an einer gegegebenen Klasse eindeutig zu identifizieren. Wenn z.B. ein Benutzer in ein Dokument eintritt, das einen VR In sein Dokumenten- oder Briefverzeichnis enthält, kann ein RPC eingeleitet werden, um des Interesse Benutzers an diesem VR im Sprachmanager 34 In der folgenn Form zu registrieren: RETAIN[SprachStrangID, Klasse, Interesse, BenutzerID].
- Diese Prozedur registriert das Interesse eines spezifizierten Benutzers in einem gegebenen VR durch eine gegebene Klasse (z.B. Dateianmerkung oder Nachricht). Diese Operation ist idempotent, so daß nachfolgende Aufrufe mit denselben Argumenten nur ein Interesse an einem gegebenen Sprachstrang registrieren. Außerdem gibt es eine Prozedur FORGET [SprachStrangID, Klasse, Interesse], die gelegentlich durch einen RPC, der an den Sprachmanager 34 ausgegeben wird, wenn der Benutzer das Dokument oder die Nachricht, die den VR enthält, aus seinem verzeichnis löscht (im Gegensatz zum Verlagern derselben in ein anderes On-line- oder Off-line-Verzeichnis) und sonst als Resultat eines unten zu beschreibenden Abfallsammelvorgangs aufgerufen wird. Des weiteren kann eine Prozedur LOOKUP [Klasse, Interesse] bereitgestellt werden, die eine ungeordnete Liste von Sprachsträngen, die mit einem einzelnen Interesse verbunden sind, zurückbringt, um die normalen Systemverwaltungsfunktionen zu erleichtern.
- Die Interessen- Klassenattribute des von Benutzer aufgerufenen Interessenmechanismusses sind typischerweise beliebige Textkettenwerte. Die Form des Interessenwertes ist aber vorzugsweise klassenspezifisch, so daß jede Klasse ihren eigenen Namensraum von Interessen durch die Verwendung einer hierarchischen, flachen oder anderen Form von Identifizierung für ihre Interessenwerte steuert. Die Klasse eines Interesses identifiziert andererseits gewöhnlich die Art, in der Sprachstränge für eine einzelne Anwendung benutzt werden. Zum Beispiel kann eine "DateiKommentar"-Klasse benutzt werden, tat anzuzeigen, daß ein in einer benannten Datei gemeinsam benutztes Dokument durch einen Satz von Sprachsträngen kommentiert wird, wobei das Interessenfeld benutzt wird, um den Dateinamen bereitzustellen. Ebenso kann eine "Nachrichten"-Klasse anzeigen, daß eine elektronische Briefnachricht auf aufgezeichnete Sprache verweist, wobei das Interessenfeld den eindeutigen Aufgabestempel enthält, der von dem Nachrichtensystem der einzelnen Briefnachricht, in der ein solcher Verweis enthalten ist, geliefert wird.
- Der Sprachmanager 34 (Fig. 1) ist typischerweise, wie in Fig. 3 gezeigt, logisch geschichtet, um eine einfache, aber robuste Einrichtung zur Implementierung der oben beschriebenen Sprachstrang-Editiermerkmale und zur Verwaltung der Benutzerinteressen in solchen Sprachsträngen und ihren darunterliegenden Sprachdateien zur Verfogung zu stellen. Der Sprach-Dateiserver 36 muß imstande sein, eine ununterbrochene Datenübertragungsrate von 64 kBit/s für Sprache aufrechtzuerhalten und das Abspielen von willkürlich eingeplanten Sequenzen von Sprachdateiabschnitten zu unterstützen, wobei eine angemessene Pufferung bereitgestellt wird, um wahrnehmbare Pausen zwischen aufeinanfolgenden Sequenzen zu vermeiden, aber diese Anforderungen sind relativ gemäßigt und werden, den augenblicklichen Stand der Technik vorausgesetzt, leicht erfüllt.
- Ein einfaches Datenbanksystem 41 wird zur Verfügung gestellt, um die Sprachstränge und ihre zugehörigen Interessen zu implementieren. Zu diesem Zweck speichert das Datenbanksystem 41 die Sprachstränge (VRs) als unveränderbare Stücktabellen, die auf unveränderbare Dateien und/oder Dateisegmente verweisen, stellt elementare Abfrage- und Aktualisierungsmöglichkeiten bereit und unterstützt die gemeinsame Benutzung der VRs unter den vielen Benutzern, die sie verwenden können, um auf die darunterliegenden Sprachdateien zu verweisen. Jedes Datenbanksystem, das diese mäßigen Forderungen erfüllt, würde genügen. Ein derartiges System speichert z.B. jeden Eintrag als eine Folge von Attributen augedrückt als Schlüssel/Wert-Paare in einem Vorausschreib-Protokoll, etwa wie von Gray, "Notes on Database Operating Systems" in Bayer et al., Operating Systems: an Advanced Course, Springer-Verbig, 1978, Seiten 393-481 beschrieben. Anders als die meisten Datenbanksysteme, bei denen die Daten nur protokolliert werden, bis sie an eine dauerhaftere Stelle übergeben und geschrieben werden, ist jedoch das Vorausschreib-Protokoll innerhalb des Datenbanksysteme 41 die permanente Quelle der Daten (h.h., einmal geschrieben, werden die Daten niemals bewegt). Daher können B-Baum-Indexe durch direkten Verweis auf das Vorausschreib-Protokoll gebildet werden, um die Werte von einem oder mehr Schlüsseln zu den entsprechenden Stellen in den Protokolldateien zuzuordnen. Ähnliche Verfahren sind verwendet worden, um Protokolle für elektronische Briefsysteme zu konstruieren. Siehe Donahue et al., "Walnut: Storing Electronic Mail in Databases", Xerox Palo Alto Research Center, Technical Report CSL-85-9, Nov. 1985. Siehe ferner Lampson, "Hints für Computer System Design", Proceedings Ninth Symposium on Operating System Principles, Bretton Woods, Nem Hampshire, Okt. 1983, Seiten 33-48.
- Die minimale Datenstruktur, um einen Sprachstrang darzustellen, besteht aus [SprachDateiID, Schlüssel, Intervall] Tupeln. Weitere Attribute können für SprachStrangID, Identität des Erzeugers, Zugriffssteuerlisten und Gesamtlänge des Sprachstrangs eingeschlossen werden. Das heißt, daß ein typischer Datenbank-Protokolleintrag für einen Sprachstrang die folgende Form haben kann:
- SprachStrangID: Hugo.pa#575996078
- Erzeuger: Hugo.pa
- Länge: 80000
- Abspielzugriff: Sprachprojekt ^.pa
- Editzugriff: keiner
- SprachDateiID: 235
- Schlüssel: 17401121062B 10300460467B
- Intervall: 0 80000
- Ein solcher Eintrag kann benutzt werden, um einen Index zu konstruiren, der es erlaubt, Sprachstrangstrukturen durch ihre SprahhStrangIDs effizient zurückzugewinnen. Er erlaubt ferner, einen Index von Sprach- DateiIDs zu unterhalten, der zur Abfallsammlung nützlich ist, wie unten ausführlicher beschrieben wird.
- Wie man sich erninnern wird, können komplexere Sprachstränge mit Hilfe des vorerwähnten Sprachstrang-Editierprozesses konstruiert werden. Wie z.B. in Fig. 4 gezeigt, können zwei einfache Sprachstränge VR&sub1; und VR&sub2; mit den folgenden Strukturen vorhanden sein:
- VR&sub1; = < SprachdateiID: VF&sub1;, Schlüssel: K&sub1;, Intervall: [Start: 0, Länge: 4000]>
- VR&sub2; < SprachdateiID: VF&sub2;, Schlüssel: K&sub2;, Intervall: [Start: 500, Länge: 2000]>
- in diesem Fall erzeugt die Operation:
- REPLACE[Base: VR&sub1;, Intervall: [Start: 1000, Länge: 1000], mit: VR&sub2;)
- einen neuen Sprachstrang VRs mit der Struktur:
- VR&sub3; : (SprachdateiID: VF&sub1;, Schlüssel: K&sub1;, Intervall:
- [Start: 0, Länge: 1000],
- SprachdateiID: VF&sub2;, Schlüssel: K&sub2;, Intervall:
- [Start: 500, Länge: 2000]
- SprachdateiID: VF&sub1;, Schlüssel: K&sub1;, Intervall:
- [Start: 2000, Länge: 2000]>
- Revidiert man kurz die Verwaltung und das Editieren von digital aufgezeichneter Sprache und anderen datenintensiven Nicht-Textdaten, mit denen diese Erfindung benutzt werden kann, wird man sich erinnern, daß, wenn Sprache aufzuzeichnen ist, der Sprachmanager 34 den Sprach- Dateiserver 36 anruft, eine neue VF zu erzeugen und die Sprache, die über einen spezifizierten Dialog mit einer gegebenen DialogID eintrifft, als der Inhalt dieser neuen VF zu speichern. Nach dem Ende der Aufzeichnung fügt der Sprachmanager 34 eine einfache VR der Sprachstrang-Datenbank in dem Datenbanksystem 41 hinzu, um die neu aufgezeichnete VF darzustellen. Der Codierungsschlüssel, der durch den Sprach-Steuerserver 32 zugewiesen wurde, um den Dialog zu codieren, wird in dem Sprachstrang-Datenbankeintrag gespeichert, so daß dieser Schlüssel zusammen mit der SprachdateiID während aller folgenden Editieroperationen, die ein oder mehr Intervalle des VR betreffen, mitgeführt wird. Die Sprachdatei wird, auch bei. Editieren, weder bewegt noch kopiert, sobald sie einmal in einer VF&sub1; aufgezeichnet ist.
- Wenn ein VR abgespielt wird, gewinnt der Sprachmanager 34 zuerst die VR-Struktur aus dem Datenbanksystem 41 zurück. Wenn die verbürgten Identitäten aller Teilnehmer an der Wiedergabe des VR mit allen mit dem VR verbundenen Zugriffssteuerungen übereinstimmen, setzt der Sprachmanager 34 den Wiedergabevorgang fort, indem er den oder die Codierungsschlüssel für die spezifizierten Intervalle der mit dem gegebenen VR verbundenen VFs an die Teilnehmer verteilt und den Sprach-Dateiserver 36 veranlaßt, diese VF-Intervalle in der richtigen Reihenfolge zu spielen. Wie zuvor dargelegt, besitzt der Sprach- Dateiserver 36 einen ausreichend großen Ausgabepuffer, um zu ermöglichen, daß zwei oder mehr VF-Intervalle gespielt werden können, ohne irgendwelche Pausen dazwischen einzuführen.
- Die VRs besitzen vorteilhafterweise eine flache struktur, um die Wiedergabeleistung zu erhöhen, d.h., ein einziger Datenbankzugriff reicht aus, um die vollständige Struktur eines gegebenen VR zu ermitteln, weil jeder VR direkt auf seine zugehörigen VFs verweist. Alternativ könnten komplexe VRs als Abschnitte anderer VRs in einer baumorganisierten Datenbank mit VRs, die Abschnitte von VFs in den Blättern des Baumes darstellen, gemeinsam benutzt werden. Dieser Weg würde die Verarbeitungskosten des Editierens von VRs reduzieren, würde aber die Zahl von Datenbankzugriffen erhöhen, die benötigt wird, um komplexe VRs abzuspielen, die zwei oder mehr spezifizierte Abschnitte derselben oder verschiedener VFs darstellen. Mit anderen Worten, es ist ein Kompromiß zu machen, um die VR-Datenbankstruktur für ein einzelnes Anwendungsmuster zu optimieren.
- Wie man einsehen wird, wird, sobald alle VRs, die auf eine gegebene VF verweisen, gelöscht worden sind, keine VR jemals wieder auf diese einzelne VF verweisen, somit wird der Speicherraum auf dem Sprach- Dateiserver 36, der dieser VF zugeteilt ist, durch Löschen der VF zur nachfolgenden Wiederverwendung vorteilhaft zurückgewonnen. Eine Geradeaus-Abfrage der Sprachstrang-Datenbank innerhalb des Datenbanksystems 41 reicht aus, um festzustellen, ob noch irgendwelche VRs existieren, die auf eine gegebene VF verweisen. Schwerer ist es jedoch, festzustellen, ob ein gegebener VR gelöscht werden kann oder nicht. Die oben beschriebenen "Interessen"-Operationen sind daher der Schlüssel, der es erlaubt, Vrs und ihre zugehörigen VFs automatisch zurückzugewinnen.
- Von den Benutzern wird verlängt, daß sie ihre VR-Interessen in einer bekannten Stelle, z.B. in einer Interessen-Datenbank innerhalb des Datenbanksystems 41, speichern. Diese gespeicherten Interessen dienen dann als Stellvertreter für die VR-Verweise, die der Benutzer übergibt, wodurch eine logische Basis zum Unterscheiden zwischen gültig verwiesenen aktiven VRs und nicht-verwiesenen veralteten VRs bereitgestellt wird. Ein Verweis-Entkräftungmechanismus, z.B. eine spezifizierte Zeitsperrendauer, kann, wenn gewünscht, in ein getrenntes Interesse eingeschlossen werden, also wird man verstehen, daß das VR- Veralten eintritt, wenn es keine existierenden gültigen Verweise auf den gegebenen VR, einschließlich nicht abgelaufener Zeitsperren, gibt.
- Es wurde vorangehend zum Ausdruck gebracht, daß, wenn eine RETAIN- Prozedur aufgerufen wird, der Interessen-Datenbank ein Eintrag hinzugefügt wird, vorausgesetzt, daß der Eintrag nicht bereits existiert. Der Datenbankeintrag umfaßt die SprachStrangID, die Klasse des Interesses, einen Interessenwert und die Identifikation des Benutzers, wodurch Interessen-Datenbankabfragen auf der Basis eines dieser Attribute erlaubt werden. Leider ist es manchmal unpraktisch, bestehende Workstations und Dateiserver zu modifizieren, um die RETAIN- und ihre komplementäre FORGET-Prozedur automatisch aufzurufen, um Benutzerinteressen an einem gegebenen VR zu speichern und zu löschen, wenn Dokumente oder Nachrichten, die Verweise auf diesen VR enthalten, in die Benutzerverzeichnisse eingetragen bzw. daraus entfernt werden. Es ist aber machbar, in das Betriebssystem jedes Benutzers ein zusätzliches Programm aufzunehmen, das automatisch aufgerufen wird, wenn der Benutzer eine Datei, die einen VR-Verweis enthält, von der vorübergehenden Speicherung der Workstation in einen Dateiserver zur dauerhafteren Speicherung verlagert, wobei ein Aufruf des folgenden Typs für jeden in einer sochen Datei verwiesenen Sprachstrang ausgegeben wird:
- RETAIN [VRID: SprachStrangID, Klasse "Dateikommentar,
- Interesse: Kommentierte Datei Name",
- Benutzer: Verbürgter Name]
- Daher kann zu jedem späteren Zeitpunkt eine normale Dateiserver-Verzeichniszähloperation durchgeführt werden, um für jedes gegebene Benutzerinteresse festzustellen, ob der benutzerbenannte Fall der Datel (z.B. Kommentierte Datei Name"), die den VR-Verweis enthält, auf den sich das gegebene Interesse bezieht, noch existiert oder nicht. Die Anwendungen jedes Benutzers ermitteln die Klasse oder Klassen der durch einen solchen Benutzer registrierten Interessen, und diesen Interessen werden benutzerbestimmte Werte gegeben (z.B. "Kommentierte Datei Name" für die Interessenklasse "Dateikommentar"). Dies bedeutet, daß die einzelnen Benutzer für die Zuweisung einmaliger Werte, z.B. verschiedene Versionsnummern, an die verschiedenen Interessen verantwortlich sind, die sie innerhalb einer gegegeben Klasse von Interessen einzutragen wünschen.
- Um veraltete Interessen automatisch zu lokalisieren und aus der Interessen-Datenbank zu entfernen, kann der Implementierer jeder Interessenklasse eine Prozedur des folgenden Typs bei dem Sprachmanager 34 registrieren:
- IS GARBAGE [SprachStrangID, Interesse] - {Ja/Nein}
- Diese Prozedur stellt in einer klassenspezifischen Weise fest, ob ein gegebenes Interesse noch für einen spezifischen VR gilt oder nicht. Für die vorerwähnte Klasse Dateikommentar bringt z.B. diese Prozedur "Ja" nur zurück, wenn der benutzerspezifizierte Wert des Interessenparameters auf keinem Dateiserver irgendwo innerhalb des verteilten Computersystems 21 mehr existiert.
- Wie in Fig. 5 gezeigt, enthält der Sprachmanager 34 geeigneterweise einen Interessen-Verifizierer, der periodisch die Interessen-Datenbank aufzählt, 51-54, und die klassenspezifische IS GARBAGE-Prozedur (sofern eine eingetragen worden ist) für jedes Interesse aufruft, 55- 56. Die IS GARBAGE-Prozedur für jede Interessenklasse kann verschiedene Kriterien benutzen, um festzustellen, ob ein Eintrag innerhalb der gegebenen Klasse gültig ist oder nicht, 57. Die Prozedur kann z.B. den Eintrag gegen intrinsiche Entkräftungskriterien, z.B. den Ablauf einer vorbestimmten Zeitsperrendauer und die Vereinbarkeit mit einer Zugriffssteuerliste, prüfen. Sie kann ferner eine Verzeichnisabfrage an die Dateiserver des verteilten Computersystems 21 ausgeben, um festzustellen, ob der für den untersuchten Eintrag spezifizierte Interessenwert (z.B. "Kommentierte Datei Name") auf einem oder mehr Dateiservern noch existiert. Wenn festgestellt wird, daß das gegebene Interesse aus irgendeinem Grund ungültig ist, wird eine Prozedur FORGET [SprachStrangID, Klasse, Interesse] aufgerufen, 58, um es aus der Interessen-Datenbank zu entfernen, 59.
- Gemäß Fig. 6 besitzt der Sprachmanager 34 auch einen Sprachstrang-Abfallsammler, der periodisch die Sprachstrang-Datenbank aufzählt, 71- 74, so daß verwaiste VRs daraus entfernt werden, 75. Wünschenswert wird eine Vorkehrung getroffen, um VRs einiger oder aller Klassen wenigstens für eine endliche Zeitdauer nach ihrer Erzeugung intrinsisch zu schützen, 76, so daß interessierte Benutzer eine annehmbare Gelegenheit haben, ein interesse an ihnen zu registrieren. Bei Nichtvorhandensein eines solchen intrinsischen Schutzes wird eine gegebene VR jedoch aus der sprachstrang-Datenbank entfernt, sofern nicht bei 77 festgestellt wird, daß auf die untersuchte VR noch von wenigstens einem gültigen Interesse in der Interessen-Datenbank verwiesen wird.
- Wie in Fig. 7 gezelgt, kann ein getrennter Sprachdatei-Abfallsammler in den Sprachmanager 34 eingeschlossen werden, der periodisch die Sprachdatei-Datenbank aufzählt, 81-84, so daß die VFs, die bei 85 gefunden werden und keine auf sie verweisenden VRs mehr haben, gelöscht werden, 86, wodurch der Speicherraum auf dem Sprach-Dateiserver 36 (Fig. 1), der ihnen zugeteilt war, zurückgewonnen wird.
- Alternativ kann aber, wie in Fig. 8 gezeigt, der Sprachdatei-Abfallsammler mit dem Sprachstrang-Abfallsammler integriert werden, so daß diese Funktionen gleichzeitig ausgeführt werden. Wenn z.B. festgestellt wird, daß ein gegebener VR zur Waise geworden ist, bei 77 in Fig. 6, können die VFs, auf die der verwaiste VR verweist, aufgezählt werden, 91-93. Dies macht es möglich, jede dieser FVs gegen die Sprachstrang-Datenbank zu vergleichen, um festzustellen, ob auf sie von irgendwelchen anderen VRs verwiesen wird, 94, so daß verwaiste VFs gelöscht werden, 95. Nachdem alle VFs, auf die ein verwaister VR verweist, untersucht worden sind, wird der VR gelöscht, 75, und der Prozeß geht dann zurück, um die Aufzählung der VRs mit dem nächsten VR, 72 In Fig. 6, fortzusetzen.
- Desgleichen kann, wie in Fig. 9 gezelgt, der Sprachstrang-Abfallsammler mit dem Interessen-Abfallsammler integriert werden. Jeder Eintrag in der Interessen-Datenbank verweist auf einen einzigen VR, so daß, wenn festgestellt wird, daß ein gegebenes Intersesse ungültig ist, 57 in Fig. 5, die Interessen-Datenbank untersucht werden kann, 96 in Fig. 9, um festzustellen, ob sie noch andere Interessen enthält, die auf den mit dem ungültigen Interesse verbundenen VR verweisen, 97. Wenn kein anderer Verweis auf den gegebenen VR gefunden wird, werden sowohl der VR als auch der ungültige Interesseneintrag gelöscht, 98 bzw. 99. Andererseits wird, wenn andere auf den VR verweisende Interessen vorhanden sind, nur das ungültige Interesse gelöscht, bevor der Prozeß zurückspringt, um die Aufzählung der Interessen-Datenbank mit dem nächsten Interesse fortzusetzen, 52 in Fig. 5.
- Angesichts des Vorangehenden wird man nun verstehen, daß die vorliegende Erfindung einen leistungsfähigen und wirkungsvollen Abfallsammler für Hypermedia-Anwendungen von verteilten Rechensystemen zu Verfügung stellt.
Claims (1)
1. Verteiltes Rechensystem, das umfaßt:
eine Kommunikationseinrichtung (22),
eine Mehrzahl von Arbeitsplätzen (24), die mit der
Kommunikationseinrichtung verbunden sind und Benutzer befähigen, digitale
Text-Datendateien zwischen den Arbeitsplätzen hin und her zu übertragen,
einen Dateiserver (36), der mit der Kommunikationseinrichtung
verbunden ist und digitale Nicht-Text-Datendateien, die menschlich
wahrnehmbare Information darstellen, speichert,
Wandler, die in der Nähe von wenigstens einigen der Arbeitsplätzen
gelegen sind, wobei die Wandler mit der Kommunikationseinrichtung
verbunden sind, um Benutzer zu befähigen, eindeutig benannte Nicht-Text-
Datendateien auf dem Dateiserver aufzuzeichnen und solche Dateien
abhängig von der Zugriffsberechtigung abzuspielen, und
eine Verwaltungseinrichtung (34), die mit der
Kommunikationseinrichtung und dem Dateiserver verbunden ist, wobei die
Verwaltungseinrichtung ein erstes Datenbanksystem enthält, das eine erste Datenbank (41)
von eindeutig benannten Verweiseinträgen (VR1, VR2, VR3) umfaßt, die
durch Dateiname und Zeitintervall auf die Nicht-Text-Datendateien
verweisen, wodurch Benutzern ein selektiver Zugriff auf ausgewählte und
ausgewählte Teile von ausgewählten der Nicht-Text-Datendateien durch
Einlagern der ihnen entsprechenden Verweiseintragsnamen in die
digitalen Text-Datendateien, die über die Kommunikationseinrichtung an
ausgewählte Benutzer verteilt werden, gewährt werden kann,
gekennzeichnet durch
eine zweite Datenbank von benutzerregistrierten Interesseneinträgen
in dem Datenbanksystem, wobei jeder der Interesseneinträge den
Verweiseintrag (VR1, VR2, VR3), zu dem er gehört, die digitale
Text-Datendatei, in die der Verweiseintrag eingelagert ist, und den Benutzer,
der die digitale Text-Datendatei benutzt, identifiziert,
eine erste Einrichtung, die mit der zweiten Datenbank von
benutzerregistrierten
Interesseneinträgen verbunden ist und die periodisch alle
registrierten Interesseneinträge aufzählt und irgendwelche
Interesseneinträge, für die die digitale Text-Datendatei für den Benutzer nicht
mehr existiert, löscht,
eine zweite Einrichtung, die mit der Datenbank von Verweiseinträgen
verbunden ist und die periodisch die Verweiseinträge (VR1, VR2, VR3)
aufzählt und irgendwelche Verweiseinträge von mehr als einem
spezifischen Alter, die keine auf sie verweisenden Interesseneinträge in der
zweiten Datenbank besitzen, löscht, und
eine dritte Einrichtung, die mit dem Dateiserver (36) verbunden ist
und die in dem Dateiserver (36) irgendwelche Nicht-Text-Datendateien,
die keine auf sie verweisenden Verwelseinträge in der ersten
Datenbank besitzen, löscht, um dadurch den von veralteten Dateien belegten
Speicherraum zurückzugewinnen.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/118,493 US4914586A (en) | 1987-11-06 | 1987-11-06 | Garbage collector for hypermedia systems |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE3855152D1 DE3855152D1 (de) | 1996-05-02 |
| DE3855152T2 true DE3855152T2 (de) | 1996-10-02 |
Family
ID=22378942
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE3855152T Expired - Fee Related DE3855152T2 (de) | 1987-11-06 | 1988-11-02 | Verteiltes Computersystem |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US4914586A (de) |
| EP (1) | EP0315426B1 (de) |
| JP (1) | JP2795856B2 (de) |
| DE (1) | DE3855152T2 (de) |
Families Citing this family (294)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5220657A (en) * | 1987-12-02 | 1993-06-15 | Xerox Corporation | Updating local copy of shared data in a collaborative system |
| US5164797A (en) * | 1988-06-17 | 1992-11-17 | Xerox Corporation | Lateral heterojunction bipolar transistor (LHBT) and suitability thereof as a hetero transverse junction (HTJ) laser |
| US7365884B2 (en) * | 1988-09-22 | 2008-04-29 | Catch Curve, Inc. | Facsimile telecommunications system and method |
| US5459584A (en) | 1988-09-22 | 1995-10-17 | Audiofax, Inc. | Facsimile telecommunications system and method |
| US4994926C1 (en) * | 1988-09-22 | 2001-07-03 | Audiofax Ip L L C | Facsimile telecommunications system and method |
| US6785021B1 (en) | 1988-09-22 | 2004-08-31 | Audiofax, Ip, Llc | Facsimile telecommunications system and method |
| US5159669A (en) * | 1988-12-15 | 1992-10-27 | Xerox Corporation | Automatically creating a second workspace operation record including history data and a unit ID based on a first workspace operation |
| US5408655A (en) * | 1989-02-27 | 1995-04-18 | Apple Computer, Inc. | User interface system and method for traversing a database |
| US5136634A (en) * | 1989-03-10 | 1992-08-04 | Spectrafax Corp. | Voice operated facsimile machine network |
| US5109519A (en) * | 1989-03-28 | 1992-04-28 | Wang Laboratories, Inc. | Local computer participating in mail delivery system abstracts from directory of all eligible mail recipients only served by local computer |
| CA2001711C (en) * | 1989-05-15 | 1995-05-23 | Stephen P. Morgan | File extension by clients in a distributed data processing system |
| US5136712A (en) * | 1989-06-29 | 1992-08-04 | Digital Equipment Corporation | Temporary object handling system and method in an object based computer operating system |
| US6978277B2 (en) * | 1989-10-26 | 2005-12-20 | Encyclopaedia Britannica, Inc. | Multimedia search system |
| US5241671C1 (en) * | 1989-10-26 | 2002-07-02 | Encyclopaedia Britannica Educa | Multimedia search system using a plurality of entry path means which indicate interrelatedness of information |
| US6389010B1 (en) | 1995-10-05 | 2002-05-14 | Intermec Ip Corp. | Hierarchical data collection network supporting packetized voice communications among wireless terminals and telephones |
| JP2783630B2 (ja) * | 1990-02-15 | 1998-08-06 | キヤノン株式会社 | 端末装置 |
| US5604841A (en) * | 1990-07-06 | 1997-02-18 | United Technologies Corporation | Hierarchical restructuring generic test templates and reusable value spaces for machine failure isolation using qualitative physics |
| CA2043141A1 (en) * | 1990-07-18 | 1992-01-19 | Richard F. Bournique | Hypermedia arrangement using a window system and layered intrinsics |
| US5440730A (en) * | 1990-08-09 | 1995-08-08 | Bell Communications Research, Inc. | Time index access structure for temporal databases having concurrent multiple versions |
| US5513306A (en) * | 1990-08-09 | 1996-04-30 | Apple Computer, Inc. | Temporal event viewing and editing system |
| AU628264B2 (en) * | 1990-08-14 | 1992-09-10 | Oracle International Corporation | Methods and apparatus for providing a client interface to an object-oriented invocation of an application |
| US5297249A (en) * | 1990-10-31 | 1994-03-22 | International Business Machines Corporation | Hypermedia link marker abstract and search services |
| US5204947A (en) * | 1990-10-31 | 1993-04-20 | International Business Machines Corporation | Application independent (open) hypermedia enablement services |
| US7525691B2 (en) | 1991-02-12 | 2009-04-28 | Catch Curve, Inc. | Facsimile telecommunications system and method |
| US5241586A (en) * | 1991-04-26 | 1993-08-31 | Rolm Company | Voice and text annotation of a call log database |
| US5200993A (en) * | 1991-05-10 | 1993-04-06 | Bell Atlantic Network Services, Inc. | Public telephone network including a distributed imaging system |
| US5138694A (en) * | 1991-06-28 | 1992-08-11 | United Technologies Corporation | Parallel processing qualitative reasoning system |
| US5781913A (en) * | 1991-07-18 | 1998-07-14 | Felsenstein; Lee | Wearable hypermedium system |
| CA2067650C (en) * | 1991-07-24 | 1996-10-22 | Eric Jonathan Bauer | Method and apparatus for operating a computer-based file system |
| US5485613A (en) * | 1991-08-27 | 1996-01-16 | At&T Corp. | Method for automatic memory reclamation for object-oriented systems with real-time constraints |
| US5367621A (en) * | 1991-09-06 | 1994-11-22 | International Business Machines Corporation | Data processing method to provide a generalized link from a reference point in an on-line book to an arbitrary multimedia object which can be dynamically updated |
| US5790174A (en) * | 1991-09-27 | 1998-08-04 | Bell Atlantic Network Services, Inc. | PSTN architecture for video-on-demand services |
| US5528281A (en) * | 1991-09-27 | 1996-06-18 | Bell Atlantic Network Services | Method and system for accessing multimedia data over public switched telephone network |
| US5673362A (en) * | 1991-11-12 | 1997-09-30 | Fujitsu Limited | Speech synthesis system in which a plurality of clients and at least one voice synthesizing server are connected to a local area network |
| US5906656A (en) * | 1991-12-26 | 1999-05-25 | International Business Machines Corporation | Method and system for providing actions by way of electronic distributions |
| JPH05205024A (ja) * | 1992-01-30 | 1993-08-13 | Hitachi Ltd | 情報管理方法及びそれを用いたマルチメディアシステム |
| EP0555027B1 (de) * | 1992-02-04 | 1999-09-15 | Ricoh Company, Ltd | Informationsverarbeitungsapparat und -verfahren unter Verwendung eines zusätzlichen zweckmässigen Informationspakets |
| US5428778A (en) * | 1992-02-13 | 1995-06-27 | Office Express Pty. Ltd. | Selective dissemination of information |
| US6266674B1 (en) * | 1992-03-16 | 2001-07-24 | Donald J. Hejna, Jr. | Random access information retrieval utilizing user-defined labels |
| JPH0812632B2 (ja) * | 1992-04-30 | 1996-02-07 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 情報化システムおよび情報化方法 |
| US5307490A (en) * | 1992-08-28 | 1994-04-26 | Tandem Computers, Inc. | Method and system for implementing remote procedure calls in a distributed computer system |
| US5561785A (en) * | 1992-10-29 | 1996-10-01 | International Business Machines Corporation | System for allocating and returning storage and collecting garbage using subpool of available blocks |
| US5539871A (en) * | 1992-11-02 | 1996-07-23 | International Business Machines Corporation | Method and system for accessing associated data sets in a multimedia environment in a data processing system |
| US5689699A (en) * | 1992-12-23 | 1997-11-18 | International Business Machines Corporation | Dynamic verification of authorization in retention management schemes for data processing systems |
| US7082106B2 (en) | 1993-01-08 | 2006-07-25 | Multi-Tech Systems, Inc. | Computer-based multi-media communications system and method |
| US6230211B1 (en) * | 1993-01-19 | 2001-05-08 | Canon Kabushiki Kaisha | Container-based method for exchanging information between computer processes |
| US5414757A (en) * | 1993-02-02 | 1995-05-09 | Octel Communications Corporation | Voice mail system for news bulletins |
| US5560026A (en) * | 1993-08-10 | 1996-09-24 | International Business Machines Corporation | Method and system for corrective re-installation of an object on a data processing system |
| JPH0765143A (ja) * | 1993-08-13 | 1995-03-10 | Internatl Business Mach Corp <Ibm> | データ処理システムのユーザインタフェース上の図形タイムバーにオブジェクト内容を画く方法及びシステム |
| JPH0773050A (ja) * | 1993-09-01 | 1995-03-17 | Fujitsu Ltd | プログラム間のデータ授受制御方式 |
| JP3303543B2 (ja) * | 1993-09-27 | 2002-07-22 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチメディア・セグメントを構成してプレイする方法、および2つ以上のマルチメディア・ストーリーをハイパーストーリーとして構成してプレイする方法 |
| US6594688B2 (en) * | 1993-10-01 | 2003-07-15 | Collaboration Properties, Inc. | Dedicated echo canceler for a workstation |
| DE4439113C2 (de) * | 1993-11-02 | 2000-10-26 | Ricoh Kk | Dokumentenumlaufeinrichtung |
| EP0658855A1 (de) * | 1993-12-16 | 1995-06-21 | International Business Machines Corporation | Verfahren und System zur Integrierung von Multimedia in einer objektorientierten Benutzerschnittstelle |
| JP3185505B2 (ja) * | 1993-12-24 | 2001-07-11 | 株式会社日立製作所 | 会議録作成支援装置 |
| GB2285895A (en) * | 1994-01-19 | 1995-07-26 | Ibm | Audio conferencing system which generates a set of minutes |
| US5822720A (en) | 1994-02-16 | 1998-10-13 | Sentius Corporation | System amd method for linking streams of multimedia data for reference material for display |
| US5537644A (en) * | 1994-04-26 | 1996-07-16 | United Technologies Corporation | Machine failure isolation in multiple machine configurations using qualitative physics |
| US5522014A (en) * | 1994-04-26 | 1996-05-28 | United Technologies Corporation | Intergrated qualitative/quantitative reasoning with enhanced core predictions and extended test procedures for machine failure isolation using qualitative physics |
| US5533103A (en) * | 1994-04-28 | 1996-07-02 | Electronic Information Systems, Inc. | Calling system and method |
| US5745895A (en) * | 1994-06-21 | 1998-04-28 | International Business Machines Corporation | Method for association of heterogeneous information |
| US5608900A (en) * | 1994-06-21 | 1997-03-04 | Internationl Business Machines Corp. | Generation and storage of connections between objects in a computer network |
| US5687367A (en) * | 1994-06-21 | 1997-11-11 | International Business Machines Corp. | Facility for the storage and management of connection (connection server) |
| US5557790A (en) * | 1994-06-21 | 1996-09-17 | International Business Machines Corp. | Facility for the generic storage and management of multimedia objects |
| US5678038A (en) * | 1994-06-21 | 1997-10-14 | International Business Machines Corporation | Storing and retrieving heterogeneous classification systems utilizing globally unique identifiers |
| US5854923A (en) * | 1994-06-21 | 1998-12-29 | International Business Machines Corp. | Facility for the intelligent selection of information objects (persona) |
| US5689550A (en) * | 1994-08-08 | 1997-11-18 | Voice-Tel Enterprises, Inc. | Interface enabling voice messaging systems to interact with communications networks |
| US5831615A (en) * | 1994-09-30 | 1998-11-03 | Intel Corporation | Method and apparatus for redrawing transparent windows |
| US5603026A (en) | 1994-12-07 | 1997-02-11 | Xerox Corporation | Application-specific conflict resolution for weakly consistent replicated databases |
| US5577240A (en) | 1994-12-07 | 1996-11-19 | Xerox Corporation | Identification of stable writes in weakly consistent replicated databases while providing access to all writes in such a database |
| US5671407A (en) | 1994-12-07 | 1997-09-23 | Xerox Corporation | Application-specific conflict detection for weakly consistent replicated databases |
| US5581754A (en) | 1994-12-07 | 1996-12-03 | Xerox Corporation | Methodology for managing weakly consistent replicated databases |
| US5546517A (en) * | 1994-12-07 | 1996-08-13 | Mitsubishi Electric Information Technology Center America, Inc. | Apparatus for determining the structure of a hypermedia document using graph partitioning |
| AU5386796A (en) * | 1995-04-11 | 1996-10-30 | Kinetech, Inc. | Identifying data in a data processing system |
| US6101525A (en) * | 1995-05-19 | 2000-08-08 | Emc Corporation | Method and apparatus for shared memory cleanup |
| US6549942B1 (en) | 1995-05-25 | 2003-04-15 | Audiohighway.Com | Enhanced delivery of audio data for portable playback |
| JPH0916607A (ja) * | 1995-06-26 | 1997-01-17 | Hitachi Ltd | データベース管理システムにおけるインデクス管理方法 |
| US5881142A (en) * | 1995-07-18 | 1999-03-09 | Jetstream Communications, Inc. | Integrated communications control device for a small office configured for coupling within a scalable network |
| US5682534A (en) * | 1995-09-12 | 1997-10-28 | International Business Machines Corporation | Transparent local RPC optimization |
| US5754782A (en) * | 1995-12-04 | 1998-05-19 | International Business Machines Corporation | System and method for backing up and restoring groupware documents |
| US5813008A (en) * | 1996-07-12 | 1998-09-22 | Microsoft Corporation | Single instance storage of information |
| GB9620082D0 (en) | 1996-09-26 | 1996-11-13 | Eyretel Ltd | Signal monitoring apparatus |
| US5764916A (en) * | 1996-09-27 | 1998-06-09 | Ichat, Inc. | Method and apparatus for real time communication over a computer network |
| US7263526B1 (en) | 1996-10-30 | 2007-08-28 | Avaya Technology Corp. | Method and apparatus for embedding chat functions in a web page |
| US6785708B1 (en) | 1996-10-30 | 2004-08-31 | Avaya Inc. | Method and apparatus for synchronizing browse and chat functions on a computer network |
| US6275857B1 (en) * | 1996-10-30 | 2001-08-14 | Microsoft Corporation | System and method for freeing shared resources in a computer system |
| US5987611A (en) * | 1996-12-31 | 1999-11-16 | Zone Labs, Inc. | System and methodology for managing internet access on a per application basis for client computers connected to the internet |
| US6408429B1 (en) | 1997-01-17 | 2002-06-18 | Cognex Corporation | Machine vision system for identifying and assessing features of an article |
| US5870744A (en) * | 1997-06-30 | 1999-02-09 | Intel Corporation | Virtual people networking |
| US6816904B1 (en) * | 1997-11-04 | 2004-11-09 | Collaboration Properties, Inc. | Networked video multimedia storage server environment |
| US6058424A (en) * | 1997-11-17 | 2000-05-02 | International Business Machines Corporation | System and method for transferring a session from one application server to another without losing existing resources |
| US6092074A (en) | 1998-02-10 | 2000-07-18 | Connect Innovations, Inc. | Dynamic insertion and updating of hypertext links for internet servers |
| US6154783A (en) * | 1998-09-18 | 2000-11-28 | Tacit Knowledge Systems | Method and apparatus for addressing an electronic document for transmission over a network |
| US6115709A (en) | 1998-09-18 | 2000-09-05 | Tacit Knowledge Systems, Inc. | Method and system for constructing a knowledge profile of a user having unrestricted and restricted access portions according to respective levels of confidence of content of the portions |
| US6253202B1 (en) | 1998-09-18 | 2001-06-26 | Tacit Knowledge Systems, Inc. | Method, system and apparatus for authorizing access by a first user to a knowledge profile of a second user responsive to an access request from the first user |
| AU5910699A (en) | 1998-09-18 | 2000-04-10 | Tacit Knowledge Systems | Method of constructing and displaying an entity profile constructed utilizing input from entities other than the owner |
| AU5822899A (en) | 1998-09-18 | 2000-04-10 | Tacit Knowledge Systems | Method and apparatus for querying a user knowledge profile |
| US6377949B1 (en) | 1998-09-18 | 2002-04-23 | Tacit Knowledge Systems, Inc. | Method and apparatus for assigning a confidence level to a term within a user knowledge profile |
| US8380875B1 (en) | 1998-09-18 | 2013-02-19 | Oracle International Corporation | Method and system for addressing a communication document for transmission over a network based on the content thereof |
| GB9907283D0 (en) * | 1999-03-31 | 1999-05-26 | Koninkl Philips Electronics Nv | Memory reclamation method |
| US6611858B1 (en) * | 1999-11-05 | 2003-08-26 | Lucent Technologies Inc. | Garbage collection method for time-constrained distributed applications |
| US7210104B2 (en) * | 2000-02-16 | 2007-04-24 | Sega Corporation | Information display method and information display system for finding another user in a plurality of users based upon registered information |
| US8645137B2 (en) | 2000-03-16 | 2014-02-04 | Apple Inc. | Fast, language-independent method for user authentication by voice |
| US7120629B1 (en) | 2000-05-24 | 2006-10-10 | Reachforce, Inc. | Prospects harvester system for providing contact data about customers of product or service offered by business enterprise extracting text documents selected from newsgroups, discussion forums, mailing lists, querying such data to provide customers who confirm to business profile data |
| US7082427B1 (en) | 2000-05-24 | 2006-07-25 | Reachforce, Inc. | Text indexing system to index, query the archive database document by keyword data representing the content of the documents and by contact data associated with the participant who generated the document |
| US7003517B1 (en) * | 2000-05-24 | 2006-02-21 | Inetprofit, Inc. | Web-based system and method for archiving and searching participant-based internet text sources for customer lead data |
| US7096220B1 (en) | 2000-05-24 | 2006-08-22 | Reachforce, Inc. | Web-based customer prospects harvester system |
| US7555503B1 (en) * | 2000-06-30 | 2009-06-30 | Click Commerce, Inc. | Method and apparatus for managing updates to a catalog |
| WO2002014990A1 (en) * | 2000-08-11 | 2002-02-21 | Faeltskog Lars | Distribution of media content, with automatic deletion |
| US7330850B1 (en) | 2000-10-04 | 2008-02-12 | Reachforce, Inc. | Text mining system for web-based business intelligence applied to web site server logs |
| US7043531B1 (en) | 2000-10-04 | 2006-05-09 | Inetprofit, Inc. | Web-based customer lead generator system with pre-emptive profiling |
| US6668251B1 (en) | 2000-11-01 | 2003-12-23 | Tacit Knowledge Systems, Inc. | Rendering discriminator members from an initial set of result data |
| US20040111386A1 (en) * | 2001-01-08 | 2004-06-10 | Goldberg Jonathan M. | Knowledge neighborhoods |
| US6701464B2 (en) * | 2001-03-01 | 2004-03-02 | International Business Machines Corporation | Method and system for reporting error logs within a logical partition environment |
| GB0111008D0 (en) * | 2001-05-04 | 2001-06-27 | Koninkl Philips Electronics Nv | Recording of interactive applications |
| US20040107360A1 (en) * | 2002-12-02 | 2004-06-03 | Zone Labs, Inc. | System and Methodology for Policy Enforcement |
| US8200818B2 (en) * | 2001-07-06 | 2012-06-12 | Check Point Software Technologies, Inc. | System providing internet access management with router-based policy enforcement |
| US7546629B2 (en) * | 2002-03-06 | 2009-06-09 | Check Point Software Technologies, Inc. | System and methodology for security policy arbitration |
| US7590684B2 (en) * | 2001-07-06 | 2009-09-15 | Check Point Software Technologies, Inc. | System providing methodology for access control with cooperative enforcement |
| US7222359B2 (en) * | 2001-07-27 | 2007-05-22 | Check Point Software Technologies, Inc. | System methodology for automatic local network discovery and firewall reconfiguration for mobile computing devices |
| US7773730B1 (en) | 2001-08-09 | 2010-08-10 | Voice Signature Llc | Voice record integrator |
| US7130861B2 (en) * | 2001-08-16 | 2006-10-31 | Sentius International Corporation | Automated creation and delivery of database content |
| ITFI20010199A1 (it) | 2001-10-22 | 2003-04-22 | Riccardo Vieri | Sistema e metodo per trasformare in voce comunicazioni testuali ed inviarle con una connessione internet a qualsiasi apparato telefonico |
| JP2003157376A (ja) * | 2001-11-21 | 2003-05-30 | Ricoh Co Ltd | ネットワークシステム、識別情報管理方法、サーバ装置、プログラム、および記録媒体 |
| US7233959B2 (en) * | 2002-06-03 | 2007-06-19 | International Business Machines Corporation | Life-cycle management engine |
| US7469210B1 (en) | 2002-08-08 | 2008-12-23 | Voice Signature Llc | Outbound voice signature calls |
| US6850943B2 (en) * | 2002-10-18 | 2005-02-01 | Check Point Software Technologies, Inc. | Security system and methodology for providing indirect access control |
| US7165076B2 (en) * | 2002-11-15 | 2007-01-16 | Check Point Software Technologies, Inc. | Security system with methodology for computing unique security signature for executable file employed across different machines |
| US9805373B1 (en) | 2002-11-19 | 2017-10-31 | Oracle International Corporation | Expertise services platform |
| US8136155B2 (en) * | 2003-04-01 | 2012-03-13 | Check Point Software Technologies, Inc. | Security system with methodology for interprocess communication control |
| EP2996054B1 (de) * | 2003-05-19 | 2020-07-08 | Huawei Technologies Co., Ltd. | Begrenzung von scans von lose geordneten und/oder gruppierten beziehungen unter verwendung nahezu geordneter abbildungen |
| US7788726B2 (en) * | 2003-07-02 | 2010-08-31 | Check Point Software Technologies, Inc. | System and methodology providing information lockbox |
| US8281114B2 (en) * | 2003-12-23 | 2012-10-02 | Check Point Software Technologies, Inc. | Security system with methodology for defending against security breaches of peripheral devices |
| US8136149B2 (en) * | 2004-06-07 | 2012-03-13 | Check Point Software Technologies, Inc. | Security system with methodology providing verified secured individual end points |
| US7627896B2 (en) * | 2004-12-24 | 2009-12-01 | Check Point Software Technologies, Inc. | Security system providing methodology for cooperative enforcement of security policies during SSL sessions |
| US8918366B2 (en) * | 2005-02-07 | 2014-12-23 | Mimosa Systems, Inc. | Synthetic full copies of data and dynamic bulk-to-brick transformation |
| US8799206B2 (en) * | 2005-02-07 | 2014-08-05 | Mimosa Systems, Inc. | Dynamic bulk-to-brick transformation of data |
| US8271436B2 (en) * | 2005-02-07 | 2012-09-18 | Mimosa Systems, Inc. | Retro-fitting synthetic full copies of data |
| US8812433B2 (en) * | 2005-02-07 | 2014-08-19 | Mimosa Systems, Inc. | Dynamic bulk-to-brick transformation of data |
| US8677377B2 (en) | 2005-09-08 | 2014-03-18 | Apple Inc. | Method and apparatus for building an intelligent automated assistant |
| US7633076B2 (en) | 2005-09-30 | 2009-12-15 | Apple Inc. | Automated response to and sensing of user activity in portable devices |
| US8185576B2 (en) * | 2006-03-14 | 2012-05-22 | Altnet, Inc. | Filter for a distributed network |
| US20070233757A1 (en) * | 2006-03-30 | 2007-10-04 | Fujitsu Limited | Garbage collection method and a hierarchy storage device |
| US9318108B2 (en) | 2010-01-18 | 2016-04-19 | Apple Inc. | Intelligent automated assistant |
| US8977255B2 (en) | 2007-04-03 | 2015-03-10 | Apple Inc. | Method and system for operating a multi-function portable electronic device using voice-activation |
| US9053089B2 (en) | 2007-10-02 | 2015-06-09 | Apple Inc. | Part-of-speech tagging using latent analogy |
| US8620662B2 (en) | 2007-11-20 | 2013-12-31 | Apple Inc. | Context-aware unit selection |
| US10002189B2 (en) | 2007-12-20 | 2018-06-19 | Apple Inc. | Method and apparatus for searching using an active ontology |
| US9330720B2 (en) | 2008-01-03 | 2016-05-03 | Apple Inc. | Methods and apparatus for altering audio output signals |
| US8065143B2 (en) | 2008-02-22 | 2011-11-22 | Apple Inc. | Providing text input using speech data and non-speech data |
| US8996376B2 (en) | 2008-04-05 | 2015-03-31 | Apple Inc. | Intelligent text-to-speech conversion |
| US10496753B2 (en) | 2010-01-18 | 2019-12-03 | Apple Inc. | Automatically adapting user interfaces for hands-free interaction |
| US8464150B2 (en) | 2008-06-07 | 2013-06-11 | Apple Inc. | Automatic language identification for dynamic text processing |
| US20100030549A1 (en) | 2008-07-31 | 2010-02-04 | Lee Michael M | Mobile device having human language translation capability with positional feedback |
| US8768702B2 (en) | 2008-09-05 | 2014-07-01 | Apple Inc. | Multi-tiered voice feedback in an electronic device |
| US8898568B2 (en) | 2008-09-09 | 2014-11-25 | Apple Inc. | Audio user interface |
| US8583418B2 (en) | 2008-09-29 | 2013-11-12 | Apple Inc. | Systems and methods of detecting language and natural language strings for text to speech synthesis |
| US8712776B2 (en) | 2008-09-29 | 2014-04-29 | Apple Inc. | Systems and methods for selective text to speech synthesis |
| US8676904B2 (en) | 2008-10-02 | 2014-03-18 | Apple Inc. | Electronic devices with voice command and contextual data processing capabilities |
| US9959870B2 (en) | 2008-12-11 | 2018-05-01 | Apple Inc. | Speech recognition involving a mobile device |
| US8862252B2 (en) | 2009-01-30 | 2014-10-14 | Apple Inc. | Audio user interface for displayless electronic device |
| US8380507B2 (en) | 2009-03-09 | 2013-02-19 | Apple Inc. | Systems and methods for determining the language to use for speech generated by a text to speech engine |
| US8397056B1 (en) | 2009-04-21 | 2013-03-12 | Jackbe Corporation | Method and apparatus to apply an attribute based dynamic policy for mashup resources |
| US8458596B1 (en) | 2009-04-21 | 2013-06-04 | Jackbe Corporation | Method and apparatus for a mashup dashboard |
| US10540976B2 (en) | 2009-06-05 | 2020-01-21 | Apple Inc. | Contextual voice commands |
| US10241752B2 (en) | 2011-09-30 | 2019-03-26 | Apple Inc. | Interface for a virtual digital assistant |
| US10255566B2 (en) | 2011-06-03 | 2019-04-09 | Apple Inc. | Generating and processing task items that represent tasks to perform |
| US10241644B2 (en) | 2011-06-03 | 2019-03-26 | Apple Inc. | Actionable reminder entries |
| US9858925B2 (en) | 2009-06-05 | 2018-01-02 | Apple Inc. | Using context information to facilitate processing of commands in a virtual assistant |
| US9431006B2 (en) | 2009-07-02 | 2016-08-30 | Apple Inc. | Methods and apparatuses for automatic speech recognition |
| US9110577B1 (en) * | 2009-09-30 | 2015-08-18 | Software AG USA Inc. | Method and system for capturing, inferring, and/or navigating dependencies between mashups and their data sources and consumers |
| US8682649B2 (en) | 2009-11-12 | 2014-03-25 | Apple Inc. | Sentiment prediction from textual data |
| US8600743B2 (en) | 2010-01-06 | 2013-12-03 | Apple Inc. | Noise profile determination for voice-related feature |
| US8381107B2 (en) | 2010-01-13 | 2013-02-19 | Apple Inc. | Adaptive audio feedback system and method |
| US8311838B2 (en) | 2010-01-13 | 2012-11-13 | Apple Inc. | Devices and methods for identifying a prompt corresponding to a voice input in a sequence of prompts |
| US10705794B2 (en) | 2010-01-18 | 2020-07-07 | Apple Inc. | Automatically adapting user interfaces for hands-free interaction |
| US10679605B2 (en) | 2010-01-18 | 2020-06-09 | Apple Inc. | Hands-free list-reading by intelligent automated assistant |
| US10276170B2 (en) | 2010-01-18 | 2019-04-30 | Apple Inc. | Intelligent automated assistant |
| US10553209B2 (en) | 2010-01-18 | 2020-02-04 | Apple Inc. | Systems and methods for hands-free notification summaries |
| DE202011111062U1 (de) | 2010-01-25 | 2019-02-19 | Newvaluexchange Ltd. | Vorrichtung und System für eine Digitalkonversationsmanagementplattform |
| US8682667B2 (en) | 2010-02-25 | 2014-03-25 | Apple Inc. | User profiling for selecting user specific voice input processing information |
| US8572229B2 (en) * | 2010-05-28 | 2013-10-29 | Microsoft Corporation | Distributed computing |
| US9367595B1 (en) | 2010-06-04 | 2016-06-14 | Software AG USA Inc. | Method and system for visual wiring tool to interconnect apps |
| US8713021B2 (en) | 2010-07-07 | 2014-04-29 | Apple Inc. | Unsupervised document clustering using latent semantic density analysis |
| US8719006B2 (en) | 2010-08-27 | 2014-05-06 | Apple Inc. | Combined statistical and rule-based part-of-speech tagging for text-to-speech synthesis |
| US8719014B2 (en) | 2010-09-27 | 2014-05-06 | Apple Inc. | Electronic device with text error correction based on voice recognition data |
| US10762293B2 (en) | 2010-12-22 | 2020-09-01 | Apple Inc. | Using parts-of-speech tagging and named entity recognition for spelling correction |
| US10515147B2 (en) | 2010-12-22 | 2019-12-24 | Apple Inc. | Using statistical language models for contextual lookup |
| US8781836B2 (en) | 2011-02-22 | 2014-07-15 | Apple Inc. | Hearing assistance system for providing consistent human speech |
| US9262612B2 (en) | 2011-03-21 | 2016-02-16 | Apple Inc. | Device access using voice authentication |
| US10057736B2 (en) | 2011-06-03 | 2018-08-21 | Apple Inc. | Active transport based notifications |
| US20120310642A1 (en) | 2011-06-03 | 2012-12-06 | Apple Inc. | Automatically creating a mapping between text data and audio data |
| US8812294B2 (en) | 2011-06-21 | 2014-08-19 | Apple Inc. | Translating phrases from one language into another using an order-based set of declarative rules |
| US8706472B2 (en) | 2011-08-11 | 2014-04-22 | Apple Inc. | Method for disambiguating multiple readings in language conversion |
| US8994660B2 (en) | 2011-08-29 | 2015-03-31 | Apple Inc. | Text correction processing |
| US8762156B2 (en) | 2011-09-28 | 2014-06-24 | Apple Inc. | Speech recognition repair using contextual information |
| US10134385B2 (en) | 2012-03-02 | 2018-11-20 | Apple Inc. | Systems and methods for name pronunciation |
| US9483461B2 (en) | 2012-03-06 | 2016-11-01 | Apple Inc. | Handling speech synthesis of content for multiple languages |
| US9280610B2 (en) | 2012-05-14 | 2016-03-08 | Apple Inc. | Crowd sourcing information to fulfill user requests |
| US8775442B2 (en) | 2012-05-15 | 2014-07-08 | Apple Inc. | Semantic search using a single-source semantic model |
| US10417037B2 (en) | 2012-05-15 | 2019-09-17 | Apple Inc. | Systems and methods for integrating third party services with a digital assistant |
| US10019994B2 (en) | 2012-06-08 | 2018-07-10 | Apple Inc. | Systems and methods for recognizing textual identifiers within a plurality of words |
| US9721563B2 (en) | 2012-06-08 | 2017-08-01 | Apple Inc. | Name recognition system |
| US9495129B2 (en) | 2012-06-29 | 2016-11-15 | Apple Inc. | Device, method, and user interface for voice-activated navigation and browsing of a document |
| US9576574B2 (en) | 2012-09-10 | 2017-02-21 | Apple Inc. | Context-sensitive handling of interruptions by intelligent digital assistant |
| US9547647B2 (en) | 2012-09-19 | 2017-01-17 | Apple Inc. | Voice-based media searching |
| US8935167B2 (en) | 2012-09-25 | 2015-01-13 | Apple Inc. | Exemplar-based latent perceptual modeling for automatic speech recognition |
| US10199051B2 (en) | 2013-02-07 | 2019-02-05 | Apple Inc. | Voice trigger for a digital assistant |
| US10572476B2 (en) | 2013-03-14 | 2020-02-25 | Apple Inc. | Refining a search based on schedule items |
| US10652394B2 (en) | 2013-03-14 | 2020-05-12 | Apple Inc. | System and method for processing voicemail |
| US10642574B2 (en) | 2013-03-14 | 2020-05-05 | Apple Inc. | Device, method, and graphical user interface for outputting captions |
| US9977779B2 (en) | 2013-03-14 | 2018-05-22 | Apple Inc. | Automatic supplementation of word correction dictionaries |
| US9733821B2 (en) | 2013-03-14 | 2017-08-15 | Apple Inc. | Voice control to diagnose inadvertent activation of accessibility features |
| US9368114B2 (en) | 2013-03-14 | 2016-06-14 | Apple Inc. | Context-sensitive handling of interruptions |
| KR101759009B1 (ko) | 2013-03-15 | 2017-07-17 | 애플 인크. | 적어도 부분적인 보이스 커맨드 시스템을 트레이닝시키는 것 |
| CN105144133B (zh) | 2013-03-15 | 2020-11-20 | 苹果公司 | 对中断进行上下文相关处理 |
| US10748529B1 (en) | 2013-03-15 | 2020-08-18 | Apple Inc. | Voice activated device for use with a voice-based digital assistant |
| CN110096712B (zh) | 2013-03-15 | 2023-06-20 | 苹果公司 | 通过智能数字助理的用户培训 |
| WO2014144579A1 (en) | 2013-03-15 | 2014-09-18 | Apple Inc. | System and method for updating an adaptive speech recognition model |
| WO2014197334A2 (en) | 2013-06-07 | 2014-12-11 | Apple Inc. | System and method for user-specified pronunciation of words for speech synthesis and recognition |
| US9582608B2 (en) | 2013-06-07 | 2017-02-28 | Apple Inc. | Unified ranking with entropy-weighted information for phrase-based semantic auto-completion |
| WO2014197336A1 (en) | 2013-06-07 | 2014-12-11 | Apple Inc. | System and method for detecting errors in interactions with a voice-based digital assistant |
| WO2014197335A1 (en) | 2013-06-08 | 2014-12-11 | Apple Inc. | Interpreting and acting upon commands that involve sharing information with remote devices |
| US10176167B2 (en) | 2013-06-09 | 2019-01-08 | Apple Inc. | System and method for inferring user intent from speech inputs |
| DE112014002747T5 (de) | 2013-06-09 | 2016-03-03 | Apple Inc. | Vorrichtung, Verfahren und grafische Benutzerschnittstelle zum Ermöglichen einer Konversationspersistenz über zwei oder mehr Instanzen eines digitalen Assistenten |
| AU2014278595B2 (en) | 2013-06-13 | 2017-04-06 | Apple Inc. | System and method for emergency calls initiated by voice command |
| KR101749009B1 (ko) | 2013-08-06 | 2017-06-19 | 애플 인크. | 원격 디바이스로부터의 활동에 기초한 스마트 응답의 자동 활성화 |
| US10296160B2 (en) | 2013-12-06 | 2019-05-21 | Apple Inc. | Method for extracting salient dialog usage from live data |
| US9620105B2 (en) | 2014-05-15 | 2017-04-11 | Apple Inc. | Analyzing audio input for efficient speech and music recognition |
| US10592095B2 (en) | 2014-05-23 | 2020-03-17 | Apple Inc. | Instantaneous speaking of content on touch devices |
| US9502031B2 (en) | 2014-05-27 | 2016-11-22 | Apple Inc. | Method for supporting dynamic grammars in WFST-based ASR |
| US9430463B2 (en) | 2014-05-30 | 2016-08-30 | Apple Inc. | Exemplar-based natural language processing |
| US10289433B2 (en) | 2014-05-30 | 2019-05-14 | Apple Inc. | Domain specific language for encoding assistant dialog |
| US9734193B2 (en) | 2014-05-30 | 2017-08-15 | Apple Inc. | Determining domain salience ranking from ambiguous words in natural speech |
| US9760559B2 (en) | 2014-05-30 | 2017-09-12 | Apple Inc. | Predictive text input |
| US10078631B2 (en) | 2014-05-30 | 2018-09-18 | Apple Inc. | Entropy-guided text prediction using combined word and character n-gram language models |
| EP3480811A1 (de) | 2014-05-30 | 2019-05-08 | Apple Inc. | Verfahren zur eingabe von mehreren befehlen mit einer einzigen äusserung |
| US10170123B2 (en) | 2014-05-30 | 2019-01-01 | Apple Inc. | Intelligent assistant for home automation |
| US9842101B2 (en) | 2014-05-30 | 2017-12-12 | Apple Inc. | Predictive conversion of language input |
| US9785630B2 (en) | 2014-05-30 | 2017-10-10 | Apple Inc. | Text prediction using combined word N-gram and unigram language models |
| US9633004B2 (en) | 2014-05-30 | 2017-04-25 | Apple Inc. | Better resolution when referencing to concepts |
| US9715875B2 (en) | 2014-05-30 | 2017-07-25 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
| US9338493B2 (en) | 2014-06-30 | 2016-05-10 | Apple Inc. | Intelligent automated assistant for TV user interactions |
| US10659851B2 (en) | 2014-06-30 | 2020-05-19 | Apple Inc. | Real-time digital assistant knowledge updates |
| US10446141B2 (en) | 2014-08-28 | 2019-10-15 | Apple Inc. | Automatic speech recognition based on user feedback |
| US9818400B2 (en) | 2014-09-11 | 2017-11-14 | Apple Inc. | Method and apparatus for discovering trending terms in speech requests |
| US10789041B2 (en) | 2014-09-12 | 2020-09-29 | Apple Inc. | Dynamic thresholds for always listening speech trigger |
| US9646609B2 (en) | 2014-09-30 | 2017-05-09 | Apple Inc. | Caching apparatus for serving phonetic pronunciations |
| US10074360B2 (en) | 2014-09-30 | 2018-09-11 | Apple Inc. | Providing an indication of the suitability of speech recognition |
| US9668121B2 (en) | 2014-09-30 | 2017-05-30 | Apple Inc. | Social reminders |
| US9886432B2 (en) | 2014-09-30 | 2018-02-06 | Apple Inc. | Parsimonious handling of word inflection via categorical stem + suffix N-gram language models |
| US10127911B2 (en) | 2014-09-30 | 2018-11-13 | Apple Inc. | Speaker identification and unsupervised speaker adaptation techniques |
| US10552013B2 (en) | 2014-12-02 | 2020-02-04 | Apple Inc. | Data detection |
| US9711141B2 (en) | 2014-12-09 | 2017-07-18 | Apple Inc. | Disambiguating heteronyms in speech synthesis |
| US9865280B2 (en) | 2015-03-06 | 2018-01-09 | Apple Inc. | Structured dictation using intelligent automated assistants |
| US10567477B2 (en) | 2015-03-08 | 2020-02-18 | Apple Inc. | Virtual assistant continuity |
| US9721566B2 (en) | 2015-03-08 | 2017-08-01 | Apple Inc. | Competing devices responding to voice triggers |
| US9886953B2 (en) | 2015-03-08 | 2018-02-06 | Apple Inc. | Virtual assistant activation |
| US9899019B2 (en) | 2015-03-18 | 2018-02-20 | Apple Inc. | Systems and methods for structured stem and suffix language models |
| US9842105B2 (en) | 2015-04-16 | 2017-12-12 | Apple Inc. | Parsimonious continuous-space phrase representations for natural language processing |
| US10083688B2 (en) | 2015-05-27 | 2018-09-25 | Apple Inc. | Device voice control for selecting a displayed affordance |
| US10127220B2 (en) | 2015-06-04 | 2018-11-13 | Apple Inc. | Language identification from short strings |
| US10101822B2 (en) | 2015-06-05 | 2018-10-16 | Apple Inc. | Language input correction |
| US11025565B2 (en) | 2015-06-07 | 2021-06-01 | Apple Inc. | Personalized prediction of responses for instant messaging |
| US10186254B2 (en) | 2015-06-07 | 2019-01-22 | Apple Inc. | Context-based endpoint detection |
| US10255907B2 (en) | 2015-06-07 | 2019-04-09 | Apple Inc. | Automatic accent detection using acoustic models |
| US10671428B2 (en) | 2015-09-08 | 2020-06-02 | Apple Inc. | Distributed personal assistant |
| US10747498B2 (en) | 2015-09-08 | 2020-08-18 | Apple Inc. | Zero latency digital assistant |
| US9697820B2 (en) | 2015-09-24 | 2017-07-04 | Apple Inc. | Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks |
| US11010550B2 (en) | 2015-09-29 | 2021-05-18 | Apple Inc. | Unified language modeling framework for word prediction, auto-completion and auto-correction |
| US10366158B2 (en) | 2015-09-29 | 2019-07-30 | Apple Inc. | Efficient word encoding for recurrent neural network language models |
| US11587559B2 (en) | 2015-09-30 | 2023-02-21 | Apple Inc. | Intelligent device identification |
| US10691473B2 (en) | 2015-11-06 | 2020-06-23 | Apple Inc. | Intelligent automated assistant in a messaging environment |
| US10049668B2 (en) | 2015-12-02 | 2018-08-14 | Apple Inc. | Applying neural network language models to weighted finite state transducers for automatic speech recognition |
| US10223066B2 (en) | 2015-12-23 | 2019-03-05 | Apple Inc. | Proactive assistance based on dialog communication between devices |
| US10446143B2 (en) | 2016-03-14 | 2019-10-15 | Apple Inc. | Identification of voice inputs providing credentials |
| US9934775B2 (en) | 2016-05-26 | 2018-04-03 | Apple Inc. | Unit-selection text-to-speech synthesis based on predicted concatenation parameters |
| US9972304B2 (en) | 2016-06-03 | 2018-05-15 | Apple Inc. | Privacy preserving distributed evaluation framework for embedded personalized systems |
| US10249300B2 (en) | 2016-06-06 | 2019-04-02 | Apple Inc. | Intelligent list reading |
| US10049663B2 (en) | 2016-06-08 | 2018-08-14 | Apple, Inc. | Intelligent automated assistant for media exploration |
| DK179309B1 (en) | 2016-06-09 | 2018-04-23 | Apple Inc | Intelligent automated assistant in a home environment |
| US10586535B2 (en) | 2016-06-10 | 2020-03-10 | Apple Inc. | Intelligent digital assistant in a multi-tasking environment |
| US10509862B2 (en) | 2016-06-10 | 2019-12-17 | Apple Inc. | Dynamic phrase expansion of language input |
| US10067938B2 (en) | 2016-06-10 | 2018-09-04 | Apple Inc. | Multilingual word prediction |
| US10490187B2 (en) | 2016-06-10 | 2019-11-26 | Apple Inc. | Digital assistant providing automated status report |
| US10192552B2 (en) | 2016-06-10 | 2019-01-29 | Apple Inc. | Digital assistant providing whispered speech |
| DK201670540A1 (en) | 2016-06-11 | 2018-01-08 | Apple Inc | Application integration with a digital assistant |
| DK179343B1 (en) | 2016-06-11 | 2018-05-14 | Apple Inc | Intelligent task discovery |
| DK179049B1 (en) | 2016-06-11 | 2017-09-18 | Apple Inc | Data driven natural language event detection and classification |
| DK179415B1 (en) | 2016-06-11 | 2018-06-14 | Apple Inc | Intelligent device arbitration and control |
| US10593346B2 (en) | 2016-12-22 | 2020-03-17 | Apple Inc. | Rank-reduced token representation for automatic speech recognition |
| DK179745B1 (en) | 2017-05-12 | 2019-05-01 | Apple Inc. | SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT |
| DK201770431A1 (en) | 2017-05-15 | 2018-12-20 | Apple Inc. | Optimizing dialogue policy decisions for digital assistants using implicit feedback |
| CN107010337B (zh) * | 2017-05-15 | 2019-06-11 | 浙江竟成环保科技有限公司 | 一种基于互联网通信的垃圾分类、回收系统 |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3653001A (en) * | 1967-11-13 | 1972-03-28 | Bell Telephone Labor Inc | Time-shared computer graphics system having data processing means at display terminals |
| US4084231A (en) * | 1975-12-18 | 1978-04-11 | International Business Machines Corporation | System for facilitating the copying back of data in disc and tape units of a memory hierarchial system |
| US4390945A (en) * | 1980-08-25 | 1983-06-28 | Burroughs Corporation | Self-managing variable field storage station employing a cursor for handling nested data structures |
| US4479196A (en) * | 1982-11-15 | 1984-10-23 | At&T Bell Laboratories | Hyperedge entity-relationship data base systems |
| US4611298A (en) * | 1983-06-03 | 1986-09-09 | Harding And Harris Behavioral Research, Inc. | Information storage and retrieval system and method |
| US4716524A (en) * | 1985-04-04 | 1987-12-29 | Texas Instruments Incorporated | Apparatus and method removing increment/decrement pairs to decimate a block reference stream |
| US4814971A (en) * | 1985-09-11 | 1989-03-21 | Texas Instruments Incorporated | Virtual memory recovery system using persistent roots for selective garbage collection and sibling page timestamping for defining checkpoint state |
| US4809170A (en) * | 1987-04-22 | 1989-02-28 | Apollo Computer, Inc. | Computer device for aiding in the development of software system |
-
1987
- 1987-11-06 US US07/118,493 patent/US4914586A/en not_active Expired - Lifetime
-
1988
- 1988-11-01 JP JP63278498A patent/JP2795856B2/ja not_active Expired - Fee Related
- 1988-11-02 DE DE3855152T patent/DE3855152T2/de not_active Expired - Fee Related
- 1988-11-02 EP EP88310296A patent/EP0315426B1/de not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| EP0315426A3 (en) | 1990-11-28 |
| US4914586A (en) | 1990-04-03 |
| EP0315426A2 (de) | 1989-05-10 |
| JP2795856B2 (ja) | 1998-09-10 |
| JPH01156840A (ja) | 1989-06-20 |
| DE3855152D1 (de) | 1996-05-02 |
| EP0315426B1 (de) | 1996-03-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE3855152T2 (de) | Verteiltes Computersystem | |
| DE60006845T2 (de) | Verfahren und vorrichtung zur zusammenarbeit bei multimediaerzeugung über einem netzwerk | |
| Terry et al. | Managing stored voice in the Etherphone system | |
| DE69634473T2 (de) | Universelles Nachrichtenablieferungssystem | |
| DE69331660T2 (de) | Zusammenarbeit in einem netzwerk | |
| DE69730929T2 (de) | System zur Verwaltung der Mitanwesenheit innerhalb Gemeinschaften | |
| DE69632121T2 (de) | Universelles Nachrichtenspeichersystem | |
| DE69516727T2 (de) | Verfahren und system um auf daten zuzugreifen | |
| DE3885451T2 (de) | Elektronisches Post-Folgesystem. | |
| DE69909555T2 (de) | Verteiltes Anrufsystem | |
| DE69907631T2 (de) | Netzzugang zu inhaltsadressierbaren daten | |
| DE69902786T2 (de) | Universelles benachrichtigungssystem | |
| EP1194865B1 (de) | Verfahren zur datenpflege in einem netzwerk teilweise replizierter datenbanksysteme | |
| DE68921715T2 (de) | Konferenzverbindungssystem. | |
| DE69505561T2 (de) | Verfahren und gerät um unterbaumstrukturen in einer netzwerkdatei zu verschieben | |
| DE69327761T2 (de) | Verfahren und Vorrichtung zum Einsetzen von Marken in einem elektronischen Poststück | |
| DE69633103T2 (de) | Universeller Rufnummernauskunftsdienst | |
| DE3855260T2 (de) | System und Verfahren zum Zugriff von Ferndateien in einem verteilten Netzwerk | |
| DE69417279T2 (de) | Verfahren und Anordnung zum automatischen Aktualisieren von Telephonbeantwortervorrichtungen | |
| DE19919146A1 (de) | Hochleistungs-Nachrichtenspeicher | |
| DE69031164T2 (de) | Zeitlich begrenztes zentrumsystem für dezentralisiertes datenbanksystem | |
| DE69522872T2 (de) | System zur Ton Konvertierung und Speicherung über Netzwerk | |
| DE60306209T2 (de) | Verfahren, mobile vorrichtungen und rechnerlesbare media zur datenverwaltung | |
| DE69622927T2 (de) | Informationsablaufverfolgungsystem und -verfahren | |
| EP1225511A1 (de) | Verfahren und system zur akten-verwaltung in verteilten umgebungen |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 8364 | No opposition during term of opposition | ||
| 8339 | Ceased/non-payment of the annual fee |