Skip to main content

iKnow Web Services

The %iKnow package provides web service classes that execute NLP queries. This chapter provides an overview of these classes and describes how to use them. It discusses the following topics:

Note:

In InterSystems IRIS®, a web service runs within an InterSystems IRIS web application. In turn, the web application is served by your choice of web server (the same web server that serves the Management Portal).

Available Web Services

NLP provides the following web service classes:

The %iKnow.Queries package also contains classes that the compiler generated when these classes were compiled. For example, when the compiler compiled the class %iKnow.Queries.CcWSAPIOpens in a new tab, it generated the classes in the %iKnow.Queries.CcWSAPIOpens in a new tab package. These generated classes are not intended for direct use.

Using an NLP Web Service

To use a web service, you create and use a web client that communicates with it. To do so for an NLP web service, you use the same procedure as with any other web service:

  1. Create a web client that can communicate with the web service. Typically, to do so, you generate the web client using a tool provided by the client technology and you provide the WSDL of the web service as input. This process generates a set of client classes.

    Note that for an InterSystems IRIS® data platform web service, the WSDL is available at the following URL:

    http://hostname:port/csp/namespace/web_service_class.cls?WSDL
    

    Where:

    • hostname is the server on which InterSystems IRIS is running.

    • port is the port on which your web server is running.

    • namespace is the namespace name.

    • web_service_class is the full package and class name of the web service with .cls at the end.

      For example, for the class %iKnow.Queries.EntityWSAPIOpens in a new tab, use %25iKnow.Queries.EntityWSAPI.cls

      Important:

      Be sure to replace the leading percent sign of the package with the URL escape sequence %25 as shown here.

    For example:

    http://localhost:52773/csp/samples/%25iKnow.Queries.EntityWSAPI.cls?WSDL
    
  2. Rather than editing the generated client classes, create an additional class or routine that uses them. The details depend on the technology.

    In InterSystems IRIS, to use a web client, you create an instance of the web client class and then invoke its instance methods. See the following example.

Example

For demonstration purposes, let us generate and use an InterSystems IRIS web client to work with an NLP web service on the same machine. To do this in the SAMPLES namespace:

  1. In Studio, click Tools > Add-ins > SOAP Wizard.

  2. On the first screen, click URL.

  3. Type the following URL:

    http://localhost:52773/csp/samples/%25iKnow.Queries.EntityWSAPI.CLS?WSDL
    

    If needed, replace 52773 with the port that your web server uses for this installation of InterSystems IRIS.

  4. Click Next.

  5. For Proxy Class Package, type a package name such as MyClient

  6. Click Next twice.

    The wizard generates and compiles the classes and displays a list of these classes.

    This process generates the class MyClient.iKnow.Queries.EntityWSAPISoap. This class defines a set of methods, one for each web method defined in the web service on which this client is based. Each of these methods looks like this (with illegal line breaks added here):

    Method GetByFilter(domainid As %Integer, filter As %String, filtermode As %Integer, enttype As %Integer, 
    skipListIds As %ListOfDataTypes(ELEMENTTYPE="%String",XMLITEMNAME="skipListIdsItem",XMLNAME="skipListIds")) 
    As %XML.DataSet [ Final, ProcedureBlock = 1, SoapBindingStyle = document, SoapBodyUse = literal, WebMethod ]
    {
     Quit ..WebMethod("GetByFilter").
      Invoke($this,"http://www.intersystems.com/iKnow/Queries/EntityWSAPI/%iKnow.Queries.EntityWSAPI.GetByFilter",
             .domainid,.filter,.filtermode,.enttype,.skipListIds)
    }
    

    The signature of this method is the same as for the corresponding method in the web service.

    This process also generates a set of classes in the MyClient.iKnow.Queries.EntityWSAPISoap, which are not for direct use.

  7. Click Finish.

  8. To use the generated client, enter the following in the Terminal in the SAMPLES namespace:

    set client=##class(MyClient.iKnow.Queries.EntityWSAPISoap).%New()
    

    This creates an instance of the client class, which can then communicate with the web service.

  9. Execute methods of this class. For example:

    write client.GetCountByDomain(2)
    

Comparison of NLP Web Services with Primary NLP APIs

The primary NLP APIs use arguments that cannot be easily represented in SOAP messages, so the methods in NLP web services have different signatures than do the methods in the primary NLP APIs. In particular, note the following differences:

See Also

For information on web services and clients in InterSystems IRIS, see Creating Web Services and Web Clients.

FeedbackOpens in a new tab