Erste Schritte mit dem Knowledge Exploration ServiceGet started with the Knowledge Exploration Service

In dieser exemplarischen Vorgehensweise verwenden Sie den Knowledge Exploration Service (KES), um die Engine für eine interaktive Suche in akademischen Veröffentlichungen zu erstellen.In this walkthrough, you use the Knowledge Exploration Service (KES) to create the engine for an interactive search experience for academic publications. Sie können das Befehlszeilentool kes.exe und alle Beispieldateien aus dem Knowledge Exploration Service SDK installieren.You can install the command line tool, kes.exe, and all example files from the Knowledge Exploration Service SDK.

Das Beispiel der akademischen Veröffentlichungen enthält eine Stichprobe von 1.000 akademischen Dokumenten, die Forscher von Microsoft veröffentlicht haben.The academic publications example contains a sample of 1000 academic papers published by researchers at Microsoft. Jedem Dokument sind Titel, Veröffentlichungsjahr, Autoren und Schlüsselwörter zugeordnet.Each paper is associated with a title, publication year, authors, and keywords. Jeder Autor wird durch ID, Name und Zugehörigkeit zum Zeitpunkt der Veröffentlichung dargestellt.Each author is represented by an ID, name, and affiliation at the time of publication. Jedes Schlüsselwort kann einer Gruppe von Synonymen zugeordnet werden (z.B. kann das Schlüsselwort „support vector machine“ dem Synonym „svm“ zugeordnet werden).Each keyword can be associated with a set of synonyms (for example, the keyword "support vector machine" can be associated with the synonym "svm").

Definieren des SchemasDefine the schema

Das Schema beschreibt die Attributstruktur der Objekte in der Domäne.The schema describes the attribute structure of the objects in the domain. Es gibt den Namen und den Datentyp für jedes Attribut in einem JSON-Dateiformat an.It specifies the name and data type for each attribute in a JSON file format. Das folgende Beispiel zeigt den Inhalt der Datei Academic.schema.The following example is the content of the file Academic.schema.

{
  "attributes":[
    {"name":"Title", "type":"String"},
    {"name":"Year", "type":"Int32"},
    {"name":"Author", "type":"Composite"},
    {"name":"Author.Id", "type":"Int64", "operations":["equals"]},
    {"name":"Author.Name", "type":"String"},
    {"name":"Author.Affiliation", "type":"String"},
    {"name":"Keyword", "type":"String", "synonyms":"Keyword.syn"}
  ]
}

Hier definieren Sie Title, Year und Keyword jeweils als Zeichenfolge, ganze Zahl und Zeichenfolgenattribut.Here, you define Title, Year, and Keyword as a string, integer, and string attribute, respectively. Da Autoren durch ID, Name und Zugehörigkeit dargestellt werden, definieren Sie Author als zusammengesetztes Attribut mit drei untergeordneten Attributen: Author.Id, Author.Name und Author.Affiliation.Because authors are represented by ID, name, and affiliation, you define Author as a composite attribute with three sub-attributes: Author.Id, Author.Name, and Author.Affiliation.

Attribute unterstützen standardmäßig alle für ihren Datentyp verfügbaren Vorgänge einschließlich equals, starts_with und is_between.By default, attributes support all operations available for their data type, including equals, starts_with, and is_between. Da die Autoren-ID nur intern als Bezeichner verwendet wird, überschreiben Sie die Standardeinstellung, und geben Sie equals als einzigen indizierten Vorgang an.Because author ID is only used internally as an identifier, override the default, and specify equals as the only indexed operation.

Lassen Sie für das Keyword-Attribut durch Angabe der Synonymdatei Keyword.syn in der Attributdefinition Synonyme zu, die mit den kanonischen Schlüsselwortwerten übereinstimmen.For the Keyword attribute, allow synonyms to match the canonical keyword values by specifying the synonym file Keyword.syn in the attribute definition. Diese Datei enthält eine Liste der kanonischen und Synonymwertpaare:This file contains a list of canonical and synonym value pairs:

...
["support vector machine","support vector machines"]
["support vector machine","support vector networks"]
["support vector machine","support vector regression"]
["support vector machine","support vector"]
["support vector machine","svm machine learning"]
["support vector machine","svm"]
["support vector machine","svms"]
["support vector machine","vector machine"]
...

Weitere Informationen zur Schemadefinition finden Sie unter Schemaformat.For additional information about the schema definition, see Schema Format.

Generieren von DatenGenerate data

Die Datendatei beschreibt die Liste der zu indizierenden Veröffentlichungen, wobei jede Zeile die Attributwerte eines Dokuments im JSON-Format angibt.The data file describes the list of the publications to index, with each line specifying the attribute values of a paper in JSON format. Das folgende Beispiel ist eine einzelne, zur besseren Lesbarkeit formatierte Zeile aus der Datendatei Academic.data:The following example is a single line from the data file Academic.data, formatted for readability:

...
{
    "logprob": -16.714,
    "Title": "the world wide telescope",
    "Year": 2001,
    "Author": [
        {
            "Id": 717694024,
            "Name": "alexander s szalay",
            "Affiliation": "microsoft"
        },
        {
            "Id": 2131537204,
            "Name": "jim gray",
            "Affiliation": "microsoft"
        }
    ]
}
...

Geben Sie in diesem Codeausschnitt das Title- und Year-Attribut des Dokuments als JSON-Zeichenfolge bzw. -Zahl an.In this snippet, you specify the Title and Year attribute of the paper as a JSON string and number, respectively. Mehrere Werte werden mithilfe von JSON-Arrays dargestellt.Multiple values are represented by using JSON arrays. Da Author ein zusammengesetztes Attribut ist, wird jeder Wert mit einem JSON-Objekt dargestellt, das aus seinen untergeordneten Attributen besteht.Because Author is a composite attribute, each value is represented by using a JSON object consisting of its sub-attributes. Attribute mit fehlenden Werten, wie in diesem Fall Keyword, können aus der JSON-Darstellung ausgeschlossen werden.Attributes with missing values, such as Keyword in this case, can be excluded from the JSON representation.

Um die Wahrscheinlichkeit unterschiedlicher Dokumente zu differenzieren, geben Sie die relative Logarithmuswahrscheinlichkeit mithilfe des integrierten Attributs logprob an.To differentiate the likelihood of different papers, specify the relative log probability by using the built-in logprob attribute. Bei einer Wahrscheinlichkeit p zwischen 0 und 1 berechnen Sie die entsprechende Logarithmuswahrscheinlichkeit als log(p), wobei log() die natürliche Logarithmusfunktion ist.Given a probability p between 0 and 1, you compute the log probability as log(p), where log() is the natural log function.

Weitere Informationen finden Sie unter Datenformat.For more information, see Data Format.

Erstellen eines komprimierten binären IndexesBuild a compressed binary index

Sobald Sie über eine Schemadatei und Datendatei verfügen, können Sie mit kes.exe build_index einen komprimierten binären Index der Datenobjekte erstellen.After you have a schema file and data file, you can build a compressed binary index of the data objects by using kes.exe build_index. In diesem Beispiel erstellen Sie die Indexdatei Academic.index aus der Eingabeschemadatei Academic.schema und der Datendatei Academic.data.In this example, you build the index file Academic.index from the input schema file Academic.schema and data file Academic.data. Verwenden Sie den folgenden Befehl:Use the following command:

kes.exe build_index Academic.schema Academic.data Academic.index

Für die schnelle Prototyperstellung außerhalb von Azure kann kes.exe build_index kleine Indizes lokal aus Datendateien mit bis zu 10.000 Objekten erstellen.For rapid prototyping outside of Azure, kes.exe build_index can build small indices locally, from data files containing up to 10,000 objects. Für größere Datendateien können Sie entweder den Befehl von einer Windows-VM in Azure ausführen oder einen Remotebuild in Azure durchführen.For larger data files, you can either run the command from within a Windows VM in Azure, or perform a remote build in Azure. Weitere Informationen finden Sie unter „Zentrales Hochskalieren zum Hosten größerer Indizes“.For details, see Scaling up.

Verwenden einer XML-GrammatikspezifikationUse an XML grammar specification

Die Grammatik gibt den Satz von Abfragen in natürlicher Sprache an, die der Dienst interpretieren kann, und wie diese Abfragen in natürlicher Sprache in Semantikabfrageausdrücke konvertiert werden.The grammar specifies the set of natural language queries that the service can interpret, as well as how these natural language queries are translated into semantic query expressions. In diesem Beispiel verwenden Sie die in academic.xml angegebene Grammatik:In this example, you use the grammar specified in academic.xml:

<grammar root="GetPapers">

  <!-- Import academic data schema-->
  <import schema="Academic.schema" name="academic"/>

  <!-- Define root rule-->
  <rule id="GetPapers">
    <example>papers about machine learning by michael jordan</example>

    papers
    <tag>
      yearOnce = false;
      isBeyondEndOfQuery = false;
      query = All();
    </tag>

    <item repeat="1-" repeat-logprob="-10">
      <!-- Do not complete additional attributes beyond end of query -->
      <tag>AssertEquals(isBeyondEndOfQuery, false);</tag>

      <one-of>
        <!-- about <keyword> -->
        <item logprob="-0.5">
          about <attrref uri="academic#Keyword" name="keyword"/>
          <tag>query = And(query, keyword);</tag>
        </item>

        <!-- by <authorName> [while at <authorAffiliation>] -->
        <item logprob="-1">
          by <attrref uri="academic#Author.Name" name="authorName"/>
          <tag>authorQuery = authorName;</tag>
          <item repeat="0-1" repeat-logprob="-1.5">
            while at <attrref uri="academic#Author.Affiliation" name="authorAffiliation"/>
            <tag>authorQuery = And(authorQuery, authorAffiliation);</tag>
          </item>
          <tag>
            authorQuery = Composite(authorQuery);
            query = And(query, authorQuery);
          </tag>
        </item>

        <!-- written (in|before|after) <year> -->
        <item logprob="-1.5">
          <!-- Allow this grammar path to be traversed only once -->
          <tag>
            AssertEquals(yearOnce, false);
            yearOnce = true;
          </tag>
          <ruleref uri="#GetPaperYear" name="year"/>
          <tag>query = And(query, year);</tag>
        </item>
      </one-of>

      <!-- Determine if current parse position is beyond end of query -->
      <tag>isBeyondEndOfQuery = GetVariable("IsBeyondEndOfQuery", "system");</tag>
    </item>
    <tag>out = query;</tag>
  </rule>

  <rule id="GetPaperYear">
    <tag>year = All();</tag>
    written
    <one-of>
      <item>
        in <attrref uri="academic#Year" name="year"/>
      </item>
      <item>
        before
        <one-of>
          <item>[year]</item>
          <item>
            <attrref uri="academic#Year" op="lt" name="year"/>
          </item>
        </one-of>
      </item>
      <item>
        after
        <one-of>
          <item>[year]</item>
          <item>
            <attrref uri="academic#Year" op="gt" name="year"/>
          </item>
        </one-of>
      </item>
    </one-of>
    <tag>out = year;</tag>
  </rule>
</grammar>

Weitere Informationen zur Syntax der Grammatikspezifikation finden Sie unter Grammatikformat.For more information about the grammar specification syntax, see Grammar Format.

Kompilieren der GrammatikCompile the grammar

Sobald Sie über eine XML-Grammatikspezifikation verfügen, können Sie sie mithilfe von kes.exe build_grammar in eine binäre Grammatik kompilieren.After you have an XML grammar specification, you can compile it into a binary grammar by using kes.exe build_grammar. Beachten Sie: Wenn die Grammatik ein Schema importiert, muss die Schemadatei sich im gleichen Pfad wie die Grammatik-XML-Datei befinden.Note that if the grammar imports a schema, the schema file needs to be located in the same path as the grammar XML. In diesem Beispiel erstellen Sie die binäre Grammatikdatei Academic.grammar aus der XML-Grammatikeingabedatei Academic.xml.In this example, you build the binary grammar file Academic.grammar from the input XML grammar file Academic.xml. Verwenden Sie den folgenden Befehl:Use the following command:

kes.exe build_grammar Academic.xml Academic.grammar

Hosten von Grammatik und Index in einem WebdienstHost the grammar and index in a web service

Für die schnelle Prototyperstellung können Sie mithilfe von kes.exe host_service Grammatik und Index auf dem lokalen Computer in einem Webdienst hosten.For rapid prototyping, you can host the grammar and index in a web service on the local machine, by using kes.exe host_service. Anschließend können Sie zum Überprüfen von Datenrichtigkeit und Grammatikentwurf über Web-APIs auf den Dienst zugreifen.You can then access the service via web APIs to validate the data correctness and grammar design. In diesem Beispiel hosten Sie die Grammatikdatei Academic.grammar und die Indexdatei Academic.index auf http://localhost:8000/.In this example, you host the grammar file Academic.grammar and index file Academic.index at http://localhost:8000/. Verwenden Sie den folgenden Befehl:Use the following command:

kes.exe host_service Academic.grammar Academic.index --port 8000

Hierdurch wird eine lokale Instanz des Webdiensts initiiert.This initiates a local instance of the web service. Sie können den Dienst interaktiv testen, indem Sie http::localhost:<port> in einem Browser besuchen.You can interactively test the service by visiting http::localhost:<port> from a browser. Weitere Informationen finden Sie unter „Testen des Diensts“.For more information, see Testing service.

Sie können verschiedene Web-APIs auch direkt zum Testen der Interpretation natürlicher Sprache, zur Abfragefertigstellung, strukturierten Abfrageauswertung und Histogrammberechnung aufrufen.You can also directly call various web APIs to test natural language interpretation, query completion, structured query evaluation, and histogram computation. Um den Dienst zu beenden, geben Sie „quit“ in der kes.exe host_service-Eingabeaufforderung ein, oder drücken Sie STRG+C.To stop the service, enter "quit" into the kes.exe host_service command prompt, or press Ctrl+C. Hier einige Beispiele:Here are some examples:

Außerhalb von Azure ist kes.exe host_service auf Indizes von bis zu 10.000 Objekten beschränkt.Outside of Azure, kes.exe host_service is limited to indices of up to 10,000 objects. Andere Grenzwerte enthalten eine API-Rate von 10 Anforderungen pro Sekunde und insgesamt 1.000 Anforderungen, bevor der Prozess automatisch beendet wird.Other limits include an API rate of 10 requests per second, and a total of 1000 requests before the process automatically terminates. Um diese Einschränkungen zu umgehen, führen Sie den Befehl von einer Windows-VM in Azure aus, oder führen Sie mit dem kes.exe deploy_service-Befehl eine Bereitstellung für einen Azure-Clouddienst durch.To bypass these restrictions, run the command from within a Windows VM in Azure, or deploy to an Azure cloud service by using the kes.exe deploy_service command. Weitere Informationen finden Sie unter „Bereitstellen des Diensts“.For details, see Deploying service.

Zentrales Hochskalieren zum Hosten größerer IndizesScale up to host larger indices

Beim Ausführen von kes.exe außerhalb von Azure ist der Index auf 10.000 Objekte beschränkt.When you are running kes.exe outside of Azure, the index is limited to 10,000 objects. Mit Azure können Sie größere Indizes erstellen und hosten.You can build and host larger indices by using Azure. Registrieren Sie sich für eine kostenlose Testversion.Sign up for a free trial. Alternativ können Sie, wenn Sie Visual Studio oder MSDN abonnieren, Abonnentenvorteile aktivieren.Alternatively, if you subscribe to Visual Studio or MSDN, you can activate subscriber benefits. Diese bestehen in monatlichen Azure-Gutschriften.These offer some Azure credits each month.

Um kes.exe den Zugriff auf ein Azure-Konto zu ermöglichen, laden Sie die Azure-Veröffentlichungseinstellungsdatei aus dem Azure-Portal herunter.To allow kes.exe access to an Azure account, download the Azure Publish Settings file from the Azure portal. Wenn Sie aufgefordert werden, melden Sie sich beim gewünschten Azure-Konto an.If prompted, sign into the desired Azure account. Speichern Sie die Datei unter AzurePublishSettings.xml in dem Arbeitsverzeichnis, von wo aus kes.exe ausgeführt wird.Save the file as AzurePublishSettings.xml in the working directory from where kes.exe runs.

Es gibt zwei Möglichkeiten zum Erstellen und Hosten großer Indizes.There are two ways to build and host large indices. Die erste ist, Schema- und Datendateien in einer Windows-VM in Azure vorzubereiten.The first is to prepare the schema and data files in a Windows VM in Azure. Führen Sie dann kes.exe build_index aus, um den Index lokal auf dem virtuellen Computer ohne jede Größeneinschränkung zu erstellen.Then run kes.exe build_index to build the index locally on the VM, without any size restrictions. Der resultierende Index kann lokal auf dem virtuellen Computer mithilfe von kes.exe host_service für schnelle Prototyperstellung gehostet werden, wiederum ohne jede Einschränkung.The resulting index can be hosted locally on the VM by using kes.exe host_service for rapid prototyping, again without any restrictions. Ausführliche Schritte finden Sie unter Schnellstart: Erstellen eines virtuellen Windows-Computers im Azure-Portal.For detailed steps, see the Azure VM tutorial.

Die zweite Methode ist das Ausführen eines Azure-Remotebuilds mit kes.exe build_index und dem --remote-Parameter.The second method is to perform a remote Azure build, by using kes.exe build_index with the --remote parameter. Hiermit wird eine Azure-VM-Größe angegeben.This specifies an Azure VM size. Wenn der --remote-Parameter angegeben wird, erstellt der Befehl eine temporäre Azure-VM dieser Größe.When the --remote parameter is specified, the command creates a temporary Azure VM of that size. Anschließend erstellt er den Index auf dem virtuellen Computer, lädt den Index in den Zielblobspeicher hoch und löscht den virtuellen Computer nach Fertigstellung.It then builds the index on the VM, uploads the index to the target blob storage, and deletes the VM upon completion. Ihrem Azure-Abonnement werden die Kosten für den virtuellen Computer in Rechnung gestellt, während der Index erstellt wird.Your Azure subscription is charged for the cost of the VM while the index is being built.

Dank dieser Azure-Remotebuildfunktion kann kes.exe build_index in jeder Umgebung ausgeführt werden.This remote Azure build capability allows kes.exe build_index to be run in any environment. Wenn Sie einen Remotebuild durchführen, können Eingabeschema und Datenargumente lokale Dateipfade oder Azure-Blobspeicher-URLs sein.When you are performing a remote build, the input schema and data arguments can be local file paths or Azure blob storage URLs. Das Ausgabeindexargument muss eine Blobspeicher-URL sein.The output index argument must be a blob storage URL. Informationen zum Erstellen eines Azure-Speicherkontos finden Sie unter Informationen zu Azure-Speicherkonten.To create an Azure storage account, see About Azure storage accounts. Um Dateien effizient in und aus Blobspeicher zu kopieren, verwenden Sie das Hilfsprogramm AzCopy.To copy files efficiently to and from blob storage, use the AzCopy utility.

In diesem Beispiel können Sie voraussetzen, dass folgender Blobspeichercontainer bereits erstellt wurde: http://<Konto>.blob.core.windows.net/<Container >/.In this example, you can assume that the following blob storage container has already been created: http://<account>.blob.core.windows.net/<container>/. Er enthält das Schema Academic.schema, die Synonymdatei Keywords.syn, auf die verwiesen wird, und die umfassende Datendatei Academic.full.data.It contains the schema Academic.schema, the referenced synonym file Keywords.syn, and the full-scale data file Academic.full.data. Sie können den vollständigen Index mit folgendem Befehl remote erstellen:You can build the full index remotely by using the following command:

kes.exe build_index http://<account>.blob.core.windows.net/<container>/Academic.schema http://<account>.blob.core.windows.net/<container>/Academic.full.data http://<account>.blob.core.windows.net/<container>/Academic.full.index --remote <vm_size>

Beachten Sie, dass es 5 bis 10 Minuten dauern kann, eine temporäre VM zum Erstellen des Indexes bereitzustellen.Note that it might take 5-10 minutes to provision a temporary VM to build the index. Für die schnelle Prototyperstellung können Sie:For rapid prototyping, you can:

Auslagern verlangsamt den Erstellungsprozess.Paging slows down the build process. Um Auslagern zu vermeiden, verwenden Sie einen virtuellen Computer, dessen Arbeitsspeicher dem Dreifachen der Größe der Eingabedatei für die Indexerstellung entspricht.To avoid paging, use a VM with three times the amount of RAM as the input data file size for index building. Verwenden Sie einen virtuellen Computer, dessen Arbeitsspeicher um 1 GB größer ist als der Index zum Hosten.Use a VM with 1 GB more RAM than the index size for hosting. Eine Liste der verfügbaren VM-Größen finden Sie unter Größen für virtuelle Computer.For a list of available VM sizes, see Sizes for virtual machines.

Bereitstellen des DienstsDeploy the service

Sobald Sie über eine Grammatik und einen Index verfügen, können Sie den Dienst für einen Azure-Clouddienst bereitstellen.After you have a grammar and index, you are ready to deploy the service to an Azure cloud service. Wie Sie einen neuen Azure-Clouddienst erstellen, erfahren Sie unter Erstellen und Bereitstellen eines Clouddiensts.To create a new Azure cloud service, see How to create and deploy a cloud service. Geben Sie zu diesem Zeitpunkt kein Bereitstellungspaket an.Do not specify a deployment package at this point.

Wenn Sie den Clouddienst erstellt haben, können Sie kes.exe deploy_service zur Bereitstellung des Diensts verwenden.When you have created the cloud service, you can use kes.exe deploy_service to deploy the service. Ein Azure-Clouddienst verfügt über zwei Bereitstellungsslots: Produktion und Staging.An Azure cloud service has two deployment slots: production and staging. Für einen Dienst, der Live-Benutzerdatenverkehr empfängt, sollten Sie zunächst im Stagingslot bereitstellen.For a service that receives live user traffic, you should initially deploy to the staging slot. Warten Sie, bis der Dienst startet und sich selbst initialisiert.Wait for the service to start up and initialize itself. Anschließend können Sie einige Anforderungen senden, um die Bereitstellung zu überprüfen und sicherzustellen, dass er grundlegende Tests besteht.Then you can send a few requests to validate the deployment and verify that it passes basic tests.

Swappen Sie die Inhalte von Staging- und Produktionsslot, sodass Livedatenverkehr jetzt zum neu bereitgestellten Dienst weitergeleitet wird.Swap the contents of the staging slot with the production slot, so that live traffic is now directed to the newly deployed service. Sie können diesen Vorgang wiederholen, wenn Sie eine aktualisierte Version des Diensts mit neuen Daten bereitstellen.You can repeat this process when deploying an updated version of the service with new data. Wie bei allen anderen Azure-Clouddiensten können Sie optional das Azure-Portal verwenden, um die automatische Skalierung zu konfigurieren.As with all other Azure cloud services, you can optionally use the Azure portal to configure auto-scaling.

In diesem Beispiel stellen Sie den Academic-Index dem Stagingslot eines vorhandenen Clouddiensts mit <vm_size> VMs bereit.In this example, you deploy the Academic index to the staging slot of an existing cloud service with <vm_size> VMs. Verwenden Sie den folgenden Befehl:Use the following command:

kes.exe deploy_service http://<account>.blob.core.windows.net/<container>/Academic.grammar http://<account>.blob.core.windows.net/<container>/Academic.index <serviceName> <vm_size> --slot Staging

Eine Liste der verfügbaren VM-Größen finden Sie unter Größen für virtuelle Computer.For a list of available VM sizes, see Sizes for virtual machines.

Nach der Bereitstellung des Diensts können Sie die verschiedenen Web-APIs zum Testen der Interpretation natürlicher Sprache, zur Abfragefertigstellung, strukturierten Abfrageauswertung und Histogrammberechnung aufrufen.After you deploy the service, you can call the various web APIs to test natural language interpretation, query completion, structured query evaluation, and histogram computation.

Testen des DienstsTest the service

Navigieren Sie zum Debuggen eines Livediensts über einen Webbrowser zum Hostcomputer.To debug a live service, browse to the host machine from a web browser. Für einen über „host_service“ bereitgestellten lokalen Dienst besuchen Sie http://localhost:<port>/.For a local service deployed via host_service, visit http://localhost:<port>/. Für einen über „deploy_service“ bereitgestellten Azure-Clouddienst besuchen Sie http://<serviceName>.cloudapp.net/.For an Azure cloud service deployed via deploy_service, visit http://<serviceName>.cloudapp.net/.

Diese Seite enthält sowohl einen Link zu Informationen über grundlegende Statistiken zu API-Aufrufen als auch die Grammatik und den Index, die von diesem Dienst gehostet werden.This page contains a link to information about basic API call statistics, as well as the grammar and index hosted at this service. Diese Seite enthält auch eine interaktive Suchschnittstelle, die die Verwendung von Web-APIs veranschaulicht.This page also contains an interactive search interface that demonstrates the use of the web APIs. Geben Sie Abfragen in das Suchfeld ein, um die Ergebnisse der Aufrufe von interpret-, evaluate- und calchistogram-API zu sehen.Enter queries into the search box to see the results of the interpret, evaluate, and calchistogram API calls. Die dieser Seite zugrunde liegende HTML-Quelle dient auch als ein Beispiel zum Integrieren von Web-APIs in eine App, um eine umfassende und interaktive Suchfunktion zu erstellen.The underlying HTML source of this page also serves as an example of how to integrate the web APIs into an app, to create a rich, interactive search experience.