DE69933123T2 - Zugriff auf eine semi-strukturierte datenbank - Google Patents

Zugriff auf eine semi-strukturierte datenbank Download PDF

Info

Publication number
DE69933123T2
DE69933123T2 DE69933123T DE69933123T DE69933123T2 DE 69933123 T2 DE69933123 T2 DE 69933123T2 DE 69933123 T DE69933123 T DE 69933123T DE 69933123 T DE69933123 T DE 69933123T DE 69933123 T2 DE69933123 T2 DE 69933123T2
Authority
DE
Germany
Prior art keywords
entry
slot
request
index
verb
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69933123T
Other languages
English (en)
Other versions
DE69933123D1 (de
Inventor
Samuel William Dyne Colchester STEEL
Udo Kruschwitz
Nicholas John Colchester WEBB
Anne Nellie Colchester DE ROECK
Paul David Scott
Raymond Colchester TURNER
Kwok Ching Colchester TSUI
Wayne Raymond Ipswich WOBCKE
Behnam Ipswich AZVINE
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
British Telecommunications PLC
Original Assignee
British Telecommunications PLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from GBGB9816648.1A external-priority patent/GB9816648D0/en
Application filed by British Telecommunications PLC filed Critical British Telecommunications PLC
Publication of DE69933123D1 publication Critical patent/DE69933123D1/de
Application granted granted Critical
Publication of DE69933123T2 publication Critical patent/DE69933123T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/83Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/313Selection or weighting of terms for indexing
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/912Applications of a database
    • Y10S707/917Text
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/953Organization of data
    • Y10S707/955Object-oriented
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching

Description

  • Die vorliegende Erfindung bezieht sich auf ein Verfahren und eine Vorrichtung, um einen Index für eine semistrukturierte Datenbank zu erzeugen, die eine Anzahl von Elementen beinhaltet, wobei jedes Element einen Satz von Daten aufweist, die in einem semistrukturierten Format gespeichert sind, wobei jeder Satz von Daten eine Anzahl von zugehörigen Einträgen beinhaltet.
  • Früher gab es zwei Hauptansätze, um auf Daten zuzugreifen, die in elektronischem Format gespeichert sind. Der erste Prozess ist bekannt als Informationsabfrage und arbeitet mit einem strengen Zeichenfolgesuchansatz. Wenn dementsprechend ein Benutzer dabei ist, eine Abfrage in Form eines Schlüsselwortes einzugeben, wobei die Informationsabfragetechnik benutzt wird, wird die gesamte Datenbank nach einer Zeichenfolge, welche zu dem Schlüsselwort passt, durchsucht. Offensichtlich leidet ein solches System an dem Nachteil, dass es leicht relevante Einträge verpassen könnte, sollte die Form des Wortes in der Datenbank geringfügig von der Form des Schlüsselwortes abweichen. Dieses Problem kann überwunden werden, indem eine Abstammungstechnik benutzt wird, in der das Schlüsselwort abgeschnitten und eine globale Wortendung hinzugefügt wird. Dies hat jedoch wieder den Nachteil, dass dann zahlreiche irrelevante Datensätze gefunden werden können, die ähnliche Schlüsselworte beinhalten.
  • Im zweiten Ansatz, bekannt als Wissensdarstellung, muss die ganze Information der Datenbank vorcodiert werden, indem eine spezielle Wissensdarstellungssprache benutzt wird, um eine neue Datenbank zu bilden. Dies erfordert es, dass ein Benutzer die Daten durchsucht und analysiert und relevante Informationen in verschie denen Wissensdarstellungsfeldern platziert. Wenn dies abgeschlossen ist, erlaubt dies Benutzern, auf die Information zuzugreifen, indem Abfragen in einer Wissensdarstellungssprache eingegeben werden. Diese benutzt logische und Theorem-Beweise und ist deshalb für Benutzer ohne Spezialwissen nicht unmittelbar zugänglich. Zudem leiden Wissensdarstellungsansätze an dem Nachteil, dass die Datenbanken anfangs schwierig zu erzeugen sind, und wenn sie erzeugt sind, noch schwieriger zu ändern sind.
  • Beide der oben erwähnten Techniken sind sowieso ungeeignet für Benutzung mit Daten, die im semistrukturierten Format gespeichert sind. Eine semistrukturierte Datenbank ist eine Datenbank, in der einige Daten innerhalb der Datenbank in spezifischen Feldern gespeichert werden, welche den Typ der Daten kennzeichnen, wobei der Rest der Daten einfach unter einem allgemeinen Feld gespeichert wird, wie z.B. ein Freitextfeld.
  • Datenbanken dieser Form werden im Allgemeinen entweder durch Durchsuchen von Datensätzen in Hardcopy, die ein vorbestimmtes Format haben, oder indem man einen Benutzer Daten manuell eingeben lässt, erzeugt. Jedoch können wegen der Vielseitigkeit der Freitextfelder die eingegebenen Daten in Inhalt und Stil variieren. Während dies die Beschränkungen auf die Daten, die eingegeben werden können, verringert, wodurch die Datenbank leichter zu erzeugen ist, bedeutet dies, dass die verschiedenen Typen von gespeicherten Daten nicht bestimmt werden können durch Identifizierung der Felder, in denen die Daten gespeichert sind. Beispiele von Fällen, wo Daten in solch einem semistrukturierten Format gespeichert werden, beinhalten das Yellow Pages®-Verzeichnis, Exchange and Mart, Loot, und The British National Formulary.
  • So werden zum Beispiel im Yellow Pages®-Verzeichnis die Titel von verschiedenen Abschnitten gespeichert, und zwar in einem Datensatz, der als ein Titelfeld vorgesehen ist. Jede individuelle Anzeige (nachstehend bezeichnet als ein Element) enthält ein Namensfeld und ein Freitextfeld. Ein Namenseintrag wird im Namensfeld gespeichert, wogegen ein Freitexteintrag, wie z.B. eine Beschreibung von Produkten oder Dienstleistungen der Firmen, ein Adresseintrag und ein Telefonnummerneintrag alle im selben Freitextfeld gespeichert werden.
  • Wenn dementsprechend eine Informationsabfrage auf das Yellow Pages®-Verzeichnis angewendet würde, würden in einer Schlüsselwortsuche alle Titel, Firmennamen und der Freitext durchsucht. Da der Datentyp nicht ausgewiesen ist, kann ein Titel als ein relevantes Ergebnis gefunden werden, wenn tatsächlich die Elemente verbunden mit jenem Titel die gesuchten Ergebnisse sind. Andererseits würde ein Wissensdarstellungsverfahren zum Durchsuchen der Datenbank erfordern, dass die Datenbank in eine separate Wissendarstellungsdatenbank übersetzt wird, die dann unter Verwendung von Wissensdarstellungsverfahren durchsucht werden könnte. Die ursprünglichen Yellow Pages®-Daten würden dann redundant sein, obwohl, wenn sie aktualisiert würden, eine neue Wissensdarstellungsdatenbank erforderlich wäre.
  • Huffman et al. beschreiben in einer Veröffentlichung mit dem Titel "Notes Explorer: entity based retrieval in shared, semistructured information space" in "Proceedings of the 1996 ACM CIKM International conference on information and knowledge management", 12.–16. November 1996, Seiten 99–106, ein System, das einen Index für ungleiche Datenbankdatensätze von semistrukturiertem Format erzeugt. Huffman befasst sich damit, ein System vorzusehen, das auf Informationen, die in vielen Datenbanken gespeichert sind, die zu verschiedenen Zeiten durch verschiedene Nutzer und an verschiedenen Orten erzeugt wurden, zugreifen kann.
  • Die Datensätze sind eine heterogene Mischung aus Informationen und Formaten. Huffman versucht, alle Datenbankdatensätze zu rationalisieren, indem er die Felder eines jeden Datensatzes analysiert und den Datensatz gemäß einem einzigen Indizierungsschema indiziert. Dies umfasst die Identifizierung von Feldtypen, indem Feldnamen und Feldwerte mit einem domainabhängigen Wörterbuch bestehend aus Schlüsselwörtern und "typischen Werten" verglichen wird.
  • Im Allgemeinen sind die Felder sogenannte Kurz-Textfelder, wo ein Feld eine Einheit beschreibt. Huffman beschreibt auch die Möglichkeit, dass ein Feld ein semistrukturiertes Dokument ist, wobei Einheiten wie Ort, Produktname und Fachausdrücke daraus abgefragt werden könnten. Die Abfrageverfahren, die aufgeführt sind, beinhalten Textverarbeitungswerkzeuge und Fachausdruckextraktoren.
  • Frank Shou-Cheng Tseng et al. beschreiben in einer Veröffentlichung mit dem Titel "Extending the E-R concepts to capture natural language semantics for database access" veröffentlicht durch die IEEE in "15th Proceedings for Computer software and applications conference 1991", einige Probleme im Zusammenhang mit dem Abfragen von Informationen aus Datenbanken. Es ist gut bekannt, dass Sprachen, die benutzt werden, um Datenbanken abzufragen, oft zu komplex für nicht-technische Benutzer sind. Zwischensprachen, die eine Eingabe in natürlicher Sprache aufnehmen und diese Eingabe in ein Format übersetzen, das geeignet ist für Datenbankabfragen, sind entwickelt worden, aber, wie angegeben bei Tseng et al., haben diese den Nachteil, dass es extrem schwierig ist, eine Abbildung zwischen natürlicher Sprache und Datenbankabfrage zu entwickeln, welche durchgehend funktioniert. Tseng et al. präsentieren ein Verfahren, bei dem die natürliche Sprache geparst und über ein Einheitsbeziehungsschema in eine relationale Algebra abgebildet wird. Mit diesem Ansatz werden das Verb und die Semantik einer Abfrage in eine logische Form abgebildet und in relationale Algebra übersetzt und zwar entsprechend welcher Datenbank auch immer, die abgefragt werden muss. Dieses Verfahren ist relativ komplex.
  • Gemäß einem ersten Aspekt der Erfindung ist eine Vorrichtung vorgesehen, um auf eine semistrukturierte Datenbank zuzugreifen, in Übereinstimmung mit einer Eingabeaufforderung für Informationen, wobei die semistrukturierte Datenbank mehrere Elemente aufweist, wobei jedes Element ein oder mehrere Felder aufweist, die mehrere Zeichen enthalten, und wenigstens eines dieser Felder ein Freitextfeld ist, wobei die Vorrichtung aufweist
    einen Datenspeicher mit mehreren Indexeinträgen, die eine Übereinstimmung zwischen einem Eintrag in ein Feld eines Elements und einem Element darstellen;
    eine Eingabeeinrichtung zur Aufnahme einer Informationsanforderung, wobei die Anforderung einen Satz in natürlicher Sprache aufweist, gekennzeichnet durch
    einen Parser zum Parsen der Anforderung, um Komponenten der Anforderung zu bestimmen;
    einen Schlitzfüller, der dazu ausgelegt ist, eine oder mehrere Objektkomponenten, die ein Objekt der Anforderung von der geparsten Anforderung darstellen, zu identifizieren, wobei jeder Schlitz einer Gruppe von Indexeinträgen entspricht und wobei der Schlitzfüller dazu ausgelegt ist, wenigstens eine Komponente einem entsprechenden Schlitz einer Schlitz- und Füllanforderung mit mehreren Schlitzen zuzuweisen; und
    einen Abfrageerzeuger, für den Zugriff auf den Datenspeicher, wobei der Abfrageerzeuger dazu ausgelegt ist, eine zugewiese ne Komponente mit Indexeinträgen zu vergleichen, innerhalb welcher Gruppe von Indexeintragung auch immer dies dem Schlitz der zugewiesenen Komponente entspricht, um einen entsprechenden Indexeintrag zu identifizieren, und um den identifizierten Indexeintrag zu benutzen, um ein Element in der semistrukturierten Datenbank zu identifizieren.
  • Daher weist die Abfrageeinrichtung der Erfindung tatsächlich einen Schlitz einem Indexeintrag oder einer Gruppe von Indexeinträgen zu, und sobald die Abfrage geparst und einem Schlitz zugewiesen wurde, wird der Indexeintrag, der dem entspricht, identifiziert. Dies ist wesentlich weniger komplex als die bekannten Verfahren, so wie oben bei Tseng et al. beschrieben.
  • Ein Beispiel einer Vorrichtung gemäß der vorliegenden Erfindung wird nun bezugnehmend auf die begleitenden Zeichnungen beschrieben, in der
  • 1 in schematischer Form eine Vorrichtung zum Erzeugen eines Indexes in einer semistrukturierten Datenbank zeigt;
  • 2a ein typisches Element eines Yellow Pages®-Verzeichnisses zeigt;
  • 2b eine Darstellung des Formates der Daten des Elements aus 2a ist;
  • 3 einen typischen Titel, "See"-Referenz- und "See-Also"-Referenz-Einträge aus dem Yellow Pages®-Verzeichnis zeigt; und
  • 4 in einer schematischen Form eine Vorrichtung für die Anforderung eines Elements aus einer semistrukturierten Datenbank zeigt.
  • Eine Vorrichtung zum Erzeugen eines Indexes für eine semistrukturierte Datenbank wird nun bezugnehmend auf 1 beschrieben. Die Vorrichtung weist einen Datenbankspeicher 1 auf, der die Daten, die die semistrukturierte zu indizierende Datenbank bilden, speichert, und einen Indexspeicher 2, der den erzeugten Index speichert. Der Indexspeicher 2 und der Datenbankspeicher 1 sind, um den Index zu erzeugen, an die Vorrichtung 3 gekoppelt, die im Allgemeinen aus einem Computer, wie z.B. einer SUN SPARCS-175-Station, oder Ähnlichem, besteht. Dieser beinhaltet einen Prozessor 4, der an einen Speicher 5 gekoppelt ist, welcher eine Anzahl von bestimmten Auswahlkriterien speichert. Der Prozessor 4 ist auch über einen Bus 7 an den Indexgenerator 6 gekoppelt.
  • Die Funktion der Vorrichtung aus 1 wird nun beschrieben. Die in 1 gezeigte semistrukturierte Datenbank enthält im Allgemeinen eine Anzahl von Elementen, wobei jedes Element als eine Anzahl von Datensätzen gespeichert wird. In dem Fall des Yellow Pages®-Verzeichnisses zum Beispiel weist jedes Element 40 im Allgemeinen eine individuelle Anzeige auf, wie z.B. die in 2a gezeigte Anzeige. Dies beinhaltet typischerweise ein Namensfeld 41 mit einem Namenseintrag 42 und ein Freitextfeld 43 mit einem Freitexteintrag 44, einen Adresseintrag 45 und einen Telefonnummerneintrag 46.
  • Jedes Element in dem Datenbankspeicher 1 wird als eine Anzahl von Datensätzen 51, 52, 53, 54 gespeichert, wobei jeder Datensatz einer separaten Linie in dem Element entspricht. Jeder Datensatz bezeichnet in einem ersten Bereich 51A, 52A, 53A, 54A das Element, auf das sich der Datensatz bezieht. Ein zweiter Bereich 51B, 52B, 53B, 54B gibt den Typ eines Datenfeldes an. Daher zeigt in dem vorliegenden Beispiel der zweite Bereich 52B, 53B, 54B der letzten drei Datensätze an, dass die Daten in dem Freitextfeld 43 vorgesehen sind, und dass diese deshalb identisch sind, wobei der zweite Bereich des ersten Datensatzes 51B anzeigt, dass die Daten in dem Namensfeld 41 vorgesehen sind. Der letzte Bereich 51C, 52C, 53C, 54C der Datensätze enthält die aktuellen Daten, wie z.B. den Namenseintrag 42, den Freitexteintrag 44, den Adresseintrag 45 und den Telefoneintrag 46.
  • Im Betrieb greift der Prozessor 4 auf den Datenbankspeicher 1 zu, um die Datensätze 51, 52, 53, 54, die sich auf ein einzelnes Element 40 beziehen, zu erhalten. Der Prozessor greift dann auf den Speicher 5 zu, um eines aus einer Anzahl von Auswahlkriterien zu erhalten. Dieses Auswahlkriterium wird mit den Datensätzen 51, 52, 53, 54 verglichen, um einen entsprechenden individuellen Eintrag innerhalb des Elements 40, das den jeweiligen Auswahlkriterien genügt, zu lokalisieren.
  • Sobald der Eintrag, der den entsprechenden Auswahlkriterien entspricht, bestimmt ist, werden die Daten, die jenem Eintrag entsprechen, aus dem relevanten Datensatz 51, 52, 53, 54 extrahiert und zusammen mit einer Angabe des Elements, mit dem der Eintrag verknüpft ist, an den Indexgenerator 6 übertragen. Der Indexerzeuger 6 erzeugt dann einen Index, der den Eintrag, der bestimmt wurde, und das Element, auf das sich der Eintrag bezieht, angibt. Dieser wird dann über den Bus 7 an den Indexspeicher 2 übertragen. Der Prozessor 4 greift dann auf den Speicher 5 zu, um das nächste Auswahlkriterium zu erhalten.
  • Sobald jeder Eintrag in dem Element indiziert ist, greift der Prozessor 4 auf den Datenbankspeicher 1 zu, um das nächste Element in der Datenbank zu erhalten. Der Vorgang wird dann wiederholt, bis alle Elemente indiziert worden sind.
  • Es ist auch festzustellen, dass in dem Yellow Pages®-Verzeichnis die Elemente 40 in Abschnitte von zugehörigen Elementen angeordnet werden. Wie in 3 gezeigt, beinhaltet jeder Abschnitt 60 einen Titeleintrag 62, der in einem Titelfeld 61 enthalten ist. Der Titeleintrag gibt die Art der entsprechenden Einträge an und wird mit einem eigenen Datensatz versehen.
  • Darüber hinaus gibt es auch zusätzliche "See"-Referenz-Einträge 63 und "See-Also"-Referenz-Einträge 64, die auch innerhalb des Titelfeldes 61 in den jeweiligen Datensätzen enthalten sein können.
  • "See-Also"-Referenz-Einträge 64 sind Verbindungen zu Titeleinträgen 62 von alternativen Abschnitten 60, welche auch relevante Elemente enthalten können. "See"-Referenz-Einträge 63 sind wiederum Verbindungen zu Titeleinträgen von alternativen Abschnitten 60, welche relevante Elemente 40 beinhalten können, jedoch werden die "See"-Referenz-Einträge, im Gegensatz zu den "See-Also"-Referenz-Einträgen, dann benutzt, wenn der Abschnitt 60, der den "See"-Referenz-Eintrag enthält, nicht tatsächlich irgendwelche Elemente enthält. Dementsprechend werden der Titeleintrag, der "See-Also"-Referenz-Eintrag und der "See"-Referenz-Eintrag auch an den Prozessor 4 zur Indizierung übermittelt.
  • Im Gegensatz zu der Indizierung von Elementen beinhaltet jeder Titel, jeder "See"-Referenz- und "See-Also"-Referenz-Eintrag 62, 63, 64 nicht selbst ein spezifisches Element. Dementsprechend, sobald der Prozessor 4 einen Titeleintrag gefunden hat, muss er wieder auf die Daten, die in dem Datenbankspeicher 1 gespeichert sind, zugreifen, um zu bestimmten, welche von den Elementen in dem jeweiligen Abschnitt lokalisiert sind. Details dieser Elemente werden dann an den Indexgenerator 6 übertragen, der einen Index für den jeweiligen Titeleintrag erzeugt, wobei der Index eine Liste von relevanten Elementen in dem jeweiligen Abschnitt beinhaltet. Diese Liste enthält auch eine Verbindung zu dem Titeleintrag von alternativen Abschnitten, wenn dort "See-Also"-Referenzen oder "See"-Referenzen vorhanden sind.
  • Die Auswahlkriterien selbst müssen definiert werden, indem ein detailliertes Wissen der Datenbank und des Formats, in welchem die Daten eingegeben werden, benutzt wird.
  • Zum Beispiel ist es im Fall von dem in 2a gezeigten Element 40 notwendig, das Vorliegen des Namenseintrags 42, des Freitexteintrags 44, des Adresseintrags 45 und des Telefonnummerneintrags 46 sowie der Titeleinträge zu bestimmen. Das Verfahren, um dies zu erreichen, wird nun separat für jeden Eintrag diskutiert.
  • Namenseintrag 42
  • Dieser Eintrag ist leicht zu identifizieren, da er in einem spezifischen Namensfeld lokalisiert ist und deshalb identifiziert werden kann durch Prüfen des Datensatzes, der für den Datenbankspeicher 1 heruntergeladen wurde.
  • Telefonnummerneintrag 46
  • Die Lokalisierung der Telefonnummerneinträge 46 kann erreicht werden, indem das Freitextfeld 43 durchsucht wird, um eine Folge von Ziffern zu lokalisieren, die ein vorbestimmtes Format haben. So ist zum Beispiel in dem in 2a gezeigten Element der Telefonnummerneintrag 46 "Colchester 822990". Dementsprechend wird das Auswahlkriterium zur Lokalisierung des Telefonnummerneintrags 46 so ausgelegt, dass nach einem Stadtnamen gefolgt von einer Zahl mit sechs Ziffern gesucht wird.
  • Alternativ jedoch wird das jeweilige Suchkriterium auch gebraucht, um nach einer vierstelligen Vorwahlnummer gefolgt von einer sechs- oder siebenstelligen Zahl, zu suchen. Es ist auch notwendig zu berücksichtigen, dass es verschiedene Abstände zwischen den Stellen in der Telefonnummer geben kann, in Abhängigkeit von dem Format, das für den Eintrag der Telefonnummer benutzt wird. Dementsprechend beinhaltet das Suchkriterium, welches benutzt wird, um Telefonnummern zu lokalisieren, vorzugsweise alle möglichen Telefonnummernformate, was es erlaubt, jeden beliebigen Telefonnummereintrag zu lokalisieren.
  • Adresseintrag 45
  • Ferner ist es notwendig, den Adresseintrag zu lokalisieren, indem der Freitexteintrag mit einer Anzahl von wahrscheinlichen Formaten für eine Adresse verglichen wird. So könnte in dem Beispiel von 2a der Adresseintrag 45 lokalisiert werden, indem nach einer drei- oder vierstelligen Zahl gefolgt von einem Wort und dann dem Begriff "street" gesucht wird. Die Analyse von Adressen zeigt, dass viele tatsächlich Begriffe wie road, street, avenue... etc. enthalten, und entsprechend können all diese Begriffe in dem Auswahlkriterium enthalten sein, welches zur Bestimmung von Adresseinträgen benutzt wird.
  • Zusätzlich zum Vergleichen des Freitextfeldes für einen Begriff dieser Form und einer Adressennummer ist es auch möglich, nach Ortsnamen, wie Colchester, zu suchen. In diesem Fall könnte eine solche Suche nicht erfolgreich sein, da Colchester schon als ein Teil des Telefonnummernfeldes 46 identifiziert sein kann. Jedoch ist es nicht das Ziel, eine einzelne Regel zu erzeugen, welche für alle Begriffe funktioniert, sondern einen Satz von Regeln zu erzeugen von denen jede in dem entsprechenden Auswahlkriterium dargestellt wird, sodass, wenn das Auswahlkriterium auf die Daten angewendet wird, der relevante Eintrag bestimmt wird.
  • Freitexteintrag 44
  • Soweit der Freitexteintrag 44 betroffen ist, umfasst dieser in dem vorliegenden Beispiel die Formulierung "suppliers of all top brand golf equipment". Da dieser Eintrag selbst sehr schwierig zu lokalisieren ist, stellt der Prozessor 4 das Vorliegen eines Texteintrages 44 fest, indem er erst alle anderen Einträge in dem Freitextfeld 43 identifiziert und diese dann ignoriert.
  • Da das Format des Yellow Pages®-Verzeichnisses derart ist, dass das Freitextfeld 43 nur immer einen Texteintrag 44, einen Adresseintrag 45 und einen Telefoneintrag 46 enthält, müssen, sobald diese Einträge bestimmt sind, die verbleibenden alphanumerischen Zeichen, die im Freitextfeld 43 übrig sind, einen Freitexteintrag 44 aufweisen.
  • Im Falle des Freitexteintrags 44 beinhaltet dieser eine Anzahl von Wörtern. Die Extraktion all dieser Wörter wäre nicht besonders nützlich für Suchzwecke. Demgemäß ist es vorzuziehen, selektiver bei der Auswahl der Wörter zu sein, welche benutzt werden, um einen Index zu bilden.
  • Ein möglicher Ansatz ist es, eine begrenzte Anzahl von Wörtern aus dem Texteintrag auszuwählen, um eine Liste von Schlüsselwörtern zu bilden. Dann kann ein Index für jedes Schlüsselwort gebildet werden. So ist im vorliegenden Beispiel der Freitexteintrag 44 "suppliers of all top brand golf equipment". In diesem Fall sind Wörter wie "of" und "all" an sich nicht sehr nützlich und würden deshalb weggelassen werden. Im Gegensatz dazu bilden die Wörter "supplier" oder "golf" sehr gute Schlüsselwörter.
  • Jedoch wird das Problem der Auswahl von Schlüsselwörtern vergrößert durch die Tatsache, dass es keine Satzstruktur in dem Freitexteintrag gibt und dass die Unterscheidungen von Groß- und Kleinbuchstaben, welche von vielen lexikalischen Analysepro grammen benutzt werden, in diesen Elementen eher bedeutungslos sind. Eine Lösung hierfür ist es, eine vorbestimmte Liste von Schlüsselwörtern zu haben, welche ausgewählt werden müssen. Dies ist jedoch etwas einschränkend und es wird deshalb bevorzugt, Wörter auf der Basis von bestimmten Eigenschaften auszuwählen.
  • Im vorliegenden Beispiel wird dies erreicht, indem alle Wörter, die nicht Nomen, Verben oder Adjektive sind, gestrichen werden. Diese Wörter können leicht identifiziert werden, indem ein System wie das "Brill-Tagger" benutzt wird, welches Zeilen von Wörtern als Eingabe nimmt und die Wörter mit einer "Part-of-Speech"-Markierung markiert, welche die Art der Wörter angibt.
  • Ein Index wird dann erzeugt für:
    • i) jedes einzelne Wort, das als Nomen markiert ist;
    • ii) jede Zusammensetzung bestehend aus zwei oder drei aufeinanderfolgenden Wörtern (d.h. wo kein Zwischenwort gestrichen worden ist);
    • iii) Nomenzusammensetzungen, die aus zwei oder mehr Wörtern bestehen (diese werden indiziert auf der Basis von jedem einzelnen Wort in der Zusammensetzung in Kombination mit dem ersten Wort).
  • Die Benutzung von solchen zusammengesetzten Schlüsselwörtern ist dadurch begrenzt, dass viele zu spezifisch sind und sich nur auf ein Element beziehen könnten. Dieses Problem wird gelöst, indem alle Zusammensetzungen gestrichen werden, die nur mit einem einzelnen Element assoziiert sind.
  • Soweit die verbleibenden Schlüsselwörter und Zusammensetzungen betroffen sind, ist es notwendig, sich daran zu erinnern, dass es verschiedene Abwandlungen desselben Wortes so wie Golf, golfen, Golfer gibt. Da ein direkter Vergleich der Zeichenfolge von Golf und golfen keine Übereinstimmung produziert, ist es deutlich vorzuziehen, das Schlüsselwort oder die Zusammensetzung zu modifizieren, bevor der Index gebildet wird.
  • Dementsprechend greift der Pozessor 4 auf ein Lexikon wie z.B. "WordNet" zu. Dieses wird benutzt, um jedes Wort, das in dem Freitexteintrag lokalisiert ist, in seine Grundform zu konvertieren, sodass golfen als Golf erfasst werden würde. Es ist auch möglich, Stammformen von Wörtern zu benutzen, wie zum Beispiel "Lawnmow". Dies würde es dann erlauben, Wörter wie "lawnmowers" oder "lawnmowing" zu erkennen.
  • Eine weitere Alternative, die betrachtet werden muss, wenn man sich mit Freitexteinträgen befasst, ist die Benutzung von Synonymen und Hyperonymen. Diese können benutzt werden, um Wörter zu finden, die verschieden sind, die aber ähnliche Bedeutungen haben. So kann zum Beispiel eine Suche nach Elementen, die sich auf "Teelöffel" beziehen, nicht sehr viele Datensätze lokalisieren. Wenn jedoch eine Suche bezüglich des Begriffs "Besteck" ausgeführt werden würde, dann würden mehr Datensätze lokalisiert werden. Demzufolge ist es möglich, dass der Index erzeugt wird, indem allgemeinere Synonyme oder Hyperonyme von Wörtern benutzt werden, um die Zahl von relevanten Datensätzen, die lokalisiert werden, zu erhöhen.
  • In einigen Fällen ist es vorzuziehen ein zyklisches Verfahren zur Bestimmung des Freitexteintrages zu benutzen. Bei diesem Vorgang werden aus dem Freitextfeld schrittweise Textmengen gestrichen, bis die Zahl und die Form der Zusammensetzungen und Schlüsselwörter, die bestimmt werden, akzeptabel sind.
  • Titeleintrag 62
  • Wie oben erwähnt wird der Titeleintrag 62 identifiziert aufgrund dessen, dass er im Titelfeld 61 lokalisiert ist. Sobald er jedoch identifiziert ist, ist es notwendig, ein oder mehrere Schlüsselworte aus dem Titel auszuwählen. Dies wird ausgeführt in einer Art und Weise, die ähnlich ist zu der, die für den Freitexteintrag auf der Basis von "Brill-Tagger", WordNet und einer Stammroutine, benutzt wird. Es ist auch notwendig zu gewährleisten, dass jede Abkürzung in dem Titel identifiziert wird und in ein Schlüsselwort modifiziert wird. Dies kann erreicht werden, indem die Abkürzungen im Vorhinein identifiziert werden und indem gewährleistet wird, dass das Lexikon die Basisform des jeweiligen Wortes aus der Abkürzung identifizieren kann.
  • Sobald die Einträge bestimmt worden sind, wird die Information in die jeweiligen Indices eingetragen. Diese Indices werden in Abhängigkeit von der speziellen Datenbank, die benutzt wird, und von der Art und Weise, in welcher auf die Datenbank zugegriffen werden muss, bestimmt.
  • So könnten zum Beispiel, wenn die Datenbankzugriffstechnik die Benutzung eines einzigen Schlüsselwortes mit einbezieht, die Suche auf die gewünschten Indices begrenzt werden, wie z.B. die Liste von Nameneintragsindices, wenn der Name einer Firma bekannt ist.
  • Das vorliegende Beispiel benutzt eine Erweiterung davon, in welcher wenigstens einige der Indices in vorteilhafter Art und Weise bestimmt werden, um den jeweiligen Schlitzen in einer Schlitz- und Füllanforderung zu entsprechen, deren Bildung unten genauer erklärt wird. Dies bedeutet, dass der Suchbegriff, der in einen gegebenen Schlitz eingegeben wird, nur mit dem entsprechenden Satz von Indices verglichen zu werden braucht, welche mit jenem Schlitz assoziiert sind, wobei der Umfang des erforderlichen Suchens redu ziert wird, während es ermöglicht wird, genaue Suchvorgänge durchzuführen.
  • In dem vorliegenden Beispiel beinhaltet die Schlitz- und Füllanforderung Transaktions-, Waren-, Orts-, Bezahlungs-, Öffnungszeiten- und Straßenschlitze.
  • Ort- und Straßen-Indices sind von dem Adresseintrag abgeleitet. Dementsprechend werden, sobald der Adresseintrag bestimmt und analysiert worden ist, alle Details, die einen allgemeinen Ort betreffen, wie der Ortsname "Colchester", in dem Ortindex gespeichert, während detaillierte Straßennamen in dem Straßenindex gespeichert werden.
  • Die Bezahlungs-, Öffnungszeiten- und Warenindices werden von dem Freitextfeld abgeleitet. So würde in dem oben genannten Beispiel das Wort "Golf" bestimmt und in dem Warenschlitz platziert werden. Ähnlich würden Wörter wie "Visa", "Cash" oder "Credit Card", die sich auf Bezahlungsmethoden beziehen, in dem Bezahlungsschlitz gespeichert werden, während Öffnungszeiten in dem Öffnungszeitenschlitz gespeichert werden.
  • Alle Einträge, die keinen assoziierten spezifischen Index haben, werden dann in einen Index eingegeben, der mit dem Feld, von welchem sie abgeleitet werden, assoziiert ist. In dem oben genannten Beispiel sind deshalb auch ein Namensindex, ein Telefonnummernindex und ein kompletter Adressindex vorgesehen. Ähnlich werden alle anderen Einträge in dem Freitextfeld in einem Freitextindex platziert.
  • Während des Abfrageprozesses werden alle Suchbegriffe, die in dem Transaktionsfeld lokalisiert sind, welches keinen assoziierten Index hat, dann in all den Freitextindices gesucht. Aufgrund der Art und Weise, in welcher der Warensuchbegriff abgeleitet wird, kann es auch vorteilhaft sein, den Warenschlitzsuchbegriff mit den Freitextindices zu vergleichen. Da dies jedoch weniger relevante Datensätze lokalisieren könnte, kann das System konfiguriert werden, diese Suche nur dann auszuführen, wenn anfangs unzureichende Datensätze gefunden werden.
  • Soweit ein Namensindex, ein Telefonnummernindex und ein kompletter Adressindex betroffen sind, werden diese während der Abfrage von Elementen benutzt, um zu ermöglichen, dass die Information, die in dem Element enthalten ist, aus der Datenbank abgefragt wird. Optional können diese auch gesucht werden.
  • Sobald die Indices definiert worden sind, ist es vorzuziehen weiter einen Satz von Rangfolgewerten zu definieren, welche angeben wie relevant ein Element für einen speziellen Index ist. Dies wird erreicht, indem die Anzahl von Elementen bestimmt wird, welche lokalisiert werden würden, wenn ein spezifischer Index benutzt würde. Im Allgemeinen hat im Falle einer Vielzahl von Indices, wenn eine Vielzahl an Elementen erhalten würde, jedes Element einen relativ niedrigen Rangfolgewert, der eine relativ niedrige Relevanz anzeigt. Im Gegensatz dazu haben diese, wenn nur eine kleine Anzahl von Elementen für einen bestimmten Index erhalten wird, einen hohen Rangfolgewert, der anzeigt, dass sie sehr relevante Elemente sind.
  • Die Situation wird weiter verkompliziert durch Titeleinträge, da jeder Titeleintrag sich auf eine Anzahl von zugehörigen Elementen bezieht, wobei alle davon relevant sind. Dementsprechend wird Indices für Titeleinträge ein höherer Rangfolgewert gegeben, als jenen für die Texteinträge.
  • Im Falle der "See"-Referenz-Einträge wird der Titeleintrag auf den sie sich beziehen, betrachtet, als ob sich die ursprüngliche Anforderung direkt auf jenen Titeleintrag bezöge. "See-Also"-Referenz-Einträge werden jedoch ignoriert, da die Titeleinträge, auf die sie sich beziehen, gewöhnlich viel allgemeiner sind, als die Titeleinträge, unter welchen die "See-Also"-Referenz auftritt. Zudem gibt es oft vielfache Titel-"See-Also"-Referenzen für jeden gegebenen Titeleintrag.
  • Es ist jedoch festzustellen, dass die Berechnung von Rangfolgewerten sehr situationsabhängig ist, und das verwendete Verfahren variiert deshalb für verschiedene semistrukturierte Datenbanken.
  • Eine Vorrichtung für den Zugriff auf die semistrukturierte Datenbank unter Benutzung der erzeugten Indices wird nun mit Bezug auf 4 beschrieben, welche schematisch eine Systemarchitektur für den Zugriff auf Elemente einer semistrukturierten Datenbank zeigt. Das System, das allgemein aus einer Computeranordnung gebildet wird, beinhaltet einen Prozessor 100, der an eine Eingabe/Ausgabe-Vorrichtung 101 gekoppelt ist. Die Eingabe/Ausgabe-Vorrichtung 101 kann jede Art von Eingabe/Ausgabe-Vorrichtung sein, wie z.B. eine graphische Benutzerschnittstelle (GUI) und eine Tastatur, oder ein Mikrofon und ein Lautsprecher gekoppelt an einen Spracherkennungs-/Synthesizer-Schaltkreis oder einer Kombination von beiden.
  • Der Prozessor 100 ist auch an ein Datenbankzugriffssystem 102 gekoppelt. Das Datenbankzugriffssystem 102 beinhaltet einen Dialogmanager 103, der an den Prozessor 100 gekoppelt ist. Der Dialogmanager 103 ist auch gekoppelt an einen Parser 104, einen Abfrageerzeuger 105 und einen Schlitzfüller 108. Der Schlitzfüller 108 und der Abfrageerzeuger 105 sind beide an ein Weltmodell 106 gekoppelt. Der Abfrageerzeuger 105 ist auch an ein Backend 107 gekoppelt, das im vorliegenden Beispiel aus der Vorrichtung gemäß 1 gebildet wird und deshalb den semistrukturierten Datenbankspeicher 1 und den Indexspeicher 2 beinhaltet.
  • Im Betrieb wird eine Informationsanforderung durch einen Benutzer eingegeben, der die Eingabe/Ausgabe-Vorrichtung 101 benutzt. In dem vorliegenden Beispiel des Yellow Pages®-Verzeichnisses hat die Anforderung die Form eines natürlichen Satzes wie:
    "I want a plumber for my boiler, who takes visa, in Ipswich".
  • Die Anforderung wird über den Prozessor 100 an den Dialogmanager 103 übertragen, welcher das gegenwärtige Stadium der Anfrageverarbeitung beobachtet sowie die Arbeit des Parsers 104 und des Abfrageerzeugers 105 steuert.
  • Von dem Dialogmanager wird die Anforderung an den Parser 104 weitergeleitet, der die Anforderung parst, um die Anforderung in ihre Bestandteile zu zerlegen. Die Bestandteile werden dann grammatikalisch beschrieben, bevor sie an den Schlitzfüller 108 weitergeleitet werden. Der Schlitzfüller 108 weist die Bestandteile verschiedenen Schlitzen in einer so genannten Schlitz- und Füllanforderung zu, was unten genauer beschrieben wird. Diese Schlitz- und Füllanforderung wird dann an den Abfrageerzeuger 105 über den Dialogmanager 103 übertragen.
  • Der Abfrageerzeuger wandelt die Anforderung in eine Datenbankabfrage um, indem er, falls nötig, das Weltmodell 106 benutzt. Der Abfrageerzeuger greift dann auf den Indexspeicher 2 in dem Backend 107 zu, um den Ort der relevanten Elemente innerhalb des Datenbankspeichers 1 zu erhalten. Sobald die relevanten Elemente lokalisiert sind, werden diese an den Dialogmanager 103 zurückübertragen, welcher feststellt, ob die abgerufenen Elemente akzeptabel sind. Akzeptable Elemente werden an den Prozessor 100 weitergeleitet, welcher eine Ausgabe erzeugt stellvertretend für die entsprechenden Elemente, die dem Benutzer unter Verwendung der Eingabe/Ausgabe-Vorrichtung 101 gezeigt wird.
  • Falls zu viele oder zu wenige Datensätze lokalisiert werden oder die lokalisierten Datensätze ungeeignet sind, modifiziert der Dialogmanager 103 die Schlitz- und Füllanforderung, die von dem Schlitzfüller 108 erhalten wird. Diese Modifikation kann entweder auf einer grammatikalischen Modifikation basieren oder alternativ auf Modifikationen, die durch den Dialog zwischen dem Benutzer und dem Dialogmanager 103 angegeben sind.
  • Sobald die Schlitz- und Füllanforderung modifiziert ist, wird die Datenbankabfrage so wie oben dargelegt durch den Abfrageerzeuger 105 wiederholt.
  • Die Arbeit des Datenbankzugriffssystems 102 wird nun genauer beschrieben.
  • Wie oben erwähnt, wird eine von einem Benutzer eingegebene Anforderung an den Dialogmanager 103 weitergeleitet, der die Anforderung analysiert, um zu bestimmen, ob es eine Anforderung für Daten oder eine alternative Betriebsanforderung ist, wie z.B. das Verlassen oder Neustarten des Systems, eine Hilfeanforderung vom Betriebssystem oder die Korrektur einer zuvor eingegebenen Anforderung.
  • Im Fall der Korrektur einer zuvor eingegebenen Anforderung modifiziert der Dialogmanager 103 die Anforderung, was unten genauer beschrieben wird. Für andere Betriebsanforderungen weist der Dialogmanager den Prozessor 100 an, eine geeignete Operation, wie das Bereitstellen von Hilfeinformation, Verlassen oder Neustart des Systems, auszuführen.
  • In dem Fall, in dem die Anforderung eine Anforderung von Informationen aus der Datenbank ist, überträgt der Dialogmanager 103 die Anforderung an den Parser 104.
  • Parser 104
  • Wie oben erwähnt, werden in diesem Beispiel Anforderungen in das System in Form eines Standardsatzes eingegeben. Daher gibt es nicht notwendigerweise eine Standardstruktur für die Anfrage und es ist deshalb notwendig, den beabsichtigten Umfang der Anforderung zu bestimmen, indem diese in eine Form gebracht wird, welche der Abfrageerzeuger 105 handhaben kann.
  • Die erste Stufe ist es, den Satz zu parsen, um den Satz in seine einzelnen Bestandteile zu zerlegen. Während eine Anzahl von verschiedenen Parsingverfahren benutzt werden kann, ist es bei der genau bestimmten Semantik und Syntax des Satzes im vorliegenden Beispiel für den Syntaxbaum nicht notwendig, linguistisch korrekt zu sein. Statt dessen muss der Parser nur eine Struktur bestimmen, die es erlaubt, die Suche auszuführen. Dementsprechend ist der Parser so konfiguriert, dass er als ein schwacher Parser arbeitet, was bedeutet, dass es für den Parser nicht notwendig ist, die exakte Wortklasse von allen Wörtern in der Anforderung zu identifizieren, solange irgendeine Form des Syntaxbaumes gefunden werden kann, um den Satz darzustellen.
  • Wenn das Ergebnis des Parsingprozesses ungeeignet ist, hat dies den Effekt, dass keine relevanten Datensätze gefunden werden. In dieser Situation stellt der Dialogmanager 103 fest, dass die Anforderung ungeeignet war, und wird deshalb eine Rückmeldung beim Benutzer vorsehen, um die Anforderung klären zu lassen, wie es unten genauer erklärt wird.
  • Angesichts dessen benutzt der Parser eine einfache DCG-ähnliche Grammatik und wird als einfacher Bottom-up-Chart-Parser in der Art wie unten beschrieben implementiert.
  • Zuerst durchsucht der Parser 104 den Satz um alle harten Wörter zu bestimmen. Harte Wörter sind Wörter einer in sich ge schlossenen Gattung, die nur in eine einzige grammatikalische Gattung fallen können und deshalb Wörter beinhalten, die nur als ein Verb oder nur als ein Nomen oder nur als ein Adjektiv oder nur als eine Präposition dienen können. Diese harten Wörter sind in einer Liste vorgesehen, die in Form eines Lexikons in einem Speicher (nicht gezeigt) gespeichert ist. Alle anderen Wörter, die nicht als harte Wörter aufgelistet sind, werden automatisch als weiche Wörter identifiziert, was bedeutet, dass sie in irgendeine einer Anzahl von grammatikalischen Gattungen fallen können, in Abhängigkeit von dem Kontext, in welchem die Wörter benutzt werden. Ein Beispiel dafür ist das Wort "schwimmen", das als Nomen oder als Verb benutzt werden kann. In diesem Beispiel wird, um die Informationsmenge, die aus dem Satz erhalten wird, zu maximieren, jedes Wort, das als ein weiches Wort klassifiziert ist, automatisch wenigstens als ein Nomen identifiziert.
  • Der Parser 104 durchsucht dann den Satz, um alle Präpositionen und alle Verben zu bestimmen.
  • Dies hat den Vorteil, dass es dem Lexikon, das im Speicher (nicht gezeigt) gespeichert ist, erlaubt, auf einer Liste von Präpositionen, harten Wörtern und allen von der zugehörigen Datenbank benutzten Verben zu basieren. Dies kann den Inhalt des Lexikons auf nur 400 Elemente beschränken, wodurch es dem Parser 104 ermöglicht wird, die Anforderung sehr schnell zu durchsuchen.
  • Sobald der Satz zerlegt worden ist und die relevanten Komponenten identifiziert sind, wird es an den Schlitzfüller 108 in Form eines Syntaxbaumes weitergeleitet. Dies zeigt für jede Satzkomponente an, wie sie durch die Grammatik analysiert wird.
  • Ein Beispiel eines solchen Syntaxbaumes ist unten gegeben, in welchem der Satz "I want a plumber for my boiler, who takes visa, in Ipswich" zerlegt wird.
    [s, [np, [pron, i], [vp, [v, want], [np, [det, a], [np, [n, plumber], [pp, [prep, for], [np, [det, my],
    [np, [n, boiler], [relc, [rel, who], [np, [n, takes], [np, [n, visa],
    [pp, [prep, in], [np, [n, Ipswich]]]]]]]]]]]]]
    wo:
  • (NP) =
    ein Nomenausdruck
    (VP) =
    ein Verbausdruck
    (PP) =
    ein Präpositionalausdruck
    (RELC) =
    ein Relativsatz
    (PRON) =
    ein Pronomen
    (V) =
    ein Verb
    (N) =
    ein Nomen
    (PREP) =
    eine Präposition
    (REL) =
    ein Relativpronomen
    (DET) =
    ein Bestimmungswort
  • Schlitzfüller 108
  • Der Schlitzfüller analysiert dann den geparsten Satz, um die Satzstruktur festzustellen. In diesem Fall wird angenommen, dass die Satzstruktur im Wesentlichen Subjekt, Verb, Objekt und (optional) Modifikatoren sind.
  • Dementsprechend ist für den Schlitzfüller 108 der erste Schritt, das erste Verb oder die erste Verbgruppe in dem Satz zu identifizieren. Verbgruppen werden identifiziert, indem der Satz analysiert wird, um zu bestimmen, ob es mehrere Verben gibt. Wenn nicht, dann gibt es keine Verbgruppe. Wenn es jedoch mehrere Verben gibt, werden die Verben mit einer Liste von bekannten Verbgruppen, die in dem Speicher (nicht gezeigt) gespeichert sind, verglichen.
  • Sobald das Verb oder die Verbgruppe identifiziert ist, wird alles in dem Satz, was vor dem Verb steht, als Subjekt der Anforderung bestimmt und alles nachher wird als Objekt und zugeordnete Modifikatoren bestimmt. Alles in dem Objekt, das als ein Präpositionalausdruck identifiziert wird, wird als ein Modifikator für das Objekt betrachtet.
  • Wenn man diese Methode benutzt, wird die Struktur des oben erwähnten Satzes "I want a plumber for my boiler, who takes visa, in Ipswhich" wie folgt identifiziert:
    Subjekt I
    Verb want
    Objekt a plumber
    Modifikatoren for my boiler, who takes visa, in Ipswich.
  • Wenn eine missgebildete Eingabe wie ein einzelner Nomenausdruck (zum Beispiel "parachuting centre") eingegeben wird, würde vermutet, dass dies ein Objekt mit allen zugeordneten Modifikatoren ist. Solche Eingaben werden durch das Fehlen jeglichen Verbs innerhalb des Satzes identifiziert.
  • Die oben erwähnte Analyse ist weitgehend bereichsunabhängig. Dies kommt daher, dass die Analyse in der gleichen Art und Weise ausgeführt werden kann, unabhängig von der Datenbank, mit der das System benutzt wird, obwohl einige kleinere Änderungen des Lexikons erforderlich sein könnten, wenn das System in Verbindung mit einer alternativen Datenbank, die im Wesentlichen verschiedene Verben benutzt, verwendet wird.
  • Die gegliederte Anforderung durchläuft dann eine bereichsabhängige Analyse. Diese Analyse wird dazu benutzt, Teile der Satzstruktur in verschiedene Schlitze zum Durchsuchen der Datenbank abzubilden. Dementsprechend hängt diese Analyse von der durchsuchten Datenbank und den zugehörigen erzeugten Indices ab. Somit wird in diesem Beispiel die Abbildung in verschiedene Schlitze so ausgeführt, dass die Schlitze für das Durchsuchen des Yellow Pages®-Verzeichnisses geeignet sind.
  • In diesem besonderen Beispiel ist es gewöhnlich nicht notwendig, Details des Satzsubjektes zu kennen, weshalb diese Information verworfen wird. Weiter gibt es eine Anzahl von Wörtern und/oder Sätzen, die typischerweise keine Information in den Yellow Pages® mitteilen, so wie "der", "und", "Adresse", oder "Telefonnummer", und die Suche mit diesen Wörtern und/oder Sätzen würde nicht helfen, relevante Datensätze zu lokalisieren. Diese Wörter und/oder Sätze werden als Stoppworte bezeichnet und ein Datensatz davon wird auch in dem Lexikon im Speicher (nicht gezeigt) gespeichert. Der zerlegte Satz wird deshalb durchsucht und alle Stoppworte werden entfernt.
  • Die nächste Stufe ist es, einzelne Wörter oder Sätze in die Schlitze der Schlitz- und Füllanforderung zu setzen. In dem vorliegenden Beispiel des Yellow Pages®-Verzeichnisses sind die bevorzugt benutzten Schlitze Transaktion, Waren, Bezahlung, Öffnungszeit, Straße und Ort.
  • Die Verbinformation bildet direkt in den Transaktionsschlitz ab und die Objektinformation bildet in den Warenschlitz ab. Weiter kann der Ortschlitz leicht gefüllt werden durch eine einfache Suche nach bekannten Orten, die in der Datenbank beinhaltet sind. So ergibt dies im vorliegenden Beispiel anfangs die folgenden Schlitz- und Füllanforderungen:
    Transaktion <leer>
    Waren Plumber
    Ort Ipswich
  • Der Transaktionsschlitz bleibt leer, da das Verb "want" keine nützliche Information mitteilt und deshalb als ein Stoppwort entfernt würde. Wenn jedoch der Satz das Verb "hire" zum Beispiel in "I want to hire a car" beinhaltet hätte, dann würde der Transaktionsschlitz das Wort "hire" beinhalten. Die Suche würde dann beschränkt werden auf Mietwagenfirmen.
  • Soweit die Bezahlungs-, Öffnungszeiten- und Straßenschlitze betroffen sind, wird diese Information fast ausschließlich innerhalb der Objektmodifikatoren gefunden. Demgemäß beinhaltet jeder Schlitz eine zugeordnete Reihe von Prädikaten, deren Funktion es ist, das Modifikatorfragment der Anforderung zu durchsuchen, wobei nach Begriffen, welche mit spezifischen Schlitzen identifiziert sind, gesucht wird.
  • Die Prädikate sind eine Reihe von Regeln, welche definieren, ob ein Begriff in den jeweiligen Schlitz aufgenommen werden sollte. Demgemäß sucht in diesem Beispiel das Prädikat, das mit dem Bezahlungsschlitz verknüpft ist, nach Wörtern wie Visa, Delta, "switch" Credit Card "access" "cash" etc. In ähnlicher Weise sucht das Straßenschlitzprädikat nach Straßennamen, welche auf der Basis ihrer Struktur erkannt werden. So nehmen Straßennamen oft die Form "X Crescent" oder "X Road" an, wobei X ein Name ist. Zusätzlich könnte die Identifikation von Straßennamen unterstützt werden, indem Inhalte in die Datenbank aufgenommen werden, zum Beispiel durch Aufnehmen des bekannten Straßennamens "X", sodass die Straßen direkt auf der Basis des Namens identifiziert werden können.
  • Die Prädikate sind in diesem Beispiel in der Prolog-Programmiersprache implementiert, obwohl jedes geeignete Verfahren der Implementierung benutzt werden könnte.
  • Sobald dies abgeschlossen ist, wird jede zusätzliche modifizierte Information in dem Warenschlitz platziert. In dem vorliegenden Beispiel führt dies zu der folgenden Schlitz- und Füllanforderung:
    Transaktion <leer>
    Waren Plumber & Boiler
    Ort Ipswich
    Bezahlung Visa
    Öffnungszeit <leer>
    Straße <leer>
  • Man erkennt, dass die Prädikate abhängig von dem Schlitz, der gefüllt werden muss, und den Inhalten der zugehörigen Datenbank angepasst werden können.
  • Die Schlitz- und Füllanforderung wird dann über den Dialogmanager 103 zu dem Abfrageerzeuger 105 übertragen.
  • Damit die Suche erfolgreich ist, beinhaltet die Schlitz- und Füllanforderung gewöhnlicherweise wenigstens einen Schlitz, der gefüllt werden muss. In dem vorliegenden Beispiel ist es unmöglich, relevante Datensätze zu lokalisieren, falls kein Suchbegriff in dem Warenschlitz vorhanden ist. Demgemäß, wenn der Schlitzfüller 108 feststellt, dass der Warenschlitz leer ist, dann gibt er die Anforderung an den Dialogmanager 103 zurück. Der Dialogmanager fordert dann eine Korrektur des Suchbegriffes vom Benutzer, sodass ein Warenschlitzeintrag bestimmt werden kann.
  • Dies kann erreicht werden, indem man den Benutzer darauf hinweist, dass mehr Informationen erforderlich sind bezüglich welche Waren oder Dienste benötigt werden. Die Antwort, falls sie in einer Einwortform vorliegt, kann dann einfach zu dem Warenschlitz hinzugefügt werden. Alternativ könnte die Anforderung in der üblicher Art und Weise neu verarbeitet werden.
  • Abfrageerzeuger 105
  • Der Abfrageerzeuger 105 benutzt die Schlitz- und Füllanforderung, um auf das Backend 107 zuzugreifen und um eine Anzahl von Elementen, die relevant für die Schlitz- und Füllanforderung zu sein scheinen, zu bestimmen. Somit greift der Abfrageerzeuger 105 auf Indices zu, die die Schlüsselwörter enthalten, die in die entsprechenden Felder der Schlitz- und Füllanforderung eingetragen wurden.
  • In dem vorliegenden oben beschriebenen Beispiel würde der Abfrageerzeuger 105 auf die geeigneten Indices in dem Indexspeicher 2 zugreifen, die die Schlüsselwörter "plumber", "boiler", "Ipswich" und "Visa" beinhalten.
  • Eine Liste von beliebigen relevanten Elementen und deren jeweilige Orte innerhalb des Datenbankspeichers 1 wird dann an den Abfrageerzeuger 105 zurückgegeben und an den Dialogmanager 103 weitergeleitet, der bestimmt, ob die Zahl von abgefragten Elementen akzeptabel ist oder ob es unzureichende oder zu viele Übereinstimmungen gibt.
  • Wenn es unzureichende Übereinstimmungen gibt, erweitert der Abfrageerzeuger 105 den Bereich der Anforderung. Dies wird erreicht, indem von dem Weltmodell 106 erhaltenes Wissen verwendet wird, das generell ein Lexikon (zum Beispiel "WordNet") mit verschiedenen Synonymen, Hyperonymen, Stammversionen von Wörtern und jedem anderen vom Benutzer erworbenen Wissen beinhaltet.
  • Wenn daher die Suche zu wenig Übereinstimmungen ergibt, greift der Abfrageerzeuger 105 auf das Weltmodell 106 zu und bestimmt ein neues Schlüsselwort, das auf einem Synonym, Hyperonym oder einer Stammversion des ursprünglichen Schlüsselworts basiert. Die Suche kann dann wiederholt werden, indem das neue allgemeinere Schlüsselwort benutzt wird, um mehr Ergebnisse zu erhalten.
  • Als ein Beispiel dürfte eine Suche nach dem Wort "Teelöffel" nicht sehr viele Elemente zum Ergebnis haben. Demgemäß wird der Abfrageerzeuger 105 auf das Weltmodell 106 zugreifen und feststellen, dass ein äquivalentes Wort, das benutzt werden könnte, "Besteck" ist. Dann wird eine Suche nach dem Wort "Besteck" mit dem Backend 107 durchgeführt, was mehr Elemente zum Ergebnis haben wird.
  • Alternativ könnte ein Schlitzeintrag "golfing" beschränkt werden auf "to golf". Jedoch kann eine zu starke Beschränkung auf die Stammform zu der fehlerhaften Abfrage von irrelevanten Datensätzen führen, zum Beispiel wenn "hospitality" beschränkt wird auf "hospital". Demgemäß ist es vorzuziehen, eine zu geringe Beschränkung zu benutzen, um zu verhindern, dass irrelevante Datensätze lokalisiert werden, obwohl, wenn keine Datensätze lokalisiert werden sollten, die Menge an Beschränkung erhöht werden könnte.
  • Jedoch gibt es in dem vorliegenden Beispiel keine leicht ersichtlichen Alternativen, die benutzt werden können. Demgemäß modifiziert der Dialogmanager 103 die Schlitzeinträge, um die Suche zu erweitern. Dies kann erreicht werden, indem man Informationen entweder über die Syntax oder die Semantik des Schlitzes benutzt.
  • So kann es zum Beispiel der Abfrageerzeuger vorziehen, alle Einträge in dem Warenschlitz zu ignorieren, welche nur als Teil eines Präpositionalausdrucks lokalisiert sind. In diesem Fall würde dies involvieren, den Begriff "boiler" aus dem Warenschlitz zu entfernen.
  • Alternativer könnte es der Dialogmanager 103 vorziehen, die Suche zu lockern, indem einige bestimmte Schlitze ignoriert werden. Wenn daher zum Beispiel ein Eintrag sowohl im Straßenschlitz als auch im Ortschlitz vorläge, würde der Dialogmanager den Inhalt des Straßenschlitzes ignorieren, um die Suche auf einen breiteren Bereich zu erweitern.
  • Für den Fall, dass dem Dialogmanager eine Anzahl von verschiedenen Optionen zur Verfügung steht, wird der Dialogmanager Angaben der verschiedenen zur Verfügung stehenden Optionen erzeugen. Diese werden dann dem Benutzer mittels der Eingabe/Ausgabe-Vorrichtung 101 als eine Anzahl von Fragen präsentiert. Dies erlaubt es dem Benutzer zu steuern, wie die Suche angepasst wird.
  • Falls zum Beispiel die Abfrage eine Anforderung für einen Küchenschrankspezialisten in Ipswich beinhaltet, könnte der Dialogmanager Fragen stellen, analog zu:
    • 1. Wollen Sie Übereinstimmungen in einem größeren Bereich sehen?
    • 2. Soll ich nach Küchenspezialisten suchen?
    • 3. Soll ich nach Schrankspezialisten suchen?
  • Sobald die Ergebnisse dieser Fragen eingegeben worden sind, modifiziert der Dialogmanager 103 den Schlitz in der Schlitz- und Füllanforderung entsprechend, und zwar durch Modifizierung oder Entfernen von Begriffen innerhalb des Schlitzes. Die modifizierten Schlitze werden dann an den Abfrageerzeuger 105 zurückgesandt, der die aktualisierte Suche ausführt.
  • Gleichermaßen wird der Dialogmanager 103, wenn die Anforderung zu viele Datensätze lokalisiert, den Bereich der Suche verkleinern. Dies kann erreicht werden, indem man spezifischere Begriffe in den Schlitzen benutzt, die von dem Weltmodell 106 abgeleitet wurden oder indem weitere Begriffe abgefragt werden, die zu der Suche hinzugefügt werden.
  • Alternativ kann es innerhalb der Suche einige Inkonsistenzen oder unbekannte Konzepte geben, in welchem Falle die Anforderung an den Dialogmanager 103 für eine weitere Überprüfung zurückgeleitet wird.
  • Sobald eine geeignete Anzahl von Elementen lokalisiert worden ist, wird eine Liste von Elementen an den Prozessor 100 übertragen. Der Benutzer kann dann die Ranglistenwerte der jeweiligen Begriffe benutzen, um die Relevanz des lokalisierten Begriffes festzustellen. Der Benutzer wählt eine Anzahl von Elementen, die betrachtet werden sollen, und diese werden dann von der Datenbank heruntergeladen und mittels der Eingabe/Ausgabe-Vorrichtung 101 ausgegeben.

Claims (9)

  1. Vorrichtung für den Zugriff auf eine semi-strukturierte Datenbank in Übereinstimmung mit einer eingegebenen Informationsanforderung, wobei die semi-strukturierte Datenbank mehrere Elemente (40) aufweist, wobei jedes Element ein oder mehrere Felder (41, 42, 43) mit mehreren Zeichen darin aufweist und wenigstens eines der Felder ein Freitextfeld (43) ist, wobei die Vorrichtung aufweist Einrichtung für den Zugriff auf einen Datenspeicher (2) mit mehreren Indexeinträgen, wobei jeder eine Entsprechung zwischen einem Eintrag in ein Feld eines Elements und einem Element darstellt; Eingabeeinrichtung (101), um eine Informationsanforderung aufzunehmen, wobei die Anforderung einen Satz in natürlicher Sprache aufweist, gekennzeichnet durch einen Parser (104) zum Parsen der Anforderung, um Komponenten der Anforderung zu bestimmen; einen Schlitzfüller (108), der dazu ausgelegt ist, dass er eine oder mehrere Objektkomponenten, die ein Objekt der Anforderung von der geparsten Anforderung darstellen, identifiziert, wobei jeder Schlitz einer Gruppe von Indexeinträgen entspricht und wobei der Schlitzfüller dazu ausgelegt ist, dass er wenigstens eine Komponente einem jeweiligen Schlitz einer Schlitz- und -Füll-Anforderung mit mehreren Schlitzen zuweist; und einen Abfrageerzeuger (105) für den Zugriff auf den Datenspei cher (2), wobei der Abfrageerzeuger dazu ausgelegt ist, dass er die zugewiesene Komponente mit Indexeinträgen innerhalb einer Gruppe, die dem Schlitz der zugewiesenen Komponente entspricht, vergleicht, um einen entsprechenden Indexeintrag zu identifizieren, und dass er den identifizierten Indexeintrag dazu benutzt, um ein Element in der semi-strukturierten Datenbank zu identifizieren.
  2. Vorrichtung gemäß Anspruch 1, die einen Indexgenerator (6) mit einem Prozessor (4) beinhaltet, der dazu ausgelegt ist, dass er bezüglich eines jeden Elements in der semi-strukturierten Datenbank jedes Feld in Übereinstimmung mit einem bestimmten Kriterium analysiert, um so einen Eintrag innerhalb des Feldes zu identifizieren; und dass er wenigstens einen Indexeintrag erzeugt, der eine Entsprechung zwischen einem identifizierten Eintrag und dem Element, das dem identifizierten Eintrag entspricht, darstellt, und den erzeugten Indexeintrag im Datenspeicher (2) speichert; wobei für jedes von mehreren bestimmten Formaten der Prozessor dazu ausgelegt ist, dass er das Freitextfeld (43) sucht, um eine Folge von Zeichen mit einem Format, das dem bestimmten Format entspricht, zu identifizieren, wobei die identifizierte Folge von Zeichen erachtet wird, einen identifizierten Eintrag zu bilden.
  3. Vorrichtung gemäß Anspruch 2, wobei für das Freitextfeld (43) der Prozessor (4) dazu ausgelegt ist, dass er alle Daten, die nicht als ein Eintrag identifiziert sind, als einen Freitexteintrag definiert.
  4. Vorrichtung gemäß Anspruch 3, wobei der Freitexteintrag wenigstens ein Freitextwort aufweist, das durch eine Folge von alphanumerischen Zeichen definiert ist, wobei der Prozessor (4) dazu ausgelegt ist, dass er wenigstens ein ausgewähltes Freitextwort für ein Feld identifiziert, indem er den Freitexteintrag mit wenigstens einem Auswahlkriterium, das eine oder mehrere bestimmte Zeichen eines ausgewählten Freitextwortes definiert, vergleicht.
  5. Vorrichtung gemäß einem der vorhergehenden Ansprüche, wobei die Elemente innerhalb der semi-strukturierten Datenbank weiter in Gruppen (60) von Elementen angeordnet sind, wobei jede Gruppe in einem Titelfeld (61) angeordnet ist und durch wenigstens einen Titeleintrag (62) identifiziert ist, wobei der Prozessor (4) dazu ausgelegt ist, dass er einen Titeleintrag durch Vergleichen eines jeden Titelfeldes mit jedem von mehreren Auswahlkriterien, die eine oder mehrere bestimmte Eigenschaften eines jeweiligen Titeleintrages definieren, identifiziert, und Indexeinträge, die eine Übereinstimmung zwischen solchen Titeleinträgen und der Gruppe von Elementen in dem Titelfeld darstellen, erzeugt.
  6. Vorrichtung gemäß einem der vorhergehenden Ansprüche, wobei der Schlitzfüller (108) dazu ausgelegt ist, dass er Verbkomponenten, die ein Verb oder eine Verbgruppe in der geparsten Anforderung bilden, identifiziert und jede solche identifizierten Verbkomponenten einem Schlitz in Übereinstimmung mit einer bestimmten Abbildung zwischen Verbkomponenten und Schlitzen zuweist.
  7. Vorrichtung gemäß Anspruch 6, wobei der Schlitzfüller dazu ausgelegt ist, dass er jede Gegenstandskomponente in Übereinstimmung mit der Position des Verbs oder der Verbgruppe innerhalb der Anforderung identifiziert und dass er jede solcher identifizierten Subjektkomponenten einem Schlitz in Übereinstimmung mit einer bestimmten Abbildung zwischen Subjektkomponenten und Schlitzen zuweist.
  8. Vorrichtung gemäß den Ansprüchen 6 oder 7, wobei in Abwesenheit von identifizierenden Verbkomponenten der Schlitzfüller dazu ausgelegt ist, dass er alle Komponenten als Objektkomponenten erachtet.
  9. Vorrichtung gemäß einem der vorhergehenden Ansprüche, wobei der Datenspeicher (2) Teil der Vorrichtung ist.
DE69933123T 1998-07-30 1999-07-30 Zugriff auf eine semi-strukturierte datenbank Expired - Lifetime DE69933123T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GBGB9816648.1A GB9816648D0 (en) 1998-07-30 1998-07-30 An index to a semi-structured database
GB9816648 1998-07-30
EP98306106 1998-07-31
EP98306106 1998-07-31
PCT/GB1999/002517 WO2000007117A2 (en) 1998-07-30 1999-07-30 An index to a semi-structured database

Publications (2)

Publication Number Publication Date
DE69933123D1 DE69933123D1 (de) 2006-10-19
DE69933123T2 true DE69933123T2 (de) 2007-03-15

Family

ID=26151377

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69933123T Expired - Lifetime DE69933123T2 (de) 1998-07-30 1999-07-30 Zugriff auf eine semi-strukturierte datenbank

Country Status (5)

Country Link
US (1) US7409381B1 (de)
EP (1) EP1099171B1 (de)
AU (1) AU5181099A (de)
DE (1) DE69933123T2 (de)
WO (1) WO2000007117A2 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NO325313B1 (no) * 2003-12-10 2008-03-25 Kurt Arthur Seljeseth Intensjonell adressering og ressursforesporsel i datanettverk
US7769579B2 (en) 2005-05-31 2010-08-03 Google Inc. Learning facts from semi-structured text
US9208229B2 (en) 2005-03-31 2015-12-08 Google Inc. Anchor text summarization for corroboration
US8682913B1 (en) 2005-03-31 2014-03-25 Google Inc. Corroborating facts extracted from multiple sources
US7587387B2 (en) 2005-03-31 2009-09-08 Google Inc. User interface for facts query engine with snippets from information sources that include query terms and answer terms
US7831545B1 (en) 2005-05-31 2010-11-09 Google Inc. Identifying the unifying subject of a set of facts
US8996470B1 (en) 2005-05-31 2015-03-31 Google Inc. System for ensuring the internal consistency of a fact repository
US8260785B2 (en) 2006-02-17 2012-09-04 Google Inc. Automatic object reference identification and linking in a browseable fact repository
US8122026B1 (en) 2006-10-20 2012-02-21 Google Inc. Finding and disambiguating references to entities on web pages
US8347202B1 (en) 2007-03-14 2013-01-01 Google Inc. Determining geographic locations for place names in a fact repository
US7970766B1 (en) 2007-07-23 2011-06-28 Google Inc. Entity type assignment
US8812435B1 (en) 2007-11-16 2014-08-19 Google Inc. Learning objects and facts from documents
US8219407B1 (en) 2007-12-27 2012-07-10 Great Northern Research, LLC Method for processing the output of a speech recognizer
US20090259670A1 (en) * 2008-04-14 2009-10-15 Inmon William H Apparatus and Method for Conditioning Semi-Structured Text for use as a Structured Data Source
US8473279B2 (en) * 2008-05-30 2013-06-25 Eiman Al-Shammari Lemmatizing, stemming, and query expansion method and system
US10048934B2 (en) * 2015-02-16 2018-08-14 International Business Machines Corporation Learning intended user actions

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1265871A (en) * 1986-11-18 1990-02-13 Yawar Bakht Ali Domain-independent natural language database interface
US5418716A (en) 1990-07-26 1995-05-23 Nec Corporation System for recognizing sentence patterns and a system for recognizing sentence patterns and grammatical cases
US5442780A (en) * 1991-07-11 1995-08-15 Mitsubishi Denki Kabushiki Kaisha Natural language database retrieval system using virtual tables to convert parsed input phrases into retrieval keys
US5377103A (en) * 1992-05-15 1994-12-27 International Business Machines Corporation Constrained natural language interface for a computer that employs a browse function
US5727196A (en) * 1992-05-21 1998-03-10 Borland International, Inc. Optimized query interface for database management systems
US6055531A (en) * 1993-03-24 2000-04-25 Engate Incorporated Down-line transcription system having context sensitive searching capability
US5799268A (en) * 1994-09-28 1998-08-25 Apple Computer, Inc. Method for extracting knowledge from online documentation and creating a glossary, index, help database or the like
US6061675A (en) * 1995-05-31 2000-05-09 Oracle Corporation Methods and apparatus for classifying terminology utilizing a knowledge catalog
US5963940A (en) * 1995-08-16 1999-10-05 Syracuse University Natural language information retrieval system and method
US6026388A (en) * 1995-08-16 2000-02-15 Textwise, Llc User interface and other enhancements for natural language information retrieval system and method
US6076088A (en) * 1996-02-09 2000-06-13 Paik; Woojin Information extraction system and method using concept relation concept (CRC) triples
US5995963A (en) * 1996-06-27 1999-11-30 Fujitsu Limited Apparatus and method of multi-string matching based on sparse state transition list
US6052693A (en) * 1996-07-02 2000-04-18 Harlequin Group Plc System for assembling large databases through information extracted from text sources
US5920854A (en) * 1996-08-14 1999-07-06 Infoseek Corporation Real-time document collection search engine with phrase indexing
US6026410A (en) * 1997-02-10 2000-02-15 Actioneer, Inc. Information organization and collaboration tool for processing notes and action requests in computer systems
US5987447A (en) * 1997-05-20 1999-11-16 Inventec Corporation Method and apparatus for searching sentences by analyzing words
US6038560A (en) * 1997-05-21 2000-03-14 Oracle Corporation Concept knowledge base search and retrieval system
US5937408A (en) * 1997-05-29 1999-08-10 Oracle Corporation Method, article of manufacture, and apparatus for generating a multi-dimensional record structure foundation
US5991758A (en) * 1997-06-06 1999-11-23 Madison Information Technologies, Inc. System and method for indexing information about entities from different information sources
US6081774A (en) * 1997-08-22 2000-06-27 Novell, Inc. Natural language information retrieval system and method
US5983216A (en) * 1997-09-12 1999-11-09 Infoseek Corporation Performing automated document collection and selection by providing a meta-index with meta-index values indentifying corresponding document collections
US6026398A (en) * 1997-10-16 2000-02-15 Imarket, Incorporated System and methods for searching and matching databases
US6182066B1 (en) * 1997-11-26 2001-01-30 International Business Machines Corp. Category processing of query topics and electronic document content topics
US6298343B1 (en) * 1997-12-29 2001-10-02 Inventec Corporation Methods for intelligent universal database search engines
AU770515B2 (en) * 1998-04-01 2004-02-26 William Peterman System and method for searching electronic documents created with optical character recognition
US6216123B1 (en) * 1998-06-24 2001-04-10 Novell, Inc. Method and system for rapid retrieval in a full text indexing system
US6470333B1 (en) * 1998-07-24 2002-10-22 Jarg Corporation Knowledge extraction system and method
US6363377B1 (en) * 1998-07-30 2002-03-26 Sarnoff Corporation Search data processor
US6243713B1 (en) * 1998-08-24 2001-06-05 Excalibur Technologies Corp. Multimedia document retrieval by application of multimedia queries to a unified index of multimedia data for a plurality of multimedia data types
US6487546B1 (en) * 1998-08-27 2002-11-26 Oracle Corporation Apparatus and method for aggregate indexes
US6519597B1 (en) * 1998-10-08 2003-02-11 International Business Machines Corporation Method and apparatus for indexing structured documents with rich data types
US6584459B1 (en) * 1998-10-08 2003-06-24 International Business Machines Corporation Database extender for storing, querying, and retrieving structured documents
US6453312B1 (en) * 1998-10-14 2002-09-17 Unisys Corporation System and method for developing a selectably-expandable concept-based search
US6513031B1 (en) * 1998-12-23 2003-01-28 Microsoft Corporation System for improving search area selection
US6460029B1 (en) * 1998-12-23 2002-10-01 Microsoft Corporation System for improving search text
JP3022539B1 (ja) * 1999-01-07 2000-03-21 富士ゼロックス株式会社 文書検索装置
US6457014B1 (en) * 1999-03-26 2002-09-24 Computer Associates Think, Inc. System and method for extracting index key data fields
US6374241B1 (en) * 1999-03-31 2002-04-16 Verizon Laboratories Inc. Data merging techniques
US6421662B1 (en) * 1999-06-04 2002-07-16 Oracle Corporation Generating and implementing indexes based on criteria set forth in queries
US6353825B1 (en) * 1999-07-30 2002-03-05 Verizon Laboratories Inc. Method and device for classification using iterative information retrieval techniques

Also Published As

Publication number Publication date
US7409381B1 (en) 2008-08-05
WO2000007117A3 (en) 2000-05-18
DE69933123D1 (de) 2006-10-19
EP1099171B1 (de) 2006-09-06
EP1099171A2 (de) 2001-05-16
AU5181099A (en) 2000-02-21
WO2000007117A2 (en) 2000-02-10

Similar Documents

Publication Publication Date Title
DE60029845T2 (de) System zum identifizieren der verhältnisse zwischen bestandteilen in aufgaben vom typ informations-wiederauffindung
DE19952769B4 (de) Suchmaschine und Verfahren zum Abrufen von Informationen mit Abfragen in natürlicher Sprache
DE60304331T2 (de) Abrufen übereinstimmender dokumente durch abfragen in einer nationalen sprache
DE69934371T2 (de) Apparat und Verfahren zum Verarbeiten einer natürlichen Sprache
DE69820343T2 (de) Linguistisches Suchsystem
DE69834386T2 (de) Textverarbeitungsverfahren und rückholsystem und verfahren
DE69933123T2 (de) Zugriff auf eine semi-strukturierte datenbank
DE69432575T2 (de) Dokumentenerkennungssystem mit verbesserter Wirksamkeit der Dokumentenerkennung
US6957213B1 (en) Method of utilizing implicit references to answer a query
KR101223173B1 (ko) 정보 검색 시스템에서의 문구 기반 인덱싱
US6366908B1 (en) Keyfact-based text retrieval system, keyfact-based text index method, and retrieval method
DE69725258T2 (de) System und Verfahren zur Wiederauffindung von Dokumenten in mehreren Sprachen
US7426507B1 (en) Automatic taxonomy generation in search results using phrases
EP1311989B1 (de) Verfahren zur automatischen recherche
US20060018551A1 (en) Phrase identification in an information retrieval system
DE102019001267A1 (de) Dialogartiges System zur Beantwortung von Anfragen
DE69733294T2 (de) Einrichtung und Verfahren zum Zugriff auf eine Datenbank
KR20060048777A (ko) 문서 설명의 문구 기반 생성
DE69934195T2 (de) Identifikation einer Wortgruppe durch modifizierte Schlüsselwörter, die aus Transformationen von aufeinanderfolgenden Suffixen erzeugt sind
JP2006048684A (ja) 情報検索システムにおけるフレーズに基づく検索方法
DE60101668T2 (de) Verfahren und gerät zum erzeugen eines auf einer formatvorlage basierten index für ein strukturiertes dokument
Sridhar Subject searching in the OPAC of a special library: problems and issues
EP1412875B1 (de) Verfahren zur verarbeitung von text in einer rechnereinheit und rechnereinheit
EP1064606B1 (de) Datenverarbeitungssystem und verfahren zum automatischen erstellen von inhaltsangaben von textdokumenten
DE112021006602T5 (de) Verfeinern von abfrage-erzeugungsmustern

Legal Events

Date Code Title Description
8364 No opposition during term of opposition