DE69126720T2 - Schnelle Bestimmung von Unterzusammenhängen in einer Erbhierarchie - Google Patents

Schnelle Bestimmung von Unterzusammenhängen in einer Erbhierarchie

Info

Publication number
DE69126720T2
DE69126720T2 DE69126720T DE69126720T DE69126720T2 DE 69126720 T2 DE69126720 T2 DE 69126720T2 DE 69126720 T DE69126720 T DE 69126720T DE 69126720 T DE69126720 T DE 69126720T DE 69126720 T2 DE69126720 T2 DE 69126720T2
Authority
DE
Germany
Prior art keywords
type
hierarchy
bits
mask
subtype
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69126720T
Other languages
English (en)
Other versions
DE69126720D1 (de
Inventor
William Barabash
Steven Alan Kirk
William Stephen Yerazunis
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.)
Digital Equipment Corp
Original Assignee
Digital Equipment Corp
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 Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of DE69126720D1 publication Critical patent/DE69126720D1/de
Application granted granted Critical
Publication of DE69126720T2 publication Critical patent/DE69126720T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/436Semantic checking
    • G06F8/437Type checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/4492Inheritance

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Devices For Executing Special Programs (AREA)

Description

    GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich auf die künstliche Intelligenz und insbesondere auf ein Verfahren zum schnellen Bestimmen der Untertypus-Beziehung in einer Einzelvererbung-Typenhierarchie für regelbasierte Sprachen.
  • HINTERGRUND DER ERFINDUNG
  • Regelbasierte Sprachen, die bei Anwendungen der künstlichen Intelligenz wie z. B. Expertensystemen eingesetzt werden, sind vorteilhaft, wenn große Datenmengen durchsucht werden müssen und aufgrund des Suchergebnisses Maßnahmen durchgeführt werden. Um die Suche in dieser großen Datenmenge zu minimieren, greifen regelbasierte Sprachen die verfügbaren Informationen über den besten Lösungsweg des Problems auf und suchen eine Lösung.
  • Eine einzelne Anweisung in einer regelbasierten Sprache besitzt die Form "wenn diese Bedingungen erfüllt sind, dann führe diese Aktionen aus." Mit anderen Worten, die Anweisung prüft, ob bestimmte Bedingungen erfüllt sind, und wenn ja, so werden eine Reihe von Aktionen durchgeführt. In einer regelbasierten Sprache gibt es keinen geregelten Steuerablauf; vielmehr achtet der Computer auf Situationen und Muster. Mit anderen Worten, eine regelbasierte Sprache ist eine mustervergleichende Sprache. So kann z. B. eine Anweisung lauten: "wenn in der Datenbank Objekte des Typus A, des Typus B und des Typus C existieren, dann führe X, führe Y und führe Z aus."
  • In allen regelbasierten Sprachen wird unterschieden zwischen den Datentypen und den Fällen dieser Typen. Diese Unterscheidung ist genau vergleichbar mit jener, die auch in einer Datenbank zwischen dem Datensatzformat und aktuellen Datensätzen gemacht wird. So kann beispielsweise eine bestimmte Anwendung einen Typus BOOK deklarieren. Alle Fälle des Typus BOOK enthalten dieselben Arten von Informationen: einen Titel, einen Autor, eine Katalognummer und eine Seitenanzahl. Diese Anwendung kann dann einen Fall des Typus BOOK für jedes Buch in der Stadtbücherei bilden. Ein solches Beispiel könnte die folgende Information enthalten:
  • Titel: "Artificial Intelligence and You"
  • Autor: Smith, John
  • Katalognummer: 0-670-81442-3
  • Seitenanzahl: 285
  • Dieser Fall des Typus BOOK (der auch als Daten des Typus BOOK, als Objekt des Typus BOOK oder als Objekt BOOK bezeichnet wird) kann potentiell jeder Bedingung in einer beliebigen Suchvorschrift nach einem Objekt des Typus BOOK genügen.
  • Falls die Notation "Typenvererbung" eingeführt ist, was eine große Erweiterung der Leistungsfähigkeit einer regelbasierten Sprache darstellt, so wird die Situation schwieriger. Typenvererbung beinhaltet, daß ein Objekttypus ein Untertypus eines anderen Objekttypus sein kann. So kann z. B. in einer bestimmten Anwendung der Typus CAT als ein Untertypus des Typus MAMMAL, MAMMAL als Untertypus von VERTEBRATE und VERTEBRATE als Untertypus von ANIMAL deklariert sein. Der Typus CAT, da er ein Untertypus ist, erbt bestimmte Merkmale des Typus MAMMAL. Beispiele für Merkmale, die der Untertypus CAT von seinem Elterntypus MAMMAL (d. h. dem Übertypus) erbt, können 'die Art des Stillens ihrer Jungen', 'Warmblüter' usw.
  • sein. Ein weiteres, was ein Typus von seinem Elterntypus erbt, ist die Verwandtschaft. Auch wenn ein Objekt einen Fall eines und nur eines einzigen Typus darstellt, so kann es normalerweise behandelt werden, als wäre es ein Fall eines seiner Übertypen. So kann ein Objekt CAT einer Anforderung an einen Fall des Typus MAMMAL oder einer Anforderung an ANIMAL genügen.
  • Das Dokument US-A-4 675 829 definiert ein Verfahren zur effizienten Beschreibung der Vererbung in hierarchischen wissensbasierten Systemen.
  • Typenvererbung ist ein leistungsfähiges Konzept, weil es unmittelbar die Art nachzeichnet, wie die Menschen die reale Welt beschreiben. Die englische Sprache besitzt bereits Kategorien wie ANIMAL, Unterkategorien wie MAMMAL und Unter-Unterkategorien wie CAT, auch Fälle wie 'jemandes 3 Jahre alte siamesische Katze'. Wenn ein Lehrer sagt: "Bringe ein Tier mit, um es vorzustellen!", dann würde jedes Kind aus der Klasse wissen, daß jemandes 3 Jahre alte siamesische Katze, aber auch ein Frosch oder ein Hamster der Bitte des Lehrers genügen würde.
  • Bei Verwendung einer regelbasierten Programmiersprache vergleicht der Computer jede Dateneinheit mit jedem Typus oder Untertypus, der als zu vergleichendes Muster auftritt. Wenn z. B. das zu vergleichende Muster MAMMAL ist, so vergleicht der Computer den Typus jeder Dateneinheit in der Datenbank mit dem Typus MAMMAL und jedem Untertypus von MAMMAL. Wenn unter den Daten ein Typus MAMMAL nach einer Vorschrift gesucht werden soll, so werden alle Daten des Typus CAT den Anforderungen an ein MAMMAL genügen, da CAT ein Untertypus von MAMMAL ist. Um nach dieser Methode des Suchens und Vergleichens vorgehen zu können, muß jedoch die Typus/Untertypus-Beziehung zwischen den Typen (die "Typenhierarchie") bekannt sein.
  • Das Bestimmen der Untertypus-Beziehung (d. h. ob ein spezifizierter Typus einem anderen spezifizierten Typus gleich oder dessen Untertypus ist), und insbesondere das Bestimmen der Verwandtschaftsbeziehung (d. h. ob ein spezifiziertes Objekt behandelt werden kann, als wenn es ein Fall eines spezifizierten Typus wäre, was zutrifft, wenn und nur dann, wenn der Typus des Objekts einem anderen spezifizierten Typus gleich oder dessen Untertypus ist) ist ein kritischer Schritt für die Gesamtleistung einer mustervergleichenden Sprache wie z. B. einer regelbasierten Sprache. Deshalb sollte das Bestimmen möglichst schnell durchgeführt werden, jedoch ohne den Speicherbedarf zu erhöhen. Der Ausdruck "Einzelvererbung" bedeutet, daß ein Untertypus nur einen unmittelbaren Elterntypus in der Typenhierarchie besitzt.
  • Ein Verfahren zum Bestimmen der Verwandtschaft besteht darin, den Datentypus zu prüfen, um zu sehen, ob dieser Typus derselbe Typus wie der zu vergleichende ist und wenn nein, den Daten-Übertypus anhand des Vergleichstypus zu prüfen. Dieses Prüfen wird mit stets höher werdenden Übertypen wiederholt, bis entweder der Übertypus und der Vergleichstypus übereinstimmen (d. h. das Objekt ist ein Verwandter des Vergleichstypus) oder es keine Übertypen mehr zu vergleichen gibt (d. h. das Objekt ist kein Verwandter des Vergleichstypus). Auf diesem Weg muß gegebenenfalls eine große Anzahl von Ebenen durchsucht werden, bis eine Übereinstimmung oder Nichtübereinstimmung gefunden wird. Beispielsweise sind zwei Prüfschritte erforderlich, um zu bestimmen, daß ein Objekt CAT dem Vergleichstypus MAMMAL genügt; zuerst wird CAT mit MAMMAL verglichen, dann der Übertypus von CAT, MAMMAL mit MAMMAL und festgestellt, daß diese äquivalent sind. Um jedoch zu bestimmen, daß dasselbe Objekt CAT dem Vergleichstypus VEGETABLE nicht genügt, sind vier Prüfschritte erforderlich: Vergleich CAT mit VEGETABLE, Vergleich MAMMAL mit VEGETABLE, Vergleich VERTEBRATE mit VEGETABLE und Vergleich ANIMAL mit VEGETABLE. Ein solcher Weg würde wegen dieser Suche über mehrere Ebenen insbesondere bei Nichtübereinstimmungen (die meist häufiger sind als Übereinstimmungen) die Leistung einer regelbasierten Sprache auf ein völlig inakzeptables Niveau herabsetzen.
  • Ein anderer Weg zum Bestimmen der Untertypus-Beziehung besteht darin, eine Reihe von Vergleichen durch logisches ODER zu verknüpfen. Wenn beispielsweise eine Bedingung in einer Vorschrift dann erfüllt ist, wenn ein Fall von MAMMAL gefunden wird, so ist dies für die Übereinstimmung gleichbedeutend, als wenn ein Objekt MAMMAL gefunden würde oder ein Objekt CAT oder DOG oder HORSE oder COW usw. für alle Untertypen von MAMMAL und für alle Unter- Untertypen MAMMAL und Unter-Unter-Untertypen usw. Dieser Weg wird sehr langsam und umständlich, sobald die Typenhierarchie einen erheblichen Umfang besitzt.
  • Ein anderer Weg, um sich Kenntnis über die Untertypus- Beziehung zu verschaffen, kann das Reservieren von N² Speicherplätzen sein, wobei N die Gesamtzahl der Typen bedeutet. Jede Achse listet alle unterschiedlichen Typen in einem Gitterformat auf. Jeder Punkt des Gitters entspricht einem Schnittpunkt eines Typus mit einem anderen und enthält ein Bit. Ist das Bit eine Eins, so ist der Typus (wie z. B. CAT) auf der einen Achse ein Untertypus des Typus auf der anderen Achse des Gitters, z. B. MAMMAL. Wenn das Bit eine Null ist, dann ist der Typus (CAT) auf der einen Achse des Gitters kein Untertypus des Typus auf der anderen Achse des Gitters, z. B. AMPHIBIAN. Der offensichtliche Nachteil dieses Weges ist der extrem hohe Aufwand an Speicherplatz, der benötigt wird, wenn die Gesamtzahl der Typen in einer Anwendung groß ist; wenn z. B. N gleich 10&sup4; ist (eine durchaus vorstellbare Anzahl von Typen einer Anwendung - z. B. die Anzahl der Teile in einem modernen Flugzeug), so würde die Speicherkapazität 10&sup8; betragen.
  • Aus diesen Gründen ist ein Verfahren erforderlich zum schnellen Bestimmen einer Untertypus-Beziehung in einer Einzelvererbung-Typenhierarchie, dessen Wert für Computer darin liegt, mit einer regelbasierten Sprache programmiert zu werden, ohne den Speicherbedarf groß zu erhöhen oder Befehle zur Implementierung zu benötigen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die vorliegende Erfindung zum schnellen Bestimmen einer Untertypus-Beziehung in einer Einzelvererbung-Typenhierarchie genügt diesen und weiteren Anforderungen. Unter Verwendung der Huffmann-Codierung, einer wohlbekannten Technik, wird jeder spezifische Typus in einer Typenhierarchie mit einem spezifischen binären Wert ausgestattet. Darüber hinaus wird jeder spezifische Typus mit einer Maske ausgestattet, welche die Anzahl der Bits des spezifischen binären Wertes wiedergibt, die für Vergleichszwecke signifikant sind. Durch Verwendung von Maske und spezifischem binären Wert, die einen spezifischen Typus repräsentieren, kann die Beziehung zwischen zwei Typen in der Typenhierarchie in einem zweistufigen Prozeß gefunden werden. Dieser Prozeß beinhaltet das Ausblenden jener Bits, die nicht für den Vergleich notwendig sind, um dann das Vergleichen des Musters des einen Typus mit dem Muster des anderen Typus durchzuführen. Jedes Muster enthält codierte Informationen, aus denen auf einfache Weise jeder Elterntypus dieses Untertypus bestimmt werden kann.
  • Die Erfindung in ihrer weit gefaßten Form beruht auf einem Verfahren zum Bestimmen einer Untertypus-Beziehung erster und zweiter Objekte in einer Einzelvererbung- Typenhierarchie, die mehrere Ebenen besitzt, gekennzeichnet durch die Schritte:
  • Ausstatten jedes Objekts in der Typenhierarchie mit entsprechenden eindeutigen Binärzahlen, einem Muster und einer Maske, wobei jedes Binärmuster Informationen enthält, die die Vorfahren des entsprechenden Objekts in der Typenhierarchie identifizieren, und die Maske Informationen darüber enthält, wie viele Bits in dem Bitmuster signifikant sind;
  • Ausführen einer bitweisen UND-Verknüpfung des Binärmusters eines ersten Objekts mit der Maske eines zweiten Objekts, um ein Ergebnis zu erzeugen; und
  • Vergleichen des Ergebnisses mit dem Binärmuster des zweiten Objekts, wobei eine Übereinstimmung angibt, daß das erste Objekt ein Fall eines Typus oder Untertypus des zweiten Objekts ist, und eine Nichtübereinstimmung angibt, daß das erste Objekt kein Fall eines Typus oder Untertypus des zweiten Objekts ist.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Einem detaillierteren Verständnis der Erfindung dient die folgende Beschreibung einer bevorzugten Ausführungsform, die beispielhaft gegeben wird und in Verbindung mit den beigefügten Zeichnungen verstanden werden soll, worin:
  • Fig. 1 ein Beispiel einer Typenhierarchie für eine Anwendung veranschaulicht, die Aufträge für eine Computeranlage bearbeitet;
  • Fig. 2 einen Ablaufplan einer Ausführungsform eines Übersetzungsprozesses gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
  • Fig. 3 eine Tabelle der Objekte der Typenhierarchie aus Fig. 1 und der Bitmuster für diese Objekte, die mit Hilfe des Übersetzungsprozesses aus Fig. 2 erzeugt wurden, darstellt;
  • Fig. 4 einen Ablaufplan einer Ausführungsform eines Verarbeitungsprozesses gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung darstellt.
  • GENAUE BESCHREIBUNG
  • In bestimmten Anwendungen der künstlichen Intelligenz wie z. B. Expertensystemen ist die Fähigkeit, alle Datentypen in einer Hierarchie zu ordnen, sehr wichtig. Eine Typenhierarchie zeigt die Beziehungen zwischen allen Typen eines Systems auf. Ein Beispiel einer Typenhierarchie ist in Fig. 1 dargestellt. Jeder Kreis in dieser Figur repräsentiert einen unterschiedlichen Typus in der Hierarchie und ist durch eine Zahl gekennzeichnet. Jede Linie zwischen den Typen in der Figur repräsentiert eine Verbindung zwischen einem Übertypus (anderweitig bekannt als Elterntypus) und seinen Untertypen (anderweitig bekannt als Kindtypen). Wie in der Figur veranschaulicht, kann ein Typus höchstens einen Übertypus, jedoch mehrere Untertypen besitzen.
  • Die Ebene 1 der Typenhierarchie in Fig. 1 umfaßt LINE-ITEM 10 und DEVICE 12. Diese beiden Typen der Ebene 1, LINE-ITEM 10 und DEVICE 12, werden als Geschwister" betrachtet, da sie die einzigen Objekte der Ebene 1 sind. LINE-ITEM 10 besitzt zwei Kinder: ORDERED-ITEM 14 und IMPLIED-ITEM 16. ORDERED-ITEM 14 und IMPLIED-ITEM 16 werden als Geschwister betrachtet und sind Untertypen von LINE-ITEM 10. Ebenso besitzt DEVICE 12 der Ebene 1 eine Anzahl von Kindtypen: die Zentraleinheit (CPU) 18, MEMORY 20 und STORAGE 22. Jeder dieser Kindtypen repräsentiert einen unterschiedlichen Untertypus des Typus, der durch DEVICE 12 repräsentiert wird. Selbstverständlich stellt Fig. 1 die Beziehungen zwischen Typen und Untertypen dar und stellt die Hierarchie nicht die tatsächlichen physikalischen Verbindungen der Elemente eines Computersystems dar.
  • CPU 18 besitzt drei Kinder 24-28, von denen jedes einen unterschiedlichen Untertypus von CPU repräsentiert. Mit anderen Worten, der Typus CPU-1 mit der Zahl 24 ist ein spezifischer Untertypus von CPU, während der Typus CPU-2 mit der Zahl 26 ein anderer Untertypus von CPU ist und beispielsweise von verschiedenen Firmen hergestellt sein könnte. Die verschiedenen CPU-Untertypen 24, 26, 28 gehören alle zur Ebene 3 der Typenhierarchie. Der Typus STORAGE 22 besitzt zwei Kinder: DISK 30 und TAPE 32. DISK 30 und TAPE 32 sind nicht Geschwister der Untertypen 24, 26, 28, auch wenn sie untereinander Geschwister sind.
  • Schließlich gibt es fünf verschiedene Untertypen von DISK 30, wie im Beispiel in Fig. 1 gezeigt ist, wobei diese verschiedenen Untertypen von DISK durch 34, 36, 38, 40 und 42 bezeichnet sind. Jeder dieser verschiedenen Typen repräsentiert einen unterschiedlichen Untertypus von DISK 30. TAPE 32 besitzt zwei verschiedene Untertypen: 44 und 46. Die verschiedenen Untertypen von Platten (DISK) und Bändern (TAPE) bilden die Ebene 4.
  • Wie aus Fig. 1 ersichtlich ist, kann ein Untertypus nur einen Elterntypus (oder "Übertypus") besitzen. Hier spricht man von "Einzelvererbung-Typenhierarchie". Vererbung bedeutet, daß die Eigenschaften eines Typus dem Untertypus vererbt werden, wenn anderweitig nichts spezifisches festgelegt ist. Diese Eigenschaften können Standardwerte, Verwandtschaft und Basisstruktur der Informationen umfassen. Beispielsweise ist Typus 44, TAPE-1, ein Untertypus von TAPE 32. Deshalb erbt Typus 44 die gleichen Standardwerte oder Eigenschaften, die für TAPE 32 charakteristisch sind. Als weiteres Beispiel erbt Typus 42, DISK-5, Merkmale seines Übertypus (DISK 30) und der Übertypen von DISK 30 (d. h STORAGE 22 und DEVICE 12). Somit kann Typus 42 (der einen spezifischen Untertypus von DISK repräsentiert) als Untertypus eines jeden der Übertypen von DISK 30, STORAGE 22 oder DEVICE 12 betrachtet werden.
  • In einer regelbasierten Programmiersprache ist es oft der Fall, daß Probleme allgemein beschrieben werden. Jedoch werden zur Problemlösung spezifische Objekte betrachtet, wenn eine Datenbank durchsucht wird. Wenn beispielsweise die Lösung eines Problems eine Platte (DISK) erfordert, und ein Objekt des Typus 42, DISK-5, in Betracht kommt, so stellt sich die Frage, ob dieses Objekt den Ansprüchen an eine Platte genügt. Mit anderen Worten, es muß bestimmt werden, ob Typus 42, DISK-5, ein Untertypus von DISK 30 ist. Auf gleiche Weise muß, wenn ein Typus eines Speichers 22 benötigt wird und ein Objekt vom Typus 42, DISK-5, in Betracht kommt, bestimmt werden, ob dieses Objekt diesem Typus der höheren Ebene genügt.
  • Die vorliegende Erfindung erledigt die meiste Arbeit des Bestimmens, ob ein spezifizierter Typus einem anderen spezifizierten Typus gleich oder dessen Untertypus ist, was bei der Übersetzung getan werden muß. Mit anderen Worten, das Bestimmen der Untertypus-Beziehung wird so weit wie möglich als Teil des Übersetzungsprozesses durchgeführt. Die vorliegende Erfindung verwendet eine Codiertechnik, bekannt als Huffmann-Codierung, um nichtredundante Objekte als eine Reihe binärer Werte zu codieren. Die folgende Erläuterung des Codier- und Übersetzungsprozesses nimmt Bezug auf die Fig. 2 und 3. Fig. 2 beschreibt den Übersetzungsprozeß selbst, während Fig. 3 die Resultat des Übersetzungsprozesses aufzeigt.
  • Fig. 3 ist als Tabelle dargestellt, die für jeden Typus aus Fig. 1 die Ebene, in der sich der Typus befindet, eine erste Binärzahl AN, eine zweite Binärzahl XN und eine dritte Binärzahl PN auflistet. Wie diese Tabelle erzeugt wird, wird weiter unten unter Bezug auf Fig. 2 beschrieben, wobei die Benutzung der Zahlen mit Bezug auf Fig. 4 beschrieben wird.
  • Fig. 2 stellt einen Ablaufplan des Übersetzungsprozesses dar, der einen Wert für jeden Typus erzeugt, siehe Fig. 3. Zu Beginn des Übersetzungsprozesses, im Verarbeitungsschritt 60, wird die maximale Anzahl von Geschwistern für jede Ebene in der Typenhierarchie bestimmt. Geschwister sind diejenigen Typen einer Ebene der Typenhierarchie, die dieselben Eltern gemeinsam haben. Es kann mehrere Gruppen von Geschwistern auf einer Ebene geben. Alle Typen der ersten Ebene werden als Geschwister betrachtet.
  • Wenn die Anzahl von Geschwistern in der größten Gruppe von Geschwistern einer Ebene bestimmt ist, wird im Verarbeitungsschritt 62 die Anzahl von Bits (ML), die für eine eindeutige Numerierung der Reihe von Geschwistern erforderlich ist, bestimmt. Beispielsweise sei die Anzahl von Geschwistern in der größten Gruppe der Ebene 4 gleich 5. Dann ist, um jedes dieser fünf Geschwister (Typen 34-42) eindeutig zu identifizieren, eine drei Bit lange Binärzahl erforderlich. Dies ist die Zahl (M&sub4; = 3), die im Verarbeitungsschritt 62 bestimmt wird. Dieselbe Anzahl von Bits ergibt sich auch für die restlichen Gruppen von Geschwistern dieser Ebene.
  • Wenn die Anzahl von Bits, die für eine Identifizierung der maximalen Anzahl von Geschwistern einer Ebene erforderlich ist, mit dem Verarbeitungsschritt 62 bestimmt ist, so wird im Entscheidungsschritt 64 bestimmt, ob die Verarbeitungsschritte 60 und 62 für alle Ebenen der Typenhierarchie durchgeführt wurden. Sind diese Schritte 60, 62 einmal für alle Ebenen durchgeführt, so wird die Gesamtzahl von Bits, die zur eindeutigen Identifizierung eines Objekts in der Hierarchie erforderlich ist, im Verarbeitungsschritt 66 bestimmt. Die Gesamtzahl der erforderlichen Bits B wird bestimmt durch Aufsummieren der Werte ML für alle Ebenen der Typenhierarchie.
  • Jedem Objekt der obersten Ebene (Ebene 1) wird eine Binärzahl AN mit einer Länge von M&sub1; Bits zugewiesen. In dem Beispiel ist M&sub1; gleich 1. Allen Typen werden Zahlen, mit beginnend, zugewiesen. Dies wird im Verarbeitungsschritt 68 durchgeführt. Im Verarbeitungsschritt 70 wird jedem Typus in der Hierarchie, dem bereits ein Wert AN zugewiesen wurde, aber dessen Kindern keine Werte zugewiesen wurden, eine ML Bit lange Binärzahl AN, mit 0 beginnend, für jedes seiner Kinder zugewiesen. Somit leitet jede Gruppe von Geschwistern eine Zahlenreihe mit "AN = 0, AN = 1 ..." ein. Dies wird fortgesetzt, bis allen Typen in der Typenhierarchie ein Wert AN zugewiesen wurde, was mit dem Entscheidungsschritt 72 bestimmt wird.
  • Sobald allen Typen in der Typenhierarchie ein Wert AN zugewiesen ist, wird im Verarbeitungsschritt 74 für alle Typen eine Maske XN erzeugt. Jede Maske XN besitzt eine Länge von B Bits. Die Maske XN wird, mit dem am weitesten links stehenden Bit beginnend, durch eine Anzahl C von Einsen und anschließendem Auffüllen von rechts mit Nullen gebildet. Dies geschieht nach der Gleichung:
  • wobei Q die Ebene des Typus N ist.
  • Schließlich wird im Verarbeitungsschritt 76 ein Muster PN für jeden Typus N in der Typenhierarchie erzeugt. Dieses Muster PN ist B Bits lang und wird, mit dem am weitesten links stehenden Bit beginnend, durch Verketten der Werte AN für alle Vorfahren eines Typus gebildet. Dies geschieht, mit den Bits A&sub1; für den Vorfahren der obersten Ebene beginnend, durch Verketten der Bits über jeden nachfolgenden Vorfahren, bis sein eigener Wert AN verkettet ist. Die restlichen Bits im Muster PN werden von rechts mit Nullen aufgefüllt.
  • Mit Bezug auf Fig. 3 kann gesehen werden, daß das für jeden Typus erzeugte AN diesen Typus unter seinen Geschwistern eindeutig identifiziert, wofür eine minimale Anzahl von Bits erforderlich ist. Beispielsweise ist Typus 36 eines von fünf Geschwistern. Jedem der fünf Geschwister 34-42 ist eine eindeutige (für diese Gruppe von Geschwistern), drei Bit lange Zahl AN zugewiesen. Auf gleiche Weise werden den zwei anderen Geschwistern 44 und 46, die zur anderen Gruppe der Ebene 4 gehören, eigene Werte AN zugewiesen.
  • Aus den Werten AN wird jedes Muster PN, das einen Einzeltypus in der Typenhierarchie identifiziert, erzeugt. Beispielsweise ist für Typus 28 der Vorfahre der obersten Ebene DEVICE 12 mit AN gleich 1. Deshalb ist das am weitesten links stehende Bit von PN für Objekt 28 eine Eins. Der Vorfahre der nächst niedrigeren Ebene für Typus 28 ist CPU 18. Der Wert AN für CPU 18 ist 00. Dieser Wert AN für CPU 18 wird verkettet mit 1, dem Wert AN für Typus 12. Der Wert AN für Typus 28 (d. h. 10) wird dann verkettet mit den Werten AN der Typen 12 und 18. Dies bildet die Binärzahl 10010. Schließlich werden von rechts drei Nullen aufgefüllt, um das Muster PN zu vervollständigen. Auf diese Art und Weise wird ein Muster PN erzeugt, welches das Objekt 28 in der Typenhierarchie identifiziert.
  • Die Maske XN gibt wieder, wie viele Bits eines Musters PN für Vergleichszwecke signifikant sind. Da der Wert ML für die erste Ebene gleich 1 ist, wird die einstellige Binärzahl 1 im am weitesten links stehenden Bit des Wertes XN für alle Typen in der Hierarchie eingetragen. Für jeden Typus der Ebene 2 werden, da die Anzahl der zur Codierung aller typen erforderlichen Bits gleich 2 st, an die Maske XN zwei Bits mit je einer Eins an das am weitesten links stehende Bit angehängt.
  • In gleicher Weise werden für die Ebene 3 über alle Typen dieser Ebene zwei weitere Bits in den Werten AN benutzt. Deshalb werden zwei weitere Einsen in der Maske XN für jeden Typus der Ebene 3 eingetragen. Für die niedrigste Ebene schließlich, Ebene 4, werden drei Bits für AN benötigt. Darum werden drei Einsen für die restlichen Bits von XN für jeden Typus der vierten Ebene eingetragen.
  • Die Maske XN wird für den Vergleichsprozeß benötigt, um zu bestimmen, wie viele am meisten links stehende Bits zweier Muster PN verglichen werden müssen, um zu bestimmen, ob ein Objekt ein Typus oder ein Untertypus eines anderen Objekts der Typenhierarchie ist. Die Bestimmung, ob ein Objekt behandelt werden kann, als ob es ein Fall eines spezifischen Typus sei, ist in Fig. 4, einem Ablaufplan des Verarbeitungs- oder Vergleichsprozesses, gezeigt.
  • Für das folgende Beispiel wird angenommen, daß es ein Objekt des Typus R gibt, für das zu bestimmen ist, ob dieses Objekt behandelt werden kann, als sei es ein Fall des Typus T (d. h. ob R gleich T oder ein Untertypus von T ist). Im Verarbeitungsschritt 80 wird die bitweise UND- Verknüpfung des Musters PN des Typus R mit der Maske XN des Typus T ausgeführt, um ein Ergebnis zu bilden.
  • Im zweiten Verarbeitungsschritt 82 wird das oben erzeugte Ergebnis mit dem Muster PN des Typus T verglichen. Wenn die Muster übereinstimmen, kann das Objekt des Typus R betrachtet werden, als sei es vom Typus T. Wenn das Ergebnis nicht mit dem Muster % des Typus T übereinstimmt, dann ist das Objekt weder vom Typus T noch von irgendeinem Untertypus des Typus T.
  • Es wird zum Beispiel angenommen, daß Objekte, die mit Typus 22, STORAGE, übereinstimmen, gefunden werden sollen; dann wird im Prozeß aus Fig. 3 der Typus STORAGE für T eingesetzt.
  • Nun wird angenommen, daß das erste zu vergleichende Objekt ein Fall des Typus 36, DISK-2, ist. Über den Prozeß aus Fig. 3 wird das Muster P&sub3;&sub6; bitweise mit der Maske X&sub2;&sub2; durch UND verknüpft. P&sub3;&sub6; ist gleich 11000001, X&sub2;&sub2; ist gleich 11100000, und das Ergebnis der bitweisen UND- Verknüpfung ist gleich 11000000. Dieses Ergebnis wird dann verglichen mit P&sub2;&sub2; 11000000, und da die Binärzahlen äquivalent sind, kann das Objekt des Typus 36, DISK-2, den Anforderungen an ein Objekt des Typus 22, STORAGE, in der Tat genügen.
  • Nun wird angenommen, daß das nächste zu vergleichende Objekt vom Typus 24, CPU-1, ist. Wieder wird über den Prozeß aus Fig. 3 das Muster P&sub2;&sub4;, 10000000, bitweise mit der Maske X&sub2;&sub2;, 11100000, durch UND verknüpft und das Ergebnis, 10000000, mit dem Muster P&sub2;&sub2;, 11000000, verglichen. In diesem Fall kann, da diese nicht äquivalent sind, das Objekt nicht den Anforderungen an ein Objekt des Typus 22, STORAGE, genügen.
  • Wenn es keine Übereinstimmung gibt, gibt die Anwendung dieses zweistufigen Verarbeitungsprozesses an, daß ein Objekt des Typus R nicht vom Typus T oder von einem Untertypus des Typus T ist. So wird das Problem vermieden, Zwischentypen die ganze Typenhierarchie aufwärts überprüfen zu müssen, wenn der Typus T einer hohen Ebene der Hierarchie zugehört. Mit der vorliegenden Erfindung kann das Objekt des Typus R direkt mit dem Typus T verglichen werden, um zu bestimmen, ob es ein Typus oder Untertypus von T ist, selbst dann, wenn zwischen Typus R und Typus T Zwischenebenen von Untertypus-Beziehungen liegen sollten.
  • Somit kann, sobald die erste Übersetzung einmal durchgeführt wurde, die Bestimmung, ob ein Objekt des Typus R als ein Objekt des Typus T oder eines jeden Untertypus des Typus T betrachtet werden kann oder nicht, stets in zwei Schritten ausgeführt werden. Die Anzahl der Schritte bleibt konstant unabhängig davon, welcher Objekttypus mit einem spezifischen Typus verglichen wird. Darüber hinaus ist der für dieses System erforderliche Aufwand an Speicherplatz annähernd N pro Typus, wenn N die Gesamtzahl der definierten Typen ist.
  • Die obenbeschriebene Erfindung kann auf einem für Anwendungen der künstlichen Intelligenz geeigneten, herkömmlichen Computer implementiert werden und als solcher wird der Computer selbst nicht im Detail vorgestellt. Jedoch soll als Beispiel eines handelsüblichen Computers, der mit der vorliegenden Erfindung eingesetzt werden kann, die DEC Station 3100, hergestellt von Digital Equipment Corporation, erwähnt werden.
  • Die vorangehende Beschreibung wurde nur mit dem Ziel der Veranschaulichung und Erläuterung auf eine besondere, exemplarische Ausführungsform der Erfindung gerichtet. Jedoch wird einem Fachmann ersichtlich sein, daß viele Modifikationen und Änderungen der Vorrichtung der vorliegenden Erfindung möglich sind, ohne von dem Rahmen der Erfindung abzuweichen. Es ist beabsichtigt, daß die folgenden Ansprüche so interpretiert werden, daß sie alle Modifikationen und Änderungen dieser Art mit umfassen.

Claims (9)

1. Verfahren zum Bestimmen einer Untertypus-Beziehung erster und zweiter Objekte in einer Einzelvererbung-Typenhierarchie, die mehrere Ebenen besitzt, gekennzeichnet durch die Schritte:
Ausstatten jedes Objekts in der Typenhierarchie mit entsprechenden eindeutigen Binärzahlen, einem Muster und einer Maske, wobei jedes Binärmuster Informationen enthält, die Vorfahren des entsprechenden Objekts in der Typenhierarchie identifizieren, und die Maske Informationen darüber enthält, wie viele Bits in dem Bitmuster signifikant sind;
Ausführen einer bitweisen UND-Verknüpfung des Binärmusters eines ersten Objekts mit der Maske eines zweiten Objekts, um ein Ergebnis zu erzeugen; und
Vergleichen des Ergebnisses mit dem Binärmuster des zweiten Objekts, wobei eine übereinstimmung angibt, daß das erste Objekt ein Fall eines Typus oder Untertypus des zweiten Objekts ist, und eine Nichtübereinstimmung angibt, daß das erste Objekt kein Fall eines Typus oder Untertypus des zweiten Objekts ist.
2. Verfahren nach Anspruch 1, in dem der Ausstattungsschritt den Schritt des Ausführens einer Huffmann- Codierung an jedem Objekt in der Typenhierarchie enthält.
3. Verfahren nach Anspruch 1, in dem der Ausstattungsschritt die Schritte enthält:
Bestimmen einer maximalen Anzahl von Geschwistern für jede Ebene der Hierarchie;
Bestimmen einer minimalen Anzahl von Bits ML, die fur eine eindeutige Numerierung der maximalen Anzahl von Geschwistern für jede Ebene erforderlich sind, für jede Hierarchieebene;
Aufsummieren der minimalen Anzahl von Bits ML aller Hierarchieebenen, um die Gesamtzahl von Bits B zu bestimmen, die für die Identifizierung eines Objekts in der Hierarchie notwendig sind;
Zuweisen eines Werts AN, der ML Bits besitzt, an jedes Objekt in der Hierarchie, wobei der Wert von AN für jede Gruppe von Geschwistern bei 0 beginnt;
Verknüpfen der Werte AN für jedes Objekt, wobei die am weitesten links stehenden Bits der Wert AN eines Objekts der oberen Ebene sind und die nacheinander nächsten am weitesten links stehenden Bits, die verknüpft sind, die Werte AN jedes der Vorfahren eines Objekts sind; und
Auffüllen von rechts mit Nullen der verknüpften Werte von AN, bis die verknüpften Werte von AN zusammen mit den von rechts aufgefüllten Nullen die Gesamtzahl von Bits B besitzen, um das Binärmuster für jedes Objekt zu bilden.
4. Verfahren nach Anspruch 3, in dem der Ausstattungsschritt ferner den Schritt des Bildens der Maske durch Auffüllen der am weitesten links stehenden Bits einer B Bits langen Binärzahl mit einer Zahl C aus Einsen und Auffüllen von rechts mit Nullen, wobei wobei Q die Ebene L des Objekts ist, das die gerade gebildete Maske besitzt.
5. Computer, der so programmiert ist, daß er in einer Einzelvererbung-Typenhierarchie (10-46), die mehrere
Ebenen besitzt, eine Untertypus-Beziehung erster und zweiter Objekte bestimmt, gekennzeichnet durch: eine Einrichtung zum Ausstatten jedes Objekts in der Typenhierarchie mit einem entsprechenden eindeutigen Paar von Binärzahlen, einem Muster (PN) und einer Maske (XN), wobei jedes Binärmuster Informationen enthält, die Vorfahren des entsprechenden Objekts in der Typenhierarchie identifizieren, und die Maske Informationen darüber enthält, wie viele Bits in dem Binärmuster signifikant sind;
eine Einrichtung zum Ausführen einer bitweisen UND-Verknüpfung des Binärmusters eines ersten Objekts mit der Maske eines zweiten Objekts, um ein Ergebnis (80) zu erzeugen; und
eine Einrichtung zum Vergleichen des Ergebnisses (82) mit dem Binärmuster des zweiten Objekts, wobei eine Übereinstimmung angibt, daß das erste Objekt ein Typus oder Untertypus des zweiten Objekts ist, und eine Nichtübereinstimmung angibt, daß das erste Objekt kein Typus oder Untertypus des zweiten Objekts ist.
6. Computer nach Anspruch 5, in dem das Programm in einer regelbasierten Sprache geschrieben ist.
7. Computer nach Anspruch 6, in dem die Ausstattungseinrichtung eine Einrichtung zum Ausführen einer Huffmann-Codierung an jedem Objekt in der Typenhierarchie enthält.
8. Computer nach Anspruch 6, in dem die Ausstattungseinrichtung enthält:
eine Einrichtung zum Bestimmen einer maximalen Anzahl von Geschwistern für jede Ebene der Hierarchie;
eine Einrichtung zum Bestimmen einer minimalen Anzahl von Bits ML, die für die eindeutige Numerierung der maximalen Anzahl von Geschwistern jeder Ebene erforderlich sind, für jede Hierarchieebene;
eine Einrichtung zum Aufsummieren der minimalen Anzahl von Bits ML für alle Hierarchieebenen, um die Gesamtzahl von Bits B zu bestimmen, die für die eindeutige Identifizierung eines Objekts in der Hierarchie erforderlich sind;
eine Einrichtung zum Zuweisen eines Werts AN, der ML Bits besitzt, an jedes Objekt in der Hierarchie, wobei der Wert von AN für jede Gruppe von Geschwistern bei beginnt;
eine Einrichtung zum Verknüpfen der Werte AN für jedes Objekt, wobei die am weitesten links stehenden Bits der Wert AN des Objekts der oberen Ebene sind und die nacheinander nächsten am weitesten links stehenden Bits, die verknüpft sind, die Werte AN jedes der Vorfahren eines Objekts sind; und
eine Einrichtung zum Auffüllen von rechts der verknüpften Werte von AN mit Nullen, bis die verknüpften Werte von AN mit den von rechts aufgefüllten Nullen die Gesamtzahl B von Bits besitzen, um das Binärmuster für jedes Objekt zu bilden.
9. Computer nach Anspruch 8, in dem die Ausstattungseinrichtung ferner eine Einrichtung enthält zum Bilden der Maske durch Auffüllen der am weitesten links stehenden Bits einer B Bits langen Binärzahl B mit einer Zahl C aus Einsen und durch Auffüllen von rechts mit Nullen, wobei
wobei Q die Ebene L des Objekts ist, das die gerade gebildete Maske besitzt.
DE69126720T 1990-03-06 1991-03-04 Schnelle Bestimmung von Unterzusammenhängen in einer Erbhierarchie Expired - Fee Related DE69126720T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/488,880 US5267349A (en) 1990-03-06 1990-03-06 Fast determination of subtype relationship in a single inheritance type hierarchy

Publications (2)

Publication Number Publication Date
DE69126720D1 DE69126720D1 (de) 1997-08-14
DE69126720T2 true DE69126720T2 (de) 1998-01-29

Family

ID=23941492

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69126720T Expired - Fee Related DE69126720T2 (de) 1990-03-06 1991-03-04 Schnelle Bestimmung von Unterzusammenhängen in einer Erbhierarchie

Country Status (3)

Country Link
US (1) US5267349A (de)
EP (1) EP0446117B1 (de)
DE (1) DE69126720T2 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5819283A (en) * 1993-05-11 1998-10-06 Apple Computer, Inc. Method and system for the extensibility of objects
US5519868A (en) * 1993-12-30 1996-05-21 International Business Machines Corporation Compilation of information contained in GDMO name bindings
US6714991B1 (en) * 1998-03-23 2004-03-30 Sun Microsystems, Inc. Method and apparatus for implementing fast subclass and subtype checks
US6728728B2 (en) * 2000-07-24 2004-04-27 Israel Spiegler Unified binary model and methodology for knowledge representation and for data and information mining
US6996825B2 (en) * 2001-12-27 2006-02-07 Sun Microsystems, Inc. Method and apparatus for efficient object sub-typing
DE10249149B4 (de) * 2002-10-16 2004-09-02 Hans Andreas Bahr Datenverarbeitungs- und Kommunikationssystem für Parteien als Anbieter oder Nachfrager
US7216333B2 (en) * 2003-04-08 2007-05-08 Sun Microsystems, Inc. Fingerprint subtype checking
GB2422924A (en) * 2005-02-04 2006-08-09 Sony Comp Entertainment Europe Determining derived relationships in a hierarchical structure
US20130080474A1 (en) * 2011-09-27 2013-03-28 Bin Zhang Accelerating recursive queries
US10158738B2 (en) * 2014-12-22 2018-12-18 Here Global B.V. Optimal coding method for efficient matching of hierarchical categories in publish-subscribe systems

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4506325A (en) * 1980-03-24 1985-03-19 Sperry Corporation Reflexive utilization of descriptors to reconstitute computer instructions which are Huffman-like encoded
US4675829A (en) * 1984-07-27 1987-06-23 Intellicorp Corporation Method and apparatus for building knowledge-based systems

Also Published As

Publication number Publication date
US5267349A (en) 1993-11-30
EP0446117B1 (de) 1997-07-09
EP0446117A2 (de) 1991-09-11
DE69126720D1 (de) 1997-08-14
EP0446117A3 (en) 1993-06-09

Similar Documents

Publication Publication Date Title
DE3685671T2 (de) Aufzeichnungs- und wiederauffindungsverfahren fuer chemische strukturdaten.
DE3689357T2 (de) Digitaler Lese-/Schreibspeicher.
DE68925746T2 (de) Versionen-Verwaltungswerkzeug
DE68926422T2 (de) Datenbankverwaltungssystem
DE2554442C2 (de) Vorrichtung zum Vergleich logischer Größen mit einer Gruppe logischer Bezugsgrößen
DE69031758T2 (de) Verfahren zur Organisation von und zum Zugriff auf Produkt beschreibenden Daten in Zusammenhang mit einem technischen Prozess
DE3750515T2 (de) Verfahren zur Zugriffssteuerung einer Datenbasis.
DE3750277T2 (de) Verfahren und Vorrichtung zur Rückgewinnung von Symbolketten aus Daten.
DE60315996T2 (de) Verfahren und vorrichtung zur datenbewegung mittels sperren
DE3855212T2 (de) Verfahren zur Berechnung eines transitiven Abschlusses
DE3485999T2 (de) Hochgeschwindigkeitverarbeitungssystem fuer rechneranlage.
DE102018128531A1 (de) System und Verfahren zum Analysieren einer durch eine Punktwolke dargestellten dreidimensionalen Umgebung durch tiefes Lernen
CH658329A5 (de) Verfahren zur steuerung des daten-zugriffes in einer datenbank und apparat zu seiner durchfuehrung.
DE102016216843A1 (de) Verteiltes Zusammenführen von Dateien
DE60118973T2 (de) Verfahren zum abfragen einer struktur komprimierter daten
DE69026764T2 (de) Verfahren zur Datenübertragung mit hoher Geschwindigkeit
DE112010000947T5 (de) Verfahren zur völlig modifizierbaren Framework-Datenverteilung im Data-Warehouse unter Berücksichtigung der vorläufigen etymologischen Separation der genannten Daten
DE69126720T2 (de) Schnelle Bestimmung von Unterzusammenhängen in einer Erbhierarchie
DE3850444T2 (de) Progammverwaltungsverfahren für verteilte Verarbeitungssysteme und angepasste Vorrichtung.
DE60007826T2 (de) Unterhaltssystem für einen elektronischen Katalog um ausserhalb des Standards liegende Katalogveränderungen zu ermöglichen
EP0901658B1 (de) Verfahren zur optimierung eines fuzzy-regelsatzes durch einen rechner
DE1271433B (de) Adressiereinrichtung fuer einen Tabellenwertspeicher
DE2136270A1 (de) Verfahren und Vergleicher zum Vergleich zweier Binärzahlen
DE202014005278U1 (de) Einbetten von archivierten Daten in eine Datenquelle
DE3689502T2 (de) System und Verfahren zur Programmstrukturierung durch Datentabellenübersetzung.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Free format text: GRUENECKER, KINKELDEY, STOCKMAIR & SCHWANHAEUSSER, 80538 MUENCHEN

8339 Ceased/non-payment of the annual fee
8370 Indication related to discontinuation of the patent is to be deleted
8339 Ceased/non-payment of the annual fee