Skip to content

URML (open robot intent language): a typed, validated compile target for a robotics block palette (request for comment) #9989

@idoco2003

Description

@idoco2003

Hi Raspberry Pi Foundation Blockly maintainers,

URML (urml.dev) is a small, Apache-2.0 language for robot intent: an instruction (including an English one) becomes a typed primitive, validated against the robot's declared capabilities and a safety envelope, then dispatched. Blockly and URML share a goal -- lower the barrier to telling a machine what to do -- and the boundary between block-based programming and a typed intent language is interesting. This is a conceptual-peer note, not an integration ask.

Nothing here asks the project to adopt, host, or maintain anything. This is a request for comment.

Two ways to lower the barrier: Blockly lets a learner assemble a program from blocks. URML lets a learner (or an LLM) express a robot intent in a small typed language, optionally from English, and validates it against the robot's declared capabilities before it runs. For robotics specifically, a block palette could emit URML as its target representation, getting typed validation and a capability check for free -- the "is this actually possible on this robot, and why not" check, in typed form.

Two real questions: (1) for robotics use, is a typed, validated intent representation (with a capability check) a useful compile target for a block palette? (2) Is the block-based / typed-intent boundary an interesting comparison for learner-facing robotics tools?

Full write-up: https://github.com/URML-MARS/URML/blob/main/docs/rfcs/0573-blockly-outreach.md

Thanks for your work on Blockly; block-based programming has opened robotics to a lot of learners, and the seam with a validated intent layer feels worth comparing notes on.

Ido Yahalomi (URML, greenvh@gmail.com)

AI-assisted prose, maintainer-reviewed before posting (see https://github.com/URML-MARS/URML/blob/main/VIBE.md). Human-only correspondence available on request.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

Status
Todo

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions