Skip to content

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

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

Projects

Status
Todo

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions