xAIgent.

Sample Code

The dbi technologies inc. xAIgent is a restful service implementation of the Extractor key phrase extraction technology (www.extractor.com)  designed to work with any IDE (Integrated Development Environment) that supports restful services.

The following discussion illustrates how to incorporate the xAIgent service in to a Visual Studio project.  PLEASE NOTE:  The sample code presented here is taken from the sample projects available for download at the bottom of this page.

1. Add the service to the project.

In the Solution Explorer, right mouse click on the References node.

Select Add Service Reference...

In the Address: enter the address of the xAIgent wsdl (Web Services Description Language)  file.

Change the default namespace to xAIgentService ...

and press the OK button.  Visual Studio will now add the service reference and generate the necessary handlers.

 

2. Once the service has been added to the project you can now program against the service using its request and response classes. NOTE: The xAIgent Service exposes two methods for the developer:

GetExtraction - Requires an ExtractionRequest object and Returns an ExtractionResult object

GetTokenStatus - Requires a TokenStatusRequest object and Returns a TokenStatusResult object. For more information on the GetTokenStatus method please review the sample application download below.

The following code is taken from the sample application available for download below that submits text from a text box and parses the response in to a second text box ...

C Sharp sample:

xAIgentService.DBIXServiceClient myxAIgentService = new xAIgentService.DBIXServiceClient(); //Create an instance of the xAIgent restful service

xAIgentService.ExtractionRequest myxAIgentRequest = new xAIgentService.ExtractionRequest(); //Create an instance of the xAIgent request

xAIgentService.ExtractionResult myxAIgentResponse = new xAIgentService.ExtractionResult(); //Create an instance of the xAIgent result

myxAIgentRequest.ApplicationID = "xAIgent C# sample"; //Set the application ID to identify the application calling the xAIgent service

myxAIgentRequest.LanguageID = 0; //Set the language for the document to be extracted to Auto Detect. NOTE: This does not work with Japanese or Korean

 myxAIgentRequest.NumberOfPhrasesToReturn = 5; //Set the number of phrases to return

myxAIgentRequest.SubscriptionID = "Your Subscription ID"; //Set the Subscription ID for authentication to use the xAIgent service

myxAIgentRequest.XTractionDocument = this.TextBoxExtractee.Text; //Set the document for extraction to the text in the TextBoxExtractee text box

try

{

myxAIgentResponse = myxAIgentService.GetExtraction(myxAIgentRequest); //Run the xAIgent Service to extract the text and return the key phrases.

int myResultsCounter = 1;

this.TextBoxResults.Text = "";

if (myxAIgentResponse.KeyPhrases.Count() > 0)

{

//Process each key phrase object in the response.

foreach (xAIgentService.KeyPhrase keyPhrase2Process in myxAIgentResponse.KeyPhrases)

{

keyPhrase2Process.Phrase = keyPhrase2Process.Phrase.ToUpper();

keyPhrase2Process.Highlight = keyPhrase2Process.Highlight;

//Output the keyphrase object to the results text box.

this.TextBoxResults.Text = this.TextBoxResults.Text + myResultsCounter.ToString() + ". " + keyPhrase2Process.Phrase + System.Environment.NewLine + _

"Score: " +  keyPhrase2Process.Score.ToString() + System.Environment.NewLine + _

"Highlight: " + keyPhrase2Process.Highlight + System.Environment.NewLine + System.Environment.NewLine;

myResultsCounter = myResultsCounter + 1;

}

}

else

this.TextBoxResults.Text = "No Results were returned.";

}

 catch (Exception ex)

{

this.TextBoxResults.Text = ex.Message.ToString();

}

VB.NET sample:VB.NET sample:

Dim myxAIgentService As New xAIgentService.DBIXServiceClient 'Create an instance of the xAIgent restful service

Dim myxAIgentRequest As New xAIgentService.ExtractionRequest 'Create an instance of the xAIgent request

Dim myxAIgentResponse As New xAIgentService.ExtractionResult 'Create an instance of the xAIgent result

myxAIgentRequest.ApplicationID = "xAIgent VB.NET sample" 'Set the application ID to identify the application calling the xAIgent service

 myxAIgentRequest.LanguageID = 0 'Set the language for the document to be extracted to Auto Detect. NOTE: This does not work with Japanese or Korean

 myxAIgentRequest.NumberOfPhrasesToReturn = 5 'Set the number of phrases to return

myxAIgentRequest.SubscriptionID = "Your Subscription ID" 'Set the Subscription ID for authentication to use the xAIgent service

 myxAIgentRequest.XTractionDocument = Me.TextBoxExtractee.Text 'Set the document for extraction to the text in the TextBoxExtractee text box

Try

myxAIgentResponse = myxAIgentService.GetExtraction(myxAIgentRequest) 'Run the xAIgent Service to extract the text and return the key phrases.

Dim myResultsCounter As Integer = 1

Me.TextBoxResults.Text = ""

If myxAIgentResponse.KeyPhrases.Count > 0 Then

'Process each key phrase object in the response.

Dim keyPhrase2Process As xAIgentService.KeyPhrase

For Each keyPhrase2Process In myxAIgentResponse.KeyPhrases

keyPhrase2Process.Phrase = keyPhrase2Process.Phrase.ToUpper

keyPhrase2Process.Highlight = keyPhrase2Process.Highlight.ToCharArray()

'Output the keyphrase object to the results text box.

Me.TextBoxResults.Text = Me.TextBoxResults.Text & myResultsCounter.ToString & ". " & keyPhrase2Process.Phrase & vbCrLf & _

"Score: " & keyPhrase2Process.Score.ToString & vbCrLf & _

"Highlight: " & keyPhrase2Process.Highlight & vbCrLf & vbCrLf

myResultsCounter = myResultsCounter + 1

Next

Else

Me.TextBoxResults.Text = "No Results were returned."

End If

Catch ex As Exception

Me.TextBoxResults.Text = ex.Message.ToString()

End Try

 

Download the Visual Studio 2015 projects here (NOTE: These can also be opened in VS 2012) ...

C Sharp Project Sharp Project

VB.NET Project