DE2360023A1 - Anordnung und verfahren zum fortschreiben von textdaten - Google Patents

Anordnung und verfahren zum fortschreiben von textdaten

Info

Publication number
DE2360023A1
DE2360023A1 DE2360023A DE2360023A DE2360023A1 DE 2360023 A1 DE2360023 A1 DE 2360023A1 DE 2360023 A DE2360023 A DE 2360023A DE 2360023 A DE2360023 A DE 2360023A DE 2360023 A1 DE2360023 A1 DE 2360023A1
Authority
DE
Germany
Prior art keywords
file
words
word
instruction
record
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.)
Pending
Application number
DE2360023A
Other languages
English (en)
Inventor
Jacob Slonim
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.)
CANADIAN JURIMETRICS Ltd
Original Assignee
CANADIAN JURIMETRICS Ltd
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 CANADIAN JURIMETRICS Ltd filed Critical CANADIAN JURIMETRICS Ltd
Publication of DE2360023A1 publication Critical patent/DE2360023A1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/194Calculation of difference between files

Landscapes

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

Description

Anordnung und Verfahren zum Portschreiben von Textdaten
Die Erfindung bezieht sich auf ein Verfahren zum Steuern einer datenverarbeitenden Maschine oder eines Rechners zum Überarbeiten, Berichtigen, Ändern oder Übertragen von Wör- ' tern in einer Datenbank für natürliche Sprache.
Ein elektronischer Rechner oder prozessor enthält normalerweise einen Kern- oder zentralen Speicher, Bandeinheiten, einen Plattenstapel, Drucker, Sichtgeräte (Kathodenstrahlröhren), Kartenleser und periphere Speieher, um nur einige seiner Komponenten■<zu nennen. Für die genauen Ausführungsbeispiele der Erfindung ist jedoch nicht wesentlich, welcher Rechner oder welche periphere Anordnung daraus verwendet wird. Zu den erfindungsgemäßen Ausführungsbeispielen gehören dagegen Verfahren zum Steuern eines Rechners, wobei dieser eine Datenbasis oder einen Datenbestand in einer' bisher nicht bekannten Weise verarbeitet. ,
Elektronische Rechner werden sehr häufig für die Ver-022-56-3-6-WBk . '■■■
/409835/0649
arbeitung oder Modifizierung von Datenelementen oder Daten eingesetzt, insbesondere wenn die Datenelemente ziffern darstellende Bits oder Binärzeichen sind. In diesem Sinn ist es üblich, eine Datenbank, die Daten zur Darstellung von Ziffern (arabische Ziffern) enthält, zu ändern und zu überarbeiten, z.B. in der Buchhaltung, um eine Bilanz, Gewinn- und Verlustaufstellungen sowie Lohnanweisungen usw. zu erstellen. Nicht üblich ist dagegen die Verarbeitung von Daten, die Buchstaben darstellen, z.B. den Volltext einer menschlichen oder natürlichen Sprache. Bei Buchstaben (NichtZiffern) gibt es besondere Probleme, da das ein alphabetisches Zeichen oder Älphazeichen darstellende Datenwort nicht in allen Fällen für eine binäre Operation mit einem zweiten, ein zweites Alphazeichen darstellendes Datenwort geeignet ist, um ein drittes, ein drittes (resultierendes) Alphazeichen darstellendes, resultierendes Datenwort zu ergeben; dies ist deshalb so, weil eine binäre wort- oder zeichenweise Operation mit natürlicher Sprache für den Menschen ohne Bedeutung ist.
Die Modifizierung einer Sprache (hier soll eine Sprache nicht eine Rechnerspräche, sondern eine natürliche.oder menschliche Sprache bedeuten, in der sich Menschen miteinander verständigen, z.B. Englisch, Französisch, Deutsch usw.) hängt zu einem Großteil von der Struktur der Sprache ab. In der englischen Sprache z.B. ist diese in bestimmte Formate strukturiert, je nach Anwendung der verwendeten Wörter. Hier z.B. ist die natürliche Sprache strukturiert in Wortketten und Sätze, und die Sätze in Absätze, um die Verständlichkeit und Lesbarkeit zu erleichtern. In bestimmten anderen Anwendungen kann die natürliche Sprache stärker als in die übliche Satz- und Absatz-Struktur strukturiert sein. Z. B. werden in Gesetzen, öffentlichen Rechtsnormen, Verordnungen, Satzungen, Bestimmungen, Verträgen, Anordnungen
409835/0649
"' " 23BQ023
oder Verfügungen u. dgl. Absätze normalerweise als. Paragraphen* bezeichnet; die Paragraphen können entsprechend in mehrere hierarchisch geordnete Unter-Paragraphen unterteilt sein. Z. B. können unterteilt sein: ein Paragraph in Unter-Paragraphen, die Unter-Paragrapihen in Absätze, die Absätze in Unter-Absätze, die Unter-Absätze In Ziffern bzw. Buchstaben, die Ziffern bzw. Buchstaben in Unter-Ziffern bzw. Buchstaben, diese in Ünter-Unter-Ziffern bzw. Buchstaben usw*, d.h. die Struktur ist geordnet: Jedoch ist die Terminologie zum Definieren einer hierarchisch geordneten Unterstruktur in den Äusführungsbeisplelen der Erfindungnicht wesentlich. Was dagegen wesentlich Ist, ist der Umstand' und die Erkenntnis, daß in einer bestimmten, freien natürlichen Sprache oder in Volltextdateien die Sprache äußerst strukturiert sein kann Und tatsächlich hierarchisch strukturiert sein kann, wobei Unterstrukturen daraus geordnet sein können.
In äußerst strukturierten natürlichen Spräohdatelen dieser Art werden die Teile oder Komponenten der Datei manchmal durch ein Verzeichnis oder durch ein ''Kennzeichen" entsprechend auf menschliche Ausdrücke bezogen, das seinerseits ein Bestandteil der Sprach-Datei ist: weiterhin ist das Kennzeichen gewöhnlich logisch oder geordnet dem entsprechenden Teil der Datei formal zugeordnet, d.h. das Kennzeichen ist geordnet. Typische Kennzeichen sind jene Paragraphen-Nummern Ih Paragraphen einer öffentlichen Rechtsnorm, wie nachstehend erläutert wird. Die Kennzeichen können numerisch, algebraisch oder numerisch-algebraisch sein.
Zweekmäßigerweise sei nun eine bestimmte TerminolOgie erläutert: '---.."-'". ; ''■- -L
Ein logischer Datensatz kann als eine Sammlung von Da-
409835/0649
-H-
ten, bezogen auf ein gemeinsames Kennzeichen, definiert werden.
Ein physikalischer oder körperlicher Datensatz besteht aus einem oder mehreren logischen Datensätzen. Der Begriff "Block" ist äquivalent zum Begriff "physikalischer Datensatz": Block = physikalischer Datensatz.
Ein Byte ist die kleinste adressierbare Informationseinheit des IBM-Systems/360. Ein Byte im Kernspeicher besteht tatsächlich aus neun Bits.
Ein Bit bedeutet ein Binärzeichen, das zwei' Zustände (0 oder 1) darstellen kann. Ein aufgeteilter Datensatz besteht aus mehreren aufeinanderfolgenden Einheiten oder Gliedern. Der Datensatz enthält ferner ein Adreßbuch mit den Namen und der Anfangsadresse jedes Gliedes.
Es ist daher Aufgabe der Erfindung, in Verbindung mit einer Datenbasis für natürliche Sprache, die aus einer Stamm- und einer Änderungsdatei zusammengesetzt ist, ein Verfahren zum Steuern der Operation eines Rechners anzugeben, um aus der Änderungsdatei Operatoren, Operanden und zu den Operanden gehörende Kennzeichen zu bestimmen, wobei der Operand in einem aufgeteilten Datensatz untergebracht ist, und auf den der Operator hinsichtlich eines Satzes aus Kennzeichen für jeden Datensatz des aus der Änderungsdatei bestimmten Operanden angewandt wird, wobei der Operand sich entsprechend auf einen eindeutigen Datensatz des aufgeteilten Datensatzes der Stammdatei bezieht, damit der Sprachtext der Stammdatei in dem eindeutigen Datensatz durch den Sprachtext des eindeutigen Datensatzes des Operanden geändert wird.
4098 35/0649
Die Aufgabe der Erfindung wird bei einem Verfahren zum Steuern der Operation eines Rechners in Verbindung mit Datenwörtern für die Darstellung von natürlicher Sprache in freiem Textformat in einer Änderungs- und in einer Stammdate-i, wobei das Verfahren "dazu dient, aus der Änderungsdatei Operatoren, Operanden und Deskriptoren zu bestimmen, und. den Datensatz der Änderungsdatei aufzuteilen, und wobei der Rechner enthält: einen Speicher zum Speichern von Daten- und Befehlswörtern unter, zugehörigen Adressen; eine Einrichtung zum normalen Steuern der sequentiellen Ausführung von nacheinander adressierten Befehlswörtern; mehrere Register; eine Einrichtung zum Sortieren von Speicher-Datenwörtern in den Registern; eine Einrichtung zum Durchführen von Operationen mit den Datenwörtern und den Speicher-Datenwörtern in den Registern; eine auf die Ausführung eines vorbestimmten Befehls ansprechende Einrichtung, um ein Datenwort in einem vorbestimmten Register zu überprüfen; eine Einrichtung zum Speichern des Operanden in einem der Register; eine den Operator auf den Operanden anwendende Einrichtung gelöst durch folgende Schritte: :
(a) Bestimmen von Operatoren aus der Änderungsdatei-und Speichern eines Codes für den Operator im Speicher;
(b) Ableiten von Deskriptoren aus der Änderungsdatei und Speichern von Gliedern daraus in den Speicher gemäß ihrem entsprechenden Rang; - "■"■.,..-.
(c) Kennzeichnen des Operanden in einen aufgeteilten Datensatz aus Sprachtext und in einen unvollständigen Satz aus Gliedern aus hierarchischen Kennzeichen;
(d) Bearbeiten der Kennzeichen des aufgeteilten Daten-
" satzes nach Schritt (c) und der geordneten Glieder ".-■-im Speicher nach Schritt (b)i um den Satz aus Gliedern der hierarchischen Kennzeichen zu vervollständigen; und"
40 9835/064S
(e) Speichern des Sprachtextes des Operanden und des vollständigen Satzes der geordneten Kennzeichen nach Schritt (d) in Form eines aufgeteilten Datensatzes.
Die Erfindung gibt ebenfalls an: eine Programmiereinrichtung für die Steuerung eines Rechners mit einem Register derart, daß die Einrichtung die iterative Verarbeitung einer Sprach-Datei aus Operanden und Operatoren beeinflußt, wobei die Einrichtung aus der Sprach-Datei ,einen Operator auswählt und diesen in einem Register speichert.
Durch die Erfindung wird also ein Verfahren zum Portschreiben von natürlichen oder menschlichen Sprachdateien unter Verwendung eines rechnerprogrammierbaren Verfahrens sowie eine Anordnung dafür angegeben, zusammen mit einer Einrichtung und einem Verfahren zum Anordnen von Sprachdaten in einen aufgeteilten Datensatz auf einem maschinell lesbaren Datenträger, wobei die Sprachdaten aus einer Hauptdatei und aus einer Änderungsdatei dazugehörige, selbsterzeugte Sätze aus hierarchischen Kennzeichen besitzen, mit den Eigenschaften einer ein-eindeutigen Beziehung zwischen einem Satz aus hierarchischen Kennzeichen und einem Datensatz aus Sprache der gegebenen Datei; ferner
zusammen mit einer Einrichtung und einem Verfahren zum Erzeugen einer Fortschreibungs- und Sohndatei aus der zugehörigen aufgeteilten (Vater)-Stammdatei und (Mutter)-Änderungsdatei, wobei die Sohndatei die fortgeschriebenen Sprachdaten enthält.
Die Erfindung wird nun anhand der Zeichnung näher erläutert. Es zeigen:
35/0649
Fig. 1 ein sehematlsches Blockdiagramm der Anordnung mit erfindungsgemäßen Ausführungsbeispielenj
Fig» 2 ein genaueres schematisches Bloekdiagramm von bestimmten erfindungsgemäßen Ausführungsbeispielenj . >
Fig. 3 eine schematische Parstellung eines eingegebenen logischen Datensatzes der Stammdatei 21 und der Änderungsdatei 22;·
Fig. A eine "-schematische Darstellung eines ausgegebenen logischen Datensatzes der Vater-Änderungsdatei 26 oder Mutter-Änderungsdatei 32;Λ .
Fig. 5 für ein anderes Ausführungsbeispiel ein Blockdiagramm eines ausgegebenen logischen Datensatzes nach Fig. 4, derbenutzt werden kannj y.
Fig. 6 ein anders dargestelltes, genaueres Blockdiagramm für eine FortSchreibungsanalyse 30 nach Fig, 1 und
Fig. 7, 8 und 9 erläuternde Darstellungen von logischen Datensätzen der Mutter-Änderungsdatei J52, um zu zeigen, wie der logische Datensatz Information und den Sprachtext tragt, der bei Wort-Änderung der Vater-Stammdatei bei bestimmten erfindungsgemäßen Ausführungsbeispielen verwendet wird;
Fig.10 eine erläuternde Darstellung mit bestimmten Hauptregiste,rn und Zählern eines Rechners für die Fortschreibungsanalyse;
Fig.11 eine erläuternde Darstellung von bestimmten anderen Registern und Zählern, die bei der Operation auf Glieder der verschiedenen Ordnungen der hierarchischen Kennzeichen angewendet werden, um einen eindeutigen Satz von derart geordneten hierarchischen
Kennzeichen zu bilden, die für jeden logischen Datensatz aus natürlicher Sprache1 oder aus der Mutter-Änderungsdatei 32ywie Adressen verwendet werden·
409835/Ö64S
Fig. 12 eine erläuternde zeichnung der Operation nach Fig. 11;
Fig. 13 ein Beispiel eines Sprachtextes, aus dem die Stammdatei zusammengesetzt ist:
Fig. 14 den Sprachtext nach Fig. 13, der gekennzeichnet ist, und aus dem die Vater-Stammdatei 26 zusammengesetzt ist;
Fig. 15 und 16 Beispiele für einen Sprachtext, aus dem die Änderungs-Dateien zusammengesetzt sind;
Fig. 17 den Sprachtext nach Fig. 15, der durch die Fortschreibungsanalyse 30 nach Fig. 1 und 2 analysiert, synthetisiert und gekennzeichnet ist, und aus dem die Mutter-Änderungsdatei 32 zusammengesetzt wird;
Fig. 18 einen schematisch dargestellten Logikbaum der
während eines besonderen Mischens 33 nach Fig. 1 und 2 den Vergleich der gekennzeichneten logischen Datensätze der Mutter-Änderungsdatei 32 und der Vater-Stammdatei 26 darstellt;
Fig. 19 den aus den Fig. 14 und 17 als Ergebnis des besonderen Mischens 33 abgeleiteten Sprachtext, aus dem die Sohn-Stammdatei 35 zusammengesetzt wird;
Fig. 20 - 72 Programmablaufplane des erfindungsgemäßen AusfUhrungsbeispie1s;
Fig· Ό» 74 und 75 weitere erläuternde Darstellungen von Operationen, die während des besonderen Mischens durchgeführt werden;
Fig. 75 eine Darstellung eines Registers des eingegebenen logischen Datensatzes und zugehöriger Register des Rechners während des Kennzeichnens von logischen Datensätzen aus natürlicher Sprache;
409835/0649
- 9 - ;■■-"■■ ■
Fig. 76 - 86 Beispiele eines Sprachtextes, dessen Zeilen gekennzeichnet sind;
Fig. 87 - 103 Programmabiaufplane für die Kennzeichnung der logischen Datensätze (zeilen) der Fig. 76 - 86;
Fig.104 und IO5 erläuternde Darstellungen zum Vergleich von Wörtern mit einer Feldsuch-Steuerung;
Tabelle O eine Darstellung der Feldpositionen der hierarchischen Kennzeichen in den Daten:
Tabelle 1 eine Logiktabelle für ein allgemeines Datensuchen des Operanden für die Kennzeichen;
Tabelle 2 eine Entscheidungstabelle für Deskriptoren;
Tabelle 3 eine Entscheidungstabelle für einen hierarchi- , sehen Vergleich der Kennzeichen;
Tabelle 4 eine Entscheidungstabelle zum "Aufheben" eines logischen Datensatzes einer Vater-Stammdatei;
Tabelle 5 eine Entscheidungstabelle zum Veranlassen einer Wort-Änderung eines logischen Datensatzes einer Vater-Stammdatei; .
Tabelle 6 einen Datenbasis-Belegungsplan auf einem logi-"--sehen Datensatz;
Tabelle 7 eine Feldpositions-Programmsuch-Steuerkarte; Tabelle 8 eine typische· Feldsuch-Steuerung:
Tabelle 9 Beispiele für einen Ausdruck, wobei bedeuten: -9.0 die Stammdatei, d.h. die Stammdatei für das
Basis jähr i960·; . '.
-9.1. die Vater-Stammdatei der Stammdatei-Tabelle 9.O; -9-2 Änderungsdatei(en)der Stammdatei für die
Jahre 1962, 1963, 1964, 1965, 1966 und 1967; \ -9.j5 die entsprechenden Mutter--Snderungsdatei(en)
der Tabelle 9.2;
0 9835/0 6k9
-9.4 die Sohn-Stammdatei (19β2) aus der Vater-Stammdatei-Tabelle 9.1 und der Mutter-Änderungsdatei-Tabelle 9.2 für I962, ohne Ver- · gangenheitsprüfung;
-9.5 die entsprechende Enkeldatei nach der fünften Änderung, d.h. die Stammdatei (1967) mit Vergangenheitsprüfung;
Tabelle 10 eine Vater-Änderungs-Sohn-Tabelle zur Erläuterung der Erzeugung der Sohn-Stammdatei.
Im bevorzugten Ausführungsbeispiel der Erfindung gehört der Rechner zu einem IBM-Operationssystem 36Ο mit der Programmiersprache COBUL U (Full American National Standard COBOL). Nach Fig. 1 werden die Daten bei 20 eingegeben, vorzugsweise auf MT/ST-Bänder, und dann durch ein (hier nicht dargestelltes j IBM-Standard-Dienstprogramm entweder in ein, Stammdatei-Band oder in ein Änderungsdatei-Band 22 umgesetzt", und zwar in EBCDIC-Sprache, um alle Groß- und Kleinbuchstaben-Daten, runde und eckige Klammern (), ΓΊ, und das Zeichen für Unterstreichen, _ , beizubehalten. Tatsächlich nimmt der Rechner gemäß einem Ausführungsbeispiel der Erfindung die Stammdatei und die Änderungsdatei 22 vorzugsweise mit 75 Zeichen pro logischem Datensatz und mit einer Dichte von 8OO BPI -(Bits pro Zoll) auf, verarbeitet diese Daten jedoch im Arbeitsbereich mit 72 Zeichen pro logischem Datensatz, wie nachstehend · näher erläutert wird, obwohl auch jede andere Datensatzlänge verwendet werden kann. Die ßtammdatei 21 wird gekennzeichnet und auf das Stammdatei-Band 2.6 (Afater-Stammdatei) und wahlweise auf ein Umsetz- oder "Spool"-Band 27 aufgezeichnet. Das gekennzeichnete Stammdatei- oder Vater-Stammdatei-Band 26 hat 240 Zeichen pro logischem Datensatz und einen Blockfaktor der Größe 20, so daß der physikalische Datensatz 20 χ 240, nämlich 4800 ist. Damit sind also 4800 Datenzeichen vorhanden, die jedesmal von einem Puffer zum Speicher (hier nicht darge-
409835/0649
stellt) im Arbeltsbereich übertragen werden. Dies ergibt eine höhere Geschwindigkeit und eine größere Durch.flußleistung. Das Spool-Band 27 andererseits hat 133 Zeichen pro logischem Datensatz mit einem Blockfäktor von 20. 133 Zeichen pro logischem Datensatz wird gewählt, weil ein üblicher Datendrucker nur I32 Zeichen pro Zeile zum Drucken zur Verfügung hat, sowie ein zusätzliches Zeichen für die Wagensteuerung; damit kann der Drucker einen logischen Datensatz pro Zeile ausdrucken. Die Verwendung des Spool-Bandes 2? verhindert, daß die Ausgabe auf 28 direkt vom Kernspeicher des Rechners her erfolgt, wodurch ein unnötiges "Ausdrucken aus dem Kernspeicher"verhindert wird. Das Spool-Band 27 kann bekanntlich über einen Puffer.oder Zwischenspeicher eines Rechners ausgedruckt werden, und zwar in solchen Abständen, daß der Rechner-Kernspeicher am-wirkungsvollsten für andere Prozesse verwendet werden kann; weiterhin erlaubt das' Drucken vom Spool-Band 27 ein schnelleres Drucken als dies möglich ware, wenn das Drucken direkt aus dem Rechner-Kernspeicher erfolgen würde. Da die zu druckenden Daten aus Groß- und Kleinbuchstaben, runden und eckigen Klammern, sowie Unterstreichungszeichen bestehen, muß in manchen Fällen der Puffer des,Rechners (hier nicht dargestellt) mit einem speziellen Pufferladeprogramm, das kommerziell erhältlich ist, geladen werden, damit der Ausdruck in Groß- und 'Kleinbuchstaben-Schreibweise usw. erfolgen kann, während in anderen Fällen bei der Programm-Initialisierung auch die Groß- und Kleinbuchstaben-Eigenschaften initialisiert und diese wie ein übliches Systemprogramm verwendet werden. Tatsächlich ist die Verwendung der Spool-Bänder 27, 37 und 39 weiter vorteilhaft, indem ein Ausdruck auf einem kleinen Rechner, z.B. IBM 36Ο/3Ο, anstatt auf einem größeren 360- oder 370-System erhalten werden kann.
Während der Ausführung der Kennzeichnung wird nach Fig.1 ein Kennzeichner 2k mit 96 Kbit Kernspeicherkapazität ver-
09835/0649
wendet, so daß dieses Verarbeitungsverfahren zufriedenstellend auf einer IBM OS 36O/5O oder auf einer größeren Anlage durchgeführt werden kann. Vorzugsweise wird hier eine IBM 36θ/β5 mit vier Bandeinheiten sowie zwei Plattenstapeln verwendet.
Die Ausführungsbeispiele 29 der Erfindung führen, wie in den Fig. I5 und l6 sowie in der Tabelle 7 dargestellt ist, eine Analyse 30 einer Ä'nderungsdatei aus Sprache durch, die Groß- und Kleinschreibung umfaßt, indem ein Arbeitsbereich auf einer Platte 3], z.B. IBM 2314 mit einem 96 Kbit-Ausführungs-Kernspeicher im Rechnet} verwendet wird, Die analysierte Ä'nderungsdatei wird auf Band 32 (Mutter-Änderungsdatei) ausgegeben und enthält die Änderungsinformation, die zusammen mit den Aktionen (Operatoren) in noch zu beschreibender Weise gekennzeichnet wird, und zwar in einem Format von 240 Zeichen pro logischem Datensatz und mit einem Blockfaktor von 20. Dadurch werden die Daten auf dem Mutter-Änderungsdatei-Band 32 kompatibel mit jenen auf dem Band 26, so daß infolgedessen ein Mischen beider Dateien (d.h. ein Fortschreiben) durch ein besonderes Mischen 33 durchführbar ist, wobei eine 22 Kbit-Ausführungs-Kernspeicherkapazität und ein entsprechender Arbeitsbereich auf der Platte 34 verwendet werden. Das Ausgangsprodukt des besonderen Mischens 33 besteht aus einer geänderten und fortgeschriebenen Stammdatei 35 (Sohn-Stammdatei), mit der gleichen Länge des logischen Datensatzes wie am Eingang (20 χ 240)j wahlweise wird ein Band 36 gebildet, welches die durch das besondere Mischen aus dem Vater-Stammdatei-Band 26 entfernten Daten enthält, außerdem wird wahlweise ein Spool-Band 37 aus den Daten der neuen Stamm- oder Sohn-Stammdatei 35 gebildet, wobei für das Drucken auf einem Drucker ein geeignetes Format gewählt wird. Der gedruckte Text der Sohn-Stammdatei beim Ausdruck 38 wird wie derjenige aus dem Spool-Band erhalten.
Wahlweise kann durch die Fortschreibungsanalyse 33 auch
409835/0649
ein Spool-Band 39 aus den Daten auf Band 32 gebildet werden, um daraus einen gedruckten Text auf 40 zu erhalten. In diesem Fall hat das Spool-Band 39 ebenfalls die Länge eines logischen Datensatzes, 133. Zeichen mit einem Blockfaktör von 20 und bei einer Dichte von I6OO BPI. Entsprechende Beispiele der Ausdrucke 28, 40 und 38 sind in Fig. 5 dargestellt, nämlich für die Vater-Stammdatei in Fig. 14, für die Mutter-Änderungsdatei in Fig. 17 und für die Sohn-Stammdatei in 'Fig. 19. ^.
Vor der Erläuterung von Fig. 2 und ejnes genaueren schematischen Blockdiagramms von bestimmten Ausführungsbeispielen der Erfindung ist es zweckmäßig, die Fig. 3 und 4 und die Komponenten-Zusammensetzung eines eingegebenen logischen Datensatzes 25O der Vater-Stammdatei 26 und danach die des eingegebenen logischen Datensatzes 1.40 der Mutter-Änderungsdatei 32 zu erörtern. Durch das Kennzeichnüngs-Verfahren 24 wird jeder eingegebene logische Datensatz l40 der Stammdatei gekennzeichnet und als adressierter eingegebener logischer Datensatz 250 neu definiert durch einen aufgeteilten Datensatz aus zwei Komponenten, wobei die erste Komponente die Daten des nichtadressiert eingegebenen logischen Datensatzes l40 darstellt, während die zweite Komponente ein Kennzeichenfeld 122 ist, das für jeden eingegebenen logischen Datensatz einen eindeutigen Satz hierarchisch geordneter Kennzeichen enthält, wobei jedes Glied jedes Satzes genau-einmal verwendet wird. Jede Nachbarumgebung stellt eine Zahl der Glieder des Satzes aus Ordnungen' dar, z.B. stehen die Kennzeichen des Kennzeichenfeldes 122 in einem eln-eindeutigen Verhältnis zu irgendeinem logischen Datensatz der Datei. Die hierarchisch geordneten Kennzeichen oder die Kennzeichen mit absteigender Ordnung werden wie Adressen verwendet, da jedes zügehörige Kennzeichenfeld (Satz aus Ordnungen) eindeutig für jeden eingegebenen logischen Datensatz 140 ist. Der gekennzeichnete logische Datensatz 250 stellt in diesem'Ausführungsbeispiel eine horizon-.
0 983 8/064
2360Q23
tale Zeile aus Daten dar, deren Stammdatei eindeutig gekennzeichnet ist, und er wird als solcher auf dem Vater-Stammdatei -Band 26 gespeichert. Eine derartige Vater-Stammdatei 26, in der jeder logische Datensatz eindeutig durch seine eigenen Daten gekennzeichnet ist, kann z.B. eine öffentliche Rechtsnorm enthalten,· in der jede Zeile eindeutig durch einen Satz aus hierarchisch geordneten Kennzeichen im Kennzeichenfeld 122 gekennzeichnet ist, wie genauer in den Fig. 5 oder 6 und 14 dargelegt ist. Das allgemeine Kennzeichnungsverfahren wird hier im· Teil II: "Allgemeine Kennzeichen" erläutert'.
Nach den Fig. J>, 4, 11, 12 und \J> stellt jede horizontale zeile einen logischen Datensatz 140 dar, während der Text einer öffentlichen Rechtsnorm selbst in einem Feld 120 (das aus mehreren logischen Datensätzen l40 zusammengesetzt ist), dargestellt ist. Wie aus Fig. Ij5 hervorgeht, setzt sich das Textfeld 120 aus Wörtern 110 zusammen, die aus seriell angeordneten Buchstaben 111 bestehen, um sinnvolle Sätze zu ergeben, wie für englische Sprache noch genauer gezeigt wird. Durch das Kennzeichnungsverfahren 24 wird jeder der logischen Datensätze der Stammdatei 21 eindeutig gekennzeichnet, wie in Fig. 14 genauer dargestellt ist, wo das 'Kennzeichenfeld 122 mehrere hierarchisch geordnete Ordnungen 99, 100, 124, 125 und 13O von Kennzeichen enthält, deren jede Ordnung Glieder enthält, d.h. in der Ordnung 99 sind alle Glieder "U094", während in der Ordnung 124 die Glieder dieser Ordnung von 1-5 variieren, wogegen in der Ordnung 125 die Glieder nur aus den Gliedern "l" und "2" und in der Ordnung 126 aus "a", "b" und "c" bestehen, während die Ordnungen 127 - 129 fehlen; dies gilt für die Daten dieses Teiles der Stammdatei nach Fig. 13. Somit können die Ordnungen der Kennzeichen im Kennzeichenfeld 122 nicht nur hierarchische Ordnungen daraus enthalten, die sich aus der inneren Struktur
35/0649
■—"V 2360Q23
der Datei ergeben, nämlich strukturierte hierarchische Ordnungen 125 - 130, sondern auch zugeordnete Ordnungen", 99 und 100, die dominieren oder einen höheren Rang als die struktu- '. rierten hierarchischen Ordnungen besitzen können. Diese geordneten Ordnungen bestehen meist aus zwei Arten, nämlich aus einer Datei- oder Kapitelnummer und aus einer Datumsoder Zeitrahmenordnung: Jahr, Monat, Tag usw. In diesem Ausführungsbeispiel ist die Kapitelnummer die Ordnung 99 und hat vorzugsweise drei Ziffern, z.B. Kapitel 094 in der be-· sonderen öffentlichen Rechtsnorm: "Gesetz über das Unterrichtsministerium11 der Provinz Ontario,λ Kanada,
Die Zeitrahmenordnung 100 ist in den Kennzeichen.enthalten. Wenn der zeitrahmeh nur aus den letzten beiden Ziffern eines Jahres besteht, werden diese wie bei der Ziffer100. angezeigt, während die in der Ordnung 99 dargestellte Kapitelnummer aus drei Ziffern besteht, z.B. "09V, da der Normenbzw. Gesetzgeber mehr als100 Normen- bzw. Gesetzesänderungen pro Jahr vornimmt. Die Kapitel- und Zeichenrahmenordnungen werden vorzugsweise als zusätzliche Haupt-Kennzeichenordnüngen in das Kennzeichenfeld 122 (Fig. 5> l4 und IT) eingefügt. Vorzugsweise werden sie so-eingefügt, daß die Zeitrahmenordnung vor der Kapitel- ,oder Dateinummer steht. Dies ist darin vorteilhaft, wenn die Datenbasis aus öffentlichen Rechtsnormen besteht, da der Gesetzgeber jeder Gesetzesvorlage oder jedem Gesetz in aufeinanderfolgenden Sitzungen dieselbe Dateioder Kapitelnummer' zuteilt, so daß verschiedene Dateien dieselbe Kapitelnummer und denselben Namen, aber einen versohle-, denen Wert für die Zeiträhmen'ordnung haben können, wenn sie in verschiedenen Sitzungen beschlossen worden sind..Nur aus dem Wert der Zeitrahmenordnung kann die Eindeutigkeit dieser Datei festgestellt werden, wenn die Datenbasis alle Rechtsnormen des Gesetzgebers über mehrere Jahre hinweg enthält. In anderer Hinsicht ist die Äusgeglichenheit oder der Be-
40983570649
stand oder das Gleichgewicht des Kennzeichenfeldes, insbesondere der strukturierten hierarchischen Ordnungen, eine, charakteristische Eigenschaft der Datei selbst, gemäß dem Charakter dieser Datei, vgl. Fig. lh, in der die Glieder der Paragraphen bzw. Unter-Paragraphen darstellenden Ordnungen 124 bzw. 125 usw. sich ändern, da sich die Datei-Zeilen von Paragraph 5 bis Paragraph 2 usw., Unter-Paragraph 7* 2 usw. und in Paragraph 5 in den Ziffern bzw. Buchstaben "a" - "d" ändern. Wie ersichtlich, sind die zugeordneten Ordnungen der Kennzeichen 99 und 100 in den Daten, wie üblich, in einer festen Feldposition untergebracht, vgl. hierzu Fig. 13 und 14, Kennzeichen 99 und 100; bei dem hier beschriebenen Verfahren werden diese Werte in diese festen Feldpositionen aufgenommen und gemäß ihrer Wichtigkeit und ihren Werten dem Kennzeichenfeld zugeordnet, so daß sie als Glieder zu jedem eindeutigen Satz aus Ordnungen von Kennzeichen für jeden logischen Datensatz l40 der Datei erscheinen (siehe Fig. 13). Insbesondere steht die Kapitelnummer im Codeblock 99 über der entsprechenden Kapitelüberschrift oder über dem Kapitelnamen 94 der Textinformation, die aus diesem Teil der Datei besteht; die eindeutigen Sätze aus hierarchisch geordneten Kennzeichen (vgl. Tabelle 0.0) werden für irgendeine gegebene Datei wie üblich aus der Struktur der Datei gebildet, wogegen einer Datei auch stärker geordnete Ordnungen zugeordnet sein können, z.B. Zeitrahmen- und Dateinummer, um dieser Datei ein eindeutiges Kennzeichen mit GrundOrdnungen zu geben, so daß diese Datei von anderen Dateien durch die Glieder dieser Grundordnungen unterscheidbar ist.
DATENBASIS-ÄNDERUNG
Zur weiteren Erläuterung der Erfindung ist es zweckmäßig, übliche menschliche Verfahren zur Verarbeitung von Text zu betrachten. Die wahrscheinlich am höchsten entwickel-
35/0649
- 17'-■ - -
ten Verfahren gibt es für die Änderung von Rechtsnormen, die vom Normengeber erlassen werden. Von vielen Normengebern werden Änderungen von Rechtsnormen durch ein Änderungsgesetz bzw. eine Änderungsnorm durchgeführt. Während der Zeit, in der die Änderungsnorm vom-Normengeber erarbeitet wird, wird sie,in der normgebenden Körperschaft des entsprechenden Normengebers behandelt; während dieser Behandlungszeit wird sie vom Normengeber und anderen,normalerweise als Normenvorlage oder als Rechtsvorschrift bezeichnet. Die Normen- bzw. Gesetzesvorlage oder die Norm bzw. das Gesetz wird normalerweise in einer festgelegten Form oder Format dargestellt; wenn. z.B. eine Gesetzesänderung des Paragraphen 1 des Gesetzes über das Unterrichtsministerium (Fig. 1J5) gewünscht wird, kann dieses als Änderungsnorm bzw. -gesetζ (Änderungsdatei 22) in der in Fig. 15 dargestellten Form erscheinen. Das Änderungsgesetz (Änderungsdatei 22) enthält den Text 200. Genauer gesagt, der Text 200 enthält die Überschrift oder den Titel 97 -und die Kapitelnummer 99, die diese besondere Gesetzgebung zahlenmäßig kennzeichnet, mit einem durch die norm- bzw. gesetzgebende Körperschaft gewählten Zeitrahmen 100, z.B. ein Kalenderjahr. Die Änderungsdatei 22 (Änderungsgesetz) enthält im Sprachtext 200 einen Einführungsabschnitt 201 und mehrere Ausführung sparagraphen 202, die die besonderen Änderungen von Rechtsnormen und zugehörigen Instruktionen beinhalten. Nach Paragraph 1 der Fig. 15 enthält der.Ausführungsparagraph 202 eine Weisung 20J, nämlich: "Paragraph 1 des Gesetzes über das Unterrichtsministerium wird geändert durch Hinzufügen der folgenden Bestimmung:" Dieser Satz, die Weisung 203 des' Paragraphen 1, befiehlt das Bearbeiten bestimmter Daten oder deren Ausführung, z.B. eines zugehörigen Operanden 204: "(ca) "Eine Privatschule" ... Unterrichtsbehörde unterstehen." Die v Weisung 203 enthält Deskriptoren oder Stichwörter-224, 226, 228 usw. (vgl. hierzu Tabelle 0.0), die die Kennzeichen 122 in hierarchische oder geordnete Ordnungen einordnen und somit die den. Ordnungen entsprechenden Glieder 124, 125 und 126
40 98 3 5/064 9
bewerten; die Weisung enthält ferner Operatoren 215, die die durchzuführende Operation definieren, gefolgt von einem geeigneten Satzzeichen 219, z.B. einem Doppelpunkt. Die geordneten Kennzeichenglieder 124 - 130 und Operator(en) 215, die in der Weisung 203 enthalten sind/ oder jene, die z.B. durch einen Dateinamen 210 daraus abgeleitet sind (vgl. Fig.15) beinhalten die gesamte, zum Anwenden des Operanden 204 (Fig.12) benötigte instruierende Information.
Die zu den Deskriptoren gehörenden V/er te (.somit der Wert jedes Gliedes der hierarchisch geordneten Kennzeichen) werden in der Weisung 203 auch dahingehend analysiert, wo die Aktion auf den Operanden durchgeführt werden soll. Danach muß der Operand analysiert werden, um seine hierarchische Position zu bestimmen und um jedes logische Operandenwort zusammen mit seinem· eindeutigen Satz ,aus hierarchischen Kennzeichen durch den logischen Datensatz zu speichern, wobei der Satz aus Kennzeichen dazu verwendet wird, den Änderungsbereich auf der Vater-Stammdatei 26, d.h. das Gesetz nach Fig. 13, beim nachfolgenden Verarbeiten, z.B. beim besonderen Mischen 33, zu bestimmen.
Nach Fig. 1 und dem Programmablaüfplan der Fig.- 20 wird bei der Anweisung 9OO eine Stammdatei 21 und eine entsprechende Änderungsdatei 22 für die Dateneingabe eröffnet. Für die · Datenausgabe wird entsprechend die Stammdatei 26 (die wie üblich gekennzeichnet wird und deshalb nachfolgend auch als Vater-Stammdatei 26 bezeichnet wird) und ein zugehöriges Spool-Band 27 eröffnet, wie nachfolgend beschrieben wird. Zwei weitere Ausgabebänder werden für die Änderung der Daten 22 eröffnet, nämlich ein Änderungsdatei-Band 32, das eine oder mehrere Änderungsdateien enthalten kann, wobei die Änderungsdaten in einer noch zu beschreibenden Weise gekennzeichnet und hier manchmal als Mutter-Änderungsdatei 32 bezeichnet werden, sowie ein zugehöriges Spool-Band 39· Die entsprechenden Spools können in Form von Ausdrucken 28 und
40983570649
ausgegeben werden.: Die Stämmdatei 21 und die Anderungsdatei 22, die Spool-Bänder 27 und 39, die Vater-Stammdatei 26 .ebenso wie die Mutter-Änderungsdatei 32, sowie ein (nicht dargestellt' ter Kartenleser) werden eröffnet. Bei Anweisung 9OI.wird eine Programmsteuerkarte nach Tabelle 7 durch den Kartenleser eingelesen, wobei dur'Gh das Verfahren die Steuerinformation des Ausführungsbeispiels eingelesen wird, die in -den verschiedenen Feldpositionen der in Tabelle 7 gezeigten Steuerkarte angeordnet ist. Bei Anweisung 902 wer- den-mehrere Register und Unter-Register oder Tabellen Im Arbeitsbereich:31 einschließlich des Bereichs zur Feldsuch-Steuerung festgelegt. Der Peldsuch-Steuerungsbereich setzt sich aus drei Unter-Registern oder Tabellen zusammen, nämlich aus der Kapitelnamen-Tabelle, Äktions-Tabelle und Deskriptor-Tabelle. Die Kapitelnamen-Tabelle hat zugehörige Kapitelnummern (da einige der Daten nur mit Kapitelnummern eingegeben werden, und-eini'ge nur mit Bezug auf Kapitelnamen, muß eine Korrespöndenztabelle. zwischen den Kapitelna- men und den Kapitelnümmern hergestellt werden)„ Die Äktions-Tabelle bestimmt Schlüsselwörter, die durch die erfindungsgemäßen Ausführungsbeispiele bezüglich aus der Änderüngsdatei 22 abgeleiteten Befehlen analysiert und anschließend in die Mutter-Ä'nderungsdatei 32 eingefügtvwerden, vgl. Aktions-Tabelle· 4.0. Die Deskriptor-Tabelle 2.Överwendet für die Anwendung in den Ausführungsbeispielen Wörter der . natürlichen Sprache, die einer menschlichen Bezeichnung verschiedener, hierarchisch geordneter^ Kennzeichen ent- · sprechen, und ordnet die Zahlenangaben unmittelbar nach den Deskriptoren, die Glieder der Ordnung, in die hierarchischen Kennzeichen-FeidpOsitionen der Tabelle 0,0 ein. Infolgedessen sind diese Tabellen bei Anweisung 903 im Rechner vorhanden. -,■'■■" ■ -/:.-. v- _ ;.
Es ist zweckmäßig, sich nun direkt auf die erfindungsgemäßen Ausführungsbeispiele zu beziehen, im wesentlichen
40 983 5/06 49
auf 29 nach Fig. Ij die Kennzeichnung der Stammdatei 21, die zur Bildung der Vater-Stammdatei 2.6 dient, wird an dieser Stelle nicht näher behandelt. Bei Anweisungen 904 und 905 werden mehrere Zähler, deren Name und entsprechende Funktion bei der' fortlaufenden Beschreibung der Programmablaufpläne näher beschrieben wird, auf Null gesetzt. Der entsprechende Operationsbereich und die Register im Arbeitsbereich 31 werden zum Drucken und Verarbeiten gelöscht. Nach Fig. 20·wird bei Anweisung 906 der erste logische Datensatz l4o in einen geeigneten Puffer des Arbeitsbereichs 3I eingelesen und ein Zähler I eingestellt. Der Wert von I dient als Zeiger für die Eingabe des phjrsikalischen Datensatzes der A'nderungsdatei 22. I hat einen Wertbereich 1 - l44O (20 χ 72). Bei Anweisung 909 nach Fig. 21 wird der Wert eines Zählers K, der die Länge des logischen Datensatzes auf 72 einstellt, um 1 erhöht, bis in den Puffer ein erster eingegebener logischer Datensatz aus den ersten 72 Zeichen der Daten aus der A'nderungsdatei 22 lagerichtig eingegeben ist. Anschließend wird ein Prüfzähler eingerichtet, um verschiedene TAB-Codes aufzunehmen, wie sie aus den MT/ST-Bändern der Einheit 20 erscheinen, um die TABS gemäß einer TAB-Tabelle zu übersetzen, und um die Werte von K vorherzubestimmen, die von der Lage der vielen TABS auf den MT/ST-Bändern abhängig sind. Dieses Verfahren wird in den Ablaufplänen deutlich offenbart. Zum besseren Verständnis der Erfindung ist es trotzdem zweckmäßig, das Verfahren im Zusammenhang zu betrachten, da es wichtig für ein volles Verständnis der Ausführungsbeispiele und doch unabhängig von diesen ist.
Die Eingabe der Änderungsdaten 22 (und ebenso der Vater-Stammdatei) läßt sich am deutlichsten anhand Fig. I5 und des Ablaufplanes nach Fig. 21 - 24 erläutern. Wenn die Daten auf den MT'ST-Bändern, zusammen mit den dadurch festgelegten TAB-Codes, erzeugt werden, hält ein TAB eine Schreib-
409835/064S
maschine auf verschiedenen Positionen der Seite (Feldpositionen) an, um die für verschiedene Teile der Textdaten erforderlichen Einrückungen zu berücksichtigen, nämli.ch die Einrückurigen für Paragraphen, Unter-Paragraphen, Ziffern bzw. Buchstaben, Unter-Ziffern bzw. -Buchstaben usw., vgl. Fig. und 14 und Tabellen 0.0 und 0.1. Wenn das MT/ST-Band vorbereitet wird, werden nicht nur Groß-'und Kleinbuchstaben und Satz-Datenzeichen erzeugt, sondern auch Hervorhebung, Leertaste SB, Rücktaste BS, Wagenrücklaufcode CR und Tabulator-Halts,TAB (entspricht auf dem MT/ST-Band einem Code "05"). Abhängig.von dem tatsächlichen Wert der TABS, die durch den Dateneingabe-Operator auf dem MT/ST-Band eingestellt werden, kann eine zu den TAB-Halts gehörende TAB-Tabelle angefertigt werden. Nach Fig. 22 und 23 werden hier TAB-Halts bei 3, 7, 11, 15, 17, 23, 31 und 39 -verwendet; es kann somit eine Schrittfunktion erzeugt werden, damit genügend Leerstellen, oder genauer gesagt: Leerräume, in einen auszuführenden, eingegebenen logischen Datensatz so eingefügt werden, daß die Textdaten im eingegebenen logischen Datensatz eine feste Länge haben und dementsprechend genügend weit nach rechts eingerückt sind, um sich an die während der Datenaufbereitung erzeugten TAB(S) anzupassen. In den vorliegenden Ausführungsbeispielen nimmt TAB folgende Vierte an, wenn die Daten aus dem Puffer in den eingegebenen logischen Datensatz umgewandelt werden;
TAB-Tabel:le K V
< 4 3
0 < 8 7
4 < 12 11
8 < 16 15
12 < 18 17
16 < 24 23
10 < 32 31
24 < 40 39
32
40 9835/06:4
Die Fig. 21 usw. zeigen Programmablaufplane, die zum Erzeugen der Prozedursprache COBUL U verwendet werden können, mit der die offenbarten Ausführungsbeispiele implementierbar oder praktisch durchführbar sind, wobei Programmierer, die mit COBOL vertraut sind, keine Schwierigkeit bei . der Übersetzung der Programmablaufpläne in eine geeignete Prozedursprache auf einer im wesentlichen ein-eindeutigen Basis haben, und wobei die Durchführung auf einem IBM 36O/5O-Rechner oder auf einem größeren Rechner möglich ist, wie bereits früher erwähnt. Wenn das angeschlossene Zeichenregister nach den TAB-Tabellen einen TAB-Code schaltet, springt der I-Zeiger, der normalerweise dieses Zeichen aus dem physikalischen Datensatz mit diesem Wert schaltet, in das Register des eingegebenen logischen Datensatzes; dabei bleiben der zugehörige Wert ν und die Leerräume in diesem logischen Datensatz erhalten, was durch Anweisungen 9IO - 9J52 dar ge- ' stellt wird. · -
Da bei der manuellen Eingabe 20 nach Fig. 14 (Paragraph 2 (2) auch ein Unterstreichen-Zeichen,_ , vorkommt, muß dieses beibehalten werden, wodurch die Einheitlichkeit des Unterstreichens für alle zugehörigen Zeichen gewahrt wird. Dies wird im Anschluß an die Beendigung der TAB-Folge mit Anweisungen 933 bis 941 durchgeführt,' wobei die Unterstreichen-Codes in relativen Positionen des eingegebenen logischen Datensatzes angeordnet sind, nämlich in einem zweiten 72-Zeichen-Feld des eingegebenen logischen Datensatzes, des "eingegebenen logischen Unterdatensatzes", das unmittelbar nach dem ersten 72-Zeichen-Eingabefeld und benachbart zu diesem erzeugt wird, in dem die Sprach-Datenzeichen oder -elemente angeordnet sind (Tabelle 6). Nach Fig. 3 und 24 befinden sich die ersten 72 Zeichen eines eingegebenen logischen Datensatzes (innerhalb desselben Registers) im Sprachfeld des eingegebenen logischen Datensatzes, jene
409835/0649
für das Unterstreichen sind in einem Nachbarfeld des logischen Datensatzes, das nach Tabelle 6 "unter" heißt. Die erfindungsgemäßen Ausführungsbeisplele sind entweder, mit. oder ohne Unterstreichen anwendbar; im "letzteren- Fall besteht der eingegebene logische Datensatz aus nyr 72 (75) Zeichen.und aus dem einzelnen Sprachfeld l40> während im ersten Fall der eingegebene-logische Datensatz aus zwei Teilen mit 75 Zeichenpositionen besteht, wobei ein Teil Textdatenzeichen und der andere Teil Unterstrelchen-Codes und. Leerstellen-GOdes enthält, und wobei die Unterstrelchen-Codes in der zeichenpösitiön des zweiten Teils angeordnet sind, entsprechend zu der Zeichenposition des damit verbundenen ersten Teils. Zum vollen Verstehen der Äusführungsbeispiele. der Erfindung, müssen jedoch die. hier zusammenge-. faßt ausgedrückten TAB- und Unterstreichen-Prozeduren nicht voll verstanden werdehj da sie zum.Verstehen der Erfindung nicht kritisch sind. Es genügt die Feststellung, daß jeder eingegebene logische Datensatz natürliche Sprache in einer •Form nach Fig. 3 anordnet, d.h. nur im Sprachfeld-Bereich l40 (Unterstreichen vernachlässigt). Somit wird die Sprache s die sich.z.B.. entweder auf den Spools 27 oder 28 oder tat- , sächlich auf -Spool" 37 befindet, auf .die entsprechenden Ausdrucke 28, 40 und 38 ausgegeben, und die; zugehörige Information wird tatsächlich ausgegeben, da für die: Unterstreichungen die Feldpositionen 166 - 2;+0 des ausgegebenen logischen Datensatzes reserviert sind (vgl. Tabelle 6).
DIE EIQENTLICHE .ERFINDUNG - Λ
-." TEIL· Γ■--; ÄNDERUNGSDATEI-ANALYSE:: -~; .V
Es ist wichtig festzustellen, daß: zunr Fortschreiben der Vater-Stammdätei 26 durch die MUtter^Xnderungsdatei 32 zuerst die Änderungsdatei 22 analysiert werden muß, um die Mutter-
409835/06^9
A'nderungsdatei J>2. zu erzeugen. Die Analyse im bevorzugten Aüsführungsbeispiel umfaßt: Kennzeichnung der wirksamen Paragraphen, (Weisungs-Kennzeichnung); Bewerten eines Gliedes jeder Ordnung eines hierarchischen Deskriptors in der Weisung; Bestimmen, welche Aktion(en) auf den Operanden bevorzugt anzuwenden sind, einschließlich Kapitel-Erkennung, Operator-Erkennung, Operanden-Kennzeichnung (die im wesentlichen wie üblich durchgeführt wird); und Erzeugen einer Referenz für eine Datei-Vergangenheits-Prüfung 250, indem die während der Weisungs-Kennzeichnung und der Operator-Erkennung (PortSchreibungsanalyse 30) erhaltene Information verwendet wird.
(i) Weisungs-Kennzeichnung
Nach dem Programmabiaufplan von Fig. 25 wird durch eine Wenn-Anweisung 1001 bestimmt, ob der eingegebene logische Datensatz innerhalb des Arbeitsbereiches ein erster eingegebener logischer Datensatz der ersten Zeile eines wirksamen Paragraphen ist, d.h. der ersten Zeile einer neuen Weisung der Ä'nderungsdatei. Dies erfolgt speziell durch Bestimmen darüber, ob die Feldpositionen oder 2 oder nur 1 des logischen Datensatzes durch eine Nummer belegt sind, die die Nummer des wirksamen Paragraphen und damit die Weisungsnummer darstellt, wobei die Belegung entweder in einer Stelle oder in zwei Stellen erfolgt, und ob diese Nummern in sequentieller Ordnung zu jenen sind, die durch eine vorhergehende Analyse von vorhergehenden wirksamen Paragraphen ermittelt worden sein können. Dies wird mit Wenn-Anweisungen 1001 und 1002, die die in den Feldpositionen 1 und 2 des logischen Datensatzes gefundenen Datenelemente in ein numerisches Speicherregister NRS übertragen, wenn die Datenelemente numerisch und von einem "Punkt" gefolgt sind. Man muß prüfen, ob die Folge deser Nummern, die gerade aus den Feldpositionen 1 und 2 oder nur 1 abgeleitet
409835/0649
worden sind, eine Folge zu früher abgeleiteten Nummern darstellt; falls, dies zutrifft, ist die Nummer .tatsächlich" eine Nummer eines wirksamen Paragraphen und somit der Weisung; andernfalls, wenn die Folge nicht Bestandteil der abgeleiteten Njummer ist, gehört die Nummer nicht zu einem Paragraphen. Somit muß zuerst die Folge geprüft werden, wozu ein Zwischen-Speicherregister TRS mit einem Anfangswert Eins vorgesehen wird. Als nächstes wird der Wert dieses Zwischen-Speicherregisters TRS mit den Feldpositionen 1 und 2 oder je nachdem nur mit 1 verglichen, wobei dann, wenn zwischen diesen entsprechenden Werten des Zwischenspeicherregisters und des numerischen Registerspeichers Gleichheit festgestellt wird,,der Wert von TRS in ein ständiges numerisches Speicherregister übertragen und anschließend eine Eins zu TRS addiert wird; dies ist im allgemeinen ein sequentieller Zuwachs des TRS, wodurch siehergestellt wird, daß jede Ziffer t die sich in den Feldpositionen l und 2 oder nur in 1 befindet (je nachdem, ob es sich um einzelne oder eine doppelte Ziffer handelt), tatsächlich, eine Ziffer eines Weisungs-Kennzeichens ist und nicht nur eine Ziffer im normalen Sprachtext, wie durch einen Vergleich von TRS und NRS ermittelt werden kann. Die Addition einer Eins zu NRS findet bei Anweisung 1004 statt; wenn die Speicher bei Anweisung 1005 gleich sind, wird der Wert des Zwischenspeicherregisters durch eine Bring-Anweisung 1006 nach Fig. 26 zum numerischen Speicherregister NRS übertragen. Das numerische Speicherregister enthält nun den aktuellen wert des Kennzeichens des wirksamen Paragraphen (Weisung), und dieses Welsungskennzeichen (oder die Paragraphennummer der Weisung) wird, zum Einfügen in die Vergangenheitsprüfung verwendet, verbunden mit einer Zusammenstellung dieses in der Weisung enthaltenen Operators, was in einer noch genauer erklärten Weise ermittelt wird, vgl. Aktions-Tabelle, Tabelle 8.0. Durch Überlegung findet man, daß das numerische Speicherregister jedesmal um Eins
409835/0649
zunimmt, wenn sich die erste zeile eines neuen wirksamen Paragraphen der Änderungsdatei im Eingaberegister des logischen Datensatzes befindet. Wenn andererseits bei Anweisung IOO5 der Fig. 2.6 die werte der- Register NRS und TRS ungleich sind, ist die Ziffer in den Feldpositionen 1 und 2 oder 1 eine Ziffer im Sprachtext selbst und kein Kennzeichen (d.h. der logische Datensatz dazu ist offensichtlich nicht die erste Zeile einer V/eisung); anschließend erfolgt der Übergang auf Anweisung 17OI von Fig. 27.
Fig. 17 zeigt, daß wirksame Paragraphen Unter-Paragraphen und somit Unter-Weisungen besitzen; es wird nun ein analoges Programm gestartet, beginnend bei Anweisung 1J5O1 nach Fig. 25, um festzustellen, ob in den Feldpositionen 3, 4, ' 5 und 6 zwischen offenen und geschlossenen Klammern Ziffern angeordnet sind, z.B. (1), jedoch im Anschluß an eine Paragraphennummer -Er kennung, was mit den Anweisungen 1002 - IOO5 durchgeführt wird. Das Unter-Paragraphen-Kennzeichen des wirksamen Paragraphen wird dann in ähnlicher Weise aufgezeichnet; dazu wird ein numerisches Unter-Speicherregister SNRS mit einem Unter-Zwischen-Speicherregister STRS (mit dem Anfangswert Eins) eingerichtet. Wenn die Wenn-Anweisung IOO5 ergibt, daß die Werte dieser beiden Unter-Register gleich sind, überträgt nach Fig. 25 eine Anweisung 1202 den Wert von SNRS nach STRS und zu STRS wird eine Eins addiert; somit hat das Unter-Zwischen-Speicherregister den kontinuierlich wachsenden Wert für eine sequentielle Betätigung und das numerische Unter-Speicherregister hat tatsächlich den Wert des Unter-Paragraphen-Kennzeichens für den wirksamen Unter-Paragraphen, der in der Vergangenheitsprüfung 250 eingesetzt wird, wie nachstehend erklärt wird.
Wenn bei der Anweisung I301 nach Fig. 25 kein Weisungs-Unter-Paragraph vorhanden ist, geht es direkt zur Anweisung
409835/0649
l401 weiter, wo geprüft wird, ob die ersten sechs FeIdpösitionen eine Doppelziffer^ParagraphenFeferenz und , eine einzelne Unter-Paragraphenziffer'haben; wenn ja, werden sie durch die Anweisung I302 gespeichert, andernfalls erfolgt der Übergang zur Anweisung 150IA für den vollen Aufzeichnungsbereich des eingegebenen logischen Datensatzes für Leerräume, d.h. ob die 72 Zeichen des logischen Datensatzes 140 mit Leerräümen besetzt sind. Wenn der logische Datensatz aus Leerräumen, d.h. aus einer Leerzeile beisteht, wird: der nächste logische Datensatz durch Übergang auf Anweisung 15OI der Fig. 2? .verarbeitet, .wobei dann, wenn dieser ebenfalls. Leerräume aufweist,, zum "Ende der Datei!1 fortgeschritten wird, verbunden mit dem Schließen der Bänder und dem Anhalten des Programmlaufs, indem anschließend Anweisungen 7170 - 7173 der Fig. 51 durchlaufen werden. Wenn andererseits der Datensatz bei der Anweisung I50IA der Fig. 25 bestimmt, daß der einen physikalischen Datensatz enthaltende Arbeitsbereich nicht mit Leerräumen besetzt. ist,, wird auf 1402 ]AÖ5 übergegangen> um den Doppelziffer-Paragraphen ebenso wie die Doppelziffer-Uriter-Paragraphennummern: aufzuzeichnen. Auf diese Weise werden der Weisüngsparagraph und die Unter-Paragraphenglieder erkannt und gespeichert, worauf anschließend. Anweisung 17Ql folgt und Anweisung l8öl, mit der versucht wirdj das End« des logischen Datensatzes zu .erkennen, da bekannt ist, daß entweder ein wirksamer Para- '." graph und somit ein Operand oder nur eine Weisung (möglicherweise eine Unter-Weisung) der Ä'nderungsdatei beendet wurde. In jedem Fall muß die gesamte notwendige Information bezüglich einer Weisung, einer Unter-Weisung oder eines Operanden in mehreren Tabellen und/öder Speichern angeordnet werden, worauf der nächste folgende logische Datensatz eingelesen werden muß. \ . :
Nun ist es zweckmäßig. Fig*;10'und 16 und den Programm-409835/0649
ablaufplan der Pig. 27 zu erörtern. Bei 19OI wird ein' I-Zähler ICOUNT eingesetzt, der als Zeiger für die verschiedenen Feldpositionen innerhalb des vollen physikalischen Datensatzes 145 dient, der im AusfUhrungsbeispiel aus einer Anzahl von logischen Datensätzen besteht, multipliziert mit dem Blockfaktor der Größe 20 (20 gehört zu den Standard-Blockfaktoren für die Rechner IBM OS/36O oder 370, so daß der physikalische Datensatz angesichts des logischen Datensatzes aus 72 Zeichen die Länge l44O hat). Als Folge davon liegt der Wert von ICOUNT zwischen 1 und l440 und der Zeiger wird in die genaue Feldposition gebracht, die den laufenden Wert des Zählers ICOUNT hat. Durch eine Addier-Anweisung 19OI der Fig. 27 wird der Wert von ICOUNT um Eins erhöht, wodurch der Zeiger nicht nur über den physikalischen Datensatz 145, sondern auch über den laufenden logischen Datensatz l40 innerhalb des physikalischen Datensatzes bewegt wird. Es ist zweckmäßig, einen zweiten Zähler zu definieren, den "Bewege-Zähler" MC, der Werte von 1-75 annimmt, um einen weiteren Zeiger zur Feldposition jedes gegebenen, eingegebenen logischen Datensatzes im "Register des eingegebenen logischen Datensatzes" 146 zu bewegen. Die verwendeten logischen Datensätze haben, wie bereits erwähnt, feste Satzlängen aus 75 Zeichen, obwohl die Länge je nach Anwendung und je nach verwendetem Rechner auf jeden beliebigen Wert geändert werden kann. Anweisung 2001 bestimmt, ob MC gleich 75 ist, d.h. ob die Analyse so weit fortgeschritten ist, daß ein voller eingegebener logischer Datensatz 4l eingegeben worden ist. Falls dies der Fall ist, führt Anweisung 2002 auf die Anweisungen 1001 - I8OI, um zu bestimmen und zu prüfen, ob das Ende der Datei erreicht ist, und Anweisung 2101 führt die aktuelle Prüfung des bereits oben erörterten "Endes der Datei" durch.
In Programmschritt 23OI der Fig. 28 (das ist die erste
409835/0649
Anweisung eines Paragraphen-Programms mit dem Namen "Nächst-Wort Bereich") wird im Arbeitsbereich 31 ein neuer Arbeitsbereich definiert,'nämlich der "Wortbereich" WA. Ferner werden zwei neue Register für den Wortbereich definiert: "Wortzahl-Register" WGR und "Ziffernzähl-Register" DCR, wobei WCR die Wörter in WA zählt und DCR die Zeichen jedes Wortes. Nun enthält der Wortbereich mehrere logische Datensätze, die gleich einem physikalischen Datensatz 145 sind, wie in Fig. 10 grafisch dargestellt ist. Jedes Wort in WA ist durch den laufenden Wert von WCR bestimmt und jedes Zeichen eines Wortes durch die kombinierten Werte von WCR und DCR. Dies -wird am Beispiel des Paragraphen 1, Zeile 2 der Fig. 15 gezeigt, die lautet: "by adding thereto the following '■'■'■ clause", ("durch Hinzufügen der folgenden Bestimmung:"); der Buchstabe "e" des Wortes "the" würde-den wert j5 im. Register DCR ergeben, während das Register WCR den Wert hätte. Auf diese Weise läßt sich durch die beiden Register DCR und WCR die Bezugnahme auf ein Wort und auf einen Buchstaben eines Wortes durchführen. ^
Der Programmablauf wird mit dem Schritt 2301 fortgeführt, durch den eine Eins in das Register DCR übertragen und entsprechend das Register WCR um Eins erhöht wird. Als Folge davon wird der erste Buchstabe des nächsten Wortes geschaltet, d.h. der Buchstabe "f" des Wortes "following" im obigen Beispiel, wobei DCR auf 1 und WCR auf 15 ge- , setzt wird. Bei Anweisung 2401 wird eine weitere neue Tabelle im Arbeitsbereich 31 definiert, nämlich die "Zähltabelle" TC, die aus zwei Unter-Registern, einem "Worteinheit-Unter-Register" WU und einem "Finde-Wort-Unter-Register" FW zusammengesetzt ist, vgl. Fig. 10. TC bewirkt eine Speicherung von Wörtern aus dem Wortbereich WA5gemäß der entsprechenden, durch die kombinierten Werte von WCR und DCR
gegebenen Position in der Weisung. Bei der Anweisung 2401 wird der Wert von WCR, zusammen mit dem dazugehörigen Wort in relativer Nebeneinanderstellung in die Zähltabelle übertragen, d.h. "the 0l4". Genauer gesagt: das Wort wird dem Register WU zugeordnet, die Referenz (die aus dem laufenden Wert von WCR gebildet wird) dem Register FW. Als Folge davon kann durch Bezugnahme auf einen Wert des Registers FW das zugehörige Wort gefunden werden und, unter Bezugnahme auf ein Wort daraus, der zugehörige eindeutige WCR-Wert; somit ist die Position des Wortes in der Weisung (unabhängig vom logischen Datensatz, in dem es ursprünglich untergebracht war) indiziert. Jedes Register WU und FW tritt 600 mal in der Zähltabelle TC auf. Weiterhin wird das Feld von WU willkürlich zu 15 Zeichen gewählt, da dieses groß genug ist, um alle Wörter, außer sehr großen, unterzubringen, jedoch nicht so groß, daß der Ausführungs-Kernspeicher dieser Tabelle zugeteilt werden kann, wodurch die 'Verarbeitungsleistungsfähigkeit verschlechtert wird (es kann sein, daß das Feld von WU auf 10 oder 6"Zeichen weiter verringert werden könnte, was jedoch auch vom Inhalt der Sprache der verwendeten Datenbasis abhängt). Es hat sich jedoch herausgestellt, daß eine Zähltabelle TC mit einem WU-FeId von 15 Zeichen einen guten Kompromiß für eine leistungsfähige Verarbeitung darstellt, wenn wie in der vorliegenden Erfindung Dateien aus in Englisch abgefaßten öffentlichen Rechtsnormen verwendet werden. Es läßt sich zeigen, daß wegen der V/ahl des WU-Feldes zu 15 Zeichen Wörter mit größerer Zeichenlänge als 15 nicht leicht in TC untergebracht werden können; ein Verfahren zum Ausgleich dieser Wörter wird später diskutiert. Für den Augenblick genügt es, daß durch die Verwendung von TC eine Tabelle erstellt wird, in der alle Wörter einer Weisung angeordnet sein können, um sich z.B. auf Deskriptoren beziehen und nach diesen suchen zu können, zum Ordnen und Bewerten von Kenn-
4 θ 9035/0849
zeichen und für Operatoren/ Die Tabelle TC wird nicht zusammen mit Operanden, verwendet, dagegen wird WA für- die Operanden-Kennzeichnung benutzt,wie später beschrieben wird, .'".".."-. ."."■·■ "-".""""■■ Λ ----:; ;/■:--.-:.
Analyse von Aufgabenwörtern ■■"'"■ . "■";"-
Mit: Anweisungen 25OI - 3101 der Fig. 28 und 29 wird versucht, Wörter zu analysieren und einzuteilen, die;bei der Sprachverarbeitung durch einen Rechner gewisse Schwierigkeiten bereiten, wenn ein; festes Feldformat verwendet, wird. Zusammenfassend sind folgende Probleme am schwierigsten lösbar:' : :"--: - : -
. (a) Wenn ein Wort am Ende einer Zeile (logischer Datensatz) zum Anfang der nächsten zeile getrennt wird, z.B. das Wort 207- "einfügen" (""inserting") in: den Zeilen und des Unter-Paragraphen (2)des Paragraphen 1 nach Fig. l6j und v
(b) wenn Wörter eine vorgegebene Zeichengröße Übersteigen, in diesem Ausführungsbeispiel 75 Zeichen.
Eine Lösung für das Problem (b) wird im Anschluß an die Wenn-Änweisung 25Ql vorgesehen, die feststellt, ob DCR gleich 55 ist; wenn ja, wird auf'ein Über längenw.ort- : Programm gesprungen, das bei Anweisung 2502 beginnt. Durch " diese Anweisung werden die ersten54 Zeichen eines Wortes, das mehr als 5^ Zeichen umfaßt, abgeschnitten und in einen anderen Bereieh des Arbeitsbereichs,31 gebracht, nämlich in den "Wort-Arbeitsbereich" WWA und für eine spätere Disposition in die Zähltabelle TC, wie in Fig.; 10 dargestellt ist und weiter unten beschrieben wird. Die Diskussion über Wörter mit mehr als- 5^· Zeicheri wird vorerst zurückgestellt und das Problem (a) bei Trennwörtern betrachtet.
40 98 35/06 49 Λ
Durch die Anweisung 2502 wird der Wert des Zählers MC bestimmt, und falls dieser größer ist als 75, wird die Anweisung 2503 ausgeführt, um den nächsten logischen Ä'nderungs-Datensatz wieder aufzufinden; dieser Satz wird im Register 146 des eingegebenen logischen Datensatzes angeordnet, d.h.: "Bringe den nächsten logischen Datensatz zum nächsten Datensatz-Ausgang", vgl. die Anweisungen 1001 I8OI. Wenn andererseits der Wert von MC bei 2502 ungleich 75 ist, wird die Anweisung 2602 verarbeitet, um die Feldposition 75 des eingegebenen, im Register 146 angeordneten, logischen Datensatzes auf Buchstaben zu überprüfen (wodurch jene Feldposition angezeigt wird, die mit einem Alphazeichen belegt ist); wenn dieses Feld belegt ist, wird durch Übergang auf die Anweisung 2503 der nächste Datensatz ausgeführt. Wenn in der Position 75 andererseits kein Buchstabe enthalten ist, kann es sich um einen Trennungsstrich handeln, was mit Anweisung 26Oj5A festgestellt wird: im Falle eines Trennungsstriches wird durch 2503 der nächste Datensatz ausgeführt, um zum nächsten logischen Datensatz zu gelangen, worauf das getrennte Wort durch den ersten Teil des nächsten Datensatzes vervollständigt werden kann, so daß es mit dem Ende des vorhergehenden logischen Datensatzes zusammengelegt werden kann, da sich das Wort tatsächlich über zwei logische Datensätze erstreckt.
Anschließend wird bei Anweisung 2505 der Fig. 30 fortgefahren, um das Abschneiden oder Verkürzen der Wörter auf 5^ Zeichen durchzuführen, was kurz erklärt wird. Zur Wiederholung, wenn bei der Anweisung 2501 eine negative Zahl entsteht, erfolgt ein direkter Übergang zur Anweisung 26OI, um Wörter mit mehr als I5 Zeichen nach WWA zu bringen. In manchen Fällen wird eine Gruppe aus Wörtern als ein Wort behandelt, weshalb aus derartigen Wörtern Kapitelnamen ge-
409835/0649
■:.■.■";.■-■ - 33 - - . ■■".-■ "■■-■. ■■■-
bildet werden, die z.B.; alle mit "the" (das) beginnen und mit "Act" (Gesetz) enden. Die Kapitelnamen werden als ein Wort behandelt, so daß in einer "Einlese-Tabelle", Tabelle 8, • das Suchen erleichtert wird, wenn die Datei- oder Kapitelnummer daraus gewünscht wird, diese jedoch nicht in der Änderungsdatei enthalten ist. Deshalb muß aus der Einlese-Tabelle die Kapitelnummer bestimmt werden, vorausgesetzt, daß der Kapitelname gegeben ist, oder der Kapitelname, falls die -Kapitelnummer gegeben ist.Normalerweise, wenn die Weisung den Kapitelnamen angibt, nicht jedoch die Kapitelnummer, vgl. Paragraph 1 und 2 der Fig'. 16, muß deshalb auf die Einlese-Tabelle Bezug genommen werden, um die Kapitelnummer zwecks deren Einfügung in das Deskriptor-Register zu erhalten, so daß die Kapitelnummer (Kapitelordnungsglieder) einen Teil, des hierarchischen Satzes aus Kennzeichen bildet, mit denen ein logischer Datensatz des Operanden eindeutig gekennzeichnet werden kann.
Nach Fig. 10 und 28 wird mit der Anweisung 2601 das Zeichen eines Wortes beim Wert MG im Register 146 (des ein- gegebenen logischen Datensatzes) mit der- Zeichenreferenz WA(DCR) in den Bereich WA übertragen, d.h. dort hin, w.o. der Wert des Wortzähler-Registers und des Ziffernzähl-Registersgemeinsam das spezifische Zeichen in der Wortbereichs-Tabelle anzeigen und somit das spezifische Zeichen eines logischen Datensatzes (es soll daran erinnert werden, daß ein Rechner Wörter nur auf einem niedrigeren Niveau als auf demjenigen bei der menschlichen. Verständigung verarbeitenkann» wobei dieses niedrigere Niveau kein menschliches Gegenstück· hat ϊ trotzdem ist der Rechner sehr leistungsstark^ doch ist seine genaue Operation schwierig mit einfachen Begriffen _zu erklären. In jedem Fall kann der Rechner eine Sprache besser verarbeiten.,· wenn durch die Verwendung von WCR zusammen mit I)CR auf
jedes Wort und auf jeden Buchstaben eines Wortes Bezug ge~
40:983 5/0649.
nommen wird). Im Anschluß an die Anweisung 26OI folgen Anweisungen 27OI bis 33OI der Fig. 29, wo die Ziffernzähler MC bzw. DCR des eingegebenen logischen Datensatzes bzw. von WA, erhöht werden. Bei der Anweisung 28OI wird geprüft, ob das Ende eines eingegebenen logischen Datensatzes erreicht ist, d.h. ob MC gleich 75 ist, worauf durch 2802 der nächste logische Datensatz eingegeben wird; die Werte von DCR und WCR werden jedoch durch die Anweisung 2802 nicht geändert. Danach wird bei der Anweisung 29OI weiter geprüft, ob der volle Aufzeichnungsbereich FRA des eingegebenen logischen Datensatzes aus Leerräumen besteht, was bedeuten würde, daß das Ende einer Weisung erreicht ist (vgl. Fig. l6 und 17, wo jede Weisung von ihrem Operanden durch eine Leerzeile getrennt ist). Wenn bei 2901 Leerräume festgestellt werden, wird zur Anweisung lOOOO und zum nächsten logischen Änderungs-Datensatz verzweigt, andernfalls wird mit der Anweisung 3OOI fortgefahren und mit derjenigen Feldposition im logischen Datensatz, die einen laufenden Wert aus MC hat, wobei diese Feldposition eingehend auf Buchstaben geprüft wird; falls kein Buchstabe vorhanden ist, wird bei Anweisung 31-OI auf einen Trennungsstrich geprüft. Der Trennungsstrich, kann tatsächlich eine Trennung von zwei Wörtern in jenem logischen Datensatz bedeuten (wobei die Wörter als ein Wort betrachtet werden) oder.das Schlußzeichen in diesem logischen Datensatz sein, wobei der Ausgleich der zum letzten Wort dieses logischen Datensatzes gehörenden Zeichen in den ersten Teil des nächsten logischen Datensatzes gelegt wird. Wenn ein Trennungsstrich gefunden wird, wird die Anweisung 25OI auf einem neuen logischen Datensatz ausgeführt (dabei wird DCR nicht geändert), andernfalls wird die Anweisung 3301 ausgeführt^ durch die eine Eins zu DCR addiert wird. Wenn das vollständige Wort gefunden ist, wird es durch die Bring-Anweisung 2601 der Fig. 28 zusammen mit dem WCR-Wert in die zugehörigen UnterRegister WU und FW der Zähltabelle TC in einer bereits be~
40983 5/0649
schriebenen Weise gebracht.
In Fig. 30wird durch Anweisungen 2505 - 2509 der Spezialfall bearbeitet, daß der MC-Wert kleiner als 75 ist, wie aus dem Programmablaufplan zu ersehen ist. Um die erfindungsgemäßen Ausführungsbeispiele voll zu verstehen, Ist die Feststellung wichtig, daß für jeden gegebenen logischen Datensatz oder für Gruppen aus logischen Datensätzen der sich im Arbeitsbereich befindlichen Weisung mehrere Durchläufe oder Suchvorgänge durchgeführt werden können. Um die Antwortzeit zu verbessern, ist es deshalb zweckmäßig, durch eine Anfangsüberlegung während jedes Suchens "unwichtige" Wörter zu entfernen, die bereits in der Zähltabelle enthalten sind; diese größere Leistung beim Suchen ergibt überraschende Ergebnisse wenn, wie beim Fortschreiben, eine sehr große Anzahl von .Suchwünschen erforderlich ist. Zuerst werden durch eine statistische Vorauswahl-Analyse während jeder Suchanforderung unwiehtige Wörter in der Zähltabelle unberücksichtigt gelassen (im vorliegenden Ausführungsbeispiel sind "unwichtige" Wörter Wörter aus drei oder weniger Zeichen). Die unwichtigen Wörter werden in der Tabelle gelassen, so daß die Zähltabelle TC alle Wörter aus dem Wort- , bereich WA enthält; in der Folge werden alle Wörter mit mehr als drei Zeichen in einer neuen Tabelle im Arbeitsbereich,untergebracht, nämlich in der "Worttabelle" WT, in der;.jedoch die Wörter durch den Wert von WCR mit ihrer entsprechenden Position in der Zähltabelle verbunden sind;'ferner sind die' Wörter entsprechend auf zehn Zeichen (O- 9 einschließlich) verkürzt, so daß eine Suche bei Wort-"Vergleich" nach Fig* nur die ersten zehn Zeichen .berücksichtigt.;"""
Nach Fig. 10 und 28 werden Wörter mit mehr als 54 Zeichen in Anweisung 2502 durch Verlagerung der ersten 5^ Zei^ chen jedes Wortes aus dem Arbeitsbereich in den Wort-Arbeits-
40983 57 06 49
bereich WWA behandelt. Jedes Zeichen des Wortes im Wortarbeitsbereich WWA ist durch die Verwendung von zwei Zählern bezogen, nämlich durch eine "Wortreferenz" WR und eine "Ziffernreferenz" DR, die ebenso wie die Register WCR und DCR funktionieren, jedoch im Wort-Arbeitsbereich WWA. Der Bereich von DR geht deshalb von 1 - 54, während WR den laufenden Wert von WCR hat. Eine zweite Tabelle ist mit dem Wort-Arbeitsbereich WWA verbunden, nämlich eine Festfeld-Erweiterungstabelle im Arbeitsbereich Jl, mit dem Namen "Aufgliederungseinheit" UB; sie neu definiert den Wortarbeitsbereich in neun Segmente aus je sechs Zeichen ■(9 χ 6 = 54), und somit können alle 54 Zeichen jedes Wortes des Wortarbeitsbereiches innerhalb der neun Segmente der Aufgliederungseinheit untergebracht werden. Tatsächlich sind alle neun Segmente der Aufgliederungseinheit teilweise durch dieselbe identische Adresse definiert, nämlich durch WCR. Wenn ein Wort aus 54 Zeichen aus dem Wort-Arbeitsbereich nach Fig. 10 in die Aufgliederungseinheit gebracht wird, wird der WCR-Wert für dieses Wort in jedes der neun Segmente übertragen, weiterhin ist ein Index 47 vorhanden, der die relative Lage jedes Segments relativ zum anderen Segment in der Aufgliederungseinheit bezeichnet. Nachdem das Wort in der Aufgliederungseinheit segmentiert worden ist, wird es zusammen mit dem WCR-Wert in die Arbeitstabelle WT übertragen, nicht jedoch der Index 47 von UB, der aber zum Steuern und Ordnen der sequentiellen Übertragung jedes Segmentes in der Arbeitstabelle WT verwendet wird. In WT werden alle Suchanforderungen bearbeitet, um zu Beginn ein Wort (oder einen Teil daraus) mit Wörtern der Peldsuch-Steuerung zu vergleichen, wie nachstehend beschrieben wird.
Der Programmabiaufplan der Fig. J50 wird mit Anweisung 2505 fortgesetzt. Bei Anweisung 2506 wird der Wortarbeitsbereich WWA in die neun Segmente aus je sechs Zeichen für die
409835/0649
■ - 57 -
Aufgliederungseinheit neu definiert, ferner wird ein Steuer-Unterregister dafür gegründet, Register SUb-A, das bei WCR bewertet wird und das den Hinweis enthält,-daß- die Aufgliederungseinheit in Wirklichkeit nur ein Wort ist. Anschließend werden durch Anweisung 2507 nicht nur zwei Hilfszähler Sub-B und Sub-C betätigt, wobei Sub-*B 1^7 zum Steuern der neun Segmente der Aufgliederungseinheit dient, während Sub-C die neun Segmente steuert, wenn diese sich in der Zähltabelle befinden·, es wird erinnert, daß die werte des Finde-Wort-Unterregisters durch die Werte von·WCR bestimmt würden, so daß der Wert jeder Aufgliederungseinheit gleich sein muß, wenn neun Segmente aus der Aufgliederungseinheit für ein einzelnes Wort vorhanden sind, das über WT in die Zähltabelle übertragen wurde; weiterhin wird dadurch sichergestellt, daß nur diese neun Segmente und nicht mehr.als diese neun Segmente durch Anweisungen 2508 und 2509 übertragen werden. Die Anweisung 2509 setzt das Register Sub-C auf einen Wert, der um Eins größer ist als der letzte laufende Wert des Finde-Wort-Unterregisters FW (aus der Zähltabelle), d.h. WCR,· so daß die neun Segmente der Aufgliederungseinheit sequentiell, aber gemeinsam^ in die Zähltabelle eingefügt werden könnene Die Anweisung 2509 überträgt die Aufgliederungseinheit zur Zähltabelle TC, indem die Anweisungen 2509 - 2507 neunmal durchlaufen werden (ein Durchlauf für jedes der entsprechenden Segmente ).> was in bewährter Weise durch aufeinanderfolgende Additionen einer Eins in die Zählregister Sub-B und Sub-C gezählt'wirdj. am Ende-der neun Schleifen erfolgt eine Verzweigung nach Anweisung 2510* die den Sub-A-Zähler um Eins erhöht und somit ein Weiterschalten, in die Anweisung ^401 bewirkt (es wird.--daran erinnertc daß der Sub~A-Zähler das Register WCR ist und ein."Wort" in der Zähltabelle direkt anschaltet und somit eine Funktion analog zu der des Finde-Wort-Unterregisters F-W- hat). - -
. Es wurde bereits gesagt, daß es wünschenswert ist^ die
40983 B708-4-
"unwichtigen" Wörter in der Zähltabelle TC aus der Suchfolge zu entfernen; um dies durchzuführen, wird eine Tabel-* Ie aus Wörtern, eine Worttabelle WT, mit 400 Wörtern und je 10 Zeichen eingerichtet, deren Wortbezugszeiger durch das Register Sub-Α gesteuert wird, das in Fig. 10 WCR heißt. Das Sub-A-Register ist identisch mit dem bereits früher beschriebenen, arbeitet jedoch in diesem Unterprogramm mit der Worttabelle anstatt mit der Zähltabelle, es funktioniert allerdings in jeder Hinsicht wie ein mit der Zähltabelle arbeitendes Sub-A-Register. Durch Anweisung 3300 werden alle Wörter mit weniger als drei Zeichenlängen aus der Zähltabelle, zusammen mit ihren zugehörigen Finde-Wort-Unterregister-Wert en WCR, in einen "Volltextbereich" des Arbeitsbereichs übertragen, wobei der Ausgleich der Wörter zusammen mit ihren zugehörigen Finde-Wort-Unterregister-Werten FW in der Worttabelle WT als ein Satz von Bezugsgrößen gespeichert wird, jeder mit einem nacheinander aufsteigenden wert des Sub-A-Registers lA8, so daß der Wert des Sub-A-Registers 148 als Zeiger für das Wort in der'Worttabelle verwendet werden kann und somit für dieses Wort in der Zähltabelle mit seinen FW-Werten. An dieser Stelle sind alle "wichtigen" Wörter der Weisung in WT untergebracht, für die Suche von Wörtern oder den Vergleich mit Wörtern, die in der Feldsuch-Steuerungstabelle FLC, Tabelle 8.0, angeordnet sind.
VERGLEICH MIT FELDSUCH-STEUERUNG
Es wird nun genauer beschrieben, wie die "wichtigen", in der Worttabelle WT angeordneten Wörter verglichen werden. Zuerst wird ein konstantes oder festes Wörterbuch eingerichtet, das für Zwecke der Programmiersprache Feldsuch-Steuerung (Tabelle 8.0) genannt wird, und das vier Sätze aus Steuerkarten enthält, nämlich eine Einlese-Tabelle 8.1, eine Deskriptor-Tabelle 8.2, eine Aktions-Tabelle 8.3 und eine
409835/0649
2350023
Aktions-Klassifikations-Tabelie QA. Diese Tabellen.der Feldsuch-Steuerung werden während des Programms durch die Steuerkartensätze (JCL) erstellt, und die Information der entsprechenden Tabellen wird in der Feldsuch-Steuerung in Satzformat angeordnet. Damit können die Wörter in der Feldsuch-Steuerung, falls erforderlich, durch Kartenänderungen geändert werden, um sich auf die in verschiedenen ' Datenbasen verwendeten Ausdrucksweisen anzupassen. Z.B. enthält die dargestellte Deskriptor-Tabelle des Äusführungsbelspiels Deskriptoren, die üblicherweise in öffentlichen Rechtsnormen vorkommen, wie in der Tabelle 2.0 dargestellt und im bevorzugten Ausführungsbeispiel in den Fig. 15 und 16 offenbart wird, vgl. auch Tabelle 9.0. In technischen Beschreibungen jedoch kann es vorkommen, daß nicht der hierarchisch geordnete Deskriptor "Paragraph1! verwendet wird, sondern stattdessen der Ausdruck "Teil" oder'"Artikel" oder "Abteilung" für die äquivalente Ordnung, usw. In diesem Fall wurden diese Deskriptor-Ordnüngswörter dieser Daten-/-basis anstelle der hler verwendeten Deskriptoren in; der Deskriptor-Tabelle der Feidsuch-Steuerungstabelle8.0 erscheinen, und die Deskriptoren der Änderungsdatei müßten mit diesen Deskriptoren der Deskriptor-Tabelle verglichen werden. Die Deskriptor-Wörter werden durch JCL festgelegt* wie bei der Feldsuch-Steuerung erwähnt wurde.
Nach Fig. j51. werden mit Anweisungen 3401 - 3.8ÖI die "wichtigen" Wörter in der Wort-Tabelle mit denen der Deskriptor-Tabelle verglichen bzw/ an diese angepaßt. Wenn eines dieser Wörter verglichen ist, wird das nächste Wort aus dem Volltextbereich, Zähltäbelle TC, gespeichert, und somit der Zahlenwert des Deskriptors in einem speziellen Deskriptor-Register DR, mit der zugehörigen Ordnung, die der Ordnung des nach den Tabellen 0.0 und 2.0 gewählten Deskriptors entspricht; d.h. es wird die "Nachbarumgebungs"-Nummer des Gliedes für den Satz aus Ordnungen festgestellt. Wenn z.B.
40983&/Q649
das Wort nach dem Deskriptor "Paragraph" "10" ist, wird der Wert 10 in der hierarchischen Paragraphen-Ordnung des Deskriptor-Registers DR nach Fig. 11 gespeichert, und zwar in Übereinstimmung mit den Tabellen 2.0 - 2.8. Wenn das nächste "Wort" nach 10 ebenfalls eine Zahl ist, z.B. "11" (wodurch für beide Paragraphen 10 und 11 identische Operationen angezeigt werden), werden die beiden Werte 10 und 11 durch die Anweisungsfolge 3401 - 38OI im Kennzeichen-Register IR angeordnet. Die Anweisung 3403 steuert das Sub-A-Register und ebenso das Deskriptor-Register DR, indem ein zu diesen Tabellen gehörender Zeiger durch Addition einer Eins in der Anweisung 3403 entsprechend erhöht wird; anschließend wird die Wort-Tabelle bei der Anweisung 38OI für den entsprechenden Wert des Sub-A-Registers nach Leerräumen überprüft. Die Analyse einer Weisung ist fertig, wenn bei der Anweisung 38OI Leerräume vorhanden sind, worauf dann bei 10000 der Eintritt in den Schlußparagraphen der Gesetzesvorlage erfolgt, vgl. Fig. 87, was nachstehend beschrieben wird. Wenn andererseits durch die Anweisung 38OI festgestellt wird, daß die Zähltabelle TC beim Wert des Sub-A-Registers keine Leerräume enthält, erfolgt der Übergang zur Anweisung 4000 der Fig. 32, um ein neues Zählregister J zu prüfen, das eine weitere UnterTabelle der Feldsuch-Steuerung kontrolliert, nämlich die "Einlese-Tabelle", Tabelle 8.1. Die Einlese-Tabelle stellt ein festes Wörterbuch oder eine Korrespondenztabelle zwischen dem Kapitelnamen und seiner Kapitelnummer her. Damit kann eine Weisung auf dieses Wörterbuch bezogen werden, um das Glied des Satzes eines Kapitelnamens oder den Namen einer Kapitelnummer festzustellen (vgl. auch Tabelle 9.0). In einem bevorzugten Ausführungsbeispiel besteht die Einlese-Tabelle aus 20 verschiedenen Kapitelnamen, obwohl in dem hier gewählten Beispiel nur 12 angegeben sind, zusammen mit zugehörigen Kapitelnummern; jedoch kann jede Anzahl von Kapitelnamen und -nummern verwendet werden, wenn dies zweckmäßig ist.
409835/0649
Bei Anweisung 4000 nach Fig. 32 wird das erste Wort nach einem Leerzeichen oder einem Leerraum versuchsweise mit dem Wort "chapter" (Kapitel)verglichen, das imProgramm-• ablaufplan als "chap" abgekürzt wird; wenn eine Übereinstimmung vorhanden ist, werden mit der Anweisung 4001 Nullen in das J-Register übertragen, das die Indizierung durch die Einlese-Tabelle steuert. Die nächste Anweisung 4002, die den Wert des J-Registers undder Sub-A-Register um Eins erhöht, wird ausgeführt, worauf das J-Register auf Eins zurückgesetzt wird, wobei die Einlese-Tabelle erneut durch den ersten Eintritt (Kapitelname)indiziert werden kannfi wenn dieses Programm wieder- aufgeruferuwird*- Bei—der Anweisung 4O5O der Fig. 33 wird der Wert des Sub-A-Registers 148 herausgezogen, wenn am Ende eines Kapitelnamens in der Wort-Tabelle eine Übereinstimmung mit dem Wort "Act" (Gesetz) herrscht, vgl. Einlese-Tabelle 8.1. Es ist bekannt, daß der nächste Feldpösitions-Eintritt der Einlese-Tabelle die .Kapitelnummer ist. Innerhalb jedes Kapitelnamens der Einlese-Tabelle kann der Kapitelname IJ verschiedene Einheiten oder Wörter aufnehmen, weshalb jeder Kapitelname 13 Wörter lang sein kann; für jeden dieser Wörter der Einlesetabelle ist ein entsprechender Zeiger vorhanden, nämlich Register II. Der Wert des II-Registers geht deshalb von 0 -13„ Bei Anweisung 4100 der Fig. 33 wird das II-Register auf Null gesetzt. Zwischen den Anweisungen 4100 bis 4l8o zur versuchsweisen Anpassung an eine Kapitelangabe wird der Wert des Registers II von 0 bis 13 erhöht, wodurch das Register als X-Achse für die Matrix der Einlesetabelle dient, während das Register. «I als Y-Achse (Angabenachse) dient. Es muß versucht werden, die vom eingegebenen logischen Datensatz (wirksamer Paragraph) abgeleiteten und in der Worttabelle dargestellten und angeprdneten Namen zu vergleichen. Im Falle einer erfolgreichen Anpassung zwischen dem Wort-Tabellen-Wort und einem gegebenen Wert der Register J und II für die Einlese-Tabelle wird bei
409 83 5706 49
Anweisung 4171 der Wert der Kapitelordnung der Einlese-Tabelle in die Kapitelordnung des Deskriptor-Registers DR * gespeichert. Wenn"der Vergleich nicht erfolgreich ist, wer-. den die Anweisungen 4002 - 4152 zwanzigmal durchlaufen (das J-Register läuft von 1 - 20), um einen Vergleich der Information in WT mit der Information einer Kapitelangabe in der Einlese-Tabelle, für jede Kapitelangabe in der Einlesetabelle, zu versuchen. Es ist wichtig, daß das Sub-A-Register 147 seinen Wert so lange nicht ändert, bis ein vollständiger Vergleich zwischen WT und einer voll-Ständigen Kapitelnamen-Angabe mit dem Wert J der Einlese-Tabelle vorgenommen ist, wobei wiederholt wirda daß das Sub-A-Register "wichtige" Wörter in der Wort-Tabelle schaltet oder indiziert, siehe Fig. 10. Andernfalls würde dieses Wort aus der Änderungsdatei verlorengehen und es könnte kein Vergleich zwischen der Wort- und der Einlese-Tabelle durchgeführt werden, um festzustellen, ob ein Kapitelname durch die Änderungsdatei-Weisung gegeben war oder nicht. Anders ausgedrückt: jeder Kapitelname wird, obwohl er aus 13 Wörtern zusammengesetzt ist, als ein Wort .(durch das J-Register) behandelt und jedes Zeichen der Anpassungsleerräume der 13 Wörter wird durch das II-Register indiziert. Weiterhin, da die zeichen aus dem eingegebenen logischen Datensatz in den Arbeitsbereich WA durch Bewertung von MC, WCR und DCR gelesen werden, bewirkt ein Erreichen des Wortes "The", daß keines der folgenden Wörter bis "Act" eine Änderung des WCR-wertes verursacht, sondern nur des Wertes von DCR. Dadurch hat der Kapitelname in WA einen einzigen WCR-Wert. Da der Kapitelname üblicherweise aus mehr als 15 Zeichen besteht, wird dieser durch das Programm für 54 Zeichen Wortlänge in WWA und FW abgeschnitten, wie bereits früher erwähnt wurde (vgl. ViT in Fig. 10).
Wenn bei Anweisung 4l80 dieses Wort in WT mit dem Wert des Registers Sub-Α nicht mit dem Kapitelnamen über-
409835/0649
einstimmt, wird die Suche mit Anweisung 4l5O fortgesetzt, um alle Wörter in der Wort-Tabelle, die den Wert des Sub-A-Zählers haben, mit jenen der Einlese-Tabelle und Werten II für jedes gegebene J zu vergleichen. Falls diese-Anweisung "wahr" ist, wird der' Zusammenhang mit dieser Einlese-Tabellen-Angabe (Kapitelnummer) in der zugehörigen Ordnung des Deskriptor-Registers beim laufenden Wert des Sub-B-Registers über Anweisung 4052 gespeichert, d.h. in der Kapitel-Ordnung von OR. K ; " :
Es wird nun die dritte Gruppe der Feldsuch-Steüerungstabelle betrachtet,, nämlich die Aktions-Tabellen 8.3 und 8.4, sowie Tabelle 4„O,, was in der Programmierspraehe des Ausführungsbeispiels allgemein "Durchfuhr heißt» Der.Zweck der Äktions-Tabellen besteht daring -ein Wörterbuch aus nützlichen Wörtern aufzubaueny um jene Art von Tätigkeit zu beschreiben, die während des besonderen Mischens 33 auf der yater-Stammdatei 26 ausgeführt wird. Tatsächlich enthält die Durchführungstätigkeit dese nützlichen und wirksamen Tatigkeitswörter, die in der Aktions-Tabelle 8„3 ausgefülirt sind. Z.B. enthalten sie den Hinweis "und soll wie folgt lesen". Dieser Satz enthält vier Wörter, wobei jedes Wort in der Aktions-Tabelle in Form von vier .getrennten Wörtern angeordnet ist; dadurch wird der Kernspeicher reserviert» Zusammen mit der gewünschten Aktion wird eine zugehörige Finde» Aktions-Tabelle 8.4 eingerichtet, in der der Wirksame Paragraph jener Aktion gespeichert wird, die die Ausführung des zugehörigen Unterprogramms bewirkt, was durch die Operatoren einer Weisung angewiesen werden kann. Dies wird durch eine binäre Technik aus 0 und 1 bewirkt; mit anderen Worten:■ es werden Markierungen verwendet, wobei die spezielle gewünschte Tätigkeit durch die Markierung 1 bezeichnet ist, während die Instruktionen zum Nichtdurchführen dieser Operation durch 0 dargestellt sindj es erübrigt sich zu sagen, daß die Markierung ein Bit ist.
40983 5/0 6 49
Nach dem Programmablaufplan der Fig. 34 werden bei Anweisung 4101 die ersten drei Ziffern der Wort-Tabelle WT beim Wert des Sub-A-Registers durchgesehen, insbesondere · die Buchstaben "rep'''. Der Grund zum Prüfen von "rep" liegt darin, daß im Rechner ein Vergleich unabhängig vom Zusatz eines Wortes durchgeführt wird, wenn die Vorsilbe übereinstimmt, wie in den Fig. 104 und 105 ausgeführt ist. Da das hier interessierende Aktionswort "repealed" ("aufgehoben") ist, wogegen kein Interesse an einem Wort wie "repeat" besteht, dessen ersten drei Buchstaben mit denen von "repeal" übereinstimmen, müssen deshalb jene Wörter, die mit "rep" beginnen, ausgeschieden werden, so daß sie absolut keinen Einfluß beim Wahrnehmen und Erhalten des gewünschten Aktionswortes haben. Dies ist durch eine sorgfältige Untersuchung, insbesondere zusammen mit den Fig. 104 und 105, des Programmablaufplans von Fig. 34 und aus den Tabellen 4.0 sowie 8.3 und 8.4 zu verstehen. Durch eine genaue Deutung be.i Anweisung 4101 der Fig. 34 wird über 4lO2 - 5253 die Ähnlichkeit zwischen diesen Wörtern verglichen, wobei der Mensch leicht unterscheiden kann, nicht jedoch der Rechner. Anhand dieser Routine des Programms wird versucht, eine Lösung zum Erkennen der Wörter "repeal" und "repealed" durch den Rechner aufzuzeigen, nicht jedoch von anderen Wörtern, die ebenfalls mit den ersten drei Buchstaben "rep" beginnen. Die Wörter "repeal", "repealed" und "rep" unterscheiden sich nur in den Zeichen der vierten und folgenden Feldpositionen, vgl. Fig. 104, weshalb jeder Vergleich durch den Rechner ein "perfekter" Vergleich sein muß, was bedeutet, daß "repealed" "repeal" und "rep" enthält; wenn das Programm einen Vergleich durchführt, ergibt sich eine Nichtübereinstimmung in der siebten und achten Position bezüglich der Wörter "repeal" und "repealed", und in der vierten Position sowie in den folgenden Positionen im Falle von "rep", "repeal" und "repealed". Deshalb muß eine Prüfung für alle Variationen von "rep" und "repealed" durchgeführt werden. Wenn das Wort "repealed" ge-
409835/0649
funden wird, wird, da es nach Tabelle 8.3, Angaben 1 und 2, zwei verschiedene Eigenschaften hat, eine Reihe von Wörtern geprüft, um festzustellen, welche Eigenschaft.von "repealed" in der Weisung vorkommt,- da mehr als eine wirksame Funktion abgeleitet werden muß, d.h. die ersten beiden Angäben der Tabellen.8.3 und 8v4> da außerdem andere Weisungen wie z.B. Änderungen vorhanden sind, die in den Weisungs-Angaben 3 und 4 der Tabelle 8.J ausgeführt werden. Zur Unterscheidung zwischen "rep" und "repeal" erhält jedes Wort sein eigenes eindeutiges Prüf-Unterprogramm. Im Falle von "repealed" beginnt das Unterprogramm bei Anweisung 5252A und im Falle von "rep" bei 4101. Bei der Anweisung 4101 wird das Wort mit "rep" verglichen] bei Übereinstimmung wird eine Eins zum Sub-A-Register addiert, um dann zum nächsten Wort in WU und somit zur Anweisung 3401 der Fig. "51 zu gehen, wobei aufeinanderfolgende Wörter der in WU angeordneten Weisung geprüft werden. Wenn bei der Anweisung 4101 "rep1- nicht gefunden wird, wird bei der Anweisung 5252 das Wort "repealed" verglichen. Falls das Wort "repealed" gefunden wird, wird zur Anweisung 5252A weitergegangen, wo die nächste Position, ohne den Sub-A-Zähler zu ändern, auf einen "Punkt" geprüft wird; falls ein Punkt vorhanden ist, wird bei 5302 die nächstfolgende Position (wiederum ohne den Sub-A-Zähler zu ändern) auf den zweiten "Punkt" hin untersuchtj falls der zweite Punkt gefunden wird, wird zum Sub-A-Register Zwei addiert, um das zweite folgende Wort'nach dem Wort "repealed" in WU anzuschalten] worauf zur Anweisung 5402 der Fig. 36 übergegangen wird, um die nächste Feldposition wiederum auf · einen Punkt zu überprüfen (wobei jetzt ein Punkt bedeutet, daß drei aufeinanderfolgende Punkte vorhanden-sind und somit ein Datenfehler vorliegen muß)j worauf die Anweisung 5412 durchgeführt wird, um ein Wort in der WU-Tabelle zu überlagern und anschließend dieses Wort als undefinierbar über die Anweisungen 5422 - 5452 auszugeben, wobei das Wort als
40 9 83 57 0649
Fehler der Datenaufbereitung ausgedruckt wird. Wenn andererseits bei der Anweisung 5402 kein dritter Punkt gefunden wird, erf.olgt der Übergang zur Anweisung 3401 der Fig. 31, wo dann die weiteren folgenden Wörter in der WU-Tabelle bezüglich Deskriptoren geprüft werden.
Unter der Annahme, daß bei der Anweisung 5302 kein zweiter Punkt gefunden wurde, erfolgt ein Ausgang zur Anweisung 4103, um festzustellen, ob das Wort in der Sub-A-Position von WU tatsächlich "repealed" ist (dies geschieht durch Prüfen der Anweisung 5252 und anschließendes Addieren einer Eins zum Sub-A-Register, um festzustellen, ob das nächste Wort in der WU-Tabelle beim Wert Sub-Α ein Leerzeichen ist, gefolgt von einem Doppelpunkt; falls dies zutrifft, wird erkannt, daß wirklich eine "repeal"-Situation vorhanden ist, in der bestimmte Daten aus der Vater-Stammdatei entnommen werden müssen) . Anschließend wird in Anweisung 5353 der Buchstabe "r" als Code in die Mutter-Ä'nderungsdatei des logischen Datensatzes gebracht, so daß während des besonderen Mischens 33 der Steuercode "r" zur Erkennung und zum geeigneten Assemblieren oder Übersetzen der PortSchreibung zur Verfügung steht. Wenn bei der Anweisung 5203 kein Leerzeichen, gefolgt von einem Doppelpunkt, vorhanden ist, erfolgt der Sprung' zur Anweisung 5402 und, wie bereits beschrieben, ein Durchlaufen der Anweisungen 5402 - 5462 bis zur Anweisung 3401.
Wenn andererseits bei- der Anweisung 5252 der Fig. 34 das Wort "repealed" nicht erkannt wird, muß anschließend bestimmt werden, welches die folgenden Wörter der Weisung sind, um die während des besonderen Mischens durchzuführende Aktion, d.h. die Operatoren, zu erkennen. In diesem Beispiel wird mit Anweisungen 5202, 5302, 5403 bis 5504 der Fig. 36 versucht, die Wörter "and shall read as follows" zu bestimmen, die nach Angabe 6 der Tabelle 8.3 eine Tätigkeit im Zusammenhang mit einer Änderung darstellt.
409835/0649
236Q023
In ähnlicher Weise werden die Angaben 3, 4 und-5 der Tabelle 8,3 erkannt (nicht in den Programmablaufplänen dar- _ gestellt); dies erfolgt mit einem Programm, das mit dem eben beschriebenen korreliert ist, und das die auf diese Wörter anzuwendende" Aktion 'durchführt. Die Programme enden in jedem Fall bei Anweisung ^401, nachdem bestimmt wurde, welche Aktion durchgeführt werden soll, und anschließend, nachdem die Deskriptoren gefunden sind, falls welche vorhanden sind, im Kennzeichenprogramm 10000 der Fig. jl; wenn kein Kennzeichen mit Bezug auf Operanden (die den Weisungen folgen) gefunden wurde, werden die hierarchischen Kennzei-· chen vervollständigt, indem in die Anweisung 7130 der Fig.42 eingetreten wird, wie noch genauer erläutert wird im Abschnitt; "Anwendung auf vollständige hierarchische Kennzeichen" . : : ■.; . ;
WORT-ÄNDERUNG .
Es ist nun zweckmäßig, die Art der Bestimmung genau zu diskutieren, welche Instruktionen durch eine Weisung gegeben sind, um ein bezeichnetes Wort aus einer Vater-Stämmdatei' zu entfernen, so daß das bezeichnete Wort nicht in der Sohn-Stammdatei erscheint; oder um ein Wort aus der Mutter-Knderungsdatei in die Väter-Stammdatei einzufügen, so daß ein zusätzliches Wort in der Sohn-Stammdatei erscheint j oder um zwischen der Vater.-Stammdatei und der Mutter-A'nderungsdatei ..-ein Wort auszutauschen, so daß das Austauschwort in der Sohn-Stammdatei erscheint.^
Es wird nun Bezug genommen auf die Wort-Änderungs-Tabelle 5.0 und auf den in Fig. 37 beginnenden Programmablaufplan und eine Einrichtung zum Erkennen dieser entsprechehden Wörter in der Weisung für die spätere Verwendung zusammen mit dem besonderen Mischen 33 diskutiert. Im vorliegenden Ausführungs-
0835/0649
beispiel wird die kleinste Änderung oder FortSchreibung der Vater-Stammdatei an einem einzelnen Wort in der Vater-Stammdatei und mit den Anweisungen 7060 - 7120 der Fig. 4l durchgeführt. Bezüglich derartiger Wortänderungen gibt es drei verschiedene Möglichkeiten nämlich: Addieren eines Wortes aus der Mutter-Ä'nderungsdatei in die Vater-Stammdatei, wobei dieses Wort als "EINWORT" bezeichnet wird; Löschen eines Wortes aus der Vater-Stammdatei, wobei dieses Wort im allgemeinen als "AUSWORT" bezeichnet wird; und Austauschen eines Wortes"in der Vater-Stammdatei mit einem neuen Wort derart, daß das neue Wort in der Sohn-Stammdatei erscheint, wobei ein derartiges Wort "TAUSCHWORT" heißt.
WORTÄNDERUNG-EINWORT
Zunächst wird nun das EINWORT mit Anweisungen 7ΟβΟ 7068 der Fig. 37 behandelt, d.h. aus der Ä'nderungsdatei wird ein Wort in die Vater-Stammdatei gegeben, so daß es in der Sohn-Stammdatei erscheint. Mit den Anweisungen 7060 7062 wird die Ä'nderungsdatei bezüglich des Ortes der mit dem EINWORT verbundenen Kennzeichen geprüft, d.h. bezüglich Paragraph, Unter-Paragraph, Absatz, Unter-Absatz und Ziffer, die aus den Deskriptoren gefunden wurden; nach dem Sammeln dieser Kennzeichen (die seriell und hierarchisch wie in Tabelle 2.0 im Kennzeichen-Register IR angeordnet sind), geht es weiter zu Anweisung 7063, wo die Kennzeichen durch Übertragen aus dem Kennzeichen-Register in einen Kennzeichen-Speicher gespeichert werden. Um die Einheitlichkeit jeder Änderung zu wahren, werden bei der Anweisung 7064, verbunden mit der · Ausgabe des geänderten logischen Datensatzes, Leerräume (Löschzeichen) in jenen Teil des Arbeitsbereiches J>1 gegeben, der gemäß dem Ausführungsprogramm als "Restspalten-Änderungsbereich" RCR bezeichnet wird, und zwar für die vollen 72 Positionen. (Die Daten bei der Ausgabe der Fortschreibungsanalyse
409835/0649
:: ■-■-.: -"49 -■■■■ - -.-■■■: .■■■..-.,"■
(Mutter-Änderungsdatei 32) werden auf 72 Zeichen der 75 Feldpositionen begrenzt, damit eine größtmögliche Kompatibilität mit der Vater-Stammdatei 26 gegeben ist.) Zusammenfassend wird bei der Anweisung'7065*.".-vgl. Fig. 7 und Tabelle 9.3, in der zweiten Feldposition des Restspalten-Änderungsbereichs ein Stern gespeichert, der während des besonderen Mischens 33 " als Bezeichnungscode dient, wie später beschrieben wird. Neben dem Stern wird das exakte Wort (EINWORT'') .angeordnet,, d,h> Tabelle 8, die addiert werden muß, und mit Anweisung 7067 wird "-. das Markierungsbit 1 unmittelbar neben dem EINWORT angeordnet, wobei dieses Markierungsbit": INFLAG-. in der unmittelbar nächsten Bitposition nach dem EINWORT zwei Funktionen ausübt. Zum ersten ist INFLAG eine binäre MarWßrung dafür, daß eine Tätigkeit ausgeführt werden soll (während des besonderen Mischens 3*5), und es zeigt zusammen mit dem Stern an, daß sich die durchzuführende Aktion auf das EINWORT bezieht. Zum zweiten dient INFLAG auch als Feldmarke,r um die Ausdehnung des EINWORTES zu -bezeichnen und dazu, daß keine weiteren EINWÖRTER im logischen Datensatz betrachtet werden müssen, da dieser logische Datensatz in der Mutter-Änderungsdatei erscheint, nachdem, er aus dem Restspalten-Änderungsbereich RCR in einer später zu erläuternden Art übertragen worden ist. Bei Anweisung 7066 werden Leerräume in jenen Bereich des Unterstreichungs-Bereiches gegeben, der zu dem Restspalten-Änderungsbereich gehört, nämlich in den Unterstreichungs-Restspalten-Änderungsbereich, der für jede entsprechende Änderung von RCR Unterstreichungs-Codes enthält, falls das entsprechende zeichen aus RCR unterstrichen werden soll, um sicherzustellen, daß dann, wenn ein EINWORT in die-Vater-Stammdatei eingefügt wird, nicht auch in der Sohn-Stammdatei eine Unterstreichung unter das EINWORT eingefügt wird, das nicht als Folge einer unwesentlichen Information im Unter-Restspalten-Änderungsbereich vorhanden sein sollte, wobei ein Teil des Assemblierer-Registers zum Ässemblieren bzw* Übersetzen von Daten für die Ausgabe verwendet wird, die Leer- oder Unterstreichungszeichen enthält. Bei Anwei-
AO9835/0649
sung 7067 wird eine Eins nach INFLAG, das im Ausführungsprogramm WORDIN heißt, direkt neben das EINWORT gebracht; bei 7068 wird eine Eins nach FLAG PRINT (MARKE DRUCKEN) gebracht, das anzeigt, daß der Rest der Information im Restspalten-Änderungsbereich aus Leerräumen besteht, und weiterhin, daß nur der logische Datensatz in' der Mütter-Änderungsdatei erscheint, nachdem der Restspalten- und der Unterstreichungs-Restspalten-Änderungsbereich in diese übertragen worden sind, und die mit dem logischen Datensatz der Vater-Stammdatei aus identischen hierarchischen Kennzeichen verbunden und gedruckt wird, um während des besonderen Mischens die Sohn-Stammdatei zu erzeugen: dadurch wird positiv sichergestellt, daß keine unwesentlichen Daten neben den .durch EINWORT bezeichneten Daten während des besonderen Mischens durch die Mutter-Änderungsdatei 32 in die Sohn-Stammdatei eingefügt werden. Nach dieser Anweisung wird Anweisung 7130 ausgeführt, um die Daten des Restspalten-Änderungsbereichs zu organisieren und am Ausgang 156 in den physikalischen Datensatz oder die Mutter-Änderungsdatei 32 zu drucken.
WORTÄNDERUNG - TAUSCHWORT
Die Aktion TAUSCHWORT beginnt nach Fig. 38 bei Anweisung 7070 und läuft bis zur Anweisung 7080. Zuerst werden die Kennzeichen in den Anweisungen 7070 - 7074 geprüft. Außerdem wird die Identität von EINWORT und AUSWORT ermittelt. In diesem Fall muß die Information auch darüber vorhanden sein, in welcher Zeile das AUSWORT in der Vater-Stammdatei erscheint; diese Information ist in der Weisung der Änderungsdatei 22 enthalten. Deshalb muß die Weisung gelesen werden, indem nacheinander logische Datensätze der Weisung in den Arbeitsbereich 32 eingegeben werden, bis jene spezifische Zeile erhalten wird, in die das EINWORT eingefügt werden soll. Dies ist notwendig, weil dann, wenn ein Wort aus der
409835/0649
Vater-Stammdatei entfernt wird, das identische Wort in mehr als einer. Zeile in irgendeinem gegebenen Teil der Vater-Stammdatei erscheint (z.B. das Wort "shall" ("soll") in Päragraph A des Gesetzes über das Unterrichtsministerium nach Fig. 14). Somit muß'dafür gesorgt werden, daß dann, wenn . es der Umstand erfordert, nur das gewünschte spezifische Wort geändert wird; z.B. muß das Wort "shall" in Paragraph (2) Zeile 1 und nicht das Wort "shall" in Paragraph 4 (2) Zeil-e 2, des Gesetzes über das Unterrichtsministerium, Kapitel 94, entfernt werden, vgl. Fig. 14. Bei Anweisung 7075 wird die durch die Weisung gegebene zeilenfölgennummer in den Zeilenfolgenteil des Restspalten-A'nderungsbereiches gespeichert, d.h. dort hin, wo die hierarchischen Kennzeichen einschließlich-der Zeilennummern angeordnet sind. Bei Anweisung 7076 werden Leerräume zum Ausgleich des Restspalten-Änderungsbereiches und bei Anweisung 7077 ein Stern in drei Feldpositionen des Restspalten-Änderungsbereiches gebracht5 nämlich ein Stern in die Feldposition 2ß auf den das AUSWORT und das Markierungsbit folgt, und anschließend zwei benachbarte Sterne vor einem EINWORT, das von einer Markierung gefolgt wird. EINWORT und AUSWORT zusammen ergeben das TAUSGH-WORT. Nach den beiden benachbarten Sternen wird z.B. das AUSWORT "Slonim'-' eingefügt, das nach Fig. 9 und Tabelle 9.3 in der Feldposition 14 beginnt, während derDoppelstern in den Feldpositionen 12 und I3 erscheint und der einzelne Stern in der Feldposition 2; das EINWORT "Jacob" befindet sieh in den Positionen 3-7 , gefolgt von dem Markierungsbit. Wie-aus einer genauen Betrachtung hervorgeht, bilden das EINWORT und das AÜSWORT zusammen das TAUSCHWORT. Bei Anweisung 7078 werden Leerräume in den Unt'erstrelchungs-Restspalten-Snderungsbereich gegeben und bei Anweisung 708Q wird dem Markierungsbit in der nächsten Bitpösltiön nach dem letzten Buchstaben des AUSWORTES, in diesem Beispiel nach "m", eine Eins hinzugefügt. Diese dient als binäre Marke und An-
40983 5/0649
zeige ähnlich wie bei INFLAG und kann deshalb als OUTFLAO bezeichnet werden. Mit Anweisung 7079 wird eine Eins nach FLAG PRINT gebracht, und anschließend wird zur Anweisung 7I3O weitergegangen, da nun die Analyse bezüglich des TAUSCHWORTES beendet ist.
WORTKNDERUNG - AUSWORT
Die Anweisungen 7110 - 7120 der Fig. 40 und 4l behandeln das AUSWORT. In den Anweisungen 7110 - 7112 wird die Kombination geprüft, die für Instruktionen zum Herausnehmen eines Wortes benötigt werden (vgl. Aktions-Tabelle 8.J5 und Tabelle 5). Wenn die Bedingungen der Aktions-Tabelle 5 bezüglich eines AUSWORTES erfüllt sind, werden die verschiedenen Kennzeichen aus dem Kennzeichen-Register IR durch die Anweisungen 7113, 7114 und 7115 in einen Zwischen-Kennzeichen-Restspalten.-Bereich (Codespeicher) übernommen. Der Codespeicher ist ein Satz, in dem jeder Teil daraus ein Feld für jeden Teil jeder Kennzeichen-Ordnung ist. Durch die Anweisung 7II6 wird deshalb das Markierungsbit FLAG PRINT eingestellt und der Restspalten-Ä'nderungsbereioh gelöscht; mit der Anweisung
7117 der Fig. 4l werden Leerräume in den ersten logischen Datensatz des Änderungsbereichs gebracht. Durch die Anweisung
7118 wird in die zweite und in die dritte Feldposition je ein Stern eingegeben (zwei Sterne), die der Codierung entsprechen, daß das nächste folgende Wort ein AUSWORT ist, zusammen mit dem AUSWORT der Fig. 8,"Slonim", vgl. auch Tabelle 9.3. Bei der Anweisung 7II9 werden die Leerräume wieder in den Unterstreichungs-Restspalten-Änderungsbereich gebracht, was bereits früher im Zusammenhang mit EINWORT und TAUSCHWORT durchgeführt wurde, und bei 7120 wird das Markierungsbit 1, d.h. das OUTFLAG, neben das AUSWORT gebracht, um die Feldgröße des AUSWORTES anzuzeigen, so daß dieses während des besonderen Mischens 33 geeignet verarbeitet werden kann; anschließend erfolgt der Übergang zur Anweisung 71J5O.
409835/0649
■;■ : _236OQ;23;
Neben EINWORT, AUSWORT und TAUSCHWORT gibt es eine zweite Kategorie von EINViORT5 nämlich EINWORT-WECHSEL. Dies entsteht, wenn zum Schlußteil eines logischen Datensatzes ein einzelnes Wort und somit ein neuer Teil addiert werden muß; Beispiel dafür ist das Einfügen des einzelnen Wortes "or11 (oder) oder "and" (und), wie durch den Weisungsabschnitt 5 (d) des Gesetzes zur Änderung des Gesetzes über das Unterrichtsministerium, 1966, Tabelle 9.6 dargestellt wird,, und die Addition eines Unter-Paragraphen, siehe Paragraph 5 (d), sowie die Addition von 5 (e)v Eine derartige Instruktion wird in der Tabelle 5; "Durchführungstätigkeit" ausgeführt., EINWORT-WECHSEL wird durch Anweisungen 7090 - 7103 der Fig.39 und 40- gebildet, ähnlich wie EINWORT durch Anweisungen 7063 bis 7086, was eine Modifikation der EINWORT-Folge bedeutet.. Tatsächlich wird dadurch das EINWORT, zusammen mit den zugehörigen hierarchischen Kennzeichen, die sich im Kennzeichen-Register IR befinden,in den Restspalten-Änderungsbereich gebracht; doch bevor das Ausdrucken aus dem Restspalten-Ände- " rungsbereich in die Mutter-Änderungsdatei 32 durchgeführt wird, wird mit der Anweisung 7Q30 die nächste Gruppe aus eingegebenen logischen Datensätzen in den Arbeitsspeicher aufgenommen. Dies dient zum Sicherstellen, daß die wahren - Kennzeichen tatsächlich im Kennzeichen-Register angeordnet werden, wie nachstehend verdeutlicht wird. Dazu wird eine Lauf-Anweisung für den nächsten eingegebenen logischen Datensatz der Änderungsdatei 22 durch Anweisung 1001 - I8OI ausgeführt; dadurch wird verhindert, daß jene Kenhzeicherinummern verlorengehen, die aus der Weisung und aus der Vergangenheitsprüfung angesammelt wurden.
DESKRIPTOR-ERKENNUNG -. - -
Die Deskriptor -Erkennung beginnt- bei Anweisung 3401 der Fig, 31, wo.versucht wird, das Wort in WU mit dem Sub-A-Wert (in Wirklichkeit wird dazu die FW-Tabelle durchgesehen, da -.
4 09 83S/064f
2360C23
diese die Sub-A-Werte besitzt, während WU nur WOl- oder PW-Werte besitzt) mit Deskriptor-Ordnungs-Namen zu vergleichen,· z.B. mit; "Subsec-Co" (heißt; Unter-Paragraph), "See - Co" (heißt; Paragraph) usw.; die Anweisungen 3401 bis 4003 der Fig. 31 und 32. suchen nach den Deskriptor-Ordnungs-Namen der Tabelle 2.0 und tragen das nächste Wort in das Deskriptor-Register in die richtige Ordnung ein, indem die Sub-B-Werte in verschiedene Ordnungsnummern eingeordnet werden, vgl. PR der Fig. 11.
TEIL II - OPERANDENANALYSE
Nach Beendigung der Weisungsanalyse ist es zweckmäßig, als nächstes den Operanden zu analysieren. Zuerst muß der Operand mit einem modifizierten Kennzeiehnungs-Verfahren gekennzeichnet werden, was mit einem modifizierten Kennzeichnungs-Programm durchgeführt wird.
Mit Bezug auf die Programmablaufpläne der Fig. 87 - IO3 und Fig. 57, sowie auf Fig. 73 - 86, wobei Fig. 60 repräsentativ für einen Sprachtext ist, ist es zweckmäßig, um ein Kennzeichen in den Daten 111 zu erkennen oder zu "finden", ,jede gegebene Zeile aus Daten 111, LI89 - L283 nach Fig. 78, L313 - L394 nach Fig. 80 (logischer Datensatz l40) zu analysieren, indem jeder der Blöcke 131 - 137 analysiert wird. Dies erfolgt dadurch, daß das Eingaberegister 146 des logischen Datensatzes in mehrere Blöcke 131 - 138 aufgeteilt und jeder der aufeinanderfolgenden eingegebenen logischen Datensätze in einem derartigen Registerblock angeordnet wird. Im Verlauf dieser Diskussion wird eine Aufgliederung des eingegebenen logischen Datensatzes, den Blöcken 131 - I38 in den Fig. 100, 87 - 103 folgend, vorgenommen, für die Fortschreibungsanalyse der vorliegenden Erfindung jedoch wurde eine genaue Aufgliederung der logischen Datensätze neu definiert, vgl. Tabelle 0.0 und Tabelle 1.0 - 1.9, wobei die entsprechen-
409835/0649
236Q023
4@n Wert© der Glieder des Satzes aus Ordnungen der hierarchisoften Kennzeichen in einem Register für Operanden-Kennzeichen angeordnet sind, nämlich der Kennzeichen-Operand IÖ, der von vi©r Ordnungen mit 18 Speicherzellen (S4 - S22) nach Fig.100 auf acht Ordnungen erweitert wurde s mit der neunten Ordnung für die Zeile und mit insgesamt 36 Speicherseilen« vgl, (Kennzelchen-Register)-IR nach Fig. Ii* .
jeder der Blöcke I31 - 137 wurde gemäßdem Algorithmus oder der Rschenvorschrift für die strukturierten Daten oder Eingabedatei 22 (oder 21) ausgewählt s um daraus am wahr- §oheinliehstenKennzelGhen von verschiedenen Ordnungen zu bestimmen. In dieser Hinsicht besteht der Block-1>1 aus drei, zeichen, die unter dem Algorithmus für-diä. u ten Daten-lll der Anzahl :dea?\Leex»raüra-zeicheii um die das1 Paragraphen-Nummern-Kennzelßhen vom linken Rand ia^ ©ingerilckt ist» -Bi&ck IM mn Fig..:; Sf b©s't©.htvaus vier-leichens: was im allgSfn^U^n step -Aufnahme
n0rmalerwel.se- -S"ifnit£kant:e?|-:Steilen bestehen^
:sin4-i 'süsammen; mit iäem Punkt Hc.?t:a
Paragraphen-Kiinnaeichen folgte is mit vier Zeichen für die Paragraphen-Ordnungs^lCennzeichnung ausgestattet. In Mhnlicher weise besteht der Block 153 nach Fig. 90 aus vier Zeichen^ da Unter-Paragraphe^lCennzeioheri selten "mehr als zwei signifikante {nuüerieeföe) Stellen-fiber- ■ steigeni zusammen mit linken und rechten (mmd^n) Hämmern werden normalerweise vier Zeichenpositionen gebraucht, Biook 134 aus Fig^ 92 besteht aua vier Zeichen für die Ziffern- bzw. Buchstaben-Kennzeichen-Erkennüngi, wobei die Analyse Minlich wie jene für den Block 133 ists nur daß die Elemente des Kennzeichens im Block 134 alphabetisch und nicht numerisch oder alpha-numerisch sind. Für die einzelne Datei
403838/0 64
der Pig. 13 - 16, mit der diese Ausführungebeispiele verwendet wurden, machten gewisse Widersprüche in der Position der Elemente- oder Zeichenpositionen der Unter-Ziffern- bzw. Buchstaben-Kennzeichen die Einrichtung von zwei Blöcken zur Erkennung der Unter-Ziffern- bzw. -Buchstaben-Kennzeichen notwendig, nämlich die Blöcke 136 und 137. Beide Blöcke 136 und 137 der Fig. 96 wurden so gewählt, daß sie fünf zeichen zur Erkennung der Unter-Ziffern- bzw; -Buchstaben-Kennzeichen umfassen, die unter dem Algorithmus nach Fig. 13 - Ί6 aus römischen Ziffern bestehen. Die Daten 111 in dem Zwei-Zeichen-Füllblock 135, der zwischen dem Ziffern- bzw. -Buchstaben-Kennzeichen-Block 134 und dem Unter-Ziffern-Kennzeichen-Block 136 angeordnet ist, sind gemäß dem Algorithmus für die strukturierten Dateien nicht zur Kennzeichen-Bestimmung oder -Erkennung verwendbar. Wenn die Dateien bezüglich der Lage des Unter-Ziffern-Kennzeichens übereinstimmen würden, könnte der Block I36 für die Unter-Ziffern-Kennzeichen-Erkennung weggelassen werden, so daß die Blöcke 135 und 136 in einen Füllblock gemischt werden könnten. Block in Fig. 88 enthält den Ausgleich des Sprachfeldes 12G und besteht aus 45 Zeichen, da das Spraohfeld 120 insgesamt 72 Zeichen umfaßt (Positionen 1 - 72)j vgl. Fig. 100, wo bestimmte der Zeiohenpositionen aufgeführt sind: O, 3, 7, 11, 15, 22, 27 und 72.
Manchmal kann eine Datenzelle Kennzeichenelemente in bestimmten Zeichenpositionen enthalten, d.h. die Zeile L376 der Fig. 80 enthält Kennzeichenelemente in den Positionen 4, 5, 6 und 9. Es ist deshalb zweckmäßig, diese Elemente als repräsentativ für die Kennzeichengruppe zu "speichern", d.h. Glieder eines gegebenen Satzes aus Ordnungen, d.h. ((2Ib)* (1)} und die Zelle aus Daten der gespeicherten Kennzeiohengruppe zuzuordnen (dem gegebenen Satz aus Kennzeichen). Dies wird nun mit Bezug auf die Fig. 87 - 103 beschrieben.
409835/0649
■ - 51 -:
Eine Zeile Ll. aus Zeilen Ll - Ln aus Daten 111 wird im Eingaberegister;146 des logischen Datensatzes angeordnet. Die Daten 111 im eingegebenen logischen Datensatz l4ö werden dann "geprüft", um die Kennzeichen in den Daten 111 zu erkennen und zu lokalisiererii, oder um festzusteileni welche Kennzeichen den Daten des eingegebenen logischen Datensatzes l40 zugeordnet werden sollen, wie noch genauer erklärt wird» Die Kennzeichen (Glieder des Satzes) 122 (ohne den Zeilenzähler 130) werden in einem Kennzeichen-Speicher 117 gespeicherty oder, wenn dies gewünscht■-wird,, werden die erweiterten Kennzeichen 122' (mit dem zeilenzähler 130) im Kennzeichen-Speicher117 gespeichert. Die Daten des eingegebenen logischen Datensatzes l40 werden dann zusammen mit den Kennzeichen 122 oder den er*, weiterten Kennzeichen 122' in einen ausgegebenen logischen Datensatz 250 geformt und auf das Spool-Band 27 oder auf die Vater-Stammdatei 26 ausgegeben (Ausgabe des Datensatzes 150, oder 0/R ISO) und mit Bezug auf die ]{nderungsdatei 22 auf die Mutter-Änderungsdatei 32 und auf Spool 39 j eine Operation wird jedoch nur nach einem-bestimmten Kennzeichen durchgeführt, nämlich nach . :
wie später erläutert wird.
Der Zyklus wird anschließend mit' jeder folgenden Zeile wiederholt, so daß die Zeilen L2 - Ln der Daten 111 nacheinander in das Register 146 des eingegebenen logischen Datensatzes (eingegebener logischer Datensatz 140) gebracht und hinsichtlich Kennzeichen analysiert werden, wobei ein neuer ausgegebener logischer Datensatz 250 erzeugt wird, der den eingegebenen logischen Datensatz l40, zusammen mit den erweiterten Kennzeichen 122' auf der Vater-Stammdatei 26 enthält. Diese Folge wird bei jeder folgenden Datenzeile wiederholt (bei jeder unmittelbar nächstfolgenden Datenzeile), bis alle Daten
9835/0649
der gesamten Datei 110 gekennzeichnet sind. (Wo diese Ausführungsbeispiele auf Operanden angewandt werden, muß als Bestandteil der Ausgabe O/R I5O $v[(ΰΛθ)ν(>^θ)2 durchgeführt werden). Bei bestimmten Anwendungen können auch ein Kommentarcode sowie eine Kennzeichen-Unterdrückung im ausgegebenen logischen Datensatz 25Ο enthalten sein, doch werden diese gewöhnlich nicht gedruckt oder bei der Ausgabe angezeigt, sondern existieren im ausgegebenen logischen Datensatz 250 nur aus Gründen der Zweckmäßigkeit, wie später erläutert wird, doch wird diese Eigenschaft bei der vorliegenden Erfindung nicht angewandt.
Unter Bezugnahme auf die Fig. 76 - 86 und insbesondere auf die Fig. 8O wird dort gezeigt, daß eine gegebene Zeile aus Daten 111, z.B. die zeile L376, in einem Teil des Registers 146 des eingegebenen logischen Datensatzes angeordnet ist, nämlich in den ersten 6l der 72 Zeichenpositionen. Der Kennzeichen-Speicher II7 ist aus einem dreistelligen Zeilenzähler 130 und aus einzelnen Speichern S3 - S16 und SI8 - S22 nach Fig. 100 zusammengesetzt, wobei jeder mit den im wesentlichen entsprechenden, eindeutigen Zeichenpositionen 3 - 16 und 18 - 20 des eingegebenen logischen Datensatzes l4o verbunden ist. Dadurch kann ein Kennzeichen in irgendeiner Zeichenposition S3 - SI6 und S18 - S22 des eingegebenen logischen Datensatzes 140, z.B. in den Positionen 4 -7> die die Positionen der Paragraphen-Kennzeichen darstellen, in den entsprechenden Speicherzellen gespeichert werden, z.B. in den Speicherzellen S4 - S7. Weiterhin werden die Unter-Paragraphen-Kennzeichen dieser Zeile, die in den Zeichenpositionen 8 -11 und insbesondere in der Zeichenposition 10 erscheinen, in Speicherzellen S8, S9 - SIl und Insbesondere in SlO gespeichert. (Bei einer geschlossenen Durchsicht der Fig. 80 und 100 kann festgestellt werden, daß während der Analyse der Paragraphen-Kennzeichen die Positionen 4-8 in den Speicherzellen S4 - S8 angeordnet werden, während für
40983 5/0649
. : : -" ■■■■?■ ν 59:ν .■".,-;■ \, .■ .-.. : ,
die Analyse der Unter-Paragraphen die Positionen 8.- 11 im Speieherelement SB' sowie in S9 - SIl gespeichert werden, Dies ist notwendig, um ein mögliches Überlappen der Zahl der signifikanten Zeichen in den Gliedern der Paragraphen-Kennzeichen in einem Fall und in den Gliedern der Unter-Paragraphen-Kennzeichen in einem anderen Fall sicherzustellen, wie noch näher erläutert wird). Als Folge davon wird der ausgegebene logische Datensatz 25O erzeugt, der die Daten 111 des eingegebenen logischen Datensatzes14o und die Informationselemente, die Glieder, in den Speicherzellen S4 τ S8 und S8' '- SIl gespeichert hat, nämlich d.ie Ordnungsglieder 124 bzw, 125 der- Paragraphen-Kennzeiohen bzw. der Unter-Paragraphen-Kennzeichen.Weiterhin ergibt sich aus diesen Figuren, daß die in den Positionen 12 erscheinenden Ziffern-Kennzeichen in den Speicherzellen S12 - S15 angeordnet sind und die in den Positionen l8 angeordneten Unter-Ziffern-Kennzelchen in den Speicherzellen S18 - S22,während jene ünter-Ziffern-Kennzeichena die. sich in den Positionen 23 - 27befinden, ebenfalls in den Speicherzellen S18 - S22 angeordnet slnd^ da in nianchen Bateien 110 öie ünter-Ziffern-Kennzeichen in die positionell" 18" 22 gelegt werden^^ während sie in anderen Pateien in Sen Positionen. 23 - 27 angeordnet sind. Um infolgedessen das Kennzeichnungssystem universell bezüglich jedes Typs von strukturierten Dateien zu inachen, werden diese durch Analyse beider Blöeke 136 und 137 der Fig. 96 hinsichtlich der Glieder der Unter-Ziffern-Kennzeichen analysiert» Wie 1 später ersichtlich wird, ist dort, wo die Zeilenzählung 130' durch den Zähler 130 erzeugt wirds diese ein Glied der Ordnung im Kennzeichen-Speicher 117, nämlicli Ordnungsnummer 9,· die Zeilenzählung 130'wird in den ausgegebenen logischen Datensatz 250 übertragen. Tatsächlich kann auch das besondere Codierelement c-com in den ausgegebenen logischen Datensatz eingefügt werden, z.B. in Position 94. Auch können zusätzliche
409835/0649
Codeelemente verwendet werden, wenn dies zweckmäßig ist.
In der Zeile I/382 der Fig. 80 belegt das Ziffern-Kennzeichen 126 die Positionen 12 - 15; insbesondere wird die Position Ij5 in Speicherzellen S12 - SI5 gespeichert, und insbesondere in S'lj5, und ein derartiges Ziffern-Kennzeichen 126 wird zusammen mit den zuvor bestimmten Ordnungen der Kennzeichen 124 und 125, die während der Analyse der Zelle L376 bestimmt wurden, in den ausgegebenen logischen Datensatz 250 der Zeile I/582 eingefügt. Weiterhin wird nach Pig. 85 und Zeile L3027 das in den Zeichenpositionen 18 - 22 auftretende Glied "ii" des Unter-Ziffern-Kennzeichens 127» und insbesondere daraus die Positionen 20 und 21, in Speicherzellen SI8 - S22 gespeichert, insbesondere in Speicherzellen S20 und S21. Diese Kennzeichen werden ebenfalls in den ausgegebenen logischen Datensatz 25O der Zeile L800 von Fig. 82, zusammen mit Gliedern und Ordnungen aus Kennzeichen eingefügt, die zuvor während der Erkennung des Paragraphen-Kennzeichen-Gliedes "49a" auf der Zeile L775 erkannt wurden, zusammen mit dem Unter-Paragraphen-Kennzei-Chen-Glied "2" auf der Zeile L788, und mit dem Ziffern-Kennzeichen-Glied "b" auf der Zeile L797.
Bei anderen Anwendungen (anderen Dateien) belegen nach den Fig. 76 - 86 und nach Tabelle 9 die Paragraphen- und Unter-Paragraphen-Kennzeichen meist dasselbe Feld im eingegebenen logischen Datensatz 140, nämlich die Positionen 4-7 des Blocks 1J52 nach Fig. 87. Wenn jedoch der Unter-Paragraph der erste Unter-Paragraph innerhalb des Paragraphen ist, d.h. Unter-Paragraph (1), kann er im unmittelbar nächsten Block, Block 133 der Fig. 90, in den Positionen 8-12 erscheinen. Auf jeden Fall genügt es zu sagen, daß sich diese Ausführungsbeispiele auf derartig strukturierte Dateien beziehen, wie noch genauer erläutert wird.
409 8-3 5/0649
- 6i - "■;■■;..
Die z.B. auf die Zeile L372 angewandten Ausführungsbeispiele werden nun. anhand der Fig. 87 -. 103 näher beschrieben. Es ist zweckmäßig, jede Zeile aus Daten 111 im Hinblick auf Leerraum-Zeichen zu analysieren, da dadurch die Verarbeitungszeit in der Zentraleinheit verringert werden kann, insbesondere jeden der Blöcke 131 - 158 des eingegebenen logischen Datensatzes l4O. Wenn der eingegebene logische Datensatz I1I-O nur voll von Leerraum-Zeichen ist, enthalten die bereits in den Speicherzellen Sl V S22 vorhandenen Zahlen die Kennzeichen-Glieder für diese Datenzeile innerhalb des eingegebenen logischen Datensatzes ΐ4θ* da die Kennzeichen bereits zuvor durch eine'vorausgehende Folge bestimmt wurden, die identisch zu der nachstehend beschrie-.. benen Folge ist. Wenn der eingegebene logische Datensatz 140 andererseits die allererste zeile aus Daten ill der Datei 110 enthält, sind die Speicherzellen Sl - S22 bereits zuvor mit Leerräumen gefüllt, worauf durch Addition einer Eins zum Zähler 130, Zählung 13O' dieser nun die wesentliche sequentielle Zeilennumerierung enthält," wobei in Bezug auf die Beispiele die.Zeile L376 gleich "Eins" der Fig. 80 ist.
Zur weiteren Erklärung wird nun auf den Programmablaufplan der Fig. 87 Bezug genommen, bei dem mit einer Wenn-Anweisung 10131' die Positionen 1=3 des Blocks 131 bezüglich Leerraum-Zeichen geprüft werden,· wenn keine Leerraum-Zeichen vorhanden sind, bedeutet dies,, daß irgendwelche Daten diese Positionen belegen (in diesem Abschnitt ist "Prüfe" äquivalent zur "Wenn"-Anweisung in COBOL). Somit besteht die Datenzeile innerhalb des eingegebenen logischen Datensatzes l40 aus Daten, die in einem Paragraphen enthalten sind, wobei das Paragraphen-Kennzeichen dafür bereits früher bestimmt wurde; sodann wird eine "Eins" zum Zähler 13Ο addiert, was nachstehend als Zählung 130' bezeichnet wird„ und der Daten-
409835/0649
satz 150 ausgegeben. Andererseits, wenn die Positionen 1 - 3 · Leerräume sind, zeigt der Algorithmus der strukturierten Datei an, daß die Datenzeile in dem eingegebenen logischen Datensatz l4O entweder die erste zeile eines Paragraphen ist (wobei der Paragraph um drei Zeichenposifcionen eingerückt wird), oder daß die zeile Bestandteil einer Unter-Kennzeichen-Gruppe ist (Unter-Paragraph, Ziffern bzw. Buchstabe), Unter-Ziffer usw.)* oder daß die Zeile eine Leerraum-Zeile ist. Nun wird eine Prüfung IOI321 der Positionen 4-7 des Blocks 132 durchgeführt, um Leerräume zu erkennen; falls Leerräume vorhanden sind, prüft das Ausführungsbeispiel der Reihe nach hinsichtlich Leerräume: mit Prüfung IOI33' die Positionen 8-11 des Blocks 133 aus Pig. 9Oj anschließend mit Prüfung 10134' die Positionen 12 - 15 des Blocks 134 (vgl. Fig. 92); danach mit Prüfung 10135* die Positionen ίβ 17.des Blocks 135 (vgl. Fig. 88); danach mit Prüfung IO236' die Positionen l8 - 22 des Blocks I36 (vgl." Fig. 96 )j danach mit IOI37' die Positionen 23 - 27 des Blocks 137. (vgl. Fig.88); und schließlich mit IOI381 die Positionen 28 - 72 des Blocks 138 (vgl. Fig. 88); wenn der Block I38 aus Leerräumen besteht, wird die Zeilenzählung 130' ausgeführt und somit der Datensatz 150 ausgegeben. Die Prüfung IOI38' kann tatsächlich vollständig weggelassen werden, wenn im Block 138 unter dem Algorithmus der Datei keine Kennzeichen erscheinen können. Als Folge davon wird mit dem Zählen 130* und Ausgeben des Datensatzes 15Ο immer dann fortgefahren, wenn die ersten 27 Positionen des eingegebenen logischen Datensatzes 140 aus Leerraum-Zeichen bestehen. ·
Es soll nun angenommen werden, daß die zu analysierenden Daten 111 aus der ersten Zeile eines Paragraphen, d.h. aus der ersten Zeile des Paragraphen 21b (1) des Sesetzea über die Kyife ssionsschulen, Zeile L376 der Fig. 80. Wiederum nach Fig. 87 wird bei 10131' der Block 131 hinsichtlich Leer-
409835/0649
räume geprüft und anschließend in 10132' geprüft, ob die '. Positionen 4 - 7 Leerräume enthalten» Hinsichtlich Block I32 werden keine Leerräume festgestellt, da die alpha-numerischen Zeichen "21b" zwischen den Positionen 4 - -f. angeordnet sind. Somit wird die Prüfung 10232' hinsichtlich Position 4 durchgeführt, um festzustellen, ob diese Position einuLeerraum-Zeichen ist, was nicht der Fall ist; dadurch wird mit 10332' hinsichtlich Position 4 geprüft, ob diese Position ein Buchstabe ist. In diesem Fall ist in der Position 4 kein Buchstabe, so daß die Prüfung 10^32'durchgeführt wird, um · festzustellen, ob die Position 4 eine ziffer ist. Dies ist der Fall, so daß die ziffer "2n der Position 4 durch die Speicher-Anweisung 10432* in der Speicherzeile S4 gespeichert wird. Sodann beginnt die Analyse der Position 5 durch die Prüfung 10632' (Fig. 89), die bestimmt, ob in" der Position 5 ein Punkt "."ist. Wenn dies der Fall ist, geht aus dem Algo^ rithmus klar hervor, daß das Paragraphen-Kennzeichen aus nur einer Position besteht (eine signifikante Ziffer oder Stelle) und deshalb eine Ziffer zwischen 1 und 9 ist (sie könnte theoretisch auch eine "0" sein, doch kommt normalerweise eine Paragraphen-Nummer 11O" nicht vor). Die Speicherzellen S5 S8 müssen durch die Lösch-Anweisung IO732 von früheren Kennzeichen-Gliedern gelöscht werden, wodurch diese mit Leerräumen aufgefüllt werden, um sicherzustellen, daß nur die richtigen Kennzeichen-Elemente In die Speicherzellen gebracht und während des auegegebenen Datensatzes 150.verwendet werden, und daß die Kennzeichen der vorhergehenden Prüfung, die andernfalls im Speicher bleiben würden, nicht irrtümlicherweise erneut verwendet werden. Danach wird eine Bestimmung des Blockes 133 der Fig. 90 durchgeführt, wie nachstehend beschrieben wird. Wenn die Prüfung IO6321 der Fig. 89 andererseits angibt, daß kein Punkt "." vorhanden ist und somit die Zahl des Paragraphen-Kennzeichens wahrscheinlich aus
40983 5/0649
mehr als einer signifikanten Stelle besteht, was hler der Fall ist, wird eine Prüfung 10732' durchgeführt, um festzustellen, ob die.Zeichenposition 5 ein Gedankenstrich "-" ist. Wenn die Position ein Gedankenstrich ist, werden die Speicherzellen S5 - S8 durch die Löschanweisung 10732 erneut gelöscht. (Dieser Schritt bedeutet, daß das Paragraphen-Kennzeichen tatsächlich aus nur einer signifikanten Stelle besteht, daß jedoch ein Unter-Paragraphen-Zeichen vorhanden ist). Diese beiden letzten Schritte, Prüfen 1O7J52' und Löschen IO732 werden als "Kontrollen" der Daten durchgeführt, um sicherzustellen, daß die Daten geeignet strukturiert sind, und daß das Paragraphen-Kennzeichen aus nur einer signifikanten Stelle besteht, da einzusehen ist, daß entweder ein Schreibfehler vorhanden ist, oder daß die Datei absichtlich strukturiert ist, indem der Punkt oder der Gedankenstrich aus den Daten weggelassen wurde. Andererseits stellt die Doppelprüfung 10632' und IO732' eine zufriedenstellende Kennzeichen-Erkennung sicher, obwohl nur ein Satz oder ein Gedankenstrich nach einem Paragraphen-Kennzeichen verwendet wird. Aus der Datei 110 ist zu ersehen, daß in fast allen Fällen nach einem Paragraphen-Kennzeichen ein Satz verwendet wird, und daß dann, wenn ein Satz und ein Gedankenstrich nach einem Paragraphen-Kennzeichen gemeinsam verwendet werden, das Paragraphen-Kennzeichen unmittelbar von einem Unter-Paragraphen-Kennzeichen gefolgt wird; vgl.
409835/0649
hierzu den Definitionsparagraphen I7 des Gesetzes über die Konfessionsschulen, Zeilen LI5I - L193 derFig, 76 - 78.
Wenn nach Fig. 89 die Prüfung IO732' andererseits ergibt/ daß kein Gedankenstrich vorhanden ist, zeigen die Prüfungen IO632' und IO732' zusammen an, daß das, was immer auch in der Zeichenposition 5 ist, ein Element oder ein Glied eines Paragraphen-Kennzeichens ist, so daß dieses deshalb mit der Speicher-Anweisung 10732* in die Speicherzelle S5 gespeichert wird. Durch 10732^ wird in diesem zufällig gewählten Beispiel-die Ziffer"1" in die Speicherzelle S5 gebracht. ■ ".-.■".
Um die Diskussion zu vereinfachen, werden alle weiteren Prüfungen hinsichtlich eines Punktes oder eines Gedankenstriches im Block 132 als eine einzelne Prüfung betrachtet, doch ist einzusehen, daß dazu in den meisten Rechnern zwei verschiedene Wenn-Anweisungen durchgeführt werden müssen, wie oben gezeigt wurde.
Die gleichen Schritte wie für die Position 5 werden nacheinander auf die Position β angewandt, nämlich Prüfen 10832' und Löschen IO832 oder Speichern 10832* ; auf die Position 7, nämlich Prüfen IO932' und Löschen 10932 oder Speichern IO932* ; sowie auf die Position 8, nämlich Prüfen IIO32' und Löschen IIO32 oder Speichern IIQ32 * . Aus diesen
40 9835/0 6 49
Anweisungen: Prüfen (Wenn), Löschen (Nullen übertragen) und Speichern (Übertragen) werden die verbleibenden Elemente" (Glieder) des Paragraphen-Kennzeichens bestimmt und in geeigneten Speicherzellen gespeichert. Hier wird das Datenelement "a" durch die Anweisungen: Prüfen IO8321 und Speichern IO832*' sowie Prüfen 10932* und Löschen 10932 in der Speicherzelle S6 gespeichert. Im Zusammenhang mit der Zeile L376 der Fig. 80 werden folgende Verarbeitungsschritte nicht benötigt: Prüfen IIO321 nach Fig. 90, Lösehen IIO32, Speichern IIO32*, Löschen IO832 und Speichern 10932.
Nach dem Löschen IO932 in Fig. 89, wodurch die Speicherzellen S7 und S8 gelöscht werden, erfolgt das Prüfen von Block 133 nach Fig. 90, insbesondere durch die Prüfanweisung IOI33', wobei die Positionen 8-11 hinsichtlich Leerräumen geprüft werden. Mit IOI33' werden keine Leerräume festgestellt, da die Position 7 einen Gedankenstrich "-" enthält, die Position 8 eine linke runde Klammer "(", die Position 9 eine Ziffer "1" und die Position 10 eine rechte runde Klammer ")". Die für diese zeile passenden Kennzeichen werden durch die folgenden Sehritte bestimmt: Prüfen IOI331 bis Prüfen 10233' zum Überprüfen der Position 7 hinsichtlich der linken runden Klammer "(". Da das Kriterium der linken runden Klammer auf die Position Jedoch nicht zutrifft, wird deshalb die Prüf-Anweisung IO3331 zum Feststellen einer linken runden Klammer auf der Position 9 durchgeführt. Da auf der
409835/0649
Position 9 keine linke runde Klammer vorhanden ist, wird die Prüf-Anweisung 10433' der Fig. 91 durchgeführt (deren Zweck später beschrieben wird, die Jedoch für diese Diskussion weggelassen- werden kann). In Fig. 91 wird mit der Prüf-Anweisung 10533s die Position 8 auf hinsichtlich einer linken runden Klammer untersucht·. Entsprechend Zeile L3?6 ist in der Position 8 eine linke runde Klammer vorhanden, so daß die Speicher-Anweisung 10533 durchgeführt wird, um das Zeichen auf der Position 9 in der Speicherzelle S8T zu speichern. Dieser Schritt bringt die, Ziffer" 1" in die Speicherzelle SO'. Wie ersichtlieh^ ist nun das erste Element (Glied) oder die signifikante Stelle des Unter-Paragraphen-Kennzeichens bestimmt. Deshalb ist es nun zweckmäßig, zu bestimmen, ob ein zweites Element des Unter-Paragraphen-Kennzeichens vorhanden ist. Dazu wird die Prüf-Anweisung IO6331 auf die Position 10 angewandt, um die rechte runde Klammer ")" zu bestimmen. In diesem:zufäiligen Beispiel wird Prüfung 10633' auf die Position 10 für die rechte runde Klammer angewandt und in diesem Falle bestimmt. Infolgedessen werden die Speicherzellen SlO- S22 durch die LÖschrAnweisung IO633 gelöscht und der Datensatz I50 ausgegeben. Wenn Jedoch Prüfung 10633' ergeben hätte, daß sich in der Position 10 keine rechte runde Klammer befindet, müßte die Speicher-Anweisung 10633 angewandt werden, um ein zweites Element oder Glied des Unter-Paragraphen-Kennzeichens in die Speicherzelle S9 zu speichern; in ähnlicher Weise iifürden danach bezüglich
40 9 83 57 0649
der Position 11 die Anweisungen durchgeführt: Prüfen 10733' und Löschen 10733 oder Speichern IO733 , um festzustellen, ob dort eine rechte runde Klammer vorhanden ist, und falls nicht, das entsprechende Element des Kennzeichens in der Speicherzelle SlO zu speichern. Danach würde die Prüf-Anweisung 10833' auf die Position 12 angewandt, um diese auf eine rechte runde Klammer zu prüfen; danach wären alle Glieder fies Unter-Paragraphen-Kennzeichens bestimmt und würden in den Speicherzellen S8' - SU angeordnet, während die Glieder des Paragraphen-Kennzeichens, die bereits früher bestimmt wurden, in den Speicherzellen S4 - S8 untergebracht wären. Als Folge davon werden die Speicherzellen S12 - S22 durch die Lösch-Anweisung IO833 gelöscht, der Zähler I30 auf Null zurückgesetzt und eine Eins zu diesem addiert (Zähl-Anweisung I30') und der Datensatz I50 ausgegeben. Wenn andernfalls die rechte runde Klammer nicht festgestellt wird, wird das Element der Position 12 durch eine Speicher-Anweisung 10833* in einer Speicherzelle SH gespeichert, durch eine Löschanweisung IO933 gelöscht, die Zahl-Anweisung 130' durchgeführt und der Datensatz 150 ausgegeben.
Aus dem Algorithmus der strukturierten Datei 110 geht hervor, daß, falls Glieder eines Unter-Paragraphen-Kennzeichens vorhanden sind, diese fast immer in der Position
409835/0649
erscheinen, und eine rechte runde Klammer in Position 12, da die Glieder der Unter-Paragraphen-Kennzeichen nach rechts ausgerichtet sind, um die Abstands-Einheitlichkeit des linken Randes des Unter-Paragraphen beizubehalten, vgl. Fig. 80 und Zeile" L313, Aus den Prüf-Anweisungen 1.0133' bis 10933' geht hervor, daß für jedes Zeichen im Block I33 eine Analyse hinsichtlich linker und rechter runder Klammern gemacht wird, um die Größe des Unter-Paragraphen-Kennzeichenfeldes zu bestimmen, das entweder aus einer, zwei, drei oder vier signifikanten Stellen besteht, und um somit aus den Daten die wichtigen Glieder des Kennzeichens zu erkennen und diese in den zugehörigen Speicherzellen zu speichern. So betrachtet können die Unter-Paragraphen-Kennzeichen manch- · mal aus vier signifikanten Stellen bestehen, und die Position 8 könnte im Falle einer Rechtsbündigkeit ein Glied des UnterParagraphen-Kennzeichens enthalten. In diesem Fall gehört das Element.der Position 9 zum Unter-Paragraphen-Kennzeichen und wird deshalb mit diesem gespeichert, d.h. in derSpeicherzelle S8' anstatt in S8, die für Glieder der Paragraphen-Kenn- ' zeichen reserviert ist. In anderen Fällen kann die Position 8 die letzte signifikante Stelle eines Paragraphen-Kennzeichens sein und wird dann als Glied des Paragraphen-Kennzeichens in der Speicherzelle S8 gespeichert. Ein Beispiel dafür zeigt Fig. 82 für den Paragraphen 113b und den Unter-Paragraphen (23a) dieses Unter-Paragraphen. In diesem Beispiel erscheinen sowohl "b" als auch "2" in der Position 8,
".; ■ 40983 5/0640
doch werden die Glieder trotzdem in geeigneter Weise bestimmt,' da im einen Fall das Zeichen der Position 8, "bM, sich in der Speicherzelle S8 b-efindet, während im anderen Fall das Zeichen^ element der Position 8, "2", in der Speicherzelle S8' gespeichert wird. Aus den Speicherzellen werden die zugehörigen Kennzeichenglieder als Satz im ausgegebenen logischen Datensatz 250 in den zugehörigen Kennzeichen-Ordnungen 124 und 125 untergebracht.
Um nach Fig. 90 und 95 schnell den Bereich der Kennzeichen-Ordnungen, die Größe der benachbarten Ordnungen zu bestimmen, d.h. zu bestimmen, ob. das Feld einer Ordnung aus einer, zv/ei oder aus drei signifikanten Stellen besteht, wird eine Folge 160 zwischen einer Speieher-Anweisung 10233 und einer Lösch-Anweisung 10233 angeordnet, sowie eine Folge I70 zwischen einer Speicher-Anweisung 10333* und einer Lösch-Anweisung 10333 (die Folge I70 ist nicht dargestellt, doch ist sie in jeder Hinsicht mit der Folge 16O identisch, mit Ausnahme der bearbeiteten Zeichenposxtionen während jedes Prüfvorgangs). Durch die Folge I60 der Fig. 95 wird die Prüf-Anweisung 11033' auf die Position 9 angewandt, um die rechts geschlossene Klammer und somit den Bereich des Unter-Paragraphen-Kennzeichenfeldes 125 zu bestimmen. Wenn eine Klammer gefunden wird, wird die Lösch-Anweisung 10233 durchgeführt und die Prüf-Anweisung 11033* hat keinen effektiven Nutzen, so daß in dieser Hinsicht so ist, als ob die Folge 16O nicht existieren würde. Wenn andererseits die Position 9 nicht eine rechte runde Klammer ist, wird das Element oder Glied der Position 9 in die Speicherzelle S9 gebracht. Danach wird eine Prüf-Anweisung 11133' durchgeführt, um die rechts geschlossene Klammer zu bestimmen, und falls diese gefunden wird, wird eine Lösch-Anweisung 11133 durchgeführt, um die Speicherzellen SlO - S22 der Glieder zu löschen. Wenn auf der Position 9 keine Klammer festgestellt wird, wird eine Speicher-Anweisung 11133* durchge-
409835/064 9
führt. Danach wird eine Lösch-Änweisung 11233 ausgeführt und der Datensatz 1^0 ausgegeben. Obwohl nicht dargestellt, könnten in der Folge IbO unter Verwendung derselben Prüftechnik weitere Prüfungen für rechte runde-Klammern auf der Position 11 durchgeführt werden, nämlich eine Losch- oder Speicherfolge als Prüf-Anweisung: -1-1133' (aber auf Position 11 für" eine rechte runde-Klammer)-, wobei die Los cn-Anweisung 11333 zum Löschen der Speicherzellen SJl - ST'2 dient, oder zum: Speichern des Elementes: der Position 11 in SIl. Eine derartige Folge : würde zwischen die Speicher-Anweisung 11133 und die Lösch- . Anweisung. 11?33. der Fig. 95 eingeschoben. Aus den Prüf-Anweisungen ■ iö?53' "'und. 10333' der Fig. 90 sowie TO533' der Fig. ist ersichtlich, daß die Prüfungen hinsichtlich einer linken runden Klammer auf Positionen 7, 9 bzw. 8 durchgeführt werden, und daß dann, wenn eine dieser Folgen rechte runde Klammern in den Positionen 7, 9 bzw. 8 vorfindet, im nächsten Schritt das nächstfolgende Element gespeichert wird, nämlich das EIe- : ment der Positionen 8, 10 bzw. 9 in die Speicherzelle S3'. Auf diese Weise wird siehergestellt, daß das Unter-Paragraphen-Kennzeichen in seinem Kennzeichenfeld 125 der Fig. 100 links- bündig ist. Genauso zweckmäßig wäre es, das Unter-Paragraphen-Kennzeichen rechtsbündig zu schreiben^ doch in diesem Ausführungsbeispiel wurde Linksbundigkeit gewählt, Solahge die Paragraphen-Kennzeichen im ausgegebenen logischen Datensatz in den zugehörigen und eindeutigen Positionen des: Kennzeichenfeldes erscheinen, ist es bedeutungslos, Vielehe Art von Bündigkeit gewählt wirdv Auf diese Weise wird ein leichter- Zügriff zu den Unter-Paragraphen-Kennzeichen 125 in einem Satz des Kennzeichenfeldes 122 erreicht. (Später wird gezeigt, daß Ziffern- und -Unter-ZIffern-Kennzeichen rechtsbündig angeordnet sind.)
Nach der Analyse von Block 1331 bezüglich Unter-Paragraphen-Kermzeichen-Gliedern können .nachfolgende eingegelDene logische Datensätze l4o wie oben erklärt bezüglich Paragraphen- und Unter-Paragraphen-Kennzeichen analysiert werden.
ORIGINAL-4Ö983 5/0649
Nun ist es zv/eckmäßig, die Erkennung von Ziffern bzw. Buchstaben-Ordnungs-Kennzeichen in einem eingegebenen logischen Datensatz l4O zu erläutern. Unter der Annahme, daß eine neue Zeile aus Daten im eingegebenen logischen Datensatz l40, z.B. Zeile L382 der Pig. 80, vorhanden ist, und daß die Prüf-Anweisungen IOI31', 10132' und IOI33' durchgeführt und Leerräume erkannt wurden, wird eine Prüf-Ariwcisung 10134' nach Fig. 92 auf die Positionen IP bis 15 zur Ermittlung von Leerräumen angewandt; wenn Leerräume vorhanden sind, wird auf den Prüfblock 135 der Fig. 95 weitergegangen, wie bereits früher diskutiert wurde. Wenn andererseits durch die Prüf-Anweisung 10134' der Block 134 auf den Positionen IP - 15 keine Leerräume aufweist, wird die Prüf-Anweisung 10234' auf die Position 12 zur Ermittlung der linken runden Klammern angewandt] wenn dies bestimmt ist, wird das Zeichenelement der Position I3 durch eine Speicher-Anweisung IO234* in der Speicherzelle SI3 gespeichert, wobei dieses Element das erste Element des Ziffern- bzw. Buchstaben-Kennzeichens ist, das wie in der Zeile L3Ö2 von Fig. 8O der Buchstabe '"a" ist.
Die nächste Prüffolge im Block 134 besteht aus Prüf-Anweisungen IO334' und 10434', mit denen versucht wird, die Größe des Kennzeichenfeldes für die Ziffern- bzw. Buchstaben-Numerierung zu ermitteln, nämlich ob das Ziffern-Ordnungs-Kennzeichen aus einer, zwei oder aus drei signifikanten Stellen besteht. Wenn einmal die rechte runde Klammer gekennzeichnet ist, werden die Ziffern-Kennzeichen, die zwischen der linken und der rechten runden Klammer angeordnet sind, über die Speicher-Anweisungen IO234*, IO334*, 10434* (SI3, Sl4, SI5) zur zugehörigen Speicherzelle gebracht, und alle Speicherzellen mit höheren Nummern, je nachdem, von Sl4 oder SI5 und SI8 - S22 werden durch Lösch-Anweisungen 10234, 10334, 10434 oder 10534 gelöscht, und zwar in einer Weise, die bereits im Zusammenhang mit den entsprechenden im Block 133 diskutierten Anweisungen erläutert wurde, d.h. mit den Prüf-, Lösch- und Speicher-Polgen daraus.
SAD
409835/0649
■;■.. - 73 - ■-. -'.;■ ■
2360Q23
Es ist nun zweckmäßig, die Unter-Ziffern-Ordnungs-Kennzeichen 127 der Fig. 100 zu analysieren und die Glieder daraus zu erkennen, falls welche vorhanden sind. Obwohl in den Fig. 76 8l nicht dargestellt, werden die' Unter-Ziffern-Kenn'zeichen 127 (vgl. jedoch Fig. 85) im Block 136 oder im Block 137 gefunden, jedoch nicht in beiden} diese Logik wird in den Äblaufplänen der Fig, 90 - 105 dargestellt. Der Grund dafür, daß die Unter-: Ziffern-Kennzeichen in den Blöcken 136 und' 137 gefunden werden, ist teilweise auf einige Formatänderungen vonbestimmten \ strukturierten DateienozurUckzüführen, die identisch zu der in den Fig> 76 - 8l·dargestellten strukturierten Datei sind, z.B. die Paragraphen-, Unter-Paragraphen-, und Ziffern-Kennzeichen, die jedoch mit Bezug auf die Lage des Unter-Ziffern-Kennzeichens bestimmte Änderungen erfahren haben, d.h. ob sie entweder in Block 136 oder in Block 137 sind. Die folgenden -Ausführungen dienen zur Darstellung der Vielseitigkeit dieser Ausführungsbeispiele.
Aus den Fig. 85 und 86 geht hervor,· daß die Glieder der Unter-Ziffern-Ordnungs-Kennzeichen das alphabetische Symbol (i) zusammensetzen; (ii), (iii)y (Iv); was als römische Ziffern-Numerierung bezeichnet werden kann. In Fig.. 87 wer.den nach der Prüf-Anweisung IOI311 durch die Anweisungen 10132', 10133' und IOI34' Leerräume erkannt, und der Prüfblock 135 der Fig. beginnt mit einer Prüf-Anweisung 12034' zur Neuprüfung der Positionen 12 - 15 bezüglich Leerräumen. Wenn die Positionen •12 - 15 keine Leerräume sind, wird eine Eins zum Zähler 130 addiert und der Datensatz 150 ausgegeben. Wenn andererseits die Prüf-Anweisung 12034'"Leerräume erkennt, wird die Prüf-Anweisung 12035' auf die Positionen.1-6 und 17 angewandt·, auf den Füllblock 135, auf dem keine Kennzeichen-Elemente angeordnet sein können, und falls Datenelemente in den Positionen l6 oder 17 vorhanden sind, wird die Zahl-Anweisung I30' ausge-* führt und der Datensatz 150 ausgegeben, da der eingegebene logische Datensatz l40 in diesem Fall eine Zeile' aus Daten dar-stellt, die Bestandteil eines zuvor erkannten Kennzeichensatzes
4098 35/06 49
ist. Wenn in Block 135 andererseits Leerräume gefunden werden, ' wird die Prüf-Anweisung 12036' auf die Position 18 für linke runde Klammern angewandt; und, falls dieses Zeichen nicht gefunden wird, wird eine. Prüf-Anweisung 12136' auf die Position 19 für eine linke runde Klammer angewandt; und falls keine Klammer vorhanden ist, wird eine Prüf-Anweisung lf-236' mit dem gleichen Ziel auf die Position 20 angewandt. Wenn die Prüf-Anweisung 12236' oder irgendeine der Prüf-Anweisungen 12036', I2136' oder 12236' eine linke runde Klammer bestimmt, wird die unmittelbar nächste Position rechts davon im eingegebenen logischen Datensatz l40 auf 11I" geprüft, d.h. die Prüf-Anweisung 12336' prüft die Position 19, eine Prüf-Anweisung 12436' prüft die Position 20 und eine Prüf-Anweisung 12536' prüft die Position 21 jeweils auf "i". Unter dem Algorithmus der Datei 110 der Fig. 76 - 86 ist das Unter-Paragraphen-Ordnungs-Kennzeichen eine römische Ziffer, weshalb die Sicherstellung gewünscht wird, daß jene Glieder dieser Ordnung des Kennzeichens, und nur diese Glieder,- von den Speicherzellen SI9 S22 über die entsprechenden Speicherfolgen 12336*, 12436* und 12536* der Fig. 93 aufgenommen werden. Nach der Speicher-Anweisung 12436 wird die Position 21 durch die Prüf-Anweisung II336' auf rechte runde Klammern geprüft, während .aus einer Speicher-Anweisung 12536* die Position 22 durch die PrUf-Anweisung 11436' der Pig. 94 auf rechte runde Klammern geprüft wird. Andererseits wird nach der Speieher-Anweisung 12336 mit einer Prüf-Anweisung I26361 die Position 20 auf eine rechte runde Klammer überprüft. Man kann nun erkennen, daß die Prüf-Folgen 12436', 11536* und 11436' Versuche darstellen, noch einmal die Größe des Feldes dieser Ordnung der Kennzeichen zu bestimmen, und in diesem Fall die Größe der Unter-Ziffern-Ordnungs-Kennzeichen 127 von Fig. 100.
Aus der Durchsicht der Fig. 93 und 94 geht hervor, daß die Lösch-Folgen 12636, II336 und 11436 alle oder einen Teil der verbleibenden Speicherzellen löschen, um die neuen Unter-Ziffern-Ordnungs-Kennzeichen aufzunehmen.
"■■'". »AD ORIGINAL
409835/0649
23S0023
Nun werden die Fig. 94, 96 und97 erörtert, unter der Annahme, daß die Unter-Zifiern-Ordnungs-Kennzeichen in den Positionen 23 - 26, anstatt in den Positionen 18— 22, angeordnet sind. Die Unter-ZifXern-Ordnungs-Kennzeiciien 127 werden zuerst durch eine Analyse des Prüfblocks I36 der Fig. 96 wie beschrieben bestimmt, nachdem die Prüf-Anweisung IIO37' der Fig. 88 keine Leerräume für die Unter-Ziffern-Ordnungs-Kennzeichen-Glieder 127 ergibt, was als in Block 137 anstatt in Block I36 befindlich angenommen wird» Eine Prüf-Anweisung IO236' der Fig» 96 wird auf den Positionen l8 - 22 (Block 136) für Leerräume durchgeführt; falls keine Leerräume vorhanden sind, folgt die Zahl-Anweisung 13O' und die Ausgabe des Datensatzes I50. Wenn andererseits Leerräume: festgestellt werden, wird eine Prüf-Anweisung 10237' auf die Position 24 für "!"angewandt und anschließend 10337' für eine linke runde Klammer auf der Position 23; falls die Position 23 eine linke runde Klammer ist, wird eine Speicher-Anweisung 10337* durchgeführt, um das Element (Glied) der Position 24, d.h. "i" in der Speicherzelle Si8 zu speichern. Es ist wichtig, das Element der Position 24 in der Speicherzelle S18 anzuordnen, um die Einheitlichkeit der Unter-Zifftern-Ordnungs-Kennzeichen 127 im ausgegebenen logischen Datensatz I50 beizubehalten, wie bereits im; Zusammenhang mit Paragraphen-Gliedern diskutiert wurde, sowie aus Gründen, die in Kürze ebenfalls klarer werden.
Nach den Prüf-Anweisungen 10337' und 10437' der Fig. 96 werden Prüf-Anweisungen IÖ537' und IO637' der Fig. 97 durchgeführt, um die Größe der Unter-Ziffern-Ordriungs-Kennzeichen 127 zu bestimmeni die aus einer, zwei oder drei signifikanten· Stellen bestehen. In Übereinstimmung dazu werden Speicher-Anweisungen 10437** 10537* und 10637* ausgeführt, um die zugehörigen Elemente für eine anschließende Beseitigung dieser Glieder während der Ausgabe dies Datensatzes" I50 in das Unter-Ziffern-Ordnungs-Kennzeichenfeld; 127 des ausgegebenen logischen Datensatzes in den-Speicherzellen SI9 - S22 zu speichern.
40983 5/0 649
- γβ -
Es· genügt zu sägen, daß eine Folge ähnlich jener von" Fig. (die die Prüf-Anweisungen 12036', IPIjCr, 12236', 12336', 12436' und 12536' enthält, soxtfie die Speicher-Anweisungen 12336' , 12436* und 1253u*, ferner die Lösch-Anweisung IP236) in die Folge loO eingefügt v/erden könnte, zusammen mit Prüfanweisungen 1O?37' und 10337', um eine sequentielle Suche von links nach ■rechts für linke runde Klammern auf den Positionen 23, 24, 25, 2ü und Γ7 zu erlauben, obwohl dies für die Position 27 in Wirklichkeit nicht erforderlich ist. V/enri eine Folge analog zur Folge IuO von Fig. 93 verwendet wird, erhält man eine vollständige Flexibilität für die Suche nach Unter-Ziffern-Ordnungs-Kennzeichen.-Gliedern, die eine veränderliche Größe der signifikanten Stollen haben..Weiterhin geht aus einer genauen Betrachtung der Folge IuO und des Prüfblocks I36 der Fig. 96 hervor, daß eine besondere Prüfung für die römische Ziffer "i" gemacht wird, so daß die offenbarten Ausführungsbeispiele sich nur zum Kennzeichnen der Unter-Ziffern "i", "ii", "iii", "iv" eignen, jedoch nicht für "v", "vi", "vii", "viii", und auch nicht für "x", "xi". usw. Als Folge davon könnte die PrUf-Anweisung für "i", die aus den Prüf-Anweisungen 12336', 12436', 12536' und IO237' besteht, erweitert werden, wenn Unter-Ziffern-Kennzeichen vier Unter-Ziffern übersteigen, um eine Folge zum Prüfen von "v" und von "x" usw. zu ergeben. Eine derartige geforderte Folge ist in Fig. 98 dargestellt, mit der römische Ziffern "i" - "x" gehandhabt werden können.
Aus den Fig. 76 - 8l geht hervor, daß die Paragraphen-Ordnungs-Kennzeichen-Glieder der Datei 110 numerisch sind; daß die Unter-Paragraphen-Ordnungs-Kennzeichen-Glieder numerisch sind, jedoch innerhalb von Klammern; daß die Ziffern-Ordnungs-Kennzeichen-Glieder alphabetisch sind; und daß die Unter-Ziffern-Ordnungs-Kennzeichen-Glieder römische Ziffern sind, die bestimmte Elemente (einen Untersatz) des Alphabets benötigen. Andererseits zeigen Fig. 82 und 83, die ebenfalls einen Auszug aus dem Gesetz über die Konfessionsschulen der Fig. 76 - 86 darstellen, daß die Paragraphen-Ordnungs-Kennzeichen-Glieder
409835/0649 «AD OKiäiNAk
Buchstaben enthalten können, z.B. "49a". Daraus ist 'ersichtlich, daß die Glieder des Paragraphen-Ordnungs-Kennzeichens nicht auf Ziffern beschränkt sind, sondern Buchstaben enthalten können. Diese Ausführungsbeispiele bestimmen eine derartige Mischung aus numerischen· und alphabetischen Gliedern der Paragraphen-Ordnungs-Kerinzeichen angesichts der Tatsache, daß die numerische Prüfung nur auf der ersten Ziffer des Paragraphen-Kennzeichens durchgeführt wird, vgl. Fig. 87, Prüf-Anweisung 10^32l; fernerwird festgestellt, daß Fig. 8l die Anordnung der Glieder des Unter-Ziffern-Ordnungß-?ienn2;eichens"i" in der Zeile L8ÖO angibt, sowie die vorher bestimmten Glieder aus jeder der Ordnungen Paragraph, Unter-Paragraph und Ziffer, nämlich "49a"j "2" und 1V, wie bereits erläutert wurde.
OPERATIONAUFVOLLSTANDIGEHIERARGHISCHEKEIn[NZEICHEN
Die Diskussion der Ausführungsbeispiele der Erfindung wird nun fortgesetzt. Zusammengefaßt sind aus Teil I vorhanden: Die auf den Operanden auszuübenden Aktionen, wie genauer in der Aktions-Tabelle ausgeführt 1st, die Häuptteile der aus den Deskriptoren analysierten und im Deskriptor-Register DR angeordneten Kennzeichen, einschließlich der Kapitelnummern, die alle- durch Operationen auf die vier Sätze der Feldsuch-Steuerungs-Tabelle 8.0 erhalten werden. Durch das eben beschriebene Kennzeichen-Programm sind bestimmte Register Sl - Sj5o vorhanden, in denen hierarchische Kennzeichen angeordnet sind, die nur durch den Operanden bestimmt sind, und deshalb fehlen die höheren Ordnungen dieser Kennzeichen, oder sie sind unvollständig, weil der Operand der Ä'nderungsdatei 22" selbst nicht die höheren Ordnungen des Kennzeichens enthält, da diese nur in einer Weisung 203 enthalten sind und während der Weisungsanalyse 30 de^ Fig. 15» 16 und 1 erhalten werden.
40 9 83 5/0649
Aus der Betrachtung dieser Fig. 15 - 17 ist ersichtlich, daß aus der Weisung 203 und insbesondere aus den Deskriptoren 224, 225, 226, 227 usxi. unter Verwendung der Tabelle 2 im Deskriptor-Register die höhere Ordnung der Glieder der hierarchischen Kennzeichen bezüglich einer besonderen.Weisung erhalten wird, die Glieder von niedrigerer' Ordnung der hierarchischen Kennzeichen in den Registern Sl - Sj56, ferner das Op er and en-Kennzeichen OI aus der Operandenanalyse nach Tabelle 1.0, und zwar durch die Anwendung der in "Kennzeichen allgemein" offenbarten AusfUhrungsbeispiele. Nun müssen die Glieder höherer und niedrigerer Ordnung der Kennzeichen miteinander verbunden werden, die aus dem Deskriptor-Register und dem Operanden-Kennzeichen-Register erhalten wurden, um eine vollständige Kennzeichnung (durch einen Satz aus Gliedern der Kennzeichen) jedes logischen Datensatzes des Operanden zu erhalten, und-um den vervollständigten hierarchischen Satz aus Kennzeichen-Gliedern im Kennzeichen-Speicher anzuordnen-oder auszugeben. Nach Fig. 11 sind mehrere Zähler vorhanden; der erste Zähler heißt Positions-Register PR, durch den auf aufeinanderfolgende Ordnungen der Kennzeichen übergeleitet wird, abhängig vom Wert von PR, der aus den Deskriptoren erhalten.wird und somit im Deskriptor-Register DR angeordnet ist. Wenn somit der PR-Wert 2 ist, ist die zu betrachtende Ordnung des Kennzeichens im PR-Register die zweite Ordnung, ein Paragraph, wie in der Tabelle 0.0 ausgeführt ist; wenn PR dagegen einen Wert 4 hat, wird die vierte Ordnung betrachtet, nämlich eine Unter-Ziffer. Weiterhin ist ein zv/eiter Zähler vorhanden, der "L"-Zähler heißt, und der ein Zeiger für jedes Glied irgendeiner hierarchischen Ordnung in DR ist, urn aus der Lage des Feldes in dieser diskutierten Ordnung die spezifische Ziffer zu bestimmen, vgl. Fig. 11. Dadurch kann abhängig von den Werten der beiden Zähler PR und L das genaue Glied irgendeiner Ordnung des Kennzeichens in das Deskriptor-Register DR geschaltet werden. Ferner ist ein zweites Register vorhanden, welches
409835/0649
Operanden-Kennzeiehen-Register OIR heißt und 36 Feldpositionen besitzt (Speicherzellen Sl - S36), wobei auf jede Feldposition oder Speicherzelle durch den Wert eines Zählers N geschaltet wird. Schließlich, ist ein spezielles Kennzeichen-Register IR vorhanden, In das die zugehörigen Kennzeichen aus GIR und DR gebracht werden; somit wird" IR■mit den genauen Gliedern jeder Ordnung eines hierarchischen Kennzeichens für irgendeinen gegebenen logischen Datensatz' des Operanden zum Ausgeben in den Restspalten-Snderangsbereich versehen. Auf diese Weise wird der logische Datensatz des Operanden gekennzeichnet; der gekennzeichnete Operand wird dann als ein ausgegebener logischer Datensatz der Fig. 11 aus dem Restspalten-Änderungsbereich auf das Mutter-Snderungsdatei-Band 3? ausgedruckt. Der ausgegebene logische Datensatz 250 nach FIg. 7 und FIg* 5 wirkt während des besonderen MIschens 33 als einer der eingegebenen logischen Datensätze. '
Das IR-Register hat 36 Positionen, oder anders ausgedrückt, 36 Glieder aus verschiedenen Ordnungen. Es wird durch zwei Zähler geschaltet, nämlich durch einen festen Zähler MFIX mit denselben Werten wie der PR-Zähler und durch einen variablen Zähler M innerhalb des festen Zählers MFIX, um die speziellen Glieder in irgendeiner Ordnung der Kennzeichen innerhalb des IR-Reglsters zu bezeichnen. Der Wertebereich von MFIX folgt für jede Ordnung der Kennzeichen dem Wertebereich von PR. . ""'*"" '"".·.
Die folgende Gleichung beschreibt die Operation für die Kennzeichenbiidung in IR, wobei "D" das aus dem Deskriptor erhaltene und somit im Deskriptor-Register DR angeordnete Kennzeichen Ist, während "On die aus dem Operanden allein erhaltenen und deshalb In OIR angeordneten Kennzeichen bezeichnet.
40 983 5/06 49
Somit gilt
IR = Dv [(DAO)V(DAO)] .
Nach Fig. 11 und 12 und nach den Anweisungen 7130 bis 7l4l des Programmablaufplans der Fig. 42 wird der ganze notwendige Vergleich zwischen den beiden Sätzen aus hierarchischen Ordnungen durchgeführt, die im Deskriptor-Register DR und im Operanden-Kennzeichen-Register 0IR angeordnet sind. Diese Satz-Operation ist notwendig, um sicherzustellen, daß jede Änderung der Vater-Stammdatei bei der Bildung der Sohn-Stammdatei, z.B. beim besonderen Mischen 33, hinsichtlich des "wahren" Teils der Vater-Stammdatei bearbeitet wird, der tatsächlich zum Bearbeiten benötigt wird, und nicht hinsichtlich irgendeines anderen Teiles. Aus der Erfahrung läßt sich sagen, daß dann, wenn die Glieder der verschiedenen Ordnungen der Kennzeichen hur aus einem der beiden Sätze genommen werden, d.h. aus DR oder 0IR, durch eine Bearbeitung der falschen Daten beim Mischen 33 ein wesentlicher Fehler auftreten kann, so daß eine fehlerhafte Sohn-Stammdatei gebildet wird. Wenn z.B. die Weisung einen Buohstabierfehler hinsichtlich der Schreibweise eines Deskriptors, z.B. "Paragraph" oder "Unter-Paragraph", enthält, wird der .zugehörige Wert dieses hierarchischen Kennzeichens für diesen Deskriptor, d.h. das Glied eines Satzes der Kennzeichen, nicht im Deskriptor-Register DR aufbewahrt. Deshalb ist es nötig, jedes Glied innerhalb jeder Ordnung der Kennzeichen entsprechend zwischen den Registern DR und 0IR zu vergleichen, um die Richtigkeit des Wertes jedes gefundenen .Gliedes sicherzustellen, und um eine korrekte Mitgliedschaft in IR zu erhalten, so daß genügend Information zur Verfügung steht, wo das richtige und das wahre Glied jeder Ordnung der hierarchischen Kennzeichen für einen gegebenen logischen Datensatz zu finden ist. Nachfolgend wird die Operation beschrieben, durch die IR mit irgendeinem fehlenden Glied vervollständigt wird, wenn IR mit DR oder OIR verglichen wird.
409835/0649
--81 -, . ; ■-■" ■.;■ ■;
Bei der Anweisung 7130 der Pig. 42 wird ein Positions-Register PR oder ein Zeiger gebildet. Dieses Register PR schaltet das Deskriptor-Register DR neunmal, Je einmal für jede der entsprechenden Ordnungen_der Kennzeichen des bevorzugten Ausführüngsbeispiels der, Erfindung; dies wurde bereits früher in den Programmablaufplanen der Fig, 31 und 32 wie im Sub-B-Re gist er erörterte Bei Anweisung 7131 werden die vier anderen, bereits beschriebenen Zähler.eingerichtet^ nämlich L, N, MFIX und M, und durch Einbringen einer Eins in jeden von ihnen mit einem Anfangswert v;ersehen. Bei Anweisung 7132 wird das Deskriptor-Register DR im Wert L auf Gleichheit mit jener Feldposition des Operanden-Kennzeichen-Registers 0IR geprüft, mit dem Schalter auf N für die gleiche Feldposition (dasselbe Glied derselben Ordnung). Dies geht aus folgenden Gleichungen hervor:
N = 0IRa [PRV (L-I)J ,
OIR(N) = DRA [PRV (L-I)J , · ;
oder allgemeiner
IR(MFIX(M)) = [DRA(PR(L))A OIR(N)Jy[DRA(PIl(L))J wobei gilt :".-■■- _ ^
und (Μ, L£l+ I [l<L<F(PR, MFIX)J , [l<PR, MFIX<9J j
Wenn diese Gleichung bei der Anweisung 7132 nach Fig. 42 nicht erfüllt ist, wird bei Anweisungen 3133 und 3134 geprüft, ob-DR (PR(L)) gleich einem Leerraum ist. Sodann wird bei Anweisung 7135 diese Ziffer des Operanden-Kennzeichen-Registers OIR in die äquivalente Feldposition in IR gebracht, d.h.'. DR (PR(L)) wird nach IR(M(MFIX)) gebracht, und das wahre Glied des hierarchisch geordneten Kennzeichens.wird aus den beiden Teilsätzen aus hierarchisch geordneten Kennzeichen in DR und in OIR erhalten, '" ■
409835/0649
Bei Anweisung 7133 der Pig. 43 wird, falls DR(L) kein Leerraum ist, DR(L) zum Positions-Register PR_gebracht, und dieses Glied In DR, DR(L), mit einem Wert IR (M(MPIX)) nach IR gebrächt. (Die Feldposition in IR wird beschrieben durch die Gleichung MPIX = M-I.) Wenn bei der Anweisung 7133 die Antwort ja ist, d.h. daß Leerzeichen vorhanden sind, wird dieses Leerzeichen im 0IR auf Gleichheit geprüft, und falls vorhanden, wird auf Anweisung 71358 weitergegangen, da dies anzeigt, daß keine Glieder der Ordnung vorhanden sind, d.h. Glied = Leerraum, denn in manchen logischen Datensätzen wird erkannt, daß manche Ordnungen der Kennzeichen nicht existieren. Unter der Annahme, daß bei Anweisung 7133 zwischen den Registern DR und OIR keine Übereinstimmung bezüglich eines Leerzeichens besteht, wird auf Anweisung 7135 übergegangen. Anweisung 7138 erhöht die Zähler L, M und N um Eins und leitet über zu Anweisung 7l4ö, um den Wert des L-Zählers -bezüglich einer nicht dargestellten Tabelle, die die Feldausdehnung des L-Zählers anzeigt, bezüglich jedes Gliedes jeder gegebenen Ordnung aus Kennzeichen (P(N) zu prüfen (durch "Wenn"-Anweisung). Die Ordnungen der Kennzeichen schwanken in der Größe der Glieder, z.B. hat ein Kapitel in diesem Ausführungsbeispiel drei Glieder, während ein Paragraph fünf Glieder aufweist. Wenn daher PR = 1, kann L einen maximalen Wert 3 haben, während dann, wenn PR =.2, L einen maximalen Wert 5 hat. Als Folge davon muß bestimmt werden, ob L auf 1 zurückgesetzt werden muß, falls L für die spezifisehe Ordnung von PR seinen maximalen Wert erreicht hat, und ob dann auch der PR-Wert um 1 erhöht wird, um in die nächste Ordnung zu gelangen. Deshalb wird, falls bei Anweisung 73AO* Gleichheit des L-Registers mit der nicht dargestellten Feld-Positions-Tabelle P(N) für den V/ert von PR vorhanden ist, bei Anweisung 7l4l 1 zu PR addiert und bei 7JA2 die Anweisung "Bringe 1 zum L-Zähler" ausgeführt; in ähnlicher Weise wird durchgeführt: "Bringe 1 nach MPIX", "Addiere 1 zum M-Zähler", wodurch IR eingestellt wird, und "Addiere 1 zum N-Zähler von
409835/0649
OIR"; danach geht es weiter zu Anweisung 7139.» um zu: prüfen, ob das Positions-Register .PR größer als neun 1st(nachdem alle Ordnungen der Kennzeichen beendet sind), da/dies im bevorzugten Ausführungsbeispiel die maximale Anzahl von KennzelGhen-Ordnungeii für die hier verwendeten Daten ist. Wenn bei 7139 PR größer als. neun ist,, ist bekannt, daß der Vergleich der Glieder aller Ordnungen der Kennzeichen beendet ist. Wenn andererseits bei 7139 PR kleiner als neun ist, wird": zur Anweisung 7132 zurückgesprungen, um den Zyklus erneut ^u durchlaufen, bis die 9 erreicht ist. Auf diese Weise wird die mathematische Operation:' IR = Dv [(DaQ)V(OAO)] auf die Kennzeichen aus den beiden Teilsätzen aus hierarchischen Kennzeichen 'beendet. Die resultierende Operation^ bildet einen eindeutigen Satz aus hierarchischen Kennzeichen in IR, der (eindeutig) zum lOgischen Datensatz des Operanden addressiert werden muß, wie nachstehend erläutert wird. -:
WEISUNGS-KENNZEICHtiül'IG FÜR VfiRGANGEraEITSPRÜFUNG
Wie. bereits gesagt, ist es nicht nur wichtig,* aus irgendeiner Weisung die Operatoren-Erkennung ebenso, wie die hierarchischen Deskriptor-Werte-zu. erhalten, was bereits diskutiert wurde, sondern auch einen Bezug; oder eine Referenz für eine Datei-Vergangenheitsprüfung zu schaffen. Eine Vergängenheitsprüfung ist extrem wichtig .bei Hormenänderungen, da in. vielen Fallen die Normengeber, Juristen, und andere Personen wissen wollen, wie der Stand der Rechtssprechung zu einem früheren gegebenen Zeitpunkt war; zu diesemYZweck wird diese Vergangenheitsprüfung angewendet, die wie folgt durchgeführt'wird. Es ist bereits früher frestgesteilt worden, daß der Weisungs-Paragraph und der Un'ter-Paragraph und somit die Weisungs-Päragraphen- und Unter-Paragraphen-Kennzeichen am Anfang innerhalb der FeId-
409 835/06
Positionen 1-5 erscheinen. Es ist daher ersichtlich, dai3 es mehrere Fälle der Weisungs-Kennzeichnung gibt, die erkannt und bestimmt werden müssen.
Pall I
Grenz-Paragraph = |x:X£l+|o<X<999J [" "0,9" ii<j
In Anweisungen 7001 - 7054 der Fig. 44 - 48 werden verschiedene Fallstudien durchgeführt, um die Weisungs-Kennzeichnung zu finden und um diese Kennzeichnung in einen Weisungs-Speicher für die Vergangenheitsprüfung zu geben. Bei der Anweisung 7001 der Fig. 44 wird veranlaßt, daß der Wert des numerischen Speieher-Registers NRS in das Zwisehenspeicherregister TRS gebracht wird, und mit der Anweisung 7002 wird veranlaßt,- daß die Paragraphen-Nummer, die in der Feldposition 1 des logischen Datensatzes ist, "colom-1",in ein Register gebracht wird, das in unserer Programmsprache "numerischer Speicher der Gesetzesvorlage" NSFB heißt. Sodann wird mit der Anweisung 7005 1 zu TRS addiert und anschließend bei der Anweisung 7004, falls NSFB gleich NRS ist, veranlaßt, daß der Wert des gespeicherten Paragraphen nach TRS gebracht wird (7005). Bei der Anweisung 7030 der Fig. 46 wirkt dieselbe Kombination aus analogen Anweisungen auf Registerpositionen 2 und 3 ein, um eine zweistellige Paragraphen-Nummer aufzunehmen. Bei der Anweisung 7060 der Fig. 44 wird die Nummer in der Feldposition 2, FRA-I nach NSFB gebracht, und in 7017 die Nummer von NRS zum Register TRS, während bei der Anweisung 7080 1 zum numerischen Speicher-Register NRS addiert wird, das als Folgen-Prüfzähler dient; sodann erfolgt ein Rücksprung nach 7004, um den Ablauf fortzusetzen, Auf diese Weise wird bexvirkt, daß im Weisungs-Speicher TRS eine einzelne oder doppelte Ziffer angeordnet wird, die eindeutige Glieder darstellt, somit Nummern des Paragraphen-Kennzeichens zum Zwecke der Vergangenheitsprüfung.
409835/0649
FaIl 2
Grenz-Unter-Paragraph = [Y:X,Y£I+|o<)GC9,O<Y£9J . ["9(9)"] ·
Der zweite Fall bezieht sich auf einen, Unter-Paragraphen, der zum Paragraphen einer Weisung gehört, und der durch Anweisungen 7020 - 7O4l der Figuren 45 - 47 verarbeitet wird. Für die Unter-Paragraphen-Werte der Weisung wird ein neuer Speicher eingerichtet, das Unter-numerische Speicherregister SNRS. In diesem Fall wird veranlaßt, daß. bei der Anweisung 7020 der Fig.-45 die Paragraphen-Nummer (Glied) in ein Zwischen-SpeicherregisterTRS gebracht wird, und daß bei 7021 die Unter-Paragraphen-Nümmer im Register SNRS in ein Unter-Zwlschen-Speicherregister STRS gebracht wird. Durch die Anweisung 7022 wird die Paragraphen-Nummer zum Register NSFB gebracht, und durch die Anweisung 7023 das Glied in der Registerposition 4 in ein Unter-numerisches Speicherregister'der Gesetzesvorlage SNSFB · (das analog ist zum bereits genannten Register NSFB). Bei den Anweisungen 7024 und 7OP5 werden die Register NRS und SNRS um 1 erhöht und in den Anweisungen 7026 und 7027 der Fig. 46 mit dem Register NSFB hinsichtlich Ungleichheit geprüft] bei Gleichheit wird durch die Anweisung 7028 dieses Glied im Register TRS nach NRS gebracht und anschließend in der Anweisung 7029 STRS nach SNRS. Wenn bei den Anweisungen 7026 und 7027 NSFB bzw. SNSFB nicht gleich NRS bzw. SNRS ist, geht der Ablauf zur Anweisung7030 der Fig. 46 über, d.h. zum Fall 3.
Fall 3 · . · ■
Grenz-Unter-Paragraph = {Z:X,Y£l+1 0<X$-99,0cY$9J ["99O)11J
Durch die Anweisung 7030 wird das Glied des numerischen Speicherregisters JiRS zum Zwischen-Speicherregister TRS gebracht, und in 7031 das entsprechende Unter-numerische Speicher-
'409835/0649
register SNRS zum Unter-Zwischen-Speleherregister STRS. Durch die· Anweisung 7032 wird veranlaßt, daß. der "volle Datensatz-. Bereich 1" FRA-I, der den Wert der beiden Register enthält, die die Weisungs-Paragraphen-Nummer zusammensetzen, da wenigstens zwei Ziffern vorhanden sind, zum Register NSPB gebracht wird; sodann wird durch die Anweisung 7033 die Nummer · der fünften Feldposition im logischen Datensatz zum Unternumerischen Speicherregister für Gesetzesvorlagen SNSFB gebracht, das ebenfalls zwei Zeichen aufnimmt. Eine Anweisung 7034 der Fig. 47 bzw. bei 7035 wird das Register NRS bzw. SNRS um 1 erhöht. Bei der Anweisung 7036 wird das Register NSFB mit dem Register NRS auf Gleichheit geprüft, und falls diese ungleich sind, wird nach 7037 übergegangen und das Register STRS zum Register NRS gebracht, und anschließend bei der Anweisung 7038 das Register STRS nach StIRS. Wenn andererseits bei-7036 das Register NSFB gleich dem Register NRS ist, wird mit der Anweisung 7039 fortgefahren, um zu prüfen, ob das Register SNSFB ungleich ist zu SNRS. Falls diese ungleich sind, wird der Programmablauf bei der Anweisung 7050 der Fig. 48 fortgesetzt. Im Fall der Gleichheit wird zur Anweisung 7O4O übergegangen und TRS nach NRS gebracht, und bei der Anweisung 7O4l STRS zum Register SNRS. Die zugehörigen Werte des Weisungs-Paragraphen bzw. des-Unter-Paragraphen befinden sich nun im numerischen Speicherregister ITOS (Paragraph) bzw. im Unternumerischen Speicherregister SMRS (Unter-Paragraph),
Fall 4
Grenz-Unter-Paragraph = ["(9) oder lft(9)n]
In diesem Fall wird der Wert des Registers NRS, der bei der vorhergehenden Erkennung in den Fällen 2 oder 3 erhalten wurde, beibehalten, und bei der Anweisung 7050 der Fig. 48 der Wert
409835/0649
i ; 236DQ23
der Feldposition 5 nach Register SWSEB gebrächt. Bei der Anweisung 7051 wird zum Register SNRS 1 addiert, und bei der Anweisung 7052 der Wert dieses Registers zum Register STRS gebracht. Bei der Anweisung 7053 wird geprüft, ob SNSFB ungleich 1st zum Register SNRS, falls, dies zutrifft, erfolgt der' Rücksprung zur Anweisung 7050; anderenfallswird durch die Anweisung 7051I- Register STRS zum Register SNRS übertragen. Dieser Speicher enthält nun das Glied oder den Viert des Unter-Paragraphen-KennzeichenSi so daß nun die V/eisung mit der Anweisung ^Ο6θ nach Fig. 37 weiter analysiert werden kann.
Mit diesem ausgearbeiteten Verfahren wird sichergestellt, daß die Paragraphen- und Unter-Paragraphen-Nummern der Weisungen (Weisungs-Kennzeichen-Glieder) zuerst definiert und gekennzeichnet und anschließend derart aufgezeichnet werden, daß sie sequentiell sind, wodurch sichergestelltwird, daß während der Weisungs-Analyse (und somit auch der Operanden-Analyse) keine Weisung oder Unter-Weisung ausgelassen wurde: oder irrtümlicherweise wiederholt wird. Nachdem die Analyse der Werte des Paragraphen.bzw.. des Unter-Paragraphen der Weisung (die ' Paragraphen- bzw. Uhter-Paragraphen-Weisungs-Kenn.zeichen) beendet ist, werden diese in den Anweisungsspeicher NRS bzw. SNRS für die Verwendung in der ^ergangenheitsprufung aufbewahrt, wie später bei "Vergangenheitsprufung'V erläutert wird.
MUTTER-DATENSA-TZ-ERZEUGuIJG TOJD -AUSGABE (IN FESTEM FORMAT)
Es ist als nächstes zweckmäßig, die Übertragung der Glieder des hierarchischen Satzes aus Kennzeichen im Register IR zum Adressieren jenes logischen Datensatzes des Operanden zu diskutieren, wie der Operand auf die Mutter-finderungsdatei 32 ausgedruckt wird. Jeder logische Datensatz des Operanden wird auf seine eindeutigen Glieder des hierarchischen Satzes aus Kennzeichen adressiert und der Kennzeiehen-Gliedersatz in einem festen Feldformat zusammen mit dem logischen Datensatz
409835/0649 -
- 86 -
l4O des Operanden ausgedruckt, wie in den Pig. 11 und Ik, YJ und 19 dargestellt ist. Die Mutter-Änderungsdatei. 32 wird aus den Anweisungen 7150 der Fig. 49 bis 7168 der Pig. 50 erzeugt, Dazu wird zuerst bei 7150 ein neuer Zeiger zum Drucken erzeugt, nämlich die I-Position (IPOS), die die entsprechenden Kenn- . zeichen-Glieder in das Kennzeiohenfeld für den Ausgang im Kennzeichenfeld 122' aus dem Restspalten-Änderungsbereich für .jeden logischen Mutter-Datensatz schaltet; und bei der Anweisung 715O wird 1 nach IPOS gebracht. Bei 7151 wird ein weiterer neuer Steuerzähler vorbereitet, nämlich der I-Zeiger (IPOINT) und 1 nach IPOINT übertragen. IPOINT entspricht dem M-Zähler von-IR, der jedoch im Kennzeichenfeld 122' des Restspalten-Änderungsbereichs operiert; wie ersichtlich, stellt IPOINT sicher, daß der Kennzeichensatz in IR für irgendeinen gegebenen Operanden ungeändert bleibt, während die im Kennzeichenfeld 122' des Restspalten-Änderungsbereichs (der dann in die Mutter-Änderungsdatei 32 als ein logischer Datensatz ausgegeben wird) angeordneten Kennzeichen bezüglich des Schaltens durch eine Zeilenfolge in der neunten Ordnung (die Zeilen-Kennzeichen-Ordnung) ungeändert bleiben, wenn die logischen Datensätze, einer nach dem anderen, aus dem Restspalten-Änderungsbereich auf die Mutter-Änderungsdatei 32 ausgegeben werden. Bei diesem Verfahren wird die Ausgabe über IR in den Restspalten-Änderungsbereich durch die Register IPOS und IPOINT gesteuert und geschaltet, wodurch jeder logische Datensatz eindeutig mit seinem zugehörigen eindeutigen Satz aus Gliedern gekennzeichnet wird, Da IPOS sequentiell die verschiedenen Ordnungen von 1-9 abarbeitet, schaltet er die Zeilenfolge durch Erhöhen der Zeilenordnungs-Glieder um 1 jedesmal dann, wenn IPOS vom Wert 9 auf den Wert 1 zurückkehrt (vgl, Fig. 11). Angesichts der Tatsache, daß die Ausgabe der Mutter-Änderungsdatei 32 für jeden logischen Datensatz in einem festen Format erfolgt, d.h. mit einer definierten Anzahl von Zeichenelementen für den Datensatz, ist es wichtig, daß extreme Vorsicht
409835/0649'
2360Di3
geboten ist, um sicherzusteilen, daß die in dem logi.-iohen Datensatz angeordneten und in die Mutter-SnderungsVVitei ausgegebenen Kennzeichen tatsächlich voll entweder durc.1! Leerräume oder durch Glieder der entsprechenden Ordnungen, je nachdem, belegt sind und daß diese Glieder von IR in das -ennzeichenfeld 122' im Restspalten-Änderungsbereich mit ^'der der zügehörigen Gliederpositionen für jede Ordnung übe; tragen werden*
Somit kann gesagt werden;
LRIyIR=RCRVIRA(IPOSIPOINT)V(SPAGES)V(VLRCR)
mit: LRMR -- logischer Datensatz Mutter-Ärcerungsdatei,-."■■ {rCK, ULRCRtI+I KRCR, ULRCR^7 5} ,
UI.RCR = Unterstreichen Drucken Sfvüten-Anderungsbereich, oPACES = Leerräume/
und flPOSil |l<IP0S<9] und p
p+|
(SPACEfI+ I KSPACE<P( ?Ä0- (RCRvULRCRvIR)}.
Bei Anweisung 7152 der Fig. 49 wird eine Eins nach MFIX gebracht. Bei der Anweisung J155 wird das Kennzeichen-Glied von IR, das die Position M(MFIX) hat, mit dem kombinierten Wert aus IPOS plus IPOINT, nämlich IPOS (IPOINT) zum Register RCR ■' . übertragen. Bei 7153 wird nicht nur sichergestellt, daß die Länge des logischen Datensatzes des Restspalten-Änderungsbereiches und somit der Mutter-Änderungsdatei "Fest" ist, sondern auch, daß die entsprechenden Feldpositionen jeder Ordnung der Kennzeichen ebenfalls fest und an den Restspalten-Änderungsbereich angepaßt sind, sogar dann, wenn bestimmte Ordnungen der Kennzeichen oder bestimmte Glieder Irgendeiner Ordnung nicht vorhanden sind, d.h. wenn in einigen Ordnungen Leerräume vorhanden sind, werden die Leerräume beibehaltenj anders ausgedrückt! Die"Leerstellen irgendeines Gliedes in irgendeiner
40983 5/0649
Ordnung mit nichtvorhandenen Kennzeichen-Gliedern sollen nicht unterdrückt werden, da sonst ein Glied in der festen Länge des Datensatzes in der-falschen Position angeordnet und dadurch die Vorstellung erwecken würde, daß der logische Datensatz einen hierarchischen V/ert hat, der vom tatsächlichen verschieden ist. Die Leerzeichen-Unterdrückung könnte jedoch auch ohne Abweichen von den erfindungsgemäßen Ausführungsbeispielen durchgeführt werden, vorausgesetzt, daß jede. Ordnung durch einen Code oder durch ein anderes erkennbares Referenzzeichen getrennt ist. Bei Einrichten eines festen Feld-Arfcfeitsbereiches für die Kennzeichen mit 36 Speicherzellen, um Kernspeicherplatz zu reservieren und die Ausdehnung des Kennzeichenfeldes so klein wie möglich zu halten, während gleichzeitig eine Felxibilität vorhanden und Prograrnmänderungen zulässig sind.» um größere oder kleinere Kennzeichen-Ordnungen bezüglich irgendeiner Datenbasis zuzulassen, werden in Bezug auf IR zwei Zähler verwendet, nämlich MPIX zum Zählen der Ordnungen und M zum Schalten der ulieder jeder Ordnung, und in gleicher Beziehung zu IPOS und IPOINT zum Umschalten der Anordnung der Glieder der Ordnungen in das Kennzeichenfeld 122' im Restspalt en- Ä'nderungsber ei eh. Durch Ändern nur des Wertes der Bereiche von IPOS und IPOINT, M und MPIX, kann die Zahl der Ordnungen für jede spezielle Datenbasis-Anwendung erhöht oder verringert werden, und ebenso die Gliedergröße jeder der gegebenen Ordnungen der Kennzeichen. Durch die Modifizierung dieser vier Zähler wird jedoch die gesamte Ausdehnung des Kennzeichenfeldes 122! j das im Ausführungsbeispiel 36 Peldpositionen hat, nicht geändert. V/enn die ganze Feldausdehnung des Kennzeichenfeldes 122' erhöht oder verringert werden soll, müssen zusätzliche Anordnungen zum Erweitern des ausgegebenen logischen Datensatzes und des Restspalten-Änderungsbereichs getroffen werden, und außerdem die Größe der Register DR, I0R und IR im Arbeitsbereich 31 vergrößert v/erden, was durch entsprechende Änderung in der Steuerkarte und der Kern-Anordnungs-
409835/0649
. ■-■;- .: -91-- :' -■'.■■ —\· : ■_■_;'■■ ■ karten im Programm durchführbar ist.
Zur weiteren Erörterung der Verwendung der Zähler IPOiNT und IPOSj MPIX und M und der Übertragung der Kennzeichen-Glieder aus dem Kennzeichen-Register TR zum Kennzeichenfeld 122' im Restspalten-Änderungsbereich wird auf die- Anweisungen 7154 und 7155 der Fig. 4-9 übergegangen,wo IPOINT, und MPIX um 1 erhöht werden, und dann auf TI56, wo geprüft wird, pb IPQINT gleich MFIX ist. Wenn IPOINTungleich MFIX ist, erfolgt ein Rücksprung zur Anweisung 7153; andernfalls,; wenn 7156 Gleichheit ergibt, wird bei 7157 der Fig. 50 IPOS um 1 erhöht, um dieses Register (das der Ordnung entspricht) in die nächst höhere Ordnung der Kennzeichen zu bringen,, während bei 7I581 nach IPOINT gebracht wird, um das erste Glied dieser neuen Ordnung . zu schalten. Bei 7159 wird geprüft, ob IPOS gleich $ ist, da der Maximalbereich für IPOS in diesem Ausführungsbeispiel gleich 9 ist (1< IPOS <9)> wobei IPOS al+isti wenn dieses Maximum nicht erreicht ist, wird über Anweisung7153 ein neuer Zyklus gestartet. Wenn die Bedingung der Anweisung 7159 erfüllt wird, d.h„,wenn IPOS = 9 ist, ist die Übertragung der hierarchischen Kennzeichen beendet, und alle Kennzeichen- · Glieder der Ordnungen 1 - 9 befinden sich im Kennzeichenfeld 122' des Restspalten-Snderungsbereichs, um mit dem logischen Datensatz in diesem ßestspalten-Knderungsbereich eine Verbindung herzustellen, so "daß eine Ausgabe in die Mu tter-Ä'nderungsdatei 32 erfolgen kann. / " ".--,-""; "...■"-.-...
Anschließend erfolgt der Übergang zu Anweisung 7I60, um die Verkettung dieses Programms für zukünftige Läufe zu erstellen, wobei das Programm mit mehreren Daten, mehrere Male laufen kann, ohne daß ein Neu-Übersetzen des Programms notwendig ist (im Gegensatz zum Stapelbetrieb). Die/Steuerkarten-Information, die Kapitelnamen-Steuerung, d.h. ob die zu verarbeitenden Daten sich auf öffentliche Rechtsnormen, Vorschriften oder technische Daten usw. beziehen, wird übertragen und an-
409 83 5/0649
schließend wird die Anweisung 716I der Fig. 50 durchgeführt, die die Kapitelnummer aus der Einlese-Tabelle 8,1 der FeIdsuch-Steuerung überträgt und diese in der ersten Ordnung des Deskriptor-Registers bei PR = 1 speichert. Diese Lauf-Anweisung wird dreimal ausgeführt, wobei der Wert des L-Registers jedesmal um 1 erhöht wird, um in die erste Ordnung von DR eine neue Ziffer-(Glied-)Nummer aus dem Kapitel einzuschieben, so daß sie dann in IR zwecks anschließender Ausgabe in die Mutter-Änderungsdatei 32 erscheinen kann, wodurch festgestellt wird, daß das Kapitel aus drei Ziffern besteht. Bei Anweisung 7162 werden die Daten aus der Steuerkarte der Tabelle 7.O zum Daten-Ausdruck gebracht, um den Zeitrahmen für die Ä'nderungsr datei zu ergeben; anschließend wird bei 7163 der Restspalten-Änderungsbereich eer Gesetzesvorlage (die Eingabe der Änderungsdatei 22) in den Restspalten-Änderungsbereich gebracht und bei 7164 die gesamte Information des Restspalten-Änderungsbereichs geschrieben, der nun die Daten des Datenfeldes 120 sowie das Kennzeichenfeld 122' enthält, das aus dem Kennzeichen-Register IR empfangen wurde, zusammen mit den Daten, die von der Steuerkarte durchgeleitet wurden.
Bei Anweisung 7165 wird das "Unterstreichen" aus dem Unterstreichen-Restspalten-Änderungsbereich ULRCR gebracht und anschließend der gesamte Restspalten-Änderungsbereich, der eingegebene logische Datensatz l4O, das Kennzeichenfeld 122' und ULRCR in den gesamten logischen Datensatz mit 240 Zeichen ausgedruckt, und bei Anweisung 7166 wird dieselbe Information auf das Spool-Band j59 ausgedruckt. (Festzuhalten ist, daß der vollständige feste logische Datensatz am Ausgang enthält: Den eingegebenen logischen Datensatz l40 aus 75 Zeichen, das Kennzeichenfeld aus 36 Zeichen, die Leerraum-Position aus F (240 (RCRvULRCRvIR)) Zeichen sowie eine Unterstreichung aus weiteren 75 Zeichen, - 240), vgl. Tabelle 6.0. Bei Anweisung 7167 wird 0OK geschrieben, der Dateiname für den logischen Datensatz aus dem Mutter-Änderungsdatei-Band 32. Bei 7168 werden Leerräume zum Gesetzesvorlagen-Arbeitsbereich übertragen, nämlich zum Restspalten-Änderungsbereich und zum Restspalten-Bereich der Gesetzesvorlage WA, anschließend wird auf die
409835/0649
:- ^ 23E0Ö23
Anweisung 906 in Pig.· 20 zurückgesprungen, um den nächsten physikalischen Datensatz l46 aufzunehmen.
ENDE DES BEARBEITUNGSLAUPS
Dies wird in Pig. 51-.mit Hilfe von Anweisungen 717O - 7173 durchgeführt, wobei mit diesen Anweisungen auch die statistische Information auf Spool 39 gedruckt wird, wie früher mit Bezug auf Fehler usw. erläutert wurde, und wobei alle Dateien geschlossen werden. Die erste Anweisung 7170 überträgt die Datenstatistiken zum Ausdruck-Bereich für das Drucken auf das Spool-Band 39, und bei 7172 wird tatsächlich gedruckt. Bei \ 7172 wird durchgeführt: SCHLIESSEN KARTEN, INBIL (22), INMAS, PRINT und OUTER (32); anschließend wird bei 7173 der Lauf beendet - "Ende des Bearbeitungslaufs", ί :.
BESONDERES MISCHEN 33 - Erzeugung; der Sohn-Stammdatei 35 aus der Vater-Stammdatei 26 unter Verwendung der Mutter-Änderungsdatei 32 und eines modifizierten Mischens
Einführung - -
Mit Bezug auf Fig. 1 und 2 wurde bisher die Portschreibungs-Analyse 30 beschrieben, im Zusammenhang mit der Erzeugung der Mutter-Änderungsdatei 32 und des Spools39 zum Drucken des Ausdrucks 40. Unter Verwendung der beschriebenen Verarbeitungsfolgen wird eine Stammdatei 21, die wie in Fig. l4 Rechtsnormen enthalten kann, bei 24 gekehnz'eichnetjν um eine , Vater-Stammdatei zu erzeugen^ die mit 26 gekennzeichnet ist, · wobei jeder logische Datensatz der Vater-Stammdatei eindeutig durch einen hierarchisch geordneten Satz aus Kennzeichen ge- . kennzeichnet'ist. Die Vater-Stammdatei 26 kann durch die
409 8 35/06
Mutter-Änderungsdatei JU fortgesehrieben werden, die durch das besondere Mischen 33 unter Benutzung des Arbeitsbereichs 34 die in Fig. 17 dargestellte Form annimmt. Zuerst versetzen wir uns in die Lage, in der die Mutter-A'nderungsdatei 32 die genaue-Knderungsdatei ist, die bearbeitet werden soll, d,h. es muß sicher sein, daß der durch die Steuerkarte angegebene Zeitrahmen (Jahr, Monat oder Tag) dem exakten Fortschreibungs-Zeitrahmen entspricht, für den die Sohn-Stammdatei 35 erzeugt werden soll.
In diesem Stadium wird bevorzugt, zwei wählbare Steuerungen aus der Steuerkarte der Tabelle 7 zu verwenden,"und zunächst eine, die die Snderungsdatei 3?' durch, ihren Zeitrahmen kennzeichnet. (Es wird daran erinnert, daß die aktuelle Änderungsdatei, die gerade durchgeführt wird, unterteilt v/erden kann in Zeitrahmenperioden, z.B. in Monate, Wochen oder Tage, was durch eine Steuerkarten-Instruktion gewählt werden kann). Als Folge davon kann ein variabler Zeitrahmen wahlweise als derjenige Zeitrahmen gewählt werden, der ständig überwacht werden muß; dies wird erreicht, indem die Zeitrahmen-Wahl in Feldpositionen 2.3 und 29 der Steuerkarte nach Tabelle 7 und in Feldpositionen 30 - 37 der Steuerkarte gleich dem exakten, gewünschten Zeitrahmen gemacht wird (Fortsehreibungs-Zeitrahmen). Dies erlaubt ein leichteres Fortschreiben einer Datei, insbesondere dort, v/o die gewünschte fortgesehriebene Datei eine "Ausgabe" der Vater-Datei sein soll, anders ist als die Sohn-Datei der ersten Generation, d.h. eine Enkel- oder Urenkel-Datei .
Neben der Einrichtung einer Art. zum leichten Definieren des Zeitrahmens und damit zum Erzeugen von ausgewählten "Ausgaben" der Vater-Datei, gibt es im allgemeinen noch weitere besondere Probleme, die beim besonderen Mischen 33 gelöst werden müssen; . dazu gehören:
409835/0649
(a) die aktuelle physikalische Länge der Änderungsdatei, bezogen auf die aktuelle physikalische Länge derVater-Stammdatei, und insbesondei'e, ob diese physikalischen Längen gleich (R = M) oder verschieden sind, und falls sie verschieden sind,.welche die größere ist, die Vater-Stammdatei oder-die Mutter-Änderungsdatei: (R < M, M >R),
vgl. Fig. 18; ""- .
(b) ob die Vater-Stammdatei geändert werden muß, wie durch (i) Entfernen von Daten daraus, so daß die Sohn-Stammdatei weniger Daten hatj oder
(ii)Hinzufügen von Daten, so daß die Sohn-Stammdatei mehr Daten als die Vater-Stammdatei enthält;
(c) ob die "Änderungen" an den Enden der Vater-Stammdatei auftreten, am Anfang oder In der Mitte der Datei, oder ob es
. ' mehrere verschiedene Arten von Änderungen gibt;
(d) ob sich "Änderungen" auf vollständige logische Datensätze oder auf Teile davon beziehen; und falls auf Teile, muß sichergestellt sein, daß derartige Änderungen nicht die Struktur und die Länge des logischen Datensatzes umstürzen, so daß Daten verlorengehen, oder daß darin Daten angeordnet werden, die in Bezug auf eine menschliche Vereinbarung unzutreffend strukturiert sind.
(Vgl. Original-(Vater-)Gesetz, Tabelle 9.1, Abschnitt (1) (27); danach Änderungsgesetz, Tabelle, 9.Z, Paragraph (2); danach Mutter-Änderungsdatei, Tabelle 9,6, Abschnitt 12 (1) (27) und Sohn-Stammdatel daraus, Tabelle 9,5, Abschnitt 12 (1),·(27), worin "Berater" ersetzt wurde durch "Bedienstete". ·
409 83 5/06 49
Unter besonderer Beachtung der Tatsache, daß die Längen der logischen Datensätze der Vater-Stamm-, Sohn-Stamm- und Mutter-Änderungsdatei fest sind, ist es unmöglich, Daten in einen logischen Datensatz der Vater-Stammdatei einzufügen, um diesen eventuell auf der Sohn-Stammdatei aufzuzeichnen, was den Effekt hätte, daß die Anzahl der Zeichen des logischen Datensatzes in der Sohn-Stammdatei dessen feste Länge übersteigt, nämlich 75 oder vorzugsweise 72 Zeichen. Wenn ein V/ort in die Vater-Stammdatei zur Eingabe in die Sohn-Stammdatei eingefügt werden muß, ist deshalb beispielsweise notwendig, bzw. genauer gesagt kann es notwendig sein, die innere Struktur dieses logischen Datensatzes und vielleicht aller folgenden logischen Datensätze zu ändern, falls das einzufügende Wort eine Erhöhung der Anzahl der Zeichen in diesem logischen Datensatz über 72 Zeichen hinaus bewirkt. In diesem Fall "läuft" ein Wort aus diesem logischen Datensatz in den nächstfolgenden Datensatz über, was sich von logischem Datensatz zu logischem Datensatz fortsetzen kann. Dieser Überlauf kann den Zusatzeffekt haben, daß in den hierarchischen Kennzeichen selbst eine Änderung verursacht wird, da die Struktur der Datei geändert wird, um den Überlauf aufzunehmen.
Außerdem gibt es gewisse praktische Verarbeitungsschwierigkeiten, die bei der Steuerung der Operationen auftreten, wenn die Ausführungsbeispiele der vorliegenden Erfindung angewendet werden. Zu diesen Schwierigkeiten gehört die Steuerung der Eingabe der Vater-Stammdatei 26 und der Mutter-Änderungsdatei 32, wenn eine vor der anderen verbraucht ist, und das "Offenhalten" dieser eingegebenen Datei während des Ausgleichs der Verarbeitung, so daß sichergestellt wird, daß die Anordnung nicht eine der eingegebenen verbrauchten Dateien aufruft und "schließt", da andernfalls die Verarbeitung sofort anhält, wenn eine geschlossene Datei angefordert wird, wobei die Verarbeitung anhält, obwohl die Verarbeitung noch nicht beendet ist; diese Art von schlechtem Funktionieren heißt "Aufhängen". Wenn z.B. die Vater-Stammdatei als letzte ausgegeben werden soll, d.h. wenn die Änderungsdatei zur Vater-Stammdatei Material derart hinzufügt, daß die Sohn-Stammdatei zusätzliches Material
£09835/0649
am Endteil der Vater-Stammdatei aufweist, muß in diesem Fall die eingegebene Vater-Stammdateiuneu eröffnet, genauer gesagt offengehalten werden (was anschließend genauer erklärt wird), so daß für jeden der logischen Datensätze die Verarbeitung auf der Mutter-Änderungsdätei 32 fortgesetzt wird, worauf dann die Mutter-Knderungsdatei 32 und die Väter-Stammdatei 26, beide zusammen geschlossen werden. Diese Technik steuert die EIn- und Ausgabe einer Datei wirkungsvoll, während sie Aufhängeschwierigkeiten vermeidet, die die Verarbeitung hemmen könnten, da die Variation von Dateilängen dem Programmierer nicht bekannt und bei jeder gegebenen Änderungsdatei verschieden sind. Vgl. "dazu die Starnmd-atei der Tabelle 9.0 mit der Fortsohreibung (Änderungsgesetz von 1962); wenn die Änderungsdatei zuletzt verbraucht ISt4, Tabelle 9ο.5* ist auch die Stammdatei zuletzt verbraucht. Das Offenhalten der Mutter-Änderungsdatei 32 und der Vater-Stammdatei so lange, bis beide verbraucht sind, vermeldet das Programmieren einer Vorauswahl, welche der Dateien zuerst verbraucht wird: . ■
(i) angenommen, die,Änderungsdatei ist zuerst verbraucht R <M. Deshalb schließt R zuerst;
(ii) angenommen, die Stammdatei ist zuerst verbraucht, M<R
(iii) Deshalb; beide Dateien Offenlassen, bis beide verbraucht sind, vgl. auch Fig. 18,
Durch einen Mischvergleich des logischen Datensatzes, der zwischen der Mutter-Änderungsdatei 32 und der Vater-Stammdatei •26 während des besonderen Mischens 33 verläuft, wird jeder logische Datensatz ständig bezüglich des anderen geprüft, ob die Glieder jeder Ordnung der hierarchischen Kennzeichen übereinstimmen, die den entsprechenden eingegebenen logischen Datensätzen l40 zugeordnet oder beschriftet oder adressiert sind. Somit gibt es für jede gegebene Ordnung drei Möglioh-
409835/0649
ketten; Z.B. können die Kennzeichen-Glieder aus irgendeiner Ordnung aus jedem der logischen Datensätze der Änderungsdatei identisch (gleich) sein zu jenen der Vater-Stammdatei 26, größer als (im Wert) oder kleiner als (im Wert). Für den FaIl,-daß Gleichheit erhalten wird im Wert der Glieder einer Ordnung zwischen den logischen Datensätzen der Mutter-finderungsdatei und der Vater-StammdateiΛ wird zur nächst niedrigeren Ordnung der hierarchischen Kennzeichen für diese beiden eingegebenen logischen Datensätze gegangen, und die Prüfung auf Gleichheit der Werte der Glieder dieser nächst niedrigen Ordnung in gleicher Weise durchgeführt, sodann der Reihe nach zu den folgenden niedrigeren Ordnungen, bis die niedrigste Ordnung der Kennzeichen, die Zeilenordnung, erreicht 1st, vgl. Fig. l8. Wenn deshalb für Irgendeinen logischen Datensatz der Änderungsdatei die zugehörigen hierarchischen Kennzeichen geringer sind (im Wert oder in der Ordnung) als jene, die dem logischen Datensatz der Vater-Stammdatei 26. zugeordnet sind, mit dem ein Vergleich erfolgt, wird der logische Datensatz der Änderungsdatei zusammen mit seinen hierarchischen Kennzeichen gedruckt. Andererseits, wenn der logische Datensatz der Änderungsdatei (im Wert und in der Ordnung) größer ist als der logische Datensatz der Vater-Stammdatei, mit dem verglichen wird, wird der logische Datensatz der Vater-Stammdatei gedruckt. Es ist wichtig zu erkennen, daß es für jede Ordnung aus hierarchischen Kennzeichen in irgendeinem Satz drei Unterscheidungsmöglichkeiten gibt: gleich, größer, kleiner; dies ist grafisch dargestellt in der Baum-Tabelle der Fig. 18.
Wenn für alle Ordnungen der hierarchischen Kennzeichen Gleichheit Im Wert erreicht ist, eine Anpassung, wird unter Bewahrung der Zeile das bestimmte Verfahren oder Programm durchgeführt, wie in der Baurntabelle der Fig. 18 dargestellt ist. Insbesondere wird der Zustand der Markierungsbits: INFLAG, OUTFLAG, CHANGEFLAG anschließend an ein Wort geprüft, das unmittelbar gefolgt wird von einem einzelnen Stern, einem doppelten Stern,
409835/0649
vgl. Tabelle 9«·6,.-: Seite 1, sowie FIg. 7.» 8 und 9, oder einem Markierungsbit, das den.Codeelementen "n" oder -!r" folgt, die bestimmte instruierende Weisungen in Bezug auf "Aufheben" (repealing) sowie für Aufheben und Ersetzen beinhalten.
Der logische Datensatz der Mutter-Ä'nderungsdatei 32 wird für diesen Satz aus den Gliedern der hierarchisch geordneten Kennzeichen mit jenen des logischen Datensatzes der Vater-Stammdatei hinsichtrieh Gleichheit geprüft. Wenn im Textteil des logischen Datensatzes der Mutter-Ä'nderungsdatel kein Marki erungsbit ("n" oder "r") vorhanden ist,, wird ein Austausch dieser logischen Datensätze durchgeführt, indem der logische Datensatz der Mutter-federungsdatei 32 in die Sohn-Stammdatei 35 ausgegeben wird, während der logische Datensatz der Vater-Stammdatei 26 für Aufzeichnungszwecke in das Ausgabe-Sppol 36 ausgegeben wird. Wenn für den Satz aus Gliedern der hierarchisch geordneten Kennzeichen keine "Gleichheit vorhanden ist.j werden jene logische Datensätze der Mutter-Anderungsdatei zur Vater-Stämmdatei hinzugefügt (wenn sie einen höheren Wert und eine höhere Ordnung haben), indem sie direkt in die Sohn-Stammdateiüberträgen werden. In anderen Fällen, wo im Textteil der Mutter-Ä'nderungsdatei ein Markierungszeichen erscheint, wird ; aufgehoben (werden die Daten aus der Vater-Stammdatei entfernt) ■ und zusätzlich die lüitfernung eines.lögisehen'Datensatzes von folgenden logischen Datensätzen der Vatef-Stammdatel durchgeführt, obwohl keine entsprechenden äquivalenten logischen Datensätze aus der Mutter-Anderungsdatel. vorhanden sind. '; -■-Andererseits werden dort, wo die Glieder der hierarchisch geordneten Kennzeichen der. Ä'nderungsdatei weniger sind (im Wert und in der Ordnung) als jene der Väter-Stämmdatei, die logisehen Datensätze der Vater-Stammdatei, direfct In die Sohn- : \ Stammüatei, übertragen; Zusammenfassend können diese drei Aspekte mathematisch wie folgt ausgedrückt werden:
40 9 83 5/06 49
{ΝϊΜ(Μ)Μ(ΜΓΡ3|ΚΜ£9}
Nun wird anhand eines Beispiels die Stammdatei der Tabelle 9«O dargestellt; wenn auf die Änderungsdatei der Fig. 15, daraus Paragraph 1, bezogen wird, die ein "Aufheben" des Paragraphen der Stammdatei der Tabelle 9.0 anfordert, was auch voll in Tabelle 9·2 erscheint, erscheint dies geeignet gekennzeichnet auf dem Band 32, wie durch den Ausdruck 40 in Tabelle 9.3 dargestellt ist. Die .Glieder jeder Ordnung der hierarchischen Kennzeichen der Vater-Stammdatei werden an jene der Mutter-Änderungsdatei angepaßt (Anweisungen 9O4l - 9058, Fig. 57 - 60). Angenommen, daß die Kapitelordnung "angepaßt" ist, werden die Glieder der nächst höchsten Ordnung der hierarchischen Kennzeichen, Paragraph, aus der Mutter-Ä'nderungsdatei und der Vater-Stammdatei angepaßt; dann werden nacheinander die Anweisungen 9044 - 9058 durchlaufen, um zu versuchen, die Glieder jedes der folgend niedrigeren Ordnungen der hierarchischen Kennzeichen anzupassen, d.h. Unter-Paragraph, Ziffer bzw. Buchstabe, Unter-Ziffer bzw. -Buchstabe usw., wobei im wesentlichen der Baumstruktur von Fig. l8 gefolgt wird; in den Ordnungen 2 bis 8 werden keine anderen Ordnungen der Kennzeichen gefunden (d.h. die Glieder aus jeder Ordnung der folgenden Ordnungen stellen Leerstellen dar). Durch Weiterverfolgen der Baumstruktur nach Fig. l8 ist ersichtlich, daß dort versucht wird, die Ordnungen 1-8 anzupassen, doch haben diese nur übereinstimmende Ordnungen bei 1 und 2 (Kapitel und Paragraph) und bei der Ordnung 9j die Ordnungen 3-8 sind Leerstellen, Zuerst muß ein besonderes Register am Arbeitsbereich 34 geprüft werden, das hier in der Programmsprache als "Aufzeichnungs-Arbeitsbereich-l" bezeichnet wird, welche Aktion
409835/0649
- ro ι -
genau durchgeführt werden muß, d.h. ob der Code Im Textteil l4o des logischen Datensatzes "r" oder "n" ist. Hier im Beispiel ist die im Textteil des logischen Datensatzes gefundene und nun im Aufzeichnungs-Arbeitshereich-l aufgezeichnete Tätigkeit das Markierungsbit nach dem. Buchstaben "r", was bedeutet, daß die durchzuführende Codierung "aufgehoben" ist, (vgl. .Tabelle 8.3, Angabe 2). Deshalb wird veranlaßt, daß die erste Zeile der Vater-Stammdatei aufgehoben»wird und ebenso die nächsten fünf Zeilen (wobei die fünfte Zeile eine Leerzeile ist), oder bis eine Änderung im Wert eines Gliedes in einer der hierarchischen Ordnungen der Zeile auftritt; in dem gewählten Beispiel ändert sich der-Wert des- Gliedes der zweiten Ordnung der hierarchischen Kennzeichen von 7 auf 8, was anzeigt, daß in. der Wachbärumgebung von Gliedern der Paragraphen-Ordnung eine Änderung von Paragraph 7 auf Paragraph 8 in der Vater-Stammdatei 26 aufgetreten ist (es sei festgestellt, daß die hierarchischen Kennzeichen einen "geschlossenen"Satz bilden und daß jede der mehreren Naehbarumgebungen in dem Satz endliche Nummern sind; weiterhin, daß eine^eindeutige Beziehung zwischen den Gliedern eines Satzes aus hierarchisch geordneten Kennzeichen für die "Anpassung" zwischen den logischen Datensätzen der Mutter-Änderungsdatei und der Vater-Stammdatei erforderlich ist, wobei weiterhin nicht lediglich ausreicht, daß eine ein-eindeutige Beziehung vorhanden ist, sondern daß der Satz aus Gliedern der Ordnungen der hierarchischen Kennzeichen für jeden logischen Datensatz der Mutter-Änderungsdatei und Vater-Stammdatei vollständig ist; weiterhin, daß für denselben logischen Datensatz jedes Glieds jedes Satzes genau,einmal verwendet wird und jede Nachbarum- ' gebung eine Nummer aus dem Glied des Satzes aus der hierarchischen Ordnungen ist). Als Ergebnis davon wird dieser Abschnitt 7 der Vater-Starnmdatei 26 aufgehoben und aus der Sohn-Hauptdatei 35 entfernt, vgl. Tabelle 9.5 "7 aufgehoben".
AO9835/0649
Wenn andererseits im Teil 1 die Weisungs-Analyse keine Aktions-Bedingung im logischen Datensatz der Änderungsdatei durch ein Markierungszeichen "r" oder"n" anzeigt, muß jeder· logische Datensatz der Änderungsdatei an den logischen Daten- ' satz einer äquivalenten Vater-Stammdatei für jede Ordnung der hierarchischen Kennzeichen,·einschließlich der Zeilen-Ordnung, "angepaßt" werden, bevor eine volle Anpassung der entsprechenden Kennzeichenfelder für die entsprechenden logischen Datensätze der Vater-Stammdatei und Mutter-Änderungsdatei erhalten wird. In diesem Fall wird der spezielle logische Datensatz der Stammdatei durch einen identisch gekennzeichneten logischen Datensatz der Änderungsdatei aufgenommen, und der logische Datensatz der Änderungsdatei wird in die neue oder Sohn-Starnmdatei 35 ausgegeben und v/ahlweise auf das Spool-Band 37* während gleichzeitig der logische Datensatz der Vater-Stammdatei (der nicht in die Sohn-Stammdatei eingefügt ist) auf das Spool-Band 36 für die statistische Zusammenfassung dieses Datensatzes ausgegeben wird. Zusammenfassend kann ein Satz aufgestellt werden, nämlich, daß die einzige Zeitgleichheit durch eine Zeile vorhanden sein kann bei Identität zwischen den logischen Datensätzen der Mutter-Änderungsdatei und der Vcter-Stammdatei, d.h. wenn alle Ordnungen der Mutter-Änderungsdatei und der Vater-Stammdatei identisch gekennzeichnet sind. Eine "Anpassung" wird in Bezug auf .: e■■ jre ί-τ- s^ben 33 genauer definiert durch zwei "geüu^..,. ; . S -_:■■-■' ε-hierarchisch geordneten Kennzeichen, wobei ein üslou ^'.L'- : logischen Datensatz der Mutter-Änderungsdatei, der andere Satz für die Vater-Datei steht und wobei jede "Nachbarumgebung" eine Nummer des Gliedes des Satzes der Ordnungen ist. Als Folge davon läßt sich in diesem Fall die folgende mathematische Darstellung durchführen:
MCF, FCM
409835/0649
23S0023
(wobei M die Identität des logischen Datensatzes der - Mutter--Änderungsdatei und F die Identität des logischen Datensatzes der Vater-Stammdatei, sowie S die Identität des logischen Datensatzes der Sohn-Stammdatei ist. Mit Identität wird die Übereinstimmung bezüglich Ordnung und Gliedern der hierarchischen Kennzeichen zwisehen' irgendeinem der logischen Datensätze von Vater, Mutter und Sohn gemeint, d.h. M= F= S.)
Dies wird" weiter- ausgedrückt durch die Fig. 73»7^-"'und 75/ wobei für die Fig. 73 gilt:. ■".·""
MCF und FCM und FCS
Λ MCS ■ ■".:'-■ ■■-- ■"■■',
mit a =■ Sätze der Kennzeichen» Für Fig. Jh gilt: :
F(a')CF(a) (a")
S(a)"CF(a) (a") ;
aber ""■■ MaJZ[F (a')^S
* "■■ FLiaM-SL'
a'=a"
Für Fig. 75 gilt: ^
Angenommen F=0=a" dann M(a)CS(a)";
S(a")CM(a)
aber . F(a'
■■■Λ* MsCa)=Sg' (a"X
a=±a" 4 0 983 5/06
In V/orten ausgedrückt: wenn Gleichheit für alle Glieder aller Ordnungen, einschließlich der Zeile, herrscht, müssen die
nächsten logischen Datensätze der Mutter-Änderungsdatei und
der Vater-Stammdatei verglichen werden. Wenn dann eine nachfolgende Ungleichheit nur bei der Zeilenordnung auftritt, kann dies nur dann geschehen, wenn eine Ungleichheit einer der
höheren Ordnungen der Kennzeichen zwischen der Änderungs- und der Vater-Stammdatei und der Zeile vorhanden ist.
Allgemeiner ausgedrückt: die Anpassung der nächsten logischen Datensätze ist unnötig, wenn die Zeilen-Ungleichheit zwischen der Vater-Stammdatei und der Mutter-Änderungsdatei, anschließend an die Anpassung der Glieder der höheren Ordnungen der Kennzeichen auftritt. Es genügt, daß eine einmal aufgetretene Gleichheit aufhört. Dies geht aus der folgenden
Tabelle und den Figuren hervor:
VATER-ÄNDERUNGS-SOHM-TABELLE 1O
VATER-STAMMDATEI (P) 1 Zeile ÄNDERUNGSDATEI (R) SOHN-STAMMDATEI 1 1 1 1 (S)
Kennzeichen 1 1 ^ Kennzeichen Zeile Kennzeichen Zeile 2 1 1 2 Ursprung
1 2 2 /"» ,2 1 3 1 1 3 P
1 2 r2 1 1 CVJ 2 1 P
1 2 2 1 2 2 2 2 P
2 2 '"1 .X^
i- ^s JQ
2 2 1 2 3 R
2 .2 2 2 2 1 R
2 2.* J 3 3 2 2 R
2 3 y> k3 1 3 1 R
2 3 2 R
2 ,5 3 3 R
3 2 */ 4 1 R
3 3 4 2 R
VjJ 1 4 3 P
4 2 5 1 P
4 3 P
4 R
409835/0649
In der obigen Tabelle zeigen die Pfeile eine Anpassung oder Gleichheit zwischen Sätzen aus Gliedern von identischen Ordnungen der hierarchischen Kennzeichen der Vater- und Mutter-Änderungsdateien mit der resultierenden Sohn-Stammdatei, zusammen mit dem Hinweis, woher dieser logische Datensatz stammt, von R oder P. Aus dieser Tabelle ist ersichtlich, daß der logische Datensatz der Ä'nderungsdatei, z.B. {(2) (l) (3)/. in die Sohn-Datei "eingefügt" werden muß, zusätzlich zu -1(2) (I)- (I)J--und\(2) (1) (2)} der Mutter-Änderungsdatei, wobei eine Information wie diese in der Vater-Stammdatei nicht vor-, handen war, während die logischen Datensätze der Vater-Stammdatei, die als {(!) (2) (3)} und {(2) (2) (4)} gekennzeichnet sind, "entfernt" oder gestrichen werden müssen, in dem Sinn, daß sie nicht In die Sohn-Stammdatei ausgegeben werden, sondern nur statistisch .auf dem Äusgabeband J>6 angeordnet werden.
ANALYSE DES BESONDEREN MISCHENS 33
Obwohl das besondere Mischen 33 tatsächlich als unabhängiges Operationsprogramm auf den Ausgangsbändern 32 und 26 der Fig. 1 geschrieben ist, ist dies nicht.unbedingt notwendig. Tatsächlich würde das Verzahnen des besonderen Mischens 33 mit der WeIsungs-Analyse 30 die Erzeugung des Mutter-Änderungsband es 32 ersparen, ebenso die Erzeugung des Väter-Stammdatei-Bandes 26, und das Verfahren könnte entsprechend aus den Blöcken P4 und 30 des Rechners direkt nach '33 gehen. Trotzdem ist es aus Diskussionsgründen zweckmäßig, das besondere Mischen 33 separat zu betrachten, und daß das Vater-Stammdatei-Band 26 und das Mutter-Änderungsdatei-Band 32,· die bereits früher als Ausgabebänder erzeugt wurden, nun als Eingänge für das besondere Mischen 33 dienen. -
409835/0649
Vor der genauen Diskussion ist es zweckmäßig zu bemerken, daß " die. nachstehende Erläuterung bezüglich des besonderen Mischens 33 der Logik des Programmierverfahrens folgt und nicht notwendigerweise der Folge des Programmabiaufplans und somit der Programmiersprache. Damit soll das Verständnis gefördert und somit das anschließende Studium der Prqgrammablaufpläne erleichtert werden, wodurch ein volles Verstehen der erfindungsgemäßen Ausführungsbeispiele erreicht wird.
Das Mutter-Knderungsdatei-Band 32 besteht aus natürlicher Sprache mit gekennzeichneten Operanden sowie aus der auf die Operanden durchzuführenden Tätigkeit beim Codieren, vgl. Fig. 17; die Vater-Stammdatei 26 ist nach Fig. 14 gekennzeichnet (d.h. jeder logische Datensatz ist mit dem Satz aus Gliedern von hierarchisch geordneten Kennzeichen gekennzeichnet). Beide eingegebenen Dateien, d.h, die Bänder, 32 und 26, haben logische -und physikalische Datensätze von identischer Länge, nämlich einen logischen Datensatz aus ?Λθ Zeichen mit einer Länge des physikalischen Datensatzes von 4800 und einer Dichte von 1600 BPI. Bei Anweisung 9000 der Fig. 52 wird ein nicht dargestellter Kartenleser zusammen mit den Bändern 32 und 26, die in diesem Teil die entsprechenden Eingabebänder sind, und zusammen mit den drei Ausgabebändern 35* 36 und 37 nach Fig. 1 eröffnet. Diese drei Ausgabebänder zeichnen alle Auszüge -auf, die aus dem Vater-Stammdatei-Band 2.6, das für eine · visuelle Prüfung und als historischer Hintergrund für die neue Sohn-Stammdatei verwendet wird, die auf Band 35 erzeugt wird, entfernt werden. Das Sohn-Band 35 ist die "neue" Stammdatei, die wiederum im Format der Vater-Stammdatci 26 erzeugt wird (es kann anschließend als Stammdatei verwendet werden, um eine Enkel-Stammdatei mit einer anderen Mutter-A'nderungsdatei zu erzeugen). Das dritte Band, Spool-Band 37i ist das V/ahl-Spool-Band, das mit der Sohn-Stammdatei verbunden ist, und das als Druckquelle dient, aus der ein Hartkopie-Ausdruck der
409835/0649
236GQ23
Sohn-Stammdatei gebildet wird, vgl. Tabellen und 9.5. Die Länge des logischen Datensatzes des Sohn-Spool-Bandes 37 : beträgt 133V bei einer physikalischen Satzlänge von 2660 χ 20) Zeichen, . / :/ \_ -"
Bei Anweisung 9OOI der Fig. 52 werden Leerräume zum Arbeitsbereich 32I- gebracht, und es ist nun zweckmäßig, zwei ■■■"-Markieruhgszeicheri oder Steuerregister mit je einem Bit einzuführen, die beim Steuern des besonderen Mischens verwendet werden; nämlich' eine Einlese-Gesetz-Register-Steuerung RIR. Diese steuert den Zustand: wenn ein Einlesen· eines logischen Datensatzes der Mutter-Knderungsdätei ausgeführt werden soll, empfängt es einen binären Zustand 0, wenn das Lesen des logischen Datensatzes gesperrt werden soll, empfängt es den binären Zustand 1. ' .- . "■-■:■■
40983 5/06 49
Das andere Steuerregister ist ein Einlese-Stammregister RIM und im wesentlichen identisch zu RIR, arbeitet aber auf jenen logischen Datensatz der Vater-Stammdatei,der sich gerade im Arbeitsbereich 34 befindet. Bei Anweisung 9002 wird die Mischen-Steuerkarte nach Tabelle 7.0 eingelesen, die hier dieselbe Steuerkarte ist, wie sie bei der Weisungs-Analyse 30 verwendet wird.
Bei Anweisung 9OO3 werden die Seitenüberschriften für Druckzwecke in der Sohn-Stammdatei ausgeführt, d.h. die Seitenzahlen. Durch Anweisung 9090 nach Fig. 64 wird ein weiteres Steuerregister aus einem Bit eingerichtet, das Kennzeichen-Gleich-Register COD-EQUAL, und auf 1 gesetzt, wenn der Satz aus Gliedern der hierarchischen Ordnungen aus einem logischen Datensatz der Vater-Stammdatei gleich und von identischem Wert ist zu dem logischen Datensatz der Mutter-A'nderungsdatei, oder genauer zum Operanden des Eingabebandes 32; RIM wird durch die Anweisung 909I der Fig. 64 ebenfalls auf 1 gesetzt, und der Arbeitsbereich 34 wird so angeordnet, daß durch die Anweisungen 9092 und 9093 die verarbeitete Information (die logischen Datensätze) nicht nur auf das Spool-Band 37, sondern auch auf das Sohn-Stammdatei-Band 35 geschrieben wird. Diese Information enthält den Texteil (den alten eingegebenen logischen Datensatz 140), der als logischer Datensatz der Sohn-Stammdatei gekennzeichnet ist. Durch Rückkehrer! auf die Anweisung 9OI5 nach Fig. 54 wird der Zustand des neuen Steuerregisters festgestellt, das das Lesen des logischen Datensatzes der Stammdatei verzögert und deshalb RIM heißt, wobei das Bit 0 das Lesen der Vater-Stammdatei verzögert und Bit 1 das Lesen erlaubt. Obwohl sein Zweck noch klarer wird, genügt es zusagen, daß in Fällen, wo der in die Sohn-Stammdatei einzufügende Text
409835/0649
- 1OQ - '■"■--■
mehr von der Änderungsdatei (Operanden) als von der Vater-Stammdatei 26 abgeleitet wird, dieses Register betätigt wird, um das Lesen oder Eirgeben eines anderen logischen Datensatzes derVater-Stammdatei in den Arbeitsbereich jH zu verzögern, bis alle logischen Änderungs-Datensätze der dann ablaufenden Folge der Änderungsdatei verarbeitet und in der Sohn-Stammdatei angeordnet ,;ind. Diese Verzögerung wird benötigt, weil das Verfahren des Ausführungsbeispiels für wirkungsvollstes Arbeiten Schwankungen der Eingabe von physikalischen Datensätzen aus der Vateip-Stammdatei und der Mutter-Änderungsdatei in' den Arbeitsbereich ~$h erfordert. RIM kann verschiedene Werte ungleich Q haben, und wenn es Werte ungleich Ό hat, wird das Einlesen des logischen Datensatzes der Vater-Stammdatei in den Arbeitsbereich verzögert, wobei die Wertnummer von RIM den spezifischen Grund für diese Verzögerung anzeigt. Wenn z. B- der Wert von RIM gleich acht ist, wird die Verzögerung des Einlesens der Stammdatei gestartet und Anweisung 9036 der Pig. 57 ausgeführt, wobei bemerkt wird, daß die Vergangenheitsprüfung ebenfalls in die Sohn-Stammdatei aufgenommen werden muß, doch muß die Vergangenheitsprüfung am Ende jener logischen Datensätze hinzugefügt werden, die in die Sohn-Stammdatei eingefügt werden sollen, entweder nach den logischen Datensätzen der Mutter-Änderungsdatei oder von den logischen Datensätzen der Vater-Stammdatei, so daß die früher erwähnte VergangenheitsprUfung direkt in den Daten der Sohn-Stammdatei vorgesehen wird, vgl. z.B. Tabelle 9 3, Zeile (62 (1) (ca)); andernfalls, wenn RIM 8 , wird Anweisung 9016 ausgeführt. Wenn andererseits bei der Anweisung 9OI6 das Register RIM gleich vier ist, hält die Verzögerung aus anderen Gründen an, nämlich wegen "Ende der latex", doch wird die Datei nicht geschlossen, um ein vorzeitiges Ver.-trbeitungsende zu verhindern, d.h.
409835/0649
no -
360023
ein "Aufhängen", wie bereits früher erläutert wurde. Wenn RIM bei Anweisung tyOl6 gleich vier ist, werden die folgenden Register bei 9017 neu bewertet, nämlich RIR = Ij RIM = O-j und zwei neue Register eingerichtet, nämlich ein Register FEOM (Ende-Marke-Stammdatei), das die
Stammdatei steuert und offenhält, aber das Lesen der Stammdatei sperrt, so daß dann, wenn.es auf eine binäre Eins eingestellt ist, das Register zum Offenhalten der Vater-Stammdatei, jedoch zum Sperren des Lesens daraus, betätigt wird, und wenn es auf einen Wert 0 eingestellt ist, zum Schließen der Vater-Stammdatei betätigt wird. Ein zweites Register, das Drucken-Stamm-Register PM, das ebenfalls binäre Werte von 1 und 0 erlaubt, druckt die Vater-Stammdatei auf die Sohn-Stammdatei aus, wenn sein Wert Eins ist, während es bei 0 das Drucken der Vater-Stammdatei auf die Sohn-Stammdatei 35 (und auf das zugehörige Spool 37) sperrt«
Eine analoge Folge in bezug auf die Änderung von Daten aus der Änderungsdatei 32 zum Arbeitsbereich 3^ und auf die Ausgabe-Sohn-Stammdatei 35 und auf das Spool 37, findet in den Schritten 9068 bis 9070 der Fig. 6l statt. Bei Anweisung 907I wird erneut eine Prüfung für (OD-EQUAL = 1 durchgeführt d.h. ob die Werte der Glieder der Ordnungen der Kennzeichen der logischen Datensätze der Änderungs- und der Vater-Stammdatei gleich sind; falls diese Bedingung erfüllt ist, wird Anweisung 9004 der Pig. 53 ausgeführt (die sich daraus ergebenden Ergebnisse sind bereits früher beschrieben worden); andernfalls wird Anweisung 9072 ausgeführt, wobei ein reuer logischer Datensatz der Änderungsdatei in den Arbeitsspeicher eingefügt und anschließend Anweisung 9036 der Fig. 57 ausgeführt wird.
409835/0649
Wenn nach Fig. 57 und nach Anweisung 9036 die Vater-Stämmdatei an ihrem Ende und FEOM = 1 ist, ist es nicht notwendig, die Vater-Stammdatei zu schließen*: da während der Endverarbeitung ζ * B- in einem IBM OS/360 - Rechner alle Dateien "offen" gehalten bleiben müssen, obwohl sie verbraucht sind; um sicherzustellen, daß es kein "Aufhängen" gibt, sollte als Folge eines Systemprogramms eine Datei, die verbraucht ist,- aufgerufen werden. Wenn nach Fig. 54 der durch Anweisung 9OI6 geforderte Zustand;nicht erfüllt wird, findet bei ' Anweisung 90I8 folgendes statt: Ein neuer, logischer Datensatz der Vater-Stammdätei wird in den Arbeitsbereich 3^ eingelesen. Es sei darin erinnert, daß in der Datenvorbereitungsstufe ein Kleinbuchstabe "l" anstelle der numerischen Eins verwendet wurde; hier wird nun eine Suche nach Zeichen wie "1" veranlaßt, die in dem hierarchischen Kennzeichenfeld 122'. erscheinen und- durch Anweisungen 90I9 und 9020 in die numerische Zahl 1 geändert werden. Dadurch wird das Problem umgangen, "graphische Zeichen" bei den Operationen auf Kennzeichehfeidern behandeln zu müssen, wenn diese tatsächlich Ziffern darstellen.. (Das ' ist eines der Probleme bei der Eingabe von Daten lh Groß- und Kleinschreibweise mit runden und eckigen Klammern und Unterstreichungen, - , da die eckigen Klammern [* 3 auf üblichen MT/ST-Schreibmaschinen als groß- und kleingeschriebene numerIsehe 1 dargesteilt werden). Die Systembegrenzungen und die Schwierigkeit bei der Erkennung von "graphischen Zeichen" (Satz aus Kleinbuchstaben a.t b. .... z) sind offensichtlich Diese Zeichensätze sind Sätze, die von selbst in EBC D I G beiseite gelegt werden-und bei der Übersetzung eines Programmes durch einen-Rechner wie IBM OS/560, der mit Zahlen (1 ...0) oder Großbuchstaben (A, B, C ... Z) arbeitet, nicht verwendet werden.
409835/0649
Bei Anweisung 9o21 der Fig. 54 wird das Register RIM = 1 auf Eins gesetzt und dann bei Anweisung 9022, Fig. 55* das Markierungs- oder Steuerregister, das auf die Änderungsdatei in ähnlicher Weise wie RIM -^u f die Stammdatei arbeitet und somit Einlese-A'nderungsdatei-Register RIR heißt, mit dem Wert Eins bewertet. Wenn dieses binäre Register auf 1 eingestellt ist, wird das Einlesen des logischen Ä'nderungs-Datensatzes verzögert, während dann, wenn es auf O eingestellt ist, ein neuer logischer Mutter-Änderungs-Datensatz verarbeitet werden kann. Wenn nun bei Anweisung 9024 RIR = 0 ist, erfordert diese Logik ein Lesen einer neuen Vater-Stammdatei und bewirkt ein Weitergehen auf diese Anweisung 9004 nach Fig. 53* um dann von der Mutter-A'nderungsdatei einen logischen Datensatz einlesen zu können. Nach Fig. 53 wird bei Anweisung 9OO5 der Zustand RIR ·= eingestellt, nachdem bei 9004 der nächste Datensatz von der Mutter-Änderungsdatei eingelesen ist, um anzuzeigen, daß der eingegebene logische Datensatz der Änderungskartei eingegeben worden ist. Bei 9006 und 9007 wird ein Folgeschritt wie der Schritt von 9018 durchgeführt, aber auf der Änderungsdatei, nämlich die Änderung der alphabetischen Kleinbuchstaben-Einsen in den hierarchischen Kennzeichen der Änderungsdatei in numerische Einsen. Bei Anweisung 9OO8 wird die Prüfung des Endes der Stammdatei erreicht, d.h. RIM = 4. Wenn diese Bedingung erfüllt ist, wird ein neuer logischer Änderungs-Datensatz eingelesen, durch Rücksprung zur Anweisung 9004, andernfalls wird die nächste Anweisung 9OO9 ausgeführt, um zu prüfen, ob der logische Datensatz der Stammdatei gedruckt werden kann, d.h. PM = ausgeführt; und falls ja, wird Anweisung 9OI5 ausgeführt. Wenn andererseits PM ungleich Eins ist (PM ^ I), prüft 9OIO, ob RIM = 0; falls diese Bedingung mit ja erfüllt wird, wird dann damit fortgefahren, die Vater-Stammdatei durch Ausführung der Anweisung 9OI5 der Fig. 54 (in die Sohn-
409835/0649
Stammdatei) auszudrucken. Wenn andererseits das Register RIM ungleich O ist, was bedeutet, daß ein eingegebener logischer Datensatz der Vater-Stammdatei eingelesen werden kann, wird der Zeitrahmen gelesen, d.h. "Jahr", wie in den Feldpositionen 28 bis 37 der Steuerkarte (Tabelle 7 0) dargestellt ist, und dieser in einem speziellen Zeitrahmenspeicher ("Y.U."10" im Ablaufplan) im Arbeitsbereich 34- gehalten, mit dem die Snderungsciatei verbunden ist. Anschließend wird bestimmt, ob der Jahrspeicher gleich, kleiner oder größer als das Zeitrahmendatum ist, d.h. Jahr, Monat, Tag, die mit der Vater-Stammdatei über Anweisungen 9011, 9012 und 9013 der Fig. 54 verbunden sind. Dies wird getan, um sicherzustelbn, daß-eine Mutter-Änderungsdatei für eine Vater-Stammdatei nicht für einen ungeeigneten Zeitrahmen angefertigt wird, und daß die Zeitrahmen der Änderungsdatei, wie durch die Steuerkarte gesteuert, nur jene sind, die auf der Vater-Stammdatei ausgeführt werden sollen, denn es ist manchmal üblich, in der Mutter-Änderungsdatei 32 eine Anzahl von sequentiell zeitgerahmten Änderungen anzuordnen, während die "Fdrtschreibung" nur auf jeweils eine davon angewandt wird.
40983 5/0649
Wenn z.B. angenommen wird, daß die Mutter-Änderungsdatei 32 mehrere Änderungen auf ihr seriell angeordnet hat, um eine Stammdatei kontinuierlich zu ändern, können diese enthalten: jährliche, monatliche oder tägliche Änderungen. Es wird nun angenommen, daß die zu bearbeitende Vater-Stammdatei ein Zeitrahmen-Datum 1. Januar i960 hat und auf 1963 fortgeschrieben werden soll, und weiterhin, daß mehrere Änderungen in der Mutter-Änderungsdatei bei verschiedenen jährlichen Zeitrahmen vorhanden sind, d.h. Änderungen der Vater-Stammdatei für 19^3* eine weitere zeitgerahmte Änderung für 1964 und weitere für 1965, 1966, 1967 usvi. Man möchte wissen, was tatsächlich I963 vorhanden war, d.h. wie der Stand der Stammdatei war. Es ist deshalb nur notwendig, die Vater-Stammdatei durch Implementation von zeitgerahmten Fortschreibungen zu ändern, z.B. für die Mutter-Änderungen von I963 und 1964, siehe Tabellen 9.2 und 9-4, die folgenden Änderungen 1965* I966 usw., obwohl dies auf dem Änderungsband 32 nicht notwendig und tatsächlich nicht gewünscht wird. Die durch die Steuerkarte gegebene Auswahlinformation, Tabelle 7, Positionen 28 und 29, erlaubt die Implementation eines besonderen Mischens 33 der Mutter-Änderungsdatei Tabelle 9.2, 1963, auf die Vater-Stammdatei, um eine Sohn-Stammdatei (auf I963 fortgeschrieben), Tabelle 9·3* zu erzeugen und infolgedessen die Implementation der Mutter-Snderungsdatei I963, Tabelle 9.4, auf der Sohn-Stammdatei, Tabelle 9.3, um eine Enkel-Datei zu erzeugen (fortgeschrieben auf 1964), Tabelle 9·5* die diese Information durch die Steuerkarten-Zeitrahmen 28 und 29 trägt. In diesem Fall ist ersichtlich, daß zwei Läufe für das besondere Mischen 33 erforderlich sind.
Falls die Zeitrahmen gleich sind, falls z.B. der Steuerkarten-Zeit rahmen nach Tabelle 7·0 gleich ist zu jenem der Snderungsdatei 100 nach Fig. 14 und 17 und der Stammdatei,
0 9835/064 9
236QQ23
wird die Stammdatei verarbeitet, da sie bereits forgesehrieben ist; wenn der Steuerkarten-Zeitrahmen gleich ist zu jenem der Ä'nderungsdatei, aber größer als jener derStammdatei, wird die Ä'nderungsdatei auf der Stammdatei verarbeitet (mit dieser gemischt); wenn die Steuerkarte kleiner ist als die der finderungsdatei, ist der Zeitrahmen der-Fortschreibung bereits überschritten und die Stammdatei wird bei Anweisungen 9011, 9012 bzw. 901-3/ nach Fig. 55 und 54 ausgegeben. Auf diese Weise wird die Steuerung der "Fortsehreibung", gesichert, wenn die Änderungsdatei Unter-A'nderungsdateien mit verschiedenen Zeitrahmen hat. Es wird angenommen, daß die verwendete Vater-Stammdatei die "korrekte" Datei ist, d.h. die Datei, die fortgeschrieben werden soll.
Es soll festgestellt werden, daß in den- Programmablauf planen dieses Teils alle sequentiellen Operationen und Untersuchungen, die durchgeführt.werden, im Hinblick auf jeden logischen Datensatz .der Mutter-Änderungsdatei und mit jedem logischen Datensatz der Vater-Stammdatei durchgeführt werden, die zu irgendeiner Zeit im Arbeitsbereich 34 von Fig.l angeordnet sind. Falls bei Anweisung 9013 von Fig. 5^ der Zustand vorliegt, daß das Steuerkartenjähr und das Jahr der Änderungsdatei ungleich sind, muß bestimmt werden, ob das Steuerkarten jähr größer ist als das Ä'nderungsdatei- Jahr, in welchem Fall der nächste logische Datensatz der Änderungsdatei eingelesen .wird, bis eine Anpassung der Jahr es ordnungvorhanden ist; sodann folgt Anweisung 9004 nach. Fig. 53- Wenn andererseits bei Anweisung 9013 das Änderungsjahr kleiner ist als das Steuerkarten-Jahr, wird durch Anweisung 9014 das Register PM = 1 eingestellt, worauf auf die Anweisung 9090 der Fig. 64 übergegangen wird und der logische Datensatz der Vater-Stammdatei in die Sohn-Stammdatei ausgedruckt wird, "■■;":
40S83 5/0649
und anschließend wird in 9004 der nächste logische Datensatz der Änderungsdatei eingegeben, worauf der Zyklus fortgesetzt wird. Wenn bei der Anweisung 9013 clas Änderungsdatei jähr größer ist als das Steuerkartenjahr, wird der Zyklus fortgesetzt, indem wie beschrieben zur Anweisung 9015 fortgeschritten wird, bis die erwähnte Anpassung vollzogen ist.
Bei Anweisung 9024 der Fig. 55 wird geprüft, ob der Zustand RIR ungleich Eins ist (RIR = 0), d.h. ob es nicht möglich ist, einen logischen Datensatz der Mutter-Änderungsdatei einzulesen.Wenn diese Bedingung nicht erfüllt wird, Werden die Anweisungen 9025 - 9035 der Fig. 56 ausgeführt, um eine statistische Analyse der Verarbeitungsschritte vorzubereiten, die zur Ablage auf Spool 37 durchgeführt wurden. Diese zehn Schritte prüfen allgemein, welche Kennzeichen-Ordnung sich durch die Einwirkung der Mutter-Änderungsdatei auf die Vater-Stammdatei und die Sohn-Stammdatei geändert haben. Die Ausgabe dieser Analyse, die in keiner Figur dargestellt ist, vgl. jedoch Tabelle 9 (Boden jedes Sohnes, Enkels und Urenkels usw.) zeigt die gesamte Anzahl von Änderungen an, die für jede der verschiedenen Ordnungen der hierarchischen Kennzeichen gemacht wurden, und erzeugt somit ein statistisches Ergebnis der Gesamtzahl von Änderungen, die während einer Änderung auf der Vater-Stammdatei in der Mehrzahl der Ordnungen der Kennzeichen gemacht wurden. Zusammenfassend wird eine Gesamtzahl von Änderungen erhalten, die in jeder "NachbarUmgebung" durchgeführt werden, d.h. auf Paragraphen, Unter-Paragraphen usw. der hierarchischen Kennzeichenfelder. Mit einer derartigen Analyse, die als Teil der Abschlußinformation in Bezug auf die Sohn-Stammdatei erhältlich ist, ist eine verhältnismäßig einfache Methode zur visuellen Feststellung für jeden Fehler, der während des besonderen Mischens 33 erzeugt worden sein kann.
Bei Anweisung 904l, Fig. 57* wird das besondere Mischen
409835/0649
gestartet und das Prüfen des logischen Änderungs-Datensatzes im Arbeitsbereich gegenüber dem logischen Datensatz der Vater-Stammdatei gemäß der Entscheidungstabelle 1 - 5 und gemäß der Baumstruktur von Fig. 18; die Ausführung ist in den Anweisungen 9O4l - 9058.der Fig. 57--" 60 des Programmablaufplans dargestellt. Weitere Information in Bezug auf diese Misch-Logik kann der Tabelle j5.O: "Hierarchisches Anpassen" entnommen werden. Die genaue Operation von Tabelle 3·Ο und des Programmablaufplans, Anweisungen 9O1I-I - 9O4j5,, wird in Bezug auf Paragraphen-Ordnungs-Kennzeichen erklärt, da der Operationsablauf für die anderen diskreten Ordnungen der Kennzeichen (Ordnungen 3"-- 9) im wesentlichen dasselbe ist.
Bei Anweisung 9O4l der Fig. 57 werden die Glieder der Paragraphen-Ordnungs-Kennzeichen des logischen Datensatzes für die Mutter-A'nderungsdatei geprüft (im folgenden "Paragraph der Mutteränderung"genannt), um zu bestimmen, ob sie gleich sind zum Paragraphen der Vater-Stammdatei; bei Gleichheit wird auf die Anweisung 9044 der Fig. 58 weitergegangen, um die Gleichheit der Unter-Paragraphen zu prüfen. Falls die Anweisung 9041 falsch ist, wird bei 9042 geprüft, ob der Paragraph der Mutteränderung größer ist als jener der Vater-Stammdatei; falls ja, werden die Anweisungen 909° ~ 9093 der Fig. 64 ausgeführt, iim den logischen Datensatz der Vater-Stammdatei auf die Sohn-Stammdatei auszudrucken; wenn jedoch andererseits die Anweisung"falsch" ist, wird geprüft, ob der Paragraph der Mutter-Änderung geringer ist als der Paragraph der Vater-Stammdatei, und in diesem Fall wird die Mutter-Ä'nderungsdatei durch Fort schreiben zur Anweisung 9068 der Fig. 6l und anschließend zur Anweisung 9073 ausgedruckt, in Übereinstimmung mit dem, was bereits früher im Zusammenhang mit der Vater-finderungs-Sohn-Tabelle 10 erläutert wurde.
4 0983 5/064 9
Nun wird die Anweisung 9059 der Fig. 6o ausgeführt und geprüft, ob "repealed" ("aufgehoben") auf dem logischen Datensatz der Änderungsdatei aufgezeichnet ist, gefolgt von dem Markierungszeichen) falls ja, werden die Anweisungen 9095 - 9099 der Fig. 65 ausgeführt, die aus der Vater-Stammdatei den logischen Datensatz entfernen, der den aufgehobenen Paragraphen enthält. Nach Fig. 65 wird bei den Anweisungen 9095 und 9096 die Weisungs-Referenz hinsichtlich des Wortes "repeal" (aufheben) geprüft, das sich im Arbeitsbereich-1 befindet. Dieses wird zusammen mit den Weisungs-Kennzeichen in einen anderen Speigebracht den
cherbereich des Arbeitsbereichs, nämlich in Vergangenheits-Speicher HTS, um einen Teil der Vergangenheitsprüfung 205 zu bilden, die am Ende dieser logischen Datensätze, die durch das besondere Mischen geändert werden (beim Vergleich der Vater- mit der Sohn-Stammdatei), in die Sohn-Stammdatei eingefügt wird. Dies wird erreicht durch Einfügen der Vergangenheitsprüfung 205 als ein logischer Datensatz am Ende der logischen Datensätze, vgl. Fig. 19* wo die Vergangenheitsprüfung 205 ist: "1962, C.031, Weisung 1" und der logische Datensatz {(094) (6o).(l) (ca) (11)}, siehe auch Tabelle 9·5· Dies wird erreicht, indem Leerräume zum Ausgleich des Aufzeichnungs-Arbeitsbereiches übertragen und dieselben in die Sohn-Stammdatei 35 ausgegeben v/erden. Bei der Anweisung 9097 der Fig. 65 wird die im Vergangenheitsprüfungs-Speieher 205 enthaltene Information in den Aufzeichnungs-Arbeitsbereich übertragen und die Sohn-Stammdatei wird durch die Ausführungs-Anweisungen 9068 - 9070 der Fig. 6l mit der zugehörigen Vergangenheitsprüfung gedruckt; danach wird ein neuer logischer Datensatz der Ä'nderungsdatei gelesen, Anweisung 9097* indem zu den Anweisungen 9004 9008 der Fig. 53 weitergegangen wird. Es soll festgestellt werden, daß, obwohl die Vergangenheitsprüfung als ein Anfangsstück von Information in Bezug auf jede Änderung für die Vater-Stammdatei erscheint, d.h. als der erste logische Da-
40983 5/0649
tensatz der Mutter-Änderungsdatei, sie nicht verwendet wird, bis die Verarbeitung der angepaßten Glieder für. jede Ordnung der hierarchischen Kennzeichen der logischen Datensätze der Vater-Starrandatei und Mutter-Änderungsdatei durchgeführt ist; deshalb ist es notwendig, die Vergangenheitsprüfung im Aufzeichnungsarbeitsbereich zu speicher, während ständig aufeinanderfolgende logische Datensätze der Mutter-Änderungsdatei gelesen werden, um die aktuelle Änderung durchzuführen (oder Datensätze der Vater-Stämmdätei, je nachdem)j nachdem die Verarbeitung fertig ist, kann die Vergangenheitsprüfung im Aufzeichnungs-Arbeitsbereich erhalten werden (Vergangen—
he its.prüfungs-Speicher . 205:)> :um anschließend als ein logi
scher Datensatz am Ende der Änderungsdatei für diesen Teil der Vater-Stammdätei eingefügt zu werden.
Bei-Anweisung 9098 wird der logische Datensatz der Vater-Staimndatei geprüft, um zu sehen, welche Ordnungen Glieder enthalten, so daß bestimmt werden kann, welche logischen Datensätze der Vater-Stammdai^ei bearbeitet werden müssen. Falls keine derartige Information vorhanden ist,, d.h. falls die Glieder der Ordnungen der hierarchischen Kennzeichen fehlen, muß zur Anweisung 9036 der Fig. 57zurückgekehrt werden. Durch die Anweisung 90.98 wird der Wort-Arbeitsbereich—1 abgefragt, ob ein Aufhebungs-Code oder irgendein anderer Code "r", "N",*, * ., usw. vorhanden ist." Der Ablauf plan zeigt das Ergebnis eines Aufhebungscodes"r" in COD-7 wodurch bei 9099 die Aufhebung auf die Vater-Stammdatei arge-
wendet wird, falls dies der Fall ist. Die Anweisungen 9170 derFig. 71 wie 9018 - 9021 der Fig. 5Λ bringen Leerräume in ■ den Arbeitsbereich der Vater-Stammdatei im Arbeitsbereich 34; sodann viird Anweisung 9098 ausgeführt. Bei der Anweisung 9096» die nach einer Prüfung des Wort -Arbeitsbereichs-Eins durchgeführt wird., wird nachgesehen, ob das "Aufheben" tatsächlich die durchzuführende Tätigkeit ist/ falls dies nicht festgestellt wurde, wird bei 9060 und 9061 der Fig. 60 bezüglich der Änderungswörter geprüft, die in einem logischen Datensatz der Vater-Stammdatei eingefügt, gelöscht oder ausgetauscht werden, nämlich bezüglich AUSWORT, EINWORT, TAUSCH-
409835/0649
WORT. Mit jedem dieser Anderungswörter ist es notwendig, bei Anweisimg 9100 der Fig. 66 ein neues Programm zu beginnen.. Es kann festgestellt werden, daß die Ablaufplan-Hinweise "Bill-Ill", "BiIl-I12" und "BiIl-I13", Anweisungen 9059, 9060 und 906I derFig.. 60 Programmeodier-Bezeichnungen für bestimmte Zeichenpositionen in RCR sind, die nicht genau erläutert werden müssen, um die Ausführungsbeispiele der Erfindung zu verstehen. Weiterhin, wo sioh die Ablaufplan-Anweisungen auf "BiIl-..." „beziehen, bezieht sich dieses auf irgendeine Art von benachbart angeordneten Zeichen im eingegebenen logischen Datensatz l4o, alpha-numerisch, oder ein Tätigkeitswort von der Feldsuch-Steuerung, Tabelle 8.0;andererseits bezieht sich "COD-..." auf ein Kennzeichen nur innerhalb des eingegebenen logischen Datensatzes; deshalb sind in Fig. 4o die "COD-..." die Kennzeichen-Glieder im logischen Datensatz, die zu ihren entsprechenden Speicherzellen gebracht werden.
Bis hierher sind die Glieder der verschiedenen Ordnungen der Kennzeichen aus logischen Datensätzen der Mutter-Ä'nderungsdatei und der Vater-Stammdatei gleich oder angepaßt. Bei Anweisungen 9100 - 9103 der Fig. 66 und 67 wird geprüft, daß alle notwendigen Bedingungen gleichzeitig erfüllt werden in Bezug auf Wörter, was bedeutet, daß dort eine von drei verschiedenen Operationen vorhanden ist, die gefordert werden kann.
(i) AUSWORT: Die Entfernung eines Wortes aus einem logischen Datensatz der Vater-Stammdatei,
(ii) EINWORT: Die Einfügung eines Wortes in einen logischen Datensatz der Vater-Stammdatei,
(iii) TAUSCHWORT:Das Ersetzen eines Wortes im logischen Datensatz der Vater-Stammdatei mit einem verschiedenen Wort, so daß das verschiedene Wort in diesem logischen Datensatz erscheint, wenn der Datensatz einen Teil der Sohn-Stammdatei bildet.
4098 3 5/0649
Fall 1: EINWORT
Bei Anweisung 9100 der Fig. 66 wird der EINWORT-Code geprüft, der einzelne Stern im Textteil des logisehen Änderungs-Datensatzes j und bei 9101 von Fig. 67 wird weiterhin geprüft der Datensatz für dieses "Schlüsselwort", das mit EINWORT verbunden ist, so daß das EINWORT durch das Schlüsselwort an die korrekte Lage in der Vater-Stammdatei angeschaltet wird. Mit Bezug auf Fig. % z.B. falls das EINWORT "Jacob" eingefügt werden muß in die Vater-Stammdatei nach einem spezifischen Wort, das als "Schlüsselwort" der Vater-Stammdatei bezeichnet wird, werden das EINWORT und das Schlüsselwort wie gezeigt in einem logisehen Datensatz der Mutter-Änderungsdatei aufgezeichnet (zusammen mit nicht gezeigten Kennzeichen). Es ist das Schlüsselwort, naclnjdem in der Vater-Stammdatei gesucht wird, so daß die Position bei der Lage des EINWORTES Jacob bestimmt werden kann. Mit Bezug auf Flg., 68 werden bei Anweisung 9102 die Zeile der Vater-Stammdatei und die .Mutter-Änderungsdatei auf Gleichheit geprüft. Bei 9105 wird diese Zeile der Vater-Stammdatei bei Gleichheit analysiert, und zwar Wort für Wort für das Schlüsselwort, so daß das EINWORT in die Vater-Stammdatei in der richtigen Position eingefügt werden kann, wie oben erklärt ist, d.h. nächst benachbart zum Schlüsselwort. Wenn diese Bedingung erfüllt ist, d.h. das Schlüsselwort gefunden, wird ein neues Steuerzeichen, FLAG-IN* ' bei 91O4 eingerichtet und auf Eins gesetzt. Dieses FLAG-IN zeigt genau an, wann das EINWORT auf dem logisehen Datensatz der Vater-Stammdatei ausgeführt werden muß. Bei Anweisung 9105 wird der Änderungs-Datensatz entfernt und anschließend der nächste Änderungs-Datensatz in den Arbeitsbereich eingefügt, der die Vergangenheitsprüfung enthält, zusammen mit dem ElNWORT, d.h. die Durchführungs-Anweisungen 9004- - 9008 von Fig. 53· Bei Anweisung 9106 wird das Schlüsselwort, das aus" der Mutter-
40983570649
Änderung WR kommt, gegenüber dem Schlüsselwort geprüft, das in der Vater-Stammdatei WM bleibt. Wenn keine Anpassung vorhanden ist, wird nach 91OÖA fortgeschritten, indem 1. zum Wortzeiger WPM in der Vater-Stammdatei addiert wird, bis der logi-' sehe Datensatz der Vater-Stammdatei Wort für Wort gesucht worden ist und das Schlüsselwort gefunden ist. Wenn eine Schlüsselwort-Anpassung erhalten ist, wird RIM = O gesetzt bei 9107 und zur Anweisung 9108 fortgeschritten und das EINWORT in die Stammdatei eingefügt (Schlüsselwort (i) + 1 = EINWORT) und nach Anweisung 9068 der Fig. 6l fortgeschritten, um den Datensatz der geänderten Stammdatei in die Sohn-Stammdatei 55 auszudrucken.
Fäll 2: AUSWORT ·
Wenn nun bei Anweisung 910^ oben die folgenden Bedingungen, Stern, EINWORT, Markierungszeichen nicht erfüllt sind, siehe Fig. 7, wird zu den Anweisungen 9III und 9112 von Fig. 66 und 67 fortgeschritten und auf Stern, Stern, AUSWORT, Markierungszeichen geprüft, siehe Fig. 8. Bei Anweisungen 9III und 9112 wird geprüft, ob die Zeile der Mutter-Änderungsdatei, die den doppelten Stern hat, diese Zeile der Vater-Stammdatei anpaßt (die dieselben hierarchischen Nummern hat). Wenn die Antwort ja ist, wird ein neues Markierungszeichen-Register gesetzt, FLAG-OUT = 1, und zwar durch Anweisung 9HJ5> und es werden Leerräume in den logischen Änderungs-Datensatz gebracht und der nächste logische Änderungs-Datensatz gelesen, der die Vergangenheitsprüfung enthält, und zwar durch die Durchführungs-Anweisung 9114. Bei Anweisung 9115 wird geprüft, ob das Wort in der Vater-Stammdatei bei PWM gleich AUSWORT ist, und falls nicht, wird zur Anweisung bei 9H5A gegangen und durch Addition von 1 bei 9115A zu PWM positionell Wort für Wort über den eingegebenen logischen Datensatz der Vater-Stammdatei übertragen,um dann über 9115 zurAnv/eisung 9116 zurückzukehren. Durch dieses Programm wird Wort für Wort über den logischen Datensatz der Vater-Stammdatei weitergegangen,
409835/0649
bis eine Anpassung gefunden ist, die anzeigt, daß das nun angeschaltete V/ort in der Vater-Stammdatei ein A US WORT ist. Dann werden durch Anweisung 9116Leerräume indas AUSWORT der'Vater-Stammdatei gegeben und die 'Vater-Stammdatei (-PWM) gedruckt und somit die Vergangenheitsprüfung durch Ausführen yl 17j bei Anweisung 9H8 wird; ein .Lesen des nächsten logischen A'nderungs-Datensatzes durchgeführt, indem 9004 bis 9008, Fig. 53.» ausgeführt werd.en> und sodann wird zur Anweisung 9036 von Fig. 57 zurückgekehrt.
' Nun ist aus den obigen beiden Beispielen mit Bezug auf EINWORT -und AUSWORT ersichtlich, daß dann, wenn eine EINWORT- und AUSWORT-Funktion durchgeführt werden, die Länge der Nummer aus Zeichen im logischen Datensatz geändert wird, entweder erhöht (EIlWORT) oder erniedrigt (AUSWORT) .,Wie später gezeigt wird, wird diese Änderung in einem Unterprogramm vorgenommen. "-'.-.- " .
Fall 3: TAUSCHWORT-. - '_""-._ '';]. J- _■/■ ■■■'"':
In diesem Fall treten EINWÖRT und AUSWORT zusammen auf. .---Zuerst wird geprüft, ob die beiden Bedingungen dieser .Weisungs—Änderung existieren, nämlich ein einzelner Stern, ge- : folgt von EINWORT, gefolgt von einem Markierungszeichen, gefolgt von zwei Sternen, gefolgt von AUSWORT, gefolgt von einem Markierungszeichen, die genauer in Fig, 9 dargestellt ist. In diesem Fall muß nur jenes Wort in dem logischen Datensatz der "Vater-Stammdatei gefunden .-werden, der mit der Zeile verbunden ist, da der logische. Datensatz der Stammdatei das ÄUSWORT enthält, und das AÜSWORT kann als Schlüsselwort verwendet werden. Nun wird durch Anweisung 9122 der Fig. 67 eine Eins zum Markierungszeichen CHANCE gebracht und der Arbeitsbereich einem Wortspeicher-Änderuhgsbereich WSR heu zugeteilt.. Der nächste Schritt ist das Spurhalten von AUSWORT, so daß es auf das Spool 36 ausgegeben wird, zusammen mit dem Kenn- ■ zeichen, das mit diesem Wort für visuelle Prüfung verbunden ist· danach wird das EINWORT in die Stammdatei gegeben, wo
40 98 3 5/06 49
zuvor AUSWORT vorhanden war. Das EINWORT hat auf der einen Seite zwei Sterne angeordnet, auf der anderen Seite ein Markierungszeichen, es befindet sich in der Mutter-Ä'nderungsdatei, wie bereits früher anhand Fig. 9 dargestellt wurde. Bei Anweisung 9123 .von Fig. 67 werden die Wortlängen von EINWORT und AUSWORT für jede mögliche Längenänderung gleich gemacht (es ist ersichtlich, daß dann, wenn das EINWORT zu lange ist, es den logischen Datensatz der Sohn-Stammdatei überlaufen kann, weshalb es an seinem Ende abgebrochen wird, so daß ein Verlust an Information und Einheitlichkeit entsteht; wenn das EINWORT andererseits kürzer ist als das ÄUSWORT, ist ein größerer Abstand zwischen dem EINWORT und dem nächst folgenden Wort in der Sohn-Stammdatei vorhanden, so daß dann, wenn es angezeigt oder ausgedruckt wird, der logische Datensatz nicht übersichtlich ist). Wenn bei Anweisung 9123 EINWORT und AUSWORT nicht angepaßt sind, wird 1 bei Anweisung 9124 zu WM(I) addiert, um die Vater-Stammdatei Wort für Wort durchzugehen und zu versuchen, eine Anpassung zu erzeugen. Wenn eine Anpassung vorhanden ist, wird bei Anweisung 9127 die Längendifferenz zwischen EINWORT und AUSWORT festgestellt. Bei 9125 zählt ein spezieller Zeichen-Zeilen-Zähler, der "Zeile-Stamm-sub-l" LM(I), die Zeichenposition der ganzen Zeile, um zu bestimmen, ob der logische Datensatz der Sohn-Stammdatei mit EINWORT größer oder kleiner ist als die erlaubte Länge des logischen Datensatzes, d.h. 72.
Mit Bezug auf TAUSCHWORT nämlich "councillors" (Berater) für "officers" (Bediensteter) in Tabelle 9.5, Seite 9, Zeile {(12)(1)(27)(5)j , das Paragraph 12, Absatz 27 der Stammdatei betrifft, wird nun mit Hilfe der obigen und folgenden Diskussion geändert.
Bei genauer Diskussion dieses Verfahrens ergibt sich, daß es bei Anweisungen 9125 - 9127 durchgeführt wird, wenn ein spezielles Speicherregister mit dem Namen "Differenz" eröffnet wird, indem die unterschiedliche Länge zwischen EINWORT und
409835/0649
AUSWORT gefunden wird. Bei Anweisung 9128 von Fig. 69 wird geprüft, ob die Differenz Null ist (EINWORT und AUSWORT wären dann gleich lang), und es wird ein Wechsel vorgenommen (M = das Wort der neuen Änderungsdatei und in WNBS gespeichert). Das EINWORT wird in WMBS gebracht und bei Anweisung 9I30 von 9OI8 - 9021 der Fig. 54 ausgeführt, um die Sohn-Stammdatei auszudrucken,· sodann bei 9015 fortgesetzt, um in den Wort-Arbeitsbereich-l einen neuen logischen Datensatz der Vater-Stammdatei einzubringen^ mit MIR = 1. Wenn die Differenz ungleich Null ist, muß geprüft werden, ob sie kleiner ist als bei Anweisung 913OA (EINWORT kleiner in Länge als AUSWORT); deshalb wird ein Wechsel der Wörter EINWORT und AUSWORT vorgenommen und der logische Datensatz der Ä'nderungs-Stammdatei· bei Anweisung 9150 gekürzt, indem das Markierungszeichen oder die Maske eingestellt wird, so daß das Wort bestimmte Feldpositionswerte hat, d.h. WNSBj anschließend wird auf 915I zu den Ausführungs-Anweisungen 9018 - 9021 übergegangen. Anschließend wird bei Anweisung 9152 der Fig. 70 RIM = 0 eingestellt und dann auf 9015 zurückgekehrt.
Wenn jetzt die Differenz größer als Null ist, also die Anweisung 9132 vorliegt (wobei die Zeile der Stammdatei (I) gleich der Zeile der.Stammdatei (i) plus der Differenz ist), muß man ermitteln, wie groß der neue logische Datensatz für die Sohn-Stammdatei sein wird, wenn das EINWORT in diesem logischen Datensatz anzuordnen ist, und ob tatsächlich dieser logische Datensatz jetzt eine größere Länge als die bevorzugte 72-Zeichen-Länge aufweist. Bei der Anweisung 913^ wird überprüft, ob der Wert dieser Gleichung kleiner als 72 ist, d.h., ob weniger als 72 Zeichen des logischen Datensatzes zur Anordnung auf der Sohn-Stammdatei 55 mit darin eingeordnetem EINWORT vorhanden sind. Wenn der Wert nicht kleiner als 72 ist, wird zur Anweisung 915O übergegangen,dam, wenn er größer als 72 ist, muß ein Ausschluß bzw. eine Justierung des logischen Datensatzes der Stammdatei (und ggf. folgender logischer
4 09835/0649
Datensätze der Stammdatei) vorhanden sein, so daß die Informations-Integrität der Daten aufrechterhalten wird, · wenn EINWORT in die Sohn-S.tammdatei 55 gelangt. Wenn der Wert (I plus Differenz) größer als 72 angelegt ist, wird EINWORT in den " Arbeitsbereich gebracht, der dem logischen Datensatz der Sohn-Stammdatei zugeordnet ist, und es wird·eine neue Speicherung im Arbeitsbereich eröffnet, so daß der Ausgleich dieses logischen Datensatzes (oberhalb 72) dort durch die Anweisung 9136 von Pig. 70 angeordnet werden kann. Diese zusätzliche Speicherung enthält die Zeichen der Differenzlänge des Stararadatei-Zählersj, d.h. (LM-72) und die Zeichen ebenso wie deren Anzahl, die im nächsten logischen Datensatz der Sohn-Stammdatei als ein Ergebnis des "Überlaufs" bekanntlich unterzubringen sind. Nur diejenigen ganzen Wörter, die sich im Speicher des Jogischen Datensatzes der Vater-Stammdatei befinden, und die insgesamt 72 Zeichen (gegebenenfalls mit Zwischenräumen) oder weniger werden von diesem Speicher in den logischen Datensatz der Sohn-Stammdatei als Ergebnis der Anweisung 9150 bewegt, und der Überschuß von 72 (LM-72) bleibt im Speicher; bei der Anweisung 9139 wird der nächstfolgende logische Datensatz der Vater-Stammdatei jetzt in den Arbeitsbereich gebracht, wie anhand des Flußdiagramms bei den Anweisungen 9139* 9140 und 9136 erläutert wird. Dies wird alles zusammen erreicht durch Ausführen und Lesen der Anweisungen 91^7 und 9I38 auf einem neuen logischen Datensatz der Vater-Stammdatei, und in eine Speicher-Restzeile durch die Anweisung 91^6 gebracht bzw. gespeichert. Der Speicher enthält jetzt den Überlauf vom vorhergehenden Datensatz, d.h. LM-72, und zum rechten Ende am nächsten den nächstfolgenden logischen Datensatz von der "Vater-Stammdatei. Danach geht man zur Anweisung 9140 über, um nachzuprüfen, ob diese neue Zeile des logischen Datensatzes der Vater-Datei zusammen mit den zusätzlichen Wörtern vom vorhergehenden logischen Datensatz (was ursprünglich in der Speicher-Rest-Zeile war) eine größere Länge als 72 Zeichen aufweist. Wenn sie kleiner als 72 Zeichen ist, geht man zur Anweisung 915I
409835/0649
-■; 127 - CV :
über, um den Datensatz auszugeben, jedoch andererseits, wenn sie größer als 72 Zeichen ist, muß der Zyklus des Abtrennens der zusätzlichen" Wörter über 72 Zeichen hinaus und ihr Anordnen in der Speicher-Rest-Zeile wiederholt werden, und der Zyklus muß wiederholt werden durch Zurückgehen zur Anweisung 9136, bis der Zyklus so bestimmt ist, daß in der Speicher-: . Rest-Zeile weniger als 72 Zeichen bei der Anweisung 9140 sind. " ". ,' ■".;: ; .-■"■"■-
Es sei jetzt wieder Fig. 60 betrachtet und die Anweisung 906I; wenn diese falsch ist, wird direkt zur Anweisung 9062 übergegangen, um festzustellen, ob die Glieder der hierarchischen Ordnungen der Zeile des logischen Änderungsdatensatzes gleich denen der hierarchischen Ordnungen der Zeile der Vater-Stammdatei sind, und falls dies der Fall ist, wird zur Anweisung 9077 der Fig. 62 übergegangen und das Markierungszeichen RIM=O und Code-EQUAL =1 gesetzt, um dadurch die Anweisung 9078 auszuführen, d.h. 9018 - 902I; d.h., in die Sohn-Stammdatei den geeigneten logischen Datensatz auszudrücken und dann die Zwischenräume in den Arbeitsbereich des logischen Datensatzes der Vater-Stammdatei zur nachfolgenden Verarbeitung zu bewegen^ indem zur Anweisung 9068 von. Fig. 6l übergegangen wird. Auf diese Weise werden die Datensätze tatsächlich ausgegeben. ""■"■.- - ""-,.-"..-■■ "".-/"_
Wenn andererseits die Zeilen nicht gleich sind bei der Anweisung 9062, (NEIN),wird zur Anweisung 906IA. übergegangen, um zu überprüfen, ob die hierarchisch geordneten Kennzeichen des logischen Anderungsdatensatzes kleiner als die der Stammdatei sind, und falls dies festgestellt wird,: wird zur Anweisung 9Ö62A übergegangen, um das Markierungszeichen RIM = 0 zu setzen, und dann zur Anweisung 918O von Fig. 71, wo die Zwischenräume bzw. Durchschüsse in den Speicher des logischen Datensatzes der Stammdatei bewegt werden, wonach aus diesem Speicher in die Sohn-Stammdatei .gedruckt und in den Speicher
40 9 835/06 4
der nächste neue logische Datensatz der Stammdatei eingelesen wird, nachdem RIM = 1 gesetzt worden ist; ansonsten wird zur Anweisung 906IA übergegangen, und wenn die hierarchische Ordnung der Kennzeichen der Änderung größer als die der Stammdatei sind, wird das Steuer-Markierungszeichen RIR — O bei der Anweisung 9063 gesetzt und der logische Änderungsdatensatz in die Sohn-Stammdatei gedruckt, indem zur Anweisung 9068 übergegangen wird, so daß dieses Vorgehen andauert, bis die Vater-Stammdatei und die Änderungs-Datei datenmäßig erschöpft sind, wonach die Sohn-Stammdatei vollständig ist, und wonach die Anweisung 9190 von Fig. 71 endgültig abgewickelt wird, wie bereits beschrieben wurde. Das obige bewirkte das Mischen beim speziellen Mischen 33 als Ergebnis des Einwirkens auf die verschiedenen Sätze der geordneten Kennzeichen sowohl von der Mutter-Änderungs-Datei als auch der Vater-Stammdatei, wie anhand von Fig. 73 - 75, Tabelle 10 und den Ausdrucken der Tabellen 9 erläutert wurde.
409835/0649

Claims (1)

  1. Patentansprüche
    1. Verfahren zum Steuern der Operation eines Rechners in Verbindung mit Datenwörtern für die Darstellung von natürlicher Sprache in freiem Textformat in einer Änderungsund in einer Stammdatei, wobei das Verfahren dazu dient, aus der Änderungsdatei Operatoren, Operanden und Deskriptoren zu bestimmen, und den Datensatz der Änderungsdatei aufzuteilen, und wobei der Rechner enthält: einen Speicher zum Speichern von Daten- und Befehlswörtern unter zugehörigen Adressen; eine Einrichtung zum normalen Steuern der sequentiellen Ausführung von nacheinander adressierten Befehlswörtern; mehrere Register; eine Einrichtung zum Sortieren von Speicher-Datenwörtern in den Registern; eine Einrich- . tung zum Durchführen von .Operationen mit den Datenwörtern und den Speicher-Datenwörtern in den Registern; eine auf die Ausführung eines vorbestimmten Befehls ansprechende Einrichtung, um ein Datenwort in einem vorbestimmten Register zu überprüfen; eine Einrichtung zum,Speichern des Operanden in einem der Register; eine den Operator auf den Operanden anwendende Einrichtung, g e k e η η ze lehnet d u r ch folgende Schritte:
    (a) Bestimmen von Operatoren aus der Änderungsdatei; ' .: ■
    Cb) Kennzeichnen des Operanden in einen aufgeteilten Datensatz aus Sprachtext und in einen Satz aus Gliedern aus hierarchischen Kennzeichen,
    (c): Speichern des Sprachtextes aus Operanden und der geordneten Kennzeichen nach Schritt (b) in Form eines au-fgeteil- - ten Datensatzes. .
    2. Verfahren nach Anspruch 1, gekennzeichnet durch folgende Schritte:
    (a) Bestimmen von Deskriptoren aus der Änderungsdatei und
    409835/0649
    Speichern von Gliedern daraus im Speicher gemäß ihrer
    entsprechenden Ordnung: ' **·,*.
    nach Schritt (B)
    (b) Bearbeiten der Kennzeichen des aufgeteilten DatensatzesV""" und der geordneten Glieder im Speicher nach Schritt (a), um den Satz aus Gliedern der hierarchischen Kennzeichen zu vervollständigen;
    (c) Speichern des Sprachtextes des Operanden und des vollständigen Satzes der geordneten Kennzeichen nach Schritt (b) in Form eines aufgeteilten Datensatzes.
    J5. Verfahren nach Anspruch 2, gekennzeichnet durch folgende Schritte ϊ
    (d) Vergleichen des durch den Speicherschritt (c) gespeicherten Satzes aus geordneten Kennzeichen mit einem Satz aus Kennzeichen eines ebenfalls aufgeteilten Datensatzes der Stammdatei.
    4. Verfahren nach Anspruch 2, gekennzeichnet durch folgende Zusatzschritte:
    (d) Selektives Speichern eines Datensatzes entweder des aufgeteilten Datensatzes der Stammdatei oder des Operanden durch:
    (a) Vergleichen des Satzes aus geordneten Kennzeichen eines Datensatzes der Stammdatei mit jenen eines Datensatzes des Operanden;
    (b) Aufzeichnen jenes Datensatzes, dessen Satz aus Kennzeichen eine niedrigere Ordnung und einen niedrigeren Wert besitzt, auf einem maschinell lesbaren Datenträger.
    5. Verfahren nach Anspruch 2, gekennzeichnet durch folgende zusätzliche Schritte:
    409835/0649
    -■>--/";■"■■ ■":■■
    (d) Selektives Speichern eines Datensatzes entweder des aufgeteilten Datensatzes der Stammdatei oder des Operanden durch:
    (i) Vergleichen des Satzes aus geordneten Kennzeichen eines Datensatzes der Stammdatei mit jenen eines Datensatzes des Operanden;
    (ii) Aufzeichnen jenes Datensatzes, dessen Satz aus Kennzeichen eine niedrigere Ordnung und einen niedrigeren Wert besitzt, auf einen maschinell lesbaren Datenträger, andernfalls Aufzeichnen des Datensatzes des Operanden auf den maschinell lesbaren Datenträger* :
    6. Verfahren nach Anspruch 2, gekennzeichnet durch folgende zusätzliche iterative Schritte; x
    (d) Vergleichen der Ordnung und Werte der Glieder des Satzes aus geordneten Kennzeichen eines Datensatzes der Stammdatei mit jenen eines durch den Speieherschritt (c) gespeicherten Datensatzes des Operanden;
    (e) Aufzeichnen des Datensatzes des Operanden aus dem Vergleiehsschritt (d) auf einen maschinell lesbaren Datenträger, wenn der Vergleichsschritt (d) bedeutet, daß die Ordnung und Werte der Glieder des Satzes aus geordneten Kennzeichen der Stammdatei geringer sind als jene des Operanden, andernfalls Aufzeichnen des Datensatzes der Stammdatei· anschließend ·
    (f) Lesen des nächsten folgenden Datensatzes jener durch den Aufzeichnungsschritt (e) aufgezeichneten Datei.
    7. Verfahren nach Anspruch 2, gekennzeichnet durch folgende zusätzliche iterative Schritte-Cd) Vergleichen der Ordnung und Werte der Glieder des Satzes
    aus geordneten Kennzeichen eines Datensatzes der Stamm- - datei mit jenen eines durch den Speicherschritt (c) gespeicherten Datensatzes des Operanden!
    409835/0649 ν
    (e) Aufzeichnen des Datensatzes des Operanden aus dem Vergleichsschritt (d) auf einen maschinell lesbaren Datenträger, wenn
    (i) der Vergleichsschritt (d) bedeutet, daß die Ordnung und Werte der Glieder des Satzes aus geordneten Kennzeichen der Stairandatei (1) geringer sind als jene des Operanden, oder (2) größer sind als jene des Operanden, jedoch nur bis zum Wert des niedrigst
    geordneten Gliedes, andernfalls Aufzeichnen des Datensatzes der Stammdatei:
    (f) Lesen des nächsten folgenden Datensatzes jener durch den Aufzeichnungsschritt (e) aufgezeichneten Datei..
    der Schritt (A) 8. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daßlf" den Schritt zum Speichern eines den bestimmten Operator darstellenden Codes im Speicher enthält, sowie folgende zusätzlichen iterativen Schritte: *
    (d) Vergleichen der Ordnung und Werte der Glieder des Satzes aus geordneten Kennzeichen eines Datensatzes- der Stammdatei mit jenen eines durch den Speicherschritt (c) gespeicherten Datensatzes des Operanden,·
    (e) Aufzeichnen des Datensatzes des Operanden nach dem Vergleichsschritt (d) auf einem maschinell lesbaren Datenträger, wenn der Vergleichsschritt (d) bestimmt:
    (i) eine Anpassung der Sätze aus Kennzeichen; oder (ii) daß Ordnung und Wert der Glieder des Satzes aus geordneten Kennzeichen der Stammdatei niedriger sind als jene des Operanden, und daß ein vorbestimmter bezeichneter Code im Speicher ist;
    (f) Aufzeichnen des Datensatzes der Stammdatei nach dem Vergleichsschritt (d) auf einem maschinell lesbaren Daten-
    .träger, wenn der· Vergleichsschritt (d) bestimmt, daß Ordnung und Wert der Glieder des Satzes aus geordneten Kennzeichen der Stammdatei höher sind als jene des Operanden.
    40 9835/064 9
    -45 -
    9· Verfahren nach Anspruch 8, gekennzeichnet durch folgende zusätzliche Schritte: ■ .
    (1) Lesen des nächsten folgenden Datensatzes des Operanden nach jedem Aufzeichnungsschritt (e); und
    (2) Lesen des nächsten folgenden Datensatzes der Stammdatei nach
    (i) jedem Aufzeichnungsschritt (f) oder
    (ii) wenn der Vergleichsschritt (d) bestimmt, daß Ordnung und Wert .der Glieder des Satzes aus geordneten Kennzeichen der Stammdatei niedriger sind als jene des Operanden, und wenn ein bezeichneter Code im Speicher ist.
    10. Verfahren zum Steuern der Operation eines Rechners in Verbindung mit Datenwörtern für die Darstellung von natürlicher Sprache in freiem Textformat in einer Änderungs- und in einer Stammdatei, wobei das Verfahren dazu dient, aus der Änderungsdatei Operatoren, Operanden und Deskriptoren zu bestimmen, und den Datensatz der Änderungsdatei aufzuteilen, und wobei der Rechner enthalt: einen Speicher zum Speichern von Daten- und Befehlswörtern unter zugehörigen Adressen; eine Einrichtung zum normalen Steuern der sequen-. tiellen Ausführung von nacheinander adressierten Befehlswörtern· mehrere Register; eine Einrichtung zum Sortieren von Speicher-Datenwörtern in den Registern; eine Einrichtung zum Durchführen von Operationen mit den Datenwörtern und ' den Speicher-Datenwörtern in den Registern; eine auf die Ausführung eines vorbestimmten Befehls ansprechende Einrichtung, um ein Datenwort in einem vorbestimmten Register zu überprüfen; eine Einrichtung zum Speichern des Operanden in einem der Register; eine den Operator auf den Operanden anwendende Einrichtung, g e k e η η ze lehnet durch folgende Schritte:
    409835/0649
    (a) Bestimmen von Operatoren aus der Änderungsdatei;
    (b) Bestimmen von Deskriptoren aus der Änderungsdatei und Speichern von Gliedern daraus im Speicher gemäß ihrer entsprechenden Ordnung;
    (c) Speichern des Operanden in einen aufgeteilten Datensatz aus Sprachtext und in einen Satz aus Gliedern der hierarchischen Kennzeichen aus dem Speicher des Bestimmungsschrittes (b).
    11. Verfahren nach Anspruch 10, dadurch gekennzeichnet, daß der Bestimmungsschritt (a) zusätzlich Operanden bestimmt und den Operator in einen eindeutigen vorbestimmten Befehlscode überträgt, und daß der Speicher schritt (c) den Befelilscode und den Operanden in den aufgeteilten Datensatz speichert.'
    12. Verfahren nach Anspruch 11, dadurch gekennzeichnet, daß der Bestimmungsschritt (a) wenigstens Operatoren und einen Operanden aus wenigstens zwei Wörtern bestimmt und die Operatoren in entsprechende vorbestimmte eindeutige Be-fehlscodes überträgt, und daß der Speicherschritt (c) einen dieser Befehlscodes mit wenigstens einem Wort des Operanden in den aufgeteilten Datensatz speichert, ferner den anderen· Befehlscode mit wenigstens einem der verbleibenden Wörter des Operanden..
    13. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß der Bestimmungsschritt (A) folgende Schritte enthält:
    (i) Speichern von benachbarten Wörtern aus einem Teil der Änderungsdatei, die wenigstens einen Operator enthält in einem Zwischenspeicher; und
    (ii) iteratives Suchen der Wörter im Zwischenspeicher durch aufeinanderfolgendes Vergleichen derartiger Wörter mit einem Satz aus Steuerwörtern, wobei die Steuerwörter
    409835/0649
    236Q023
    wenigstens in einen Operator-Untersatz aufgeteilt sind; anschließend ;
    (iii) nach einer Anpassung der Wörter Auswählen jenes Operator-Befehlscodes aus dem Operator-Untersatz, der eindeutig zu dem so gefundenen Operator gehört.
    l4. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß der Bestimmungsschritt (A) folgende Schritte enthält:
    (i) Speichern von .benachbarten Wärtern aus.einem Teil der Ä'nderungsdatei, die.wenigstens einen Operator in einem Zwischenspeicher enthält, dann
    (ii) iteratives Suchen der Wörter-im Zwischenspeicher durch aufeinanderfolgendes Vergleichen derartiger Wörter mit einem Satz aus Steuerwörtern, wobei die S.teuerwörter in wenigstens einen Deskriptor-Untersatz aus Wörtern von geordneter Bedeutung aufgeteilt sind, anschließend, nach einer Anpassung der Worter im ZviischenspeiGher mit dem Deskriptor-Untersatz, :
    ■■-.:- ORIGINAL INSPECTED
    Λ09835/06Λ9 -" : Λ
    (iii) Speichern des nächsten Wortes des Zwischenspeichers in ein Deskriptor-Register gemäß der Ordnung des angepaßten Deskriptorwortes.
    15. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß der Bestimmungsschritt (A) folgende Schritte enthält:
    (i) aufeinanderfolgendes Speichern angrenzender Wörter aus einem Teil der Ä'nderungsdatei in einem ersten Zwischenspeicher und Zuordnen zu jedem so gespeicherten Wort einen eindeutigen ersten Zeiger;
    (ii) Auswählen jener Wörter im ersten Zwischenspeicher, die
    aus mehr als einer vorbestimmten Anzahl von zeichen be- - stehen;
    (iii) Speichern der im Schritt (ii) ausgewählten Wörter zusammen mit ihren entsprechenden eindeutigen Zeigern in einem zweiten Zwischenspeicher und Zuordnen zu jedem so gespeicherten Wort und Zeiger einen eindeutigen zweiten Zeiger.
    16. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß der Bestimmungsschritt (A) folgende Schritte enthält:
    (i) aufeinanderfolgendes Speichern angrenzender Wörter aus einem Teil der Änderungsdatei in einem ersten Zwischenspeicher und Zuordnen zu jedem so gespeicherten Wort einen eindeutigen ersten Zeiger;
    (ii) Auswählen jener Wörter im ersten Zwischenspeicher, die aus mehr als einer vorbestimmten Anzahl von Zeichen bestehen;
    (iii) Abbrechen der im Schritt (ii) ausgewählten Wörter und Zuordnen zu diesem abgebrochenen Wort einen eindeutigen zweiten Zeiger, anschließend Speichern des abgebrochenen Wortes und des zweiten Zeigers in einem zweiten Zwischenspeicher.
    40 9 8 35/0649
    2360Q23
    oder 2
    17. Verfahren nach Anspruch ΐζ~ dadurch gekennzeichnet, daß der Bestimmungsschritt (A) folgende Schritte enthält:
    (i) aufeinanderfolgendes Speichern angrenzender Wörter aus einem Teil der Änderungsdatei in einem ersten Zwischenspeicher und Zuordnen zu Jedem so gespeicherten Wort einen eindeutigen ersten Zeiger;
    (ii) Auswählen jener" ersten Zeiger und Wörter, deren Wörter aus mehr als einer vorbestimmten Anzahl von Zeichen bestehen;
    (iii) Abbrechen der im Schritt (ii) ausgewählten Wörter und Zuordnen eines eindeutigen zweiten Zeigers zu diesen Wörtern und ersten Zeigern; und
    (iv) Speichern des abgebrochenen Wortes, dejs ersten Zeigers und des eindeutigen zweiten Zeigers in einem zweiten Zwischenspeicher, wobei der zweite Zeiger das abgebrochene Wort in den zweiten Zwischenspeicher schaltet und ebenso der ersten Zeiger, d.h. den Ort des (nicht abgebrochenen) Wortes im ersten Zwischenspeicher ,bezeichnet.
    409835/0649
    -W-
    l8. Verfahren nach Anspruch IJ, dadurch gekennzeichnet, daß der Bestimmungsschritt (λ) folgende Schritte enthält:
    (v) iteratives Suchen der abgebrochenen Wörter des zweiten Zwischenspeichers durch aufeinanderfolgendes Vergleichen der abgebrochenen Wörter mit einem Satz aus Steuerwörtern, und nach einer Anpassung;
    (vi) Schalben des ersten Zeigers des angepaßten, abgebroche nen Wortes, anschließend
    409835/0649
    (vii) Vergleichen des durch den ersten Zeiger geschalteten Wortes im ersten Zwischenspeicher mit der Steuerwort-Anpassung in Sehritt (ν)..
    19. Verfahren nach Anspruch 2, g e k en η ζ ei c h net d u*r c h einen ersten Schritt zum Speichern von vorbestimmten Wortgruppen in einem Steuerwortspeicher_, einschließlich eines Dateinamens und einer zugehörigen Dateinummer in einem Satz aus Steuerwörtern, wobei ein Deskriptor^Untersatz von geordneter Bedeutung enthalten ist, und wobei der Bestimmungsschritt (Ä) folgende Schritte enthält:
    (i) Speichern von Wörtern in einem Zwischenspeicher aus einem Teil der Änderungsdatei, die wenigstens einen Deskriptor enthält, und dann i
    (ii) Speichern vorbestimmter Wortgruppen als Deskriptor-Untersatz der Steuerwörter in Matrixform, ,
    (iii) iteratives suchen der Wörter des Zwischenspeichers durch aufeinanderfolgendes Vergleichen derartiger Wörter mit jenen in dem Satz aus Steuerwörternj anschließend, wenn ein Wort im Zwischenspeicher an ein Wort aus einem Dateinamen angepaßt ist, Schalten, dieses Zwischenspeicher-Wo-rtesj anschließend Wiederholen dieses Unterschrittes (iii) und, falls das nächste Wort des Zwischenspeichers angepaßt ist,Wiederholen dieses Unter-Unterschrittes, bis der Dateiname angepaßt ist; anschließend Speichern der Dateinummer, andernfalls Rückkehren zu jenem Wort des Zwischenspeicher-Schalters durch diesen Untef-Unterschritt und Anpassen des-Wortes;-.des. Zwischenspeichers" an-"-ein" anderes Wort im Satz der Steuerwörter* ' ~' ;.
    • mit-i" ■ V 20. Verfahren nach Anspruch 15^ gekennzeichnet durch folgende
    weitere Schritte:
    4098 35/06 49
    (iv) Auswählen einer vorbestimmten, kennzeichnungsfähigen Gruppe von Wörtern aus der Anderungsdatei gemäß dem Operationscode nach Schritt (iii), und Speichern dieser Wörter als einen der Teile des aufgeteilten Datensatzes nach Schritt (C).
    ,mit 2
    21. Verfahren nach Anspruch \~% gekennzeichnet durch folgenden
DE2360023A 1972-12-01 1973-12-01 Anordnung und verfahren zum fortschreiben von textdaten Pending DE2360023A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US31141272A 1972-12-01 1972-12-01

Publications (1)

Publication Number Publication Date
DE2360023A1 true DE2360023A1 (de) 1974-08-29

Family

ID=23206765

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2360023A Pending DE2360023A1 (de) 1972-12-01 1973-12-01 Anordnung und verfahren zum fortschreiben von textdaten

Country Status (3)

Country Link
AU (1) AU6289173A (de)
DE (1) DE2360023A1 (de)
GB (1) GB1458510A (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6126176A (ja) * 1984-07-17 1986-02-05 Nec Corp 言語処理用辞書
GB2190772A (en) * 1986-05-05 1987-11-25 David Martin Menne Data storage/retrieval
JPH06309314A (ja) * 1993-04-19 1994-11-04 Fuji Facom Corp 二階層文書の処理方法

Also Published As

Publication number Publication date
AU6289173A (en) 1975-05-29
GB1458510A (en) 1976-12-15

Similar Documents

Publication Publication Date Title
DE3587501T2 (de) Gerät, Verfahren und Struktur zur Umwandlung eines Dokumentes einer Struktur in ein Dokument einer anderen Struktur.
DE2226290C2 (de) Vorrichtung und Verfahren zum Darstellen von Information auf einer zyklisch auffrischbaren Anzeigevorrichtung
DE3685671T2 (de) Aufzeichnungs- und wiederauffindungsverfahren fuer chemische strukturdaten.
DE3852199T2 (de) Rechnereingabe durch Farbcodierung.
DE2712575C2 (de) Assoziatives Speichersystem in hochintegrierter Halbleitertechnik
DE3047251A1 (de) Rechner
EP0762334B1 (de) Verfahren zum Erzeugen eines Druckbildes, welches in einer Frankiermaschine auf einen Träger gedruckt wird
DE2717976A1 (de) Computer mit einer anordnung zur veraenderung der arbeitsumgebung des computers
DE2801610A1 (de) Verfahren zum definieren von anfangswerten fuer die textverarbeitung
DE3209187C2 (de) Verfahren zur Darstellung eines Textes auf einer einzeiligen Anzeigevorrichtung eines Texterstellungsgerätes
DE3736455A1 (de) Hierarchisches ablagesystem
DE3234892C2 (de)
DE2360023A1 (de) Anordnung und verfahren zum fortschreiben von textdaten
DE2641971A1 (de) Digitale tisch-buchungs- und -rechenmaschine
DE1474042C3 (de) Datenspeichersystem zur Ein- und Ausspeicherung von in Ketten zusammengefaßten Daten unterschiedlicher Feldlänge
DE1221037C2 (de) Verfahren zur Speicherung hierarchisch geordneter Datenketten und Anordnung zur Durchfuehrung dieses Verfahrens
DE1549420A1 (de) Programmvorrichtung fuer einen elektronischen Rechner
DE3128794A1 (de) Verfahren zum auffinden und abgrenzen von buchstaben und buchstabengruppen oder woertern in textbereichen einer vorlage, die ausser textbereichen auch graphik-und/oder bildbereiche enthalten kann.
DE2748859C3 (de) Schaltungsanordnung zum Speichern eines Textes
DE1449584A1 (de) Anordnung zur UEbertragung von Daten einer Loch- oder Magnetkarte in eine Datenverarbeitungsanlage oder umgekehrt
DE3714514A1 (de) Vorrichtung und verfahren zur textverarbeitung
DE2613703C2 (de) Schaltungsanordnung zum Übersetzen von Programmtexten
DE3110297A1 (de) Anzeigevorrichtung
DE3616529C2 (de)
DE2451984C2 (de) Datenverarbeitungsanlage

Legal Events

Date Code Title Description
OHJ Non-payment of the annual fee