interpret-Methodeinterpret Method

Die interpret-Methode akzeptiert eine Abfragezeichenfolge in natürlicher Sprache und gibt formatierte Interpretationen der Benutzerabsicht basierend auf der Grammatik und den Indexdaten zurück.The interpret method takes a natural language query string and returns formatted interpretations of user intent based on the grammar and index data. Als interaktives Suchfeature kann diese Methode aufgerufen werden, während die einzelnen Zeichen vom Benutzer eingegeben werden. Hierbei ist der Parameter complete auf 1 festgelegt, um Vorschläge der automatischen Vervollständigung zu aktivieren.To provide an interactive search experience, this method may be called as each character is entered by the user with the complete parameter set to 1 to enable auto-complete suggestions.

AnforderungRequest

http://<host>/interpret?query=<query>[&<options>]

NAMEName WertValue BESCHREIBUNGDescription
queryquery TextzeichenfolgeText string Vom Benutzer eingegeben Abfrage.Query entered by user. Wenn der complete-Parameter auf „1“ gesetzt ist, wird die Abfrage als Präfix für die Generierung von Vorschlägen der automatischen Vervollständigung für Abfragen interpretiert.If complete is set to 1, query will be interpreted as a prefix for generating query auto-completion suggestions.
completecomplete „0“ (Standardwert) oder „1“0 (default) or 1 „1“ bedeutet, dass Vorschläge für die automatische Vervollständigung basierend auf der Grammatik und den Indexdaten generiert werden.1 means that auto-completion suggestions are generated based on the grammar and index data.
countcount Zahl (default=10)Number (default=10) Maximale Anzahl der zurückzugebenden Interpretationen.Maximum number of interpretations to return.
offsetoffset Zahl (default=0)Number (default=0) Index der ersten zurückzugebenden Interpretation.Index of the first interpretation to return. Zum Beispiel gibt count=2&offset=0 die Interpretationen „0“ und „1“ zurück.For example, count=2&offset=0 returns interpretations 0 and 1. count=2&offset=2 gibt die Interpretationen „2“ und „3“ zurück.count=2&offset=2 returns interpretations 2 and 3.
timeouttimeout Zahl (default=1000)Number (default=1000) Timeout in Millisekunden.Timeout in milliseconds. Nur die vor Ablauf des Timeouts gefundenen Interpretationen werden zurückgegeben.Only interpretations found before the timeout has elapsed are returned.

Mithilfe der Parameter count und offset kann eine große Anzahl von Ergebnissen inkrementell über mehrere Anforderungen abgerufen werden.Using the count and offset parameters, a large number of results may be obtained incrementally over multiple requests.

Antwort (JSON)Response (JSON)

JSONPathJSONPath BESCHREIBUNGDescription
$.query$.query Der query-Parameter aus der Anforderung.query parameter from the request.
$.interpretations$.interpretations Array mit 0 oder mehr Möglichkeiten, die Eingabeabfrage an die Grammatik anzupassen.Array of 0 or more ways to match the input query against the grammar.
$.interpretations[*].logprob$.interpretations[*].logprob Die relative Logarithmuswahrscheinlichkeit der Interpretation (<= 0).Relative log probability of the interpretation (<= 0). Höhere Werte sind wahrscheinlicher.Higher values are more likely.
$.interpretations[*].parse$.interpretations[*].parse XML-Zeichenfolge, die zeigt, wie die einzelnen Teile der Abfrage interpretiert wurden.XML string that shows how each part of the query was interpreted.
$.interpretations[*].rules$.interpretations[*].rules Ein Array von 1 oder mehreren, in der Grammatik definierten Regeln, die bei der Interpretation aufgerufen wurden.Array of 1 or more rules defined in the grammar invoked during interpretation.
$.interpretations[*].rules[*].name$.interpretations[*].rules[*].name Name der Regel.Name of the rule.
$.interpretations[*].rules[*].output$.interpretations[*].rules[*].output Semantische Ausgabe der Regel.Semantic output of the rule.
$.interpretations[*].rules[*].output.type$.interpretations[*].rules[*].output.type Datentyp der semantischen Ausgabe.Data type of the semantic output.
$.interpretations[*].rules[*].output.value$.interpretations[*].rules[*].output.value Wert der semantischen Ausgabe.Value of the semantic output.
$.aborted$.aborted „true“, wenn ein Timeout bei der Anforderung aufgetreten ist.True if the request timed out.

XML-AnalyseParse XML

Bei der XML-Analyse wird die (abgeschlossene) Abfrage mit Informationen darüber versehen, inwiefern sie den Regeln in der Grammatik und den Attributen im Index entspricht.The parse XML annotates the (completed) query with information about how it matches against the rules in the grammar and attributes in the index. Im Folgenden finden Sie ein Beispiel aus dem Bereich der wissenschaftlichen Veröffentlichungen:Below is an example from the academic publications domain:

<rule name="#GetPapers">
  papers by 
  <attr name="academic#Author.Name" canonical="heungyeung shum">harry shum</attr>
  <rule name="#GetPaperYear">
    written in
    <attr name="academic#Year">2000</attr>
  </rule>
</rule>

Das <rule>-Element begrenzt den Bereich in der Abfrage entsprechend der Regel, die durch das jeweilige name-Attribut angegeben ist.The <rule> element delimits the range in the query matching the rule specified by its name attribute. Sie kann geschachtelt sein, wenn die Analyse Regelverweise in der Grammatik einschließt.It may be nested when the parse involves rule references in the grammar.

Das <attr>-Element begrenzt den Bereich in der Abfrage entsprechend des Indexattributs, das durch das jeweilige name-Attribut angegeben ist.The <attr> element delimits the range in the query matching the index attribute specified by its name attribute. Wenn die Übereinstimmung ein Synonym in der Eingabeabfrage beinhaltet, enthält das canonical-Attribut den kanonischen Wert entsprechend des Synonyms aus dem Index.When the match involves a synonym in the input query, the canonical attribute will contain the canonical value matching the synonym from the index.

BeispielExample

Im Beispiel der wissenschaftlichen Veröffentlichungen gibt die folgende Anforderung bis zu zwei Vorschläge der automatischen Vervollständigung für die Präfixabfrage „papers by jaime“ zurück:In the academic publications example, the following request returns up to 2 auto-completion suggestions for the prefix query "papers by jaime":

http://<host>/interpret?query=papers by jaime&complete=1&count=2

Die Antwort enthält die beiden („count=2“) wahrscheinlichsten Interpretationen, in die die Teilabfrage „papers by jaime“ vervollständigt wird: „papers by jaime teevan“ und „papers by jaime green“.The response contains the top two ("count=2") most likely interpretations that complete the partial query "papers by jaime": "papers by jaime teevan" and "papers by jaime green". Der Dienst erzeugte Abfragevervollständigungen, anstatt nur exakte Übereinstimmungen für den Autor „jaime“ zu berücksichtigen, da in der Anforderung „complete=1“ angegeben wurde.The service generated query completions instead of considering only exact matches for the author "jaime" because the request specified "complete=1". Beachten Sie, dass der kanonische Wert „j l green“ mit dem Synonym „jamie green“ übereinstimmt, wie in der Analyse angegeben.Note that the canonical value "j l green" matched via the synonym "jamie green", as indicated in the parse.

{
  "query": "papers by jaime",
  "interpretations": [
    {
      "logprob": -5.615,
      "parse": "<rule name=\"#GetPapers\">papers by <attr name=\"academic#Author.Name\">jaime teevan</attr></rule>",
      "rules": [
        {
          "name": "#GetPapers",
          "output": {
            "type": "query",
            "value": "Composite(Author.Name=='jaime teevan')"
          }
        }
      ]
    },
    {
      "logprob": -5.849,
      "parse": "<rule name=\"#GetPapers\">papers by <attr name=\"academic#Author.Name\" canonical=\"j l green\">jaime green</attr></rule>",
      "rules": [
        {
          "name": "#GetPapers",
          "output": {
            "type": "query",
            "value": "Composite(Author.Name=='j l green')"
          }
        }
      ]
    }
  ]
}

Wenn die semantische Ausgabe wie in diesem Beispiel vom Typ „query“ ist, können die übereinstimmenden Objekte abgerufen werden, indem output.value über den Parameter expr an die evaluate-API übergeben wird.When the type of semantic output is "query", as in this example, the matching objects can be retrieved by passing output.value to the evaluate API via the expr parameter.

http://<host>/evaluate?expr=Composite(AA.AuN=='jaime teevan')