SemanticResultValue Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt einen semantischen Wert dar und ordnet optional den Wert einer Komponente einer Spracherkennungsgrammatik zu.
public ref class SemanticResultValue
public class SemanticResultValue
type SemanticResultValue = class
Public Class SemanticResultValue
- Vererbung
-
SemanticResultValue
Beispiele
Im folgenden Beispiel wird ein Grammar zurückgegeben, das den Befehl "Set/Change/Alter Foreground/Background ... [Farbliste]". SemanticResultValue und SemanticResultKey -Instanzen (in Verbindung mit Choices - und GrammarBuilder -Objekten) werden verwendet, um Semantik zu definieren, die bei der Erkennung analysiert werden kann. Die analysierte Semantik bestimmt, welche Farbe angefordert wurde und ob der Vordergrund oder Hintergrund geändert werden soll.
private Grammar FgBgColorGrammar()
{
Grammar grammar = null;
// Allow the command to begin with set, alter, change.
Choices introChoices = new Choices();
foreach (string introString in new string[] { "Change", "Set", "Alter" })
{
GrammarBuilder introGB = new GrammarBuilder(introString);
introChoices.Add(new SemanticResultValue(introGB, String.Format("Command: {0}", introString)));
}
GrammarBuilder cmdIntro = new GrammarBuilder(introChoices);
// Define the arguments for the command to select foreground or background
// and to change their color as semantic values.
Choices fgOrbgChoice = new Choices();
GrammarBuilder backgroundGB=new GrammarBuilder("background");
backgroundGB.Append(new SemanticResultValue(true));
fgOrbgChoice.Add(backgroundGB);
fgOrbgChoice.Add((GrammarBuilder)new SemanticResultValue("foreground", false));
SemanticResultKey fgOrbgChoiceKey = new SemanticResultKey("BgOrFgBool", fgOrbgChoice);
Choices colorChoice = new Choices();
foreach (string colorName in System.Enum.GetNames(typeof(KnownColor)))
{
// Use implicit conversion of SemanticResultValue to GrammarBuilder.
colorChoice.Add(
(GrammarBuilder) (new SemanticResultValue(colorName, (Color.FromName(colorName)).Name)));
}
// Create a GrammarBuilder for CmdArgs to be appended to CmdIntro using
// semantic keys.
GrammarBuilder cmdArgs = new GrammarBuilder();
cmdArgs.Append(new SemanticResultKey("BgOrFgBool", fgOrbgChoice));
cmdArgs.AppendWildcard();
cmdArgs.Append(new SemanticResultKey("colorStringList", colorChoice));
GrammarBuilder cmds =
GrammarBuilder.Add(
cmdIntro,
new GrammarBuilder(new SemanticResultKey("Cmd Args", cmdArgs)));
grammar = new Grammar(cmds);
grammar.Name = "Tree [Set,change,alter] [foreground,background] * color";
return grammar;
}
Hinweise
Die Verwendung von SemanticResultValue - und SemanticResultKey -Objekten in Verbindung mit GrammarBuilder und Choicesist die einfachste Möglichkeit, eine semantische Struktur für eine Grammarzu entwerfen. Auf semantische Informationen für einen Ausdruck wird zugegriffen, indem eine instance von über die Semantics -Eigenschaft von SemanticValueabgerufen RecognizedPhrasewird.
Hinweis
Von -Objekten verwaltete SemanticResultValue Werte werden von Object Instanzen definiert, die an ihre Konstruktoren übergeben werden. Der zugrunde liegende Typ Object muss , int
, float
oder string
seinbool
. Jeder andere Typ verhindert die Erstellung eines Grammar instance mit SemanticResultValue.
Die typische Verwendung eines SemanticResultValue instance ordnet die instance einer erkennbaren Komponente eines zuGrammar, z. B. einem Ausdruck, einer Regel oder einem Choices Objekt. Wenn die zugeordnete Komponente als Teil eines Erkennungsvorgangs verwendet wird, wird verwendet SemanticResultValue , um einen Wert in der Semantik des zurückgegebenen Ausdrucks zu definieren.
Es gibt zwei grundlegende Methoden zum Zuordnen eines SemanticResultValue instance zu einem Grammatikelement, abhängig vom Konstruktor, der zum Erstellen von SemanticResultValueverwendet wird.
Wenn nur der Wert (angegeben durch eine instance von Object) zum Erstellen eines SemanticResultValue Objekts verwendet wird, wird zusätzlich SemanticResultValue zu einem GrammarBuilder -Objekt der grammatikspezifischen Komponente zugeordnet, die ihm vorangestellt ist.
Wenn für instance im codefragment unten ein Grammar mit diesem GrammarBuilder instance konstruiertes das Wort "background" erkennt, wird in der erkannten Ausdruckssemantik der Wert von
true
festgelegt.GrammarBuilder backgroundGB=new GrammarBuilder("background"); backgroundGB.Append(new SemanticResultValue(true));
Weitere Informationen finden Sie in der Beschreibung von SemanticResultValue(Object).
Wenn ein Zeichenfolgenwertbegriff oder eine bestimmte GrammarBuilder instance zusammen mit einem Object verwendet wird, der einen SemanticResultValue Wert angibt, wird dieser Wert automatisch dem Zeichenfolgenwertbegriff oder dem GrammarBuilder instance zugeordnet. Wenn der Ausdruck oder GrammarBuilder das Objekt beim Erkennungsprozess verwendet wird, wird der Wert der Semantik des erkannten Ausdrucks zugewiesen.
Das folgende Beispiel veranschaulicht dies und entspricht funktional dem vorherigen Beispiel, in dem explizite Aufrufe von Append und SemanticResultValue(Object)verwendet wurden. Wenn die Erkennungslogik das Wort "background" verwendet, wird der Wert
true
der erkannten Semantik hinzugefügt.fgOrbgChoice.Add((GrammarBuilder)new SemanticResultValue("background", true));
Weitere Informationen finden Sie in der Beschreibung von SemanticResultValue(GrammarBuilder, Object) und SemanticResultValue(String, Object).
Um von einem Grammar bei der Erkennung verwendet zu werden, müssen alle SemanticResultValue Instanzen einem der SemanticValue von Grammardiesem verwendeten -Objekte zugeordnet sein. Dies erfolgt durch Zuordnen eines semantischen Schlüssels zu .SemanticResultValue
Semantische Schlüssel können mithilfe eines SemanticResultKey -Objekts explizit an eine SemanticResultValueangefügt werden. SemanticResultValue -Instanzen, die nicht explizit an einen Schlüssel angefügt sind, werden an den Stammschlüssel des Standardschlüssels SemanticValueangefügt.
Nachdem ein SemanticResultValue verwendet wurde, um festzulegen Value, ob er mit dem Standardstammschlüssel oder durch einen bestimmten SemanticResultKeygekennzeichnet ist, darf dieser Wert nicht geändert werden, da sonst bei Erkennungsvorgängen eine Ausnahme auftritt.
Im folgenden Beispiel wird eine Ausnahme ausgelöst, da der Stamm Value eines Grammarfestgelegt und geändert wird.
GrammarBuilder gb=new GrammarBuilder();
gb.Append(new SemanticResultValue("One"));
gb.Append(new SemanticResultValue("Two"));
Andererseits ist der Code im folgenden Beispiel zulässig. Obwohl mehrere Instanzen von SemanticResultValuedefiniert werden, sind sie in einem Choices -Objekt enthalten, und nur eine wird jemals verwendet, um den Wert des Schlüssels bgOrfgText
festzulegen.
Choices fgOrbgChoice = new Choices();
fgOrbgChoice.Add((GrammarBuilder)new SemanticResultValue("background"));
fgOrbgChoice.Add((GrammarBuilder)new SemanticResultValue("foreground"));
SemanticResultKey fgOrbgChoiceKey = new SemanticResultKey("BgOrFgText", fgOrbgChoice);
Konstruktoren
SemanticResultValue(GrammarBuilder, Object) |
Initialisiert eine neue Instanz der SemanticResultValue-Klasse und ordnet einem GrammarBuilder-Objekt einen semantischen Wert zu. |
SemanticResultValue(Object) |
Initialisiert eine neue Instanz der SemanticResultValue-Klasse und gibt einen semantischen Wert an. |
SemanticResultValue(String, Object) |
Initialisiert eine neue Instanz der SemanticResultValue-Klasse und ordnet einem String-Objekt einen semantischen Wert zu. |
Methoden
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
ToGrammarBuilder() |
Gibt eine Instanz von GrammarBuilder zurück, die aus der aktuellen SemanticResultValue-Instanz konstruiert wurde. |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |