Archive for December 30th, 2006

Posted on Dec 30th, 2006

In working with providing computer programs that leverage the use of natural language as a means for program command control, one of the first responses some people have is, “You mean I have to type?” The aversion to typing out thoughts to accomplish tasks seems unreasonably daunting for some at first, but when the advantages of using simple concepts are made clear, the method presents many strengths not available in other forms of control.

Using natural language is first and foremost the simplest form of communication used by people to communicate with each other. We do it every day in composing emails, letters, memos, and notes to one another. Unlike the methods we most prevalently use to interact with software programs, using natural thought processes allows us to eliminate much of the symbolic recognition, translation, searching, memorization, and implementation steps needed to convert the human thought processes into mechanical functions. Here is a simple example to illustrate the point. Using current computing methods, suppose you have it in mind to write a letter. The thought impulse to create a letter is simple enough, so now you need to figure out how to get that done. Here are the steps:

1. You decide you want to write a letter.
2. You need to remember what the name of the program is on your computer that you use for writing letters.
3. In the easiest invocation, you search your computer desktop visually to locate the icon symbol that is associated with the software you use to write a letter.
4. When you locate the correct symbol, you double click on the icon to start the word processor program.
5. If you are using a template for your letter, you search for the proper template and click on the document you want to use as the starting point for your composition.
6. With the template now visible, you can begin typing the information you want.

Most people feel these six easy steps are efficient enough to be comfortable with using the computer. However, if you use natural language control concepts to perform the same function, it is possible to accomplish the same task by creating a simple command like “letter” or any variation on this concept command you wish. Once this natural control word is established, typing the word “letter” performs the first five steps in the above process automatically, leaving you with the remaining task of typing your desired text. Simply by thinking, “I want to write a letter,” then typing the word “letter” into an interface, the machine performs all the search, recognition, translation, and implementation steps that would otherwise be left up to you. When this convenience is magnified to work with other things you use your computer to perform, the result is significant improvement in efficiency and simplification of the interactive process.

Some software manufacturers have tried to provide the benefits of this type computer interaction using Voice Recognition (VR) technology. Unfortunately, the limitations associated with implementing, incrementing, and manipulating voice commands have proven to be widely unpopular for the most part. Using VR technology, the computer has problems recognizing user voice commands if the person has a cold or does not speak clearly. This results in the need to repeat some commands multiple times to get the desired results, or recalibrating the software. There are also extra vocal control actions needed when moving through text that make the system more difficult to use. A third difficulty with VR technology is the amount of storage space needed to maintain the vocabulary and information database that makes it work.

I have found that using a simple text entry system for natural language control is the best option presently available. To supplement the text entry function, I have also used an augmentation that allows me to point and click on my desired operation as an additional option for invoking the more sensible commands I create for myself. The degree of organization and more efficient operations achieved by using natural language commands have been measurably more productive than traditional means of computer interaction.

Director of Software Concepts BHO Technologists - LittleTek Center. Please provide a rating for the article to help us determine future content choices.

Posted on Dec 30th, 2006

This is intermediate level SQL scripting article for DB Administrator, Programmer, IT Specialist

Our and Microsoft Business Solutions goal here is to educate database administrator, programmer, software developer to enable them support Microsoft Great Plains for their companies. In our opinion self support is the goal of Microsoft to facilitate implementation of its products: Great Plains, Navision, Solomon, Microsoft CRM. You can do it for your company, appealing to Microsoft Business Solutions Techknowledge database. This will allow you to avoid expensive consultant visits onsite. You only need the help from professional when you plan on complex customization, interface or integration, then you can appeal to somebody who specializes in these tasks and can do inexpensive nation-wide remote support for you.

Let’s look at interest calculation techniques.

Imagine that you are financing institution and have multiple customers in two companies, where you need to predict interest. The following procedure will do the job:

CREATE PROCEDURE AST_Interest_Calculation@Company1 varchar(10), --Great Plains SQL database ID@Company2 varchar(10),@Accountfrom varchar(60),@Accountto varchar(60),@Datefrom datetime,@Dateto datetime--,asdeclare @char39 char --for single quote markdeclare @SDatefrom as varchar(50)declare @SDateto as varchar(50)select @SDatefrom = cast(@Datefrom as varchar(50))select @SDateto = cast(@Dateto as varchar(50))select @char39=char(39)if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[AST_INTEREST_TABLE]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)CREATE TABLE [dbo].[AST_INTEREST_TABLE] ([YEAR] [int] NULL ,[MONTH] [int] NULL ,[COMPANYID] [varchar] (4) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,[ACTNUMST] [char] (129) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,[BEGINDATE] [varchar] (19) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,[ENDDATE] [varchar] (19) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,[YEARDEGBALANCE] [numeric](19, 5) NULL ,[BEGBALANCE] [numeric](38, 5) NULL ,[ENDBALANCE] [numeric](38, 5) NULL ,[INTERESTONBALANCE] [numeric](38, 6) NULL ,[INTERESONTRANSACTIONS] [numeric](38, 8)  NULL ,[INTEREST] [numeric](38, 6) NULL ) ON [PRIMARY]exec("delete AST_INTEREST_TABLE where [YEAR] = year("+ @char39 + @Datefrom + @char39 +") and [MONTH]=month("+ @char39 + @Datefrom + @char39 +")insert into AST_INTEREST_TABLEselectyear(X.BEGINDATE) as [YEAR],month(X.BEGINDATE) as [MONTH],X.COMPANYID,X.ACTNUMST,X.BEGINDATE as BEGINDATE,X.ENDDATE as ENDDATE,X.YEARBEGBALANCE as YEARDEGBALANCE,X.YEARBEGBALANCE+X.BEGBALANCE as BEGBALANCE,X.YEARBEGBALANCE+X.ENDBALANCE as ENDBALANCE,X.INTERESTONBALANCE as INTERESTONBALANCE,X.INTERESTONTRANSACTIONS as INTERESONTRANSACTIONS,X.INTERESTONBALANCE+X.INTERESTONTRANSACTIONS as INTEREST--into AST_INTEREST_TABLEfrom(select"+ @char39+ @Company1 + @char39+" as COMPANYID,a.ACTNUMST,"+ @char39 + @Datefrom + @char39 +" as BEGINDATE,"+ @char39 + @Dateto + @char39 +" as ENDDATE,case whenb.PERDBLNC is null then 0else b.PERDBLNCend as YEARBEGBALANCE,sum(casewhen (c.DEBITAMT-c.CRDTAMNT is not null and c.TRXDATE ="+ @char39 + @SDatefrom + @char39 +" and c.TRXDATE =year("+ @char39 + @Datefrom + @char39 +")wherea.ACTNUMST>="+@char39+@Accountfrom+@char39 +"and a.ACTNUMST="+ @char39 + @SDatefrom + @char39 +" and c.TRXDATE =year("+ @char39 + @Datefrom + @char39 +")wherea.ACTNUMST>="+@char39+@Accountfrom+@char39 +"and a.ACTNUMSTgroup bya.ACTNUMST,case whenb.PERDBLNC is null then 0else b.PERDBLNCend,d.USERDEF1) X")

Happy querying and customizing! if you want us to help you - give us a call 1-866-528-0577! help@albaspectrum.com

About The Author

Andrew Karasev is Chief Technology Officer in Alba Spectrum Technologies – USA nationwide Microsoft CRM, Microsoft Great Plains customization company, based in Chicago, Arizona, California, Colorado, Texas, New York, Georgia, Florida, Canada, UK, Australia and having locations in multiple states and internationally , he is Dexterity, SQL, C#.Net, Crystal Reports and Microsoft CRM SDK developer; akarasev@albaspectrum.com