Rocky Nevin's presentation at eComm 2008

1,004
-1

Published on

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,004
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
34
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • RN, startup applying NNet-like processing to Information systems In graduate school I studied the connections of neurons in an insect. I wanted to entitle my dissertation “RoboCricket” but my advisor said no. While I appropriately acceded to his advice, that name seemed appropriate to me because they are like little robots: very, very good at what they do, and their information processing is different than that of the computers which I used to help analyze the little creatures’ morphology. I will talk about a different way to store and process info’, more like how we think. This helps us communicate with the machine And I’ll talk about self-organizing systems which give Data and Function Modules, and let us see the worl from the POV of others ... this is relevant to social networking apps.
  • Rocky Nevin's presentation at eComm 2008

    1. 1. <ul><ul><li>Human Friendly Computing: </li></ul></ul><ul><ul><li>Neural-like, self-organizing data and functions </li></ul></ul><ul><ul><li>Communicating with the Machine </li></ul></ul><ul><ul><li>Rocky Nevin, CEO/CTO Data Sea Inc. </li></ul></ul><ul><ul><li>March 14, 2008 </li></ul></ul>
    2. 2. Before we communicate with a person we must communicate with the Machine ... improve!
    3. 3. Why do we have to do the work? <ul><li>We must guide it to the next step </li></ul><ul><li>Von Neumann, c. 1945: </li></ul><ul><ul><li>Paraphrased: Do things in steps, and tell me the address, and I’ll tell you what’s there . </li></ul></ul>
    4. 4. Why do we have to do the work? <ul><li>Machines are simple: evolved from tabulators </li></ul><ul><ul><li>Tabular data structures isolated data </li></ul></ul><ul><ul><li>Tabulating algorithms mov ax, 09 </li></ul></ul>Speed, size Coding Evolution (“Intelligence”)‏ Procedural Neural-like Human Speed, size Coding
    5. 5. <ul><li>* Humans ≠ Computers </li></ul><ul><li>* Language has evolved for a reason </li></ul>
    6. 6. “ I know what I want, why can’t I just ask for it?”
    7. 7. Today’s Look: Clutter <ul><li>Pulldowns, decision-trees </li></ul><ul><li>Fragmented data </li></ul>
    8. 8. Today’s Look: Hieroglyphs <ul><li>Old Model </li></ul><ul><ul><li>Late I st Pharaonic Dynasty Hieroglyphs? </li></ul></ul>
    9. 9. Today’s Look: Hieroglyphs <ul><li>Old Model </li></ul><ul><ul><li>Late I st Pharaonic Dynasty Hieroglyphs? </li></ul></ul>
    10. 10. 1) Follow Trees: pre-defined pull-downs (most app’s)‏ 2) Intersection of sets: e.g. search engines 3) Neural Networks: optimization, processing layers 4) ‘Neural-like’ processing: DataSea Four models of interaction
    11. 11. Four models of interaction: Trees <ul><li>1) Follow Trees: pre-defined, pull-downs (most app’s)‏ </li></ul><ul><ul><li>we learn and adapt </li></ul></ul><ul><ul><li>Forced decisions </li></ul></ul><ul><ul><li>many steps , </li></ul></ul><ul><ul><li>islands of data </li></ul></ul><ul><ul><li>===> “Answer not found”, “Error”, </li></ul></ul><ul><ul><li>“ Operation not allowed” </li></ul></ul><ul><li>2) Type our queries (e.g. search engines)‏ </li></ul><ul><li>3) Neural Networks: optimization, processing layers </li></ul><ul><li>4) ‘Neural-like’ processing: DataSea </li></ul>
    12. 12. Four models of interaction: Intersections <ul><li>1) Follow Trees: pre-defined pull-downs (most app’s)‏ </li></ul><ul><li>2) Type our queries (e.g. search engines)‏ </li></ul><ul><ul><li>Keywords, some Natural Language </li></ul></ul><ul><ul><li>Queries only commands & new info </li></ul></ul><ul><ul><li>Answers are ‘hits’ ... answers ... </li></ul></ul><ul><ul><li>not enough! </li></ul></ul><ul><li>3) ‘Neural Networks: optimization, processing layers </li></ul><ul><li>4) Neural-like’ processing: DataSea </li></ul>
    13. 13. <ul><li>1) Follow Trees: pre-defined pull-downs (most app’s)‏ </li></ul><ul><li>2) Type our queries (e.g. search engines)‏ </li></ul><ul><li>3) Neural Networks: optimization, processing layers </li></ul><ul><ul><li>Pattern recognition, not database </li></ul></ul><ul><ul><li>Transformations </li></ul></ul><ul><ul><li>&quot;Hidden layer&quot; ... unpredictable </li></ul></ul><ul><li>4) Neural-like’ processing: DataSea </li></ul>Four models of interaction: N-Nets Input Calculations (hidden-layer)‏ Output
    14. 14. <ul><li>1) Follow Trees: pre-defined pull-downs (most app’s)‏ </li></ul><ul><li>2) Type our queries (e.g. search engines)‏ </li></ul><ul><li>3) Neural Networks: optimization, processing layers </li></ul><ul><li>4) ‘Neural-like’ processing: DataSea </li></ul><ul><ul><li>Data and Input --> neural-representation (fused, stateful)‏ </li></ul></ul><ul><ul><li>Queries + commands + new info </li></ul></ul><ul><ul><li>Precise, explained answers </li></ul></ul><ul><ul><li>Context </li></ul></ul>Four models of interaction: ‘Neural-like’
    15. 15. Today’s methods: Why so brittle? Relational Databases: - fast, but not highly connected Inferencing is hard! “ what is the beast’ s name ?” Table: Names Thing Name robot Gort cat Tally planet Earth ... ...
    16. 16. Table: Aliases Word Alias dog animal dog canine cat animal cat feline animal beast ... ... Today’s methods: Query Expansion What is the beast’s (?cat’s?) name? Relational Databases: - fast, but not highly connected Inferencing is hard! “ what is the beast’ s name ?” Table: Names Thing Name robot Gort cat Tally planet Earth ... ...
    17. 17. Today’s methods: Query Expansion What is the beast’s (?cat’s?) name? Relational Databases: - fast, but not highly connected Inferencing is hard! “ what is the beast’ s name ?” <ul><li>Select Name from Names where Creature=’beast’ </li></ul><ul><ul><ul><li>plus </li></ul></ul></ul><ul><li>Select Name from Names where Creature in </li></ul><ul><li>(select Word from Aliases where Alias=’beast’)‏ </li></ul><ul><ul><ul><li>plus </li></ul></ul></ul><ul><li>Select Name from Names where Creature in </li></ul><ul><li>(select Word from Aliases where Alias in </li></ul><ul><li>(select Word from Aliases where Alias=’beast’’))‏ </li></ul>Table: Aliases Word Alias dog animal dog canine cat animal cat feline animal beast ... ... Table: Names Thing Name robot Gort cat Tally planet Earth ... ...
    18. 18. “ I know what I want, why can’t I just ask for it?”
    19. 19. DataSea’s Query Expansion: automatic “ what is the beast’s name?” Tally, is Name Associative Memory ... Single Network
    20. 20. Today’s methods: Query Expansion What is the beast’s (cat’s?) name? Need to automatically: 1) Look further than one link 2) Treat 3 inferences in the same way as 1 3) Avoid ‘query-explosion’
    21. 21. Object Reusability, Data integration ... just connect them up! Fitting together ? Aaaaaimport java.io.*; import java.util.*; import java.io.*; import java.net.*; import Utils.Login; import Utils.Utils; import net.sf.asterisk.manager.*; import net.sf.asterisk.manager.event.*; import net.sf.asterisk.manager.action.*; import net.sf.asterisk.manager.impl.*; import net.sf.asterisk.manager.response.*; import net.sf.asterisk.fastagi.command.SetPriorityCommand; import net.sf.asterisk.fastagi.command.StreamFileCommand; public class MGR_Reminder { static int DELAY_SLEEP_SECS = 3; // Writing from server to ast2 goes about 40kB/sec, but to kvm ast is 500kB/sec // It's about 1MB per minute public static void main(String[] argv) { } static public void writeFileToAsterisk(String filebase, String msg_str) { try { String command=utils.DS_ROOT+&quot;/Eclipse/Scripts/ds.genAudToAst.sh &quot;+user_name+&quot; &quot;+playback_str+ &quot; &quot; + filebase+&quot; &quot;+msg_str; rt.exec(command); } catch (java.io.IOException e) { System.err.println(&quot;Runtime IOException: &quot; + e.toString()); } } private DefaultManagerConnection getDefaultManagerConnection()‏ { DefaultManagerConnection dmc; dmc = new DefaultManagerConnection(); dmc.setUsername(&quot;admin&quot;); dmc.setPassword(&quot;rocky&quot;); dmc.setHostname(Utils.ASTERISK_MANAGER); dmc.setHostname(&quot;ast&quot;); // TODO !! Fix this!!!!!!!! if (dmc==null) { System.out.println(&quot;DefaultManagerConnection: FATAL ERROR null dmc&quot;); } return dmc; } public void placeCall(String filebase, String str_number, String forwarding_number, String maxsecs1, String maxsecs2, String user_name) { try { this.loginAndOriginateCall(filebase, str_number, forwarding_number, maxsecs1, maxsecs2, user_name); } catch (Exception e) { System.out.println(&quot;ERROR IN MGR_Reminder main RUNNING OF mgr.testLogin&quot;); e.printStackTrace(); } import java.sql.Connection; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.sql.DriverManager; public class calcRate { static public Connection mysql_connection=null; public calcRate() { } public Connection testConnection(String host, String db, String user, String pass) { String diag_str=&quot;&quot;; try { Class.forName(&quot;com.mysql.jdbc.Driver&quot;).newInstance(); } catch (Exception ex) { System.err.println(&quot;ERROR in newInstance of Login Class.forName(com.mysql.jdbc.Driver.newInstance():&quot;+ex); return((Connection) null); // Bail out } Connection conn; try { conn = DriverManager.getConnection(&quot;jdbc:mysql://&quot;+host+&quot;/&quot;+ db +&quot;?user=&quot;+user+&quot;&password=&quot;+pass); } catch (SQLException ex) { diag_str +=&quot;ERROR testConnection SQLException: &quot; + ex.getMessage()+&quot; &quot;; System.err.println(diag_str); return((Connection)null); // Bail out } if (conn == null)‏ return(conn); // OK } public double sqlCalcRate(String phone_number) { Statement stmt; int row_counter=0; int max_rows=100; String prefix=&quot;&quot;; String rate=&quot;&quot;; String destname=&quot;&quot;; if (phone_number==null)‏ return(-1); if (phone_number.length()<3)‏ return(-1); if (0==phone_number.indexOf(&quot;1&quot;)) // This is a US/Canada number return(DEFAULT_PHONE_COST_US_CANADA); else if (0==phone_number.indexOf(&quot;011&quot;))‏ phone_number = phone_number.substring(3); // Trim off the 01 and use the rest else // We don't have an international code, so assume it's to the US/Canada return(DEFAULT_PHONE_COST_US_CANADA); Connection conn = mysql_connection; if (conn==null) { System.err.println(&quot;sqlCalcRate has null connections&quot;); return(-2); } String query_str = &quot;select Prefix, Rate, Rate from asteriskcdrdb.rates where Prefix like &quot; +&quot;'&quot;+phone_number.substring(0, 2)+&quot;%'&quot; +&quot; order by char_length(Prefix) desc&quot;; System.err.println(&quot;Login.sqlCalcRate: &quot; +&quot; phone_number = &quot;+phone_number+&quot; &quot; } ...
    22. 22. Object Reusability, Data integration ... just connect them up! Fitting together ? rather complex Aaaaaimport java.io.*; import java.util.*; import java.io.*; import java.net.*; import Utils.Login; import Utils.Utils; import net.sf.asterisk.manager.*; import net.sf.asterisk.manager.event.*; import net.sf.asterisk.manager.action.*; import net.sf.asterisk.manager.impl.*; import net.sf.asterisk.manager.response.*; import net.sf.asterisk.fastagi.command.SetPriorityCommand; import net.sf.asterisk.fastagi.command.StreamFileCommand; public class MGR_Reminder { static int DELAY_SLEEP_SECS = 3; // Writing from server to ast2 goes about 40kB/sec, but to kvm ast is 500kB/sec // It's about 1MB per minute public static void main(String[] argv) { } static public void writeFileToAsterisk(String filebase, String msg_str) { try { String command=utils.DS_ROOT+&quot;/Eclipse/Scripts/ds.genAudToAst.sh &quot;+user_name+&quot; &quot;+playback_str+ &quot; &quot; + filebase+&quot; &quot;+msg_str; rt.exec(command); } catch (java.io.IOException e) { System.err.println(&quot;Runtime IOException: &quot; + e.toString()); } } private DefaultManagerConnection getDefaultManagerConnection()‏ { DefaultManagerConnection dmc; dmc = new DefaultManagerConnection(); dmc.setUsername(&quot;admin&quot;); dmc.setPassword(&quot;rocky&quot;); dmc.setHostname(Utils.ASTERISK_MANAGER); dmc.setHostname(&quot;ast&quot;); // TODO !! Fix this!!!!!!!! if (dmc==null) { System.out.println(&quot;DefaultManagerConnection: FATAL ERROR null dmc&quot;); } return dmc; } public void placeCall(String filebase, String str_number, String forwarding_number, String maxsecs1, String maxsecs2, String user_name) { try { this.loginAndOriginateCall(filebase, str_number, forwarding_number, maxsecs1, maxsecs2, user_name); } catch (Exception e) { System.out.println(&quot;ERROR IN MGR_Reminder main RUNNING OF mgr.testLogin&quot;); e.printStackTrace(); } import java.sql.Connection; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.sql.DriverManager; public class calcRate { static public Connection mysql_connection=null; public calcRate() { } public Connection testConnection(String host, String db, String user, String pass) { String diag_str=&quot;&quot;; try { Class.forName(&quot;com.mysql.jdbc.Driver&quot;).newInstance(); } catch (Exception ex) { System.err.println(&quot;ERROR in newInstance of Login Class.forName(com.mysql.jdbc.Driver.newInstance():&quot;+ex); return((Connection) null); // Bail out } Connection conn; try { conn = DriverManager.getConnection(&quot;jdbc:mysql://&quot;+host+&quot;/&quot;+ db +&quot;?user=&quot;+user+&quot;&password=&quot;+pass); } catch (SQLException ex) { diag_str +=&quot;ERROR testConnection SQLException: &quot; + ex.getMessage()+&quot; &quot;; System.err.println(diag_str); return((Connection)null); // Bail out } if (conn == null)‏ return(conn); // OK } public double sqlCalcRate(String phone_number) { Statement stmt; int row_counter=0; int max_rows=100; String prefix=&quot;&quot;; String rate=&quot;&quot;; String destname=&quot;&quot;; if (phone_number==null)‏ return(-1); if (phone_number.length()<3)‏ return(-1); if (0==phone_number.indexOf(&quot;1&quot;)) // This is a US/Canada number return(DEFAULT_PHONE_COST_US_CANADA); else if (0==phone_number.indexOf(&quot;011&quot;))‏ phone_number = phone_number.substring(3); // Trim off the 01 and use the rest else // We don't have an international code, so assume it's to the US/Canada return(DEFAULT_PHONE_COST_US_CANADA); Connection conn = mysql_connection; if (conn==null) { System.err.println(&quot;sqlCalcRate has null connections&quot;); return(-2); } String query_str = &quot;select Prefix, Rate, Rate from asteriskcdrdb.rates where Prefix like &quot; +&quot;'&quot;+phone_number.substring(0, 2)+&quot;%'&quot; +&quot; order by char_length(Prefix) desc&quot;; System.err.println(&quot;Login.sqlCalcRate: &quot; +&quot; phone_number = &quot;+phone_number+&quot; &quot; } ...
    23. 23. Object Reusability, Data integration ... & Brain Transplants: just connect them up! Fitting together ? rather complex Aaaaaimport java.io.*; import java.util.*; import java.io.*; import java.net.*; import Utils.Login; import Utils.Utils; import net.sf.asterisk.manager.*; import net.sf.asterisk.manager.event.*; import net.sf.asterisk.manager.action.*; import net.sf.asterisk.manager.impl.*; import net.sf.asterisk.manager.response.*; import net.sf.asterisk.fastagi.command.SetPriorityCommand; import net.sf.asterisk.fastagi.command.StreamFileCommand; public class MGR_Reminder { static int DELAY_SLEEP_SECS = 3; // Writing from server to ast2 goes about 40kB/sec, but to kvm ast is 500kB/sec // It's about 1MB per minute public static void main(String[] argv) { } static public void writeFileToAsterisk(String filebase, String msg_str) { try { String command=utils.DS_ROOT+&quot;/Eclipse/Scripts/ds.genAudToAst.sh &quot;+user_name+&quot; &quot;+playback_str+ &quot; &quot; + filebase+&quot; &quot;+msg_str; rt.exec(command); } catch (java.io.IOException e) { System.err.println(&quot;Runtime IOException: &quot; + e.toString()); } } private DefaultManagerConnection getDefaultManagerConnection()‏ { DefaultManagerConnection dmc; dmc = new DefaultManagerConnection(); dmc.setUsername(&quot;admin&quot;); dmc.setPassword(&quot;rocky&quot;); dmc.setHostname(Utils.ASTERISK_MANAGER); dmc.setHostname(&quot;ast&quot;); // TODO !! Fix this!!!!!!!! if (dmc==null) { System.out.println(&quot;DefaultManagerConnection: FATAL ERROR null dmc&quot;); } return dmc; } public void placeCall(String filebase, String str_number, String forwarding_number, String maxsecs1, String maxsecs2, String user_name) { try { this.loginAndOriginateCall(filebase, str_number, forwarding_number, maxsecs1, maxsecs2, user_name); } catch (Exception e) { System.out.println(&quot;ERROR IN MGR_Reminder main RUNNING OF mgr.testLogin&quot;); e.printStackTrace(); } import java.sql.Connection; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.sql.DriverManager; public class calcRate { static public Connection mysql_connection=null; public calcRate() { } public Connection testConnection(String host, String db, String user, String pass) { String diag_str=&quot;&quot;; try { Class.forName(&quot;com.mysql.jdbc.Driver&quot;).newInstance(); } catch (Exception ex) { System.err.println(&quot;ERROR in newInstance of Login Class.forName(com.mysql.jdbc.Driver.newInstance():&quot;+ex); return((Connection) null); // Bail out } Connection conn; try { conn = DriverManager.getConnection(&quot;jdbc:mysql://&quot;+host+&quot;/&quot;+ db +&quot;?user=&quot;+user+&quot;&password=&quot;+pass); } catch (SQLException ex) { diag_str +=&quot;ERROR testConnection SQLException: &quot; + ex.getMessage()+&quot; &quot;; System.err.println(diag_str); return((Connection)null); // Bail out } if (conn == null)‏ return(conn); // OK } public double sqlCalcRate(String phone_number) { Statement stmt; int row_counter=0; int max_rows=100; String prefix=&quot;&quot;; String rate=&quot;&quot;; String destname=&quot;&quot;; if (phone_number==null)‏ return(-1); if (phone_number.length()<3)‏ return(-1); if (0==phone_number.indexOf(&quot;1&quot;)) // This is a US/Canada number return(DEFAULT_PHONE_COST_US_CANADA); else if (0==phone_number.indexOf(&quot;011&quot;))‏ phone_number = phone_number.substring(3); // Trim off the 01 and use the rest else // We don't have an international code, so assume it's to the US/Canada return(DEFAULT_PHONE_COST_US_CANADA); Connection conn = mysql_connection; if (conn==null) { System.err.println(&quot;sqlCalcRate has null connections&quot;); return(-2); } String query_str = &quot;select Prefix, Rate, Rate from asteriskcdrdb.rates where Prefix like &quot; +&quot;'&quot;+phone_number.substring(0, 2)+&quot;%'&quot; +&quot; order by char_length(Prefix) desc&quot;; System.err.println(&quot;Login.sqlCalcRate: &quot; +&quot; phone_number = &quot;+phone_number+&quot; &quot; } ...
    24. 24. Immune system, Protein ‘lock and key’ model Biology Fitting together ? rather complex
    25. 25. Self-organizing => don’t need to know details Immune system, Protein ‘lock and key’ model Biology Fitting together ? complex … But biological systems are self organizing
    26. 26. Self-organizing: The Solution? Self-organizing data New Input Self- connecting Self-organizing => don’t need to know details
    27. 27. Self-organizing: The Solution? Are Operations different from Data?
    28. 28. Self-organizing: The Solution? Are Operations different from Data? Data & Operations merge
    29. 29. Self-organizing: The Solution? Self-organizing data and operations New Input Self- connecting Self-organizing => don’t need to know details
    30. 30. Self-organizing: The Solution? New Input Self- connecting Operation, Action Self-organizing => don’t need to know details Self-organizing data and functions
    31. 31. DataSea Network
    32. 32. Input Processing ... DataSea Network
    33. 33. Input Output Answers pulled from network DataSea Network
    34. 34. Input Output Fusion ... - Entire network accessible you can get there from here - Immediate influence from new info - Inferencing DataSea Network
    35. 35. Input Output DataSea Network Reduces ... - difficult UI navigation - multiple, precise steps & decisions - False negatives (null intersection)‏
    36. 36. Multi-Source, Multi-modal : Inputs Voice Applications SQL-RDBMS XML/HTML MS Office: Excel/ Word/Outlook Computer PDA Voice & Text Notes Thesaurus Corporate Repositories Google: web and Desktop VoIP Outputs DataSea Assimilation
    37. 37. Tricky Parts Solved <ul><ul><li>Represent data and functions </li></ul></ul><ul><ul><li> self-organizing, neural-like network </li></ul></ul><ul><ul><li>Process the network </li></ul></ul><ul><ul><li> simple algorithms </li></ul></ul><ul><ul><li>Package answers </li></ul></ul><ul><ul><li> extract activated elements, reassemble </li></ul></ul><ul><li>How to: </li></ul>
    38. 38. Integrating with the Real World Upload Files AddressBook, SpreadSheets, Text, HTML Crawl Relational DataBase Customize GUI for application specific needs
    39. 39. Home Companion (prototype) ‘ where is Lt. Sulu? <ul><li>Typed inputs work ==> Voice (w/ VR) works ... </li></ul><ul><ul><li>Microphone & speakers in house </li></ul></ul><ul><ul><li>DataSea behind VR </li></ul></ul><ul><li>Example </li></ul><ul><ul><li>Audrey! (starts listening)‏ </li></ul></ul><ul><ul><ul><li>yes? ... </li></ul></ul></ul><ul><ul><li>What is Linda’s cell? ” </li></ul></ul><ul><ul><ul><li>‘ Linda’s mobile is (604)9xx-yyyy </li></ul></ul></ul><ul><ul><li>Call her and say Hi, I’ll be late for the meeting. </li></ul></ul><ul><ul><ul><li>‘ calling (604)9xx-yyyy with the message ‘Hi, I’ll be late... ’ </li></ul></ul></ul><ul><ul><li>Thank you </li></ul></ul><ul><ul><ul><ul><li>you’re welcome. (stops listening)‏ </li></ul></ul></ul></ul>
    40. 40. Point of View ... Data Modules Load Another User's Data, run a query:  see the world from their Point of View
    41. 41. Application ... Product 1: Salesforce.com plugin (beta) Gives: - Single-Step - Query expansion - Actions
    42. 42. 1) Search, Chicago –> fails ... null answer 2) Click Advanced Search, 3) Select Find All, 4) Type: Chicago <ul><ul><li>SF: Current method: failures, # steps Finding accounts and contacts in Chicago </li></ul></ul>
    43. 43. SF: DataSea; one step, richer response Finding accounts and contacts in Chicago 1) “show Chicago”
    44. 44. 1) Search, 2) Detail Page, 3) contacts-DetailPage, 4) place call: dial, wait, speak Time: 2+ minutes <ul><ul><li>SF: Current method Calling the contact for Grand Hotels </li></ul></ul>
    45. 45. 1) “show Grand Hotels” 2) “call Tim Barr and say Hi Tim, I’ll be there at noon, sorry for delay.” Time: 0.5 mins <ul><ul><li>SF: DataSea’s method Calling the contact for Grand Hotels </li></ul></ul>
    46. 46. Broad Applicability Applications: - Salesforce.com (beta)‏ - Personal Assistant ‏ - Corporate DB/Knowledge-base - Corporate web portal - Identity Sharing - Home Voice companion (prototyped)‏ - Business Portal (design) - Intelligence community DataSea Assimilation
    47. 47. Broad Applicability Applications: - Salesforce.com (beta)‏ - Personal Assistant ‏ - Corporate DB/Knowledge-base - Corporate web portal - Identity Sharing - Home Voice companion (prototyped)‏ - Business Portal (design) - Intelligence community DataSea Assimilation
    48. 48. Broad Applicability Applications: - Salesforce.com (beta)‏ - Personal Assistant ‏ - Corporate DB/Knowledge-base - Corporate web portal - Identity Sharing - Home Voice companion (prototyped)‏ - Business Portal (design) - Intelligence community DataSea Assimilation
    49. 49. Evolution of Search and Actions Traditional systems Evolution (“Intelligence”)‏ Procedural Neural-like Human DataSea
    50. 50. Trans-Application Fusion CRM data Corp’ DB App’ data DataSea Assimilates, ‘connects the dots’ In-house App CRM App DB App
    51. 51. Summary <ul><li>Technology: </li></ul><ul><ul><li>Highly-connected </li></ul></ul><ul><ul><li>Fused, cross-domain data </li></ul></ul><ul><ul><li>Self-organizing </li></ul></ul><ul><li>Results </li></ul><ul><ul><li>Inferencing & query expansion </li></ul></ul><ul><ul><li>Natural Language I/O </li></ul></ul><ul><ul><li>Plugin data (‘knowledge modules’) and functions </li></ul></ul>
    52. 52. Contact Us CEO: Rocky Nevin [email_address] CFO: Linda Webster [email_address] SalesForce DataSea Plugin Pending SFDC Appexchange certification DataSea, Inc. www.DataSea.com
    53. 53. An eComm 2008 presentation – http://eCommMedia.com for more

    ×