The Automated Planning and Scheduling Community Group

Artificial Intelligence Knowledge Representation Community Group,

Hello. I recently proposed a new Community Group, the Automated Planning and Scheduling Community Group (https://www.w3.org/community/ , https://www.w3.org/community/blog/2022/11/17/proposed-group-automated-planning-and-scheduling-community-group/).

"This group will discuss and advance automated planning and scheduling technologies, in particular planning domain definition languages. Using such languages, developers can define planning domains, these including types, predicates, actions, constraints, and preferences, and can define planning problems. Web technologies can be of use for designing new such languages, e.g., XML, JSON, Semantic Web technologies, and JavaScript. This group will develop a specification for a new planning domain definition language."

I would like to invite you to support the creation of the group. Thank you!


Best regards,
Adam Sobieski

[1] https://en.wikipedia.org/wiki/Automated_planning_and_scheduling
[2] https://en.wikipedia.org/wiki/Action_description_language
[3] https://en.wikipedia.org/wiki/Planning_Domain_Definition_Language

P.S.: Here is a rough-draft sketch of a prototype XML-based planning domain definition language. The example domain defines an operator for moving a robot, e.g., Robby, from one room to another.


<domain xmlns="..." xmlns:ext="..." version="0.1.4">

  <head>...</head>

  <body>

    <operators>

      <operator name="move" onenter="move_onenter" ext:duration="move_duration">

        <meta>...</meta>

        <parameters>

          <parameter modifier="input" name="from" />

          <parameter modifier="input" name="to" />

          <guard type="text/sparql+calculus">

            <![CDATA[

              PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

              PREFIX domain: <http://example.com/domain#>

              ASK

              {

                rdf:type(?from, domain:room).

                rdf:type(?to, domain:room).

                ?from != ?to.

              }

            ]]>

          </guard>

        </parameters>

        <preconditions type="text/sparql+calculus">

          <![CDATA[

            PREFIX domain: <http://example.com/domain#>

            ASK

            {

              domain:at-robby({{from}}).

            }

          ]]>

        </preconditions>

        <effects type="text/sparul+calculus">

          <![CDATA[

            PREFIX domain: <http://example.com/domain#>

            DELETE DATA

            {

              domain:at-robby({{from}}).

            }

            INSERT DATA

            {

              domain:at-robby({{to}}).

            }

          ]]>

        </effects>

        <script type="text/javascript">

          <![CDATA[

            function move_onenter(p, a)

            {

              console.log('planner ' + p.name + ' entering action ' + a.name);

            }

            function move_duration(p, a)

            {

              /* ... */

            }

          ]]>

        </script>

      </operator>

    </operators>

  </body>

</domain>

Received on Friday, 18 November 2022 03:23:01 UTC