<?xml version="1.0"?>

<!DOCTYPE rdf:RDF [
   <!ENTITY rdf              "http://www.w3.org/1999/02/22-rdf-syntax-ns">
   <!ENTITY rdfs             "http://www.w3.org/2000/01/rdf-schema">
   <!ENTITY owl              "http://www.w3.org/2002/07/owl">
   <!ENTITY sten             "http://www.somewhere#">
   <!ENTITY D2.1             "http://www.somewhere">
   <!ENTITY meta             "http://www.somewhere#">
]>

<rdf:RDF
   xmlns:rdf              ="&rdf;#"
   xmlns:rdfs             ="&rdfs;#"
   xmlns:owl              ="&owl;#"
   xmlns:sten             ="&sten;"
   xmlns:meta             ="&meta;"
>

<!--
&lt;!DOCTYPE html PUBLIC
         "-//W3C//DTD XHTML 1.0 Transitional//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;

&lt;html&gt;

&lt;head&gt;
 &lt;meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/&gt;
 &lt;title&gt;S-TEN D2.1: What is possible&lt;/title&gt;
 &lt;style type="text/css"&gt;
   .note { color: #808080; }
   .table { font-size: smaller }
   .title { font-size: xx-large }
   p { text-align: justify }
   pre { background: #FFFFE0; }
   p.caption { text-align: center }
 &lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;a name="what_is_possible"/&gt;
&lt;h2&gt;8 What is possible&lt;/h2&gt;

&lt;a name="meaning_of_can"/&gt;
&lt;h3&gt;8.1 Meaning of "can"&lt;/h3&gt;
&lt;p&gt;S-TEN uses the "possible future worlds" approach to the concept of "can". That
something &lt;i&gt;can happen&lt;/i&gt; is interpreted as meaning that it &lt;i&gt;does happen&lt;/i&gt;
in at least one possible future world.&lt;/p&gt;

&lt;p&gt;Consider the class C_AM_WC-T_L123, as defined in
&lt;a href="weather_station_example.htm#the_class_of_wind_chill_information"&gt;The class of wind chill information&lt;/a&gt;.
"WS_123 can do C_AM_WC-T_L123" means:&lt;/p&gt;

&lt;blockquote&gt;
some of the possible members of C_AM_WC-T_L123 are performed by WS_123.
&lt;/blockquote&gt;

&lt;p&gt;This can be stated using OWL as follows:&lt;/p&gt;

&lt;pre&gt;
:WS_123 a [ owl:onProperty      sten:performs     ;
            owl:someValuesFrom
             [ owl:intersectionOf
                ( sten:possible
                  :C_AM_WC-T_L123
                )
             ]
          ] .
&lt;/pre&gt;

&lt;p&gt;Unfortunately this statement merely says that WS_123 can do a member of
C_AM_WC-T_L123. It is not possible to deduce from this whether or not WS_123
can perform a member of C_AM_WC-T_L123_T456, which is the subclass of
C_AM_WC-T_L123 defined by specifying a time period as follows:&lt;/p&gt;

&lt;pre&gt;
:C_AM_WC-T_L123_T456 =
      [ owl:intersectionOf
        ( :C_AM_WC-T_L123
          [ owl:onProperty    sten:during ;
            owl:allValuesFrom [ rdfs:comment "a set of possible periods is defined" ]
          ]
        )
      ]  .
&lt;/pre&gt;

&lt;p&gt;In order to make this deduction, a stronger version of "can" is required
for which "WS_123 can do C_AM_WC-T_L123" means:&lt;/p&gt;

&lt;blockquote&gt;
for any subclass of the possible members of C_AM_WC-T_L123 defined as an
plan, some are performed by WS_123.
&lt;/blockquote&gt;

&lt;p&gt;This statement is difficult to make in OWL, so a shorthand is defined as
follows:&lt;/p&gt;

&lt;pre&gt;
:WS_123  sten:can_do_plan_within  :C_AM_WC-T_L123 .
&lt;/pre&gt;

&lt;a name="meaning_of_must"/&gt;
&lt;h3&gt;8.2 Meaning of "must"&lt;/h3&gt;

&lt;p&gt;If something is inevitable, then it happens in all future possible worlds.&lt;/p&gt;

&lt;p&gt;Consider the ball intended by Prince Charming.
"It is inevitable that Cinderella attends the ball" means:&lt;/p&gt;

&lt;blockquote&gt;
Cinderella attends each the ball intended by Prince Charming in each possible future
world.
&lt;/blockquote&gt;

&lt;pre&gt;
:intended_by_PC = [ owl:onProperty    sten:intended_by
                    owl:allValuesFrom :Prince_Charming ] .

:PCs_Ball          rdfs:subClassOf  ont:ball ;
                   rdfs:subClassOf  :intended_by_PC .

:possible_PCs_Ball =                [ owl:intersectionOf
                                       ( sten:possible
                                         :PCs_Ball
                                       )
                                    ] .

:possible_PCs_Ball rdfs:subClassOf  [ owl:onProperty     ont:attended_by ;
                                      owl:someValuesFrom [ owl:oneOf ( :Cinderella ) ]
                                    ] .
&lt;/pre&gt;

&lt;p&gt;As discussed in &lt;a href="#meaning_of_can"&gt;Meaning of "can"&lt;/a&gt;, the
weaker statement "Cinderella can attend the ball" means:&lt;/p&gt;

&lt;blockquote&gt;
Cinderella attends the ball intended by Prince Charming in some possible future
worlds.
&lt;/blockquote&gt;

&lt;pre&gt;
:intended_by_PC = [ owl:onProperty    sten:intended_by
                    owl:allValuesFrom :Prince_Charming ] .

:PCs_Ball          rdfs:subClassOf   ont:ball ;
                   rdfs:subClassOf  :intended_by_PC .

:possible_PCs_Ball =                 [ owl:intersectionOf
                                        ( sten:possible
                                          :PCs_Ball
                                        )
                                     ] .

:Cinderella        a                 [ owl:onProperty     ont:attends ;
                                       owl:someValuesFrom :possible_PCs_Ball ] .
&lt;/pre&gt;

&lt;p&gt;The statement
"Cinderella shall go to the ball" made by the Fairy Godmother means:&lt;/p&gt;

&lt;blockquote&gt;
Cinderella attends the ball intended by Prince Charming, where the intension is
refined by the Fairy Godmother, in each future world.
&lt;/blockquote&gt;

&lt;pre&gt;
:intended_by_PC = [ owl:onProperty    sten:intended_by
                    owl:allValuesFrom :Prince_Charming ] .

:intended_by_FG = [ owl:onProperty    sten:intended_by
                    owl:allValuesFrom :Fairy_Godmother ] .

:PCs_Ball  rdfs:subClassOf  ont:ball ;
           rdfs:subClassOf  :intended_by_PC .

:FGs_Ball  rdfs:subClassOf  :PCs_Ball ;
           rdfs:subClassOf  :intended_by_FG .

:FGs_Ball  rdfs:subClassOf   [ owl:onProperty     ont:attended_by ;
                               owl:someValuesFrom [ owl:oneOf ( :Cinderella ) ]
                             ] .
&lt;/pre&gt;

&lt;a name="design_intent"/&gt;
&lt;h3&gt;8.3 Design intent&lt;/h3&gt;

&lt;p&gt;The class of device "pump" consists of all objects which are intended by the
supplier to perform a member of the class of activity "pumping". It is the
intension that is important, because a "pump" might
never actually perform a "pumping" activity.&lt;/p&gt;

&lt;p&gt;Hence the class of device "pump" can be defined from the class of activity
"pumping" as follows:&lt;/p&gt;

&lt;pre&gt;
:equipment_supplier_intended_pumping =
   [ owl:intersectionOf
      ( :pumping
        [ owl:onProperty    sten:intended_by ;
          owl:allValuesFrom :equipment_supplier ]
        sten:possible
      )
   ] .

:pump  =  [ owl:onProperty     sten:performs     ;
            owl:someValuesFrom :equipment_supplier_intended_pumping ] .
&lt;/pre&gt;

&lt;p&gt;In an emergency, a large heavy pump can be used as an anchor. A intension
to do this is formed by a captain of a ship rather than an equipment supplier.&lt;/p&gt;

&lt;a name="ontology"/&gt;
&lt;h3&gt;8.4 Ontology&lt;/h3&gt;

&lt;a name="possible"/&gt;
&lt;h3&gt;8.4.1 possible&lt;/h3&gt;
&lt;p&gt;An object is a &lt;a href="#possible"&gt;&lt;b&gt;sten:possible&lt;/b&gt;&lt;/a&gt;
if and only if it exists in a possible world.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;OWL specification:&lt;/u&gt;&lt;/p&gt;
&lt;pre&gt;
-->
<owl:Class rdf:about="&sten;possible">
 <rdfs:subClassOf rdf:resource="&sten;classical_object"/>
 <meta:defined_by rdf:resource="&D2.1;/what_is_possible.htm#possible"/>
</owl:Class>
<!--
&lt;/pre&gt;

&lt;a name="intended_by"/&gt;
&lt;h3&gt;8.4.2 intended_by&lt;/h3&gt;
&lt;p&gt;An object is an &lt;a href="#intended_by"&gt;&lt;b&gt;sten:intended_by&lt;/b&gt;&lt;/a&gt; relationship
if and only if:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;it is a &lt;b&gt;basics:mapping&lt;/b&gt; from
&lt;a href="physical_things.htm#classical_object"&gt;&lt;b&gt;sten:classical_object&lt;/b&gt;&lt;/a&gt;
to itself;&lt;/li&gt;
&lt;li&gt;the object in the domain is consistent with an intension of the object in the
range (a person or a machine with opinions about the future).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;u&gt;OWL specification:&lt;/u&gt;&lt;/p&gt;
&lt;pre&gt;
-->
<owl:ObjectProperty rdf:about="&sten;intended_by">
 <rdfs:domain rdf:resource="&sten;classical_object"/>
 <rdfs:range rdf:resource="&sten;classical_object"/>
 <meta:defined_by rdf:resource="&D2.1;/what_is_possible.htm#intended_by"/>
</owl:ObjectProperty>
<!--
&lt;/pre&gt;

&lt;a name="can_do_plan_within"/&gt;
&lt;h3&gt;8.4.3 can_do_plan_within&lt;/h3&gt;
&lt;p&gt;An object is an &lt;a href="#can_do_plan_within"&gt;&lt;b&gt;sten:can_do_plan_within&lt;/b&gt;&lt;/a&gt; relationship
if and only if:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;it is a &lt;b&gt;basics:mapping&lt;/b&gt; from
&lt;a href="physical_things.htm#classical_object"&gt;&lt;b&gt;sten:classical_object&lt;/b&gt;&lt;/a&gt;
(a performer) to &lt;b&gt;owl:Class&lt;/b&gt; (a subclass of
&lt;a href="physical_things.htm#activity"&gt;&lt;b&gt;sten:activity&lt;/b&gt;&lt;/a&gt; within which a
plan can be defined);&lt;/li&gt;
&lt;li&gt;the performer
&lt;a href="physical_things.htm#performs"&gt;&lt;b&gt;sten:performs&lt;/b&gt;&lt;/a&gt;
one or more members of each plan.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A plan is a subclass of
&lt;a href="physical_things.htm#activity"&gt;&lt;b&gt;sten:activity&lt;/b&gt;&lt;/a&gt; which is defined
so that each member satisfies a requirement. A plan may contain many
&lt;a href="#possible"&gt;&lt;b&gt;possible&lt;/b&gt;&lt;/a&gt; instances of
&lt;a href="physical_things.htm#activity"&gt;&lt;b&gt;sten:activity&lt;/b&gt;&lt;/a&gt;. A plan is
fulfilled if one of them happens.&lt;/p&gt;

&lt;div class="note"&gt;
&lt;p&gt;NOTE 1 This relationship implies that some subclasses cannot be defined as a
plan. This restriction enables the statement such as "device D can perform any
plan within subclass A".&lt;/p&gt;
&lt;/div&gt;

&lt;div class="note"&gt;
&lt;p&gt;NOTE 2 This is very sordid.  It says merely "if you choose D for a plan within
subclass A nobody can blame you". If would be good to have something more formal.&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;&lt;u&gt;OWL specification:&lt;/u&gt;&lt;/p&gt;
&lt;pre&gt;
-->
<owl:ObjectProperty rdf:about="&sten;can_do_plan_within">
 <rdfs:domain rdf:resource="&sten;classical_object"/>
 <rdfs:range>
  <owl:Restriction>
   <owl:onProperty rdf:resource="rdfs;subClassOf"/>
   <owl:someValuesFrom rdf:resource="sten:activity"/>
  </owl:Restriction>
 </rdfs:range>
 <meta:defined_by rdf:resource="&D2.1;/what_is_possible.htm#can_do_plan_within"/>
</owl:ObjectProperty>
<!--
&lt;/pre&gt;

&lt;/body&gt;

&lt;/html&gt;
-->

</rdf:RDF>

