Keeping the Internet Open with An Open-Source Programmable Virtual Assistant

Similar documents
Appendix 4 Weather. Weather Providers

Introduction to Google Drive Objectives:

How we use social media to communicate weather news

Your Virtual Workforce. On Demand. Worldwide. COMPANY PRESENTATION. clickworker GmbH 2017

ASSESSING THE ARTS COMMUNITY: Mapping with GIS and Social Media Tools

SOCIAL MEDIA IN THE COMMUNICATIONS CENTRE

Trends, Helpouts and Hidden Gems: Additional Google Tools to Strengthen Your Brand

Trade Show Planning Timeline by Cory Ann Ellis

The Infinite Dial 2019

Yes, the Library will be accessible via the new PULSE and the existing desktop version of PULSE.

Int er net Saf et y Tip s

The Ultimate Guide To Chatbots For Businesses ONLIM 2018

Integrated Electricity Demand and Price Forecasting

Sign Changes By Bart Hopkins Jr. READ ONLINE

Wireless Network Security Spring 2015

Mobility Analytics through Social and Personal Data. Pierre Senellart

Discovery and Access of Geospatial Resources using the Geoportal Extension. Marten Hogeweg Geoportal Extension Product Manager

D e l i v e r i n g C o n s i s t e n t C u s t o m e r E x p e r i e n c e

P O P U L A R S O C I A L M E D I A A P P S WHAT ARE THEY? AND HOW ARE TEENS USING THEM?

P s y c h i c q u e s t i o n a n s w e r e d

Build relationships not link. Scott Wyden Kivowitz

NovaToast SmartVision Project Requirements

Training Path FNT IT Infrastruktur Management

Students will read supported and shared informational materials, including social

Collaborative Nowcasting for Contextual Recommendation

HCA Tech Note 111: Using Weather Underground with HCA

Building a Timeline Action Network for Evacuation in Disaster

Weather Company Data for Advanced Analytics

ArcGIS Deployment Pattern. Azlina Mahad

Spam ain t as Diverse as It Seems: Throttling OSN Spam with Templates Underneath

Telecommunication Services Engineering (TSE) Lab. Chapter IX Presence Applications and Services.

Introduction to Probabilistic Programming Languages (PPL)

Terms and Conditions of Participation. for the Goethe-Institut's "Advent Calendar 2018" lottery at and Instagram

UltraWeatherBug3 HSPI User s Guide A HomeSeer HS3 plug-in to access live local weather conditions, forecasts and severe weather alerts

Google Maps and Beyond

BASIC TECHNOLOGY Pre K starts and shuts down computer, monitor, and printer E E D D P P P P P P P P P P

ON SITE SYSTEMS Chemical Safety Assistant

Lesser Sunda - Banda Seascape Atlas

Statistical NLP for the Web

SPONSORSHIP GOLD SILVER BRONZE WHAT? WHEN? WHERE? HOW MUCH?

SCAUG Community Maps Building a Living Atlas of the World

ARGUS.net IS THREE SOLUTIONS IN ONE

My Map Activity MINNESOTA SOCIAL STUDIES STANDARDS & BENCHMARKS

Distributed data management with the rule-based language: Webdamlog

GIS CONCEPTS Part I. GIS ON THE WEB Part II

SANTA CLARA COUNTY THEMATIC ATLAS

ArcGIS Earth for Enterprises DARRON PUSTAM ARCGIS EARTH CHRIS ANDREWS 3D

Better Weather Data Equals Better Results: The Proof is in EE and DR!

GP GUIDE TO MY TOP 5

A Little History of Machine Learning

Dear Teacher, Overview Page 1

PUBLIC SAFETY POWER SHUTOFF POLICIES AND PROCEDURES

Degree (k)

Reimaging GIS: Geographic Information Society. Clint Brown Linda Beale Mark Harrower Esri

The Economics of E-commerce and Technology

M I C R O C O N V E R S I O N G O A L S

Your web browser (Safari 7) is out of date. For more security, comfort and. the best experience on this site: Update your browser Ignore

Hong Kong Observatory Summer Placement Programme 2018

SocViz: Visualization of Facebook Data

A Reconfigurable Quantum Computer

1 Descriptions of Function

GIS Geographic Information Systems

Open spatial data infrastructure

Student Technology Standards Scope and Sequence

WMO. Key Elements of PWS and Effective EWS. Haleh Haleh Kootval Chief, PWS Programme

A R A W MIXEDCOMPANYPODCAST.COM

GPS Mapping with Esri s Collector App. What We ll Cover

The Two Time Pad Encryption System

Web GIS Deployment for Administrators. Vanessa Ramirez Solution Engineer, Natural Resources, Esri

ST-Links. SpatialKit. Version 3.0.x. For ArcMap. ArcMap Extension for Directly Connecting to Spatial Databases. ST-Links Corporation.

Please click the link below to view the YouTube video offering guidance to purchasers:

Yahoo! Labs Nov. 1 st, Liangjie Hong, Ph.D. Candidate Dept. of Computer Science and Engineering Lehigh University

Reciprocal Science Teaching Junkie, Inc. 1

personal weather station

Using Social Media for Geodemographic Applications

Securing the Web of Things

Tornado Drill Exercise Plan (EXPLAN)

Economic and Social Council 2 July 2015

MxVision WeatherSentry Web Services Content Guide

W. Douglas Wewer 1,2 *, Michael J. Jenkins 1

Data Aggregation with InfraWorks and ArcGIS for Visualization, Analysis, and Planning

Kosciusko REMC Script August 18, 2014

T R A I N I N G M A N U A L 1. 9 G H Z C D M A P C S 80 0 M H Z C D M A /A M P S ( T R I - M O D E ) PM325

Space News from Around the Internet Updated Every Weekday

NATURAL LANGUAGE PROCESSING. Dr. G. Bharadwaja Kumar

GPS :: VSAT :: Earth Observation :: Satellites & Communications :: Unmanned Aerial Vehicles :: Aerospace :: Launchers :: Analysis :: Jobs in Space ::

My Sign Is Libra By Amanda Starr

Jr. Meteorologist Club

6.034 Quiz 3 5 November 2018

Introduction to Google Mapping Tools

Leveraging Web GIS: An Introduction to the ArcGIS portal

Jodrell Bank Centre for Astrophysics, The University of Manchester

inaturalist Training AOP inaturalist Training May 21, 2016 Slide 1

HISTORY OF GIS AND ESRI

Title: riversnetwork.org : Concept and Tools for sharing Knowledge and Awareness on the River Basins of the World

Twitter s Effectiveness on Blackout Detection during Hurricane Sandy

Universal Semantic Communication

Data-Sharing Agreement

New Cloud Solutions by My TimeZero

JOB REQUESTS C H A P T E R 3. Overview. Objectives

Transcription:

Keeping the Internet Open with An Open-Source Programmable Virtual Assistant Monica Lam Computer Science Department lam@cs.stanford.edu With Giovanni Campagna, Rakesh Ramesh, Silei Xu, Michael Fischer Lab Sponsors: AVG, Google, HTC, Hitachi, ING Direct, Nokia, Samsung, Sony Ericsson

Software Eats the World! Marc Andreesen Monopoly Closed System Loss of Privacy Google search Apple app store Facebook social network Who is going to eat these eaters?

Virtual Assistants Eat the Internet My social contacts Virtual Assistant: A Uniform, Personalized Language-based interface Amazon Alexa, 25000 skills Google assistant Apple Siri Web search E-commerce Closed System Centralized Monopoly Loss of Privacy

Almond: An Open-Source Decentralized Virtual Assistant My social contacts My social contacts Open System Decentralized Open-Source Privacy End-User Programmable

Today s Virtual Assistants VOICE INPUT Device/Service Intent Ask Stock Exchange to get quotes for <company> Tell Nest to set temperature to <temp> Automatic slot filling Send intent to service Actions/Dialog

End-User Programming When the price of Apple stock goes below $150, get the balance of my checking account, if it is above $20,000, send me an SMS with the price. Not just simple commands / dialog dispatches A continuous event-driven program Connect different account & services together Parameter passing: returned results can be passed into functions Filters on values

Key Technology: Semantic Parsing Natural Language When the price of Apple stock goes below $150, get the balance of my checking account, if it is above $20,000, send me an SMS with the price. Code (ThingTalk) monitor @yahoofinance.stock_price(stock_id="aapl"), ask_price < 150 => @bank.get_balance(), balance > 20000 => @phone.send_sms(body=ask_price)

Power of End-User Programming Put the power of programming in the hands of the consumers Not limited to commercial highly monetizable services Personalized, long-tail function

Almond System Architecture Natural Language Semantic Parser THINGTALK THINGPEDIA Open Crowdsourced Interface Repository

Why is this Problem Hard? Natural Language Semantic Parser Generate all grammatically legal programs Understand the semantics of open-world services Lack of training data Actions: cannot train with results What constructs? Synthesizable syntax THINGTALK THINGPEDIA Open Crowdsourced Interface Repository Open-world services In the wild: idiosyncrasies What is the right representation?

Strategy Semantic Parser Natural Language Focus: Representation of Thingpedia & ThingTalk Support important future use cases Must be amenable to semantic parsing Approach An end-to-end system for sharing with privacy (2016-2017) THINGTALK Revise (Q2 2018) THINGPEDIA Open Crowdsourced Interface Repository Crowdsource Thingpedia & open-source virtual assistant technology Campagna, G. et al. Almond: The Architecture of an Open Crowdsourced Privacy-Preserving Programmable Virtual Assistant, WWW Conference, April 2017

Thingpedia: Encyclopedia of Things Currently: 45 devices 177 functions Natural Language Code WHEN @Stanford tweets Monitor (@home_timeline(), ) author== Stanford ) GET tweets matching #Cardinal search( ), contains (hashtag, ) DO tweet Stanford won! post (status)

ALMOND Examples Tweet the latest NASA Astronomy Picture of the Day Auto reply to my emails Set my phone to vibrate every day at 9 am Turn on my TV if there is a person in the room Translate Washington Post headlines to "Chinese" Post my new Instagram pictures on Twitter get a snapshot from my security camera every hour Play some video from YouTube on my TV Send me a daily cat picture Almond Bike Market WHEN: monitor second hand bike posts WHEN: monitor bike posts of brand WHEN: monitor bikes for GET: search second hand bikes GET: search bike posts of brand GET: search bikes for DO: post on almond bike market DO: post a bike for dollars on almond bike market Almond Dates WHEN: monitor date posts on almond dates WHEN: monitor date posts about GET: search partners on almond dates GET: search partners DO: post on almond dates DO: post on almond dates to find partners for Bing Search GET: search on bing GET: search images on bing GET: search images matching with size x on bing Bluetooth Speaker DO: set my speaker as default DO: play music on my speaker DO: increase volume on my speaker DO: decrease volume on my speaker DO: set volume on my speaker to % BodyTrace Scale WHEN: my weight updates Dropbox GET: my dropbox quota GET: file list in folder on dropbox GET: file named on dropbox DO: move file to in dropbox DO: rename file in dropbox DO: create a folder with name in my dropbox Facebook DO: post on facebook saying DO: post a picture on facebook DO: post a picture on facebook with caption Giphy GET: a random gif from giphy GET: a gif with tag from giphy Github WHEN: a new issue opened in github repository WHEN: opens an issue on github WHEN: user opens an issue in github repository WHEN: there is a new commit for github repository WHEN: user commits in github repository WHEN: a new milestone is created in github repository WHEN: user create a new milestone in github repository WHEN: there is a new comment in github repository WHEN: user comments on some issue in repository WHEN: there is a new comment on issue in repository DO: add email to my github account DO: comment on issue in github repository Gmail WHEN: receive an email on gmail WHEN: receive an email from on gmail WHEN: receive an email marked as important WHEN: receive an email marked as important from WHEN: receive an email in category primary WHEN: receive an email from in category primary GET: the latest email GET: the latest email with label GET: the latest email from GET: the latest email with subject DO: send an email to with subject with message DO: send a picture to with subject Google Drive WHEN: a new file or folder is created on google drive DO: create a new file with name on google drive Holidays Calendar WHEN: it's an holiday in the uk WHEN: it's an holiday in the us GET: the next uk holiday GET: the next us holiday icalendar Events WHEN: an event on my calendar begins WHEN: an event on my calendar at location begins WHEN: an event on my calendar organized by begins GET: list my calendar events GET: my calendar events organized by GET: my calendar events at Imgflip Meme Generator` GET: all meme templates GET: meme template named GET: generate meme on template with text at the top and text at the bottom Instagram WHEN: i upload a picture on instagram WHEN: i upload a picture with filter on instagram GET: my recent instagram pictures GET: many recent instagram pictures GET: my instagram pictures with filter Jawbone UP WHEN: my steps on activity tracker updates WHEN: i walked for steps WHEN: i walked for distance WHEN: my weight updates on my fitness tracker WHEN: my weight is on my fitness tracker WHEN: my bmi is on my fitness tracker WHEN: my body fat is on my fitness tracker WHEN: my heart rate updates WHEN: my heart rate is WHEN: my sleep status updates on my sleep tracker WHEN: i sleep for time LG WebOS TV DO: turn my lg tv DO: raise the volume of my lg tv DO: lower the volume of my lg tv DO: set the volume of my lg tv to DO: mute my lg tv DO: unmute my lg tv DO: play link on my lg tv LinkedIn GET: my linkedin profile DO: post on linkedin Miscellaneous Interfaces WHEN: it's o'clock every day GET: current time GET: current date GET: give me a random number GET: give me a random number between and DO: debug log DO: send me a message NASA Daily WHEN: an asteroid passes close to earth GET: nasa's astronomy picture of the day GET: a picture from curiosity rover GET: many pictures from curiosity rover GET: a picture from curiosity rover taken on Nest WHEN: the temperature on my thermostat updates WHEN: the humidity on my thermostat updates WHEN: there is a new event detected on my security camera WHEN: my security camera detects something and has person is _ WHEN: my security camera detects something and has motion is _ WHEN: my security camera detects something and has sound is _ GET: the temperature on my thermostat GET: the humidity on my thermostat GET: the state of my hvac GET: my security camera live feed GET: me a snapshot of my security camera DO: set temperature to on my thermostat DO: set my temperature between and on my thermostat DO: set my hvac to DO: turn my security camera Omlet WHEN: i receive a message on omlet WHEN: i receive a message on omlet in feed WHEN: i receive a message on omlet DO: send an omlet to saying DO: send a picture on omlet to with caption OneDrive WHEN: a new file is created on onedrive WHEN: a file is modified on onedrive WHEN: file on onedrive is modified DO: create a new file on onedrive named containing DO: delete from my onedrive DO: rename to on my onedrive DO: upload a picture to onedrive with name Parklon Iris Warm Water Mat DO: turn my heatpad DO: turn my parklon heatpad PhD Comics WHEN: there is a new post on phd comics Philips Hue DO: turn my lightbulb DO: disco lights DO: flash the lightbulb Phone Companion WHEN: my location changes WHEN: i receive a sms WHEN: i receive a sms from DO: show a popup with title and body DO: send an sms to saying DO: set my phone to DO: call number DO: call 911 Reddit Frontpage WHEN: reddit front page updates WHEN: a new post in category reaches reddit front page WHEN: a new post from user reaches reddit front page RSS Feed WHEN: there is a new post on rss feed Slack WHEN: i receive a message on slack WHEN: i receive a message from on slack WHEN: i receive a message in channel on slack DO: send a message on slack to saying DO: set the purpose for channel to on slack DO: set the topic for channel to on slack DO: set me as on slack DO: send a picture on slack to saying SportRadar WHEN: nba team plays WHEN: nba team plays against WHEN: nba team plays and the game is WHEN: nba team a game WHEN: eu soccer team plays WHEN: eu soccer team plays against WHEN: eu soccer team plays and the game is WHEN: eu soccer team a game WHEN: us soccer team plays WHEN: us soccer team plays against WHEN: us soccer team plays and the game is WHEN: us soccer team a game WHEN: monitor eu soccer games of tournament WHEN: monitor us soccer games of tournament WHEN: mlb team plays WHEN: mlb team plays against WHEN: mlb team plays and the game is WHEN: mlb team a game. WHEN: ncaa mens basketball team plays WHEN: ncaa mens basketball team plays against WHEN: ncaa mens basketball team plays and the game is WHEN: ncaa mens basketball team a game. WHEN: ncaafb team plays WHEN: ncaafb team plays against WHEN: ncaafb team plays and the game is WHEN: ncaafb team a game The Cat API GET: a cat picture GET: many cat pictures The Wall Street Journal WHEN: there is a new article in wsj opinions section WHEN: there is a new article in wsj world news section WHEN: there is a new article in wsj us business section WHEN: there is a new article in wsj market news section WHEN: there is a new article in wsj technology section WHEN: there is a new article in wsj lifestyle section The Washington Post WHEN: there is a new article in washington post section WHEN: there is a new blog post in washington post blog Tumblr WHEN: there is a new post in blog on tumblr WHEN: there is a new picture uploaded in blog on tumblr DO: post on tumblr with title and body DO: post on tumblr DO: post a picture with caption on tumblr Twitter WHEN: someone i follow tweets WHEN: user tweets WHEN: someone replies to user on twitter WHEN: i receive a direct message on twitter WHEN: i receive a direct message from on twitter WHEN: i tweet WHEN: i reply to on twitter GET: search for on twitter GET: many recent tweets matching GET: recent tweets from GET: recent tweets from matching GET: recent tweets in reply to GET: recent tweets in reply to matching GET: search for tweets with hashtag on twitter GET: many recent tweets with hashtag GET: tweets from with hashtag GET: tweets with hashtag in reply to DO: tweet DO: send a dm on twitter to saying DO: tweet a picture with caption DO: follow user on twitter DO: unfollow user on twitter Uber GET: time estimate for uber GET: give me a price estimate for uber from to Weather WHEN: it's at location WHEN: monitor weather at GET: sunrise and sunset for location GET: sunrise and sunset for location on date GET: moon phase for location GET: moon phase for location on date GET: the weather in XKCD WHEN: a new xkcd is out WHEN: a new xkcd is out in the what-if section GET: the latest xkcd GET: the xkcd number GET: a random xkcd Yahoo Finance WHEN: the stock price of changes WHEN: stock dividends for changes Yandex Translate GET: translate to with yandex GET: translate from to with yandex GET: translate GET: translate something to GET: translate with yandex from to GET: detect the language of Youtube WHEN: there is a new video from youtube channels i follow WHEN: there is a new video from youtube channel GET: list channels in category on youtube GET: list channels i am subscribed to on youtube GET: search channels on youtube GET: search a video on youtube GET: search a video from matching on youtube GET: search many videos matching on youtube

ThingTalk Compound Construct WHEN [FILTERS] GET [FILTERS] DO FILTERS: =, <, >, <=. >=, contains, starts with, ends with When my alarm goes off, open my blinds Get my tweets and save them to Dropbox Every day at 9 am, get my tweets and send them to Dropbox When I receive an email from my advisor then send the message on SMS

Real Natural Language Input When I tweet, share the text on LinkedIn Share my tweets on my LinkedIn Whenever I tweet, post the same message on LinkedIn Post all my tweets on LinkedIn

Bootstrapping the Machine Learner There is no pre-existing data corpus Generate prototypical sentences from Thingpedia Crowdsource Paraphrases natural training data Machine Learning Model Incremental Learning training with GUI

Neural Network: Seq2seq with Attention Natural Language play QS_0 from Youtube on my TV $do -> @tv.play_url softmax MLP Bottom-up grammar reductions $get @youtube.search_video $const_string QS_0 $const_param query = $const_string $get $get $const_param $do @tv.play_url $rule now $get $do $out_param video_url $param_passing url = video_url $rule $rule on $param_passing $input $rule L S T M x 0 h E0 h E1 h ET L L S... S T T M M x 1 y 0 h D0 L S T M y 1 h D1... play QS_0 <<GO>> $do -> @tv.play_url ThingTalk code @youtube.search_video (query = QS_0 ) @tv.play_url (url = video_url)

Execution of ThingTalk Show me tweets with hashtag #Stanford Monitor (@com.twitter.home_timeline(), contains(hashtags, "Stanford")) notify Almond 10. notify user 9. report event 1. Show tweet 2. thingtalk 8. interface with my Twitter User ThingEngine Twitter 6. Oauth 3. get my twitter ThingManager 7. return authenticated twitter instance 4. get twitter interface 5. return twitter interface ThingPedia

Sharing Without a Third-Party My social contacts My social contacts

Sharing with Access Control Let me know if Maggie s security camera senses motion. Remote Execution New: principal Natural Language Natural Language Dad can monitor my security camera only if I am not home. Access Control Filters: Who, what, when, where, how

Is Access Control Needed? % 200 people finding sharing scenario comfortable (#10) Sharing scenario: Allow your friends to have access to your cloud drive to view/download photos Access control: Only photos with their faces on them; only photos in a specific folder

Access Control Conformance = Satisfiability Modulo Theories It s fast enough

Summary Almond: An Open-source, Privacy-preserving, End-user programmable virtual assistant Virtual assistants will eat the internet User-programmable with privacy Long-tail, personal preference Sharing existing services with full user control and privacy

Closing Remarks Remember AoL?