The Computable Human

David Ostby
Chief Science Officer
SavantX

Join the Conversation #WolframTechConf

SavantX AI - A Brief History

Visual Purple - The training simulation company.
SynTar - a synthetic avatar (NPC) designed to carry on a short, convincing conversation with a human simulation player.
Twitter data mining.
GisterPro:  DIA / OSINT using M8 in the cloud through Nimbis Services

The Client

Client Issues

Industrial Sensors

How do Industrial Sensors HELP?

Human Generated Data

Human Generated Data

80% or more is Unstructured Text

Humans as Sensors

A crazy idea because Humans are:

NOT Homogeneous Output
Uncalibrated
Unknown Reliability
Slow to Output:  may be Minutes to Hours to Days to report
Can not Report from Dangerous Locations
Outputs are in Human Language, a type of Non-Computer-Comprehensible Code


On the other hand, Humans are:

Mobile - Can Relocate at Will
Observant
Smart 
Anomaly Detection
Swarm - Can Relocate in Quantity to a Problem Area
Already in Place
Existing Reporting Protocols
NOT Homogeneous Output - Configurable to the Situation

Human Sensors

What are they trying to say????

SavantX:  Search    Discover   Analyze

SavantX  Data Ingestion

for 50 Million Pages

SDA: Search, Discover and Analyze

Search: Clients need to find their documents in three different search modes:
	1. Needle in the Haystack
	2. Set of related documents:  3 to say 100
	3. Analyze a large set of homogeneous passages

Discover: Searches can return very large data sets.  
	1.  How to guide users to better search terms
	2.  How to summarize the contents of the return set
	3.  Quickly allow access to homogeneous subsets of the search returns

Analyze: How to extract information from homogeneous passage sets
	1.  Time Plots
	2.  Trends
	3.  Spikes
	4.  Correlations

SavantX:   Search Technology

SavantX: Typical Rack Hardware

Why Mathematica?

Rapid development: Mathematica is a very high level language

Access to many algorithms across many domains

Speed is not an issue:  Mathematica can overdrive the hardware... Savant is more constrained by hardware limits

Mathematica is an easy language to learn... we train our own.

SavantX Search via Graph Theory

car={
{"I DROVE my CAR into WORK TODAY.",{DROVE<->CAR,CAR<->WORK, WORK<->TODAY}},
{"I paid INSURANCE on my CAR TODAY.",{INSURANCE <-> CAR,CAR<->TODAY}},
{"My CAR needs new TIRES.", {CAR<->TIRES}},
{"My CAR needs some REPAIRS",{CAR<-> REPAIRS}},
{"I got a CAR for my BIRTHDAY this YEAR.",{CAR <-> BIRTHDAY, CAR<-> YEAR}},
{"I LOVE my CAR.",{LOVE <-> CAR}}
};

caredges = Flatten[car[[All,2]]];
car2d=Graph2D[caredges];
car3d = Graph3D[caredges, VertexLabels->"Name",ImageSize->{700,450} ];


airplane={
{"I always wanted to learn how to FLY an AIRPLANE.",{FLY <-> AIRPLANE}},
{"I FLY my AIRPLANE to WORK every WEEK.",{FLY <-> AIRPLANE, AIRPLANE <-> WORK,AIRPLANE<->WORK, WORK<->WEEK}},
{"I paid INSURANCE on my AIRPLANE last WEEK.",{INSURANCE <-> AIRPLANE,AIRPLANE<->TODAY, INSURANCE <->WEEK}},
{"My AIRPLANE needs new TIRES.", {AIRPLANE<->TIRES}},
{"My AIRPLANE needs some REPAIRS",{AIRPLANE<-> REPAIRS}},
{"I got a AIRPLANE for my BIRTHDAY this YEAR.",{AIRPLANE <-> BIRTHDAY, AIRPLANE <-> YEAR}},
{"I LOVE to FLY",{LOVE <-> FLY}}
};

airedges = Flatten[airplane[[All,2]]];
air2d=Graph2D[airedges];
air3d=Graph3D[airedges, VertexLabels->"Name",ImageSize->{700,450}];

cartable = Panel[MatrixForm[car, TableHeadings-> {None,{"text","relationships"}}]];
car1d = Column[{"",cartable,""}];
car2d =  Column[{"",car2d,""}];
car3d =  Column[{"",car3d,""}];

airtable = Panel[MatrixForm[airplane, TableHeadings-> {None,{"text","relationships"}}]];
air1d = Column[{"",airtable,""}];
air2d =  Column[{"",air2d,""}];
air3d =  Column[{"",air3d,""}];

both = Union[Flatten[Join[caredges,airedges]]];
both1d = Panel[TableForm[both]];
both2d=Graph2D[both];
both3d = Graph3D[both, VertexLabels->"Name",ImageSize->{700,450}];

laddergraph = Import["F:Savant10\\static\\ladder.g6"];
ladderedges = EdgeList[laddergraph];
ladder2d = Graph[ladderedges, ImageSize->550];
ladder3d=Graph3D[ladderedges, ImageSize->550, ImagePadding->0];

tv=TabView[{"Car 1D"-> car1d, "Car 2D" -> car2d , "Car 3D" -> car3d, "Airplane 1D" -> air1d, "Airplane 2D" -> air2d, "Airplane 3D"-> air3d, "Both 1D" -> both1d, "Both 2D"-> both2d, "Both 3D" -> both3d, "Ladder 2D"-> ladder2d, "Ladder 3D" -> ladder3d}];

tv

The Computable Human

Clients have very large document sets... 1 to 10 to 100+ million files of all sorts.

Savant assumes that humans create files for good reasons.

Files created by humans come in many different types: HTML, PDF, DOC, XLS, TXT, PPT, etc.

Savant thinks of these file sets as 'output' from human 'sensors', especially in a plant setting.

These files contain valuable information but are encoded using human languages

Savant decodes human-generated text by skipping around a semantic understanding...

Savant thinks of textual terms as mathematical symbols... not semantic based 'words'

Savant decomposes found human text into symbol relationship sets

To understand these relationship sets, Savant uses:

Statistics

Graphing Theory

Specialized Energy Reduction Algorithms

Savant’s Level 5 Search Technology

A given search technology can be rated according to the highest level it can achieve:

Level 1. Database or Repository: Single pass, dumb keyword search through text fields or documents.
Level 2. Text Indexing: Allows rapid access to documents of interest that meet Boolean search criteria.
Level 3. Stemming user search strings: greatly expands document hits but adds a lot of non-relevant documents to results
Level 4. Term Statistics: Finds relevant documents through correlations and related term domains. 
Level 5. Context:  Three issues:
		Context Window: Document contains ‘valve’ and ‘failure’ but is not about ‘valve failure’ 
		Different words, same meaning: Failure  -> Leaking
		Same word, different meaning:   ‘ladder of success’ vs. ‘ladder accident’

Savant heavily uses technology at Levels 2 through 5.

Discover

The situation: your carefully crafted search terms return 22,454 hits.  Now what do you do?

Savant reads through those documents at hundreds of documents per second, performing lots of science on them:

Levels 3 through 5 of Search Technology... in real time across many kernels

Pulls out:

Classification

Key concepts

Key phrases

Key terms

Key identifiers

Analyze

Driven by the particular needs of the Client

Can be displayed on Client Dashboards

Can use Discover 'colonies' as input

Standard:
	- Time plot
	- Spikes
	- Trends
	- Correlations