<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>M. Freund);</journal-title>
      </journal-title-group>
      <issn pub-type="ppub">1613-0073</issn>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Ontology: Towards a Web of Things Ready for Robotic Agents</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Michael Freund</string-name>
          <email>michael.freund@iis.fraunhofer.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Daniel Schraudner</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sebastian Schmid</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Christoph Stade</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Thomas Wehr</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Andreas Harth</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="editor">
          <string-name>Actionable Knowledge Representation, Web of Things, AI planning</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Fraunhofer Institute for Integrated Circuits IIS</institution>
          ,
          <addr-line>Nürnberg</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Friedrich-Alexander-Universität Erlangen-Nürnberg</institution>
          ,
          <addr-line>Nürnberg</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Technische Hochschule Nürnberg Georg Simon Ohm</institution>
          ,
          <addr-line>Nürnberg</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <volume>000</volume>
      <fpage>0</fpage>
      <lpage>0002</lpage>
      <abstract>
        <p>We present the Simple Planning Annotation (spa) ontology for modeling preconditions and efects of interaction afordances within Web of Things Thing Descriptions and propose a mapping to the Planning Domain Definition Language to enable robot-device interaction. We use encoded semantic knowledge to generate a planning problem that can be used within existing AI planning algorithms to dynamically plan interaction sequences to achieve specified goals without the extensive pre-programming traditionally required, as demonstrated by the validation of our approach through a prototypical implementation. The scalability evaluation shows that when the number of input Web of Things actions increases by a factor of 1, 000, the runtime of the implemented prototype increases by about 14.3% and the memory consumption by about 9.4%, indicating vertical scalability.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>CEUR
ceur-ws.org</p>
    </sec>
    <sec id="sec-2">
      <title>1. Introduction</title>
      <p>
        Autonomous robotic agents can perform tasks by interacting and manipulating their
environment either through direct physical interaction, such as fetch-and-place and wiping tasks [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], or
through an IoT-aided approach where a robot acts as an actuated edge device and uses network
requests to interact with and control other smart devices [
        <xref ref-type="bibr" rid="ref2 ref3">2, 3</xref>
        ]. The IoT-aided approach requires
machine-to-machine communication, where robots must seamlessly interact with diverse and
(W3C) Web of Things (WoT) specification [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] supports such an approach by providing a uniform,
machine-readable abstraction of an IoT device [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], the so-called Thing Description (TD) [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. A
TD is a semantic interface description structured using the Resource Description Framework
(RDF) and typically serialized in JSON-LD format. TDs contain metadata about a device, such
as location and environmental information, and available interaction afordances, which are
grouped into three categories: Properties, which represent the internal state of a device, Actions,
which allow invocation of tasks, and Events, which are used to model asynchronous data pushes.
An IoT device described by a TD is called a Thing in the WoT context.
      </p>
      <p>
        Robotic agents can parse TDs, but TDs lack information about preconditions and efects of
interactions. This limitation prevents robotic agents from reasoning out the correct order of
command execution using AI planning algorithms to achieve predefined goals, especially in
unfamiliar environments. As a result, robotic agents rely on control programs that specify their
interactions with other devices and outline step-by-step procedures for each task [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
      </p>
      <p>
        By incorporating a semantic description of the conditions required to invoke interactions
and the efects of those interactions on devices into TDs, and by providing a mapping algorithm
between the semantic information contained in TDs and the standardized Planning Domain
Definition Language (PDDL) [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], robotic agents would be able to adapt to new environments
without the need for exhaustive pre-programming for every possible scenario.
      </p>
      <p>Previous approaches attempting to integrate information about sequential behavior,
preconditions, and efects into TDs have primarily focused on interactions between resource-constrained
devices that are unable to use planning algorithms. Therefore a pre-computed interaction
plan has been annotated in TDs, which hinders use in dynamic scenarios. Other approaches
have adopted centralized architectures where all environmental information is consolidated
in a central knowledge repository. While this strategy is viable for mostly static smart home
applications, it is not suitable for dynamic environments.</p>
      <p>
        In this paper we present the spa ontology for modelling preconditions and efects of
interaction afordances in TDs. Together with the ontology, we introduce a mapping between
the semantic information contained in TDs into PDDL domain and problem definitions. The
mapping allows standard AI planning algorithms to plan the interactions necessary for an
autonomous robotic agent to achieve a given goal. We also provide a prototypical implementation
of the mapping algorithm with link following [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] to discover TDs to validate our approach, and
evaluated the scalability of the approach by systematically increasing the available WoT actions,
i.e. the search space, and measuring runtime and memory consumption.
      </p>
      <p>The contributions of our work are
• an ontology describing preconditions and efects in TDs,
• a mapping between semantic annotations in TDs and PDDL domain and problem
statements,
• and a validation via a prototypical implementation of a mapping algorithm with an
evaluation of the scalability of the proposed mapping approach.</p>
    </sec>
    <sec id="sec-3">
      <title>2. Running Example</title>
      <p>In the following sections, we will use the interaction of a robotic agent with two WoT Things to
illustrate the introduced annotations and mappings. The setup consists of a controller capable of
opening and closing an automatic door and an intelligent power supply that provides diferent
voltage levels to the door. Specifically, the power supply must provide 5 volts to open the door
and -5 volts to close the door. The goal for the robotic agent in the scenario is to open the
automatic door. Figure 1 shows the setup.</p>
      <p>The power supply has interactions that allow users to read the current voltage output and to
change the voltage output by adding a value between -10 and 10 to the current value. A TD of
such a power supply following the W3C TD 1.1 standard, is shown in listing 1.</p>
      <p>The automatic door controller can read the current status of the door and provide interactions
to either open or close the door. But, for the door to open, two conditions must be met: the
power supply must be set to output 5 volts and the door must be in the closed state. Conversely,
to close the door, the power supply must be at -5 volts and the door must be in the open state.
A TD of such an automatic door controller following the W3C TD 1.1 standard, is shown in
listing 2.</p>
      <p>However, both TDs lack information about the preconditions and efects of interactions.
For example, an agent will currently not be able to determine that to open the door,
the VoltageOutput property must be 5 volts, or that changeVoltageByValue changes the
VoltageOutput property.</p>
    </sec>
    <sec id="sec-4">
      <title>3. Related Work</title>
      <p>
        Modelling sequential behavior and efects in TDs has been investigated before. Korkan et al. [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]
introduced a path vocabulary. The vocabulary describes the sequential interactions required
to change the current state to a desired goal state, thereby abstracting from the internal state
machine of the device. The authors argue that using the path vocabulary in combination with a
pre-computed order of interactions is suitable for interactions between resource-constrained
devices because it simplifies processing. In contrast, we focus on the interaction between a
robotic agent and resource-constrained devices, where the robotic agent, possessing greater
computational power, is able to dynamically use planning algorithms during runtime without
relying on pre-computed paths encoded in TDs.
      </p>
      <p>
        Planning algorithms in combination with autonomous robotic agents have been used to
tackle a variety of challenges, such as robot navigation [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. The classical planning approaches
in general try to solve planning problems where the objective is to transform a given initial state
of a domain into a goal state by taking predefined actions. The Planning Domain Definition
Language (PDDL) [
        <xref ref-type="bibr" rid="ref12 ref8">8, 12</xref>
        ] is a standardized way to model planning problems. PDDL models the
initial state, the available actions, and the goal state by dividing the definitions into two parts: a
general domain description, which includes the available actions along with their preconditions
and efects, and a specific problem description, which includes concrete objects, the initial state,
Listing 1: Excerpt of an intelligent power supply TD that exposes an outputVoltage property and a
changeVoltageByValue action.
Listing 2: Excerpt of an automatic door controller TD that exposes an openState property and open
and close actions.
1 "title": "DoorController",
2 ...
3 "properties": {
4 "openState": {
5 "@id": "doorOpenState", "type": "boolean",
6 "readOnly": true,
7 "forms": [{ "href": "http://ex.org/openState" }] }
8 },
9 "actions": {
10 "open": {
11 "forms": [{ href: "http://ex.org/open" }] },
12 "close": {
13 "forms": [{ href: "http://ex.org/turnOff" }] }
14 }
and a goal state [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
      </p>
      <p>
        The possible combination of TDs and PDDL has been considered before by Noura et al. [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ].
The authors presented an architecture that enables end-user development for smart home WoT
environments using PDDL. To generate the planning problem, a central knowledge repository
is used that stores domain-relevant aspects in RDF. In addition, a context-sensing component
monitors the state of devices, while the planner component translates information from the
knowledge repository into PDDL definitions and generates a plan that is executed by an
execution engine. In contrast to this centralized approach, which relies on a knowledge repository to
store domain information and context-sensitive components to monitor device states, we use
      </p>
      <p>Ontology Requirements Specification Document</p>
      <sec id="sec-4-1">
        <title>Purpose</title>
        <sec id="sec-4-1-1">
          <title>Assist autonomous robots in interacting with unfamiliar IoT device environments using the WoT abstraction covering WoT properties and WoT actions.</title>
        </sec>
      </sec>
      <sec id="sec-4-2">
        <title>Scope</title>
        <sec id="sec-4-2-1">
          <title>IoT, WoT, Autonomous Robots</title>
        </sec>
      </sec>
      <sec id="sec-4-3">
        <title>Implementation Language</title>
        <sec id="sec-4-3-1">
          <title>RDF Schema (RDFS), Web Ontology Language (OWL)</title>
        </sec>
      </sec>
      <sec id="sec-4-4">
        <title>Intended Users</title>
        <sec id="sec-4-4-1">
          <title>Autonomous robots, software agents, developers</title>
        </sec>
      </sec>
      <sec id="sec-4-5">
        <title>Non-functional Requirements</title>
        <sec id="sec-4-5-1">
          <title>NFR1: The ontology must be based on terminology from the WoT architecture.</title>
        </sec>
        <sec id="sec-4-5-2">
          <title>NFR2: All ontology resources must be labeled and commented in English.</title>
        </sec>
      </sec>
      <sec id="sec-4-6">
        <title>Functional Requirements</title>
        <sec id="sec-4-6-1">
          <title>Multiple functional requirements have been identified, as seen in Table 1.</title>
          <p>only the TD annotated with precondition and efect information to dynamically transform TDs
into a PDDL planning problem solvable by standard PDDL planners. Furthermore, our focus is
on interactions between robotic agents and Things, rather than between non-professional users
and Things.</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>4. Conditions and Efects in Thing Descriptions</title>
      <p>
        To describe a mapping between interaction afordances in TDs and PDDL descriptions, additional
semantic annotations for conditions and efects are required. Therefore, we introduce an
ontology called Simple Planning Annotation with a preferred prefix of spa. In the TD we focus
on the basic interaction afordances of reading a property, writing a property, and invoking an
action. We developed spa using the Linked Open Terms (LOT) methodology [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. LOT is a
lightweight methodology for developing vocabularies and ontologies, based on lessons learned
and best practices from several established ontology development guides, such as Ontology
Development 101 [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] and the NeOn project [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. LOT describes four steps ontology requirements
specification , ontology implementation, ontology publication, and ontology maintenance to create
an ontology. The key results from each step are described in the following subsections.
4.1. Ontology Requirements Specification
The first step of the LOT methodology is to produce an ontology requirements specification
document, by defining potential use cases and deriving related competency questions.
      </p>
      <p>Use case specification The use case specification activity outlines potential use cases of the
spa ontology by listing concrete applications. During the creation of the ontology, we identified
several potential use cases, which are documented online1. Below, we present the use case
representing the running example.</p>
      <p>Use Case: An autonomous robot wants to pass through an automatic door.</p>
      <p>Description: A robotic agent operates in an environment that includes two IoT devices: an
intelligent power supply and an automatic door controller, both controllable by requests. The
devices are described by TDs, which turn them into Things. To interact with these Things, the
robotic agent must analyze the available interaction afordances and evaluate the preconditions
and efects of each interaction to achieve its goal of opening the door.</p>
      <p>Actors: robotic agent, automatic door controller, intelligent power supply.</p>
      <p>Flow: The robotic agent sets the goal of opening the door, discovers and consumes the TD of
the automatic door controller, and finds a link to the TD of the intelligent power supply, which
the agent also consumes. Next, the agent evaluates all afordances, associated preconditions,
and efects, and maps them to a PDDL planning problem. A PDDL planner then solves the
planning problem and returns the sequence of interactions required to achieve the goal.</p>
      <p>Functional Ontological Requirements In addition to the general behavior-describing
nonfunctional requirements, competency questions are utilized to specify document content-specific
requirements. Some sample competency questions extracted from the use case presented are
listed in Table 1.</p>
      <p>
        The final ontology requirements specification document is shown in Figure 2.
4.2. Ontology Implementation
The ontology model is described using RDFS vocabulary elements. To reuse definitions and
make the way precondition terms are evaluated unambiguous, we base ontology operations
on operations defined in the W3C’s XPATH recommendation 2. For instance, our ontology’s
spa:NumericMultiply is mapped to XPATH’s op:numeric-multiply. Other mathematical
expressions are based on OpenMath3 definitions, such as spa:LogicalAnd or spa:LogicalOr.
Finally, the qualities of our ontology in terms of structure, semantic representation, and
interoperability were evaluated using the OntOlogy Pitfall Scanner! [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ].
1https://github.com/wintechis/SimplePlanningAnnotation/tree/main/docs
2https://www.w3.org/TR/xpath-functions-31/
3https://openmath.org/
4.3. Ontology Publication and Maintenance
The ontology, available classes and properties are documented using WIDOCO [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] to create a
human-readable online document4. As part of the maintenance step, we are making all resources
publicly available on GitHub5. This will not only allow for community-driven refinement of
the ontology through issue tracking, but will also serve as a place to publish feature extensions
as new use cases are added.
      </p>
      <p>The introduced spa ontology allows us to describe interaction preconditions and efects of
the intelligent power supply and the automatic door controller, as can be seen in listings 3 and 4.
Listing 3: Excerpt of an intelligent power supply TD showing the precondtion and efect annotations
using the spa ontology.
1 "title": "PowerSupply",
2 ...
3 "actions": {
4 "changeVoltageByValue": {
5 "input": {"@id": "changeVoltageInput", "type": "integer", "minimum": -10, "maximum":
10},
"forms": [{ href: "http://ex.org/changeValue" }],
"effect": [ {
"assign": {
"numeric-add": [ { "@id": `outputVoltage` }, { "@id": "changeVoltageInput" } ] },
"to": { "@id": "outputVoltage" } } ] }</p>
    </sec>
    <sec id="sec-6">
      <title>5. From Thing Description Annotations to PDDL</title>
      <p>
        A PDDL planning problem consists of a domain description and a problem description [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. In
the following subsections we show how the annotations in TDs and the reading of properties
to get the initial state of the environment can be used to generate both descriptions.
5.1. Domain Description Generation
A PDDL domain description provides generic information about all available object types,
predicates, functions, and PDDL actions with preconditions and efects in a particular domain.
      </p>
      <p>Mapping Object Types The first step in the mapping process is to identify object types.
Object types defined in a PDDL domain description are types that can be used for objects
in a PDDL problem statement. When transforming the annotations of a TD into a domain
description, we create a Thing type for each discovered Thing. The Thing type allows the
assignment of specific predicates, functions, and PDDL actions to a particular Thing, which is
necessary in multi-Thing planning domains.
4https://paul.ti.rw.fau.de/~jo00defe/voc/spa#
5https://github.com/wintechis/SimplePlanningAnnotation
Listing 4: Excerpt of an automatic door controller TD showing the precondtion and efect annotations
using the spa ontology.</p>
      <p>Mapping Predicates and Functions Predicates represent boolean values, while functions
represent numeric values - specifically, integers or floats - that describe properties of specific
objects or the domain itself. Predicates are created for all boolean properties that are exposed
by WoT read or write property interactions, as well as for all annotated hidden properties that
are not exposed. In addition, a predicate used as flag with the sufix Read is created for all read
properties, indicating whether or not a WoT read property interaction was performed on that
predicate. Functions are created in a similar way for all numeric properties exposed by WoT
read or write property interactions, and for all annotated hidden properties that are not exposed.
All generated predicates and functions are associated with the Thing type of the particular
Thing.</p>
      <p>Mapping Actions PDDL actions consist of parameters, which can be predicates, functions,
and objects on which the PDDL action is performed. They have preconditions, which are logical
expressions composed of predicates and functions that must be satisfied for the PDDL action to
be performed. In addition, an efect describes the changes to predicates and functions after the
PDDL action has been successfully executed. WoT read properties are translated into PDDL
actions using the precondition annotated in TDs, and have the efect of setting the associated
predicate indicating a read to true. WoT write properties and WoT actions are translated into
PDDL actions in one of two ways, depending on the data type. If the data type is boolean, two
actions are created with the precondition as annotated in the TD and with the efect of setting
the associated predicate to either true or false. If the data type is a numeric value, for each
available input value and annotated step size one PDDL action is created with the precondition
as annotated in the TD and the efect of setting the numeric value function representing the
WoT property to the input value.</p>
      <p>Domain Description of Running Example The first step in applying the mapping to the
running example is to generate two object types: a Thing0 type representing the automatic
door controller, and a Thing1 type representing the intelligent power supply. The second
step is to generate predicates and functions. For the automatic door controller, we generate
two predicates: one indicating if the doorOpenState has been read, and one representing the
doorOpenState. For the intelligent power supply, we generate a predicate indicating if the
outputVoltage has been read, and a function representing the current outputVoltage value.
Finally, we generate the PDDL actions. For the automatic door controller, we generate PDDL
actions to open and close the automatic door, and to read the doorOpenState. For the intelligent
power supply, there are PDDL actions to change the current outputVoltage for each possible
value of changeVoltageInput, and to read the outputVoltage. An excerpt of the generated
domain description can be seen in listing 5.</p>
      <p>Listing 5: Excerpt of the PDDL domain description based on the running example.
5.2. Problem Description Generation
A PDDL problem description contains the concrete objects, the initial state and values of PDDL
predicates and functions, and a goal definition.</p>
      <p>Mapping Objects Objects represent concrete elements that exist in the problem description
and are associated with object types defined in the domain. For each Thing involved, an object
with the name defined by the title annotated in the TD is created and associated with the
corresponding Thing type.</p>
      <p>Mapping Initial State and Values The initial state of predicates and the values of functions
can be determined by reading the exposed WoT properties of the associated Things. If properties
cannot be read directly, they must either be observed by another device, such as a sensor, or be
predefined. We assume that WoT properties are static and do not change after being read.</p>
      <p>Mapping the Goal The goal in a PDDL problem description is a logical expression, consisting
of predicates and functions, that specify the desired goal state. The planner’s task is to determine
a sequence of actions that will transition the system from its initial state to a state that satisfies
the goal expression, indicating that a solution to the planning problem has been found. We
assume that the goal expression is predefined.</p>
      <p>Problem Description of Running Example In the PDDL problem description, the objects
must first be instantiated: one object for the DoorController with type Thing0, and one for
the PowerSupply with type Thing1. Next we need to set the initial states. The initial values are
obtained by invoking WoT readProperty interactions, which results in doorOpenState being
false and not read, and outputVoltage being 0 and not read. An excerpt of the generated
problem description is depicted in listing 6.</p>
      <p>Listing 6: Excerpt of the PDDL problem description based on the running example.</p>
      <p>(:init
(not (doorOpenState DoorController))
(not (doorOpenState_Read DoorController))
(not (outputVoltage_Read PowerSupply))
(= (outputVoltage PowerSupply) 0) )</p>
    </sec>
    <sec id="sec-7">
      <title>6. Evaluation</title>
      <p>
        We have created a prototype implementation of a Thing Description to PDDL (TD2P) processor6
using the mappings introduced in section 5 in JavaScript. The implementation is based on
the W3C WoT Scripting API reference implementation node-wot7. node-wot handles the
consumption of TDs and the interaction with Things via the WoT abstraction. Additionally the
TD2P processor uses a link following algorithm [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] to discover related TDs starting from an
initial TD, allowing the creation of complex planning problems involving multiple Things. The
TD2P processor consumes TDs and produces PDDL domain and problem descriptions as output.
To solve the generated planning problem, a PDDL 2.1 compliant planner supporting fluents is
required. The TD2P processor currently supports the ENHSP-19 planner [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], which means
that the algorithm is able to parse the output of the planner and generate a WoT program. Our
approach supports the mapping of boolean, integer, and number schemas used by the WoT
architecture, but currently does not cover arrays, objects, or strings. Moreover, the focus is on
6https://github.com/FreuMi/TD2P
7https://github.com/eclipse-thingweb/node-wot
the basic WoT interactions for reading or writing properties and invoking actions, while more
complex interactions such as events are not covered.
      </p>
      <p>To validate our system, we implemented a simulation that covers the running example with
a automatic door controller and an intelligent power supply. The source code of the simulation
including a short demo video8 can be found as an example in the GitHub repository of the TD2P
processor. The simulation demonstrates that our approach allows the automatic generation of
PDDL domain and problem description files usable in standard PDDL planners.</p>
      <p>To evaluate the scalability of the system as the number of PDDL actions, and thus the search
space, increases, we systematically expanded the number of WoT actions of the simulated
devices in the running example. During the evaluation, other parameters such as the goal
or the number of devices remained unchanged. We evaluated the TD2P processors runtime
and memory consumption to create the PDDL domain and problem descriptions, and the total
runtime and memory consumption to solve the planning problem.</p>
      <p>The tests were conducted on consumer hardware equipped with an i5-10500H CPU and 16
GB of RAM running Ubuntu 22.04 LTS. Total runtime and peak memory usage were measured
separately using the time command in Linux. To solve the planning problem we used the
ENHSP-19 planner. All measurements were repeated five times.</p>
      <p>]s 106
m
[
sed 104
p
laE 102
e
iTm100
]
BK108
[
ry 106
om104
e
M102
k
ea 100</p>
      <p>P
10</p>
      <p>100 1,000 10,000</p>
      <sec id="sec-7-1">
        <title>No. of WoT Actions</title>
        <p>10</p>
        <p>100 1,000 10,000</p>
      </sec>
      <sec id="sec-7-2">
        <title>No. of WoT Actions</title>
      </sec>
      <sec id="sec-7-3">
        <title>Mapping Process</title>
      </sec>
      <sec id="sec-7-4">
        <title>Total Process</title>
        <p>The resulting diagrams in Figure 3 show that for up to 100 WoT actions, the TD2P processor
accounts for the majority of total processing time (between 51% and 67%) and total memory
usage (between 96% and 99%). But beyond 1,000 WoT actions, the PDDL planner consumes most
resources, and the share of the TD2P processor accounts for a minority of the total processing
time (between 2% and 16%) and total memory consumption (between 18% and 29%).</p>
        <p>As the number of WoT actions increases from 10 to 10,000 (an increase by a factor of 1,000,
or about 99,900%), the runtime for the TD2P processor increases from 420 ms to 480 ms (an
approximate increase of 14.3%), and the memory consumption increases from 115,532 KB
to 126,400 KB (an approximate increase of 9.4%), indicating vertical scalability for the TD2P
processor.
8https://github.com/FreuMi/TD2P/tree/main?tab=readme-ov-file#demo</p>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>7. Conclusion and Future Work</title>
      <p>In this paper, we introduced the spa ontology that is used to annotate preconditions and efects
of diferent WoT interactions in a TD. Additionally, we introduced a mapping between the
annotations in TDs to PDDL domain and problem definitions, allowing robotic agents that
have discovered a Thing to use established AI planning algorithms to dynamically evaluate
interactions to achieve a given goal. As next steps, we plan to release the spa ontology as a full
OWL ontology with OWL-restricted resources, focus on the correctness of manually scripted
WoT programs, and extend the TD2P processor to cover more complex WoT interactions.</p>
    </sec>
    <sec id="sec-9">
      <title>Acknowledgments References</title>
      <p>This work was funded by the Bayerisches Verbundforschungsprogramm (BayVFP) des Freistaates
Bayern through the KIWI project (grant no. DIK0318/03).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>D.</given-names>
            <surname>Leidner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Bejjani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Albu-Schäfer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Beetz</surname>
          </string-name>
          ,
          <article-title>Robotic agents representing, reasoning, and executing wiping tasks for daily household chores</article-title>
          ,
          <source>Autonomous Agents and MultiAgent Systems</source>
          (
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>B.</given-names>
            <surname>Pradhan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Bharti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Chakravarty</surname>
          </string-name>
          , et al.,
          <article-title>Internet of things and robotics in transforming current-day healthcare services</article-title>
          ,
          <source>Journal of healthcare engineering</source>
          <year>2021</year>
          (
          <year>2021</year>
          )
          <fpage>1</fpage>
          -
          <lpage>15</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>A.</given-names>
            <surname>Roy</surname>
          </string-name>
          <string-name>
            <surname>Chowdhury</surname>
          </string-name>
          ,
          <source>IoT and Robotics: a Synergy</source>
          ,
          <source>PeerJ Preprints 5</source>
          (
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>M.</given-names>
            <surname>Lagally</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Matsukura</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>McCool</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Toumura</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Kajimoto</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Kawaguchi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kovatsch</surname>
          </string-name>
          ,
          <article-title>Web of Things (WoT) Architecture 1</article-title>
          .1, https://www.w3.org/TR/wot-architecture/,
          <year>2023</year>
          . Accessed:
          <fpage>2024</fpage>
          -01-31.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>L. A.</given-names>
            <surname>Grieco</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Rizzo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Colucci</surname>
          </string-name>
          , et al.,
          <article-title>IoT-aided robotics applications: Technological implications, target domains and open issues</article-title>
          ,
          <source>Computer Communications</source>
          <volume>54</volume>
          (
          <year>2014</year>
          )
          <fpage>32</fpage>
          -
          <lpage>47</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>S.</given-names>
            <surname>Kaebisch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>McCool</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Korkan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Kamiya</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Charpenay</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kovatsch</surname>
          </string-name>
          ,
          <article-title>Web of Things (WoT) Thing Description 1</article-title>
          .1, https://www.w3.org/TR/wot-thing-description/,
          <year>2023</year>
          . Accessed:
          <fpage>2024</fpage>
          -01-31.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>A.</given-names>
            <surname>Olivares-Alarcos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Beßler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Khamis</surname>
          </string-name>
          , et al.,
          <article-title>A review and comparison of ontologybased approaches to robot autonomy</article-title>
          ,
          <source>The Knowledge Engineering Review</source>
          <volume>34</volume>
          (
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>C.</given-names>
            <surname>Aeronautiques</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Howe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Knoblock</surname>
          </string-name>
          , et al.,
          <string-name>
            <surname>PDDL - The Planning Domain Definition Language</surname>
          </string-name>
          ,
          <source>Technical Report, Tech. Rep</source>
          . (
          <year>1998</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>M.</given-names>
            <surname>Freund</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Fries</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Wehr</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Harth</surname>
          </string-name>
          ,
          <article-title>Generating visual programming blocks based on semantics in W3C thing descriptions</article-title>
          ,
          <source>in: Proceedings of the First International Workshop on Semantic Web on Constrained Things co-located with 20th Extended Semantic Web Conference, SWoCoT@ESWC</source>
          <year>2023</year>
          , Hersonissos, Greece, May
          <volume>28</volume>
          ,
          <year>2023</year>
          , volume
          <volume>3412</volume>
          <source>of CEUR Workshop Proceedings, CEUR-WS.org</source>
          ,
          <year>2023</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>15</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>E.</given-names>
            <surname>Korkan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Kaebisch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kovatsch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Steinhorst</surname>
          </string-name>
          ,
          <article-title>Sequential behavioral modeling for scalable iot devices and systems</article-title>
          , in: 2018
          <source>Forum on Specification &amp; Design Languages (FDL)</source>
          , IEEE,
          <year>2018</year>
          , pp.
          <fpage>5</fpage>
          -
          <lpage>16</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>Y.-q.</given-names>
            <surname>Jiang</surname>
          </string-name>
          , S.-q. Zhang,
          <string-name>
            <given-names>P.</given-names>
            <surname>Khandelwal</surname>
          </string-name>
          , et al.,
          <article-title>Task planning in robotics: an empirical comparison of pddl-and asp-based systems</article-title>
          ,
          <source>Frontiers of Information Technology &amp; Electronic Engineering</source>
          <volume>20</volume>
          (
          <year>2019</year>
          )
          <fpage>363</fpage>
          -
          <lpage>373</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>M.</given-names>
            <surname>Fox</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Long</surname>
          </string-name>
          ,
          <year>PDDL2</year>
          .
          <article-title>1: An extension to PDDL for expressing temporal planning domains</article-title>
          ,
          <source>Journal of artificial intelligence research 20</source>
          (
          <year>2003</year>
          )
          <fpage>61</fpage>
          -
          <lpage>124</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>M.</given-names>
            <surname>Noura</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Heil</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Gaedke</surname>
          </string-name>
          ,
          <article-title>Growth: Goal-oriented end user development for web of things devices</article-title>
          , in: Web Engineering: 18th International Conference, ICWE 2018, Cáceres, Spain, June 5-8,
          <year>2018</year>
          , Proceedings 18, Springer,
          <year>2018</year>
          , pp.
          <fpage>358</fpage>
          -
          <lpage>365</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>M.</given-names>
            <surname>Poveda-Villalón</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Fernández-Izquierdo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Fernández-López</surname>
          </string-name>
          ,
          <string-name>
            <surname>R.</surname>
          </string-name>
          <article-title>García-Castro, LOT: An industrial oriented ontology engineering framework</article-title>
          ,
          <source>Engineering Applications of Artificial Intelligence</source>
          <volume>111</volume>
          (
          <year>2022</year>
          )
          <fpage>104755</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>N.</given-names>
            <surname>Noy</surname>
          </string-name>
          , Ontology development 101:
          <article-title>A guide to creating your first ontology</article-title>
          ,
          <year>2001</year>
          . URL: https://api.semanticscholar.org/CorpusID:500106, accessed:
          <fpage>2024</fpage>
          -01-31.
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>A.</given-names>
            <surname>Gomez-Perez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. C.</given-names>
            <surname>Suárez-Figueroa</surname>
          </string-name>
          ,
          <article-title>Neon methodology for building ontology networks: a scenario-based methodology (</article-title>
          <year>2009</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>M.</given-names>
            <surname>Poveda-Villalón</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Gómez-Pérez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. C.</given-names>
            <surname>Suárez-Figueroa</surname>
          </string-name>
          ,
          <article-title>Oops!(ontology pitfall scanner!): An on-line tool for ontology evaluation</article-title>
          ,
          <source>International Journal on Semantic Web and Information Systems (IJSWIS) 10</source>
          (
          <year>2014</year>
          )
          <fpage>7</fpage>
          -
          <lpage>34</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>D.</given-names>
            <surname>Garijo</surname>
          </string-name>
          ,
          <article-title>WIDOCO: A Wizard for Documenting Ontologies</article-title>
          , in: International Semantic Web Conference, Springer, Cham,
          <year>2017</year>
          , pp.
          <fpage>94</fpage>
          -
          <lpage>102</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>E.</given-names>
            <surname>Scala</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Haslum</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Thiébaux</surname>
          </string-name>
          , et al.,
          <article-title>Interval-based relaxation for general numeric planning</article-title>
          ,
          <source>in: ECAI</source>
          <year>2016</year>
          , IOS Press,
          <year>2016</year>
          , pp.
          <fpage>655</fpage>
          -
          <lpage>663</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>