-
HINTERGRUND
DER ERFINDUNG
-
Die
vorliegende Erfindung bezieht sich auf ein System und auf ein Verfahren
zum Bereitstellen von Routenführungsinformationen
für einen
Endbenutzer eines Navigationsanwendungsprogramms.
-
Es
stehen computergestützte
Navigationsanwendungsprogramme zur Verfügung, die Endbenutzern verschiedene
Navigationsfunktionen und Merkmale bieten. Einige computergestützte Navigationsanwendungsprogramme
sind in Navigationssystemen enthalten, die in Fahrzeugen installiert
sind, wie z. B. Automobilen, Lastwagen, Bussen und dergleichen.
Diese fahrzeugeigenen Systeme können
Endbenutzern, wie z. B. Fahrern der Fahrzeuge, in denen die Navigationssysteme
installiert sind, verschiedene Navigationsfunktionen zur Verfügung stellen.
Zum Beispiel sind einige Navigationsanwendungsprogramme fähig, eine
optimale Route für
die Fahrt über
Straßen
zwischen Orten in einem geographischen Gebiet zu bestimmen. Unter
Verwendung einer Eingabe von einem Endbenutzer und optional von
Ausrüstung,
die einen physikalischen Ort bestimmen kann (wie z. B. ein GPS-System),
kann ein Navigationsanwendungsprogramm verschiedene Routen zwischen zwei
Orten untersuchen, um eine optimale Route für die Fahrt von einem Ausgangsort
zu einem Zielort in einem geographischen Gebiet zu bestimmen. Das
Navigationsanwendungsprogramm kann anschließend dem Endbenutzer Informationen über die
optimale Route in Form von Anweisungen zur Verfügung stellen, die die Manöver identifizieren,
die vom Endbenutzer ausgeführt
werden müssen,
um vom Ausgangsort zum Zielort zu gelangen. Die Anweisungen können die
Form sichtbarer und/oder hörbarer
Anweisungen annehmen, die längs des
Weges zur Verfügung
gestellt werden, wenn der Endbenutzer die Route abfährt. Einige
Navigationsanwendungsprogramme sind fähig, detaillierte Karten auf
Computeranzeigevorrichtungen anzuzeigen, die die Routen zu Zielen,
die auszuführenden
Manövertypen
an verschiedenen Orten längs
der Routen, Orte von bestimmten Typen von Merkmalen und dergleichen
angeben.
-
Zusätzlich zu
fahrzeugeigenen Navigationssystemen werden auch computergestützte Navigationsanwendungsprogramme
auf verschiedenen anderen Arten von Computer-Hardwareplattformen
und mit anderen Arten von Computerarchitekturen zur Verfügung gestellt.
Zum Beispiel können
Navigationsanwendungsprogramme auf Personalcomputern, einschließlich Schreibtischcomputern
und tragbaren Computern, zur Verfügung gestellt werden. Computergestützte Navigationsanwendungsprogramme
können
auch auf Netzwerken, einschließlich
drahtlosen Netzwerken und dem Internet, zur Verfügung gestellt werden. Computergestützte Navigationsanwendungsprogramme
können
ferner auf tragbaren Computergeräten
enthalten sein, wie z. B. persönlichen
digitalen Assistenten, Telephonen, Funkrufempfängern und dergleichen. Außerdem können computergestützte Navigationsanwendungsprogramme
auf Spezial-Elektronikgeräten
enthalten sein, wie z. B. persönlichen
Navigationssystemen.
-
Um
diese und andere Navigationsfunktionen zur Verfügung zu stellen, verwendet
das Navigationsanwendungsprogramm geographische Daten. Die geographischen
Daten können
in Form einer oder mehrerer Datenbanken vorhanden sein, die Daten
enthalten, die physikalische Merkmale in einem geographischen Gebiet
repräsentieren.
Die geographische Datenbank kann Daten enthalten, die die Straßen und
Kreuzungen in einem geographischen Gebiet repräsentieren, und kann ferner
Informationen bezüglich
der repräsentierten Straßen und
Kreuzungen im geographischen Gebiet enthalten, wie z. B. Abbiegebeschränkungen
an Kreuzungen, Geschwindigkeitsbeschränkungen längs der Straßen, Straßennamen
der verschiedenen Straßen, Adressbereiche
längs der
Straßen,
und dergleichen.
-
Obwohl
Navigationsanwendungsprogramme viele wichtige Merkmale zur Verfügung stellen,
bleibt weiterhin Raum für
Verbesserungen. Ein Bereich, in dem Raum für Verbesserungen ist, betrifft
die Bereitstellung von sinnvollen Manöverinformationen für den Endbenutzer.
Wenn z. B. ein Navigationsanwendungsprogramm Manöveranweisungen dem Endbenutzer
zur Verfügung
stellt, kann es nützlich
sein, Informationen über die
Namen der beim Manöver
betroffenen Straßen
zur Verfügung
zu stellen (z. B. "bei
der kommenden Kreuzung mit der Ersten Straße leicht rechts abbiegen,
um auf der Hauptstraße
zu bleiben"). Einige
Straßen
sind jedoch nicht benannt. Um dementsprechend aussagekräftigere
Manöveranweisungen
zur Verfügung
zu stellen, die mehr Einzelheiten enthalten, ist es notwendig, die
Verfügbarkeit,
Qualität
und den Typ von Informationen, die über die repräsentierten
physikalischen geographischen Merkmale verfügbar sind, zu berücksichtigen.
-
Ein
weiteres Beispiel eines Bereiches, in welchem Raum für Verbesserungen
ist, betrifft die Bereitstellung von Manöveranweisungen in unterschiedlichen
Sprachen. Zum Beispiel kann eine Person, die ein Mietautomobil mit
einem Navigationssystem fährt,
wünschen,
hörbare
Manöveranweisungen
in Englisch zur Verfügung
gestellt zu bekommen. Ein weiterer Fahrer des gleichen Mietautomobils
kann wünschen,
dass das Navigationssystem hörbare
Manöveranweisungen
in spanischer Sprache zur Verfügung
stellt. Alternativ kann ein weiterer Fahrer des gleichen Mietautomobils
wünschen,
dass die Manöveranweisungen
vom Navigationssystem als Text in englischer Sprache mit Graphik
auf einem Anzeigebildschirm bereitgestellt wird. Es wäre daher vorteilhaft,
die Vorlieben aller dieser verschiedenen Fahrer mit dem gleichen
Navigationssystem im gleichen Automobil zu berücksichtigen, während weiterhin
Manöveranweisungen
zur Verfügung
gestellt werden, die detailliert und aussagekräftig sind.
-
Eine
weitere Betrachtung bezieht sich auf die Bereitstellung von Routenführungsmerkmalen
auf einem Navigationsanwendungsprogramm, das auf einem Personalcomputer
läuft.
Wenn der Endbenutzer ein Navigationsanwendungsprogramm auf einem
Personalcomputer laufen lässt,
kann er wünschen,
die Manöveranweisungen
ausgedruckt oder für
die spätere
Verwendung auf einer Diskettendatei gespeichert zu bekommen. In
dieser Situation müssen
die Manöveranweisungen
in geeigneter Weise für
den Ausdruck bearbeitet und formatiert werden, oder in einem brauchbaren
Dateiformat geliefert werden.
-
Andere
Betrachtungen gelten, wenn das Navigationsanwendungsprogramm auf
einem tragbaren Computergerät
betrieben wird, wie z. B. einem persönlichen digitalen Assistenten.
In dieser Situation kann der Endbenutzer wünschen, die Manöveranweisungen
auf einem Anzeigebildschirm der Vorrichtung zur Verfügung gestellt
zu bekommen. Wenn das Navigationsanwendungsprogramm über ein
Telephon zur Verfügung gestellt
wird, kann der Endbenutzer wünschen,
die Manöveranweisungen
hörbar
als Sprachnachricht oder auf einem Anzeigebildschirm des Telephons
zur Verfügung
gestellt zu bekommen.
-
Da
es verschiedene Möglichkeiten
gibt, wie die Endbenutzer Manöveranweisungen
zur Verfügung
gestellt bekommen möchten,
gibt es vorzugsweise verschiedene Möglichkeiten, die Manöveranweisungen
wiederzugeben. Da jedoch diese verschiedenen Arten von Vorrichtungen
unterschiedliche Fähigkeiten
und Benutzerschnittstellen aufweisen, war es schwierig, ein Navigationsanwendungsprogramm
zu schaffen, das aussagekräftige
Routenführungsmerkmale
zur Verfügung
stellt, die alle diese verschiedenen Arten von Vorrichtungen berücksichtigen
können.
-
Dementsprechend
besteht Bedarf an einem Programm, das die Lieferung aussagekräftiger Informationen
an einen Endbenutzer eines Navigationsanwendungsprogramms erleichtert.
-
Ein
weiteres Gebiet, auf dem Bedarf an einer Verbesserung besteht, betrifft
die Bereitstellung eines Universal-Routenführungsmoduls oder -werkzeugs,
das leicht in einer Vielzahl unterschiedlicher Software- und Hardwareumgebungen
und Plattformen verwendet werden kann, ohne die Notwendigkeit von
extensiven Überarbeitungen
und kundenspezifischen Anpassungen.
-
US 5808566 offenbart ein
Verfahren und ein System, die Token (Kurzzeichen) zum Bereitstellen
von Routenführungsinformationen
von einer Basiseinheit für
eine entfernte Einheit verwenden. Es wird eine Anfrage von der entfernten
Einheit zur Basiseinheit gesendet. Die Basiseinheit berechnet die
angeforderten Führungsinformationen
und sendet diese zur entfernten Einheit zurück.
-
ÜBERBLICK ÜBER DIE
ERFINDUNG
-
Gemäß der Erfindung
wird ein Verfahren nach Anspruch 1 geschaffen.
-
Um
die vorangehenden und anderen Aufgaben zu lösen, wurden ein Verfahren und
ein System erfunden, die eine verbesserte Routenführung mit
einem Navigationsanwendungsprogramm zur Verfügung stellen. Manöverdatenstrukturen
werden gebildet, die Daten aus einer geographischen Datenbank für jeden
Ort längs einer
Route enthalten, bei denen eine Manöveranweisung zur Verfügung gestellt
werden soll. Diese Manöverdatenstrukturen
werden verwendet, um eine Liste von Token zu bilden. Ein Token kann
entweder eine Zeichenkette oder ein Symbol sein, das sich auf ein
weiteres Datenelement bezieht, welches entweder eine Zeichenkette,
Audiodaten oder Graphikdaten umfassen kann. Manöveranweisungen werden bereitgestellt
durch Erläutern
der Token in der Liste der Token. Die Erläuterung der Token wird bewerkstelligt
durch Bereitstellen aller Daten, die in den Token enthalten sind
oder auf die von diesem Bezug genommen wird, in der in der Liste
der Token in der spezifizierten Reihenfolge. Wenn das Token ein
Symbol ist, enthält
die Erläuterung
die Bereitstellung der Daten, auf die das Symbol Bezug nimmt, was
entweder eine Zeichenkette, Audiodaten oder Graphikdaten sein können. Die
Liste der Token wird erstellt durch Kombinieren von Sequenzen von
Token, die für
jede Manöverdatenstruktur
gebildet werden. Jede der Sequenzen von Token wird aus einer entsprechenden
Ausgabeliste gebildet, die durch Anwendung eines Regelsatzes auf
die Daten in der Manöverdatenstruktur
gebildet wird. Die Inhalte einer Ausgabeliste für eine Manöverdatenstruktur können Symbole
und Schlüssel
enthalten. Symbole in einer Ausgabeliste werden verwendet, um Token
zu bilden, die in der Sequenz der Token enthalten sind, die für diese
Manöverdatenstruktur
gebildet wird. Schlüssel
in einer Ausgabeliste beziehen sich auf Daten in der entsprechenden
Manöverdatenstruktur
und werden erweitert, um Token zu bilden, die in der Sequenz der
Token enthalten ist, die für
diese Manöverdatenstruktur
gebildet wird.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
1 ist
ein Blockdiagramm, das ein Navigationssystem zeigt.
-
2 ist
ein Blockdiagramm, das Komponenten des Navigationsanwendungsprogramms
der 1 zeigt.
-
3 ist
ein Diagramm, das die Komponenten des Routenberechnungsobjekts der 2 zeigt.
-
4 ist
ein Diagramm, das die Komponenten des Manövererzeugungswerkzeugs der 2 zeigt.
-
5 ist
ein Diagramm, das die Komponentenelemente einer der Manöverdatenstrukturen
der 4 zeigt.
-
6 ist
ein Diagramm, das die Komponenten des Tokenerzeugungsobjekts der 2 zeigt.
-
7 ist
ein Diagramm, das Komponenten des Tokenerzeugung-Konfigurationsobjekts der 2 zeigt.
-
8 ist
ein Diagramm, das die Komponenten einer der Regeltabellen der 7 zeigt.
-
9 ist
ein Diagramm, das Komponenten eines der in 8 gezeigten
Regelsätze
zeigt.
-
10 ist
ein Diagramm, das die Erweiterung von Schlüsseln zu Token mittels der
in 7 gezeigten Erweiterungsfunktion zeigt.
-
11 ist
ein Diagramm, das die Erläuterung
der Token im Tokenerzeugungsobjekt mittels des in 2 gezeigten
Erläuterungswerkzeugs
zeigt.
-
GENAUE BESCHREIBUNG DER
DERZEIT BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
I. BEISPIELHAFTE NAVIGATIONSSYSTEM-PLATTFORM/UMGEBUNG
-
In 1 ist
ein Diagramm gezeigt, das eine beispielhafte Ausführungsform
eines Navigationssystems 110 zeigt. Das Navigationssystem 110 ist
eine Kombination aus Hardware- und Software-Komponenten. Die Hardwarekomponenten
des Navigationssystems 110 können einen Prozessor 112,
Speicher 120 und dergleichen enthalten.
-
Das
Navigationssystem 110 kann stationär oder tragbar sein. In der
in 1 gezeigten Ausführungsform ist das Navigationssystem 110 ein
tragbares System, das in einem Fahrzeug 111, wie z. B.
einem Automobil, einem Lastwagen oder einem Bus, angeordnet ist.
In anderen Ausführungsformen
kann das Navigationssystem 110 in anderen Plattformen installiert
sein, wie im Folgenden erläutert
wird.
-
In
der Ausführungsform
der 1 enthält
das Navigationssystem 110 ferner ein Positionsbestimmungssystem 124,
das die Position des Fahrzeugs 111, in der es installiert
ist, bestimmt. Das Positionsbestimmungssystem 124 kann
Sensoren 125 oder andere Komponenten enthalten, die die
Geschwindigkeit, Orientierung, Richtung und dergleichen des Fahrzeugs 111 erfassen.
Das Positionsbestimmungssystem 124 kann ferner ein GPS-System
enthalten.
-
Das
Navigationssystem 110 enthält ferner eine Benutzerschnittstelle 131.
Die Benutzerschnittstelle 131 enthält geeignete Mittel 127 zum
Empfangen von Anweisungen und/oder Eingaben von einem Endbenutzer
des Navigationssystems. Zum Beispiel kann die Benutzerschnittstelle 131 eine
Eingabekonsole, eine Tastatur, ein Mikrophon, eine Spracherkennungssoftware
und dergleichen enthalten, über
die der Endbenutzer Navigationsinformationen anfordern kann. Die
Benutzerschnittstelle 131 enthält ferner geeignete Mittel 129 zum
Bereitstellen von Informationen für den Endbenutzer. Die Benutzerschnittstelle 131 kann
eine Anzeigevorrichtung oder Lautsprecher enthalten (einschließlich Sprachsynthese-Hardware
und -Software), über
die der Endbenutzer Informationen vom Navigationssystem 110 erhalten
kann.
-
Alle
obenbeschriebenen Komponenten können
herkömmlich
(oder anders als herkömmlich)
sein, wobei die Herstellung und die Verwendung dieser Komponenten
Fachleuten bekannt sind. Zum Beispiel kann der Prozessor 112 einem
beliebigen Typ entsprechen, der in Navigationssystemen verwendet
wird, wie z. B. 32-Bit-Prozessoren, die einen flachen Adressraum
verwenden, wie z. B. ein Hitachi SH1, ein Intel 80386, ein Intel
960, ein Motorola 68020 (oder andere Prozessoren mit ähnlichem
oder größerem Adressierungsraum). Andere
Prozessortypen als diese, sowie Prozessoren, die in Zukunft entwickelt
werden können,
sind ebenfalls geeignet.
-
II. GEOGRAPHISCHE DATENBANK
-
Um
einem Endbenutzer Navigationsmerkmale zur Verfügung zu stellen, verwendet
das Navigationssystem 110 geographische Daten 140.
Die geographischen Daten 140 können im Fahrzeug 111 gespeichert sein,
oder alternativ können
die geographischen Daten 140 entfernt gespeichert sein
und dem Navigationssystem 110 im Fahrzeug 111 über ein
drahtloses Kommunikationssystem verfügbar gemacht werden, das Teil
des Navigationssystems 110 sein kann. In einer weiteren
Alternative kann ein Teil der geographischen Daten 140 im
Fahrzeug 111 gespeichert sein, und ein Teil der geographischen
Daten 140 kann an einem entfernten Ort gespeichert sein
und dem Navigationssystem 110 im Fahrzeug 111 über ein
drahtloses Kommunikationssystem vom entfernten Ort zugänglich gemacht
werden. In der in 1 gezeigten Ausführungsform
sind einige oder alle geographische Daten 140 auf einem
Medium 132 gespeichert, das sich im Fahrzeug 111 befindet. Dementsprechend
enthält
das Navigationssystem 110 ein Laufwerk 114 (oder
eine andere geeignete Peripherievorrichtung), in der das Medium 132 installiert
und darauf zugegriffen werden kann.
-
In
einer Ausführungsform
ist das Speichermedium 132 ein CD-ROM. In einer weiteren
alternativen Ausführungsform
kann das Speichermedium 132 eine PCMCIA-Karte sein, wobei
in diesem Fall das Laufwerk 114 durch einen PCMCIA-Schlitz
ersetzt würde.
Verschiedene andere Speichermedien können verwendet werden, einschließlich fester
oder harter Platten, DVD-Platten
oder anderer derzeit verfügbarer
Speichermedien, sowie Speicher medien, die in Zukunft entwickelt
werden können.
-
Die
geographischen Daten 140 können in Form einer oder mehrerer
computerlesbarer Datendateien oder Datenbanken vorliegen. Die geographischen
Daten 140 enthalten Informationen über die Straßen und Kreuzungen
in oder in Bezug auf ein oder mehrere geographische Gebiete oder
Abdeckbereiche. Die Informationen enthalten Daten, die die Positionen
von Straßen
im abgedeckten geographischen Gebiet spezifizieren, und enthalten
ferner Daten über
Merkmale in Bezug auf die Straßen,
wie z. B. Beschränkungen
der Fahrtrichtungen auf den Straßen (z. B. Einbahnstraßen), Abbiegebeschränkungen,
Straßenadressen,
Straßennamen, Geschwindigkeitsbeschränkungen
und dergleichen. Die geographischen Daten 140 können ferner
Informationen über
interessante Punkte im geographischen Bereich enthalten, wie z.
B. Hotels, Restaurants, Museen, Stadien, Ämter, Automobilhändler, Autowerkstätten und
dergleichen. Die geographischen Daten 140 können ferner
Informationen über
Plätze
enthalten, wie z. B. Städte,
Großstädte oder
andere Gemeinden. Die geographische Datenbank 140 kann
andere Daten über
das geographische Gebiet enthalten.
-
Die
geographischen Daten 140 können eine Vielfalt von Formen
annehmen. In einer Ausführungsform enthalten
die geographischen Daten 140 eine Vielzahl von Straßensegment-Dateneinheiten.
Jede Straßensegment-Dateneinheit repräsentiert
einen Abschnitt (oder ein Segment) einer navigierbaren Straße im geographischen
Gebiet. Jedes physikalische Straßensegment besitzt zwei ihm
zugeordnete Knoten, einen an jedem der Endpunkte des Straßensegments.
In dieser Ausführungsform
enthalten die geographischen Daten 140 ferner eine Vielzahl
von Dateneinheiten, die diese Knoten repräsentieren. Jede Knotendateneinheit
identifiziert die Position (z. B. geographische Koordinaten) eines
der Knoten am Ende eines Straßensegments.
In einer Ausführungsform
werden die geographischen Daten von Navigation Technologies Corporation
aus Sunnyvale, Kalifornien, zur Verfügung gestellt, jedoch ist klar,
dass Daten, die von anderen Einrichtungen entwickelt und bereitgestellt
werden, ebenfalls für
die Verwendung mit dem hier offenbarten Erfindungsgegenstand geeignet sind.
-
III. DIE NAVIGATIONSPROGRAMMIERUNG
-
A. Überblick über die Navigationsprogrammierung
-
Zusätzlich zu
den Hardware-Komponenten und der geographischen Datenbank enthält oder
verwendet das Navigationssystem 110 eine Navigationsprogrammierung 118.
Die Navigationsprogrammierung 118 enthält die Software, die für die Funktionen
und/oder Merkmale sorgt, die vom Navigationssystem 110 ausgeführt werden.
Die Navigationsprogrammierung 118 verwendet die geographischen
Daten 140 in Verbindung mit der Eingabe von der Benutzerschnittstelle 131,
und möglicherweise
in Verbindung mit Ausgaben vom Positionsbestimmungssystem 124,
um verschiedene Merkmale und/oder Funktionen bereitzustellen.
-
Die
Navigationsprogrammierung 118 kann auf einem nichtflüchtigen
Speichermedium 116 im Navigationssystem 110 gespeichert
sein. Alternativ können
die Navigationsprogrammierung 118 und die geographischen
Daten 140 gemeinsam auf einer einzigen Speichervorrichtung
oder einem einzigen Speichermedium gespeichert sein. Alternativ
kann die Navigationsprogrammierung 118 an einem entfernten
Ort angeordnet sein und kann dem Navigationssystem 110 über ein
Kommunikationssystem zur Verfügung
gestellt und genutzt werden.
-
Die
Navigationsprogrammierung 118 kann aus separaten Komponentenanwendungen
gebildet sein (auch als Programme, Unterprogramme, Routinen oder
Werkzeuge bezeichnet). Die Komponentenanwendungen der Navigationsprogrammierung 118 können über definierte
Programmierschnittstellen zusammenarbeiten. 2 zeigt
ein Blockdiagramm, das einige der Komponentenanwendungen für eine Ausführungsform
der Navigationsprogrammierung 118 zeigt, die im Navigationssystem 110 der 1 enthalten
ist. 2 zeigt nur einen Teil aller Komponentenanwendungen,
die die Navigationsprogrammierung 118 bilden. Andere Komponentenanwendungen,
Programme oder Werkzeuge können
in der Navigationsprogrammierung 118 enthalten sein.
-
In
der in 2 gezeigten Ausführungsform enthält die gezeigte
Navigations programmierung 118 eine Navigationsanwendung 210 und
ein oder mehrere Navigationswerkzeuge 212. Die Navigationsanwendung 210 ist
ein Programm oder eine Routine, die für das Gesamtmanagement der
Funktionen des Navigationssystems 110 sorgt. Die Navigationsanwendung 210 kann
ferner Unterstützung
für die
Navigationssystem-Hardware und Schnittstellen zu dieser enthalten,
wie z. B. dem Positionsbestimmungssystem 124 und der Benutzerschnittstelle 131.
Zu diesem Zweck enthält
die in 2 gezeigte Navigationsanwendung 210 Benutzerschnittstellenfunktionen 220.
Die Benutzerschnittstellenfunktionen 220 können für die Präsentation
eines Menüs
für den
Endbenutzer auf einem Anzeigebildschirm der Benutzerschnittstellen-Hardware 131,
die Annahme von Eingaben vom Endbenutzer über die Benutzerschnittstellen-Hardware 131,
die Anzeige von Ergebnissen für
den Endbenutzer auf einem Anzeigebildschirm der Benutzerschnittstellen-Hardware 131 und
dergleichen sorgen.
-
Die
Navigationswerkzeuge 212 sind Programme, die für spezifische
Navigationsfunktionen sorgen, die von der Navigationsprogrammierung 118 ausgeführt werden.
In der Ausführungsform
der 2 sind die Navigationswerkzeuge 212 Programme,
die für
Funktionen sorgen, die die geographischen Daten 140 verwenden. Die
Merkmale oder Funktionen, die von den Navigationswerkzeugen 212 bereitgestellt
werden, können
eine Routenberechnung, eine Kartenanzeige, eine Routenführung und
andere Merkmale enthalten. Die Navigationswerkzeuge 212 empfangen
Anfragen für
Navigationsinformationen von der Navigationsanwendung 210. Die
Navigationswerkzeuge 212 fordern und erhalten Daten von
der geographischen Datenbank 140 und verwenden die Daten,
um die Anfragen nach Navigationsinformationen von der Navigationsanwendung 210 zu befriedigen.
Die Navigationswerkzeuge 212 können die geographischen Daten
direkt von der geographischen Datenbank 140 auf dem Medium 132 erhalten,
oder die Navigationswerkzeuge 212 können alternativ die Daten über eine
Schnittstellenschicht 213 und ein Betriebssystem 214 erhalten.
-
In
einer bevorzugten Ausführungsform
sind die Navigationswerkzeuge 212 als Module vorgesehen, die
relativ portabel sind, und die in verschiedene Arten von Navigationsprogrammen,
Systemen und/oder Plattformen eingebaut sein können. Jedes Navigationswerkzeug
kann zusammen mit der Navigationsanwendung 210 und irgendwelchen
anderen Navigationswerkzeugen kompiliert sein, um ein einziges ausführbares
Programm zu bilden, das auf dem nichtflüchtigen Medium 116 gespeichert
ist. Alternativ können
die Navigationswerkzeuge als mehr oder weniger eigenständige Programme
verwendet werden. In einer bevorzugten Ausführungsform verwenden die Navigationswerkzeuge
einen objektorientierten Ansatz für ihre Programmierung unter
Verwendung von Daten und einer Beziehung zur Navigationsanwendung 210.
Jedes Navigationswerkzeug ist aus einem oder mehreren Objekten gebildet,
die jeweils Eingabedaten empfangen und Ausgabedaten erzeugen, entsprechend
einer vorgegebenen Funktion, wobei jedes jeweils Verfahren von anderen
Objekten aufruft. In einer bevorzugten Ausführungsform weist jedes Objekt
seinen eigenen privaten Speicher auf, der für andere Objekte undurchsichtig
ist. In der offenbarten Ausführungsform
kann ein Objekt verwendet werden, um Daten von einem Objekt zu einem
weiteren Objekt zu befördern,
oder kann verwendet werden, um als Eingabe empfangene Daten zu transformieren.
In einer Ausführungsform
sind die Navigationswerkzeuge 212 in der Programmiersprache
C geschrieben, obwohl in alternativen Ausführungsformen andere Programmiersprachen
verwendet werden können,
wie z. B. C++, Java, Visual Basic, und dergleichen.
-
B. DAS ROUTENBERECHNUNGSWERKZEUG
-
In
der Ausführungsform
der 2 werden Routenberechnungsfunktionen vom Routenberechnungswerkzeug 300 ausgeführt. Das
Routenberechnungswerkzeug 300 bestimmt eine Route zwischen
spezifizierten Orten. Das Routenberechnungswerkzeug 300 empfängt eine
Eingabe in Form von Daten, die wenigstens einen Ausgangspunkt und
ein gewünschtes
Fahrziel identifizieren. Das Routenberechnungswerkzeug 300 kann
zusätzliche
Eingabeinformationen empfangen, die die Berechnung der Route beeinflussen.
Zum Beispiel kann die Eingabe in das Routenberechnungswerk 300 Daten
enthalten, die Benutzervorlieben spezifizieren, wie z. B. das Vermeiden
von Mautstraßen
oder Schnellstraßen
und dergleichen. Die Eingabe kann ferner Daten enthalten, die die
Tageszeit angeben, zu der die Route begonnen wird, was die Routenberechnung
beeinflussen kann.
-
In
der Ausführungsform
der 2 empfängt
das Routenberechnungswerk zeug 300 seine Eingaben von der
Navigationsanwendung 210. In der Navigationsanwendung 210 empfangen
die Benutzerschnittstellenfunktionen 220 Eingaben von der
Benutzerschnittstelle 131. Die Eingabe kann eine Anfrage
vom Endbenutzer nach einer zu berechnenden Route zu einem gewünschten
Fahrziel enthalten. Die Navigationsanwendung 210 kann ferner
Informationen vom Positionsbestimmungssystem 124 empfangen,
die eine Position des Fahrzeugs 111 anzeigen. Die Informationen
vom Positionsbestimmungssystem 124 werden von der Navigationsanwendung 210 verwendet,
um eine aktuelle Position des Fahrzeugs 111 zu bestimmen.
Alternativ kann der Endbenutzer einen Ausgangsort für die Route
spezifizieren. Unter Verwendung dieser Eingaben werden Daten bestimmt,
die die Orte eines Ausgangspunktes und eines Fahrziels identifizieren.
Diese Funktion kann mittels Programmierung bereitgestellt werden,
die in der Navigationsanwendung 210 enthalten ist, welche dann
diese Daten an das Routenberechnungswerkzeug 300 weiterleitet.
Alternativ kann diese Funktion von einem weiteren Navigationswerkzeug
bereitgestellt werden, wie z. B. einem Geo-Codierungswerkzeug, das mit der Navigationsanwendung 210 und
dem Routenberechnungswerkzeug 300 kommuniziert.
-
Wenn
die Daten gegeben sind, die die Positionen eines Ausgangspunkts
und eines Fahrziels identifizieren, berechnet das Routenberechnungswerkzeug 300 eine
Route zwischen dem Ausgangspunkt und dem Fahrziel. Das Routenberechnungswerkzeug 300 kann
verschiedene Mittel oder Algorithmen für diesen Zweck verwenden. Verfahren
für die
Berechnung von Routen sind offenbart in der Patentanmeldung mit
der laufenden Nr. 09/047.698, eingereicht am 25. März 1998,
dessen gesamte Offenbarung hiermit durch Literaturhinweis eingefügt ist.
(Die in der obenerwähnten
offenbarten Verfahren repräsentieren
nur einige der Möglichkeiten, wie
Routen berechnet werden können,
wobei der beanspruchte Erfindungsgegenstand des vorliegenden Patents
auf kein bestimmtes Verfahren der Routenberechnung beschränkt ist.
Jedes geeignete Routenberechnungsverfahren, das derzeit bekannt
oder in Zukunft entwickelt wird, kann verwendet werden.) Das Routenberechnungswerkzeug 300 liefert
eine Ausgabe. In der Ausführungsform
der 2 weist die Ausgabe des Routenberechnungswerkzeugs 300 die
Form eines Routenberechnungsobjekts 342 auf. 3 ist
ein Diagramm, das die Komponenten des Routenberechnungsobjekts 342 darstellt.
Das Routenberechnungsobjekt 342 enthält eine geordnete Liste 344,
die mehrere Straßensegmentdateneinheiten
(nämlich
seg1, seg2, seg3 ... seg(n)) angibt. Die mehreren Dateneinheiten
repräsentieren
die Straßensegmente,
die die zusammenhängende
navigierbare Route zwischen dem Ausgangspunkt und dem Fahrziel bilden
und vom Routenberechnungswerkzeug 300 berechnet worden
sind. Da diese Segmente eine zusammenhängende Route bilden, teilt
jedes Segment einen Knoten mit seinem Nachfolgersegment in der Liste.
Wie z. B. in 3 gezeigt ist, weisen die Segmente "seg2" und "seg3" wie gezeigt einen
gemeinsamen Knoten "N3" auf. Das Routenberechnungsobjekt 342 kann
andere Informationen 346 zusätzlich zu der geordneten Liste
von Straßensegmentdateneinheiten enthalten.
-
In
einer vorliegenden Ausführungsform
wird das Routenberechnungsobjekt 342, das vom Routenberechnungswerkzeug 300 erzeugt
wird, als eine Eingabe in das Routenführungswerkzeug 400 verwendet.
Das Routenführungswerkzeug 400 verwendet
die Daten im Routenberechnungsobjekt 342 in Verbindung
mit zusätzlichen
Informationen von der geographischen Datenbank 140, um
Navigationsinformationen an die Navigationsanwendung 210 zurückzugeben.
Die vom Routenführungswerkzeug 400 an
die Navigationsanwendung 210 zurückgegebenen Daten können für eine Präsentation
für den
Endbenutzer über
die Benutzerschnittstellen-Hardware 131 direkt zu den Benutzerschnittstellenfunktionen 220 gesendet
werden. Alternativ können
die vom Routenführungswerkzeug 400 an
die Navigationsanwendung 210 zurückgegebenen Daten von der Programmierung
in der Navigationsanwendung 210 weiterverarbeitet werden.
Die Präsentation
von Informationen für
den Endbenutzer über
die Benutzerschnittstellen-Hardware 131 kann die Form hörbarer Anweisungen,
sichtbarer Textanweisungen, sichtbarer Graphikanweisungen oder irgendeine
Kombination von diesen oder andere Typen von Informationspräsentationen
aufweisen.
-
C. ROUTENFÜHRUNGSWERKZEUG/MANÖVERERZEUGUNGSWERKZEUG
-
Wie
in 2 gezeigt ist, umfasst das Routenführungswerkzeug 400 drei
Navigationswerkzeuge: ein Manövererzeugungswerkzeug 500,
ein Tokenge neratorwerkzeug 600 und ein Erläuterungswerkzeug 700.
In einer bevorzugten Ausführungsform
weisen diese Navigationswerkzeuge die Eigenschaften von Werkzeugen auf,
wie oben beschrieben worden ist.
-
Das
Manövererzeugungswerkzeug 500 verwendet
als Eingabe das Routenberechnungsobjekt 342, das vom Routenberechnungswerkzeug 300 gebildet
worden ist. (Verfahren zum Bereitstellen der Funktionen, die vom
Manövererzeugungswerkzeug 500 ausgeführt werden,
sind in der gleichzeitig anhängigen
Patentanmeldung mit der laufenden Nr. 08/893.201, eingereicht am
15. Juli 1997, offenbart, deren gesamte Offenbarung hiermit durch
Literaturhinweis eingefügt
ist. Das hier beschriebene Manövererzeugungswerkzeug
ist dem in der angegebenen Anmeldung offenbarten Erfindungsgegenstand ähnlich,
mit folgenden Ausnahmen.)
-
Das
Manövererzeugungswerkzeug 500 führt wenigstens
zwei Funktionen aus. Das Manövererzeugungswerkzeug 500 verwendet
die Informationen in der geordneten Liste von Segmentdateneinheiten 344 im Routenberechnungsobjekt 342,
um zu bestimmen, welche Orte längs
der berechneten Route dem Endbenutzer mit einer Manöver- oder
Beratungsanweisung erläutert
werden sollen. Außerdem
sammelt das Manövererzeugungswerkzeug 500 für jeden
der Orte, der als eine Erläuterung
erforderlich bestimmt worden ist, Informationen, die notwendig sind,
um eine Manöver-
oder Beratungsanweisung für
den bestimmten Ort zur Verfügung
zu stellen.
-
Bei
der Ausführung
dieser Funktionen verwendet das Manöverwerkzeug 500 zwei
Objekte. Wie in 4 gezeigt ist, enthält das Manöverwerkzeug 500 ein
(Manövererzeugung)-Konfigurationsobjekt 530 und ein
Manövererzeugungsobjekt 540.
Das (Manövererzeugung)-Konfigurationsobjekt 530 enthält Manöverregeln 532.
Diese Manöverregeln 532 werden
unter Verwendung der Daten im Routenberechnungsobjekt 342 und
von der geographischen Datenbank 140 angewendet. Diese
Regeln bestimmen, wann ein Ort längs
der berechneten Route mit einer Manöveranweisung erläutert werden
sollte. Wie oben erwähnt
worden ist, enthält das
Routenberechnungsobjekt 342 die Liste 344 von
Dateneinheiten, die Segmente der Straßen repräsentieren. Da diese Liste Straßensegmente
repräsentiert,
die eine zusammenhängende
Route bilden, teilt jedes Straßensegment,
dass durch eine Dateneinheit in der Liste 344 repräsentiert
wird, einen Knoten (d. h. einen "Endpunkt") mit einem Straßensegment,
das durch eine benachbarte Dateneinheit in der Liste repräsentiert wird.
Die Manöverregeln 532 werden
auf jeden dieser Knoten in der Liste 344 angewendet.
-
Bei
der Anwendung der Manöverregeln 532 wird
die Fahrtrichtung der berechneten Route berücksichtigt. Das Segment, mit
dem die berechnete Route in den Knoten führt, der von den Manöverregeln 532 geprüft wird,
wird somit als das Eintrittssegment identifiziert. Das Segment,
mit dem die berechnete Route aus dem mittels der Manöverregeln 532 geprüften Knoten
herausführt,
wird als das Austrittssegment identifiziert. Außerdem werden alle anderen
Straßensegmente,
die nicht Teil der berechneten Route sind, jedoch diesen gleichen
Knoten mit den Eintritts- und Austrittssegmenten teilen, identifiziert.
Die Dateneinheiten, die alle diese Straßensegmente repräsentieren,
werden von der Datenbank 140 erhalten.
-
Die
Manöverregeln 532 werden
in Form einer Tabelle 533 bereitgestellt. (Ein Beispiel
einer Tabelle, die Manöverregeln
enthält,
ist in Tabelle 1 im Anhang enthaften.) Die Tabelle 533 definiert
mehrere Manövertypen 534 und
mehrere Manöverbedingungstests 535.
Jeder dieser Manövertypen 534 charakterisiert
eine bestimmte Art von Straßenkonfigurationsänderung,
die an dem geprüften
Knoten aus der berechneten Route auftreten kann. Jedem Manövertyp 534 ist
ein eindeutiger Code oder eine eindeutige Nummer zugewiesen.
-
Jeder
der Manöverbedingungstests 535 ist
formuliert, um nur eine positive oder negative Antwort zu akzeptieren.
Jeder Manövertyp 534,
der in der Tabelle 533 definiert ist, ist einer eindeutigen
Teilmenge der mehreren Manöverbedingungstests 535 zugeordnet.
Jeder Manöverbedingungstest 535 verwendet
die Daten in den Dateneinheiten, die von der Datenbank 140 erhalten
worden sind (wie z. B. die Daten, die dem Eintrittssegment, dem
Austrittssegment, den zugänglichen
und den unzugänglichen
Segmenten und dergleichen zugeordnet sind), um sicherzustellen,
dass die im Manöverbedingungstest
spezifizierte Bedingung erfüllt
ist. Für jeden
Knoten in der berechneten Route 344 ist eine Manöveranweisung
für diesen
Knotenort erforderlich, wenn alle Manöverbedingungstests, die einem
Manövertyp 534 zugeordnet
sind, erfüllt
sind.
-
Für jeden
der Orte, die durch das Manöverwerkzeug 500 als
eine Erläuterung
erfordernd bestimmt worden sind, bildet das Manöverwerkzeug 500 eine
Manöverdatenstruktur 550 und
fügt die
Manöverdatenstruktur
zum Manövererzeugungsobjekt 540 hinzu.
Jede Manöverdatenstruktur 550,
die vom Manövererzeugungswerkzeug 500 gebildet
wird, enthält
die Informationen, die notwendig sind, um eine Manöveranweisung dem
Endbenutzer an dem Ort längs
der Route zur Verfügung
zu stellen, an dem bestimmungsgemäß dem Endbenutzer eine Erläuterung
zur Verfügung
zu stellen ist. Einige der Daten, die für die Manöverdatenstruktur benötigt werden,
sind in den Segmentdateneinheiten enthalten oder werden aus diesen
abgeleitet, die geprüft wurden,
um zu bestimmen, ob eine Manöveranweisung
an dem Ort des Knotens erforderlich ist. Es kann erforderlich sein,
zusätzliche
Daten zu erhalten oder aus der Datenbank 140 mittels des
Manövererzeugungs-Konfigurationsobjekts
herzuleiten.
-
5 zeigt
die Arten von Daten, die in jeder Manöverdatenstruktur 550 enthalten
sind. In einer Ausführungsform
wird die Manöverdatenstruktur 550 als
eine C-Datenstruktur gebildet. Unter Verwendung von Daten von den
Segmentdateneinheiten, die den dem Manöver zugeordneten Knoten teilen,
sowie irgendwelcher zusätzlicher
Daten, die von der geographischen Datenbank benötigt oder hergeleitet werden,
sammelt das Manövergeneratorobjekt 540 Daten,
die den verschiedenen Elementen der Manöverdatenstruktur 550 entsprechen.
Die Daten werden bis zu dem Ausmaß gesammelt, in dem sie verfügbar sind.
Elemente der Datenstrukturen können
leergelassen werden, wenn keine Daten verfügbar sind (z. B. wenn eine
der Straßen
an einem Manöverort
unbenannt ist).
-
In
der Datenstruktur 550 ist ein Feld 550(1)(1) enthalten,
das die Anzahl der Segmente identifiziert, die sich an dem Knoten
treffen. Die Eintritts- und Austrittssegmente 550(1)(2), 550(1)(3) in
den Knoten sind identifiziert. Außerdem sind irgendwelche zugänglichen
Segmente 550(1)(4), die den Knoten teilen, identifiziert,
sowie irgendwelche unzugänglichen
Segmente 550(1)(5), die den Knoten teilen, sind identifiziert.
Für jedes
der Segmente (Eintrittssegment, Austrittssegment, zugängliches
und unzugängliches Segment)
sorgt die Datenstruktur 550 für die Identifizierung der Segmentdatenbank-Identifikation
(eine DBID) 550(2)(1), der Namen der Segmente (falls vorhanden) 550(2)(2),
der Vorzeichen der Segmente (falls vorhanden) 550(2)(3),
des Rangs der Segmente 550(2)(4), der Segmentklassifizierung
relativ zum Eintrittssegment (Austrittssegment, zugängliches,
unzugängliches
Segment) 550(2)(5), der Datenbankklassifizierung des Segments
(z. B. kontrollierter Zugang, Straße, Rampe) 550(2)(6),
und des Winkels des Segments relativ zum Eintrittssegment 550(2)(8).
Außerdem
enthält
die Datenstruktur 550 auch ein Feld, das verwendet werden
kann, um den Manövertyp
(wie oben beschrieben) 550(4)(2), die Entfernung zum nächsten Manöver 550(4)(4) und
die Tatsache, ob das Manöver
in einem Mehrfachmanöver
enthalten ist 550(4)(1), zu identifizieren. (Ein Mehrfachmanöver kann
vom Manövergeneratorobjekt
definiert werden, wenn ein Ort, an dem eine Manöveranweisung als erforderlich
bestimmt worden ist, so nah an einem weiteren benachbarten Ort liegt,
an dem eine Manöveranweisung
als erforderlich bestimmt worden ist, das bevorzugt werden kann,
die zwei oder mehr Manöveranweisungen
dem Endbenutzer gleichzeitig zu präsentieren. Die Entfernung,
bei der ein Mehrfachmanöver
definiert wird, ist konfigurierbar und kann eine Funktion verschiedener
Faktoren sein, einschließlich
der Geschwindigkeitsbeschränkungen
längs der
Straßensegmente,
der Entfernung, des Rangs und dergleichen.)
-
Die
Datenstruktur kann ferner Felder zum Bereitstellen von Kontextinformationen 550(3) für die Austrittsstraße enthalten.
Diese Art von Information kann nützlich
sein, wenn die anderen Informationen in der Manöverstruktur nicht ausreichen,
um den Ausgang vollständig
zu beschreiben, wie z. B. dann, wenn das Austrittssegment unbenannt
ist. Die Felder für
die Kontextinformationen können
eine Zielkette 550(3)(1) enthalten, die den Ausgang des
Manövers
in den Fällen
beschreibt, in denen der Austrittssegmentname unzureichend ist (wie
z. B., wenn es unbenannt ist). Die Kontextinformationen 550(3) können ferner
ein Feld für
einen "Ort" 550(3)(2) enthalten,
der den Ort des Ausgangs relativ zu einer weiteren Straße angibt
(z. B. vorher, nachher, voraus, rückwärtig, rechts oder links). Die
Kontextinformationen 550(3) können ferner ein Feld für einen "Abbiegewinkel" 550(3)(3) enthalten,
der den Winkel angibt, der zu nehmen ist, um auf die Austrittsstraße zu gelangen.
Die Kontextinformationen können
ferner ein Feld für
eine "Fahrt richtung" 550(3)(5) enthalten,
die während
des Startmanövers
verwendet werden kann und die anfängliche Fahrtrichtung angibt,
die zu nehmen ist (z. B. Nord, Süd,
West, Ost, Nordwest und dergleichen). Die Kontextinformationen 550(3) können ferner
ein Feld für "relativ zu" 550(3)(4) enthalten.
Das Feld "relativ
zu" 550(3)(4) wird
in einem Startmanöver
verwendet. Das Feld "relativ
zu" 550(3)(4) gibt
eine anfängliche
Kreuzung an, in deren Richtung gefahren werden soll. Es kann ferner
in den Fällen
verwendet werden, in denen das Austrittssegment unbenannt ist (z.
B. "nach der Hauptstraße rechts
abbiegen"). Die
Kontextinformationen 550(3) können ferner ein Feld für "Anzahl von Ausgängen" 550(3)(6) enthalten,
das für
Kreisverkehrmanöver
verwendet werden kann. Dieses Feld "Anzahl von Ausgängen" 550(3)(6) enthält die Anzahl
der Ausgänge,
die bei Durchfahrt eines Kreisverkehrs zu passieren sind, bevor
der gewünschte
Ausgang erreicht wird.
-
Zusätzlich zu
den obenerwähnten
Elementen kann die Manöverdatenstruktur 550 zusätzliche
Elemente 550(5) enthalten.
-
Die
Manöverdatenstruktur
enthält
ferner Informationen zur Bereitstellung von Ratschlägen. Ratschläge sind
Typen von nützlichen
Erläuterungsinformationen,
die nicht unbedingt einem Manöver
zugeordnet sind. Ratschläge
können
bereitgestellt werden, wenn eine Änderung des Straßennetzes
vorliegt, jedoch ein spezifisches Fahrmanöver nicht erforderlich ist.
Zum Beispiel kann ein Ratschlag bereitgestellt werden, wenn eine Brücke oder
Tunnel befahren oder verlassen werden. Die Manöverdatenstruktur 550 enthält ein Feld,
das eine Auflistung 550(4)(3) von einem oder mehreren Ratschlagtypen
enthält.
Wie in 4 gezeigt ist, enthält das Manöverkonfigurationsobjekt 530 zusätzlich zu
den Manöverregeln 532,
die verwendet werden, um zu bestimmen, ob ein Manöver an einem
bestimmten Knoten zu erläutern
ist, und die zum Bilden der Datenstrukturen 550 hiermit
verwendet werden, ferner Ratschlagregeln 570. Die Ratschlagregeln 570 werden
auf jeden der Knoten im Routenberechnungsobjekt 342 angewendet. Ähnlich den
Manöverregeln 532 liegen
die Ratschlagregeln 570 in Form einer Tabelle 572 vor.
(Ein Beispiel einer Tabelle, die Ratschlagregeln enthält, ist
in Tabelle 2 im Anhang enthalten). Die Ratschlagregeltabelle 572 enthält einen
Satz von Ratschlagtypen 576 und einen Satz von Ratschlagbedingungstests 578.
Jeder Ratschlagtyp 576 charakterisiert eine bestimmte Art von
Ratschlag, die an einem Knoten bereitgestellt werden kann. Jedem
Ratschlagtyp 576 ist ein eindeutiger Code oder eine eindeutige
Nummer zugewiesen. Jeder der Ratschlagbedingungstests 578 ist
so formuliert, dass er nur positive und negative Ergebnisse erlaubt.
Eine eindeutige Teilmenge der Ratschlagbedingungstests 578 ist
jedem unterschiedlichen Ratschlagtyp 576 zugeordnet. Wenn
positive Ergebnisse für
alle Ratschlagbedingungstests erhalten werden, die einem Ratschlagtyp 576 zugeordnet
sind, wird dieser Ratschlagtyp 576 dem Manöver an diesem
Ort zugeordnet.
-
Anders
als die Regeln für
Manöver
erfordern die Regeln für
Ratschläge
kein eindeutiges Ergebnis. Für einen
gegebenen Ort längs
einer Route kann es daher einen Ratschlagtyp, mehrere Ratschlagtypen
oder keinen Ratschlagtyp geben. Die Nummer oder der Code für jeden
Ratschlagtyp 576 ist in der für diesen Ort gebildeten Datenstruktur 550 enthalten.
-
Die
Anwendung der Ratschlagregeln ist unabhängig von der Anwendung der
Manöverregeln.
Somit kann die Anwendung der Ratschlagregeln erfordern, dass eine
Ratschlaganweisung an einem Ort längs einer Route bereitgestellt
wird, selbst wenn die Anwendung der Manöverregeln am gleichen Ort nicht
erfordert, dass eine Manöveranweisung
bereitgestellt wird. Wenn die Anwendung der Ratschlagregeln erfordert,
dass eine Ratschlaganweisung an einem Ort bereitgestellt wird, jedoch
die Anwendung der Manöverregeln
am gleichen Ort nicht erfordert, dass eine Manöveranweisung bereitgestellt
wird, wird eine Manöverdatenstruktur
für diesen Ort
gebildet, die die Daten für
die Elemente der Datenstruktur bis zu dem Ausmaß, zu dem Daten verfügbar sind,
enthält.
Eine Manöverdatenstruktur,
die für
einen solchen Ort gebildet wird, würde einen Manövertyp "0" aufweisen.
-
Das
Manövererzeugungs-Konfigurationsobjekt 540 durchläuft die
Liste 344 von Dateneinheiten im Routenberechnungsobjekt 342,
so dass jeder Knoten längs
der berechneten Route mit dem Manöverregeln 532 geprüft wird.
Eine Manöverdatenstruktur 550 mit
Informationen für
jedes der Felder, die oben angegeben sind (bis zu dem Ausmaß, zu dem
solche Informationen verfügbar
sind) wird für
jeden Ort in der berechneten Route gebildet, an dem alle Manöverbedingungstests
für irgendwelche
der Manövertypen
oder alle Ratschlagbedingungstests für irgendeinen der Ratschlagtypen
erfüllt
sind.
-
Die
Manöverdatenstrukturen 550,
die mit diesem Prozess gebildet werden, sind der Reihe nach im Manövererzeugungsobjekt 540 enthalten.
-
D. ROUTENFÜHRUNGSWERKZEUG/TOKEN-GENERATORWERKZEUG
-
(1) Überblick
-
Wie
in 2 gezeigt ist, verwendet das Token-Generatorwerkzeug
als seine Eingabe das Manövererzeugungsobjekt 540,
das vom Manövererzeugungswerkzeug 500 gebildet
worden ist. Das Token-Generatorwerkzeug 600 enthält ein (Tokengenerator)-Konfigurationsobjekt 620 und
ein Tokengeneratorobjekt 650. Unter Verwendung der Informationen
in der Liste der Datenstrukturen 550 im Manövererzeugungsobjekt 540 bildet das
Tokengeneratorobjekt 650 eine Tokenliste. Das Tokengeneratorobjekt 650 wird
vom Erläuterungswerkzeug 700 (oder
einem oder mehreren der darin enthaltenen Werkzeuge) der Reihe nach
verwendet, um Manöveranweisungen
zu bilden, die an die Navigationsanwendung 210 zurückgegeben
werden, um die vom Routenberechnungswerkzeug 300 berechnete
Route dem Endbenutzer zu erläutern.
-
6 ist
ein Diagramm, das die Komponenten des Tokengeneratorobjekts 650 zeigt.
Das Tokengeneratorobjekt 650 enthält eine Tokenliste 652.
Die Tokenliste 652 umfasst eine geordnete Sequenz von Token 655.
Ein Token 655 wird verwendet, um ein Fragment der Daten
zu halten, aus denen die Manöveranweisung gebildet
wird, die dem Endbenutzer zu erläutern
ist. Token können
unabhängig
von der physikalischen Form (d. h. sichtbar oder hörbar) sein,
in der die Manöveranweisungen
bereitgestellt werden. Token können
somit entweder in Zeichendaten oder in Graphikdaten (für die sichtbare
Anzeige) oder in Audiodaten (für
die hörbare Wiedergabe)
konvertiert werden. Die Token repräsentieren somit Abstraktionen
der für
die Erläuterung
verwendeten Dateneinheiten.
-
Token
können
zwei Typen von Daten enthalten: Symbole und Zeichenkettendaten.
Symbole werden verwendet, um Wörter
und Phrasen (oder Graphiken) darzustellen, die gewöhnlich verwendet
werden, wenn Manöveranweisungen
bereitgestellt werden, oder wenn aussagekräftige grammatika lische Konstruktionen
als Teil von Manöveranweisungen
erstellt werden. Zum Beispiel können
Symbole für
solche Wörter
und Phrasen wie "KREUZUNG", "EINFÄDELN", "LINKS ABBIEGEN" und dergleichen
verwendet werden. In einer Ausführungsform
werden Nummern als Symbole verwendet, so dass die Nummer 00001 verwendet
werden kann, um das Wort "KREUZUNG" darzustellen, die
Nummer 00002 kann verwendet werden, um das Wort "EINFÄDELN" darzustellen, die
Nummer 00003 kann verwendet werden, um die Phrase "LINKS ABBIEGEN" darzustellen, und
dergleichen. (Beispiele von Symbolen und Wörtern oder Phrasen, denen diese
entsprechen, sind in Tabelle 5 im Anhang enthalten. In Tabelle 5
enthält
die zweite Spalte die Symbole und die erste Spalte enthält die Zeichentextketten,
die den Symbolen entsprechen.)
-
Symbole
können
auf Audiodaten, Zeichentextkettendaten, Graphikdaten oder Kombinationen
von Audio-, Zeichentextketten- und Graphikdaten abbilden. Die Erläuterungswerkzeuge 700,
die im Folgenden beschrieben werden, verwenden diese Abbildungsfähigkeit,
um Daten an die Navigationsanwendung 210 auszugeben. Wenn
die Manöveranweisungen
hörbar
bereitgestellt werden sollen, werden die Audiodaten (Dateien oder
Teile derselben), die von diesen Symbolen abgebildet werden, vom
Erläuterungswerkzeug 700 an
die Navigationsanwendung 210 zurückgegeben und von der Software
in der Navigationsanwendung 210 und der Hardware in der
Benutzerschnittstelle 133 wiedergegeben, so dass die Manöveranweisungen
zu hören
sind. Wenn die Manöveranweisungen
auf einem Videobildschirm angezeigt werden sollen, werden die Zeichentextkettendaten
(oder die Graphikdaten), die von diesen Symbolen abgebildet werden,
vom Erläuterungswerkzeug 700 an
die Navigationsanwendung 210 zurückgegeben und auf einem Videobildschirm
der Benutzerschnittstelle 131 angezeigt, um die Manöveranweisungen
sehen zu können.
Alternativ kann das Erläuterungswerkzeug 700 Kombinationen
von Audiodaten, Zeichenkettentextdaten und Graphikdaten zurückgeben,
so dass die Manöveranweisungen
sowohl hörbar
als sichtbar bereitgestellt werden können. (In Tabelle 5 im Anhang enthält die dritte
Spalte eine Textbeschreibung dessen, was zu hören ist, wenn die Audiodaten
entsprechend dem Symbol in der zweiten Spalte wiedergegeben werden.)
-
Wie
oben erwähnt
worden ist, können
Token auch Zeichenkettendaten anstelle von Symbolen enthalten. Zeichenkettendaten
können
in Token enthalten sein, um besser ausgearbeitete und/oder aussagekräftige Manöveranweisungen
bereitzustellen. Zum Beispiel können
Zeichenkettendaten verwendet werden, um die Namen geographischen
Merkmalen (z. B. Straßennamen
oder Namen interessanter Punkte) zu den Manöveranweisungen hinzuzufügen, um
die Anweisungen aussagekräftiger
zu machen. Für
diese Art von Informationen werden Audiodaten (Dateien oder Teile
derselben), in denen der geographische Name in Sprache dargestellt
ist, möglicherweise
nicht verfügbar
sein. Ein Token für
diese Art von Daten enthält
daher eine Zeichenkette des Namens des geographischen Merkmals.
Diese Zeichenkettendaten können
aus der geographischen Datenbank 140 erhalten werden, die
die Namen der geographischen Merkmale enthält. Zum Beispiel kann die Manöveranweisung "AN DER NÄCHSTEN KREUZUNG
LINKS ABBIEGEN" aus
Token unter Verwendung nur von Symbolen gebildet werden. Eine genauere
Manöveranweisung
könnte
unter Verwendung des Namens des geographischen Merkmals, das am
Manöver
beteiligt ist, bereitgestellt werden: "AN DER NÄCHSTEN KREUZUNG IN DIE IRVING
PARK ROAD ABBIEGEN." In
der letzteren Manöveranweisung
würden
die Wörter "IRVING PARK ROAD" aus einem Token
hergeleitet, das die Zeichenkette "IRVING PARK ROAD" enthält.
-
Token,
die Zeichenkettendaten enthalten, können verwendet werden, um sowohl
hörbare
als auch sichtbare Manöveranweisungen
bereitzustellen. Um Manöveranweisungen
hörbar
aus Token bereitzustellen, die Zeichenketten enthalten, kann eine
Text-zu-Sprache-Software verwendet werden.
-
(2) Die Regeltabellen
-
Das
Tokengenerator-Konfigurationsobjekt 620 enthält die Komponenten,
die für
die Erzeugung des Tokengeneratorobjekts 650 verwendet werden.
Diese Komponenten enthalten Konfigurationsparameter und Tabellen,
die zur Erzeugung einer Liste von Token notwendig sind. Wie in 7 gezeigt
ist, enthält
das Tokengenerator-Konfigurationsobjekt 620 ein oder mehrere
Regeltabellen 630. Jede dieser Regeltabellen 630 kann Regeln
enthalten, die auf eine spezifische Art der Erläuterung zugeschnitten sind.
Zum Beispiel ist eine Art von Regeltabelle eine Sprachregeltabelle 630(V).
Die Sprachre geltabelle 630(V) wird verwendet, um eine Ausgabe in
Form eines Tokengeneratorobjekts 650 bereitzustellen, in
welchem die Token dafür
ausgelegt sind, aussagekräftige
hörbare
Manöveranweisungen
bereitzustellen. Eine weitere Art von Regeltabelle ist eine Textregeltabelle 630(T).
Die Textregeltabelle 630(T) wird verwendet, um eine Ausgabe
in Form eines Tokengeneratorobjekts 650 bereitzustellen,
in welchem die Token dafür
ausgelegt sind, aussagekräftige
Manöveranweisungen als
Text auf einer Videoanzeigevorrichtung zur Verfügung zu stellen. (Im Anhang
in Tabelle 3 ist ein Beispiel einer Regeltabelle zum Erzeugen von
Token für
die visuelle Anzeige gezeigt, während
in Tabelle 4 ein Beispiel einer Regeltabelle für die Erzeugung von Token für die hörbare Wiedergabe
gezeigt ist.)
-
Obwohl
separate Regeltabellen verwendet werden können, um separate Tokengeneratorobjekte
für Sprache
und Text zu erzeugen, können
in einer alternativen Ausführungsform
sowohl Sprach- als auch Texterläuterungen
vom gleichen Tokengeneratorobjekt bereitgestellt werden, das mittels
einer generischen Regeltabelle erzeugt wird.
-
Regeltabellen
können
für die
Erläuterung
in unterschiedlichen Sprachen bereitgestellt werden. Regeltabellen
werden in unterschiedlichen Sprachen bereitgestellt, um die grammatikalischen
Unterschiede der verschiedenen Sprachen zu berücksichtigen. Die Regeltabelle
für eine
Sprache ordnet die Token im Tokengeneratorobjekt 650 (aus
dem die Wörter
und Phrasen in den Manöveranweisungen
abgeleitet werden) in der richtigen Sequenz für die korrekten grammatikalischen
Konstruktionen in der Sprache an, in der die Manöveranweisungen bereitgestellt
werden. Zum Beispiel können
separate Regeltabellen für
Englisch, Französisch,
Spanisch, Deutsch und dergleichen bereitgestellt werden.
-
Andere
Regeltabellen können
ebenfalls bereitgestellt werden. Diese anderen Regeltabellen können für die Erzeugung
spezieller Arten von Tokengeneratorobjekten verwendet werden. Wenn
z. B. das Navigationssystem beschränkte Videoanzeigefähigkeiten
hat, kann eine alternative Regeltabelle verwendet werden, die ein
Tokengeneratorobjekt erzeugt, in welchem die daraus hergeleiteten
Manöveranweisungen
in geeigneter Weise beschränkt
sind.
-
Wie
in den 8 und 9 (und in den Tabellen 3 und
4 im Anhang) gezeigt ist, enthält
jede der Regeltabellen 630 strukturierte Listen von Fällen, einschließlich Tests,
zugehörige
Maßnahmen
und Ausgaben, die auf jede der geordneten mehreren Manöverdatenstrukturen 550 im
Manöverobjekt 540 angewendet
werden. Für
jede Manöverdatenstruktur 550 verwendet
das Tokengeneratorobjekt 650 die Regeln in einer der Regeltabellen 630,
um eine Ausgabeliste 631 zu bilden. Die Inhalte der Ausgabeliste 631 werden
im Tokengeneratorobjekt 650 zu einer geordneten Tokensequenz 633 konvertiert.
Die Tokensequenzen 633, die von allen Manöverdatenstrukturen 550 erzeugt
werden, werden verwendet, um die Tokenliste 652 zu erstellen,
die im Tokengeneratorobjekt 650 enthalten ist. Da jede
Manöverdatenstruktur 550 aus
dem Manövererzeugungsobjekt 540 verarbeitet
wird, wird die für
dieses Manöver
gebildete Tokensequenz 633 zum Tokengeneratorobjekt 650 hinzugefügt. Genauer
wird die Tokensequenz 633, die für jede Manöverdatenstruktur 550 gebildet
wird, an das Ende der teilweise gebildeten Liste im Tokengeneratorobjekt 650 angehängt, das
die Token enthält,
falls vorhanden, die bereits von vorher verarbeiteten Manövern hinzugefügt worden
sind. Sobald alle Manöverdatenstrukturen
verarbeitet worden sind, bilden die Tokensequenzen 633,
die aus allen Manövern 550 gebildet worden
sind, die komplette Tokenliste 652 im Tokengeneratorobjekt 650.
-
Aus
der Tokenliste 652 im Tokengeneratorobjekt 650 kann
die mittels des Routenberechnungswerkzeugs 300 berechnete
Route erläutert
werden. Die Erläuterung
wird durchgeführt,
indem die Token im Tokengeneratorobjekt 650 in das geeignete
Format konvertiert werden, das von der Navigationsanwendung 210 angefordert
wird. Für
Token, die Symbole sind, umfasst die Erläuterung das Erhalten der Audiodaten
(Dateien oder Teile derselben), der Textzeichenketten oder der Graphikdaten
(Dateien oder Teile derselben), auf die die Symbole abgebildet werden.
Für Token,
die Zeichenketten sind, umfasst die Erläuterung die Rückgabe der
Zeichenketten für
Textmanöveranweisungen
oder das Durchführen
einer Text-zu-Sprache-Umsetzung für hörbare Manöveranweisungen.
-
Im
Tokengenerator-Konfigurationsobjekt 620 enthält jede
der Regeltabellen 630 mehrere Regelsätze 632. Die Regeltabelle 630 enthält Regelsätze 632 für unterschiedliche
Kombinationen von Manövertypen
und Ratschlagtypen, die in irgendeiner der Manöverdatenstrukturen 550 zu
finden sind. Wie oben erwähnt
worden ist, enthält
jede Manöverdatenstruktur 550 Elemente 550(4)(2) und 550(4)(3),
die einen Manövertyp
und möglicherweise
einen oder mehrere Ratschlagtypen identifizieren. Die Regeltabelle 630 enthält einen
Regelsatz 632 für
jeden Manövertyp
und jede Kombination von Manövertyp
und Ratschlagtyp. Zum Beispiel ist in der in 8 gezeigten
Regeltabelle 630 ein Regelsatz 632 MAN(0) für den Manövertyp "0" definiert, ein weiterer Regelsatz 632 MAN(1)
für den
Manövertyp "1" definiert, ein weiterer Regelsatz 632 MAN(2)
für den
Manövertyp "2" definiert, usw.
-
Wie
in 9 gezeigt ist, enthält jeder Regelsatz 632 in
der Regeltabelle 630 einen oder mehrere Fälle 634.
Innerhalb jedes Regelsatzes ist jeder Fall eindeutig nummeriert,
z. B. 1, 2, 3 ..., usw. Die Fälle 634 in
jedem Regelsatz 632 berücksichtigen
jede Situation, die in der Manöverdatenstruktur 550 auftreten
kann, die diese spezifische Kombination von Manövertyp oder Ratschlagtyp aufweist.
Die Fälle 634 in
jedem Regelsatz 632 sind so geordnet, dass dann, wenn das
Konfigurationsobjekt 620 den Regelsatz 632 auf
eine Manöverdatenstruktur 550 mit
einer spezifizierten Kombination von Manövertyp oder Ratschlagtyp anwendet,
der im Regelsatz 632 gelistete erste Fall 634 zuerst
angewendet wird.
-
Jede
Manöverdatenstruktur 550 wird
separat behandelt. Ferner wird jede Manöverdatenstruktur 550 in
der Reihenfolge genommen, in der sie im Manövererzeugungsobjekt 540 enthalten
ist. Nur die Regelsätze 632,
die Fälle
enthalten, die zum spezifischen Manövertyp und Ratschlagtyp in
der Manöverdatenstruktur 550 passen,
werden verwendet.
-
In
der in 9 gezeigten Ausführungsform ist ein Regelsatz
für einen
Manövertyp
gleich "–1" definiert. Wenn
ein Regelsatz in seinem Manövertypfeld "–1" aufweist, wird er durch einen beliebigen
Manövertyp
befriedigt. Zum Beispiel wird ein Fall, der im Manövertypfeld
eine "–1" aufweist und im
Ratschlagtypfeld eine "8" aufweist, auf eine
beliebige Manöverdatenstruktur
angewendet, die einen Ratschlagtyp "8" aufweist.
Die Manöverdatenstruktur
kann irgendeinen Manövertyp
in ihrem Manövertypfeld
aufweisen.
-
Innerhalb
eines Regelsatzes wird ein Fall, der im Ratschlagtypfeld "–1" aufweist, durch einen beliebigen Ratschlagtyp
befriedigt. Wenn somit ein Fall im Manövertypfeld "4" aufweist
und im Ratschlagtypfeld "–1" aufweist, wird er
auf eine beliebige Manöverdatenstruktur
angewendet, die einen Manövertyp "4" aufweist. Die Manöverdatenstruktur kann einen
beliebigen Ratschlagtyp aufweisen. Auf diese Weise können Fälle für Ratschlagtypen
für mehr
als einen Manövertyp
verwendet werden, und Fälle
für Manövertypen
können
für mehr als
einen Ratschlagtyp verwendet werden.
-
Wie
in 9 gezeigt ist, ist jedem Fall 634 in
jedem Regelsatz 632 ein Testfeld 636 zugeordnet.
Das Testfeld 636 für
jeden Fall 634 identifiziert einen oder mehrere Tests 637,
oder das Testfeld 636 kann anzeigen, dass dem Fall keine
Tests zugeordnet sind. (Zum Beispiel kann das Testfeld 636 durch
Anwesenheit eines Codes, wie z. B. "–1", im Testfeld anzeigen,
dass keine Tests erforderlich sind.) In einer Ausführungsform
identifiziert das Testfeld 636 jeden Test 637 mittels
einer Test-ID. Jeder Test 637 ist so gebildet, dass das
Ergebnis des Tests entweder "bestanden" oder "fehlgeschlagen" ist. (In den in
den Tabellen 3 und 4 im Anhang enthaltenen beispielhaften Tokenregeltabellen
sind zum Zweck der Erläuterung
die Namen der Tests anstelle der Test-IDs in den Testfeldern enthalten.)
-
Jeder
Test 637 für
jeden Fall 634 wird unter Verwendung der Daten in der zugehörigen Manöverdatenstruktur 550 durchgeführt. Zum
Beispiel kann einer der Tests 637 die Anwesenheit eines
Namens im Namen eines Austrittssegmentfeldes der Manöverdatenstruktur
prüfen.
Ein weiterer Test kann die Anwesenheit eines Namens im Fahrzielfeld
der Manöverdatenstruktur
prüfen.
Das Tokengeneratorwerkzeug 600 enthält eine Anzahl von Vorgabetests
im Tokengeneratorobjekt 650. Zusätzliche Tests können vom
Navigationsanwendungsprogramm 210 definiert werden und
eingeschlossen werden. (Die Tests 637 sind die Codebasis,
die das Tokengeneratorobjekt 650 ausmacht, oder die Tests 637 können dort
angeordnet sein, wenn Tests in der Navigationsanwendung 210 definiert
sind. Diese Test-IDs, die die Regeln ausmachen, befinden sich im
Tokengenerator-Konfigurationsobjekt 620.)
-
Ferner
sind jeden Fall 634 ein Maßnahmenfeld 638, ein
Erfolgspfadfeld 640, ein Fehlschlagpfadfeld 642 und
eine Fallausgabe 643 zugeordnet. Die Inhalte der Fallausgabe 643 können eine
Liste eines oder mehrerer Schlüs sel 656,
Symbole 668 oder Ketten 674 oder Kombinationen
hiervon enthalten, oder alternativ kann die Fallausgabe 643 leer
sein. Schlüssel,
Symbole und Ketten werden später
erläutert.
Die Schlüssel,
Symbole und Ketten in der Ausgabeliste 631 sind in der
Fallausgabe in einer Weise angeordnet, die eine aussagekräftige Erläuterung
des gesamten Manövers
oder eines Teils desselben bereitstellt, welches unter Berücksichtigung
der Arten von Informationen bereitzustellen ist, die in der Manöverdatenstruktur
enthalten sind, wie durch die Tests bestimmt wird, die für diesen
Fall durchgeführt
werden.
-
Das
Maßnahmenfeld 638 eines
Falls 634 ist so definiert, dass es einen von zwei Werten "ersetzen" oder "anhängen" aufweist. Wenn alle
Tests 637, die im Testfeld 636 des Falls 634 spezifiziert
sind, bestanden werden, wird die im Maßnahmenfeld 638 des
Falls aufgelistete Maßnahme
durchgeführt.
-
Wenn
das Maßnahmenfeld 638 für einen
Fall 634 "anhängen" anzeigt, werden
alle Inhalte 645 in der Fallausgabe 643 des Falls
hinzugefügt.
Dies bedeutet, dass irgendwelche Schlüssel 656, Symbole 668 oder Ketten 674,
die in der Fallausgabe 643 des erfolgreich durchlaufenen
Falls aufgelistet sind, zu irgendwelchen Schlüsseln 656, Symbolen 668 oder
Ketten 674 hinzugefügt
werden, die bereits für
das gleiche Manöver
von einem im Voraus durchgeführten
Fall, falls vorhanden, angefügt
worden sind. Diese Sammlung von neu angehängten und bereits angehängten Schlüsseln 656,
Symbolen 668 oder Ketten 674 wird vorübergehend
als mögliche
Ausgabeliste 631 für
das Manöver
gespeichert, während
irgendwelche weiteren Fälle
(die zusätzliche
Tests enthalten können)
für das
gleiche Manöver
durchgeführt
werden. Wenn keine Schlüssel 656,
Symbole 668 oder Ketten 674 von einem vorangehenden
Fall für
das gleiche Manöver
vorliegen, werden die Inhalte 645 der Fallausgabe 643 des
erfolgreichen Falles vorübergehend
als eine mögliche
Ausgabeliste 631 für
das Manöver
gespeichert, während
irgendwelche Tests, die irgendwelchen weiteren Fällen zugeordnet sind, die dem
gleichen Manöver
zugeordnet sind, ausgeführt
werden.
-
(In
den beispielhaften Tokenregeltabellen, die in Tabelle 3 und Tabelle
4 im Anhang enthalten sind, weisen die Fallausgaben nicht die wirklichen
numerischen Werte der Symbole auf. Stattdessen zeigen die Fallausgaben
im Beispiel der Tabellen 3 und 4 die äquivalenten Testzeichenketten,
die von den Symbolen repräsentiert
werden. Dies dient Erläuterungszwecken.)
-
Wenn
alle Tests 637, die in dem einen Fall 634 zugeordneten
Testfeld 636 spezifiziert sind, durchlaufen sind und das
Maßnahmenfeld 638 "ersetzen" anzeigt, werden
irgendwelche Schlüssel 656,
Symbole 668 oder Ketten 674, die bereits für das gleiche
Manöver
von einem vorangehend durchgeführten
Fall angehängt worden
sind, falls vorhanden, durch die Inhalte 654 des erfolgreich
durchlaufenen neuen Falls ersetzt. Die Schlüssel 656, Symbole 668 oder
Ketten 674 dieses erfolgreich durchlaufenen neuen Falls
werden vorübergehend
als eine mögliche
Ausgabeliste 631 für
das Manöver
gespeichert, während
irgendwelche Tests, die irgendwelchen weiteren Fällen zugeordnet sind, die dem
gleichen Manöver
zugeordnet sind, ausgeführt
werden.
-
Wie
oben erwähnt
worden ist, kann das Testfeld 636 eines Falls 634 anzeigen,
dass dem Fall keine Tests zugeordnet sind. Dies kann durch "–1" im Testfeld 636 angezeigt
sein. Wenn im Testfeld 636 keine Tests angezeigt sind,
wird das Testfeld als für
den Fall befriedigt behandelt und die im Maßnahmenfeld 638 spezifizierte
Maßnahme
wird ausgeführt.
Somit wird die Maßnahme,
die in dem Maßnahmenfeld 638 eines
Falls 634 ohne spezifizierte Tests immer ausgeführt, wenn
dieser Fall für
das Manöver
herangezogen wird.
-
Für erfolgreiche
Fälle (d.
h. Fälle,
in denen alle im Testfeld 636 identifizierten Tests 637 bestanden
wurden) wird, nachdem die im Maßnahmenfeld 638 spezifizierte
Maßnahme
ergriffen worden ist, der nächste Schritt,
der durchgeführt
wird, der Schritt sein, der im Erfolgspfadfeld 640 des
Falls spezifiziert ist. Das Erfolgspfadfeld 640 kann den
nächsten
Fall identifizieren, der für
dieses Manöver
durchzuführen
ist (z. B. mittels Fallnummer), oder das Erfolgspfadfeld 640 kann
anzeigen, dass keine weiteren Fälle
für das
Manöver
durchgeführt
werden müssen.
Wenn das Erfolgspfadfeld 640 einen weiteren durchzuführenden
Fall anzeigt, werden die Tests 637 ausgeführt, die
in den Testfeld 636 des neuen Falls spezifiziert sind.
Der Prozess wird auf diese Weise fortgesetzt, bis für dieses
Manöver
keine durchzuführenden
Tests mehr angezeigt werden.
-
Für einen
Fall, in dem irgendeiner der im Testfeld 636 spezifizierten
Tests 637 nicht bestanden wird, wird der Fall als fehlgeschlagen
behandelt. Die im Maßnahmenfeld 638 eines
fehlgeschlagenen Falles spezifizierte Maßnahme wird nicht ausgeführt. Irgendwelche
Dateneinheiten von irgendeinem vorher ausgeführten Fall für dieses
gleiche Manöver,
die vorübergehend
als mögliche
Fallausgabe 643 gespeichert worden sind, werden unberührt gelassen.
-
Für einen
fehlgeschlagenen Fall ist der nächste
durchzuführende
Schritt die Maßnahme,
die im Fehlschlagpfadfeld 642 spezifiziert ist. Ähnlich dem
Erfolgspfadfeld 640 identifiziert das Fehlschlagpfadfeld 642 den
nächsten
für dieses
Manöver
durchzuführenden
Fall, oder das Fehlschlagpfadfeld 642 kann anzeigen, dass
für dieses
Manöver
keine weiteren Fälle
durchzuführen
sind.
-
(3) Erzeugung von Token
-
In
dieser Phase, nachdem alle anwendbaren Fälle in den Regelsätzen für ein Manöver ausgeführt worden
sind, enthalten die Inhalte der Ausgabeliste 631, die für das Manöver erstellt
worden ist, die kombinierten Inhalte der Fallausgaben 643 aller
erfolgreichen Fälle
(mit Ausnahme derjenigen, die durch erfolgreich durchgeführte Fälle ersetzt
worden sind, welche eine Ersetzung anstelle eines Anhängens erfordern).
Wie oben erwähnt
worden ist, können
Fallausgaben 643 Schlüssel,
Symbole, Ketten oder Kombinationen hiervon enthalten. Diese Schlüssel, Symbole
und Ketten in der Ausgabeliste 631 werden vom Tokengeneratorobjekt 650 in Token
konvertiert. Die Reihenfolge, in der die Symbole, Schlüssel und
Ketten in der Ausgabeliste enthalten sind, die für jedes Manöver erzeugt wird, wird in der
hieraus gebildeten geordneten Tokensequenz beibehalten.
-
Die 8 und 10 zeigen
die Inhalte der Manöverausgabeliste 631,
die aus Schlüsseln,
Symbolen und Ketten besteht. Diese können alle durch geeignete Zeichen
unterschieden werden. In der Ausführungsform der 10 werden
Schlüssel
von Winkelklammern (< >) umfasst, während Ketten
von Anführungszeichen
(" ") umfasst werden.
Ein Eintrag in einer Ausgabeliste 631, der weder von Winkelklammern
noch von Anführungszeichen
umfasst ist, wird als Symbol aufgefasst. Jeder Schlüssel, jedes
Symbol und jede Kette in der Ausgabeliste 631 bildet ein
Token, das zum Tokengeneratorobjekt hinzugefügt wird.
-
a. Symbole
-
Symbole 688 werden
verwendet, um diejenigen Abschnitte der Manöveranweisungen darzustellen, die
dem Endbenutzer eine Aussage vermitteln. In der Manöveranweisung
z. B., die den Text "RECHTS
ABBIEGEN AUF MICHIGAN AVENUE" anzeigt,
wären ein
oder mehrere Symbole in der Ausgabeliste des Manövers enthalten, um die Phrase "RECHTS ABBIEGEN AUF" darzustellen. Ein
Schlüssel
würde in
der Ausgabeliste des Manövers
verwendet, um die Phrase "MICHIGAN
AVENUE" darzustellen.
-
In
diesem Beispiel wäre
das Symbol in der Ausgabeliste 631 des Manövers in
einer Fallausgabe 631 enthalten, die von einem der erfolgreichen
Fälle hinzugefügt worden
ist, die für
das Manöver
ausgeführt
worden sind. Der Fall, der die Fallausgabe hinzugefügt hat,
die dieses Symbol enthält,
kann als ein Test in dessen Testfeld enthalten sein, der geprüft hat,
ob der Name der Straße
im Straßennamenfeld
für die
Segmentdateneinheit, die im Austrittssegment identifiziert ist,
verschieden war von dem Namen der Straße im Straßennamenfeld für die Segmentdateneinheit,
die im Austrittssegmentfeld identifiziert ist.
-
Beim
Bilden der geordneten Tokensequenz 633 aus einer Manöverausgabeliste 631,
werden Symbole dann, wenn sie herangezogen werden, zu Token geformt.
Jedes Symbol in der Manöverausgabeliste
wird in ein Token in der daraus gebildeten geordneten Tokensequenz
umgeformt.
-
(In
einer Entwicklungsausführungsform
kann es einfacher sein, auf Symbole mittels Wörtern oder Phrasen Bezug zu
nehmen, die die Symbole repräsentieren.
Dementsprechend erlaubt das Tokengeneratorwerkzeug Entwicklern,
die Wörter
und Phrasen zu verwenden, die die Symbole repräsentieren, anstelle der wirklichen
numerischen Symbole.)
-
b. Schlüssel
-
Schlüssel werden
verwendet, um auf Daten Bezug zu nehmen, die in der Manöverdatenstruktur
enthalten sind. Daher sind Schlüssel
relativ dynamisch. Jede Manöverdatenstruktur
im Manövererzeugungsobjekt kann
unterschiedlich Daten enthalten, und daher können sich die Manöverdatenstrukturelemente,
auf die sich die Schlüssel
beziehen von einer Manöverdatenstruktur
zur nächsten ändern. Wenn
z. B. gewünscht
ist, eine Manöveranweisung
dem Endbenutzer bereitzustellen, die den Text "RECHTS ABBIEGEN AUF MICHIGAN AVENUE" anzeigt, würde ein
Schlüssel
in der Fallausgabeliste verwendet, um auf den Namen des Austrittssegments
(d. h. "MICHIGAN
AVENUE") Bezug zu
nehmen. In diesem Beispiel könnte
der Schlüssel
die Form annehmen:
<NAME_EXIT_SEGMENT>.
-
Bei
der Ausbildung der geordneten Tokensequenz 633 aus dieser
Manöverausgabeliste 631 wird dann,
wenn ein Schlüssel
herangezogen wird, die entsprechende Dateneinheit, die in der Manöverdatenstruktur
enthalten ist, identifiziert. Diese Dateneinheit wird verwendet,
um den Schlüssel
zu bilden. Dieser Schlüssel wird
anschließend
zu einem Token erweitert, welches anschließend zur geordneten Tokensequenz 633 für dieses
Manöver
hinzugefügt
wird.
-
In
diesem Beispiel würde
der Schlüssel
in der Ausgabeliste 631 des Manövers in einer Fallausgabe 631 enthalten
sein, die von einem der erfolgreichen Fälle hinzugefügt wird,
die für
das Manöver
ausgeführt werden.
Der Fall, der die Fallausgabe hinzugefügt hat, die diesen Schlüssel enthält, kann
einen Test in seinem Testfeld enthalten, der prüft, ob die Manöverdatenstruktur 550 Daten
im Straßennamenfeld
(550(2)(2) in 5) für die Segmentdateneinheit enthält, die
im Austrittssegmentfeld (550(1)(2) in 5)
identifiziert ist.
-
Erweiterungsfunktion.
Jeder Schlüssel
weist eine zugehörige
Erweiterungsfunktion 670 auf, die verwendet wird, um den
Schlüssel
zu einem Token zu erweitern, welches anschließend in die geordnete Tokensequenz 633 für das Manöver eingeschlossen
wird. Eine Erweiterungsfunktion wird einem Schlüssel zugeordnet, wenn sie definiert
wird. Die Erweiterungsfunktion 670 berücksichtigt irgendwelche Arten
von Formatierung oder Stilbetrachtungen, die sich auf die Ausbildung
einer benutzerfreundlichen Anweisung aus den Daten, aus denen der
Schlüssel
hergeleitet wurde, beziehen. (Ähnlich
den Tests 637 ist der Code für die Erweiterungsfunktionen
in der Codebasis des Tokengeneratorobjekts 650 angeordnet.
Wenn Schlüssel
erweitert werden, verwenden die Erweiterungsfunktionen Daten, wie
z. B. Stile und Elementabbildungen, die im Folgenden beschrieben
werden und im Tokengenerator-Konfigurationsobjekt 620 angeordnet
sind).
-
Stile.
Wenn bestimmte Arten von Schlüssel
erweitert werden, gibt es verschiedene Möglichkeiten, wie die durch
den Schlüssel
repräsentierten
Daten ausgedrückt
werden können.
Zum Beispiel kann eine Manöveranweisung
eine Entfernung zum nächsten
Manöver
angeben. Ein Schlüssel
würde für diesen
Zweck verwendet. Der Schlüssel
kann in der Fallausgabe eines Falles enthalten sein, der die Anwesenheit
von Daten im Manöverdatenstrukturfeld
für die
Entfernung zum nächsten
Manöver
prüft (d.
h. 550(4)(4) in 5). Wenn in diesen Feld Daten
vorhanden sind, würde
die Fallausgabe zu der Manöverausgabeliste 631 hinzugefügt. Die
Dateneinheit, auf die vom Schlüssel
Bezug genommen wird, wäre
eine Zahl (z. B. 1.500), die die Entfernung zum nächsten Manöver in Metern
angibt. Es gibt jedoch unterschiedliche Möglichkeiten, wie diese Informationen ausgedrückt werden
können.
Zum Beispiel kann eine Entfernung von "1.500 Metern" im Englischen auf die Folgenden unterschiedlichen
Arten ausgedrückt
werden: "1,5 km", "1 and a half km", "1500 m", "fifteen hundred meters", "1 km 500 m" und dergleichen.
Einige dieser Möglichkeiten
können
bevorzugt werden, wenn das Manöver
hörbar
erläutert
wird, während
andere Möglichkeiten
vorgezogen werden können,
wenn das Manöver auf
einer Videoanzeigevorrichtung erläutert wird. In jedem Fall wird
vorgezogen, die Erläuterung
des Manövers konsistent
zu machen. Es gibt ähnliche
Betrachtungen bezüglich
der Ausdrucksweise der Daten, auf die vom Schlüssel Bezug genommen wird, in
unterschiedlichen Sprachen.
-
Wenn
ein Schlüssel
erweitert wird, sorgt das Tokengeneratorwerkzeug für die Auswahl,
wie bestimmte Arten von Schlüsseln
ausgedrückt
werden. Außerdem
sorgt das Tokengeneratorwerkzeug für die Berücksichtigung von Ausnahmen,
falls angemessen, um Spracheigenheiten zu berücksichtigen. Das Tokengeneratorwerkzeug
sorgt dafür,
dass ein Schlüssel
einen Stilcode 692 aufweist, der diesem zugeordnet ist.
Ein Stilcode wird im Schlüssel
verwendet, um die Art zu definieren, in der der vom Schlüssel repräsentierte
Wert ausgedrückt
wird. Dieser Stilcode wird von der Erweiterungsfunktion verwendet,
wenn der Schlüssel
erweitert wird.
-
Das
Tokengenerator-Konfigurationsobjekt 620 enthält ein oder
mehrere Stile zum Ausdrücken
unterschiedlicher Arten von Informationen, die in Schlüsseln enthalten
sind, wie z. B. eine Entfernung, eine Zeit, Zahlen und dergleichen.
Diese Stile sind durch Stil-IDs identifiziert, wie z. B. "1", "2" und dergleichen.
Ein Stilcode kann an einen Schlüssel
angeheftet sein und wird verwendet, um die Art zu bestimmen, in
der der vom Schlüssel
repräsentierte
Wert ausgedrückt
wird. Die Verwendung eines Stils ist im folgenden Beispiel dargestellt:
-
Beispiel 1
-
Ein
Schlüssel
ist in einer Fallausgabe als <DISTANCE_FROM_ORIGIN:1> definiert. Im Schlüssel ist der
Wert "1", der dem Doppelpunkt
folgt, der Stilcode.
-
Im
Tokenkonfigurationsobjekt ist ein Stil mit einer ID gleich 1 definiert
als dafür
sorgend, dass der Schlüssel
ausgedrückt
wird als
x meters
wobei x der Wert im Schlüssel DISTANCE_FROM_ORIGIN
ist. Wenn der Wert des entsprechenden Elements DISTANCE_FROM_ORIGIN
der Manöverdatenstruktur
gleich "7" ist, dann bildet
die Erweiterungsfunktion 670 ein Token aus diesem Schlüssel, in
dem die Zeichenkette "meters" an eine Zeichenkette
angehängt
wird, die aus dem Wert von DISTANCE_FROM_ORIGIN gebildet wird. Die
resultierende Zeichenkette
"7
meters"
bildet
die Inhalte eines Tokens, das an die geordnete Tokensequenz für dieses
Manöver
angehängt
wird.
-
Beispiel 2
-
Der
Stilcode, der am Schlüssel
angehängt
ist, ist gleich "2". Dieser Stil ist
in einem Tokenkonfigurationsobjekt definiert als
x*(1,61) miles
-
Wenn
der Wert von DISTANCE_FROM_ORIGIN in der Manöverdatenstruktur gleich "7" ist, dann bildet die Erweiterungsfunktion 670 ein
Token aus diesem Schlüssel,
das die folgende Zeichenkette enthält:
"11,27 miles"
-
Formatierer.
Ein weiterer Faktor, der zu berücksichtigen
ist, wenn bestimmte Arten von Schlüsseln erläutert werden, bezieht sich
auf die Anzahl der Dezimalstellen, die in einer Zahl enthalten sein
sollen, oder die Anzahl der Zeichen, die in einem Namen enthalten
sein sollen. Wenn z. B. ein Schlüssel
verwendet wird, um eine Entfernung zum nächsten Manöver auszudrücken, können das Navigationssystem
und die geographische Datenbank eine Computerverarbeitungsfähigkeit
und eine Genauigkeit aufweisen, um die Entfernung zum nächsten Manöver auf
sieben Dezimalstellen zu bestimmen. Für einen Endbenutzer jedoch,
der mit dem Fahren eines Automobils beschäftigt ist, wäre dieser
Genauigkeitsgrad wahrscheinlich unnötig.
-
Die
Erweiterungsfunktion 670 im Tokengeneratorwerkzeug 700 sorgt
ferner für
die Auswahl der Anzahl von Stellen, in der bestimmte Arten von Schlüsseln ausgedrückt werden.
Außerdem
sorgt das Tokengeneratorwerkzeug für die Berücksichtigung von Ausnahmen,
falls angemessen, um Spracheigenheiten zu berücksichtigen. Das Tokengeneratorwerkzeug
sorgt dafür,
dass ein Schlüssel
einen ihm zugeordneten Formatierer aufweisen kann. Ein Formatierercode 688 wird
verwendet, um die Anzahl der Dezimalstellen zu definieren, die beim
Ausdrücken
bestimmter Token verwendet werden sollen, welche durch bestimmte
Schlüssel
repräsentiert
werden. Die Verwendung eines Formatierercodes ist im folgenden Beispiel
dargestellt:
<DISTANCE_TO_NEXT_MANEUVER%2>
-
Der
Wert nach dem Prozentzeichen ist der Formatierercode. Dieser Formatierercode
wird verwendet, um den Schlüssel
zu formatieren. Die Schlüsselerweiterungsfunktion
verwendet diese Information im Formatierercode, wenn die Token erstellt
werden. In diesem Beispiel ist die Entfernung zum nächsten Manöver auf nur
zwei Dezimalstellen begrenzt.
-
Der
Formatierercode kann verwendet werden, um Zeichennamen auf eine
spezifische Anzahl von Zeichen zu stutzen. Der Formatierercode kann
auf diese Weise verwendet werden, um die Anzeige bestimmter langer
geographischer Namen zu erleichtern. Wenn er mit Schlüsseln verwendet
wird, die Namen von Straßen, Städten oder
interessanten Punkten repräsentieren,
stutzt die Formatiererfunktion den Wert in den Schlüsseln auf
die Anzahl von Zeichen, die im Formatierercode spezifiziert ist.
-
Elementwertabbildungen.
Ein weiterer Faktor bezieht sich auf die Erweiterung anderer Arten
von Schlüsseln.
Bestimmte Arten von Schlüsseln
werden verwendet, um Daten zu repräsentieren, die einer Übersetzung
oder Abbildung unterliegen, wenn sie ausgehend von einem Wert in
der Manöverdatenstruktur
zu einem weiteren Wert im Token erweitert werden. Ein Beispiel eines
Schlüssels
dieser Art enthält
die Fahrtrichtung. Es kann erwünscht
sein, eine Manöveranweisung
wie z. B. "FAHRTRICHTUNG
NORDWEST AUF ROUTE 95" auf
einem Anzeigebildschirm bereitzustellen. Das Wort "NORDWEST" in der Manöveranweisung
wird aus einem Token hergeleitet, das ein Symbol enthält, welches
seinerseits aus einem Schlüssel
für die
Fahrtrichtung für
das Manöver
in der Manöverdatenstruktur
gebildet wurde. Ein Schlüssel
für die
Fahrtrichtung (z. B. <CONTEXT_HEADING>) bezieht sich auf
das Fahrtrichtungselement in der Manöverdatenstruktur (550(3)(5) in 5).
In der Manöverdatenstruktur
kann die Fahrtrichtung als eine Zahl ausgedrückt sein. Diese Zahl kann z.
B. in dem Bereich 0-255 liegen, wobei 0 Norden bezeichnet und jede
der anderen Zahlen (1-255) ausgehend hiervon eine relative Gradzahl
im Uhrzeigersinn bezeichnet. Die Erweiterungsfunktion sorgt für die Übersetzung
der Form, in der die Fahrtrichtung im Schlüssel ausgedrückt ist
(z. B. 223), in eine Form, die in einem Token enthalten ist, welches
dann als Wort (z. B. "NORDWEST") in einer Manöveranweisung
ausgedrückt
werden kann.
-
Um
diese Funktion zur Verfügung
zu stellen, verwendet die Erweiterungsfunktion 670 eine
Elementwertabbildung 680. In einer bevorzugten Ausführungsform
ordnet die Elementwertabbildung 680 die Werte, die die
Schlüssel
annehmen können,
nicht direkt den Zeichenketten zu. Stattdessen ordnet die Elementwertabbildung 680 die
Werte der Schlüssel
Symbolen zu. Diese Symbole werden anschließend in Token umgeformt. Diese
Symbole werden in der gleichen Weise verwendet wie die Symbole,
die zum Darstellen gewöhnlich
verwendeter Manöveranweisungen
verwendet werden. Genauer bilden diese Symbole entweder auf Zeichenketten
für eine
Texterläuterung
oder auf Audiodaten für
eine hörbare
Erläuterung
ab.
-
Um
dieses Merkmal zur Verfügung
zu stellen, weisen wenigstens einige Elemente der Manöverstruktur 550 eine
Manöverdatenstrukturelement-ID
auf. Ein Satz von Wert-zu-Token-Abbildungen ist jedem dieser Manöverstrukturelement-IDs
zugeordnet. Die Elementwertabbildung 680 sorgt für die Zuordnung
unterschiedlicher Symbole mit unterschiedlichen Werten in jedem
Feld der Manöverstruktur.
Wenn anschließend
ein Schlüssel
für dieses
Element erweitert wird und dieses Element einen Elementwert aufweist,
der für
dieses in einer Elementwertabbildung definiert ist, wird ein Token
erzeugt, das das zugeordnete Symbol enthält.
-
Zum
Beispiel kann ein Satz von Elementwertabbildungen für das Manöverdatenstrukturelement <CONTEXT_HEADING> definiert sein. Der
Satz kann acht Elementwerte für
die Richtungen "Nord", "Süd", "Ost" oder "West", "Nordost" und dergleichen
enthalten. Jedem dieser Elementwerte ist ein numerisches Symbol
zugeordnet, wie z. B. 1, 2, 3, 4, 5 und dergleichen. Wenn der Schlüssel <CONTEXT_HEADING> erweitert wird, verwendet
die Erweiterungsfunktion die Elementwertabbildung 680,
um das Symbol für
den Wert im Schlüssel
nachzuschlagen und erzeugt das entsprechende Token, das das Symbol
enthält.
-
Die
Verwendung von Elementwertabbildungen für bestimmte Arten von Schlüsseln trägt dazu
bei, das Tokengeneratorwerkzeug flexibel und sprachunabhängig zu
machen. Durch Erweitern des Schlüssels
auf ein Symbol anstelle einer Zeichenkette wird die Sprachunabhängigkeit
und die Formatunabhängigkeit
(Audio gegenüber
Video) beibehalten. Das im Token enthalte ne Symbol kann mittels
des Erläuterungswerkzeugs 700 auf
eine Zeichenkette, Sprachdaten oder Graphikdaten in irgendeiner
gewählter
Sprache abgebildet werden.
-
c. Ketten
-
Wie
oben erwähnt
worden ist, kann die Manöverausgabeliste 631 ferner
Ketten 674 enthalten. Ähnlich Symbolen
und Schlüsseln
treten Ketten in einer Ausgabeliste 631 auf, wenn ein erfolgreicher
(und nicht ersetzter) Fall für
dieses Manöver
die Kette in seiner Fallausgabe enthält. Eine Kette 674 umfasst
gewöhnliche
Zeichendaten. Ketten können
für eine
textförmige
Führung
nützlich
sein, wo die Inhalte der Kette visuell auf einem Anzeigebildschirm
dem Endbenutzer angezeigt werden. Wenn Ketten zu Token konvertiert
werden, bildet die Kette der Zeichendaten das Token, welches anschließend in
der Tokenliste für
dieses Manöver
eingeschlossen wird. Ketten können
auch verwendet werden, um Steuerzeichen zu enthalten, die für die Formatierung
der Textausgabe verwendet werden. Zum Beispiel kann eine Kette,
die aus einem einzelnen Leerzeichen besteht (z. B. " "), zwischen einem Symbol 668 und
einem Schlüssel 656 in
einer Ausgabeliste 631 platziert sein. Diese Kette wird
in ein Token konvertiert, das ein einzelnes Leerzeichen repräsentiert.
Wenn anschließend
das Manöver
dem Endbenutzer auf einem Anzeigebildschirm visuell angezeigt wird,
erscheint zwischen dem Text, der aus dem das Symbol enthaltende
Token hergeleitet wird, und dem Text, der in dem aus dem Schlüssel erweiterten
Token enthalten ist, ein Leerzeichen.
-
Ketten
können
für andere
Formatierungen verwendet werden, wie z. B. Tabellen, Zeilenrückläufe und dergleichen.
Herkömmliche
Steuerzeichen können
zu diesem Zweck verwendet werden.
-
Ketten
können
auch für
die Anzeige anderer Textdaten verwendet werden. Ketten können ferner
zur Erläuterung
von Sprachdaten unter Verwendung einer Text-zu-Sprache-Konversionssoftware
verwendet werden.
-
(4) Kombinierte Manöver
-
Es
gibt wenigstens einige Möglichkeiten,
wie Manöveranweisungen über eine
berechnete Route dem Endbenutzer eines Navigationsanwendungsprogramms
zur Verfügung
gestellt werden können.
Eine Möglichkeit
ist, alle Manöveranweisungen
dem Endbenutzer gleichzeitig zur Verfügung zu stellen. Eine weitere
Möglichkeit
ist, Manöveranweisungen
dem Endbenutzer zeitlich einzeln zur Verfügung zu stellen. Diese letztere Möglichkeit
kann verwendet werden, wenn der Endbenutzer die berechnete Route
fährt,
so dass die Manöveranweisung
dem Endbenutzer eine bestimmte Zeitspanne im Voraus bereitgestellt
wird, wenn das Manöver
erforderlich ist. Unabhängig
von der Art, in der die Manöveranweisungen
dem Endbenutzer bereitgestellt werden, können die Manöveranweisungen
aussagekräftiger
gemacht werden, wenn sie in Kollektionen oder Präsentationen organisiert sind.
Wenn z. B. ein Fahrer einen einzigen Linksabbiegevorgang an einer
nahenden Kreuzung durchzuführen
hat und anschließend
drei Meilen zu fahren hat, kann eine Manöveranweisung auf einem Anzeigebildschirm
dem Fahrer präsentiert
werden, die angibt: "BIEGE
AN DER NÄCHSTEN
KREUZUNG LINKS AB UND FAHRE 3 MEILEN." Wenn jedoch der Fahrer an einer nahenden
Kreuzung links abbiegen soll und anschließend rechts auf eine Auffahrt
100 Fuß nach
dem Linksabbiegevorgang rechts abbiegen soll, und anschließend 3 Meilen
fahren soll, kann eine Manöveranweisung
bereitgestellt werden, die angibt: "AN DER NÄCHSTEN KREUZUNG LINKS ABBIEGEN
UND ANSCHLIESSEND UNMITTELBAR RECHTS AUF DIE AUFFAHRT ABBIEGEN,
ANSCHLIESSEND DREI MEILEN FAHREN." Im letzteren Beispiel kann es, obwohl
das Manövererzeugungswerkzeug
separate Manöverdatenstrukturen
für das
Linksabbiegen an der Kreuzung und das Rechtsabbiegen auf die Rampe
erzeugt haben könnte,
vom Standpunkt des Endbenutzers her aussagekräftiger sein, über beide
Manöver
gleichzeitig informiert zu werden. Wenn daher Manöveranweisungen
einem Endbenutzer bereitgestellt werden, kann es wünschenswert
sein, mehr als ein Manöver
zusammenzufassen, wenn diese dem Endbenutzer präsentiert werden. Diese Betrachtung
gilt, egal ob die Manöver hörbar oder
sichtbar präsentiert
werden.
-
Bestimmte
Arten von Regeln können
in der Regeltabelle verwendet werden, um die Präsentation und die Gruppierung
von Manövern
zu berücksichtigen.
Zum Beispiel kann ein Fall in einem Regelsatz das Feld Entfernung-zum-nächsten-Manöver der Manöverdatenstruktur prüfen, und
dann, wenn es nicht leer ist, eine Fallausgabe enthalten, die Symbole
für die
Wörter
oder Phrase "DIE
ENTFERNUNG ZUM NÄCHSTEN
MANÖVER
IST" enthält, gefolgt
von einem Schlüssel,
der den Wert im Feld Entfernung-zum-nächsten-Manöver annimmt.
Da dieser Fall für
viele, wenn nicht die meisten, Manövertypen verwendet werden kann,
kann er als ein Fall erstellt werden, der nach jedem Manöver durchgeführt wird.
Auf diese Weise muss dieser Fall nicht in allen Regelsätzen für jeden
Manövertyp
wiederholt werden. Dieser Fall kann erstellt werden, um nach jedem Manöver ausgeführt zu werden,
indem er einem Manövertyp
(z. B. –3)
zugeordnet wird, und dafür
gesorgt wird, dass ein Fall mit dem Manövertyp –3 nach jedem Manöver ausgeführt wird.
-
Verschiedene
Arten von Regeln können
auf diese Weise erstellt werden. Für Formatierungszwecke kann
es z. B. erwünscht
sein, Zeilenumbrüche
oder Seitenumbrüche
nach einem angezeigten Manöver
einzufügen.
Regeln, die Fälle
enthalten, können
für diesen
Zweck erstellt werden, wobei diese Fälle nach jedem angezeigten
Manöver
ausgeführt
werden. Eine weitere Regel kann erstellt werden, um vor jedem Manöver ausgeführt zu werden,
um z. B. das Manöver
anhand der Nummer oder des Typs zu identifizieren.
-
Wenn
die Fahrmanöver
relativ dicht beieinander liegen, wie im obigen Beispiel, kann es
wünschenswert
sein, diese gemeinsam zu gruppieren, so dass sie dem Endbenutzer
als eine kombinierte Manöveranweisung
präsentiert
werden. Eine Regel kann erstellt werden, um auf Mehrfachmanöver zu prüfen. Diese
Regel würde
einen Fall enthalten, der das Mehrfachmanöverkennzeichen 550(4)(1) der
Manöverdatenstruktur
(in 5) prüft,
um zu bestimmen, ob ein Teil eines Mehrfachmanövers vorliegt. Trifft dies
zu, wird die Formatierung, die ein Manöver vom nächsten trennt, nur nach dem
Letzten einer Serie von Mehrfachmanövern verwendet. Auf diese Weise
können
Manöver,
die in verschiedenen Manöverdatenstrukturen
enthalten sind, dem Endbenutzer gleichzeitig als kombinierte Manöver präsentiert
werden.
-
E. ROUTENFÜHRUNGSWERKSZEUG/ERLÄUTERUNGSWERKZEUGE
-
Nachdem
das Tokengeneratorwerkzeug 600 die Liste der Token im Tokengeneratorobjekt 650 erstellt hat,
verwendet das Erläuterungswerkzeug 700 das
Tokengeneratorobjekt 650, um der Navigationsanwendung 210 Daten
zurückzugeben,
um die berechnete Route dem Endbenutzer zu erläutern. Die Art der vom Erläuterungswerkzeug 700 an
die Navigationsanwendung 210 zurückgegebenen Daten kann so konfiguriert
sein, dass sie den Hardware-Betriebsmitteln des Navigationssystems
entspricht. Wenn somit das Navigationssystem nur Textanweisungen
unterstützt,
enthält
die Art der vom Erläuterungswerkzeug 700 zurückgegebenen Daten
Textdaten, jedoch keine Audio- oder Graphikdaten.
-
Wenn
das Navigationssystem mehr als einen Typ von Routenführungserläuterungsformat
unterstützt, kann
die Navigationsanwendung 210 diese vom Erläuterungswerkzeug 700 zurückgegebenen
Daten anfordern, die einer bestimmten oder mehreren dieser Arten
entsprechen. Diese Anforderung von der Navigationsanwendung 210 kann
zum Zeitpunkt einer Anfrage zur Routenberechnung und Führung vom
Endbenutzer gestellt werden. Alternativ kann das Erläuterungswerkzeug 700 mit
Vorgaben von der Navigationsanwendung 210 konfigurierbar
sein, so dass die gleichen oder mehr Arten von Erläuterung
(Text, Sprache oder beides) zurückgegeben
werden.
-
Wie
in den 2 und 11 gezeigt ist, kann das Erläuterungswerkzeug 700 ein
oder mehrere Werkzeuge umfassen. In einer Ausführungsform enthält das Erläuterungswerkzeug 700 drei
Werkzeuge: ein Sprachführungswerkzeug 800,
ein Textführungswerkzeug 840 und
ein Graphikführungswerkzeug 870.
In alternativen Ausführungsformen
kann das Erläuterungswerkzeug 700 zusätzliche
Werkzeuge enthalten, oder alternativ kann das Erläuterungswerkzeug 700 weniger
als diese drei Werkzeuge enthalten, wie z. B. nur einen oder zwei
dieser Werkzeuge. Die Funktion dieser drei Erläuterungswerkzeuge wird im Folgenden
beschrieben.
-
Wie
in 11 gezeigt ist, wo zu erst auf das Sprachführungswerkzeug 800 Bezug
genommen wird, empfängt
das Sprachführungswerkzeug 800 die
im Tokengeneratorobjekt 650 enthaltene Tokenliste vom Tokengeneratorwerk zeug 600.
Das Sprachführungswerkzeug 800 wird
in einer Ausführungsform
verwendet, die Symbolaudiodatendateien 802 enthält. Diese
Symbolaudiodatendateien 802 können in der geographischen Datenbank 140 enthalten
sein, oder die Symbolaudiodatendateien 802 können alternativ
in einer weiteren Datenbank oder auf einem anderen Medium enthalten
sein, das für
das Sprachführungswerkzeug 800 zugänglich ist.
Jede dieser Symbolaudiodatendateien 802 enthält Daten,
die in Schall konvertiert werden können. Genauer enthält jede
dieser Symbolaudiodatendateien 802 Daten, die ein gesprochenes
Wort oder eine Phrase ausdrücken,
wenn sie unter Verwendung geeigneter Hardware und Software in Navigationssystem
wiedergegeben werden. Zum Beispiel können Symbolaudiodatendateien 802 für die gesprochenen
Wörter
und Phrasen für "ABBIEGEN", "LINKS", "BLEIBE AUF", "KREUZUNG" und dergleichen
bereitgestellt werden.
-
Wenn
das Sprachführungswerkzeug 800 die
Token verarbeitet, wird jedes Token in der Reihenfolge genommen,
in der es im Tokenerzeugungsobjekt 650 enthalten ist. Wie
oben erwähnt
worden ist, können
Token entweder Symbole oder Ketten sein. Jedes der Token, das ein
Symbol ist, bildet auf ein oder mehrere Symbolaudiodatendateien 802 ab.
Unter Verwendung eines Index 808 schlägt das Sprachführungswerkzeug 800 die
geeignete Symbolaudiodatendatei, die dem Symbol zugeordnet ist,
nach. Dieser Index 808 kann in der geographischen Datenbank 140 enthalten
sein, oder alternativ kann der Index 808 in einer weiteren
Datenbank oder auf einem anderen Medium enthalten sein, das dem
Sprachführungswerkzeug 800 zugänglich ist.
Das Sprachführungswerkzeug 800 greift
auf die geeignete Symbolaudiodatei zu und gibt diese an die Navigationsanwendung
zurück.
Die Sprachregeln 630 (in 7), die
die Token im Tokengeneratorobjekt 650 bilden, ordnen diese
anschließend
in der richtigen Sequenz für
die Spracherläuterung
an. Wenn daher das Sprachgeneratorwerkzeug 800 die Audiodatendateien 802,
die von den Token repräsentiert
werden, an die Navigationsanwendung 210 zurückgibt,
behält
das Sprachgeneratorwerkzeug 800 diese in der Reihenfolge,
die den Token entspricht, aus denen diese hergeleitet wurden.
-
Wie
oben erwähnt
worden ist, können
Token auch Ketten sein. Das Sprachführungswerkzeug 800 kann
ferner Token verarbeiten, die Ketten sind.
-
Ketten
können
als Token verwendet werden, um die Namen von Straßen, Stadtbezirken,
interessanten Punkten und dergleichen auszudrücken. Die Ketten, die Token
bilden, können
aus der geographischen Datenbank 140 hergeleitet werden,
die Zeichenkettendaten für
die Namen von Straßen,
Stadtbezirken, interessanten Punkten und dergleichen enthält. Diese
Ketten können
aus Schlüsseln
hergeleitet werden, die Elemente der Manöverdatenstruktur bezeichnen.
Ketten, die Token bilden, können
ferner in den Fallausgaben in den Regeltabellen im Tokengenerator-Konfigurationsobjekt 620 definiert
sein. Token, die Ketten sind, weisen keine ihnen zugeordneten Symbolaudiodatendateien 802 auf.
Es kann daher ein Text-zu-Sprache-Softwareprogramm 812 verwendet
werden, um eine Audiodatendatei zum Ausdrücken der Kette der Daten im
Token zu erzeugen. Das Text-zu-Sprache-Softwareprogramm 812 kann
als Teil des Sprachführungswerkzeugs 800 enthalten
sein, oder alternativ kann das Text-zu-Sprache-Softwareprogramm 812 als Teil
der Navigationsanwendung enthalten sein. Wenn das Sprachführungswerkzeug 800 ein
Token heranzieht, das eine Kette von Daten ist, erzeugt das Text-zu-Sprache-Softwareprogramm 812 eine
Audiodatendatei aus der Kette der Zeichendaten, die im Token enthalten
sind. Das Text-zu-Sprache-Softwareprogramm 812 kann Techniken
verwenden, die im Stand der Technik zur Durchführung dieser Funktion bekannt
sind. Das Sprachführungswerkzeug 800 ordnet
die vom Text-zu-Sprache-Softwareprogramm 812 erzeugten
Audiodatendateien mit den Audiodatendateien 802, die von
der geographischen Datenbank erhalten werden, an, um die im Tokengeneratorobjekt
für die
Token spezifizierte Sequenz beizubehalten.
-
In
einer alternativen Ausführungsform
enthält
das Sprachführungswerkzeug 800 kein
Text-zu-Sprache-Softwareprogramm. Bei dieser Alternative ist das
Tokengenerator-Konfigurationsobjekt 620 so konfiguriert,
dass es einen Satz von Sprachregeln 630(V) verwendet, die
ein Tokengeneratorobjekt 620 erzeugen, in welchem keines
der Token eine Kette ist. Stattdessen erzeugen gemäß dieser
Alternative die Sprachregeln 630(V) Fallausgaben, die in
allen Token resultieren, die Symbole sind, die für Symbolaudiodateien 820 zur
Erläuterung
durch das Sprachführungswerkzeug 800 verfügbar sind.
-
Wie
oben erwähnt
worden ist, kann das Erläuterungswerkzeug 700 ferner das
Textführungswerkzeug 840 enthalten.
Das Textführungswerkzeug 814 arbeitet ähnlich wie
das Sprachführungswerkzeug 800.
Das Textführungswerkzeug 840 empfängt die
Tokenliste, die im Tokengeneratorobjekt 650 enthalten ist.
Das Textführungswerkzeug 840 wird
in einer Ausführungsform
verwendet, die Symboltextdaten 842 enthält. Die Symboltextdaten 842 können in
der geographischen Datenbank 140 enthalten sein, oder alternativ
können
die Symboltextdatendateien 842 in einer weiteren Datenbank
oder auf einem weiteren Medium enthalten sein, das dem Textführungswerkzeug 840 zugänglich ist.
In der in 11 gezeigten Ausführungsform
sind die Symboltextdaten 842 in einem Textführungs-Konfigurationsobjekt 847 enthalten,
das Teil des Textführungswerkzeugs 840 ist.
Die Symboltextdaten 842 enthalten Zeichentext, der als
Text angezeigt werden kann, wie z. B. als Wort oder Phrase, unter
Verwendung geeigneter Hardware und Software. Zum Beispiel können die
Symboltextdaten 842 für
die Wörter
und Phrasen für "ABBIEGEN", "LINKS", "BLEIBEN AUF", "KREUZUNG" und dergleichen
bereitgestellt werden.
-
Das
Textführungswerkzeug 840 verarbeitet
die Token in der Reihenfolge, in der sie im Tokenerzeugungsobjekt 650 enthalten
sind. Wie oben erwähnt
worden ist, können
Token entweder Symbole oder Ketten sein. Jedes der Token, das ein
Symbol ist, bildet auf ein oder mehrere Symboltextdaten 842 ab.
Unter Verwendung eines Index 848 schlägt das Textführungswerkzeug 840 die
geeigneten Symboltextdatendateien 842, die dem Symbol im
Token zugeordnet sind, nach. Dieser Index 848 kann in der
geographischen Datenbank 140 enthalten sein, oder alternativ
kann der Index 848 in einer weiteren Datenbank oder auf
einem weiteren Medium enthalten sein, das dem Textführungswerkzeug 840 zugänglich ist.
In der in 11 gezeigten Ausführungsform
ist der Index 848 im Textführungs-Konfigurationsobjekt 847 enthalten,
das Teil des Textführungswerkzeugs 840 ist.
Das Textführungswerkzeug 840 greift
auf die Symboltextdaten 842 zu und gibt diese an die Navigationsanwendung
zurück.
Das Tokengeneratorwerkzeug 600 spezifiziert eine geeignete
Reihenfolge für die
Token im Tokengeneratorobjekt. Das Textführungswerkzeug 840 behält die Textdaten
aus den Symboltextdaten 842 in dieser gleichen Reihenfolge
bei.
-
Das
Textführungswerkzeug 840 verarbeitet
ferner Token, die Ketten sind.
-
Ketten
werden verwendet, um Namen von Straßen, Stadtbezirken, interessanten
Punkten und dergleichen auszudrücken.
Diese Namen sind als Daten in der geographischen Datenbank 140 enthalten
und können aus
Schlüsseln
hergeleitet werden, die Nummern der Manöverdatenstruktur 550 bezeichnen.
Wenn das Textführungswerkzeug 840 ein
Token heranzieht, das eine Kette von Daten ist, wird es mit dem
Rest der Ketten, die aus dem Rest der Token hergeleitet werden,
angeordnet. Die Reihenfolge, in der das Token im Tokengeneratorobjekt
angeordnet worden ist, wird beibehalten. Die Textregeln, die die
Token im Tokengeneratorobjekt 650 bilden, ordnen diese
in der richtigen Sequenz für
die Texterläuterung
an. Das Textgeneratorwerkzeug 842 gibt somit die von den
Token repräsentierten
Textdaten in der Reihenfolge zurück,
in der die Token im Tokengeneratorobjekt angeordnet sind.
-
Das
Erläuterungswerkzeug 700 kann
ferner das Graphikführungswerkzeug 870 enthalten.
Das Graphikführungswerkzeug 870 arbeitet ähnlich wie
das Sprachführungswerkzeug 800 und
das Textführungswerkzeug 840.
Das Graphikführungswerkzeug 870 empfängt die
Tokenliste, die im Tokengeneratorobjekt 650 enthalten ist.
Das Graphikführungswerkzeug 870 wird
in einer Ausführungsform
der geographischen Datenbank 140 verwendet, die Symbolgraphikdatendateien 872 enthält. Diese
Symbolgraphikdatendateien 872 können in der geographischen
Datenbank 140 enthalten sein, oder alternativ können die
Symbolgraphikdatendateien 872 in einer weiteren Datenbank
oder auf einem weiterem Medium enthalten sein, das den Graphikführungswerkzeug 870 zugänglich ist.
Jede dieser Symbolgraphikdatendateien 872 enthält graphische
Daten, die auf einer visuellen Computeranzeigevorrichtung angezeigt
werden können.
Zum Beispiel können
diese Symbolgraphikdatendateien 872 eine Anzeige für eine Kreuzung,
eine Einmündung,
eine Wendeschleife, eine Eisenbahnkreuzung und dergleichen enthalten.
-
Das
Graphikführungswerkzeug 870 verarbeitet
die Token in der Reihenfolge, in der sie im Tokenerzeugungsobjekt 650 enthalten
sind. Wie oben erwähnt
worden ist, können
Token entweder Symbole oder Ketten sein. Jedes der Token, das ein
Symbol ist, bildet auf ein oder mehrere Symbolgraphikdatendateien 872 ab. Unter
Verwendung eines Index 878 schlägt das Graphikführungswerkzeug 870 die
geeigneten Symbolgraphikdatendateien 872, die dem Symbol
im Token zugeordnet sind, nach. Dieser Index 878 kann in
der geographischen Datenbank 140 enthalten sein, oder alternativ
kann der Index 878 in einer weiteren Datenbank oder auf einem
weiteren Medium enthalten sein, das dem Graphikführungswerkzeug 870 zugänglich ist.
Das Graphikführungswerkzeug 870 greift
auf die Symbolgraphikdatendateien 872 zu und gibt diese
an die Navigationsanwendung 210 zurück. Das Tokenerzeugungswerkzeug 600 spezifiziert
eine geeignete Reihenfolge für
die Token im Tokengeneratorobjekt. Das Graphikführungswerkzeug 870 behält die Daten
aus dem Symbolgraphikdatendateien 872 in dieser gleichen
Reihenfolge bei.
-
Wie
oben erwähnt
worden ist, kann das Erläuterungswerkzeug 700 mehr
als entweder das Sprachführungswerkzeug 800,
das Textführungswerkzeug 840 oder
das Graphikführungswerkzeug 870 enthalten.
Wenn das Erläuterungswerkzeug 700 mehr
als eines dieser Werkzeuge enthält,
kann die vom Routenberechnungswerkzeug berechnete Route dem Endbenutzer
in mehr als einem Format erläutert
werden. Wenn z. B. die Erläuterungswerkzeuge 700 sowohl
das Textführungswerkzeug 840 als
auch das Sprachführungswerkzeug 800 enthalten,
kann die vom Routenberechnungswerkzeug berechnete Route dem Endbenutzer
sowohl mit hörbaren
als auch mit sichtbaren Anweisungen erläutert werden. Die hörbaren Anweisungen
können über geeignete Hardware
in der Benutzerschnittstelle 131 bereitgestellt werden,
wie z. B. einen Lautsprecher, während
die sichtbaren Anweisungen mittels eines Anzeigebildschirms in der
Benutzerschnittstelle 131 bereitgestellt werden können. Sowohl
die sichtbaren Anweisungen als auch die hörbaren Anweisungen können vom
Erläuterungswerkzeug
unter Verwendung des gleichen Tokengeneratorobjekts bereitgestellt
werden, das vom Tokengeneratorwerkzeug 600 erzeugt worden
ist. Alternativ können
die sichtbaren Anweisungen und die hörbaren Anweisungen vom Erläuterungswerkzeug
unter Verwendung zweier separater Tokengeneratorobjekte bereitgestellt
werden, die vom Tokengeneratorwerkzeug 600 erzeugt worden
sind. In dieser letzteren Ausführungsform
verwendet das Tokengeneratorwerkzeug einen Regelsatz zum Erzeugen
eines ersten Tokengeneratorobjekts, der auf die sichtbare Präsentation
zugeschnitten ist, und verwendet einen weiteren Regelsatz zum Erzeugen
eines zweiten Tokengeneratorobjekts, der auf die hörbare Präsentation
zugeschnitten ist. Das auf die sichtba re Präsentation zugeschnittene Tokengeneratorobjekt
kann mehr Einzelheiten enthalten, wie z. B. Namen und dergleichen,
da die Informationen, die zum Präsentieren
dieser Informationen erforderlich sind, in der geographischen Datenbank
leicht verfügbar
sind. Das Tokengeneratorobjekt, das auf die hörbare Präsentation zugeschnitten ist,
enthält
weniger Einzelheiten und kann Token für Straßennamen und dergleichen weglassen, um
somit die Notwendigkeit zur Bereitstellung der Text-zu-Sprache-Konversionssoftware
zu vermeiden.
-
VI. Alternative Ausführungsformen
-
Konfigurierbarkeit
Einer der Vorteile, die die flexible Auslegungsarchitektur des Tokengeneratorwerkzeugs
bietet, ist, dass es von einem Benutzer modifiziert, verbessert,
weiterentwickelt und erweitert werden kann. In diesem Zusammenhang
ist der Benutzer nicht unbedingt der endgültige Endbenutzer, der ein
Individuum sein kann, das wirklich das Navigationsanwendungsprogramm
in einem Navigationssystem benutzt. Stattdessen kann der Benutzer
ein Zwischenkunde sein, der das Tokengeneratorwerkzeug mit anderer
Software kombiniert und seinerseits ein System oder ein Programm
verkauft, dass das Tokengeneratorwerkzeug enthält, das in einer solchen anderen
Software für
den endgültigen
Endbenutzer enthalten ist.
-
In
der obenbeschriebenen Ausführungsform
wurde die Navigationsanwendung als in einem Navigationssystem installiert
beschrieben, das in einem Fahrzeug installiert war. In alternativen
Ausführungsformen kann
die Navigationsanwendung in anderen Arten von Plattformen installiert
sein, einschließlich
Personalcomputern, tragbaren Rechenvorrichtungen, Telephonen und
dergleichen. Die Navigationsanwendung kann ferner auf einem Netzwerk
installiert sein und einem Klienten im Netz verfügbar gemacht werden. In alternativen
Ausführungsformen
können
einige Teile der Navigationsanwendung lokal angeordnet sein und
andere Teile der Navigationsanwendung können entfernt angeordnet sein.
Das Netzwerk kann ein drahtloses Netzwerk sein. Die Navigationsanwendung
oder Teile derselben können über das
Internet verfügbar
gemacht werden.
-
Es
kann eine andere Terminologie verwendet werden, um die physikalischen Merkmale
oder die Daten zu beschreiben, die die physikalischen Merkmale repräsentieren.
Es klar, dass der hier offenbarte Erfindungsgegenstand nicht auf
irgendeine bestimmte Terminologie beschränkt ist, die ähnliche
Konzepte ausdrückt.
-
Die
vorangehende genaue Beschreibung soll als erläuternd und nicht als einschränkend betrachtet werden,
wobei klar ist, dass die beigefügten
Ansprüche
den Umfang der Erfindung definieren sollen.
-
ANHANG
-
(Beispiel-Tabellen)
-
©1998
NAVIGATION TECHNOLOGIES CORPORATION
-
TABELLE 1
-
BEISPIEL-MANÖVERREGELN
FÜR MANÖVERGENERATOR
-
-
TABELLE 2
-
BEISPIEL-RATSCHLAGREGELN
FÜR MANÖVERGENERATOR
-
TABELLE 3
-
BELSPIEL-REGELTABELLE
FÜR TOKENGENERATOT
-
-
-
-
-
-
-
-
-
-
-
TABELLE 4
-
BEISPIEL-(SPRACH)-REGELTABELLE
FÜR TOKENGENERATOR
-
-
-
TABELLE 5
-
-
-
-
-
-