Informationen zu erweiterten linguistischen Diensten
Extended Linguistic Services (ELS) wird als DLL (Dynamic Link Library) implementiert, die eine Vielzahl von linguistischen Unterstützungsfunktionen für Text bereitstellt, die von der Anwendung angegeben werden. Die Technologie umfasst die ELS-Plattform und Plug-Ins für mehrere vordefinierte linguistische Diensttypen, auf die die Anwendung über die Plattform zugreifen kann.
Hinweis
Das ELS-Modul wird automatisch mit Windows 7 und höher installiert.
ELS-Plattform
Die ELS-Plattform ist die Schnittstelle zwischen Ihrer Anwendung und den ELS-Diensten. Es bietet eine einfache Möglichkeit, verschiedene Arten von linguistischen Funktionen über dieselbe API zu implementieren, die es der Anwendung ermöglicht, auf bestimmte Dienste zuzugreifen und diese zu verwenden. Weitere Informationen zur API finden Sie unter Referenz zu erweiterten linguistischen Diensten.
Hinweis
Wenn die Anwendung eine der ELS-API-Funktionen aufruft, weist die Plattform Arbeitsspeicher und Ressourcen zu, die für die Kommunikation mit den Diensten erforderlich sind. Die Anwendung ist dafür verantwortlich, die Plattform erneut aufzurufen, um diese Ressourcen freizugeben.
Die Plattform wird im virtuellen Speicherbereich der Anwendung ausgeführt, und der gesamte zugeordnete Arbeitsspeicher ist Teil dieses Speicherplatzes. Daher muss Ihre Anwendung nur eine Verknüpfung mit der ELS-Komponenten-DLL (Elscore.dll) herstellen, indem sie mit Elscore.lib verknüpft oder Elscore.dll dynamisch lädt.
ELS-Dienste
Für Windows 7 und höher unterstützt die ELS-Plattform nur die folgenden vordefinierten Dienste.
Hinweis
Zukünftige Versionen von ELS unterstützen zusätzliche Dienste, die von Microsoft oder Dienstanbietern bereitgestellt werden.
Jeder Dienst ist einer Dienstkategorie zugeordnet, die beschreibt, was der Dienst tut. Die Kategorie wird durch eine nicht lokalisierbare Zeichenfolge dargestellt. Es wird von Anwendungen verwendet, um verfügbare Dienste aufzulisten. Die aktuellen Dienstkategorien sind:
- "Spracherkennung"
- "Skripterkennung"
- "Transliteration"
Die Plattform verwendet Dienstmetadaten, um die von der Anwendung angeforderten Dienste aufzulisten. Eigenschaften wie die GUID (Globally Unique Identifier), unterstützte Eingabe- und Ausgabesprachen und -skripts sowie die Dienstkategorie können von der Anwendung verwendet werden, um die gewünschten ELS-Dienste aufzulisten.
Jeder ELS-Dienst wird als Plug-In implementiert, das von einer DLL unterstützt wird, die auf dem Betriebssystem installiert werden kann, damit die ELS-Plattform ihn erkennen und verwenden kann. Dienste können bei Bedarf eigene Unterdienste verfügbar machen.
Haupt-ELS-Vorgänge
In diesem Abschnitt werden die von der ELS-Plattform unterstützten Standard-Vorgänge beschrieben. Die Plattform unterstützt sowohl synchrone als auch asynchrone Aufrufmodi. Der asynchrone Aufrufmodus verwendet einen Anwendungsthreadpool, um Threads für die Verarbeitung von Anforderungen zu planen.
Hinweis
Da die Plattform einen asynchronen Modus unterstützt, müssen ELS-Dienste diese Art von Funktionalität nicht selbst implementieren.
Dienstaufzählung
Die ELS-Plattform lädt und verwaltet alle ELS-Dienste, sodass der Betrieb für die Anwendung transparent wird. Die Anwendung listet die verfügbaren Dienste auf, indem sie MappingGetServices aufruft. Programmieranweisungen finden Sie unter Enumerating and Freeing Services( Enumerating and Freeing Services).
Hinweis
Aus Leistungsgründen empfiehlt es sich, die verfügbaren Dienste von Ihrer Anwendung nur einmal aufzuzählen. Die ELS-Plattform überprüft die Dienste bei der nächsten Enumeration erneut, um sicherzustellen, dass die Enumerationsergebnisse immer aktuell sind.
Texterkennung
Nach der Dienstenumeration ruft die Anwendung die MappingRecognizeText-Funktion auf, um einen bestimmten ELS-Dienst zum Zuordnen eines beliebigen Textbereichs von Eingabetext zu Ausgabetext zu verwenden. Ein Beispiel für die Texterkennung ist die Verwendung eines Spracherkennungsdiensts, der ein Textsegment empfängt und dessen wahrscheinlichste Sprache erkennt.
Nachdem der Dienst den Text erkannt hat, gibt MappingRecognizeText eine MAPPING_PROPERTY_BAG-Struktur zurück, die mit Ausgabedaten und Eigenschaften aufgefüllt ist, die vom Dienst erstellt wurden. Um Speicherverluste zu vermeiden, muss die Anwendung den Eigenschaftenbehälter durch Aufrufen von MappingFreePropertyBag für jedes Mal freigeben, wenn der MappingRecognizeText S_OK zurückgibt. In der Regel erfolgt dies, wenn die Anwendung die Ausgabedaten verwendet, oder wenn die Ausgabedaten nicht mehr relevant sind, weil der Eingabebereich des Texts geändert, z. B. bearbeitet oder gelöscht wurde. Wenn der Eigenschaftenbehälter freigegeben wird, wird MappingFreePropertyBag zurückgegeben.
Programmieranweisungen für die Texterkennung finden Sie unter Anfordern der Texterkennung.
Dienstbeendigung
Wenn Ihre Anwendung keine ELS-Dienste mehr benötigt, ruft sie MappingFreeServices auf, bevor sie beendet wird. Weitere Informationen finden Sie unter Enumerating and Freeing Services( Enumerating and Freeing Services).
Versionskontrolle
Zukünftige Versionen von ELS ermöglichen es, die ELS-Dienste zu aktualisieren. Die Anwendung kann die Versionsnummern der MAPPING_SERVICE_INFO Struktur überprüfen, um Änderungen an den Diensten zu erkennen.
Hinweis
Ihre ELS-Anwendung sollte nicht davon ausgehen, dass verschiedene Versionen desselben Diensts genau die gleichen Ergebnisse abrufen können.