DE60213409T2 - Erstellung von strukturierten daten aus unformatiertem text - Google Patents

Erstellung von strukturierten daten aus unformatiertem text Download PDF

Info

Publication number
DE60213409T2
DE60213409T2 DE60213409T DE60213409T DE60213409T2 DE 60213409 T2 DE60213409 T2 DE 60213409T2 DE 60213409 T DE60213409 T DE 60213409T DE 60213409 T DE60213409 T DE 60213409T DE 60213409 T2 DE60213409 T2 DE 60213409T2
Authority
DE
Germany
Prior art keywords
nml
instance
domain
die
grammar
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
DE60213409T
Other languages
English (en)
Other versions
DE60213409D1 (de
Inventor
Alexander El Cerrito SALDANHA
C. Patrick Orinda MCGEER
Luca Berkeley CARLONI
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.)
Softface Inc
Original Assignee
Softface Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Softface Inc filed Critical Softface Inc
Application granted granted Critical
Publication of DE60213409D1 publication Critical patent/DE60213409D1/de
Publication of DE60213409T2 publication Critical patent/DE60213409T2/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/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/131Fragmentation of text files, e.g. creating reusable text-blocks; Linking to fragments, e.g. using XInclude; Namespaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/211Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • 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
    • Y10S707/99936Pattern matching access
    • 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/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • 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/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Machine Translation (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Devices For Executing Special Programs (AREA)

Description

  • Ein Abschnitt der Offenbarung dieses Patentdokuments enthält Material, das dem Urheberrechtsschutz unterliegt. Der Urheberrechtsbesitzer hat keine Bedenken gegen die Faksimilereproduktion des Patentdokuments oder der Patentoffenbarung, wie sie in der Patent- und Handelsmarkenamt-Patentdatei oder in Datensätzen erscheint, durch irgendjemanden, bewahrt sich jedoch ansonsten wie auch immer alle Urheberrechte.
  • Bezug zu einem Computerprogrammlisting-Anhang
  • In Anhang C ist ein Computerprogrammlisting-Anhang enthalten.
  • HINTERGRUND
  • A. Technisches Gebiet
  • Die vorliegende Erfindung bezieht sich auf die Erzeugung strukturierter Daten aus Klartext, und insbesondere auf die Erzeugung strukturierter Daten aus Klartext auf der Grundlage von Attributen oder Parametern eines Inhalts oder von Produkten eines Internetangebots (Web-Site).
  • B. Hintergrund der Erfindung
  • In den letzten Jahren ist das Internet mit explosionsartiger Geschwindigkeit gewachsen. Immer mehr Informationen, Güter und Dienste werden über das Internet angeboten. Diese Zunahme an Daten, die über das Internet verfügbar sind, hat es zunehmend wichtig gemacht, dass Benutzer fähig sind, Unmengen an Material zu durchsuchen, um Informationen zu finden, die für ihre Interessen und Anforderungen relevant sind.
  • Das Suchproblem kann auf wenigstens zwei Ebenen beschrieben werden:
    Suchen über eine Vielzahl von Internetangeboten; und Suchen innerhalb eines gegebenen Internetangebots. Die erste Ebene der Suche wird häufig von "Suchmaschinen", wie z. B. GoogleTM oder AltavistaTM, von Verzeichnissen, wie z. B. YahooTM, bewerkstelligt. Die zweite Ebene, die für den Inhalt eines Internetangebots spezifisch ist, wird typischerweise von Kombinationen von Suchmaschinen und Datenbanken gehandhabt. Dieser Lösungsansatz war nicht vollständig erfolgreich darin, dem Benutzern einen effizienten Zugang zu dem Inhalt eines Internetangebots zur Verfügung zu stellen.
  • Das Problem beim Durchsuchen eines Internetangebots oder eines anderen Dienstes auf Informationstechnikbasis umfasst zwei Teilprobleme: erstens, das Indexieren oder Kategorisieren des zu durchsuchenden Körpers (Materialkörper) (d. h. eine Inhaltssynthese), und zweitens, das Interpretieren einer Suchanfrage und das Ausführen derselben in Bezug auf den Körper (d. h. Inhaltsbeschaffung). Im Allgemeinen besteht der zu durchsuchende Körper typischerweise aus unstrukturierten Informationen (Textbeschreibungen) über Gegenstände. Für Elektronikhandel-Internetangebote kann der Körper der Katalog von Gegenständen sein, die über das Internetangebot erhältlich sind. Zum Beispiel kann der Katalogeintrag für eine Beschreibung der Satz "aqua cashmere v-neck, available in small, medium, large, and extralarge" sein. Ein solcher Eintrag kann nicht anhand des Gegenstandtyps oder des Attributs beschafft werden, da die Tatsachen, dass der V-Ausschnitt (v-neck) ein Stil oder eine Strickjacke ist, Kaschmir eine Form von Wolle ist, und Wasser (aqua) eine Schattierung von Blau ist, aktuellen Katalogen oder Suchmaschinen unbekannt sind. Um die Information zu beschaffen, dass dieser Gegenstand verfügbar ist, anhand des Gegenstandtyps und/oder des Attributs, muss diese Beschreibung in eine beigemessene, kategorisierte Beschreibung konvertiert werden. In diesem Beispiel kann eine solche beigemessene, kategorisierte Beschreibung eine geeignete Kategorisierung des Gegenstands als eine Strickjacke enthalten, wobei die verschiedenen Attribute extrahiert werden und deren Werte gekennzeichnet werden. Ein Beispiel einer solchen Beschreibung ist in Tabelle 1 gezeigt.
  • Figure 00030001
  • Tabelle 1
  • Die derzeitige Technik erlaubt solche Darstellungen in Datenbanken. Für viele Standardgegenstände sind ferner numerische Codes zugewiesen, um die Aufgabe der Suche und der Repräsentation einfacher zu machen. Ein solcher Code ist der UN-Standardprodukte- und Dienste-Code (UN/SPSC), der jedem menschlichen Produkt oder Dienst einen achtstelligen Standardcode zuweist.
  • Während jedoch die Taxonomien und die Technik zur Darstellung der Taxonomien bestehen können, sind herkömmliche Systeme unfähig, die taxonomische und beigemessene Repräsentation für ein Objekt aus seiner Textbeschreibung zu erzeugen. Dies führt zu dem ersten der zwei Probleme, die oben erwähnt worden sind: dem Inhaltssyntheseproblem. Genauer ist dies das Problem, wie Klartext in strukturierte Objekte zu konvertieren ist, die für eine automatisierte Suche und andere rechnergestützte Dienste geeignet sind.
  • Das zweite Problem ist eines der erfolgreichen Beschaffung von Daten; sobald die Daten erzeugt und beigemessen worden sind, müssen sie zugänglich sein. Internetangebote für Elektronikhandel und parametrischem Inhalt stehen einer einzigartigen Herausforderung gegenüber, da sie Suchlösungen anbieten müssen, die nur diejenigen Produkte, Inhalte oder Dienste aufzeigen, die exakt mit den Spezifikationen eines Kunden übereinstimmen. Heute verwenden mehr als 50 % der Besucher die Suche als ihr bevorzugtes Verfahren zum Auffinden gewünschter Güter und Dienste. Elektronikhandel-Internetangebote bieten jedoch weiterhin ihren Kunden eine unpassend vielfältige, kategorie-basierte Navigation von Elektronikhandel-Internetangeboten ("virtuelle Gänge"), die zunehmend komplex und unangemessen geworden sind. Insbesondere sind viele Internetangebote, die einen großen Katalog von Produkten anbieten, häufig unfähig, Produkte mit genauen oder stark parametrisierten Spezifikationen zu finden, und erfordern stattdessen, dass der Benutzer dutzende von Produkten durchsieht, die möglicherweise diesen Spezifikationen entsprechen.
  • Etwas Statistik hilft, die Bedeutung einer guten Suchmöglichkeit hervorzuheben. Ein wichtiges Maß, das die Konversionsrate von Besuchern von Elektronikhandel-Internetangeboten in Käufer misst, ist das Buchen/Betrachten-Verhältnis. Der industrielle Mittelwert ist, dass nur 27 von 1.000 Besuchern einen Kauf tätigen. Der größte Beitrag zu diesem miserablen Verhältnis ist die fehlgeschlagene Suche. Forrester Research berichtet, dass 92 % alter Elektronikhandel-Suchvorgänge fehlschlägt. Bedeutende Internetangebote berichten, dass 80 % der Kunden das Internetangebot nach einer einzigen fehlgeschlagenen Suche verlassen. Die Verbesserung der Suchmöglichkeit auf einem Internetangebot erhöht daher direkt das Einkommen durch zunehmende Kundenakquisition, Kundenbindung und Verkäufe.
  • Obwohl alle Internetangebote eine bestimmte Form dieser Suchprobleme bis zu einem gewissen Maß feststellen, ist das Problem für Internetangebote mit einer tiefen und reichen Vielfalt von Inhalten oder Produkten besonders heftig. Beispiele sind elektronische Beschaffungsnetzwerke, finanzielle Internetangebote, Sportgüterläden, Lebensmittel-Internetangebote, Bekleidungs-Internetangebote, Elektronik-, Software- und Computer-Internetangebote, und andere. Eine weitere Klasse von Internetangeboten mit einem tiefgreifenden Suchproblem umfasst diejenigen, die stark konfigurierbare Produkte führen, wie z. B. Reise- und Automobil-Internetangebote. Ironischerweise gilt als Faustregel, dass mit zunehmendem Angebot eines Internetangebots das Risiko steigt, dass Kunden das Internetangebot auf Grund einer fehlgeschlagenen Suche verlassen.
  • Wenn ein Kunde körperlich ein großes Kaufhaus betritt, kann er einen Angestellten fragen, wo er das findet, was er sucht. Die "Suche" des Angestellten ist insofern flexibel, als dieser die Frage des Kunden verstehen kann, nahezu unabhängig davon, wie sie formuliert ist. Außerdem ist die "Suche" des Angestellten im Allgemeinen genau, da der Angestellte häufig ein Produkt spezifisch identifizieren kann, oder eine anfängliche Menge von Produkten, die der Kunde benötigt. Suchvorgänge auf Internetangeboten müssen gleichermaßen flexibel und genau sein. Um dies zu bewerkstelligen, muss eine Besucheranfrage nicht nur hinsichtlich der Produkte verstanden werden, sondern auch hinsichtlich der Parameter oder der Eigenschaften der Anfrage. Herkömmliche Informationsbeschaffungssysteme für Internetangebotsinhalt waren jedoch unfähig, dies zu leisten.
  • Einige der herkömmlich verwendeten Verfahren, die zum Auffinden von Gütern und Diensten auf Internetangeboten verwendet werden, und einige Probleme mit diesen herkömmlichen Verfahren werden im Folgenden umrissen:
  • 1. SCHLÜSSELWORT-BASIERTE SUCHE:
  • Bei diesem Verfahren tippen die Benutzer eine Menge von Wörtern oder Phrasen, die beschreiben, was sie wünschen, in einen Textkasten ein, typischerweise auf der Hauptseite des Internetangebots. Ein Programm auf dem Internetangebot nimmt anschließend jedes individuelle Wort, das eingegeben worden ist (manchmal werden "störende" Wörter, wie z. B. Präpositionen und Konjunktionen verworfen), und durchsucht alle Seiten und Produktbeschreibungen, um Objekte zu finden, die irgendeine Kombination der Wörter enthalten. Wenn ein englischer Satz oder eine Phrase gegeben ist, gibt dieses Verfahren entweder viel zu viele Ergebnisse oder zu wenige zurück. Wenn z. B. ein Kunde fragt "show me men's blue wool sweaters", könnte die Suche aus den folgenden Gründen erfolglos sein. Sie würde entweder nur diejenigen Seiten zurückgeben, die alle Wörter in dieser Anfrage enthalten, oder eine beliebige Seite zurückgeben, die irgendein einzelnes Wort in der Suche enthält. Im ersteren Fall würden keine Objekte gefunden, obwohl viele Produkte mit diesen Eigenschaften zum Verkauf vorhanden sein könnten. Zum Beispiel ist es möglich, dass aqua cashmere cardigan nicht passen würde, da dies keines der Schlüsselwörter enthält. Im letzteren Fall würde eine große Anzahl von Objekten gefunden, von denen die meisten für den Kunden nicht von Interesse sind. Zum Beispiel kann fälschlicherweise blue wool slack passen, da dies die Schlüsselwörter "blue" und "wool" enthält. Einige schlüsselwort-basierte Suchvorgänge gewichten Ergebnisse auf der Grundlage der Anzahl der übereinstimmenden Schlüsselwörter.
  • Schlüsselwort-basierte Lösungsansätze sind in medizinischen Abschriftsanwendungen, dem Datenbankzugriff, der Sprachpostkontrolle und der Web- Suche weit verbreitet. Nahezu alle kommerziellen Produkte mit Natursprachenschnittstelle verwenden diesen Lösungsansatz. Bei diesem Lösungsansatz werden bestimmte Wörter als bedeutungsvoll betrachtet, während die restlichen als bedeutungslose "Klebe"-Wörter betrachtet werden. Somit können z. B. in dem Satz "show all books written by Squigglesby" die Wörter "show", "book" und "written" als Schlüsselwörter betrachtet werden, während das Wort "by" als bedeutungsloses Klebewort betrachtet wird und das Wort "Squigglesby" als ein Argument betrachtet wird. Die Anfrage würde dann auf der Theorie formuliert, dass ein Buchautor namens Squigglesby angefragt wurde.
  • In solchen Systemen sind Schlüsselwörter im Allgemeinen einige von gewöhnlichen Nomen, Verben, Adverben und Adjektiven, und Argumente sind maßgebende Nomen und Zahlen. Es gibt jedoch Ausnahmen. Präpositionen werden gewöhnlich als Klebewörter betrachtet, werden jedoch unter bestimmten Umständen und in bestimmten Systemen als Schlüsselwörter betrachtet. Dies liegt im Allgemeinen an der menschlichen Neigung, Wörter in Sätzen wegzulassen, im Jargon als "Ellipsen" bekannt. Der Satz " show all books by Squigglesby" ist ein Beispiel hierfür, wo das Verb "written" weggelassen ist. Um diesem gerecht zu werden, machen bestimmte schlüsselwort-basierte Systeme "by" zu einem Schlüsselwort.
  • Es gibt einige spezialisierte Fälle oder Variationen von Schlüsselwortsuchvorgängen. Datenbank-Lösungsansätze sind ein Beispiel einer weit verbreiteten Variante von schlüsselwort-basierten Lösungsansätzen. In diesen Systemen assoziiert der Datenbankentwickler Schlüsselwörter oder Identifizierer mit spezifischen Datenbankfeldern (Spalten in spezifischen Tabellen). Verschiedene Wörter, insbesondere Interrogativpronomen und Adjektive, einige Verben und einige Präpositionen, haben feste Bedeutungen für das Datendankabfrageprogramm. Alle anderen Wörter können als Schlüsselwörter für ein vorlagenbasiertes Erkennungssystem verfügbar sein. In Reaktion auf einen Satz des Benutzers kann das Schnittstellensystem den Satz des Benutzers mit einer Vorlagenmenge abgleichen, die aus den Informationen des Datenbankentwicklers über die Datenbankstruktur und Identifizierer aufgebaut ist, sowie dessen eingebaute Interpretation seiner festgelegten Schlüsselwörter. Eine SQL-Anweisung (SQL, Structured Query Langua ge = strukturierte Abfragesprache) würde dann erzeugt, die die Bedeutung des Satzes des Benutzers wie vom Schnittstellensystem interpretiert codiert.
  • Ein weiteres Beispiel einer Spezialisierung des schlüsselwort-basierten Lösungsansatzes ist ein katalog-basierter Lösungsansatz. Kataloge sind Datenbanken von Produkten und Diensten. Eine "Kategorie" ist der Name einer Tabelle: die Attribute der Kategorie sind bestimmte Spalten der Tabelle. Bei diesem Lösungsansatz wird eine Frage zuerst mittels eines Kategoriewortes durchsucht, wobei anschließend der Rest der Frage als Schlüsselwörter zum Suchen nach passenden Objekten innerhalb der Kategorie verwendet wird. Zum Beispiel würde "blue woolen sweater" zuerst nach "blue", "woolen" und "sweater" als Schlüsselwörter suchen, die eine Kategorie anzeigen, und anschließend (unter der Annahme, dass "sweater" als Kategorieschlüsselwort erfolgreich war und die andere nicht) nach "blue" und "woolen" als Schlüsselwörter innerhalb der Kategorie sweater. Die Schwierigkeit bei diesem Lösungsansatz besteht darin, dass Kreuzstrategieanfragen fehlschlagen, da in solchen Fällen keine einzelne Kategorie verfügbar ist, die übereinstimmt. Ferner werden Parameter, die in den Produktbeschreibungen in der Kategorie nicht vorhanden sind, nicht verwendet.
  • Einige der zentralen Einschränkungen schlüsselwort-basierter Systeme werden im Folgenden beschrieben:
    Bedeutungen von Wörtern sind fest, unabhängig vom Zusammenhang. In schlüsselwort-basierten Systemen haben Schlüsselwörter eine feste Semantik. Dies ist eine deutliche Abweichung vom Gebrauch der normalen Sprache durch Menschen. Wörter in der natürlichen Sprache leiten ihre Bedeutung durch eine Kombination von "Symbol" (das Wort selbst) und "Kontext" (der umgebende Text und Hintergrundwissen) ab. Das hervorstechendste Beispiel sind Präpositionen bei Anwesenheit von Ellipsen. Zum Beispiel kann "by" das Subjekt nahezu eines beliebigen transitiven Verbs anzeigen, ebenso wie physikalische Nähe, oder kann ein Objekt oder ein Verfahren anzeigen, das zum Bewältigen einer bestimmten Aufgabe zu verwenden ist. Ein weiteres Beispiel von Bedeutung, die vom Kontext abhängt, ist, dass "green" sich auf eine Farbe, einen Zustand der Frische oder Neuheit, oder geringschätzig auf Unerfahrenheit beziehen kann. Ein kurzer Blick auf irgendeine Seite irgendeines Wörterbuches wird zeigen, dass die meisten Wörter mehrere und häufig nicht verwandte Bedeutungen aufweisen, und dass es der Kontext ist, der diese unterscheidet. Im Gegensatz zu dieser abgestuften Verwendung von Wörtern wählen schlüsselwort-basierte Lösungsansätze im Allgemeinen eine einzelne Bedeutung für jedes Wort aus und wenden diese Bedeutung konsistent in allen Suchvorgängen an. Dieses Problem ist in diesen Systemen grundsätzlich nicht behebbar: um einem Wort eine Kontextsemantik hinzuzufügen, ist eine starke Satzanalysetechnik erforderlich, wobei ein Mittel zum Spezifizieren eines Wortes im Kontext gefunden werden muss, das für ein Programm ausreicht, um die Kontextbedeutung zu verstehen.
    • – Streng gebunden an eine Anwendung. Da die Bedeutungen von Wörtern so streng fixiert sein müssen, haben diese Systeme die Schnittstelle streng an die (und im Allgemeinen untrennbar von der) Anwendung gebunden. Es gibt keinen Werkzeugsatz, der mit geläufigen Werkzeugsätzen einer graphischen Benutzerschnittstelle ("GUI") vergleichbar ist, um eine schlüsselwort-basierte Natursprachenschnittstelle für eine willkürliche Anwendung zu bilden.
    • – Vermisste Bedeutungen, die Klebewörtern anhaften, insbesondere Präpositionen. Eine Annahme hinter den schlüsselwort-basierten Lösungsansätzen ist, dass Klebewörter keine Bedeutung und keinen semantischen Inhalt führen. Unglücklicherweise gibt es in der Praxis einige wenige Wörter, deren Bedeutungen immer unwichtig sind. Diese Wörter, die als Klebewörter gewählt werden, sind diejenigen, deren Bedeutung meist kontextunabhängig ist, und deren semantischer Inhalt somit weitgehend fehlt.
    • – Hohe Fehlerraten, keine Robustheit. Da Bedeutungen den Wörtern unabhängig vom Kontext anhaften, können Bedeutungen häufig falsch geraten werden. Zum Beispiel vertreibt ein Lieferant auf diesem Gebiet, Linguistic Technology Corporation, ein Produkt ("EnglishWizard"), das Datenbankbenutzern erlaubt, einer Datenbank Fragen zu stellen. Es wird eine Demonstration mit einer Datenbank von Verkäufern, Angestellten, Vertrieben und Produkten angegeben. In dieser Beispieldatenbank beziehen sich Zahlen immer auf die Zahlen der Angestellten. Dies erzeugt eine Folge, bei der dann, wenn ein Benutzer fragt "who purchased exactly two items", die Antwort "no one" ist. Wenn jedoch ein Benutzer fragt, wie viele Gegenstände ein bestimmtes Individuum gekauft hat, ist die Antwort "two". Der Grund für die Diskrepanz könnte sein, dass EnglishWizard die Frage nicht wirklich verstanden hat. Stattdessen wurde die erste Benutzerfrage auf eine Frage über Angestellte abgebildet, da sie eine Zahl enthielt.
  • 2. FREIFORM-SCHLÜSSELWORTSUCHE:
  • Diese Kategorie ersetzt Schlüsselwörter durch im Voraus gefragte Fragen und die "richtigen" Antworten, und gibt die Antworten auf die eingetippte Frage zurück. Beispiele solcher Systeme sind genauer beschrieben im US-Patent Nr. 5.309.359, mit dem Titel "Method and Apparatus for Generating and Utilizing Annotations to Facilitate Computer Text Retrieval", erteilt am 3. Mai 1994 an Katz u. a., und im US-Patent Nr. 5.404.295, mit dem Titel " Method and Apparatus for Utilizing Annotations to Facilitate Computer Retrieval of Database Material", erteilt am 4. April 1995 an Katz u. a. In Systemen, die eine Freiform-Schlüsselwortsuche verwenden, sind Fragen und Antworten als Mengen gespeichert. Die Frage ist typischerweise in einer kanonischen Form gespeichert, wobei eine Umschreibemaschine versucht, die Benutzertrage in diese Form umzuschreiben. Wenn die Benutzerfrage in eine vorgegebene Frage abgebildet wird, für die die Antwort bekannt ist, wird anschließend die Antwort vom System zurückgegeben. Ein solcher Lösungsansatz wird von http://www.AskJeeves.com für Web-Suchanwendungen und für Nachschlagevorgänge für häufig gefragte Fragen (FAQs, Frequent Asked Questions) verwendet.
  • Solche Systeme weise schwerwiegende Einschränkungen auf, einschließlich der Folgenden:
    • – Eine relativ kleine Anzahl von Fragen kann beantwortet werden: Die Anzahl der Fragen, die beantwortet werden kann, ist linear proportional zur Anzahl der gespeicherten Fragen – somit kann dieses Verfahren nur verwendet werden, wenn es akzeptabel ist, eine relativ kleine Anzahl von Fragen zu haben, die vom System beantwortet werden kann.
    • – Es kann nicht direkt auf eine Benutzerfrage geantwortet werden: Da ein solches System eine Benutzerfrage in toto verarbeitet und nicht versucht, diese zu analysieren oder Informationen aus den Teilen zu extrahieren, kann es nicht verwendet werden, wenn die Lösung der Benutzerfrage die Verwendung eines Parameterwertes erfordert, der aus der Frage extrahiert werden kann. Zusammengefasst, das System kann lediglich dem Benutzer eine Seite zeigen, wo seine Frage beantwortet werden kann – es kann nicht direkt die Benutzerfrage beantworten.
  • 3. VERSTÄNDNIS-BASIERTE SUCHVORGÄNGE:
  • Systeme, die verständnisbasierte Suchvorgänge enthalten, versuchen, die wirkliche Bedeutung einer Benutzeranfrage zu verstehen, einschließlich gesellschaftlicher und hintergründiger Informationen. Ein Beispiel für ein solches System ist Wilensky's UNIX-basiertes Hilfesystem UC. UC weist ein eingebautes einfaches Verständnis der globalen Ziele eines Benutzers auf. Wilensky erläutert, dass eine Konsequenz davon, kein solches tiefes Verständnis zu haben, war, dass das System Beratung anbieten kann, die die unmittelbare Frage des Benutzers buchstäblich in einer Weise angeht, die mit den globalen Zielen des Benutzers in Konflikt steht. Ein spezifisches Beispiel ist, dass eine Anfrage für mehr Plattenspeicherplatz zum Entfernen aller Dateien des Benutzers führen kann – ein Vorgang, der die unmittelbare Anforderung erfüllt, jedoch wahrscheinlich nicht in einer Weise, die der Benutzer als angemessen empfinden würde.
  • Verständnis-basierte Systeme sind im Allgemeinen auf Konversationspartner, Hilfesysteme und einfache Übersetzungsprogramme beschränkt. Im Allgemeinen ist zu beachten, dass die zugrundeliegende Anwendung sehr trivial ist; tatsächlich ist die Schnittstelle die Anwendung. Verschiedene spezialisierte Systeme wurden ebenfalls erstellt, um spezifische Klassen von Dokumenten zu analysieren. Ein gutes Beispiel ist der Lebenslaufanalysator von Junglee. Forscher auf diesem Gebiet haben nun diesen Lösungsansatz weitgehend fallen lassen. In der Tat ist der akademische Konsens, dass vollständiges Verständnis "KI-komplett" ist. Ein Problem, das das vollständige Kontext- und Gesellschaftsverständnis eines Menschen erfordert.
  • Es gab zahlreiche vorherige Versuche, natürliche Sprache als ein Werkzeug zum Kontrollieren der Suche und von Computerprogrammen zu verwenden. Ein Beispiel hierfür ist Terry-Winograd's "Planner"-System, das in seiner Doktorarbeit 1972 beschrieben wurde. Winograd entwickelte eine abstrakte Domäne für sein Programm, als "Blockwelt" bezeichnet. Die Domäne bestand aus einer Menge abstrakter dreidimensionaler Festkörper, "Blöcke" genannt, und einer Menge von "Plätzen", auf denen die Blöcke ruhen konnten. Verschiedene Blöcke konnten auch oben auf anderen Blöcken ruhen. Der Planer würde eine Vielfalt von Befehlen in natürlicher Sprache akzeptieren, die den gewünschten Zuständen des Systems entsprechen (z. B. "Setze die Pyramide auf den kleinen Würfel"), und würde anschließend geeignete Maßnahmen ergreifen, um den gewünschten Zustand des Systems herzustellen. Winograd's System akzeptierte nur eine stark stilisierte Form von Englisch, wobei seine Natursprachfähigkeiten vollständig auf die Blockdomäne beschränkt waren. Der Schwerpunkt im System war die Herleitung der geeigneten Folge von Maßnahmen, um das gewünschte Ziel zu erreichen, nicht das Verständnis und die Analyse eines unbeschränkten Englisch.
  • Eine Vielfalt von Programmen wurde in den 1980iger Jahren herausgegeben, um englischsprachige Anfragen für Datenbanken zu erlauben. EasyAsk bietet ein repräsentatives Programm. In diesem System wird die Organisation oder das Schema der Datenbank als ein Rahmen für die zu fragenden Fragen verwendet. Die Tabellen der Datenbank werden als Objekte der Anwendung betrachtet, die Spalten als deren Attribute, und der Wortschatz für jedes Attribut als die Wörter innerhalb der Spalte. Wörter, die innerhalb der Spalte nicht erscheinen, einschließlich bestimmter Präpositionen, werden als "störende" Wörter betrachtet und in einer Anfrageverarbeitung verworfen.
  • Solche verständnis-basierten Systeme weisen eine Vielfalt von Problemen auf, einschließlich der Folgenden:
    • – Ignorierte vitale Beziehungen: Datenbankschemen sind für eine schnelle Verarbeitung von Datenbankanfragen konzipiert, nicht für semantische Informationen bezüglich der Datenbanken. Beziehungen zwischen Datenbanktabellen werden durch Importieren von Anzeigern von einer Tabelle in eine weitere ("Fremdschlüssel" genannt) angegeben. Die Verwendung der Beziehungen in den Schemen als Rahmen für Anfragen ignoriert bestimmte vitale Beziehungen (da die Beziehung nicht explizit durch die Schlüsselim portierung angegeben wird).
    • – Verlorene semantische Information: Präpositionen und andere "störende" Wörter tragen häufig signifikante semantische Informationen, die kontextabhängig sind. Zum Beispiel kann in einer Datenbank für Bücher, Autoren und Verlage die Präposition "by" entweder einen Verlag oder einen Autor bezeichnen, und kann den Akt der Veröffentlichung oder der Entwicklung eines Buches bezeichnen.
  • Zusätzlich zu den Problemen, die oben mit Bezug auf einige der verschiedenen Lösungsansätze beschrieben worden sind, die derzeit für die Beschaffung von Daten bestehen, teilen alle obigen Lösungsansätze die Einschränkung, dass die Natursprachen-Schnittstelle ("NL"-Schnittstelle) für jede Anwendung handgefertigt werden muss; es gibt keine Trennung zwischen dem NL-Analysator und der Schnittstelle, sowie der Anwendung selbst. Ferner erfordert die Entwicklung der Schnittstelle häufig mehr Aufwand als für die Anwendung selbst verwendet wird. Keiner der derzeit bestehenden Lösungsansätze für NL-Schnittstellen ist über Anwendungen und Plattformen hinweg portabel. Es gibt werde einen NL-Werkzeugsatz analog zu Windows API/Java AWT für GUIs, noch ein konkretes Verfahren zum Abbilden von Konstrukten in NL auf Konstrukte in Softwareprogrammen.
  • Es besteht somit Bedarf an einem System und einem Verfahren zum Erzeugen strukturierter parametrischer Daten aus Klartext, sowohl für Zwecke der Inhaltssynthese als auch für Zwecke der Datenbeschaffung. Ferner sollte ein solches System über Anwendungen und Plattformen hinweg portabel sein. Außerdem sollte ein solches System fähig sein, Suchvorgänge nach irgendwelchen relevanten Kriterien zu unterstützen, die für die Besucher eines Internetangebots von Interesse sein können, bei einem willkürlichen Wertebereich irgendwelcher Parameter. Ferner besteht Bedarf an einem System, das nahtlos, unsichtbar und schnell aktualisiert wird, um eine Änderung aufzunehmen, wenn ein Internetangebot angebotene Produkte hinzufügt oder modifiziert.
  • "Rapper: A Wrapper Generator with Linguistic Knowledge" von Mattox u. a., in Proceedings of the Second International Workshop on Web Information and Data Management, 2. November 1999, S. 6-11, beschreibt einen Lösungsansatz zum automatischen (oder halbautomatischen) Extrahieren von graphisch strukturierten Daten aus einer halbstrukturierten Datenquelle, der ein Informationsextraktionssystem auf einer Natursprachenbasis enthält, das in englischsprachigen Text eingebettete relevante Fakten findet. Es wird eine tiefe Syntaxanalyse des Quelltextes erzeugt.
  • ÜBERBLICK ÜBER DIE ERFINDUNG
  • In einem ersten Aspekt schafft die vorliegende Erfindung ein computerbasiertes Verfahren nach Anspruch 1.
  • In einem zweiten Aspekt schafft die vorliegende Erfindung ein computerimplementiertes System nach Anspruch 8.
  • Ausführungsformen der vorliegenden Erfindung schaffen ein System und ein Verfahren zum Empfangen unstrukturierten Textes und zum Konvertieren desselben in strukturierte Daten. In einer Ausführungsform wird dies bewerkstelligt durch Abbilden der grammatikalischen Syntaxanalyse eines Satzes auf einen Instanzenbaum von Anwendungsdomänenobjekten. Außerdem sind die Ausführungsformen der vorliegenden Erfindung über verschiedene Anwendungsdomänen hinweg portabel.
  • Ein System, das die vorliegende Erfindung verkörpert, kann zum Erzeugen strukturierter Daten aus Klartext verwendet werden, um eine effiziente Speicherung dieser strukturierter Daten in einer Datenbank zu erlauben. Zum Beispiel können von der freien Textbeschreibung einer Anzahl von Produkten die strukturierten Daten (die ein extrahiertes Objekt und dessen Attribute sein können) verwendet werden, um individuelle Einträge in einer Produktdatenbank zu erzeugen, und somit Inhalt für ein Elektronikhandel-Internetangebot oder einen Internetmarktplatz zu erzeugen. Alternativ oder zusätzlich kann ein solches System verwendet werden, um strukturierte Daten aus einer Klartextanfrage zu erzeugen, um diese strukturierten Daten zum Beschaffen relevanter Daten aus einer Datenbank zu verwenden. Zum Beispiel kann eine Freitextanfrage eines Benutzers in eine Datenbankanfrage konvertiert werden, die den Objekten der Datenbank und deren Attributen entspricht. Ein solches System überwindet die Einschränkungen herkömmlicher Suchmaschinen durch Akzeptieren eines freiformulierten Textes und Abbilden desselben genau auf eine strukturierte Suchanfrage.
  • Ausführungsformen der vorliegenden Erfindung erkennen, dass das Verstehen natürlicher Sprache beim Erzeugen strukturierter Daten weder erforderlich noch erwünscht ist; stattdessen ist die Fähigkeit gewünscht, natürliche Sprache auf eine Programmstruktur abzubilden. Ferner besteht eine natürliche Beziehung zwischen der Syntaxanalyse des Satzes, wie sie in einem Syntaxbaum ausgedrückt ist, und einem Komponentenbaum in einem Programm. Der Natursprachensatz wird somit verstanden als Befehle zum Erstellen eines Komponentenbaums. Eine Inhaltsmaschine empfängt einen Natursprachensatz und erzeugt einen Programmkomponentenbaum. Der Komponentenbaum wird anschließend weiter vereinfacht, bevor er zur Ausführung an ein Programm übergeben wird.
  • Wie oben erwähnt worden ist, kann ein System, das die vorliegende Erfindung verkörpert, über verschiedene Anwendungen hinweg verwendet werden. In den verschiedenen Ausführungsformen der vorliegenden Erfindung hängt die Bedeutung eines Wortes nur von der Anwendung und der Rolle des Wortes im Satz ab. Die Definition eines Wortes ist somit größtenteils das Aufgabengebiet des Anwendungsentwicklers. Kurz, Wörter dienen als Identifizierer für Komponenten. Ein Wort in einem Satz dient als ein Identifizierer für Programmobjekte. Wie oben diskutiert worden ist, weisen viele Wörter im Englischen oder einer anderen natürlichen Sprache vielfache Bedeutungen auf, wobei die Bedeutungen vom Zusammenhang (Kontext) abhängig sind. In ähnlicher Weise kann für Ausführungsformen der vorliegenden Erfindung ein Wort als ein Identifizierer für mehrere Objekte verwendet werden.
  • In einer Ausführungsform transformiert die vorliegende Erfindung einen englischen Satz in eine Menge von Softwareobjekten, die anschließend zur Ausführung an die gegebene Anwendung weitergeleitet werden. Einer der Vorteile dieses Lösungsansatzes ist die Fähigkeit, eine Natursprachenschnittstelle zu irgendeiner Softwareanwendung mit minimalem Entwickleraufwand hinzuzufügen. Die Objekte des Anwendungsbereichs werden in einer Ausführungsform unter Verwendung der natürlichen Auszeichnungssprache ("NML", Natura) Markup Language) erfasst. Die resultierende Schnittstelle ist robust und intuitiv, da der Benutzer nun mit einer Anwendung interagiert, indem er normale englische Sätze eingibt, welche anschließend vom Programm ausgeführt werden. Eine Anwendung, die mit der vorliegenden Erfindung aufgewertet ist, steigert außerdem deutlich die Funktionalität, die für einen Benutzer verfügbar ist.
  • Wenn ein gegebener Klartextsatz in einer natürlichen Sprache gegeben ist, führt ein System gemäß einer Ausführungsform der vorliegenden Erfindung folgende Schritte aus:
    • (i) Ein Syntaxanalysealgorithmus wendet eine formale kontextfreie Grammatik für die natürliche Sprache an, um alle Syntaxanalysen eines gegebenen Satzes herzuleiten. Zum Zweck der Diskussion wird Englisch als ein Beispiel der natürlichen Sprache des Klartextes verwendet. Es ist jedoch klar, dass Ausführungsformen der vorliegenden Erfindung für eine beliebige natürliche Sprache verwendet werden können. In einer Ausführungsform werden alle Syntaxanalysen des Satzes in der Zeit hergeleitet, die zum Herleiten einer einzelnen Syntaxanalyse erforderlich ist (z. B. gleichzeitig). Alle Syntaxanalysen werden vorzugsweise in einer einzigen Datenstruktur gespeichert, deren Größe erheblich kleiner ist als die Anzahl individueller Syntaxbäume, häufig lediglich einen konstanten Faktor größer als die Größe, die erforderlich ist, um einen einzelnen Syntaxbaum zu speichern. Es ist zu beachten, dass in einer Ausführungsform die korrekte Abbildung eines Satzes nur bekannt ist, nachdem alle möglichen Syntaxanalysen versucht worden sind.
    • (ii) Ein Abbildungsalgorithmus verwendet anschließend die Struktur jedes Syntaxbaumes für einen gegebenen Satz, um zu versuchen, eine Objektdarstellung des Satzes innerhalb der interessierenden Domäne auf der Grundlage des anwendungsspezifischen NML-Modells herzuleiten. Mit anderen Worten, der Abbildungsalgorithmus bildet jede vom Syntaxanalysator ausgegebene Syntaxanalyse auf einen Instanzenbaum von Objekten ab. In einer Ausführungsform wird dies bewerkstelligt durch Erzeugen von Instanzenbäumen, Abbilden jeder Syntaxanalayse auf einen Instanzenbaum, Beschneiden der erzeugten Instanzenbäume, und anschließendes Anwenden eines Beste-Anpassung-Algorithmus auf die beschnittenen Bäume, um die beste Anpassung auszuwählen.
    • (iii) eine reduzierte Form der NML-Objektbeschreibungsinstanz wird als eine Instanz einer Domänen-Auszeichnungssprache ("DML") erzeugt. Diese DML wird zur Ausführung an das Anwendungsprogramm weitergeleitet.
  • Die Merkmale und Vorteile, die in diesem Überblick und in der folgenden genauen Beschreibung beschrieben werden, sind nicht allumfassend, wobei insbesondere viele zusätzliche Merkmale und Vorteile für Fachleute hinsichtlich der Zeichnungen, der Beschreibung und der Ansprüche hierfür deutlich werden. Außerdem ist zu beachten, dass die in der Beschreibung verwendete Sprache hauptsächlich der Lesbarkeit und der Lehre halber gewählt worden ist, wobei die Ansprüche heranzuziehen sind, um den Erfindungsgegenstand zu bestimmen, für welchen Schutz begehrt wird.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist eine Darstellung der Architektur eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 2 ist ein Blockdiagramm der Komponenten der Inhaltsmaschine.
  • 3A ist ein Beispiel eines Syntaxbaums für "abb" unter Verwendung einer ersten Grammatik.
  • 3B ist ein Beispiel zweier verschiedener Syntaxbäume für "abb" unter Verwendung einer zweiten Grammatik.
  • 3C zeigt, wie verschiedene Syntaxbäume als ein einzelner Syntax-DAG dargestellt werden können.
  • 4 ist ein Flussdiagramm, das die Funktionalität der Inhaltsmaschine zeigt.
  • 5A zeigt einen möglichen Syntaxbaum für den Satz "the boy helped the girl with the suitcase".
  • 5B zeigt ein weiteres Beispiel eines Syntaxbaums für den Satz "the boy helped the girl with the suitcase".
  • 5C zeigt, wie die verschiedenen Syntaxbäume für den Satz "the boy helped the girl with the suitcase" in einem einzigen Syntax-DAG dargestellt werden können.
  • 6 ist ein Flussdiagramm, das die Erzeugung von Instanzenbäumen durch die Abbildungsvorrichtung zeigt.
  • 7 zeigt das Beschneiden ungültiger Instanzenbäume, nachdem alle Instanzenbäume von der Abbildungsvorrichtung erzeugt worden sind.
  • 8 zeigt eine Kostenfunktion, die von der Abbildungsvorrichtung verwendet wird, um gemäß einer Ausführungsform der vorliegenden Erfindung die beste Abbildung aus den gültigen Instanzenbäumen auszuwählen.
  • 9 ist ein Flussdiagramm, das die DML-Erzeugung gemäß einer Ausführungsform der vorliegenden Erfindung zeigt.
  • Die Figuren zeigen eine bevorzugte Ausführungsform der vorliegenden Erfindung lediglich zu Darstellungszwecken. Ein Fachmann wird leicht anhand der folgenden Beschreibung erkennen, dass alternative Ausführungsformen der Strukturen und Verfahren, die hier gezeigt sind, verwendet werden können, ohne von den hier beschriebenen Prinzipien der Erfindung abzuweichen.
  • GENAUE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • I. SYSTEMARCHITEKTUR
  • 1 zeigt einen Überblick über die Architektur eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung. Das System umfasst eine Inhaltsmaschine 110, ein Online-Wörterbuch 120, ein Domänen-Wörterbuch 130, ein Natur-Auszeichnungssprache-("NML")-Modul 140, ein Vertikaldomänenkonzeptmodul 150, ein Kunde-Client-Spezifikationsmodul 160, einen Grammatikspeicher 170 und ein Client-Datenmodul 182.
  • Die Inhaltsmaschine 110 empfängt als Eingabe Klartext, analysiert diesen, und bildet die Syntaxanalysen auf Instanzenbäume ab. Wie aus 1 deutlich wird, empfängt die Inhaltsmaschine 110 in einer Ausführungsform der vorliegenden Erfindung Eingaben sowohl von einem Online-Wörterbuch 120 (das Wörter in einer natürlichen Sprache enthält) als auch von einem Domänen-Wörterbuch 130 (das für eine Domäne spezifische Ausdrücke enthält).
  • Außerdem empfängt die Inhaltsmaschine 110 Eingaben vom NML-Modul 140, das ein für die Anwendung oder die Domäne, für die das System verwendet wird, spezifisches NML-Modell enthält. Die anwendungsspezifische NML wird in einer Anordnung unter Verwendung einer Kombination aus automatischem und manuellem Editieren aus vertikalen Domänenkonzepten erzeugt, die vom Vertikaldomänenkonzeptmodul 150 erhalten werden, und der Kunde-Client-Spezifikationen, die aus dem Kunde-Client-Spezifikationsmodul 160 erhalten werden. Die vorliegende Erfindung wird auf eine vertikale Domäne 150 der Anwendung maßgeschneidert, indem ein objektorientiertes Datenmodell erzeugt wird, das die beabsichtigte Funktionalität des Einsatzortes repräsentiert. Ein Beispiel der vertikalen Domänenkonzepte 150 ist die Taxonomie, wie z. B. der Standardprodukt- und Dienstleistungscode der Vereinten Nationen (UN/SPSC). Ein weiteres Beispiel der vertikalen Domänenkonzepte 150 ist die Menge von Konzepten, die für Finanzinformationen für ein Unternehmen sachdienlich ist, wie z. B. Unternehmensname, Ort, leitende Angestellte, Produkte, Wettbewerber, jährliche Umsätze, Einkommen, Angestellte und dergleichen. Ein Beispiel von Kunde-Client-Spezifikationen 160 ist eine Sammlung von Konzepten ähnlich den vertikalen Domänenkonzepten 150, jedoch spezifisch für ein Internetangebot (d. h. nicht auf allen Internetangeboten zu finden, die sich in der gleichen Domäne befinden können).
  • Außerdem wird eine Eingabe in die Inhaltsmaschine 110 auch vom Grammatikspeicher 170 bereitgestellt. Der Grammatikspeicher 170 speichert eine Grammatik für eine bestimmte Sprache. In einer Anordnung speichert der Grammatikspeicher 170 eine vollständig kontextfreie Grammatik für die englische Sprache. Ein Beispiel einer solchen Grammatik ist im Anhang A enthalten. Die im Anhang A gezeigte Grammatik hat das Startsymbol <Paragraph>. Die Regeln zeigen, dass ein <Paragraph> aus einen oder mehreren Symbolen <Sentence> getrennt durch <Terminator> besteht. In ähnlicher Weise besteht ein <Sentence> aus einer <Clause> und dergleichen. Grammatiken werden im Folgenden genauer diskutiert.
  • Die Inhaltsmaschine 110 hat ferner Zugriff auf ein Modul, das Client-Daten 182 enthält. Diese Daten werden für einen client-spezifischen oder dynamischen Wortschatz verwendet, der nicht über Client-Orte oder Anwendungen übertragen wird. Beispiele eines solchen Wortschatzes enthalten Handels- oder Markennamen (z. B. "Explorer", "Expedition" oder "Exkursion" für Ford-Sportgeländewagen, oder Namen von Konfektionen, die vom Lebensmittelunternehmen Hershey hergestellt werden).
  • 2 zeigt die Architektur der Inhaltsmaschine 110 in einer Ausführungsform der vorliegenden Erfindung. Wie aus 2 deutlich wird, umfasst die Inhaltsmaschine 110 einen Analysator 210, eine Abbildungsvorrichtung 220 und einen Domänen-Auszeichnungssprache-("DML")-Generator 230.
  • Der Analysator 210 analysiert den vom Benutzer eingegebenen Text in alle möglichen Syntaxanalysen auf der Grundlage der im Grammatikspeicher 170 gespeicherten Grammatik. In einer Ausführungsform wendet der Analysator 210 eine formale kontextfreie Grammatik für die Sprache an, in der der Benutzer arbeitet, um alle Syntaxanalysen eines gegebenen Satzes herzuleiten. In einer Anordnung werden alle Syntaxanalysen in der Zeit hergeleitet, die erforderlich ist, um eine einzelne Syntaxanalyse herzuleiten. In einer bevorzugten Ausführungsform werden alle Syntaxanalysen in einer einzigen Datenstruktur mit einer Größe äquivalent zu derjenigen, die zum Speichern eines einzigen Syntaxbaumes erforderlich ist, gespeichert. Der Analysator 210 kann bedeutungslose Syntaxanalysen erzeugen, jedoch ist dies akzeptabel, da, wie im Folgenden diskutiert wird, diese bedeutungslosen Syntax analysen keine gültigen Abbildungen auf die NML liefern und automatisch während des Abbildungsprozesses aus der Betrachtung verworfen werden. Die Funktionalität des Analysators 210 wird im Folgenden genauer diskutiert.
  • Die Abbildungsvorrichtung 220 greift auf alle Syntaxanalysen des vom Benutzer eingegebenen Textes zu, die von dem Analysator 210 erzeugt worden sind. Die Abbildungsvorrichtung 220 verwendet ihrerseits die Struktur jedes Syntaxbaumes für einen gegebenen Satz, um zu versuchen, eine Objektdarstellung des Satzes innerhalb der interessierenden Domäne auf der Grundlage des vom NML-Modul 140 bereitgestellten anwendungsspezifischen NML-Modells herzuleiten. Mit anderen Worten, die Abbildungsvorrichtung 220 bildet jede von dem Analysator 210 ausgegebene Syntaxanalyse auf einen Instanzenbaum von Objekten ab. Die Funktionalität der Abbildungsvorrichtung 220 wird im Folgenden genauer diskutiert.
  • In einer Ausführungsform ist das Ergebnis der Abbildungsvorrichtung 220 nicht das endgültige Ergebnis der Inhaltsmaschine 110. Ein weiterer Schritt verbleibt: der DML-Generator 230 reduziert die von der Abbildungsvorrichtung 220 erzeugte Struktur auf eine einfachere Form. Die Erzeugung der DML wird in einer Ausführungsform durch DML_ELEMENT-Deklarationen angewiesen, die in dem vom NML-Modul 140 bereitgestellten NML-Modell enthalten sind. Das Ergebnis dieses Prozesses, im Folgenden genauer beschrieben, ist, ein Dokument in der Domänen-Auszeichnungsprache ("DML") zu erzeugen. Die DML-Beschreibung kann anschließend als eine Eingabe in die darunterliegende Anwendung (in den Figuren nicht gezeigt) weitergeleitet werden. In einer Ausführungsform nimmt die Anwendung die DML-Eingabe an und verwendet diese, um eine Datenbank zu belegen, wobei jeder Instanzenbaum als Beschreibung einer Entität (und deren Attributen) in der Anwendungsdomäne verwendet wird, und wobei die geeigneten Einträge in der Datenbank erzeugt werden. In einer weiteren Ausführungsform nimmt die Anwendung die DML-Eingabe an und verwendet diese als eine Anfrage für eine darunterliegende Datenbank, um Einträge (z. B. Produkte) wiederzugewinnen, die die Anfrage befriedigen, und somit zu den Interessen des Benutzers passen (soweit ein solches Interesse in der ursprünglichen Texteingabe gut ausgedrückt ist).
  • II. SYSTEMFUNKTIONALITÄT
  • A. Hintergrundinformation
  • Bevor die Funktionalität einer Ausführungsform eines Systems gemäß der vorliegenden Erfindung beschrieben wird, ist es nützlich, zu diskutieren, was Grammatik ist, was NML ist, und was DML ist.
  • 1. Grammatik
  • Sprachen, sowohl natürliche als auch Computersprachen, sind mittels einer "Grammatik" definiert. Eine Grammatik ist eine Reihe mathematischer Objekte, "Darstellungen" genannt, die mathematisch die wohlformulierten "Sätze" der Grammatik beschreiben.
  • Ein einfaches Beispiel einer Grammatik "Grammatik 1" ist folgendes:
    S ⇒ AB
    A ⇒ aA
    A ⇒ a
    B ⇒ bB
    B ⇒ b
  • Die Symbole "S", "A" und "B" werden als "Nicht-Endelemente" oder "Phrasen" bezeichnet. Sie repräsentieren rein abstrakte Objekte, die nicht in irgendeinem Satz in der Sprache erscheinen, jedoch eine Gruppe von Symbolen eines Sprachsatzes repräsentieren. Die Symbole "a" und "b" repräsentieren Wörter in der Sprache und werden als "Endelemente" oder "Wörter" bezeichnet. Durch Vereinbarung weist jede Grammatik eine Phrase "S" für "Satz" auf, die allein auf der linken Seite einer Darstellung erscheint. Eine Darstellung wird angewendet durch Ersetzen der linken Seite der Darstellung durch die rechte Seite in einer Kette.
  • Eine Folge α von Endelementen wird als aus einem Satz γ von Nicht-Endelementen und Endelementen hergeleitet bezeichnet, wenn α durch Anwenden einer Folge von Darstellungen der Grammatik in γ transformiert werden kann. Zum Beispiel kann für die Grammatik 1 "aabb" aus "aAbB" hergeleitet werden, da die Regeln A ⇒ a und B ⇒ b auf aAbB angewendet aabb ergeben. Die Folge von Endelementen, oder ein "Satz", wird als in der Sprache der Grammatik vorliegend bezeichnet, wenn er aus dem Startsymbol S hergeleitet werden kann. Zum Beispiel liegt für Grammatik 1 die Folge "abb" in der Sprache der Grammatik vor, da S ⇒ AB ⇒ aB ⇒ abB ⇒ abb. Im Gegensatz hierzu liegt "abab" nicht in der Sprache vor, da keine Folge von Darstellungen verwendet werden kann, um "abab" aus S herzuleiten.
  • Im Englischen und in anderen natürlichen Sprachen entsprechen die Nicht-Endelemente und die Endelemente intuitiv den Standard-Grammatikobjekten, die von einem Schulkind gelernt werden. Die Endelemente sind einfach die Wörter und Interpunktionssymbole der Sprache; die Nicht-Endelemente sind die Standard-Phrasenkonstrukte und Worttypen, die in der Grundschule gelernt werden: Nomen, Verb, Nomenphrase, Verbphrase und dergleichen. Die Menge der Nicht-Endelemente in menschlichen Sprachen ist tendenziell ziemlich begrenzt; die Menge der Endelemente und der Darstellungen variieren stark, wobei in deren Varianz die reiche Vielfältigkeit menschlicher Sprache liegt. Im Allgemeinen kann eine beliebige Folge von Nicht-Endelementen und Endelementen auf jeder Seite einer Grammatikregel erscheinen. Grammatiken jedoch, die diese Freiheit nutzen, sind rechnerisch schwer zu bewältigen. Somit werden der Form der linken Seite und den Darstellungen häufig verschiedene Beschränkungen auferlegt, die die Syntaxanalyse dieser beschränkten Grammatiken rechnerisch lenkbar machen.
  • Von besonderem Interesse sind "kontextfreie Grammatiken", die dadurch ausgezeichnet sind, dass die linke Seite jeder Darstellung auf ein einzelnes Nicht-Endelement beschränkt ist. Die Grammatik 1, die oben angegeben ist, ist kontextfrei. Tatsächlich weist sie einen etwas stärker eingeschränkten Typ auf: "regelmäßig".
  • Wie im Folgenden genauer erläutert wird, bietet die kontextfreie Grammatik, die in einer Ausführungsform von der Inhaltsmaschine 110 verwendet wird, die minimale Menge an grammatischer Information, die notwendig ist, um die korrekte Syntaxanalyse irgendeines grammatikalisch korrekten englischen Satzes zu erfassen. Der Hauptzweck der Grammatik ist, die korrekte Syntaxanalyse eines Satzes zu erfassen, ohne die Bedeutung (oder die Semantik) des Satzes zu verstehen. Die Grammatik wird daher erzeugt, um jede korrekte Syntaxanalyse jedes Satzes in der Sprache einzuschließen. Selbstverständlich führt dies für irgendeinen einzelnen Satz zu mehreren mehrdeutigen Syntaxanalysen, von denen nur eine die (semantisch) korrekte Syntaxanalyse des gegebenen Satzes ist.
  • Ein Fachmann wird erkennen, dass die vom Grammatikspeicher 170 bereitgestellte Grammatik in einer Anordnung im Wesentlichen aus einer vollständigen Grammatik der englischen Sprache verdichtet werden kann, um somit die Kürze der Grammatik zu fördern. Zum Beispiel ignoriert die in Anhang A gezeigte Grammatik umfassend grammatische Merkmale wie Verbkonjugationen, mehrere Nomen, die Zeitform, das Aktiv oder das Passiv und dergleichen. Dies ist akzeptabel, da diese Merkmale für die Syntaxanalyse eines Satzes irrelevant sind und nur benötigt würden, wenn die Semantik eines Satzes genauer zu analysieren wäre.
  • In der grammatikalischen Analyse wird die bestimmte Folge von Umschreiberegeln, die zum Herleiten des Satzes verwendet werden, gewöhnlich als Syntaxanalyse des Satzes bezeichnet. In einer kontextfreien Grammatik kann die Syntaxanalyse eines bestimmten Satzes mathematisch als "Syntaxbaum" dargestellt werden.
  • 3A zeigt ein Beispiel eines Syntaxbaumes für "abb" unter Verwendung der obigen Grammatik 1. Für eine beliebige Grammatik braucht eine Syntaxanalyse nicht eindeutig sein. Es sei z. B. nun Grammatik 2 betrachtet.
    S ⇒ AB
    S ⇒ CB
    C ⇒ a
    A ⇒ aA
    A ⇒ a
    B ⇒ bB
    B ⇒ b
  • Auf der Grundlage von Grammatik 2 würde die Kette "abb" zwei unterschiedliche Syntaxanalysen aufweisen, wie durch die zwei separaten in 3B gezeigten Syntaxbäume dargestellt ist.
  • Eine solche Grammatik, die zu mehreren Syntaxbäumen für eine Kette führen kann, wird als "mehrdeutig" bezeichnet. Die meisten Grammatiken für menschliche Sprachen sind im genauen technischen Sinne mehrdeutig, aus dem einfachen Grund, dass menschliche Sprache selbst mehrdeutig ist. Zum Beispiel kann in dem Satz "the boy helped the girl with the suitcase" der Modifikator "with the suitcase" entweder auf das Mädchen oder den Vorgang des Helfens Bezug nehmen. Im Allgemeinen kann ein Modifikator irgendeinen Teil des Satzes modifizieren. Die Auflösung von Mehrdeutigkeiten ist ein wichtiges Problem in der Syntaxanalyse und wird im Folgenden diskutiert.
  • Wie in 3B gezeigt ist, ist zu beachten, dass herkömmlicherweise unterschiedliche Syntaxanalysen zu unterschiedlichen Syntaxbäumen führen. Gemäß einer Ausführungsform der vorliegenden Erfindung können jedoch alle Syntaxanalysen eines gegebenen Satzes als ein gerichteter azyklischer Graph ("DAG") 300 einer einzelnen Syntaxanalyse dargestellt werden. Dies ist in 3C für den Satz "abb" gezeigt.
  • Die gestrichelten Kanten 310 des DAG 300 repräsentieren optionale Syntaxanalysen; eine Auswahl einer Menge umschließt einen gültigen Syntaxbaum. Durch Untersuchen der 3B und 3C wird deutlich, dass die zwei Bäume in 3B insgesamt 14 Knoten und 12 Kanten aufweisen. Im Gegensatz hierzu weist der in 3C gezeigte Syntaxanalyse-DAG insgesamt nur acht Knoten und acht Kanten auf. Die Raum- und Zeiteinsparungen, die durch die Verwendung des Syntaxanalyse-DAG repräsentiert werden, sind drastisch, wenn Hunderte oder Tausende von Syntaxanalysen vorhanden sind, wie es für englische Sätze typisch ist. Der Raum und die Zeit, die zum Konstruieren des Syntaxanalyse-DAG erforderlich ist, ist proportional zur Anzahl der ausgeprägten Knoten in den Komponentensyntaxbäumen, während der Raum und die Zeit, die von herkömmlichen Algorithmen benötigt werden, proportional zur Anzahl der Knoten der Syntaxbäume sind.
  • 2. Natürliche Auszeichnungssprache ("NML")
  • Der Lösungsansatz der vorliegenden Erfindung beruht auf der Beschreibung der Menge von Konzepten eines spezifischen Anwendungsbereiches oder einer Domäne als eine Menge von Objekten. Objekte werden in zwei fundamentale Klassen eingeteilt:
    • (i) Aufzählungen: Dies sind Objekte, die durch einzelne Wörter oder feste Phrasen im Englischen über die gegebene Domäne definiert sind. Ein einfaches Beispiel einer Aufzählung (Enumeration) ist das Objekt Color, das durch die Farbwörter (z. B. red, blue, mauve) der alltäglichen Erfahrung definiert ist.
    • (ii) Verbunde: Dies sind Objekte, die als Sammlungen von Unterobjekten definiert sind. Die Unterobjekte eines Verbundes werden als dessen "Attribute" bezeichnet. Ein Beispiel eines Verbunds ist das Objekt Desk, das die Attribute PrimitiveDeskWord (z. B. das aufgezählte Objekt bestehend aus dem Wort desk und seinen Synonymen besteht), PedestalType (z. B. ein Verbund, der beschreibt, ob dieser Schreibtisch einen rechten, einen linken oder einen doppelten Sockel hat), Dimension (z. B. ein Verbund, der die Höhe, Breite und Tiefe des Schreibtischs angibt), Use (z. B. eine Aufzählung, die executive, computer, student, secretary umfasst) sowie verschiedene andere Attribute aufweisen kann, die das Material, die Oberflächenbearbeitung und optionale Merkmale des Schreibtisches angeben.
  • NML ist eine Sprache zum Deklarieren von Objekten, Aufzählungen und den Beziehungen zwischen Objekten. In einer Anordnung deklariert der NML-Programmierer die Verbunde und Aufzählungen der Domäne. In einer Anordnung beruht NML auf dem XML-Standard (XML = erweiterbare Auszeichnungssprache). Es ist zu beachten, dass die NML-Beschreibung einer Domäne einen Graphen von Objekten beschreibt, wobei die Senken des Graphen (die Knoten ohne abgehende Kanten) die Aufzählungen der Domäne sind.
  • Wie oben mit Bezug auf 1 diskutiert worden ist, bietet das NML-Modul 140 eine anwendungsspezifische NML für die Inhaltsmaschine 110. NML ist ein Werkzeug zum Beschreiben einer Anwendungsobjekthierarchie und des Wortschatzes, mit dem die Hierarchie in der natürlichen Sprache für die Inhaltsmaschine 110 herangezogen wird. Da die Bedeutungen der Wörter selbst für die wirkliche Implementierung eines Systems nicht relevant sind, kann die vorliegende Erfindung für viele unterschiedliche Anwendungen verwendet werden. Ein NML-Dokument kann für jede Anwendung erzeugt werden, wobei typischerweise eine kleine spezielle Auszeichnungssprache für die Domäne selbst erzeugt werden kann. Die Auszeichnungssprache und das NML-Dokument stehen in enger Beziehung. Ein NML-Dokument erfasst die Konzepte einer Anwendungsdomäne, während die Auszeichnungssprache dafür entwickelt ist, die Werte für diese Konzepte für eine bestimmte Anfrage zu halten.
  • Ein Beispiel eines solchen Auszeichnungssprachendokuments (von der Auszeichnungssprache "CompanyProfileAPT") ist unten gezeigt, entsprechend den Werten der Anfrage "who is the director of human resources for Microsoft in the United Kingdom?"
    Figure 00260001
  • In diesem Beispiel wird deutlich, dass die Morphologie und, in bestimmten Fällen, die wirklichen Wörter der Anfrage eliminiert worden sind; stattdessen wurden die Konzepte und Werte in das Dokument eingesetzt, und, ob die Benutzeranfrage angefordert ist oder der spezifische Wert gesetzt ist. In diesem Fall wurde der volle Name der Person angefordert, wobei die gegebene Identifizierungsinformation das Unternehmen war, für das sie gearbeitet hat, das Land, in dem sie gearbeitet hat, ihr konzeptioneller Titel ("Chef') und ihre Abteilung ("Personalabteilung"). Dies sind ausreichende Informationen, um eine Anfrage zum Erfüllen der Benutzeranfrage zu starten, jedoch wurde das gesamte Wissen des wirklichen Englisch, das er beim Formulieren dieser Anfrage verwendet hat (und alle Anforderungen zum Analysieren derselben) eliminiert.
  • Wie oben erwähnt worden ist, ist in einer Anordnung der vorliegenden Erfindung NML eine Erweiterung der erweiterbaren Auszeichnunssprache (XML). Kurz, XML ist der Kern aller kennzeichenbasierten Auszeichnungssprachen. Sie wird nahezu niemals alleinstehend verwendet, sondern wird zu einer anwendungsspezifischen, kennzeichenbasierten Auszeichnungssprache konfiguriert. Beispiele solcher Sprachen sind die mathematische Auszeichnungssprache MML und die Commerce-One's-Produktaustauschsprache.
  • Ein XML-Dokument besteht aus einem Satz von "Elementen". Ein Element ist ein Stück eines Dokuments, das zwischen einem HTML-Stil-Kennzeichen und seinem passenden Schließkennzeichen enthalten ist. Anders als HTML weist jedoch XML keine eingebauten Kennzeichen auf – vielmehr ist die Menge der Kennzeichen für ein spezifisches Dokument durch dessen Dokumenttypdefinition, oder DTD, definiert. Die Unterscheidung zwischen zwei separaten XML-Erweiterungssprachen liegt typischerweise in deren DTDs.
  • Nun sei NML mit einem Programm "Hello, world" eingeführt. Anders als die meisten Programmiersprachen ist jedoch NML nicht gut zum Ausdrucken von "hello, world"; vielmehr ist sie gut für die Erkennung "hello, world". Das Programm, das "hello, world" erkennt, erscheint unten im Programm 1.
  • Figure 00280001
  • Das obige Programm 1 ist extrem einfach; es erkennt lediglich ein Objekt, das durch die Kette "hello, world" indiziert ist, und bildet dieses auf das Objekt "HelloWorld" ab. Das Element IDENTIFIER innerhalb des Elements ENUMERATION zeigt an, dass das Argument LITERAL, wenn es im Text vorkommt, eine Instanz der relevanten ENUMERATION erzeugt. Somit erzeugt die Phrase "hello, world" eine Instanz des Objekts HelloWorld, wobei dies die exakte Phrase abbildet. Dieses Programm, da es einfach ist, erkennt nur die exakte Phrase "hello, world" mit verschiedenen Großschreibungen. Ein einfaches Programm, das nur diese exakte Phrase erkennt, hätte ebenfalls gereicht und wäre viel einfacher zu schreiben gewesen. In NML ist jedoch ein Programm, das viel mehr erkennt, nahezu genauso einfach zu schreiben. Dies wird im nächsten Beispiel im Programm 2 gezeigt.
  • Figure 00290001
  • Das obige Programm 2 deklariert ein Objekt HelloWorld mit zwei Unterobjekten oder Attributen: Greeting und World. Greeting ist durch die Literale "hello", "hi", "good morning" und "good afternoon" indiziert; World durch "everyone", "everybody" und "world". Das Argument MIN = 1 für beide Attribute zeigt an, dass irgendein Objekt des Typs HelloWorld sowohl ein Attribut Greeting als auch ein Attribut World aufweisen muss. Der Satz "Hello" passt z. B. nicht, da das Attribut World fehlen würde. In ähnlicher Weise zeigt MAX = 1 an, dass nur ein Attribut jedes Typs vorhanden sein kann: "Hello everyone good afternoon" würde nicht abgebildet, da zwei Objekte Greeting erzeugt würden, die Unterobjekte von HelloWorld sind.
  • Wenn Programm 2 mittels der Inhaltsmaschine 110 implementiert wird, ist es so beschaffen, dass es die folgenden Phrasen erkennt.
  • Figure 00300001
  • Das Programm 2 arbeitet jedoch nicht richtig, um diese Phrasen zu erkennen. Tatsächlich erkennt das Programm 2 nichts. Das folgende Programm 3, das sich vom Programm 2 durch ein einziges Wort unterscheidet, erkennt stattdessen tatsächlich die obigen Phrasen.
  • Figure 00300002
  • Wie aus Untersuchung von Programm 2 und Programm 3 deutlich wird, liegt die Änderung im Attribut World des Objekts HelloWorld: In Programm 3 ist das Argument INFER auf wahr gesetzt. Die Schlussfolgerung ist, dass die Anwesenheit eines Modifikators die Existenz eines Objekts implizieren kann, selbst wenn das Objekt nicht explizit identifiziert ist. Hier bedeutet dies, dass immer dann, wenn ein Objekt World erzeugt wird, ein Objekt HelloWorld erzeugt wird, das dieses enthält. Dies ist das zweite der zwei Verfahren, mit denen Objekte erzeugt werden: das erste, das bereits beschrieben worden ist, gilt dann, wenn ein IDENTIFIER entdeckt wird. Im Programm 3 wurden die Objekte Greeting und World erzeugt, jedoch kein Objekt HelloWorld; tatsächlich könnte in diesem Programm kein Objekt HelloWorld erzeugt werden, da weder Identifizierer hatte, noch von irgendeinem Attribut abgeleitet wurde.
  • Der Unterschied im Verhalten zwischen Programm 2 und Programm 3 beruht auf einem anderen Faktor: In Programm 3 müssen alle Nomen und Verben in einem Satz in einem Baum angepasst werden, der in einem einzigen Objekt wurzelt, oder der Satz als Ganzes wird nicht als abgebildet betrachtet.
  • Wie oben erwähnt worden ist, ist NML das Mittel, mit dem der Anwendungsentwickler die Struktur seiner Anwendung der Inhaltsmaschine 110 beschreibt. Auf vielfältige Weise ist dies äquivalent zum Definieren einer Anwendungsprogrammschnittstelle (API) für die Anwendung, mit einer Schlüsseleigenschaft in einer Anordnung, dass der "Anwendungsprogrammierer" in diesem Fall ein Benutzer ist, der eine spezifische Sprache (z. B. Englisch) spricht. Somit ist die API sehr einfach: sie umkapselt nur diejenigen Objekte und Attribute, die ein Benutzer mit einem einzigen englischen Satz erzeugen kann, und von denen erwartet wird, dass sie die Benutzer der Anwendung kennen. Zum Beispiel würden in einem Möbelkatalog die NML Objekte beschreiben, wie z. B. einen Schreibtisch, der Attribute aufweisen kann, wie z. B. PrimitiveDeskWord (z. B. das nummerierte Objekt bestehend aus dem Wort Schreibtisch und dessen Synonymen), und PedestalType (z. B. eine zusammengesetzte Beschreibung, ob dieser Schreibtisch einen linken, einen rechten oder einen doppelten Sockel aufweist).
  • In einer Ausführungsform sieht daher eine NML-Datei einer Java-Schnittstellendatei oder einer C++.h-Datei ähnlich: Sie ist eine Beschreibung von Objekten einer Anwendung, ohne deren Implementierung. Die in der NML-Datei beschriebene Objekthierarchie ist in logischer Struktur und Funktion der Objekthierarchie des Programmierers für die Anwendung sehr ähnlich: Einige wenige zusätzliche Objekte sind typischerweise hinzugefügt, um Ziele für die Englischabbildung zu schaffen. Dieser Abschnitt befasst sich selbst mit der Rohstruktur der NML: Das Mittel, mit dem dies in einer Anwendung entwickelt wird, wird im Folgenden gezeigt.
  • Die einfachste Art, NML zu betrachten, ist, mit ihrer im Folgenden gegebenen Dokumenttypdefinition (DTB) zu beginnen.
  • Figure 00320001
  • Figure 00330001
  • Das Element NML_MODEL ist der Stamm der NML-Datei. Diese enthält eine Menge von Importierungen und eine Menge von Objekten. Das Argument DOMAIN des Elements NML_MODEL ist einfach eine Anzeige des Namens der bestimmten Domäne oder der Anwendung, die von der Anhaltsmaschine verarbeitet wird, für die Inhaltsmaschine 110.
  • Einige Elemente, die in NML verwendet werden können, werden im Folgenden beschrieben.
  • FILE
  • Das benötigte Argument FILE enthält einen Pfad der zu importierenden Datei. Eine typische NML-Anwendung enthält eine kleine Menge von Kundenobjekten und eine viel größere Menge, die aus Standardbibliotheken importiert wird. Ein klassisches Beispiel ist das Datumspaket, das gewöhnliche Datumsformulierungen erkennt: Alles von "the last week of the second quarter before last" bis "12/19/98". In einer Anordnung weist das Element IMPORT einen Compiler an, eine Bibliothek aus seinem Argument FILE zu importieren. Zum Beispiel importiert <IMPORT FILE="Utils/Date.nml"> das Datumspaket. Das Element IMPORT kann so aussehen:
    Figure 00340001
  • COMMENT
  • In einer Anordnung der vorliegenden Erfindung wird das Element COMMENT verwendet, um eine NML-Komponente (im Gegensatz zu einem allgemeinen XML-Kommentar) zu bezeichnen, und kann an das Modell als Ganzes oder an irgendein einzelnes Objekt angehängt sein. Das Element COMMENT kann so aussehen:
    <!ELEMENT COMMENT ANY>
  • OBJECT
  • Das Element OBJECT ist das Herz der NML. Es kann so aussehen:
    Figure 00350001
  • Ein OBJECT kann als ein Typ in einer Programmsprache gedacht werden. Anders als Typen in Programmiersprachen weist jedoch ein Objekt in NML keine reale Implementierung auf. Sein Zweck besteht darin, ein Ziel für die Abbildung eines Wortes, einer Phrase oder eines Satzes durch die Inhaltsmaschine 110 bereitzustellen, sowie eine Quelle für die Domänenhintergrundabbildung auf die Anwendungs-API. Somit muss es lediglich Typeninformationen bereitstellen. Dies ist der Typ, auf den die Phrase und der Satz abgebildet werden. Die Unterstruktur des Objektelements gibt die expliziten Anweisungen für die Abbildung der Phrase.
  • Es gibt acht Argumente für das Objektelement selbst. Das erste Argument NAME ist erforderlich und gibt den Namen des Objekts an. Alle Referenzen auf das Objekt, speziell diejenigen in den Elementen ATTRIBUTE, werden mittels des NAME des Objekts bewerkstelligt.
  • Das zweite Argument EXPR bezieht sich auf die Fähigkeit dieses Objekts, Ausdrücke zu bilden – Phrasen die "and", "or", ";", "/" oder "," enthalten. "Monday oder Tuesday" z. B. bildet einen Ausdruck über das Wochentagsobjekt. Solche Ausdrücke werden immer über homogene Objekte gebildet. Daher wurde z. B. " Monday or December 23" keinen Ausdruck über das Wochentagsobjekt bilden, obwohl dies ein Ausdruck über ein etwas abstrakteres Objekt bilden würde.
  • Die Argumente PRR und DML_ steuern die im Folgenden beschriebene DML-Erzeugung.
  • Das Argument SINGLETON zeigt an, dass irgendeine Instanz dieses Objekts nur ein einziges Attribut annehmen kann. Dies wird verwendet, wenn ein Objekt logisch eine abstrakte Superklasse mehrerer Objekte ist, von denen nur eines repräsentiert werden kann. Die MAX-Attributdeklaration (siehe unten) ist nicht angemessen zum Steuern dieses Falls, da die MAX-Attributdeklaration die Anzahl der Instanzen eines einzelnen Attributobjekts steuert: dies steuert die Anzahl der Attributobjekte.
  • Das Argument ROOT zeigt an, ob eine Instanz dieses Objekts sich am Stamm eines Instanzen-NML-Baums befinden kann. Ein Objekt enthält einen optionalen Kommentar (siehe oben) und eine Menge von Attributen. Wenn OBJECT zu einem Typ in einer Programmiersprache analogisiert wird, ist ATTRIBUTE analog zu einem Element dieses Typs. Referenz wird anhand des Namens bewerkstelligt. Die Deklaration
    Figure 00360001
    zeigt an, dass das Objekt HelloWorld ein Element vom Typ (Objektnamen) Greeting aufweist. Es ist zu beachten, dass keine Unterscheidung zwischen Attributnamen, Typnamen und Elementnamen gemacht wird – alles bezieht sich einfach auf den Objektnamen des Attributs.
  • Figure 00360002
  • Wie oben erwähnt worden ist, deklariert ATTRIBUTE ein Unterobjekt oder Element eines Objekts. Somit sagt ID="Greeting", dass dieses Objekt ein Begrüßungsobjekt als Unterobjekt enthält. NML-Programmieranfänger kommentieren häufig, dass kein Unterschied zwischen dem Elementnamen und dem Typ vorhanden ist, im Gegensatz zu den meisten Programmiersprachen. Um dies zu erkennen, sei die Java-Klasse Hello World betrachtet:
    Figure 00360003
  • Im Gegensatz hierzu das NML-Äquivalent
    Figure 00370001
    würde entsprechen:
    Figure 00370002
  • Um zu sehen, warum dies wahr ist, sei berücksichtigt, dass das NML-Objekt ein Ziel für die Abbildung bereitstellt, und dass Elementnamen, die sich von Typen unterscheiden, nur nützlich sind, wenn mehr als ein Objekt eines spezifischen Typs als ein Element vorhanden ist. Wenn dies in NML der Fall wäre, würde die Inhaltsmaschine 110 unfähig sein, zu wissen, welches Objekt auf welches Attribut abzubilden ist. In einer Anordnung kann dieses Problem gelöst werden, indem mehrere Attribute eines spezifischen Typs zugelassen werden, und indem man den Nachrechner deren Rollen im Satz aussortieren lässt.
  • ATTRIBUTE
  • Das Element ATTRIBUTE ist leer und hat die folgenden Argumente:
    • – ID: Dieses Argument bezieht sich auf den Objektnamen des Attributs und muss vorhanden sein. Wenn der Name einfach ist (ein einzelnes Wort), bezieht er sich auf ein Objekt im aktuellen NML_MODEL. Wenn er qualifiziert ist, bezieht er sich auf ein Objekt aus einem importierten Modell. Somit bezieht sich z. B. ID="Date.Date" auf das Datumsobjekt des (importierten) NML_MODEL Date. In einer Anordnung müssen aus importierten Dateien referenzierte Objekte den qualifizierten Namen verwenden, auch wenn keine Konflikte vorliegen. Selbst wenn daher z. B. keine "Date"-Objekte vorhanden sind, mit der Ausnahme im NML_MODEL "Date", müssen die Attribut-IDs in irgendeiner Datei, die "Utils/Date.nml" importiert hat, das Datumsobjekt als "Date.Date" referenzieren. Qualifikationen dieser Form referenzieren letztendlich nicht die Verzeichnisstruktur: selbst wenn "Utils/Date.nml" in der IMPORT-Deklaration erscheint, würde "Date.Date" und nicht "Utils/Date.Date" die Attribut-ID des Datumsobjekts sein. Schließlich sind Qualifikationen immer einfach geschichtet: "Utils.Date.Date" ist keine gültige Attribut-ID.
    • – INFER: Dieses Argument weist die Inhaltsmaschine 110 dann, wenn es wahr ist, an, immer dann sofort dieses OBJECT zu erstellen, wenn ein Objekt des in ID benannten Typs erstellt wird. In dem Beispiel:
      Figure 00380001
      wird immer dann, wenn ein Everyone-Objekt erstellt wird, auch ein Objekt HelloWorld erzeugt, das dieses als ein Attribut enthält. Im Gegensatz hierzu zieht die Erzeugung eines Objekts Greeting nicht die Erzeugung des HelloWorld nach sich. Der Vorgabewert für INFER ist falsch.
    • – MIN: Dieses Argument zeigt die minimale Anzahl der Attribute dieser ID an, die dieses Objekt aufweisen muss. In dem Beispiel muss ein Objekt HelloWorld wenigstens ein Attribut Greeting und ein Attribut Everyone aufweisen. Die Werte von MIN können 0,1 oder 2 sein, wobei ein Vorgabewert 0 ist. Die Menge an möglichen Werten kann erweitert werden, wenn jemals Bedarf besteht. Häufig ist die minimale Kardinalität eines Objekts bekannt. Zum Beispiel muss ein Buch einen Titel aufweisen. Dies kann im Abbildungsprozess ausgenutzt werden, indem Objekte gelöscht werden, die nicht die minimale Kardinalität für ein Attribut erreichen.
    • – MAX: Dieses Argument zeigt die maximale Anzahl von Attributen dieser ID an, die dieses Objekt aufweisen muss. In dem Beispiel muss das Objekt HelloWorld wenigstens ein Attribut Greeting und ein Attribut Everyone aufweisen. Die Werte von MAX können 1, 2 oder viele sein, wobei ein Vorgabewert viele ist. Die Menge möglicher Werte kann erweitert werden, wenn jemals Bedarf besteht. Häufig ist die maximale Kardinalität eines Objekts bekannt. Zum Beispiel kann ein Buch nur einen Titel aufweisen. Dies kann im Abbildungsprozess ausgenutzt werden, in dem Objekte gelöscht werden, die die maximale Kardinalität für ein Attribut überschreiten.
  • Ein Beispiel unter Verwendung von NML ist in Anhang B gegeben.
  • 3. DML
  • Das NML-Dokument, das die Abbildungsvorrichtung 220 erzeugt hat, kann jedoch für eine einfache Verarbeitung zu schwerfällig sein. In einer Ausführungsform erzeugt der im Folgenden genauer beschriebene Abbildungsalgorithmus einen Knoten im NML-Instanzenobjekt für jede erfolgreich abgebildete Phrase. Einige dieser Phrasen weisen keine semantische Signifikanz im Satz auf. Außerdem können viele separate Formulierungen verwendet werden, um das gleiche logische Objekt zu erzeugen. Da die NML-Objekte eng an die verwendeten Formulierungen gebunden sind, werden mehrere mögliche NML-Objekte verwendet, um das gleiche logische Objekt zu bezeichnen. Eine weitere semantische Verarbeitung der NML-Instanz ist erforderlich, bevor die Ergebnisse verwendet werden können, um eine Datenbank zu belegen oder eine Suchanfrage auszulösen.
  • Es seien die NML-Modelle betrachtet, die ein Objekt "ElectricalCurrent" erkennen. Es gibt viele Möglichkeiten im Englischen, den elektrischen Strom einer Vorrichtung zu spezifizieren. Man kann auf current oder amperage zurückgreifen; man kann auf den Wert als englische Zeichenkette ("forty-five" oder "one hundred and seventy five") oder als Zahl (45 oder 175) zurückgreifen; die Einheiten implizit anhängen ("amperage 65") oder explizit ("current 65 amps"); oder an den Wert anhängen ("65A"); und dergleichen. Jede dieser Variationen ist in einem NML-Modell als ein separates Objekt erfasst; jedoch ist eine Anwendung nur von der Tatsache abhängig, dass Strom spezifiziert wird, die Einheiten spezifiziert werden und der Wert spezifiziert wird. Im Idealfall wird dies als ein XML-Element in einem Dokument erfasst:
    <CURRENT UNIT=Amp VALUE=65/>
  • Dieses Element ist ein Element einer Domänen-Auszeichnungssprache, die für elektrische Vorrichtungen entwickelt worden ist. Es wird automatisch aus einer NML-Instanz extrahiert, die einem Textfragment entspricht, das die logische Entität "65 amps" beschreibt.
  • Die Domänen-Auszeichnungssprache, die einem NML-Modell entspricht, ist im NML-Modell selbst spezifiziert mit einem spezifischen NML-Element und drei Attributdeklarationen. Diese werden hier beschrieben:
    Figure 00400001
  • Dieses Element weist den DML-Generator 230 an, immer dann eine neue DML-Instanz mit einem Stammelement zu beginnen, dessen Name das benötigte Attribut von DML_CALL ist, wenn ein NML-Element, dessen Name einem TRIGGER entspricht, in der NML-Instanz entdeckt wird. Zum Beispiel weist
    Figure 00400002
    den DML-Generator an, eine neue DML-Instanz mit dem Stammelement CURRENT immer dann zu beginnen, wenn eine Instanz entweder eines SimpleAmparageObject oder eines SimpleCurrentObject in der NML-Instanz entdeckt wird.
  • Die folgenden drei Attribute hängen an jedem NML-Objekt ENUMERATION, CALLBACK, PATTERN oder ATTRIBUTE und steuern die Erzeugung der DML-Elemente und Attribute, und (optional) setzen die Werte der DML-Attribute. Sie werden im Folgenden beschrieben.
  • DML-ELEMENT
  • Dieses Attribut erscheint optional mit einem Namen (z. B. DML_ELEMENT="Current"). Falls abwesend, wird als Name der Name des NML-Objekts, ENUMERATION, PATTERN oder CALLBACK oder die ID des NML-ATTRIBUTE angenommen. Es weist die Erzeugung eines DML-Elements des Typnamens immer dann an, wenn die entsprechende NML-Struktur in der NML-Instanz entdeckt wird. Dies weicht von DML_CALL insofern ab, als das DML-Element nicht als Stamm einer neuen DML-Struktur erzeugt wird; stattdessen wird das neue Element als Unterobjekt irgendeines umschließenden DML-Elements eingebettet. Dies wird im Folgenden genauer erläutert, wenn der DML-Algorithmus erklärt wird.
  • Beispiele:
    • <OBJECT NAME="Current"DML_ELEMENT="CURRENT"> weist die Erzeugung eines DML-Elements mit dem Namen CURRENT immer dann an, wenn ein NML-Objekt namens Current im NML-Instanzenbaum entdeckt wird. Genau die gleichen Deklarationen würden für ENUMERATION, CALLBACK oder PATTERN mit genau der gleichen Wirkung gelten.
  • Figure 00410001
  • Diese Deklaration weist die Erzeugung eines DML-Elements mit dem Namen CURRENT immer dann an, wenn ein NML-Objekt namens Current im NML-Instanzenbaum entdeckt wird. Wenn außerdem das Objekt Current ein Unterobjekt AmpDeclaration aufwies, dann wurde ein DML_ELEMENT Amperage als ein Unterelement von CURRENT erzeugt, wie im Folgenden zu sehen ist:
    Figure 00420001
  • DML-ATTRIBUT
  • Dieses Attribut erscheint optional mit einem Namen (z. B. DML_ATTRIBUTE="Current"). Falls abwesend, wird als Name der Name des NML-Objekts, ENUMERATION, PATTERN oder CALLBACK oder die ID des NML-ATTRIBUTE angenommen. Es weist die Erzeugung eines DML-Attributs des Typnamens immer dann an, wenn die entsprechende NML-Struktur in der NML-Instanz entdeckt wird. Das neue Attribut wird als ein Attribut des nächstliegenden umfassenden DML-Elements angehängt, das entweder aus einer DML_CALL- oder DML_ELEMENT-Deklaration erzeugt worden ist. Dies wird im Folgenden genauer erläutert, wenn der DML-Erzeugungsalgorithmus erklärt wird.
  • Beispiele:
    Figure 00420002
  • Der obige Code weist die Erzeugung eines DML-Attributs mit dem Namen VoltUnit immer dann an, wenn ein NML-Objekt mit dem Namen VoltWord im NML-Instanzenbaum entdeckt wird. Der Wert des Attributs, sofern nicht anders direkt durch eine DML_VALUE-Deklaration (siehe unten) spezifiziert, wird gleich dem Literal angenommen, das das Objekt VoltWord erzeugt hat, und somit erzeugt
    Figure 00430001
    das DML-Attribut und den Wert VoltUnit="gigavolt". Dies wird an das umschließende DML_ELEMENT angehängt, z. B.
  • Figure 00430002
  • Gekoppelt mit der obigen Deklaration VoltWord ergibt sich die folgende NML-Instanz und DML-Instanz für das Wort "gigavolt", wie im Folgenden gezeigt wird:
    Figure 00430003
  • DML-WERT
  • DML_VALUE ist ein optionaler Zusatz zu DML_ATTRIBUTE und erlaubt einem NML-Programmierer, den Vorgabewert, der einem Attribut von der DML-Erzeugungsprozedur zugewiesen worden ist, zu überschreiben. Dies wird meist verwendet, wenn Synonyme oder mehrere Formulierungen erscheinen können und ein normalisierter Wert gewünscht ist.
  • B. FUNKTIONALITÄT DER INHALTSMASCHINE
  • 4 ist ein Flussdiagramm, das die Funktionalität der Inhaltsmaschine 110 gemäß einer Ausführungsform der vorliegenden Erfindung darstellt. Wie aus 4 deutlich wird, empfängt die Inhaltsmaschine 110 die Eingabe 410 und wandelt diese in Token um. Der Analysator 210 erzeugt anschließend 420 alle Syntaxbäume, die auf der in Token umgesetzte Eingabe und der Grammatik aus dem Grammatikspeicher 170 beruhen. Anschließend erzeugt 430 die Abbildungsvorrichtung 220 für jeden Syntaxbaum einen Instanzenbaum auf der Grundlage der anwendungsdomänenspezifischen NML, die vom NML-Modellmodul 140 bereitgestellt wird. Die Abbildungsvorrichtung 220 beschneidet 440 anschließend ferner die Instanzenbäume und wählt 450 anschließend die beste Abbildung aus. Schließlich verwendet der DML-Generator 230 diese beste Abbildung, um die angemessene DML zu erzeugen 460. Diese Schritte werden im Folgenden genauer diskutiert.
  • Die Funktionalität der Inhaltsmaschine 110, die in 4 umrissen ist, kann sowohl für die Inhaltsynthese als auch für die Beschaffung von Daten verwendet werden. Für die Inhaltssynthese kann die Eingabe, die empfangen worden ist 410, z. B. ein Katalog von Gegenständen (und deren Beschreibungen) sein, die von einem Elektronikhandel-Angebot angeboten werden. Für die Beschaffung von Daten kann die Eingabe, die empfangen worden ist 410, z. B. eine Suchanfrage von einem Benutzer sein. Im Fall der Inhaltssynthese kann die DML, die erzeugt worden ist 460, auch verwendet werden, um eine Datenbank zu belegen, während im Fall der Datenbeschaffung die DML, die erzeugt worden ist 460, verwendet werden kann, um eine Datenbank zu durchsuchen, die im Voraus belegt worden ist.
  • Die Eingabe wird von der Inhaltsmaschine 110 in Token übersetzt 410. In einer Anordnung der vorliegenden Erfindung sind Token einfach die Wörter des eingegebenen Textes. Es können jedoch manchmal mehrere Wörter als einzelne Tokens behandelt werden, z. B. die zwei oder mehr Wörter, die einen Namen bilden, wie z. B. San Francisco oder New York City. Mehrere Wörter, die ein zusammengesetztes Nomen oder andere Konzepte bilden, wie z. B. Daten, Zeiten, Zahlenmuster und dergleichen, können ebenfalls zu einem einzigen Token zusammengefasst werden.
  • 1. Syntaxanalyse
  • Sobald die Eingabe in Token übersetzt worden ist 410, erzeugt der Analysator 210 Syntaxbäume aus der in Token übersetzten Eingabe auf der Grund lage der vom Grammatikspeicher 170 erhaltenen Grammatik. In einer Ausführungsform erzeugt der Analysator 210 alle möglichen Syntaxbäume.
  • Der Analysator 210 erzeugt Syntaxbäume, die in der Form dem Syntaxbaum ähnlich sind, der (konzeptionell) von einem Compiler aus einem Pragramm erzeugt wird. Die Blätter dieses Baumes sind die Token (oder Wörter des Eingabetextes); die internen Knoten repräsentieren Phrasen und Untereinheiten des Satzes, während jeder Knoten die Untereinheit repräsentiert, die alle von diesem Knoten abstammenden Token enthält. Der Stammknoten repräsentiert den Satz selbst.
  • Um genauer zu sehen, wie dies bewerkstelligt wird, sei der mehrdeutige Satz "the boy helped the girl with the suitcase" betrachtet. Dieser Satz führt zu zwei Syntaxbäumen, die durch die Platzierung der Präpositionsphrase "with the suitcase" unterschieden werden. Im ersten Baum modifiziert die Phrase "with the suitcase" das Verb "help". Im zweiten Baum modifiziert die Phrase das Nomen "girl". 5A zeigt den ersten Baum, während 5B den zweiten Baum zeigt. In diesen Beschreibungen markieren die Kästen die erkannten Grammatiksymbole, wie z. B. "SVO" (für Subjekt-Verb-Objekt), "NP" (Nomenphrase) und dergleichen. Die erzeugenden Token befinden sich unterhalb der Kästen der untersten Ebene in der Figur.
  • Die Betrachtung der 5A und 5B zeigt, dass die Knoten der Bäume gleich sind und nur durch die Kante in den Knoten unterschieden werden, die die Phrase "with the suitcase" repräsentiert. Im ersten Fall verläuft die Kante 510 ausgehend von dem Knoten, der die Verbphrase "helped" repräsentiert; im zweiten Fall verläuft die Kante 520 ausgehend von dem Knoten, der die Phrase "the girl" repräsentiert. Dieser Aspekt führt zu dem Schluss, dass beide Syntaxbäume in einem gerichteten azyklischen Graphen ("DAG", Directed Acyclic Graph) einer Einzelsyntaxanalyse repräsentiert werden können. Der DAG ist in 5C gezeigt. Wie aus 5C deutlich wird, enthält der DAG selbst genau die gleiche Anzahl von Knoten wie jeder der zwei Komponentensyntaxbäume, und nur eine Kante mehr als jeder der zwei Komponentensyntaxbäume.
  • Der Analysator 220 kann irgendeinen Syntaxanalysealgorithmus verwenden.
  • In einer Anordnung kann der Syntaxanalysealgorithmus von Cocke-Younger-Kasami verwendet werden. Einzelheiten des Cocke-Younger-Kasami-Algorithmus sind zu finden in Introduction to Formal Language Theory, Harrison, M. A., Addison-Wesley, 1978. Ein Beispiel des Cocke-Younger-Kasami-Algorithmus ist unten in Tabelle 12A-E gezeigt. Während der im Folgenden gezeigte Algorithmus eine einzige Syntaxanalyse eines Satzes bietet, kann er modifiziert werden, um alle Syntaxanalysen des Satzes zu erzeugen.
  • Der Kern dieses Algorithmus ist eine (n+1)×(n+1)-Tabelle, wobei "n" die Anzahl der Token in der Syntaxanalyse ist. Die Token werden hier mit a0 ... an-1 bezeichnet, während die Tabellenelemente T0,0,..., Tn,n sind. Die obere Hälfte der Tabelle wird von i, i+1 bis n, n in der im Folgenden gegebenen Reihenfolge gefüllt. Die Elemente unmittelbar oberhalb der Diagonalen werden mit Grammatik-Nicht-Endelementen gefüllt, die direkt das relevante Token herleiten. Die Elemente in den übrigen Token werden wie folgt gefüllt: Ti,j = {A ⇰ BC,B ∈ Ti,k, C ∈ Tk,j, i+1 ≤ k ≤ j-1}.
  • Das Ergebnis dieser Gleichungen ist, dass bei Abschluss des Algorithmus Ti,j genau die Menge von Nicht-Endelementen enthält, die die Phrase beginnend mit ai und endend in aj herleitet. T0nj enthält dann die Menge von Nicht-Endelementen, die den gesamten Satz herleiten.
  • Figure 00460001
  • Aus dem obigen Pseudocode wird deutlich, dass die Größenordnung der von diesem Syntaxanalysealgorithmus beanspruchten Zeitspanne proportional zu PN3 ist, wobei N die Anzahl der Wörter im Satz ist und P die Anzahl der eindeutigen Syntaxanalysen ist. Der Algorithmus ist auf die Kette aabb unter Vorgabe der Grammatik 3 laufend gezeigt.
    S ⇒ AB
    S ⇒ PB
    P ⇒ AS
    A ⇒ a
    B ⇒ b.
  • Die anfängliche Matrix ist im Folgenden gezeigt
  • Figure 00470001
  • Nach der ersten Iteration der Schleife mit der Schleifenvariablen d ist die Matrix:
    Figure 00470002
  • Nach der letzten Iteration ist die Matrix:
    Figure 00480001
  • Der Stamm des Syntaxbaumes ist im Element T[0][4] enthalten – mit anderen Worten, in der Zelle in der oberen rechten Ecke der Matrix. Zu diesem Zeitpunkt endet der Syntaxanalysealgorithmus und die korrekten Syntaxanalysen werden aus der oberen rechten Ecke der Matrix gelesen.
  • 2. Abbildung
  • Wie oben beschrieben worden ist, erzeugt 430 die Abbildungsvorrichtung 220 Bäume für jeden Syntaxbaum auf der Grundlage der vom NML-Modul 140 bereitgestellten anwendungsspezifischen NML. In einer Ausführungsform beschneidet 440 die Abbildungsvorrichtung 230 anschließend diese Instanzenbäume, um ungültige und/oder unvollständige Bäume zu verwerfen. Die Abbildungsvorrichtung wählt 450 anschließend die beste Abbildung aus. Jeder dieser Schritte wird im Folgenden genauer diskutiert.
  • Ein Objekt im Instanzenbaum wird als einen Knoten des Syntaxbaumes abdeckend bezeichnet (äquivalent wird ein Knoten als auf ein Objekt "abbildend" bezeichnet), wenn die Abbildungsvorrichtung 220 das Objekt mittels der im Folgenden erläuternden Regeln auf den Knoten abgleicht. Das Ziel des Abbildungsalgorithmus ist, ein einzelnes Objekt auf den Stammknoten des Baumes abzubilden. Wenn in einer Anordnung eine einzelne NML-Instanz nicht für einen Satz erhalten werden kann, schaltet das System auf einen weiteren Abbildungsmechanismus um, der versucht, die beste Menge an disjunkten NML-Instanzen zu erhalten, die den gesamten Satz abdecken. Es gibt mehrere verschiedene Verfahren, um eine teilweise Abbildung eines Satzes durchzuführen.
  • a) Erzeugung von Instanzenbäumen
  • In einer Anordnung werden Instanzenbäume erzeugt durch Ausgehen von den Blatt-Knoten (oder Endelement-Knoten) eines Syntaxbaumes. Kurz, ein Endknoten wird für jedes Token erzeugt. Bei jedem Endknoten eines Syntaxbaumes werden alle aufgezählten Objekte durch das Endwort indiziert. Ein Herleitungsprozess wird anschließend ausgeführt, um die hergeleiteten Objekte zu erzeugen. Der Algorithmus bewegt sich anschließend den Syntaxbaum nach oben, wobei er ein neues Objekt an jedem Stammknoten erzeugt durch Zusammensetzen der Objekte der Nachkommenknoten bei den Knoten. Bei jedem Knoten befindet sich ein Nachkommenknoten, der als Hauptnachkomme des Knotens vorausbestimmt ist. Der Hauptnachkomme entspricht dem grammatikalischen Objekt, das die zentrale Rolle in der vom Knoten repräsentierten grammatikalischen Struktur bildet. Für eine Nomenphrase ist dies das Hauptnomen, für eine Präpositionsphrase ist dies das Präpositionskomplement, und dergleichen.
  • Objekte können auf verschiedene Weisen erzeugt werden. Insbesondere können Objekte durch Aufzählung von Identifizierern, Aufzählung von Rückfragen und Aufzählung von Mustern erzeugt werden. Außerdem können Objekte auch aus anderen Objekten hergeleitet werden. Jede von diesen Möglichkeiten wird der Reihe nach betrachtet.
  • – Aufzählung von Identifizierern:
  • Eine Aufzählung ist ein Objekt, das durch die Anwesenheit eines einzelnen Wortes oder einer Phrase erzeugt wird.
  • Figure 00490001
  • In einem unten gezeigten Beispiel wird die Aufzählung "Greeting" erzeugt, wenn das Wort "hello" entdeckt wird, aufgrund des Codeschnipsels:
    Figure 00500001
  • Es ist wichtig, zu beachten, dass eine Aufzählung in jedem Fall identisch mit einem Objekt ist, mit Ausnahme der Tatsache, dass ein Objekt immer von einem existierenden Attribut abgeleitet wird und eine Aufzählung von einem Wort oder einer Phrase abgeleitet wird.
  • Das Element IDENTIFIER erkennt ein einzelnes Wort, das die Erzeugung des Objekts erzwingt. Das spezifische Wort ist im Argument LITERAL gegeben.
  • Figure 00500002
  • Das Element IDENTIFIER hat keine Unterstruktur und kann die folgenden unten aufgelisteten Argumente annehmen:
    LITERAL: Dieses Argument liefert die literale Kette, die auf das Objekt abbildet. Im Allgemeinen sollte nur der Stamm eines spezifischen Verbs oder Nomens im Literalargument erscheinen; die Inhaltsmaschine erkennt Zeitformen, Deklinationen und alle abgeleiteten Formen von Verben und Nomen und bildet diese ab. Zum Beispiel wird <IDENTIFIER LITERAL="have"> "has", "had", "having", "has had" usw. abbilden, während <IDENTIFIER LITERAL="woman"> "woman", "women's", "womanly" abbilden wird, und dergleichen. LITERAL ist das einzige benötigte Argument von IDENTIFIER und wird häufig das einzige Argument sein.
    MAP: Gelegentlich werden Synonyme verwendet, um ein einziges Objekt anzugeben, wobei die semantische Verarbeitung des Objekts unabhängig davon ist, welches Synonym verwendet wird. Ein gutes Beispiel ist "stock" und "security". In diesem Fall kann der nachgestellte Code vereinfacht werden, wenn die Synonyme auf einen einzigen kanonischen Fall reduziert werden. MAP tut dies. Wenn MAP erscheint, dann wird das erkannte Literal auf die Kette abgebildet, die als ein Argument für MAP gegeben ist. Der Vorgabewert für MAP ist der Wert des Arguments LITERAL.
    TYPE: Dies beschränkt die Abbildung auf den bestimmten Teil der Sprache, der als Argument gegeben ist. Häufig können Wörter mehrere unterschiedliche Teile von Sprache annehmen. Zum Beispiel ist das Wort "green" ein Nomen (das ein Stück grünes Land oder eine Farbe bezeichnet), ein Adjektiv oder ein Verb. Es ist häufig erwünscht, einen IDENTIFIER auf nur eine dieser Rollen zu beschränken. Wenn Verb als Wert von TYPE gegeben ist, dann werden nur Verben auf diesen bestimmten Identifizierer abgebildet. Der Vorgabewert ANY bildet einen beliebigen Teil der Sprache auf diesen IDENTIFIER ab.
  • – Aufzählung von Rückfragen:
  • Eine weitere Möglichkeit, wie Objekte erzeugt werden können, ist diejenige von Rückfragen. Das Element CALLBACK (Rückfrage) funktioniert in einer Weise ähnlich der Aufzählung: Es ist ein Mittel zum Abbilden individueller Token in einem Satz auf Objekte. Es ist für den spezifischen Fall entwickelt, wo die Menge von Identifizierern für ein bestimmtes Objekt sehr groß ist, sich dynamisch ändert, oder beides.
  • Figure 00510001
  • Ein gutes Beispiel einer solchen Situation ist die Menge von Aktiensymbolen, die in Tausendern gezählt werden und die sich aufgrund von IPOs, Fusionen und Namens- und Symboländerungen täglich ändern. Für solche Mengen ist die Verwendung von Identifizierern unhandlich: Die NML-Datei würde sehr groß werden und wäre in einem Zustand ständiger Aktualisierung. Eine bessere Lösung ist, eine relationale Standarddatenbank zu verwenden und diese aufzurufen, um ein Aktiensymbol zu erkennen. Das besondere Beispiel für Aktiensymbole ist:
    Figure 00520001
  • Formal definiert das Element CALLBACK eine Java-Klasse, die wenigstens zwei Verfahren enthält: ein Verfahren, das eine Kette annimmt und einen logischen Ausdruck zurückgibt (dies ist im Argument PARSER benannt), und ein Verfahren, das eine Kette annimmt und eine weitere Kette zurückgibt (dies ist im Argument MAPPER benannt). Obwohl dies spezifisch mit Blick auf eine SQL-Schnittstelle entwickelt worden ist, besteht keine Einschränkung im Code hierfür: jede beliebige Java-Klasse mit dem geeigneten Verfahren bewerkstelligt dies.
  • In einer Anordnung braucht das Element CALLBACK keine Struktur aufweisen, und weist die folgenden Argumente auf, die alle erforderlich sind:
    CLASS: Dies ist der Name der vollständig qualifizierten Java-Klasse, die die zwei obenerwähnten Verfahren enthält. Die Inhaltsmaschine ruft das Verfahren <CLASS>.<PARSER>(token) auf; um das Token zu erkennen und <CLASS>.<MAPPER>(token); (im obigen Beispiel "ecCallback.CompanyFundIndexNameDatabase.isCompanyFundIndexName(token);" für die Erkennung, und "ecCallback.CompanyFundIndexNameDatabase.findCompanyFundIndexSymbol(tok en);" für die Abbildung). Die CLASS muss daher für die Inhaltsmaschine aus der Kette zugänglich sein, wie hier unter Verwendung der Standard-Java-Klassenladerverfahren gegeben ist.
    PARSER: Dies ist der Name des Verfahrens innerhalb der CLASS, das zur Durchführung der Erkennung aufgerufen wird: Es sollte ein einzelnes Kettenargument annehmen und einen logischen Ausdruck zurückgeben. Dies funktioniert genau wie das Argument LITERAL für IDENTIFIER; die Inhaltsmaschine leitet die Stammform des Token, nicht das Token selbst, zum Analysator weiter. Somit liefert das Wort "Microsoft's", das in einem Satz erscheint, den Aufruf "ecCallback.CompanyFundIndexNameDatabase.isCompanyFundIndexName(microsoft)". Wenn dies wahr zurückliefert, ist das Verhalten des Compilers exakt identisch mit demjenigen, das erzeugt wird, wenn "microsoft" in einer Liste von Identifizieren für dieses Objekt erschienen wäre.
    MAPPER: Dies ist der Name des Verfahrens innerhalb CLASS, das aufgerufen wird, um erkannte Token auf eine kanonische Form abzubilden. Es sollte eine Kette annehmen und eine Kette zurückgeben. Dies funktioniert genau wie das Argument MAP für IDENTIFIER. Wie bei PARSER leitet die Inhaltsmaschine die Stammform des Token, nicht das Token selbst, an die Abbildungsvorrichtung weiter. Um das Vorgabeverhalten von IDENTIFIER zu erhalten, sollte MAPPER einfach sein Argument zurückgeben. Ein reichhaltiges Beispiel ist das Zitierte: ecCallback.CompanyFundIndexNameDatabase.isCompanyFundIndexSymbol gibt das Symbol zurück, das dem Namen zugeordnet ist. Somit gibt z. B. ecCallback.CompanyFundIndexNameDatabase.findCompanyFundIndexSymbol(microsoft) "msft" zurück, ebenso wie ecCallback.CompanyFundIndexNameDatabase.findCompanyFundIndexSymbol(msft).
  • In einer alternativen Anordnung kann CALLBACK 520 vereinfacht werden, wenn die Inhaltsmaschine 110 ein schnittstellen-basiertes Protokoll für seine Rückfragen annimmt. In diesem Fall verschwinden die Argumente PARSER und MAPPER für CALLBACK, wobei die CALLBACK CLASS benötigt wird, um das Rückfrageprotokoll der Inhaltsmaschine 110 zu implementieren.
  • - Aufzählung von Mustern
  • Ein Muster ist das dritte logische Äquivalent zu einer Aufzählung. Dies wird verwendet, wenn eine große Anzahl von Identifizieren durch einen regelmäßigen Ausdruck spezifiziert werden kann. Eine volle Beschreibung regelmäßiger Ausdrucke (formal regelmäßige Sprachen) ist zu finden in Introduction to Automata and Language Theory, Aho, Hopcroft und Ullman, Addison-Wesley, 1978. Das einfachste Beispiel eines regelmäßigen Ausdrucks ist eine Sozialversicherungsnummer, die durch den regelmäßigen Ausdruck ausgedruckt wird:
    [1-9][0-9][0-9]-?[0-9][0-9]-?[0-9][0-9][0-9][0-9]
    was anzeigt, dass eine Sozialversicherungsnummer eine beliebige Kette ist, die mit einer Ziffer zwischen 1 und 9 beginnt, gefolgt von zwei Ziffern zwischen 0 und 9, einem optionalen Bindestrich, zwei Ziffern zwischen 0 und 9 und einem optionalen Bindestrich, und anschließend vier Ziffern zwischen 0 und 9.
  • In einer Anordnung akzeptiert die Inhaltsmaschine 110 irgendwelche regelmäßigen Ausdrücke, die durch den PERL5-Compiler spezifiziert sind (siehe http://www.perldoc.com/perl5.6/pod/perlre.html für die aktuelle Spezifikation). Die regelmäßigen Ausdrücke werden im STR-Argument des enthaltenen Elements REGEXP erfasst. Gelegentlich ist es nützlich, mehrfache regelmäßige Ausdrücke im gleichen Muster zu spezifizieren, welche durch ein optionales SEP-Zeichen (Leerzeichen als Vorgabe) getrennt sind.
  • Figure 00550001
  • – Herleitung:
  • Abgesehen von den oben diskutierten Aufzählungstechniken ist eine weitere Möglichkeit, wie ein Instanzobjekt erzeugt werden kann, die Herleitung. Herleitung ist, wenn die Anwesenheit eines Modifikators die Existenz eines Objekts implizieren kann, auch wenn das Objekt nicht explizit identifiziert ist. Dies kann durch Ellipse stattfinden, oder häufiger, da das zugrundeliegende Objekt abstrakt ist und nicht immer (oder vielleicht niemals) explizit identifiziert wird.
  • Es sei z. B. das generische Objekt "Weather" betrachtet, das die Attribute "Temperature", "Precipitation", "Outlook" und "Location" aufweist. Obwohl ein solches Objekt explizit identifiziert sein kann (wie z. B. durch das Schlüsselwort "weather"), ist es dies häufig nicht, wie bei der Frage "What is the temperature in San Francisco?". In diesem Fall ist die Anfrage für das Objekt "Weather" aus der Anfrage für dessen Attribut "Temperature" abgeleitet.
  • Nicht alle Attribute leiten das Vorhandensein eines modifizierten Objekts her. Im obigen Beispiel ist die Stadt San Franzisko ein "Location" für "Weather", leitet jedoch nicht ein Objekt "Weather" her. "Temperature" tut dies jedoch.
  • Ein Entwickler deklariert, das ein bestimmtes Attribut die Existenz des Objekts herleitet. In der Abbildung werden hergeleitete Objekte unmittelbar zusammen mit dem herleitendem Attribut erzeugt, zusammen mit einem "Hergleitet"-Kennzeichen.
  • In einer Anordnung der vorliegenden Erfindung bezieht sich die Herleitung auf die Typherleitung in einer objektorientierten Sprache in einer tiefen und nicht-offensichtlichen Weise. Wenn im allgemeinen ein Typ A eine Unterklasse eines Typs B in einer objektorientierten Sprache ist, dann stützt sich die Instanz von A innerhalb derselben auf eine Instanz von B. Besser ausgedrückt, man kann sich A als B mit zusätzlichen Eigenschaften denken. Somit erzwingt die Erzeugung einer Instanz von A die Erzeugung einer Instanz von B. In einem gewissen Sinn ist dann die Deklaration eines Untertyps in einem Programm eine Deklaration eines herleitenden Attributs.
  • In einer alternativen Anordnung kann das herleitende Attribut direkt das Objekt herleiten, statt das herleitende Attribut in eine Untertypdeklaration einzubetten. In dieser Anordnung kann das Attribut direkt erkannt werden, wobei das hergeleitete Objekt direkt daraus erstellt werden kann.
  • Wie oben diskutiert worden ist, ist das Element INFER ein Argument eines Attributs, dass dann, wenn es wahr ist, die Inhaltsmaschine 110 anweist, sofort das Objekt zu erstellen, immer dann, wenn ein Objekt des in ID bezeichneten Typs erstellt wird. In dem Beispiel:
    Figure 00560001
    wird immer dann, wenn ein Objekt Everyone erstellt wird, häufig ein Objekt HelloWorld, das dieses als Attribut enthält, erstellt. Der Vorgabewert für INFER ist falsch.
  • Wenn die Objekte erzeugt werden, muss der "Hantierer" des Instanzenbaumes angepasst werden. Es kann nützlich sein, hier eine gewisse Terminolo gie zu definieren. Wenn eine englische Phrase oder ein Satz analysiert wird, gibt es immer ein dominantes Element. Im Fall eines Subjekt-Verb-Objekt-Satzes ist z. B. das dominante Element die Verbphrase; im Fall einer Nomenphrase ist es das Hauptnomen; im Fall einer Adjektivphrase ist es das Adjektiv. Dieses Element wird als Hauptwort oder Hauptphrase der Phrase bezeichnet.
  • Wenn die Abbildungsvorrichtung 220 fortschreitet, erzeugt sie Bäume von Objekten, die auf Knoten des Syntaxbaumes zentriert sind. Ein solcher Baum von Objekten, der auf einen Knoten des Syntaxbaumes zentriert ist, wird als eine Abbildung des Knotens bezeichnet. Die Verknüpfung zwischen einem Baum von Objekten und dem Syntaxbaum ist ein einzelnes Objekt innerhalb der Abbildung, als Hantierer der Abbildung bezeichnet. Der Hantierer der Abbildung kann als Stamm der Abbildung der Hauptphrase des abgebildeten Knotens im Syntaxbaum gedacht werden. Seine Rolle (und wie sich der Hantierer während des Abbildungsprozesses bewegt) wird im Folgenden erläutert.
  • Es besteht eine grundsätzliche Äquivalenz zwischen dem Objektattributbaum in einem Programm und der Modifikatorhierarchie in einem Syntaxbaum eines Satzes. Bei der Syntaxanalyse eines Satzes sind verschiedene Wörter die Anker ihrer Phrasen. Zum Beispiel ist in irgendeiner Nomenphrase das Nomen der Anker. Die anderen Unterphrasen sind die Modifizierter. Der Anker der Phrase definiert das Objekt im Komponentenbaum; die Modifikatoren sind Attribute des Objekts. Wenn ein Objekt Girl mit dem Identifizierer "girl" und dem Attribut Carrying mit dem Identifizierer "with" deklariert worden sind, dann würde der Satz "the boy helped the girl with the Suitcase" sein Objekt auf eine Komponente Girl mit dem Attribut Carrying abbilden. Wenn jedoch Girl kein Attribut Carrying hat, dann würde das Objekt auf eine Komponente Girl abgebildet.
  • Die einfachste Möglichkeit, zu sehen, wie ein Objekt durch Akkumulieren von Attributen wächst, ist, sich zwei Objekte des gleichen Typs vorzustellen, die durch Vereinigung ihrer Attribute in ein einzelnes Objekt zusammengefügt werden. Es sei das folgende Schnipsel aus dem Programm Hello World betrachtet:
    Figure 00580001
  • In diesem Fall erzeugen sowohl das Objekt Greeting als auch das Objekt Everyone ein Objekt HelloWorld durch den Herleitungsmechanismus. Diese beiden Objekte HelloWorld weisen ein fehlendes benötigtes Attribut auf: sobald sie zu einem einzigen Objekt vereint werden, sind die benötigten Attribute für beide vollständig.
  • Zwei Objekte, die im Satz nicht in Beziehung stehen, sollten z. B. nicht gebildet werden: sie beziehen sich auf unterschiedliche semantische Entitäten innerhalb des Satzes, sofern nicht eine bestimmte übergeordnete grammatikalische Verknüpfung zwischen diesen besteht. Es sei der Satz "hello, dolly and thanks, everyone" betrachtet. Die Objekte HelloWorld, die von dem Objekt Greeting erzeugt werden, das "hello" enthält, und das Objekt Everyone, das "everyone" enthält, sollten nicht vereint werden. Dies würde implizieren, dass eine einzige Phrase vorlag, die sowohl Greeting als auch Everyone enthält, wobei dies falsch ist. Ein zweites Verfahren, das vorstellbar ist, würde ein Objekt aufweisen, das als Attribute nur die Abbildungen von den Modifikatoren seiner Hauptphrase hinzufügt. Im Englischen enthält jedoch die semantische Analyse eines Satzes häufig Umkehrungen seiner grammatischen Struktur. Zum Beispiel ist in dem Satz "show me the price of Microsoft" das semantische Hauptobjekt "the price of Microsoft", wobei die Werbphrase "show" semantisch ein Modifikator ist. Trotzdem ist in der Syntaxanalyse die Hauptphrase "show", was durch "the price of Microsoft" modifiziert ist.
  • Die Regel, die von der Inhaltsmaschine 110 verwendet wird, ist sehr einfach. Eine Abbildung kann als ein Attribut hinzugefügt werden:
    • (1) Die Abbildung eines Modifikators von dessen Hantierer; oder
    • (2) Die Abbildung einer durch ihren Hantierer modifizierten Phrase.
  • Im Fall (1) bleibt der Hantierer unverändert. Im Fall (2) bewegt sich der Hantierer zum Attribut, so dass der Hantierer bei der Abbildung der Hauptphrase der Syntaxanalyse verbleibt. In unserem Beispiel sei somit angenommen, dass ein Aktienobjekt für die Phrase "the price of Microsoft" erzeugt worden ist. Der Hantierer dieser Abbildung ist das Aktienobjekt. "the price of Microsoft" modifizierte das Verb "show", so dass unter Regel (2) das Aktienobjekt ein Attribut Show hinzufügen kann. Wenn dies geschieht, bewegt sich der Hantierer der Abbildung zum Attribut Show des Aktienobjekts. Mit anderen Worten, der Stamm der Abbildung ist nicht mehr der Hantierer.
  • Gelegentlich ist es nützlich, den Hantierer zu zwingen, sich zum Stamm der Abbildung zu bewegen. Dies geschieht, wenn der Programmierer garantieren kann, dass keine weiteren Attribute zu dieser Abbildung von Modifikatoren der Hauptphrase hinzugefügt werden können. Ein gutes Bespiel tritt in dem Fall auf, der im vorangehenden Abschnitt betrachtet worden ist, wo klar ist, dass keine weiteren Modifikator des Verbs "show" Attribute des Stammobjekts Stock (Aktie) werden. Um dies zu erlauben, bewegt die Herleitung den Hantierer der Abbildung zum Stamm der Abbildung. Ein hergeleiteter Objekthantierer ist immer der Stamm der Abbildung.
  • Einzelheiten des Abbildungsalgorithmus
  • Weitere Einzelheiten bezüglich der Erzeugung 410 von Instanzenbäumen sind in dem in 6 gezeigten Flussdiagramm umrissen. Auf der Grundlage der vom NML-Modul 140 erhaltenen anwendungsspezifischen NML startet die Abbildungsvorrichtung 220 die Erzeugung 410 von Instanzenbäumen durch Betrachtung eines Prozessknotens 610. Die Abbildungsvorrichtung 220 bestimmt zuerst 602, ob der Knoten, dem sie betrachtet, ein Blattknoten ist. Wenn der Knoten als ein Blattknoten bestimmt wird 602, wird die Objektmatrix mit erzeugten Objekten initialisiert 604.
  • Sobald die Objektmatrix mit durch Aufzählung erzeugten Objekten initialisiert ist 604, iteriert 606-610 die Abbildungsvorrichtung 220 über alle Objekte in der Matrix. Für jedes solche bestehende Objekt werden alle Objekte, die aus den bestehenden Objekt "hergeleitet" werden können, zur Objektmatrix hinzugefügt 610. "Herleiten" ist die einzige andere Möglichkeit, wie Instanzobjekterzeugt werden können, wie oben beschrieben worden ist. Sobald bestimmt worden ist 606, dass es keine weiteren Objekte in der Matrix gibt, wird die Objektmatrix zurückgegeben 612.
  • Mit Bezug zurück auf die Bestimmung 602, ob der verarbeitete Knoten ein Blattknoten ist, wird dann, wenn der Knoten kein Blattknoten ist, die Objektmatrix leer initialisiert 614. Die Abbildungsvorrichtung 220 bestimmt 616 anschließend, ob alle Nachfolger des Knotens verarbeitet worden sind. Wenn nicht alle Knoten des Nachfolgers verarbeitet worden sind, wird der nächste Nachfolgeknoten ausgewählt 618 und verarbeitet 620. Die Abbildungen des Nachfolgeknotens werden in die Objektmatrix kopiert 622, wobei der Stamm jedes kopierten Objekts auf den Nachfolgeknoten gesetzt wird 624.
  • Wenn alle Nachkommen des Knotens verarbeitet worden sind, dann wird das Anbringen der Attribute an den Objekten durchgeführt 626-648. Jedes Objekt der Matrix wird der Reihe nach als Objekt ausgewählt, an das Attribute angefügt werden. Dieses Objekt wird als obj bezeichnet und ist mit der variablen i indiziert. Jedes Objekt der Matrix wird der Reihe nach unter Verwendung des Index j, in 630 auf Null initialisiert, ausgewählt. Das mit j indizierte Objekt wird untersucht 640, und wird fortan als obj1 bezeichnet. Das Ziel der Schritte 640-648 ist, zu bestimmen, ob obj1 als ein Attribut von obj angefügt werden kann, und das Anbringen durchzuführen, falls es möglich ist. Zuerst wird obj untersucht 642, um zu sehen, ob es als Attribut ein Objekt aufweist, dessen Name der Name von obj1 ist. Wenn dies zutrifft, dann wird der zweite Test durchgeführt 644, ob der Hantierer obj1 den Hantierer von obj modifiziert. Trifft dies zu, dann wird obj1 als Attribut von obj angehängt 646. Anschließend, oder wenn einer der Tests 642, 644 fehlschlägt, wird das nächste Element in der Matrix als obj1 ausgewählt 648.
  • Sobald die Attribute an obj angefügt worden sind, ist der letzte Schritt die Neuzuordnung des Hantierers von obj, Schritte 634-636. Der Hantierer von obj wird auf obj selbst gesetzt, wenn obj hergeleitet worden ist; falls nicht, wird der Hantierer von obj unverändert gelassen.
  • Beschneiden von Instanzenbäumen
  • Sobald in einer Ausführungsform die Instanzenbäume erzeugt worden sind 430, wird von der Abbildungsvorrichtung 220 ein Beschneiden 440 durchgeführt, um ungültige/unvollständige Instanzenbäume zu verwerfen. In einer Anordnung wird für jede Abbildung eine Liste der in die Instanz abgebildeten Token aufgezeichnet; ein Instanzenbaum für den Satz, der nicht alle Verben und Nomen abbildet, wird verworfen.
  • Ein Algorithmus, der für das Beschneiden in einer Anordnung der vorliegenden Erfindung verwendet wird, ist im Flussdiagramm in 7 dargestellt. Das Beschneiden beginnt 701 beim Stamm eines Instanzenbaumes. Eine Matrix wird als Matrix von Objekten (d. h. Komponenten des Instanzenbaumes), die dem Stamm des Syntaxanalyse-DAG zugeordnet sind, zugewiesen 702. Die Inhaltsmaschine bestimmt 704, ob irgendwelche weitere Objekte in der Matrix vorhanden sind. Solange weitere Objekte in der Matrix verbleiben, wird obj den nächsten Objekt in der Matrix zugewiesen 706. Die Inhaltsmaschine bestimmt 708 anschließend, ob obj alle Nomen und Verben im Satz abdeckt. Falls nicht, wird das Objekt aus der Matrix gelöscht 710. Wenn obj alle Nomen und Verben im Satz abdeckt, bestimmt 712 die Inhaltsmaschine, ob die Attribute MIN und MAX des Objekts erfüllt sind. Wenn sie nicht erfüllt sind, wird das Objekt aus der Matrix gelöscht 710. Wenn diese Attribute erfüllt sind, kehrt die Inhaltsmaschine zurück, um zu bestimmen 704, ob irgendwelche weiteren Objekte in der Matrix zurückgeblieben sind. Wenn solche Bestimmungen für alle Objekte in der Matrix durchgeführt worden sind, wird die Matrix zurückgegeben 714. Somit werden nur diejenigen Instanzenbäume behalten, die alle Verben und Nomen des gegebenen Satzes berücksichtigen und die die Attribute MIN und MAX erfüllen.
  • In einer weiteren Anordnung kann ein anderer Algorithmus verwendet werden, um Instanzenbäume zu verwerfen.
  • Auswählen der besten Abbildung
  • Schließlich wird der Instanzenbaum, der die beste Abbildung innerhalb der spezifizierten Domäne reflektiert, ausgewählt 450. 8 zeigt, wie die beste Abbildung in einer Ausführungsform der vorliegenden Erfindung ausgewählt wird 450. Fachleute werden erkennen, dass die "beste" Abbildung auf mehrere verschiedene Arten ausgewählt werden kann 450.
  • In der in 8 gezeigten Ausführungsform wird eine Kostenfunktion verwendet, um den Abbildungen eines Satzes eine partielle Ordnung aufzuprägen. Die Abbildungen des Satzes, die unter dieser partiellen Ordnung maximal sind, werden als die besten Abbildungen des Satzes ausgewählt und als Ergebnisse) der Abbildungsprozedur zurückgegeben.
  • Die Kostenfunktion in 8 vergleicht zwei Abbildungen (Abbildung A und Abbildung B) und gibt die zurück, die die überlegene Abbildung ist. Sie umfasst eine Menge von acht Vergleichen 810-880, die der Reihe nach durchgeführt werden. Der k-te Vergleich in der Sequenz wird nur verwendet, wenn die vorangehenden k-1 Vergleiche unentschieden ausgegangen sind; somit ist dies eine Hierarchie von Unentschieden-Brechern. Diese sind der Reihe nach:
    • 810: wenn die Anzahl der von den zwei Abbildungen abgedeckten Token nicht identisch ist, ist die überlegene Abbildung die Abbildung, die die meisten Token abdeckt. Der Grund hierfür ist einfach: eine bessere Abbildung deckt mehr Token ab.
    • 820: wenn #1 keine bessere Abbildung anzeigt, wird die Abbildung ausgewählt, dessen oberste Ausdruck (Abbildungen, die durch die Wörter "and" oder "or" oder das Interpunktionssymbol "," verknüpft sind) am weitesten vom Stamm der Abbildung entfernt ist. Der Grund hierfür ist, dass eine Konjunktion zwei Phrasen beliebiger Größe verknüpfen kann. Es sei z. B. die Phrase "red feather and gold sheath pen" betrachtet. Diese Phrase ist mehrdeutig. Sie kann sich entweder auf zwei Objekte beziehen (eine rote Feder und einen goldenen Hülsenstift) oder auf ein einzelnes Objekt (einen Stift mit einer roten Feder und mit einer goldenen Hülse). Die zwei Abbildungen würden unterschiedlich sein – die erste Zwei-Objekt-Abbildung hat ihren Ausdruck am Stamm; die zweite, eine Ebene darunter, verknüpft Attribute eines einzelnen Objekts. Diese Regel löst bevorzugt bindende Phrasen auf der niedrigeren der möglichen Ebenen auf, d. h. die Verbindung der kleineren möglichen Einheiten. In diesem Beispiel wird die zweite Abbildung (Stift mit einer roten Feder und einer goldenen Hülse) gegenüber der ersten bevorzugt. Wenn eine Abbildung keine Ausdrücke aufweist, wird der Abstand eines Ausdrucks vom Stamm als unbegrenzt angenommen.
    • 830: wenn die Abbildungen unter den Kriterien #1 und #2 gleich sind, wird die Abbildung mit dem geringsten Abstand zwischen den Token ausgewählt. In einem Textfragment mit n Token werden den Token Indizes zugewiesen. Das am weitesten links befindliche Token wird mit dem Index 0 bezeichnet, während das Token unmittelbar rechts des Tokens mit dem Index i mit dem Index i+1 bezeichnet wird. Diese Regel wählt die Abbildung der kleinsten Differenz im Index zwischen dem am weitesten links und dem am weitesten rechts befindlichen Token, die von der Abbildung abgedeckt werden, aus. Somit würde z. B. bei Vorgabe der Phrase "red felt pen tip" mit den Indizes red=0, felt=1, pen=2, tip=3 und der Abbildung A, die "red felt tip" abdeckt, und der Abbildung B, die "felt pen tip" abdeckt, die Abbildung B gewählt, da sie den geringsten Abstand zwischen ihren abgedeckten Token aufweist (3 – 1 = 2, im Vergleich zu 3 – 0 = 3). Der Grund hierfür ist, dass kompakte Abbildungen gegenüber getrennten Abbildungen bevorzugt werden.
    • 840: wenn die Abbildungen unter den Kriterien #1-#3 gleich sind, wird die Abbildung mit den wenigeren Objekten, die durch Aufzählungen erzeugt werden, ausgewählt.
    • 850: wenn die Abbildungen unter den Kriterien #1-#4 gleich sind, wird die Abbildung mit den wenigeren ungenutzten Primitiven ausgewählt – diese sind Wörter und Phrasen im Textfragment, die von der relevanten Abbildung nicht verwendet werden.
    • 860: wenn die Abbildungen unter den Kriterien #1-#5 gleich sind, wird die Abbildung mit den wenigeren Objekten, die durch Datenbanknachschlag erzeugt worden sind, ausgewählt.
    • 870: wenn die Abbildungen unter den Kriterien #1-#6 gleich sind, wird die Abbildung mit den wenigeren NML-Objekten ausgewählt.
    • 880: wenn die Abbildungen unter den Kriterien #1-#7 gleich sind, wird die Abbildung mit den wenigeren hergeleiteten Objekten ausgewählt.
  • Wenn die Abbildungen unter allen acht Kriterien gleich sind, dann sind diese unter der partiellen Ordnung unvergleichbar (und somit gleich), und werden als gleichermaßen gültige Abbildungen betrachtet.
  • Die verschiedenen Kriterien der in 8 dargestellten Kostenfunktion brechen in drei verschiedene Gruppen auf. Die erste Gruppe, die Regeln 1-2 und 5 umfassend, beruht auf der Struktur des Satzes. Abbildungen, die die meisten Token verwenden, die in einer kompakten Gruppe enthalten sind, werden gegenüber Abbildungen bevorzugt, die weniger Token verwenden, die über das Textsegment weiter verteilt sind. Regel 3, wie oben erwähnt ist, löst Mehrdeutigkeiten bezüglich der Ausdrucksphrasen mit Bevorzugung der festest möglichen Bindung auf. Die Regeln 4 und 6-8 umfassen eine weitere Hauptgruppe und wirken zusammen, um Abbildungen zu bevorzugen, die weniger Objekte aufweisen. Gemeinsam können sie als Abbildungen mit einer geringeren Struktur gegenüber Abbildungen mit mehr erzeugter Struktur bevorzugend gelesen werden.
  • 3. DML-Erzeugung
  • Wie oben diskutiert worden ist, ist die von der Abbildungsvorrichtung 220 erzeugte Datenstruktur eine Instanz der im NML-Dokument beschriebene Domäne. In einer Ausführungsform wird diese Datenstruktur anschließend verwendet, um DML zu erzeugen. Die DML-Erzeugung wird in einer Tiefe-zuerst-Weise gegenüber dem NML-Instanzenbaum bewerkstelligt. 9 ist ein Flussdiagramm, dass die Erzeugung 460 von DML zeigt.
  • Die Ausgabe der Abbildungsvorrichtung 220, wie oben beschrieben, ist ein Baum von NML-Objektinstanzen mit Aufzählungen in den Blättern (in Wirklichkeit ist sie im allgemeinen eine Sammlung solcher Bäume, da einige Abbildungen für die beste Abbildung "unentschieden" sein können). Jeder Baum wird zuerst beschnitten durch Entfernen von Knoten, die keine Gleichgestellten aufweisen. Solche Knoten können keine DML_ELEMENTS, DML_ATTRIBUTES oder DML_VALUES erzeugen. In einer Anordnung wird bei jedem Knoten im resultierenden beschnittenen NML-Instanzenbaum der folgende Algorithmus ausgeführt:
    Figure 00650001
  • Der Prozess generateDML wird bei jedem Stammknoten jedes Baumes der Reihe nach aufgerufen. Sobald er bei einem Stammknoten abgeschlossen ist, werden irgendwelche offenen DML-Elemente geschlossen und ausgegeben.
  • 4. DML, die zum Belegen von DBMSs, Beschaffen von Daten und Aufrufen von Programmen verwendet wird
  • Sobald die DML erzeugt worden ist, kann sie in einer Vielfalt verschiedener Arten verwendet werden, einschließlich dem Belegen eines Datenbanksystems, dem Beschaffen von Daten aus einem Datenbanksystem oder einem anderen Datenspeicher, oder dem Aufrufen eines Programms unter Verwendung der Parameter, die im DML-Dokument als Parameter zum Aufrufen des Programms gespeichert sind. Diese verschiedenen Anwendungen sind in den 10-12 gezeigt. In 10 wird eine Beschreibung eines "black vinyl chair" 1030 in eine strukturierte Beschreibung 1060 konvertiert. Die Be schreibung wird in die Inhaltsmaschine 1020 eingegeben, die ein DML-Dokument 1040 erzeugt. Ein DML-Verarbeitungssystem 1050 erzeugt anschließend die strukturierte Beschreibung 1060. Für Fachleute ist klar, dass die tabellarische Form 1060 für das Einsetzen in irgendein Datenbankmanagementsystem geeignet ist, einschließlich, jedoch nicht hierauf beschränkt, eines relationalen Datenbankmanagementsystems.
  • In 11 wird eine Natursprachenanfrage für einen "black vinyl chair" 1130 in eine strukturierte Anfrage 1160 konvertiert. Die Beschreibung wird in die Inhaltsmaschine 1120 eingegeben, die ein DML-Dokument 1140 erzeugt. Ein DML-Verarbeitungssystem 1150 erzeugt anschließend die strukturierte Anfrage 1160. Die strukturierte Anfrage ist hier in der Datenbankabfragesprache SQL gezeigt. Für Fachleute ist offensichtlich, dass das DML-Verarbeitungssystem 1150 eine Abfrage in irgendeiner einer Anzahl von Datenbanksprachen erzeugen kann und nicht auf SQL beschränkt ist.
  • Es ist zu beachten, dass hier das NML-Modell 1110 und das NML-Modell 1110 identisch sind: das gleiche Modell wird sowohl für die Inhaltserzeugung als auch die Inhaltsabfrage verwendet. Dies zeigt die Flexibilität und die Robustheit der vorliegenden Erfindung.
  • In 12 wird eine Natursprachenanfrage für ein Aktiendiagramm 1230 in einen Programmaufruf 1260 konvertiert. Die Beschreibung wird in die Inhaltsmaschine 1220 eingegeben, die ein DML-Dokument 1240 erzeugt. Ein DML-Verarbeitungssystem 1250 erzeugt anschließend den Programmaufruf 1260. Der Programmaufruf ist hier als eine HTTP-cgi-Anfrage gezeigt. Für Fachleute ist klar, dass das DML-Verarbeitungssystem 1250 einen Programmaufruf in irgendeiner Skript-, Web- oder API-Umgebung erzeugen kann und nicht auf HTTP-Anfragen beschränkt ist.
  • Die Konstruktion eines DML-Verarbeitungssystems, wie z. B. 1050, 1150 oder 1250, ist angebots- und anwendungsspezifisch. Die Hauptaufgabe ist das Durchlaufen des strukturierten DML-Dokuments 1040, 1140 oder 1240 und das Konvertieren dieser Informationen in die von der Anwendung oder dem Angebot benötigte Form. Das Mittel zum Konstruieren eines solchen Systems ist für Fachleute offensichtlich.
  • Wie für Fachleute klar ist, kann die Erfindung in anderen spezifischen Formen angeordnet werden. Zum Beispiel ist zu beachten, dass die verschiedenen Algorithmen erläuternd sind und Variationen leicht implementiert werden können. Zum Beispiel kann eine andere Kostenfunktion verwendet werden, um die beste Abbildung zu berechnen. In ähnlicher Weise ist die besondere Großschreibung oder Bezeichnung der Module, Protokolle, Merkmale, Attribute, Datenstrukturen oder irgendeines anderen Aspekts nicht zwingend oder bedeutend, wobei die Einrichtungen, die Ausführungsformen der Erfindung oder deren Merkmale implementieren, verschiedene Namen oder Formate aufweisen könne. Ferner kann die Funktionalität, die als durch ein einziges Modul bereitgestellt beschrieben ist, stattdessen von mehreren verschiedenen Modulen bereitgestellt werden; in ähnlicher Weise kann die von mehreren Modulen bereitgestellte Funktionalität stattdessen von weniger Modulen oder von einem einzigen Modul bereitgestellt werden. Während ferner eine software-basierte Ausführungsform beschrieben worden ist, kann die gleiche Funktionalität insgesamt oder teilweise in verschiedenen Hardwareelementen ausgeführt werden, wie z. B. in anwendungsspezifischen integrierten Schaltungen (ASICs) oder dergleichen. Die bestimmten Beispiele von NML und DML sind erläuternd und nicht einschränkend. Tatsächlich ist klar, dass die NML und DML nicht auf die Beispieldomänen und Anwendungen, die diskutiert worden sind, beschränkt sind, sondern in zahlreichen anderen Domänen und Anordnungen angewendet werden können. Anhang A BEISPIEL EINER KONTEXTFREIEN GRAMMATIK FÜR ENGLISCH
    Figure 00680001
    Figure 00690001
    Figure 00700001
    Figure 00710001
    Figure 00720001
    Figure 00730001
    Figure 00740001
    Figure 00750001
    Figure 00760001
    Figure 00770001
    Figure 00780001
    Figure 00790001
    Figure 00800001
    Figure 00810001
    Figure 00820001
    Figure 00830001
    Figure 00840001
    Figure 00850001
    Figure 00860001
    Figure 00870001
    Figure 00880001
    Figure 00890001
    Figure 00900001
    Figure 00910001
    Figure 00920001
    Figure 00930001
    Figure 00940001
    Figure 00950001
    Figure 00960001
    Figure 00970001
    Figure 00980001
  • Anhang B
  • EIN BEISPIEL UNTER VERWENDUNG VON NML
  • Ein Beispiel für die Inhaltsmaschine in Aktion wird gezeigt, die die Beschreibung "4 × 6 Recycled Spiral Bound Index Cards; White; 50/Pack" verarbeitet. Eine herausgegebene Version von NML-Dateien erscheint hier: die Vollversion erscheint in dem auf der CD enthaltenen Anhang.
  • Figure 00990001
  • Figure 01000001
  • Figure 01010001
  • Figure 01020001
  • Figure 01030001
  • Figure 01040001
  • Sobald die Maschine konfiguriert worden ist, ist sie bereit, Text zu verarbeiten, und den Satz "4 × 6 Recycled Spiral Bound Index Cards; White; 50/Pack". Das vollständige Logbuch des Durchlaufs ist in dem auf der CD enthaltenen Anhang beigefügt, der hiermit durch Literaturhinweis eingefügt ist. Die Ausgabe der Abbildungsvorrichtung ist eine Datenstruktur, die zum DML-Generator weitergeleitet wird. Die Ausgabe der Abbildungsvorrichtung wird gewöhnlich nicht in Textform erzeugt. Sie kann jedoch als ein Instanz-NML-(iNML)-Dokument dargestellt werden. Das iNML-Dokument entspre chend diesem Satz wird hier wiedergegeben:
    Figure 01050001
  • Wie aus dem Beispiel deutlich wird, beschreibt das iNML-Dokument einen Baum, von dem jeder Knoten eine Instanz eines NML-Objekts oder eine in der obigen NML-Datei definierte Aufzählung ist. Der Baum ist ziemlich wortreich; der DML-Generator bewirkt eine Reduktion des Ergebnisses auf die hier angegebene kürzere DML-Datei.
    Figure 01050002
    Figure 01060001
    Anhang C
    Figure 01070001
    Figure 01080001
    Figure 01090001
    Figure 01100001
    Figure 01110001
    Figure 01120001
    Figure 01130001
    Figure 01140001
    Figure 01150001
    Figure 01160001
    Figure 01170001
    Figure 01180001
    Figure 01190001
    Figure 01200001
    Figure 01210001
    Figure 01220001
    Figure 01230001
    Figure 01240001
    Figure 01250001
    Figure 01260001
    Figure 01270001
    Figure 01280001
    Figure 01290001
    Figure 01300001
    Figure 01310001
    Figure 01320001
    Figure 01330001
    Figure 01340001
    Figure 01350001
    Figure 01360001
    Figure 01370001
    Ausgabe
    Figure 01380001
    Figure 01390001
    Figure 01400001
    Figure 01410001
    Figure 01420001
    Figure 01430001
    Figure 01440001
    Figure 01450001
    Figure 01460001
    Figure 01470001
    Figure 01480001
    Figure 01490001
    Figure 01500001
    Figure 01510001
    Figure 01520001
    Figure 01530001
    Figure 01540001
    Figure 01550001
    Figure 01560001
    Figure 01570001
    Figure 01580001
    Figure 01590001
    Figure 01600001
    Figure 01610001
    Figure 01620001
    Figure 01630001
    Figure 01640001
    Figure 01650001
    Figure 01660001
    Figure 01670001
    Figure 01680001
    Figure 01690001
    Figure 01700001
    Figure 01710001
    Beispiel
    Figure 01720001
    Figure 01730001
    Figure 01740001
    Figure 01750001
    Figure 01760001
    Figure 01770001
    Figure 01780001
    Figure 01790001
    Figure 01800001
    Figure 01810001
    Figure 01820001
    Figure 01830001
    Figure 01840001
    Figure 01850001
    Figure 01860001
    Figure 01870001
    Figure 01880001
    Figure 01890001
    Figure 01900001
    Figure 01910001
    Figure 01920001
    Figure 01930001
    Figure 01940001
    Figure 01950001
    Figure 01960001
    Figure 01970001
    Figure 01980001
    Figure 01990001
    Figure 02000001
    Figure 02010001
    Figure 02020001
    Figure 02030001
    Figure 02040001
    Figure 02050001
    Grammatik
    Figure 02060001
    Figure 02070001
    Figure 02080001
    Figure 02090001
    Figure 02100001
    Figure 02110001
    Figure 02120001
    Figure 02130001
    Figure 02140001
    Figure 02150001
    Figure 02160001
    Figure 02170001
    Figure 02180001
    Figure 02190001
    Figure 02200001
    Figure 02210001
    Figure 02220001
    Figure 02230001

Claims (10)

  1. Rechnergestütztes Verfahren, umfassend: übersetzten einer Klartextbeschreibung in Tokens; Erzeugen von Syntaxbäumen aus der in Tokens übersetzten Klartextbeschreibung basierend auf Grammatik aus einem Grammatikspeicherbereich; Erzeugen eines Instanzenbaumes aus jedem Syntaxbaum basierend auf einer anwendungsdomänenspezifischen natürlichen Auszeichnungssprache, die von einem Modul für ein natürliches Auszeichnungssprachenmodell bereitgestellt wird; Verwerfen jedes ungültigen oder unvollständigen Instanzenbaumes; Auswählen eines Instanzenbaumes aus den übriggebliebenen Instanzenbäumen, der eine beste Abbildung basierend auf einer Kostenfunktion repräsentiert, umfassend: Auswählen einer Abbildung, die die meisten Tokens verwendet; Auswählen einer Abbildung mit dem geringsten Abstand zwischen den Tokens; und Auswählen einer Abbildung, die weniger Objekte aufweist; Verarbeiten der besten Abbildung mit einem Domänen-Auszeichnungssprache-Generator, um eine strukturierte Datendarstellung zu erzeugen.
  2. Rechnergestütztes Verfahren nach Anspruch 1, ferner umfassend: Verwenden der strukturierten Datendarstellung, um eine Datenbank zu bestücken.
  3. Rechnergestütztes Verfahren nach Anspruch 1, ferner umfassend: Verwenden der strukturierten Datendarstellung, um eine Datenbank abzufragen.
  4. Rechnergestütztes Verfahren nach Anspruch 1, ferner umfassend: Verwenden der strukturierten Datendarstellung, um eine Anwendung aufzurufen.
  5. Verfahren nach Anspruch 1, bei dem alle möglichen Syntaxbäume aus dem in Tokens übersetzten Klartext erzeugt werden.
  6. Rechnergestütztes Verfahren nach Anspruch 1, ferner umfassend: Darstellen aller Syntaxbäume in einem einzigen gerichteten, azyklischen Graphen.
  7. Rechnergestütztes Verfahren nach Anspruch 1, bei dem die Grammatik aus dem Grammatikspeicherbereich kontextfrei ist.
  8. Rechnerimplementiertes System, umfassend: einen Syntaxanalysator (210), der dafür ausgelegt ist, alle Syntaxbäume aus einer in Tokens übersetzten Klartextbeschreibung basierend auf Grammatik aus einem Grammatikspeicherbereich (170) zu erzeugen; eine Abbildungseinrichtung (220), die dafür ausgelegt ist, einen Instanzenbaum aus jedem Syntaxbaum basierend auf einer anwendungsdomänenspezifischen natürlichen Auszeichnungssprache, die von einem Modul (140) für ein natürliches Auszeichnungssprachenmodell bereitgestellt wird, zu erzeugen, die Instanzenbäume zu beschneiden, und einen Instanzenbaum aus den übriggebliebenen Instanzenbäumen auszuwählen, der eine beste Abbildung basierend auf einer Kostenfunktion repräsentiert, wobei die Abbildungseinrichtung ferner dafür ausgelegt ist, eine Abbildung auszuwählen, die die meisten Tokens verwendet; eine Abbildung mit dem geringsten Abstand zwischen den Tokens auszuwählen; und eine Abbildung auszuwählen, die weniger Objekte aufweist; einen Domänen-Auszeichnungssprache-Generator (230), der dafür ausgelegt ist, die beste Abbildung zu verarbeiten, um ein Domänen-Auszeichnungssprache-Dokument zu erzeugen.
  9. Rechnerimplementiertes System nach Anspruch 8, ferner umfassend: ein Domänen-Auszeichnungssprache-Verarbeitungssystem (1050), das dafür ausgelegt ist, das Domänen-Auszeichnungssprache-Dokument zu empfangen und eine strukturierte Datendarstellung zu erzeugen.
  10. Rechnerimplementiertes System nach Anspruch 8, ferner umfassend: ein Online-Wörterbuch (120), das Wörter in einer natürlichen Sprache enthält; und ein Domänen-Wörterbuch (130), das Ausdrücke enthält, die für eine Domäne spezifisch sind.
DE60213409T 2001-01-08 2002-01-07 Erstellung von strukturierten daten aus unformatiertem text Expired - Lifetime DE60213409T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US757075 2001-01-08
US09/757,075 US6714939B2 (en) 2001-01-08 2001-01-08 Creation of structured data from plain text
PCT/US2002/000757 WO2002056196A2 (en) 2001-01-08 2002-01-07 Creation of structured data from plain text

Publications (2)

Publication Number Publication Date
DE60213409D1 DE60213409D1 (de) 2006-09-07
DE60213409T2 true DE60213409T2 (de) 2007-07-19

Family

ID=25046249

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60213409T Expired - Lifetime DE60213409T2 (de) 2001-01-08 2002-01-07 Erstellung von strukturierten daten aus unformatiertem text

Country Status (6)

Country Link
US (3) US6714939B2 (de)
EP (1) EP1399842B1 (de)
AT (1) ATE334449T1 (de)
AU (1) AU2002246981A1 (de)
DE (1) DE60213409T2 (de)
WO (1) WO2002056196A2 (de)

Families Citing this family (382)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7062456B1 (en) 1999-02-09 2006-06-13 The Chase Manhattan Bank System and method for back office processing of banking transactions using electronic files
US7451107B1 (en) * 2000-01-28 2008-11-11 Supply Chain Connect, Llc Business-to-business electronic commerce clearinghouse
US7707159B2 (en) * 2000-03-02 2010-04-27 Actuate Corporation Method and apparatus for storing semi-structured data in a structured manner
US7124144B2 (en) * 2000-03-02 2006-10-17 Actuate Corporation Method and apparatus for storing semi-structured data in a structured manner
US7152062B1 (en) 2000-11-21 2006-12-19 Actuate Corporation Technique for encapsulating a query definition
WO2002027551A2 (en) * 2000-08-01 2002-04-04 Nimble Technology, Inc. Nested conditional relations (ncr) model and algebra
US7013308B1 (en) * 2000-11-28 2006-03-14 Semscript Ltd. Knowledge storage and retrieval system and method
US6714939B2 (en) * 2001-01-08 2004-03-30 Softface, Inc. Creation of structured data from plain text
US20020156817A1 (en) * 2001-02-22 2002-10-24 Volantia, Inc. System and method for extracting information
JP2002288201A (ja) * 2001-03-23 2002-10-04 Fujitsu Ltd 質問応答処理方法,質問応答処理プログラム,質問応答処理プログラム記録媒体および質問応答処理装置
EP1246077A1 (de) * 2001-03-26 2002-10-02 LION Bioscience AG Verfahren und Gerät zum Strukturieren und zum Suchen von Sammlungen von Signalen
JP2002288602A (ja) * 2001-03-28 2002-10-04 Nec Corp Idタグを用いた解説システム
AU2002303270A1 (en) * 2001-04-04 2002-10-21 West Publishing Company System, method, and software for identifying historically related legal opinions
US7500017B2 (en) * 2001-04-19 2009-03-03 Microsoft Corporation Method and system for providing an XML binary format
US7272594B1 (en) 2001-05-31 2007-09-18 Autonomy Corporation Ltd. Method and apparatus to link to a related document
US7225126B2 (en) 2001-06-12 2007-05-29 At&T Corp. System and method for processing speech files
AUPR645701A0 (en) * 2001-07-18 2001-08-09 Tralee Investments Ltd Database adapter
US20020010715A1 (en) * 2001-07-26 2002-01-24 Garry Chinn System and method for browsing using a limited display device
US6990442B1 (en) * 2001-07-27 2006-01-24 Nortel Networks Limited Parsing with controlled tokenization
US20080300856A1 (en) * 2001-09-21 2008-12-04 Talkflow Systems, Llc System and method for structuring information
US7594172B2 (en) * 2001-10-10 2009-09-22 Fish Robert D Data storage using spreadsheet and metatags
US7013263B1 (en) 2001-10-25 2006-03-14 Mindfabric, Inc. Online interaction processing
US6859810B2 (en) * 2001-12-10 2005-02-22 Bea Systems, Inc. Declarative specification and engine for non-isomorphic data mapping
US7177799B2 (en) * 2002-01-14 2007-02-13 Microsoft Corporation Semantic analysis system for interpreting linguistic structures output by a natural language linguistic analysis system
US7295966B2 (en) * 2002-01-14 2007-11-13 Microsoft Corporation System for normalizing a discourse representation structure and normalized data structure
US20030154208A1 (en) * 2002-02-14 2003-08-14 Meddak Ltd Medical data storage system and method
AU2003233859A1 (en) * 2002-04-10 2003-10-27 Accenture Global Services Gmbh Determination of attributes based on product descriptions
US7805302B2 (en) * 2002-05-20 2010-09-28 Microsoft Corporation Applying a structured language model to information extraction
US7987246B2 (en) 2002-05-23 2011-07-26 Jpmorgan Chase Bank Method and system for client browser update
US7437664B2 (en) * 2002-06-18 2008-10-14 Microsoft Corporation Comparing hierarchically-structured documents
US7266553B1 (en) 2002-07-01 2007-09-04 Microsoft Corporation Content data indexing
US7082433B2 (en) * 2002-07-20 2006-07-25 Microsoft Corporation Translation of object queries involving inheritence
US20040103199A1 (en) * 2002-11-22 2004-05-27 Anthony Chao Method and system for client browser update from a lite cache
US20040167910A1 (en) * 2002-12-06 2004-08-26 Attensity Corporation Integrated data products of processes of integrating mixed format data
US8849648B1 (en) 2002-12-24 2014-09-30 At&T Intellectual Property Ii, L.P. System and method of extracting clauses for spoken language understanding
US8818793B1 (en) 2002-12-24 2014-08-26 At&T Intellectual Property Ii, L.P. System and method of extracting clauses for spoken language understanding
CN1512406A (zh) * 2002-12-30 2004-07-14 国际商业机器公司 面向用户的电子词典、电子词典系统及其生成方法
US7305612B2 (en) * 2003-03-31 2007-12-04 Siemens Corporate Research, Inc. Systems and methods for automatic form segmentation for raster-based passive electronic documents
US7668888B2 (en) * 2003-06-05 2010-02-23 Sap Ag Converting object structures for search engines
US7296223B2 (en) * 2003-06-27 2007-11-13 Xerox Corporation System and method for structured document authoring
US8775443B2 (en) * 2003-08-07 2014-07-08 Sap Ag Ranking of business objects for search engines
US7069278B2 (en) 2003-08-08 2006-06-27 Jpmorgan Chase Bank, N.A. System for archive integrity management and related methods
US20050050456A1 (en) * 2003-08-29 2005-03-03 Dehamer Brian James Method and apparatus for supporting XML-based service consumption in a web presentation architecture
US20050065964A1 (en) * 2003-09-19 2005-03-24 Ziemann David M. Update of a tree-based database
US20050108630A1 (en) * 2003-11-19 2005-05-19 Wasson Mark D. Extraction of facts from text
US20050149538A1 (en) * 2003-11-20 2005-07-07 Sadanand Singh Systems and methods for creating and publishing relational data bases
US7437353B2 (en) * 2003-12-31 2008-10-14 Google Inc. Systems and methods for unification of search results
US8954420B1 (en) 2003-12-31 2015-02-10 Google Inc. Methods and systems for improving a search ranking using article information
US8271651B1 (en) 2003-12-31 2012-09-18 Google Inc. Methods and systems for regulating resource usage
US7281008B1 (en) 2003-12-31 2007-10-09 Google Inc. Systems and methods for constructing a query result set
US7707573B1 (en) 2003-12-31 2010-04-27 Google Inc. Systems and methods for providing and installing software
US20050149498A1 (en) * 2003-12-31 2005-07-07 Stephen Lawrence Methods and systems for improving a search ranking using article information
US8156444B1 (en) 2003-12-31 2012-04-10 Google Inc. Systems and methods for determining a user interface attribute
US8321858B1 (en) 2003-12-31 2012-11-27 Google Inc. Systems and methods for providing software updates
US20050165599A1 (en) * 2004-01-23 2005-07-28 Dale Russell Method and apparatus for generating a translation table
US8037102B2 (en) * 2004-02-09 2011-10-11 Robert T. and Virginia T. Jenkins Manipulating sets of hierarchical data
US7958132B2 (en) * 2004-02-10 2011-06-07 Microsoft Corporation Voting based scheme for electronic document node reuse
GB2411014A (en) * 2004-02-11 2005-08-17 Autonomy Corp Ltd Automatic searching for relevant information
US8055553B1 (en) 2006-01-19 2011-11-08 Verizon Laboratories Inc. Dynamic comparison text functionality
EP1736894A4 (de) * 2004-03-30 2016-07-06 Jvc Kenwood Corp Digitalisierungs-service-handbuch-erzeugungsverfahren und erzeugungsverfahren für zusätzliche daten
US7272601B1 (en) 2004-03-31 2007-09-18 Google Inc. Systems and methods for associating a keyword with a user interface area
US20050223027A1 (en) * 2004-03-31 2005-10-06 Lawrence Stephen R Methods and systems for structuring event data in a database for location and retrieval
US7693825B2 (en) 2004-03-31 2010-04-06 Google Inc. Systems and methods for ranking implicit search results
US7664734B2 (en) * 2004-03-31 2010-02-16 Google Inc. Systems and methods for generating multiple implicit search queries
US8041713B2 (en) 2004-03-31 2011-10-18 Google Inc. Systems and methods for analyzing boilerplate
US7941439B1 (en) * 2004-03-31 2011-05-10 Google Inc. Methods and systems for information capture
US7707142B1 (en) 2004-03-31 2010-04-27 Google Inc. Methods and systems for performing an offline search
US20070276801A1 (en) * 2004-03-31 2007-11-29 Lawrence Stephen R Systems and methods for constructing and using a user profile
US8099407B2 (en) 2004-03-31 2012-01-17 Google Inc. Methods and systems for processing media files
US8275839B2 (en) 2004-03-31 2012-09-25 Google Inc. Methods and systems for processing email messages
US8631001B2 (en) 2004-03-31 2014-01-14 Google Inc. Systems and methods for weighting a search query result
US7581227B1 (en) 2004-03-31 2009-08-25 Google Inc. Systems and methods of synchronizing indexes
US7412708B1 (en) 2004-03-31 2008-08-12 Google Inc. Methods and systems for capturing information
US8346777B1 (en) 2004-03-31 2013-01-01 Google Inc. Systems and methods for selectively storing event data
US7725508B2 (en) * 2004-03-31 2010-05-25 Google Inc. Methods and systems for information capture and retrieval
US20080040315A1 (en) * 2004-03-31 2008-02-14 Auerbach David B Systems and methods for generating a user interface
US7680888B1 (en) 2004-03-31 2010-03-16 Google Inc. Methods and systems for processing instant messenger messages
US8595214B1 (en) * 2004-03-31 2013-11-26 Google Inc. Systems and methods for article location and retrieval
US7499958B1 (en) 2004-03-31 2009-03-03 Google Inc. Systems and methods of replicating all or part of a data store
US20070282797A1 (en) * 2004-03-31 2007-12-06 Niniane Wang Systems and methods for refreshing a content display
US8161053B1 (en) 2004-03-31 2012-04-17 Google Inc. Methods and systems for eliminating duplicate events
US8386728B1 (en) 2004-03-31 2013-02-26 Google Inc. Methods and systems for prioritizing a crawl
US7333976B1 (en) 2004-03-31 2008-02-19 Google Inc. Methods and systems for processing contact information
US7580568B1 (en) 2004-03-31 2009-08-25 Google Inc. Methods and systems for identifying an image as a representative image for an article
US20080059419A1 (en) * 2004-03-31 2008-03-06 David Benjamin Auerbach Systems and methods for providing search results
US9009153B2 (en) * 2004-03-31 2015-04-14 Google Inc. Systems and methods for identifying a named entity
US8631076B1 (en) 2004-03-31 2014-01-14 Google Inc. Methods and systems for associating instant messenger events
US7310633B1 (en) 2004-03-31 2007-12-18 Google Inc. Methods and systems for generating textual information
US9646107B2 (en) * 2004-05-28 2017-05-09 Robert T. and Virginia T. Jenkins as Trustee of the Jenkins Family Trust Method and/or system for simplifying tree expressions such as for query reduction
US7761439B1 (en) 2004-06-30 2010-07-20 Google Inc. Systems and methods for performing a directory search
US8131754B1 (en) 2004-06-30 2012-03-06 Google Inc. Systems and methods for determining an article association measure
US7882147B2 (en) * 2004-06-30 2011-02-01 Robert T. and Virginia T. Jenkins File location naming hierarchy
US7788274B1 (en) 2004-06-30 2010-08-31 Google Inc. Systems and methods for category-based search
US7620632B2 (en) * 2004-06-30 2009-11-17 Skyler Technology, Inc. Method and/or system for performing tree matching
US7584103B2 (en) * 2004-08-20 2009-09-01 Multimodal Technologies, Inc. Automated extraction of semantic content and generation of a structured document from speech
US20060095900A1 (en) * 2004-08-26 2006-05-04 Calpont Corporation Semantic processor for a hardware database management system
US7552420B1 (en) * 2004-09-01 2009-06-23 Intuit Inc. Externally defined application configuration
US7624009B2 (en) * 2004-09-02 2009-11-24 Hewlett-Packard Development Company, L.P. Method and system for producing variable length context models
US7853606B1 (en) 2004-09-14 2010-12-14 Google, Inc. Alternate methods of displaying search results
US8782200B2 (en) * 2004-09-14 2014-07-15 Sitespect, Inc. System and method for optimizing website visitor actions
US20060074980A1 (en) * 2004-09-29 2006-04-06 Sarkar Pte. Ltd. System for semantically disambiguating text information
US7996208B2 (en) * 2004-09-30 2011-08-09 Google Inc. Methods and systems for selecting a language for text segmentation
US7680648B2 (en) 2004-09-30 2010-03-16 Google Inc. Methods and systems for improving text segmentation
US8051096B1 (en) 2004-09-30 2011-11-01 Google Inc. Methods and systems for augmenting a token lexicon
US20060074897A1 (en) * 2004-10-04 2006-04-06 Fergusson Iain W System and method for dynamic data masking
US7801923B2 (en) * 2004-10-29 2010-09-21 Robert T. and Virginia T. Jenkins as Trustees of the Jenkins Family Trust Method and/or system for tagging trees
US7627591B2 (en) * 2004-10-29 2009-12-01 Skyler Technology, Inc. Method and/or system for manipulating tree expressions
US7970600B2 (en) * 2004-11-03 2011-06-28 Microsoft Corporation Using a first natural language parser to train a second parser
US7630995B2 (en) 2004-11-30 2009-12-08 Skyler Technology, Inc. Method and/or system for transmitting and/or receiving data
US7636727B2 (en) * 2004-12-06 2009-12-22 Skyler Technology, Inc. Enumeration of trees from finite number of nodes
US8195693B2 (en) 2004-12-16 2012-06-05 International Business Machines Corporation Automatic composition of services through semantic attribute matching
US8316059B1 (en) 2004-12-30 2012-11-20 Robert T. and Virginia T. Jenkins Enumeration of rooted partial subtrees
US8843536B1 (en) 2004-12-31 2014-09-23 Google Inc. Methods and systems for providing relevant advertisements or other content for inactive uniform resource locators using search queries
US8615530B1 (en) 2005-01-31 2013-12-24 Robert T. and Virginia T. Jenkins as Trustees for the Jenkins Family Trust Method and/or system for tree transformation
US7681177B2 (en) * 2005-02-28 2010-03-16 Skyler Technology, Inc. Method and/or system for transforming between trees and strings
US8356040B2 (en) 2005-03-31 2013-01-15 Robert T. and Virginia T. Jenkins Method and/or system for transforming between trees and arrays
US7899821B1 (en) 2005-04-29 2011-03-01 Karl Schiffmann Manipulation and/or analysis of hierarchical data
US20060253476A1 (en) * 2005-05-09 2006-11-09 Roth Mary A Technique for relationship discovery in schemas using semantic name indexing
US20060277028A1 (en) * 2005-06-01 2006-12-07 Microsoft Corporation Training a statistical parser on noisy data by filtering
EP1742152B1 (de) * 2005-07-07 2012-09-12 Texas Instruments Inc. Verfahren und System für eine mehrfach nutzbare Speicherzugangsbeschränkung
US7523077B2 (en) * 2005-07-08 2009-04-21 Sap Aktiengesellschaft Knowledge repository using configuration and document templates
WO2007009168A1 (en) * 2005-07-15 2007-01-25 Think Software Pty Ltd Method and apparatus for providing structured data for free text messages
US8666928B2 (en) * 2005-08-01 2014-03-04 Evi Technologies Limited Knowledge repository
US8065606B1 (en) 2005-09-16 2011-11-22 Jpmorgan Chase Bank, N.A. System and method for automating document generation
US8688673B2 (en) * 2005-09-27 2014-04-01 Sarkar Pte Ltd System for communication and collaboration
AU2006308779B2 (en) * 2005-10-31 2012-03-08 Think Software Pty Ltd. Interacting with a computer-based management system
US20070157073A1 (en) * 2005-12-29 2007-07-05 International Business Machines Corporation Software weaving and merging
US9262446B1 (en) 2005-12-29 2016-02-16 Google Inc. Dynamically ranking entries in a personal data book
US20070245308A1 (en) * 2005-12-31 2007-10-18 Hill John E Flexible XML tagging
FR2896603B1 (fr) * 2006-01-20 2008-05-02 Thales Sa Procede et dispositif pour extraire des informations et les transformer en donnees qualitatives d'un document textuel
US8977953B1 (en) * 2006-01-27 2015-03-10 Linguastat, Inc. Customizing information by combining pair of annotations from at least two different documents
US7958164B2 (en) * 2006-02-16 2011-06-07 Microsoft Corporation Visual design of annotated regular expression
US7860881B2 (en) * 2006-03-09 2010-12-28 Microsoft Corporation Data parsing with annotated patterns
US7962328B2 (en) * 2006-03-13 2011-06-14 Lexikos Corporation Method and apparatus for generating a compact data structure to identify the meaning of a symbol
US7765097B1 (en) * 2006-03-20 2010-07-27 Intuit Inc. Automatic code generation via natural language processing
US8407585B2 (en) * 2006-04-19 2013-03-26 Apple Inc. Context-aware content conversion and interpretation-specific views
EP1847923A1 (de) * 2006-04-21 2007-10-24 Microsoft Corporation Übersetzung unstrukturierter Ressourcen
US20070250613A1 (en) * 2006-04-25 2007-10-25 Sbc Knowledge Ventures, L.P. Method and apparatus for configuring a workflow
US20070250505A1 (en) * 2006-04-25 2007-10-25 Sbc Knowledge Ventures, L.P. Method and apparatus for defining a workflow
US20070250822A1 (en) * 2006-04-25 2007-10-25 Sbc Knowledge Ventures, L.P. Method and apparatus for importing content in a user-defined workflow
US20070260450A1 (en) * 2006-05-05 2007-11-08 Yudong Sun Indexing parsed natural language texts for advanced search
US7970767B2 (en) 2006-06-05 2011-06-28 Accenture Global Services Limited Extraction of attributes and values from natural language documents
US7996440B2 (en) 2006-06-05 2011-08-09 Accenture Global Services Limited Extraction of attributes and values from natural language documents
US7970746B2 (en) * 2006-06-13 2011-06-28 Microsoft Corporation Declarative management framework
EP2030197A4 (de) 2006-06-22 2012-04-04 Multimodal Technologies Llc Automatische entscheidungsunterstützung
US20080016048A1 (en) * 2006-07-12 2008-01-17 Dettinger Richard D Intelligent condition pruning for size minimization of dynamic, just in time tables
US20080016047A1 (en) * 2006-07-12 2008-01-17 Dettinger Richard D System and method for creating and populating dynamic, just in time, database tables
US20080033967A1 (en) * 2006-07-18 2008-02-07 Ravi Murthy Semantic aware processing of XML documents
US20080065370A1 (en) * 2006-09-11 2008-03-13 Takashi Kimoto Support apparatus for object-oriented analysis and design
US8515733B2 (en) * 2006-10-18 2013-08-20 Calculemus B.V. Method, device, computer program and computer program product for processing linguistic data in accordance with a formalized natural language
US8037179B2 (en) * 2006-11-02 2011-10-11 Storz Endoskop Produktions Gmbh Device control system employing extensible markup language for defining information resources
US8104076B1 (en) 2006-11-13 2012-01-24 Jpmorgan Chase Bank, N.A. Application access control system
US20080154853A1 (en) * 2006-12-22 2008-06-26 International Business Machines Corporation English-language translation of exact interpretations of keyword queries
US8671341B1 (en) 2007-01-05 2014-03-11 Linguastat, Inc. Systems and methods for identifying claims associated with electronic text
US8285697B1 (en) * 2007-01-23 2012-10-09 Google Inc. Feedback enhanced attribute extraction
DE102007007830A1 (de) * 2007-02-16 2008-08-21 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Erzeugen eines Datenstroms und Vorrichtung und Verfahren zum Lesen eines Datenstroms
US7720814B2 (en) * 2007-04-04 2010-05-18 Microsoft Corporation Repopulating a database with document content
US20080250394A1 (en) * 2007-04-04 2008-10-09 Microsoft Corporation Synchronizing external documentation with code development
US7720885B2 (en) * 2007-04-04 2010-05-18 Microsoft Corporation Generating a word-processing document from database content
JP5256654B2 (ja) * 2007-06-29 2013-08-07 富士通株式会社 文章分割プログラム、文章分割装置および文章分割方法
US8260619B1 (en) 2008-08-22 2012-09-04 Convergys Cmg Utah, Inc. Method and system for creating natural language understanding grammars
US8027941B2 (en) * 2007-09-14 2011-09-27 Accenture Global Services Limited Automated classification algorithm comprising at least one input-invariant part
US8024177B2 (en) * 2007-09-28 2011-09-20 Cycorp, Inc. Method of transforming natural language expression into formal language representation
US8838659B2 (en) * 2007-10-04 2014-09-16 Amazon Technologies, Inc. Enhanced knowledge repository
US8595182B1 (en) * 2007-11-07 2013-11-26 Google Inc. Network file association
US8364469B2 (en) * 2007-11-26 2013-01-29 Red Hat, Inc. Natural language enhanced user interface in a business rule management system
US8086592B2 (en) * 2007-11-30 2011-12-27 SAP France S.A. Apparatus and method for associating unstructured text with structured data
US20090198488A1 (en) * 2008-02-05 2009-08-06 Eric Arno Vigen System and method for analyzing communications using multi-placement hierarchical structures
US8706477B1 (en) 2008-04-25 2014-04-22 Softwin Srl Romania Systems and methods for lexical correspondence linguistic knowledge base creation comprising dependency trees with procedural nodes denoting execute code
US20100088674A1 (en) * 2008-10-06 2010-04-08 Microsoft Corporation System and method for recognizing structure in text
US8849650B2 (en) 2008-10-22 2014-09-30 Sankhya Technologies Private Limited System and method for automatically generating sentences of a language
US8326809B2 (en) * 2008-10-27 2012-12-04 Sas Institute Inc. Systems and methods for defining and processing text segmentation rules
US7937386B2 (en) * 2008-12-30 2011-05-03 Complyon Inc. System, method, and apparatus for information extraction of textual documents
US20100169359A1 (en) * 2008-12-30 2010-07-01 Barrett Leslie A System, Method, and Apparatus for Information Extraction of Textual Documents
US9805089B2 (en) 2009-02-10 2017-10-31 Amazon Technologies, Inc. Local business and product search system and method
US20100211894A1 (en) * 2009-02-18 2010-08-19 Google Inc. Identifying Object Using Generative Model
US8719004B2 (en) * 2009-03-19 2014-05-06 Ditech Networks, Inc. Systems and methods for punctuating voicemail transcriptions
US8762131B1 (en) 2009-06-17 2014-06-24 Softwin Srl Romania Systems and methods for managing a complex lexicon comprising multiword expressions and multiword inflection templates
US8762130B1 (en) 2009-06-17 2014-06-24 Softwin Srl Romania Systems and methods for natural language processing including morphological analysis, lemmatizing, spell checking and grammar checking
US9189475B2 (en) * 2009-06-22 2015-11-17 Ca, Inc. Indexing mechanism (nth phrasal index) for advanced leveraging for translation
US20100325227A1 (en) * 2009-06-23 2010-12-23 Alon Novy Systems and methods for composite data message
US10013505B1 (en) * 2010-01-13 2018-07-03 The Boeing Company Method, apparatus and computer program product for identifying a target part name within a data record
US20110202398A1 (en) * 2010-02-15 2011-08-18 Sarah Photowat Personal planner with targeted advertising
US9633121B2 (en) 2010-04-19 2017-04-25 Facebook, Inc. Personalizing default search queries on online social networks
US8732036B2 (en) 2010-05-07 2014-05-20 Ariba, Inc. Supplier/buyer network that provides catalog updates
US9110882B2 (en) 2010-05-14 2015-08-18 Amazon Technologies, Inc. Extracting structured knowledge from unstructured text
US9082140B2 (en) * 2010-06-09 2015-07-14 Ebay Inc. Systems and methods to extract and utilize textual semantics
US8655901B1 (en) 2010-06-23 2014-02-18 Google Inc. Translation-based query pattern mining
US20120016661A1 (en) * 2010-07-19 2012-01-19 Eyal Pinkas System, method and device for intelligent textual conversation system
JP5431261B2 (ja) * 2010-07-23 2014-03-05 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報管理システム、方法及びプログラム
US8959102B2 (en) 2010-10-08 2015-02-17 Mmodal Ip Llc Structured searching of dynamic structured document corpuses
CN102467497B (zh) * 2010-10-29 2014-11-05 国际商业机器公司 校对程序中的文本翻译的方法和系统
US8606564B2 (en) * 2010-11-01 2013-12-10 Yahoo! Inc. Extracting rich temporal context for business entities and events
WO2012061252A2 (en) 2010-11-04 2012-05-10 Dw Associates, Llc. Methods and systems for identifying, quantifying, analyzing, and optimizing the level of engagement of components within a defined ecosystem or context
US9038177B1 (en) 2010-11-30 2015-05-19 Jpmorgan Chase Bank, N.A. Method and system for implementing multi-level data fusion
US9317595B2 (en) 2010-12-06 2016-04-19 Yahoo! Inc. Fast title/summary extraction from long descriptions
US9720899B1 (en) 2011-01-07 2017-08-01 Narrative Science, Inc. Automatic generation of narratives from data using communication goals and narrative analytics
US10657201B1 (en) 2011-01-07 2020-05-19 Narrative Science Inc. Configurable and portable system for generating narratives
US10185477B1 (en) 2013-03-15 2019-01-22 Narrative Science Inc. Method and system for configuring automatic generation of narratives from data
US8504492B2 (en) 2011-01-10 2013-08-06 Accenture Global Services Limited Identification of attributes and values using multiple classifiers
US8620836B2 (en) 2011-01-10 2013-12-31 Accenture Global Services Limited Preprocessing of text
WO2012095613A1 (fr) 2011-01-12 2012-07-19 Google Inc. Recherche de vols
US8996359B2 (en) 2011-05-18 2015-03-31 Dw Associates, Llc Taxonomy and application of language analysis and processing
US8407165B2 (en) * 2011-06-15 2013-03-26 Ceresis, Llc Method for parsing, searching and formatting of text input for visual mapping of knowledge information
US9037529B2 (en) 2011-06-15 2015-05-19 Ceresis, Llc Method for generating visual mapping of knowledge information from parsing of text inputs for subjects and predicates
US8952796B1 (en) 2011-06-28 2015-02-10 Dw Associates, Llc Enactive perception device
US8965882B1 (en) 2011-07-13 2015-02-24 Google Inc. Click or skip evaluation of synonym rules
US9292588B1 (en) 2011-07-20 2016-03-22 Jpmorgan Chase Bank, N.A. Safe storing data for disaster recovery
WO2013032621A1 (en) * 2011-08-26 2013-03-07 Franco Aaron Gerard Data infrastructure for providing interconnectivity between platforms, devices, and operating systems
US8909627B1 (en) 2011-11-30 2014-12-09 Google Inc. Fake skip evaluation of synonym rules
US9269353B1 (en) 2011-12-07 2016-02-23 Manu Rehani Methods and systems for measuring semantics in communications
US9152698B1 (en) 2012-01-03 2015-10-06 Google Inc. Substitute term identification based on over-represented terms identification
US8965875B1 (en) 2012-01-03 2015-02-24 Google Inc. Removing substitution rules based on user interactions
US8600973B1 (en) * 2012-01-03 2013-12-03 Google Inc. Removing substitution rules
US9020807B2 (en) 2012-01-18 2015-04-28 Dw Associates, Llc Format for displaying text analytics results
US9667513B1 (en) 2012-01-24 2017-05-30 Dw Associates, Llc Real-time autonomous organization
US9141672B1 (en) 2012-01-25 2015-09-22 Google Inc. Click or skip evaluation of query term optionalization rule
US8935277B2 (en) * 2012-03-30 2015-01-13 Sap Se Context-aware question answering system
US8959103B1 (en) 2012-05-25 2015-02-17 Google Inc. Click or skip evaluation of reordering rules
US20130339399A1 (en) * 2012-06-18 2013-12-19 Dexter A. Dorris Dynamic Schema
US9104720B2 (en) * 2012-06-28 2015-08-11 International Business Machines Corporation Generation of technical description of report from functional description of report
US10810368B2 (en) * 2012-07-10 2020-10-20 Robert D. New Method for parsing natural language text with constituent construction links
US9720903B2 (en) * 2012-07-10 2017-08-01 Robert D. New Method for parsing natural language text with simple links
US8935255B2 (en) 2012-07-27 2015-01-13 Facebook, Inc. Social static ranking for search
US20140059051A1 (en) * 2012-08-22 2014-02-27 Mark William Graves, Jr. Apparatus and system for an integrated research library
US8965820B2 (en) 2012-09-04 2015-02-24 Sap Se Multivariate transaction classification
US9323767B2 (en) 2012-10-01 2016-04-26 Longsand Limited Performance and scalability in an intelligent data operating layer system
US9146966B1 (en) 2012-10-04 2015-09-29 Google Inc. Click or skip evaluation of proximity rules
US9430571B1 (en) 2012-10-24 2016-08-30 Google Inc. Generating travel queries in response to free text queries
US9105068B2 (en) 2012-11-12 2015-08-11 Facebook, Inc. Grammar model for structured search queries
US9201936B2 (en) * 2012-11-13 2015-12-01 International Business Machines Corporation Rapid provisioning of information for business analytics
US9286280B2 (en) 2012-12-10 2016-03-15 International Business Machines Corporation Utilizing classification and text analytics for optimizing processes in documents
US10430506B2 (en) 2012-12-10 2019-10-01 International Business Machines Corporation Utilizing classification and text analytics for annotating documents to allow quick scanning
US9398104B2 (en) 2012-12-20 2016-07-19 Facebook, Inc. Ranking test framework for search results on an online social network
US9703844B2 (en) 2012-12-31 2017-07-11 Facebook, Inc. Search result snippets for structured search queries
US9367607B2 (en) 2012-12-31 2016-06-14 Facebook, Inc. Natural-language rendering of structured search queries
US9361363B2 (en) 2012-12-31 2016-06-07 Facebook, Inc. Modifying structured search queries on online social networks
DE102013003055A1 (de) * 2013-02-18 2014-08-21 Nadine Sina Kurz Verfahren und Vorrichtung zum Durchführen von Suchen in natürlicher Sprache
US9223826B2 (en) 2013-02-25 2015-12-29 Facebook, Inc. Pushing suggested search queries to mobile devices
US10540373B1 (en) 2013-03-04 2020-01-21 Jpmorgan Chase Bank, N.A. Clause library manager
US9262550B2 (en) 2013-03-15 2016-02-16 Business Objects Software Ltd. Processing semi-structured data
US9218568B2 (en) 2013-03-15 2015-12-22 Business Objects Software Ltd. Disambiguating data using contextual and historical information
US9299041B2 (en) 2013-03-15 2016-03-29 Business Objects Software Ltd. Obtaining data from unstructured data for a structured data collection
US9104780B2 (en) 2013-03-15 2015-08-11 Kamazooie Development Corporation System and method for natural language processing
US9910887B2 (en) 2013-04-25 2018-03-06 Facebook, Inc. Variable search query vertical access
US9727619B1 (en) 2013-05-02 2017-08-08 Intelligent Language, LLC Automated search
US9223898B2 (en) 2013-05-08 2015-12-29 Facebook, Inc. Filtering suggested structured queries on online social networks
US9330183B2 (en) 2013-05-08 2016-05-03 Facebook, Inc. Approximate privacy indexing for search queries on online social networks
US10776375B2 (en) 2013-07-15 2020-09-15 Microsoft Technology Licensing, Llc Retrieval of attribute values based upon identified entities
US9305322B2 (en) 2013-07-23 2016-04-05 Facebook, Inc. Native application testing
US9336300B2 (en) 2014-01-17 2016-05-10 Facebook, Inc. Client-side search templates for online social networks
WO2015120603A1 (en) 2014-02-13 2015-08-20 Sap Ag Database calculation using parallel-computation in directed acyclic graph
US9798832B1 (en) 2014-03-31 2017-10-24 Facebook, Inc. Dynamic ranking of user cards
US9794359B1 (en) 2014-03-31 2017-10-17 Facebook, Inc. Implicit contacts in an online social network
US9646055B2 (en) * 2014-04-03 2017-05-09 Facebook, Inc. Blending search results on online social networks
US9251139B2 (en) * 2014-04-08 2016-02-02 TitleFlow LLC Natural language processing for extracting conveyance graphs
US11334720B2 (en) * 2019-04-17 2022-05-17 International Business Machines Corporation Machine learned sentence span inclusion judgments
US9606985B2 (en) * 2014-06-13 2017-03-28 Nuance Communications, Inc. Structured natural language representations
US10083227B2 (en) * 2014-08-13 2018-09-25 Sap Se On-the-fly determination of search areas and queries for database searches
US10275458B2 (en) 2014-08-14 2019-04-30 International Business Machines Corporation Systematic tuning of text analytic annotators with specialized information
US10474702B1 (en) 2014-08-18 2019-11-12 Street Diligence, Inc. Computer-implemented apparatus and method for providing information concerning a financial instrument
US11144994B1 (en) 2014-08-18 2021-10-12 Street Diligence, Inc. Computer-implemented apparatus and method for providing information concerning a financial instrument
US10740412B2 (en) 2014-09-05 2020-08-11 Facebook, Inc. Pivoting search results on online social networks
US9507876B2 (en) 2014-10-06 2016-11-29 Facebook, Inc. Constructing queries using query filters on online social networks
US11922344B2 (en) 2014-10-22 2024-03-05 Narrative Science Llc Automatic generation of narratives from data using communication goals and narrative analytics
US11238090B1 (en) 2015-11-02 2022-02-01 Narrative Science Inc. Applied artificial intelligence technology for using narrative analytics to automatically generate narratives from visualization data
US10747823B1 (en) 2014-10-22 2020-08-18 Narrative Science Inc. Interactive and conversational data exploration
US11341338B1 (en) 2016-08-31 2022-05-24 Narrative Science Inc. Applied artificial intelligence technology for interactively using narrative analytics to focus and control visualizations of data
US11475076B2 (en) 2014-10-22 2022-10-18 Narrative Science Inc. Interactive and conversational data exploration
US9703870B2 (en) 2014-11-05 2017-07-11 Facebook, Inc. Social-based optimization of web crawling for online social networks
US10123846B2 (en) * 2014-11-13 2018-11-13 Intuitive Surgical Operations, Inc. User-interface control using master controller
US10409873B2 (en) 2014-11-26 2019-09-10 Facebook, Inc. Searching for content by key-authors on online social networks
US9679024B2 (en) 2014-12-01 2017-06-13 Facebook, Inc. Social-based spelling correction for online social networks
US10552759B2 (en) 2014-12-01 2020-02-04 Facebook, Inc. Iterative classifier training on online social networks
US9990441B2 (en) 2014-12-05 2018-06-05 Facebook, Inc. Suggested keywords for searching content on online social networks
US10102273B2 (en) 2014-12-30 2018-10-16 Facebook, Inc. Suggested queries for locating posts on online social networks
US9589305B2 (en) * 2014-12-30 2017-03-07 Facebook, Inc. Techniques for graph based natural language processing
US10333696B2 (en) 2015-01-12 2019-06-25 X-Prime, Inc. Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency
US10061856B2 (en) 2015-01-29 2018-08-28 Facebook, Inc. Multimedia search using reshare text on online social networks
US10997257B2 (en) 2015-02-06 2021-05-04 Facebook, Inc. Aggregating news events on online social networks
CN107430504A (zh) * 2015-04-08 2017-12-01 利斯托株式会社 数据变换系统及方法
US10049099B2 (en) 2015-04-10 2018-08-14 Facebook, Inc. Spell correction with hidden markov models on online social networks
US10095683B2 (en) 2015-04-10 2018-10-09 Facebook, Inc. Contextual speller models on online social networks
US10628636B2 (en) 2015-04-24 2020-04-21 Facebook, Inc. Live-conversation modules on online social networks
US10298535B2 (en) 2015-05-19 2019-05-21 Facebook, Inc. Civic issues platforms on online social networks
US10102275B2 (en) 2015-05-27 2018-10-16 International Business Machines Corporation User interface for a query answering system
US9678724B2 (en) * 2015-05-29 2017-06-13 Intentional Software Corporation System and method for combining text editing and tree encoding for computer programs
US10108603B2 (en) * 2015-06-01 2018-10-23 Nuance Communications, Inc. Processing natural language text with context-specific linguistic model
US10496749B2 (en) * 2015-06-12 2019-12-03 Satyanarayana Krishnamurthy Unified semantics-focused language processing and zero base knowledge building system
US10397167B2 (en) 2015-06-19 2019-08-27 Facebook, Inc. Live social modules on online social networks
US10509832B2 (en) 2015-07-13 2019-12-17 Facebook, Inc. Generating snippet modules on online social networks
US10268664B2 (en) 2015-08-25 2019-04-23 Facebook, Inc. Embedding links in user-created content on online social networks
CN107016012A (zh) * 2015-09-11 2017-08-04 谷歌公司 处理在处理自然语言查询中的故障
US10282444B2 (en) 2015-09-11 2019-05-07 Google Llc Disambiguating join paths for natural language queries
US10810217B2 (en) 2015-10-07 2020-10-20 Facebook, Inc. Optionalization and fuzzy search on online social networks
US11188588B1 (en) 2015-11-02 2021-11-30 Narrative Science Inc. Applied artificial intelligence technology for using narrative analytics to interactively generate narratives from visualization data
US11222184B1 (en) 2015-11-02 2022-01-11 Narrative Science Inc. Applied artificial intelligence technology for using narrative analytics to automatically generate narratives from bar charts
US11232268B1 (en) 2015-11-02 2022-01-25 Narrative Science Inc. Applied artificial intelligence technology for using narrative analytics to automatically generate narratives from line charts
US9602965B1 (en) 2015-11-06 2017-03-21 Facebook, Inc. Location-based place determination using online social networks
US10795936B2 (en) 2015-11-06 2020-10-06 Facebook, Inc. Suppressing entity suggestions on online social networks
US10270868B2 (en) 2015-11-06 2019-04-23 Facebook, Inc. Ranking of place-entities on online social networks
US10534814B2 (en) 2015-11-11 2020-01-14 Facebook, Inc. Generating snippets on online social networks
US10387511B2 (en) 2015-11-25 2019-08-20 Facebook, Inc. Text-to-media indexes on online social networks
US10146858B2 (en) 2015-12-11 2018-12-04 International Business Machines Corporation Discrepancy handler for document ingestion into a corpus for a cognitive computing system
US10740368B2 (en) 2015-12-29 2020-08-11 Facebook, Inc. Query-composition platforms on online social networks
US10019466B2 (en) 2016-01-11 2018-07-10 Facebook, Inc. Identification of low-quality place-entities on online social networks
US10176250B2 (en) 2016-01-12 2019-01-08 International Business Machines Corporation Automated curation of documents in a corpus for a cognitive computing system
US9842161B2 (en) * 2016-01-12 2017-12-12 International Business Machines Corporation Discrepancy curator for documents in a corpus of a cognitive computing system
US10162899B2 (en) 2016-01-15 2018-12-25 Facebook, Inc. Typeahead intent icons and snippets on online social networks
US10262039B1 (en) 2016-01-15 2019-04-16 Facebook, Inc. Proximity-based searching on online social networks
US10740375B2 (en) 2016-01-20 2020-08-11 Facebook, Inc. Generating answers to questions using information posted by users on online social networks
EP3203384A1 (de) * 2016-02-02 2017-08-09 Theo Hoffenberg Verfahren, vorrichtung und computerprogramm zur bereitstellung einer definition oder einer übersetzung eines worts, das als eine funktion von nachbarworten und von datenbanken zu einem satz gehört
US10270882B2 (en) 2016-02-03 2019-04-23 Facebook, Inc. Mentions-modules on online social networks
US10157224B2 (en) 2016-02-03 2018-12-18 Facebook, Inc. Quotations-modules on online social networks
US10216850B2 (en) 2016-02-03 2019-02-26 Facebook, Inc. Sentiment-modules on online social networks
US10242074B2 (en) 2016-02-03 2019-03-26 Facebook, Inc. Search-results interfaces for content-item-specific modules on online social networks
KR20170092409A (ko) * 2016-02-03 2017-08-11 엘지전자 주식회사 이동 단말기 및 이의 제어 방법
JP2019516274A (ja) 2016-04-11 2019-06-13 エヌチェーン ホールディングス リミテッドNchain Holdings Limited ブロックチェーンベースの暗号通貨のためのトークンを検証する、コンピュータにより実行される方法及びシステム
US10452671B2 (en) 2016-04-26 2019-10-22 Facebook, Inc. Recommendations from comments on online social networks
US10635661B2 (en) 2016-07-11 2020-04-28 Facebook, Inc. Keyboard-based corrections for search queries on online social networks
US10223464B2 (en) 2016-08-04 2019-03-05 Facebook, Inc. Suggesting filters for search on online social networks
US10282483B2 (en) 2016-08-04 2019-05-07 Facebook, Inc. Client-side caching of search keywords for online social networks
US10726022B2 (en) 2016-08-26 2020-07-28 Facebook, Inc. Classifying search queries on online social networks
US10534815B2 (en) 2016-08-30 2020-01-14 Facebook, Inc. Customized keyword query suggestions on online social networks
US10102255B2 (en) 2016-09-08 2018-10-16 Facebook, Inc. Categorizing objects for queries on online social networks
US10645142B2 (en) 2016-09-20 2020-05-05 Facebook, Inc. Video keyframes display on online social networks
US10083379B2 (en) 2016-09-27 2018-09-25 Facebook, Inc. Training image-recognition systems based on search queries on online social networks
US10026021B2 (en) 2016-09-27 2018-07-17 Facebook, Inc. Training image-recognition systems using a joint embedding model on online social networks
US10579688B2 (en) 2016-10-05 2020-03-03 Facebook, Inc. Search ranking and recommendations for online social networks based on reconstructed embeddings
US10360301B2 (en) 2016-10-10 2019-07-23 International Business Machines Corporation Personalized approach to handling hypotheticals in text
US10311117B2 (en) 2016-11-18 2019-06-04 Facebook, Inc. Entity linking to query terms on online social networks
US10650009B2 (en) 2016-11-22 2020-05-12 Facebook, Inc. Generating news headlines on online social networks
US10235469B2 (en) 2016-11-30 2019-03-19 Facebook, Inc. Searching for posts by related entities on online social networks
US10313456B2 (en) 2016-11-30 2019-06-04 Facebook, Inc. Multi-stage filtering for recommended user connections on online social networks
US10185763B2 (en) 2016-11-30 2019-01-22 Facebook, Inc. Syntactic models for parsing search queries on online social networks
US10162886B2 (en) 2016-11-30 2018-12-25 Facebook, Inc. Embedding-based parsing of search queries on online social networks
US11223699B1 (en) 2016-12-21 2022-01-11 Facebook, Inc. Multiple user recognition with voiceprints on online social networks
US10607148B1 (en) 2016-12-21 2020-03-31 Facebook, Inc. User identification with voiceprints on online social networks
US10535106B2 (en) 2016-12-28 2020-01-14 Facebook, Inc. Selecting user posts related to trending topics on online social networks
US10528665B2 (en) * 2017-01-11 2020-01-07 Satyanarayana Krishnamurthy System and method for natural language generation
US10489472B2 (en) 2017-02-13 2019-11-26 Facebook, Inc. Context-based search suggestions on online social networks
US10755053B1 (en) 2017-02-17 2020-08-25 Narrative Science Inc. Applied artificial intelligence technology for story outline formation using composable communication goals to support natural language generation (NLG)
US10614141B2 (en) 2017-03-15 2020-04-07 Facebook, Inc. Vital author snippets on online social networks
US10769222B2 (en) 2017-03-20 2020-09-08 Facebook, Inc. Search result ranking based on post classifiers on online social networks
US10592706B2 (en) 2017-03-29 2020-03-17 Valyant AI, Inc. Artificially intelligent order processing system
US11379861B2 (en) 2017-05-16 2022-07-05 Meta Platforms, Inc. Classifying post types on online social networks
US10248645B2 (en) 2017-05-30 2019-04-02 Facebook, Inc. Measuring phrase association on online social networks
US10268646B2 (en) 2017-06-06 2019-04-23 Facebook, Inc. Tensor-based deep relevance model for search on online social networks
US10540444B2 (en) 2017-06-20 2020-01-21 The Boeing Company Text mining a dataset of electronic documents to discover terms of interest
US11003796B2 (en) 2017-06-30 2021-05-11 Accenture Global Solutions Limited Artificial intelligence based document processor
US10489502B2 (en) * 2017-06-30 2019-11-26 Accenture Global Solutions Limited Document processing
US11562143B2 (en) 2017-06-30 2023-01-24 Accenture Global Solutions Limited Artificial intelligence (AI) based document processor
US11128680B2 (en) * 2017-07-21 2021-09-21 Fiduciary.ai Inc. AI mediated conference monitoring and document generation
US11494395B2 (en) 2017-07-31 2022-11-08 Splunk Inc. Creating dashboards for viewing data in a data storage system based on natural language requests
US10901811B2 (en) 2017-07-31 2021-01-26 Splunk Inc. Creating alerts associated with a data storage system based on natural language requests
US10489468B2 (en) 2017-08-22 2019-11-26 Facebook, Inc. Similarity search using progressive inner products and bounds
US10776437B2 (en) 2017-09-12 2020-09-15 Facebook, Inc. Time-window counters for search results on online social networks
US10678786B2 (en) 2017-10-09 2020-06-09 Facebook, Inc. Translating search queries on online social networks
US10810214B2 (en) 2017-11-22 2020-10-20 Facebook, Inc. Determining related query terms through query-post associations on online social networks
US10963514B2 (en) 2017-11-30 2021-03-30 Facebook, Inc. Using related mentions to enhance link probability on online social networks
US10129705B1 (en) 2017-12-11 2018-11-13 Facebook, Inc. Location prediction using wireless signals on online social networks
US11604968B2 (en) 2017-12-11 2023-03-14 Meta Platforms, Inc. Prediction of next place visits on online social networks
FI20176151A1 (en) 2017-12-22 2019-06-23 Vuolearning Ltd A heuristic method for analyzing the contents of an electronic document
US11042708B1 (en) 2018-01-02 2021-06-22 Narrative Science Inc. Context saliency-based deictic parser for natural language generation
US10963649B1 (en) 2018-01-17 2021-03-30 Narrative Science Inc. Applied artificial intelligence technology for narrative generation using an invocable analysis service and configuration-driven analytics
US11062239B2 (en) * 2018-02-17 2021-07-13 Bank Of America Corporation Structuring computer-mediated communication and determining relevant case type
US11651001B2 (en) 2018-03-14 2023-05-16 The Boeing Company Unifying terms of interest from a dataset of electronic documents
US11151631B2 (en) 2018-04-17 2021-10-19 Oracle International Corporation Quick learning recommendation method, non-transitory computer readable medium and system for baskets of goods
US11068477B1 (en) * 2018-06-06 2021-07-20 Gbt Travel Servces Uk Limited Natural language processing with pre-specified SQL queries
US11249960B2 (en) * 2018-06-11 2022-02-15 International Business Machines Corporation Transforming data for a target schema
US11042713B1 (en) 2018-06-28 2021-06-22 Narrative Scienc Inc. Applied artificial intelligence technology for using natural language processing to train a natural language generation system
US20200065825A1 (en) * 2018-08-24 2020-02-27 Capital One Services, Llc Systems and methods for customer service prediction
US10691584B2 (en) * 2018-09-28 2020-06-23 Sap Se Behavior driven development integration with test tool
US11227114B1 (en) * 2018-11-28 2022-01-18 Kensho Technologies, Llc Natural language interface with real-time feedback
US11341330B1 (en) 2019-01-28 2022-05-24 Narrative Science Inc. Applied artificial intelligence technology for adaptive natural language understanding with term discovery
US11113469B2 (en) 2019-03-27 2021-09-07 International Business Machines Corporation Natural language processing matrices
US11386902B2 (en) * 2020-04-28 2022-07-12 Bank Of America Corporation System for generation and maintenance of verified data records
EP3968149A1 (de) * 2020-09-11 2022-03-16 SemaLogic UG Erzeugung von steuerungsvorschriften aus schematisierten regelwerken
CN112231212B (zh) * 2020-10-16 2023-05-09 湖南皖湘科技有限公司 一种检测程序代码语法错误的方法
US11907311B2 (en) * 2021-03-11 2024-02-20 Jatin V. Mehta Dynamic website characterization for search optimization
US11811626B1 (en) * 2022-06-06 2023-11-07 International Business Machines Corporation Ticket knowledge graph enhancement
CN115965017B (zh) * 2023-01-04 2023-11-10 北京三维天地科技股份有限公司 一种基于开发平台的多语言录入和解析系统及方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL8900247A (nl) * 1989-02-01 1990-09-03 Bso Buro Voor Systeemontwikkel Werkwijze en stelsel voor het weergeven van meervoudige analyses in een afhankelijkheidsgrammatica, alsmede ontleed-inrichting voor het genereren van een dergelijke weergave.
US5309359A (en) 1990-08-16 1994-05-03 Boris Katz Method and apparatus for generating and utlizing annotations to facilitate computer text retrieval
US5404295A (en) 1990-08-16 1995-04-04 Katz; Boris Method and apparatus for utilizing annotations to facilitate computer retrieval of database material
US5528491A (en) * 1992-08-31 1996-06-18 Language Engineering Corporation Apparatus and method for automated natural language translation
US5680619A (en) 1995-04-03 1997-10-21 Mfactory, Inc. Hierarchical encapsulation of instantiated objects in a multimedia authoring system
US5855020A (en) 1996-02-21 1998-12-29 Infoseek Corporation Web scan process
SG49804A1 (en) * 1996-03-20 1998-06-15 Government Of Singapore Repres Parsing and translating natural language sentences automatically
US5920854A (en) 1996-08-14 1999-07-06 Infoseek Corporation Real-time document collection search engine with phrase indexing
US6182029B1 (en) * 1996-10-28 2001-01-30 The Trustees Of Columbia University In The City Of New York System and method for language extraction and encoding utilizing the parsing of text data in accordance with domain parameters
EP1078323A4 (de) * 1997-04-22 2007-04-25 Greg Hetherington Verfahren und gerät zum verarbeiten von freiformatigen daten
US5940821A (en) 1997-05-21 1999-08-17 Oracle Corporation Information presentation in a knowledge base search and retrieval system
US6138098A (en) * 1997-06-30 2000-10-24 Lernout & Hauspie Speech Products N.V. Command parsing and rewrite system
JP2000207397A (ja) 1999-01-01 2000-07-28 Ishikura Hiroshi 言語解析システムおよび方法
US6636831B1 (en) * 1999-04-09 2003-10-21 Inroad, Inc. System and process for voice-controlled information retrieval
US6782505B1 (en) * 1999-04-19 2004-08-24 Daniel P. Miranker Method and system for generating structured data from semi-structured data sources
US7027975B1 (en) * 2000-08-08 2006-04-11 Object Services And Consulting, Inc. Guided natural language interface system and method
US6766320B1 (en) * 2000-08-24 2004-07-20 Microsoft Corporation Search engine with natural language-based robust parsing for user query and relevance feedback learning
US6714939B2 (en) * 2001-01-08 2004-03-30 Softface, Inc. Creation of structured data from plain text
US7216073B2 (en) * 2001-03-13 2007-05-08 Intelligate, Ltd. Dynamic natural language understanding

Also Published As

Publication number Publication date
EP1399842B1 (de) 2006-07-26
US7324936B2 (en) 2008-01-29
US20080126080A1 (en) 2008-05-29
WO2002056196A3 (en) 2003-12-31
US6714939B2 (en) 2004-03-30
DE60213409D1 (de) 2006-09-07
US20030167266A1 (en) 2003-09-04
US20040172237A1 (en) 2004-09-02
AU2002246981A1 (en) 2002-07-24
WO2002056196A2 (en) 2002-07-18
ATE334449T1 (de) 2006-08-15
EP1399842A2 (de) 2004-03-24

Similar Documents

Publication Publication Date Title
DE60213409T2 (de) Erstellung von strukturierten daten aus unformatiertem text
EP1311989B1 (de) Verfahren zur automatischen recherche
Ashish et al. Wrapper generation for semi-structured internet sources
US6766330B1 (en) Universal output constructor for XML queries universal output constructor for XML queries
US6708186B1 (en) Aggregating and manipulating dictionary metadata in a database system
DE60208604T2 (de) Automatisches Verfahren zur Erzeugung von Image-buttons
Burkowski Retrieval activities in a database consisting of heterogeneous collections of structured text
DE60120822T2 (de) Meta-Dokument und Verfahren zum Verwalten von Meta-Dokumenten
DE102019001267A1 (de) Dialogartiges System zur Beantwortung von Anfragen
JPH09503088A (ja) 情報を検索するための装置と方法
WO2009030288A1 (de) Erfassung von zusammenhängen zwischen informationen repräsentierenden daten
DE60101668T2 (de) Verfahren und gerät zum erzeugen eines auf einer formatvorlage basierten index für ein strukturiertes dokument
Sahuguet et al. Looking at the Web through XML glasses
DE102006040208A1 (de) Patentbezogenes Suchverfahren und -system
DE69933123T2 (de) Zugriff auf eine semi-strukturierte datenbank
EP1030254B1 (de) Verfahren und System zum Verwalten von Dokumenten
EP1014283A1 (de) Intranetbasierendes System und Verfahren zur Katalogisierung und Veröffentlichung
EP1965313A1 (de) Datenverarbeitung
May Modeling and querying structure and contents of the web
DE19811524A1 (de) Datenverarbeitungssystem
Tunçer et al. Document decomposition by content as a means for structuring building project information
EP1280071B1 (de) Verfahren zur Erzeugung eines tabellengesteuerten Dialoges mit Mehrfach-Navigation für relational-multimediale Informationssysteme
Marin-Castro et al. VR-Tree: A novel tree-based approach for modeling Web Query Interfaces
Beesley XML: Solution for the future
DE10045080C2 (de) Verfahren und Vorrichtung zur Aufzeichnung und Ausführung von Abfragen aus Datennetzen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition