The SOFI Project
Role: Design & development
SOFI is a project started to test the feasibility of natural language interaction in everyday computer applications. SOFI's character and personality have been developed over the past two years to make the start of what will hopefully be a specializable interface to any program, website, or knowledge base. The holes in SOFI's current knowledge will be filled by specialized knowledge when she is implemented for a particular task. Through experimentation and research, it has been found that while total comprehension of the English language is currently impossible, some specialized comprehension is possible. For instance, basing SOFI's English around that needed to answer certain questions, and respond to certain input is very possible. To further exemplify, look at a country's foreigners, who work in certain fields and know only enough of the native language to perform their particular job - even if that job involves sales, support, or customer service.
The development of SOFI's comprehension has been centered around idealogical meanings and not real word meanings. She does not need to know the definitions of individual words to be able to extract the meaning of a phrase, statement, or question. This saves programming time and simultaneously increases performance. Adding a new idea to SOFI's library is a relatively simple task, as is adding a feature to her current skillset. She already understands over one million statements, commands, and questions. A few of her strongest points is her ability to deal with slang, contractions, casual English and about 1000 commonly misspelled words without any additional processing.
This prototype of the SOFI project was developed using scripting languages over the World Wide Web in order to effect a constant burden of time and performance constraints. Not developed carefully, a project such as this could potentially become too cumbersome to work as an overlaying interface. If processing, or I/O time causes a drag on a system's speed, SOFI may hinder the very program she was meant to simplify. Average human chat responses are bounced back and forth in one to seven seconds. Most of SOFI's responses are instantaneous - almost too fast. Performance is the number one consideration in this project. Speed and light-weight engineering make SOFI's versatility and portability possible. All functions and code statements were written for a natural portability to C++ and Java, which are the languages SOFI is ultimately intended for. As a product, SOFI can be used alone as a secretary or as a built-in interface to any application or OS with an API. SOFI can also host websites from within a page or as a pop-up window as she is now. She can not only assist a visitor in the use of a complex website, but also navigate the user to specific parts of the website. Why use links? In fact, SOFI can fill out forms, register, shop, apply, act as a complete agent for a website visitor without even bringing the visitor to the page where the form exists.
SOFI puts the face in interface, the ease in feasible, and takes the work out of network.