Toward a programmatic semantics for natural language hugo liu and henry lieberman mit media lab VL/HCC’04 presentation.

Slides:



Advertisements
Similar presentations
Henry Lieberman MIT Media Lab AI in End-User Software Engineering Henry Lieberman, MIT (presenting) Raphael Hoffmann, Michael Toomim, U. Washington, Seattle.
Advertisements

When is Orientated Programming NOT? Mike Fitzpatrick.
Software Requirements
Rulebase Expert System and Uncertainty. Rule-based ES Rules as a knowledge representation technique Type of rules :- relation, recommendation, directive,
OBJECT ORIENTED PROGRAMMING M Taimoor Khan
S.C. Shapiro Development of a Cognitive Agent Stuart C. Shapiro Department of Computer Science and Engineering and Center for Cognitive Science.
Structured English. From user-speak to programming User Structured English Analyst Programs Programmer Plain English Pseudocode.
Software Requirements
Computers: Tools for an Information Age
Prototyping Strategies
Software Requirements
Chapter 16 Programming and Languages: Telling the Computer What to Do.
Python Brandon Jeffcoat Dashaun West “Why settle for snake oil when you can have the whole snake?” -- From Usenet posting by Mark Jackson, June 1998.
Visual Basic Introduction IDS 306 from Shelly, Cashman & Repede Microsoft Visual Basic 5: Complete Concepts and Techniques.
Meaning and Language Part 1.
1 An Introduction to Visual Basic Objectives Explain the history of programming languages Define the terminology used in object-oriented programming.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Requirements engineering l The process of establishing the services that the.
Introduction to Object-oriented Programming Introduction to Object-oriented Programming CMPS 2143.
Adding Common Sense into Artificial Intelligence Common Sense Computing Initiative Software Agents Group MIT Media Lab.
Comparing Python and Visual Basic
Chapter 9 Structuring System Requirements: Logic Modeling
Common Sense Computing MIT Media Lab Interaction Challenges for Agents with Common Sense Henry Lieberman MIT Media Lab Cambridge, Mass. USA
Programming Languages: Telling the Computers What to Do Chapter 16.
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
Microsoft Visual Basic 2005: Reloaded Second Edition
QUALITATIVE MODELING IN EDUCATION Bert Bredweg and Ken Forbus Yeşim İmamoğlu.
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
Database Design - Lecture 2
Dr. Tom WayCSC Software Requirements CSC 4700 Software Engineering Lecture 2 Based on Sommerville, Chapter 6.
Computer Science 101 Introduction to Programming.
Sadegh Aliakbary Sharif University of Technology Fall 2012.
PROBLEM SOLVING The first step in writing instructions to carry out a task is to determine what the output should be (What should the task produce?)
TMF1013 : Introduction To Computing Lecture 1 : Fundamental of Computer ComputerFoudamentals.
CMPE13Cyrus Bazeghi 1 Programming Languages Telling computers what to do.
CSC425 - Introduction To Computer Programming 1. 2 Generation Of Programming Languages A set of rules that telling a computer what to do. There are over.
Ceg860 (Prasad)L1SQ1 Software Quality Object-Oriented Programming Paradigm.
Robert Crawford, MBA West Middle School.  Explain how the binary system is used by computers.  Describe how software is written and translated  Summarize.
Activity & Class Modeling Labs Discussion p3 T120B pavasario sem.
240 3/30/98 CSE 143 Object-Oriented Design [Chapter 10]
Introduction to Dialogue Systems. User Input System Output ?
Christoph F. Eick University of Houston Organization 1. What are Ontologies? 2. What are they good for? 3. Ontologies and.
Theory of Programming Languages Introduction. What is a Programming Language? John von Neumann (1940’s) –Stored program concept –CPU actions determined.
1.
PROG Developing Robust Modular Software.. Objectives What do we want? Programmatic Elements in a Business System. Logic Layer. Persistence (Data)
Attempto Controlled English Norbert Fuchs et al. Dept CS, Univ Zurich, Switzerland as (mis-)interpreted by Peter Clark.
CS562 Advanced Java and Internet Application Introduction to the Computer Warehouse Web Application. Java Server Pages (JSP) Technology. By Team Alpha.
Thinking behind the environment for Making Construals (MCE)
Programming with Microsoft Visual Basic th Edition
Session 6 Comments on Lab 3 & Implications of Inheritance.
An Introduction to Semantic Parts of Speech Rajat Kumar Mohanty rkm[AT]cse[DOT]iitb[DOT]ac[DOT]in Centre for Indian Language Technology Department of Computer.
Controlling Computers with Programs When you create a computer program you are creating a set of instructions that tell the computer exactly and completely.
Software Engineering, COMP201 Slide 1 Software Requirements BY M D ACHARYA Dept of Computer Science.
Automating programming via concept mining, probabilistic reasoning over semantic knowledge base of SE domain by Max Talanov.
Lecture #1: Introduction to Algorithms and Problem Solving Dr. Hmood Al-Dossari King Saud University Department of Computer Science 6 February 2012.
Gary MarsdenSlide 1University of Cape Town Building systems We will now look at the techniques and tools used to create interactive systems This will require.
Software Design and Development Languages and Environments Computing Science.
PROGRAMMING (1) LECTURE # 1 Programming and Languages: Telling the Computer What to Do.
1 Software Requirements Descriptions and specifications of a system.
Artificial Intelligence Logical Agents Chapter 7.
CSCE 343 – Programming Language Concepts Welcome!.
1 Design Object Oriented Solutions Object Oriented Analysis & Design Lecturer: Mr. Mohammed Elhajj
Tips on coding practices
Introduction to Programming and Visual Basic .NET
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Software Requirements
Kenneth Baclawski et. al. PSB /11/7 Sa-Im Shin
A451 Theory – 7 Programming 7A, B - Algorithms.
Software Requirements
Compiler Lecture 1 CS510.
1.3.7 High- and low-level languages and their translators
Presentation transcript:

toward a programmatic semantics for natural language hugo liu and henry lieberman mit media lab VL/HCC’04 presentation

programming is storytelling every program tells a story –objects ~ characters –behaviours ~ personality traditionally expressed in programming languages –easy for computers –difficult for people to read and understand

metafor: visualising stories as code user enters story here history of dialogue with system agent, who explains what was understood under-the- hood debug window story visualised as code (in Python as shown)

a theory of programmatic semantics for natural language natural language has an inherent programmatic regularity –resembles object-oriented and agent-oriented programming roughly speaking… –noun phrases  objects e.g. “the martini” –verbs  functions e.g. “make a drink” –adjectives  properties e.g. “sweet drinks”

more basic programmatic features verb-arg structure  function-arg structure –e.g. “give the drink to the customer” conventions for prototype  inheritance –e.g. “a martini is a drink which …” attachment semantics  an object’s parts –e.g. “the customer’s age”  customer.age –e.g. “a bar with a bartender” –e.g. “some stools in the bar” –e.g. “the bar has some customers”

set-theoretic features tendency not to express loop structure (cf. pane et alii, 2001) dynamic reference –The customer buys some of the sweet drinks under $2. map(customer.buy, filter(lambda sdu2: some(sdu2), filter(lambda sweet_drink: sweet_drink.price < 2, filter(lambda drink: ‘sweet’ in drink.properties, menu.drinks))) set-theoretic semantics –comparatives/superlatives (“the cheaper/cheapest drink”); –subsets (e.g. “all drinks have,” “some drinks..while others”) –complementizer  procedural attachment e.g. “the drink which Bill would like the best”

equivalence features representational equivalences –a) There is a bar. (atom) –b) The bar contains two customers. (unimorphic list) –c) It also contains a waiter. (unimorphic wrt. persons) –d) It also contains some stools. (polymorphic list) –e) The bar opens and closes. (class / agent) –f) The bar is a kind of store. (inheritance class) –g) Some bars close at 6pm. (subclass or instantiatable) narrative stance equivalences –a) I want to make a bar with a customer. (1 st p. programmer) –b) There is a customer in the bar. (3 rd p. narrator) –c) I am a customer sitting on a stool. (1 st p. customer) –d) The bartender said, “Here is a customer” (mixed p. playwright)

other advanced features genericity –e.g. “there are some sweet drinks”; “buy some sweet drinks”) –e.g. “the bartender makes the drinks”; “when … the bartender makes the drinks”) anaphora / deixis (e.g. “he”, “this”, “here”) dynamic (re)factoring aka “ambiguity” –e.g. sour_apple_martini; apple_martini(flavour), martini(fruit,flavour) lazy evaluation (e.g. “the cheapest drink”) prototype semantics & common sense knowledge

stepping out scope & limitations –cannot convert arbitrary English into fully specified code –hope: sufficiently large coverage as to be usable –hope: users can adapt to interpreter goals –brainstorming / outlining tool for programmers –create nl interfaces to MOOs (cf. Bruckman, ‘97) –educational tool for novice-programmers –hypothesis: “precise storytelling” requisite for programming –influence usability features in future programming languages