I noticed the same friction while trying to integrate Answer Set Programming solvers into Python projects. The people who built the dominant ASP solver actually provide nice solutions though. Possible inspiration for Prolog tooling:
Clorm (Clingo ORM) [1] makes it easy to create facts after you define simple predicate Python classes. Here's an example project of mine which uses it to set up a scheduling problem (Python -> ASP) and to present the results (ASP -> Python).
Clingo (the solver) exposes its internal AST implementation through Python bindings[2], so you can build up rules or other statements from typed components instead of strings. This simplifies the translation bits of implementing an ORM or whatever kind of wrapper a developer would prefer.
There are standards for the amount of force the mask must withstand and punch test devices like these [1] to exert them repeatably. Officials punch a few times across the front and the sides, look for failure or severe deformation, and the mask passes for the event.
Cool indeed! While language-to-code (where code is a regular, general-purpose language) has only recently started to be workable, text-to-SQL has been a long running application/research area for semantic parsing.
That's a fair characterization; the 3D league is meant to incorporate physical constraints, and learning "through" those to the higher level aspects of the game is challenging.
That's what the 2D league exists for though.
The Google simulator lets you learn from pixels if you want to, but the agent that you're controlling only has 8 actions [1] available to it, so the learning problem here really has no bearing on a robotics application or anything in the real world that I can think of.