# US 2014/0157233 A1 · Conversational programming

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0157233 A1
- Document ID: US20140157233A1
- Status: Published application
- Kind: A1
- Application number: 14/172,717
- Filed: 2014-02-04
- Published: 2014-06-05
- Earliest claimed: 2010-01-22
- Assignees: AgentSheets, Inc.
- Applicants: AgentSheets, Inc.
- Inventors: Alexander Repenning
- Web page: https://patentgrep.com/patent/US20140157233A1

## CPC

- G06F 8/34: Graphical or visual programming
- G06F 8/20: Software design
- G06F 8/436: {Semantic checking}
- G06F 11/3698: Environments for analysis, debugging or testing of software
- G06F 8/38: for implementing user interfaces
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods and systems for providing rich semantic feedback to programmers by executing programs, or parts of programs, in data contexts relevant to the programmer are provided. According to one embodiment, software code associated with one or more of multiple programming building blocks is enabled to be concurrently edited and executed within a programming environment. A conversational programming agent of the programming environment receives (i) information regarding the programming building blocks and (ii) information indicative of a current situation relating to the programming building blocks. The conversational programming agent evaluates the programming building blocks based on the current situation. Then, detection of one or more logical errors in one or more of the programming building blocks is facilitated by the conversational programming agent proactively providing semantic feedback regarding those of the programming building blocks to which the current situation is relevant to the programmer based on results of the evaluation.

## Claims

### Claim 1

A method comprising:
allowing software code associated with one or more of a plurality of programming building blocks to be concurrently edited and executed within a programming environment, including:
receiving, by a conversational programming agent of the programming environment, (i) information regarding the plurality of programming building blocks and (ii) information indicative of a current situation relating to the plurality of programming building blocks; and
evaluating, by the conversational programming agent, the plurality of programming building blocks based on the current situation;
facilitating detection of one or more logical errors in one or more of the plurality of programming building blocks by proactively providing, by the conversational programming agent, semantic feedback regarding those of the plurality of programming building blocks to which the current situation is relevant to an end user based on the evaluating; and
wherein the conversational programming agent is implemented in one or more processors and one or more computer-readable media of one or more computer systems, the one or more computer-readable media having instructions tangibly embodied therein that are executable by the one or more processors.

### Claim 2 (depends on 1)

The method of claim 1, wherein the semantic feedback comprises annotating one or more of the plurality of programming building blocks.

### Claim 3 (depends on 2)

The method of claim 2, wherein the semantic feedback comprises colored annotations relating to evaluation of Boolean conditions associated with the plurality of programming building blocks.

### Claim 4 (depends on 1)

The method of claim 1, wherein the plurality of programming building blocks include operational programming building blocks.

### Claim 5 (depends on 1)

The method of claim 1, wherein the plurality of programming building blocks include latent programming building blocks.

### Claim 6 (depends on 1)

The method of claim 1, wherein the current situation includes data describing a collection of agents instantiated by an operational program.

### Claim 7 (depends on 6)

The method of claim 6, wherein the plurality of programming building blocks include operational programming building blocks of the operational program associated with a selected agent of the collection of agents.

### Claim 8 (depends on 1)

The method of claim 1, further comprising concurrently displaying, by the programming environment, (i) a visual representation of a programming building block of the plurality of programming building blocks within a behavior editor and (ii) a visual representation of the current situation, wherein the current situation includes (a) a selection identifying a selected agent of a plurality of agents represented by the plurality of programming building blocks and (b) data describing at least the selected agent and wherein the programming building block corresponds to the selected agent and represents one or more behavioral rules of the selected agent.

### Claim 9 (depends on 8)

The method of claim 8, further comprising receiving from the end user via interaction with the visual representation of the current situation, by the programming environment, input regarding a hypothetical situation to be used as the current situation for evaluation by the conversational programming agent.

### Claim 10

A non-transitory computer-readable storage medium tangibly embodying a set of instructions, which when executed by one or more processors of one or more computer systems, cause the one or more processors to perform a method comprising:
allowing software code associated with one or more of a plurality of programming building blocks to be concurrently edited and executed within a programming environment, including:
receiving (i) information regarding the plurality of programming building blocks and (ii) information indicative of a current situation relating to the plurality of programming building blocks; and
evaluating the plurality of programming building blocks based on the current situation; and
facilitating detection of one or more logical errors in one or more of the plurality of programming building blocks by proactively providing semantic feedback regarding those of the plurality of programming building blocks to which the current situation is relevant to an end user based on the evaluating.

### Claim 11 (depends on 10)

The non-transitory computer-readable storage medium of claim 10, wherein the semantic feedback comprises annotating one or more of the plurality of programming building blocks.

### Claim 12 (depends on 11)

The non-transitory computer-readable storage medium of claim 11, wherein the semantic feedback comprises colored annotations relating to evaluation of Boolean conditions associated with the plurality of programming building blocks.

### Claim 13 (depends on 10)

The non-transitory computer-readable storage medium of claim 10, wherein the plurality of programming building blocks include operational programming building blocks.

### Claim 14 (depends on 10)

The non-transitory computer-readable storage medium of claim 10, wherein the plurality of programming building blocks include latent programming building blocks.

### Claim 15 (depends on 10)

The non-transitory computer-readable storage medium of claim 10, wherein the current situation includes data describing a collection of agents instantiated by an operational program.

### Claim 16 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein the plurality of programming building blocks include operational programming building blocks of the operational program associated with a selected agent of the collection of agents.

### Claim 17 (depends on 10)

The non-transitory computer-readable storage medium of claim 10, wherein the method further comprises concurrently displaying (i) a visual representation of a programming building block of the plurality of programming building blocks within a behavior editor and (ii) a visual representation of the current situation, wherein the current situation includes (a) a selection identifying a selected agent of a plurality of agents represented by the plurality of programming building blocks and (b) data describing at least the selected agent and wherein the programming building block corresponds to the selected agent and represents one or more behavioral rules of the selected agent.

### Claim 18 (depends on 17)

The non-transitory computer-readable storage medium of claim 17, wherein the method further comprises receiving from the end user via interaction with the visual representation of the current situation, by the programming environment, input regarding a hypothetical situation to be used as the current situation for evaluation by the conversational programming agent.

### Claim 19

A computer-implemented method comprising:
allowing software code associated with one or more of a plurality of programming building blocks to be concurrently edited and executed within a programming environment, including concurrently displaying, by the programming environment, (i) a visual representation of a programming building block of the plurality of programming building blocks within a behavior editor and (ii) a visual representation of a current situation, wherein the current situation includes (a) a selection identifying a selected agent of a plurality of agents represented by the plurality of programming building blocks and (b) data describing at least the selected agent and wherein the programming building block corresponds to the selected agent and represents one or more behavioral rules of the selected agent;
responsive to selection of the selected agent by an end user of the programming environment, a conversational programming agent of the programming environment, evaluating, based on the current situation, the one or more behavior rules and other behavior rules of one or more other of the plurality of agents to which the current situation is relevant; and
facilitating detection of one or more logical errors in the one or more behavior rules by the end user by conveying results of said evaluating, by the conversational programming agent, in a form of one or more annotation to the visual representation of the programming building block, wherein the one or more annotations provide semantic feedback to the end user regarding a meaning of the one or more behavior rules in a context of the current situation.

### Claim 20 (depends on 19)

The method of claim 19, wherein the one or more behavior rules comprise Boolean conditions and wherein the one or more annotations comprise colored annotations indicative of truth or falsity of the Boolean conditions.
