NLUI Server User s Guide



Similar documents
Visual Basic. murach's TRAINING & REFERENCE

DEPLOYING A VISUAL BASIC.NET APPLICATION

Workshop for WebLogic introduces new tools in support of Java EE 5.0 standards. The support for Java EE5 includes the following technologies:

TECHNICAL DOCUMENTATION SPECOPS DEPLOY / APP 4.7 DOCUMENTATION

Using Application Insights to Monitor your Applications

Windows Intune Walkthrough: Windows Phone 8 Management

IBM Operational Decision Manager Version 8 Release 5. Getting Started with Business Rules


Creating a Java application using Perfect Developer and the Java Develo...

DigitalPersona Pro Server for Active Directory v4.x Quick Start Installation Guide

Authoring for System Center 2012 Operations Manager

Getting Started with the Ed-Fi ODS and Ed-Fi ODS API

Deep Freeze and Microsoft System Center Configuration Manager 2012 Integration

Elixir Schedule Designer User Manual

Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT

Learn how to create web enabled (browser) forms in InfoPath 2013 and publish them in SharePoint InfoPath 2013 Web Enabled (Browser) forms

Walkthrough: Creating and Using an ASP.NET Web Service in Visual Web Developer

An Overview Of ClickOnce Deployment. Guy Smith-Ferrier. Courseware Online. Courseware Online

Release 2.1 of SAS Add-In for Microsoft Office Bringing Microsoft PowerPoint into the Mix ABSTRACT INTRODUCTION Data Access

Windows Firewall Configuration with Group Policy for SyAM System Client Installation

How To Use Query Console

ibolt V3.2 Release Notes

Visual Studio.NET Database Projects

Create, Link, or Edit a GPO with Active Directory Users and Computers

Instructions for Configuring a SAS Metadata Server for Use with JMP Clinical

Developing, Deploying, and Debugging Applications on Windows Embedded Standard 7

FreeForm Designer. Phone: Fax: POB 8792, Natanya, Israel Document2

5nine Hyper-V Commander

Microsoft Visual Basic Scripting Edition and Microsoft Windows Script Host Essentials

Team Foundation Server 2013 Installation Guide

Das AdminStudio beinhaltet eine ganze Reihe von Tools zum Thema Anwendungspaketierung- und Virtualisierung, die wir ihnen nachfolgend zeigen wollen:

DiskBoss. File & Disk Manager. Version 2.0. Dec Flexense Ltd. info@flexense.com. File Integrity Monitor

Analytics Configuration Reference

Monitoring Oracle Enterprise Performance Management System Release Deployments from Oracle Enterprise Manager 12c

Building and Using Web Services With JDeveloper 11g

Special Edition for FastTrack Software

Network installation guide. Version th February 2015

Silect Software s MP Author

Implementing a SAS Metadata Server Configuration for Use with SAS Enterprise Guide

Administrator s Guide

IBM InfoSphere MDM Server v9.0. Version: Demo. Page <<1/11>>

SUMMARY Moderate-High: Requires Visual Basic For Applications (VBA) skills, network file services skills and interoperability skills.

Terms and Definitions for CMS Administrators, Architects, and Developers

Team Foundation Server 2010, Visual Studio Ultimate 2010, Team Build 2010, & Lab Management Beta 2 Installation Guide

CHAPTER 4: BUSINESS ANALYTICS

Team Foundation Server 2012 Installation Guide

Administrator s Guide to deploying Engagement across multiple computers in a network using Microsoft Active Directory

Technical Paper. Defining an ODBC Library in SAS 9.2 Management Console Using Microsoft Windows NT Authentication

Exam Name: IBM InfoSphere MDM Server v9.0

NetBeans IDE Field Guide

Microsoft Visual Studio 2010 Instructions For C Programs

Using GitHub for Rally Apps (Mac Version)

SOFTWARE INSTALLATION INSTRUCTIONS CLIENT/SERVER EDITION AND WEB COMPONENT VERSION 10

Hands-On Lab. Embracing Continuous Delivery with Release Management for Visual Studio Lab version: Last updated: 12/11/2013

Lab 0 (Setting up your Development Environment) Week 1

Administration Guide. . All right reserved. For more information about Specops Deploy and other Specops products, visit

CONFIGURING A WEB SERVER AND TESTING WEBSPEED

Installation Guide. . All right reserved. For more information about Specops Deploy and other Specops products, visit

How To Install Outlook Addin On A 32 Bit Computer

Installing Active Directory

Braindumps.C questions

Note: With v3.2, the DocuSign Fetch application was renamed DocuSign Retrieve.

Tutorial: Packaging your server build

Last edited on 7/30/07. Copyright Syncfusion., Inc

Insight Video Net. LLC. CMS 2.0. Quick Installation Guide

File Auditor for NAS, Net App Edition

Managing Content in System Center 2012 R2 Configuration Manager

Programming with the Dev C++ IDE

Setting Up ALERE with Client/Server Data

Using InstallAware 7. To Patch Software Products. August 2007

Comodo MyDLP Software Version 2.0. Endpoint Installation Guide Guide Version Comodo Security Solutions 1255 Broad Street Clifton, NJ 07013

Upgrading a Microsoft Dynamics NAV 2009 R2 or Microsoft Dynamics NAV 2009 SP1 Database to Microsoft Dynamics NAV 2015

To add Citrix XenApp Client Setup for home PC/Office using the 32bit Windows client.

Foxit Enterprise Reader GPO User Guide

IBM Configuring Rational Insight and later for Rational Asset Manager

Tool Tip. SyAM Management Utilities and Non-Admin Domain Users

New 11g Features in Oracle Developer Tools for Visual Studio. An Oracle White Paper January 2008

vtcommander Installing and Starting vtcommander

Oracle SQL Developer for Database Developers. An Oracle White Paper June 2007

EMC Documentum Composer

Idera SQL Diagnostic Manager Management Pack Guide for System Center Operations Manager. Install Guide. Idera Inc., Published: April 2013

Best Practices. Understanding BeyondTrust Patch Management

MicrosoftDynam ics GP TenantServices Installation and Adm inistration Guide

Implementing a SAS 9.3 Enterprise BI Server Deployment TS-811. in Microsoft Windows Operating Environments

Code::Block manual. for CS101x course. Department of Computer Science and Engineering Indian Institute of Technology - Bombay Mumbai

Application. 1.1 About This Tutorial Tutorial Requirements Provided Files

Kaseya Server Instal ation User Guide June 6, 2008

NASA Workflow Tool. User Guide. September 29, 2010

user guide version 4.1

Cloud Attached Storage

Creating XML Report Web Services

SARANGSoft WinBackup Business v2.5 Client Installation Guide

EVALUATION ONLY. WA2088 WebSphere Application Server 8.5 Administration on Windows. Student Labs. Web Age Solutions Inc.

NAS 206 Using NAS with Windows Active Directory

Richmond SupportDesk Web Reports Module For Richmond SupportDesk v6.72. User Guide

HR Onboarding Solution

Using SQL Developer. Copyright 2008, Oracle. All rights reserved.

ElectricCommander. Technical Notes MS Visual Studio Add-in Integration version version 3.5 or higher. October 2010

Transcription:

By Vadim Berman Monday, 19 March 2012 Overview NLUI (Natural Language User Interface) Server is designed to run scripted applications driven by natural language interaction. Just like a web server application serves web pages, through which the user interacts in structured manner with a set of interactive controls, NLUI Server scripts query and obtain information from the user via a freely flowing natural linguistic interaction, without forcing the user to go through a rigid dialogue tree. NLUI Server is based on Carabao Language Kit runtime, which converts unstructured textual data into a series of references to entities in a semantic network, tagged with extensive metadata. GUI vs. NLUI: Basic Concepts Let us refer to GUI as an example of interaction to explain how NLUI works. A typical GUI application contains a series of screens, presenting various prompts to the user and returning the user s response. The prompts may be of different types: a text box, a check box when a toggle is required, a set of radio buttons or a combo box when the selection must be done from a fixed set. From the conceptual point of view, there are three levels: 1. Application. Depending on the platform, the application can take form of a website, an app in a smart phone, or a native desktop OS application. 2. Screen (may be called page or dialog or window). A screen represents a stage in processing, in the process of which the data is obtained from the user. 3. Prompt (usually called control). A prompt holds one single piece of data obtained from the user, whether it is a piece of text or a fixed selection. It does not matter what model of interaction is adopted specifically, whether it is MVC, wizard, etc. The common part is that graphical interface is essentially a series of information exchange steps between the user and the program. NLUI Server uses a similar model. The service (which is associated with an instance of an actual service of NLUI Server) is an equivalent of a web server in the web world (or a set of apps in a smart phone, Programs menu in Windows, etc.). The service contains one or more supported domains,

equivalent to an application in the GUI model. Each domain, in turn, consists of a series of stages, while each stage may have to obtain several pieces of data from the user. This is where NLUI somewhat diverges from GUI. While GUI controls make sure that the user s response has a high degree of conformance with the output specifications, natural language input is completely free. The text may contain relevant or irrelevant information. The rigid classic dialogue systems, which make sure every single prompt is answered in a strict order as defined, may not always be able to do the job. It is too easy to throw this kind of system off the scent, even when the user is willing to cooperate. NLUI Server takes a different approach. Every input is scanned by multiple invisible prompts to see whether there is information for these prompts. This way, the user does not have to answer every question separately and can skip ahead by providing the required information at once. As the user may not be even prompted about this data, in NLUI Server parlance the nodes are called obtain nodes. To summarize the logical structure analogous to the GUI model: 1. Domain. 2. Stage. 3. Obtain node. Isn t it too cumbersome to make all the nodes look at the data? This is where Carabao runtime works its magic, reducing the linguistic input to a series of structured codes. The results of the analysis can be seen in the Analysis tab of NLUI Debugger as shown on the illustration below: 2012 LinguaSys, Inc. All rights reserved Page 2

Natural Language Entities in Carabao While the complete description of what Carabao does and how may be too bulky to fit in here, there is a small set of basic concepts essential for understanding how to work with Carabao-based applications. Words in Carabao are grouped into families. A family is a set of synonyms, alternative spellings, and inflected forms related to a specific concept. For example, the words physician and doctor refer to the same concept: a licensed medical practitioner. Therefore, they both belong to the same family. It is important to note that the family ID numbers are the same across languages. For instance, the family referring to a licensed medical practitioner is designated the number 63787, in all supported languages. As families belong to a crosslingual semantic network, a family may be connected to a family which may be its sub-concept (hyponym) or its super-concept (hypernym). For example, pediatrician is a hyponym of physician, or, inversely, physician is a hypernym of pediatrician. As NLUI Server natively supports looking up a hypernym, it is easy to look for, say, all kinds of Asian food (Chinese, Japanese, Indian, Korean, etc.) by simply setting the condition hypernym=8981. In a somewhat confusing manner, Carabao long used the term domain to point to a subject area in which the terms are grouped. Please note that a Carabao domain is not the same as the domain tag in an NLUI Server script. Carabao domain is a topic. For example, doctors, diseases, medical equipment concepts belong to the domain of medicine. NLUI Server natively supports looking up a domain. For example, a concept like Saturn (the planet) is associated with the domain outer space and criterion like domain=56014 will be satisfied for that concept. Of course, words are ambiguous. Carabao is used to determine the actual meaning used in the input. While the accuracy of results is relatively high, natural language processing is not always reliable; unless the user s choices are very broad, it is recommended to leave the detectedentitiesonly setting to default (false). If detectedentitiesonly is set to true, then only interpretations singled out by Carabao will be considered. Please refer to Carabao User s Manual for more information on Carabao and how to view and edit the lexical data. Variables and Executable Code NLUI Server relies on.net for powerful scripting capabilities. The variables in the script refer directly to the data types in.net runtime, not necessarily system types or those in the attached source code file. In fact, any library and any type can be used, either to store data, or to invoke arbitrary code. This essentially means that all the tens of languages which can compile into.net CLR, are supported. 2012 LinguaSys, Inc. All rights reserved Page 3

Installation and Running The installation package includes the following: 1. The shared.net assembly and Carabao runtime grouped with NLUI Debugger and Carabao data management tools. This is an essential component. Please refer to Carabao User s Guide on how to work with Carabao Data Manager. 2. NLUI Server application, which is installed as a Windows service. This must be selected only when installing on the server machine. 3. Carabao lexical data. These are plain data files, which do not have to be registered or mounted, deployment is as simply as copying. They are required for both NLUI Debugger and NLUI Server to function. Running NLUI Server NLUI Server is a standard Windows service. Upon installation, it is made to start automatically when the machine starts. Modifications can be made via the Services console, and the settings may be modified by editing svcnluis.exe.config file in the installation directory. The service configuration file must refer to a script configuration file, which is loaded on the service startup. The service configuration file is a standard.net configuration. Please refer to the extensive Microsoft documentation on Configuration File Schema for the.net Framework (current URL: http://msdn.microsoft.com/en-us/library/1fk1t1t0.aspx). Normally, the sections of interest are editable by SvcConfigEditor.exe tool provided by Microsoft. Script Development Obligatory Hello, world Example Let us start with a simple example: a script that asks the user to say hello in whatever way the user likes, and repeats it. The example only contains one variable, an introduction message, one domain, one stage, and one obtain element: <?xml version="1.0" encoding="utf-8"?> <service xmlns="http://www.linguasys.com/nlui" name="hello, world!" timeoutinminutes="1" defaultlanguagecode="en" languagemap="en=eng," lexicondatadir="e:\carabao\" messageconcatenator=", "> <variables> <variable name="usershello" type="system.string" /> </variables> <introductionmessage> <message lang="en"> <template>well, just say a greeting.</template> </message> </introductionmessage> <domain name="helloworld"> <stage maxattemptexceededaction="abort" name="firstandonlystage" > <!-- The only stage: gather the information, and send back to the user the matching entity --> <obtain targetvariable="usershello" entitycondition="hypernym=45708;" extractionmethod="matchingentityonly" maxextractedentitycount="1" maxattempts="5"> 2012 LinguaSys, Inc. All rights reserved Page 4

<prompt> <message lang="en"> <template>just say hello. In any way you like.</template> </message> </prompt> </obtain> <basefinishmessage> <message lang="en"> <template>this is your greeting: "{0}"</template> </message> <arguments> <variablename>usershello</variablename> </arguments> </basefinishmessage> </stage> </domain> </service> Let s look at the important parts of the code: A variable usershello holds the greeting uttered by the user. It is uninitialized in the beginning of ths cript. A domain helloworld contains just one stage with a very simple task: obtain a greeting from the user. An obtain element linked to our only variable. The entity condition is hypernym=45708; which corresponds to all kinds of greetings. NLUI Server will keep questioning the user until the user provides some kind of answer with a kind of hello in it. It can be hi, salute, how are you doing, hello, hi, and other terms according to the lexicon. A basefinishmessage element providing echoing not what the user said, but the greeting entity inside the matching input. Let s run the script in NLUI Debugger: 2012 LinguaSys, Inc. All rights reserved Page 5

Building and Debugging NLUI Server Scripts Please refer to the supplied NLUI Server Script Configuration Reference for in-depth reference on the NLUI script schema. In order to shorten the development cycle, we provide a GUI tool named NLUI Debugger (shown in the illustration above) to test the scripts without the need to deploy them in a server environment, and gain insight into what is happening on every step. Load your script (not service!) configuration, modify the Carabao lexicon folder if needed, select the active language, and start your testing. It is much easier to create and edit the scripts with an XML editor which supports IntelliSense based on XSD schemas, such as the XML Editor built-in into Microsoft Visual Studio: http://msdn.microsoft.com/en-us/library/ms255811.aspx (but, of course, there are numerous alternatives). Use nluis.xsd as the schema. Building Multilingual Scripts As the scripts understand language using Carabao runtime, they all understand all languages in the active Carabao database. However, the prompts themselves must be customized per language. (Note that you may supply several message templates to the same message, and then they are randomized to create an illusion of human-like interaction.) If the messages are not created for every languages aimed to be supported, then NLUI Server falls back to the default language every time. This option may be acceptable for testing, but should not be used in production. Supported languages are explicitly specified in the languagemap attribute of service element in the script configuration. 2012 LinguaSys, Inc. All rights reserved Page 6