Softools Data Explained

Softools Data Explained

The SOFTools Data Model

Douglas E. Dyer, PhD

Active Computing, Inc

17 Apr 05

Introduction: SOFTools is principally a temporal plan authoring/viewing system with an integrated execution checklist. Recently, SOFTools has been integrated with a spatial plan authoring/viewing system based on a Government-owned geographic information system, C2PC, making SOFTools more flexible and powerful for mission planning and execution control. SOFTools components work across a network and have the ability to merge plans created by different staff officers. Similarly, SOFTools can provide plan status to anyone on the net. Most recently, SOFTools developers have created a thin-client version of SOFTools, enabling its use in a wide variety of preferred architectures.

SOFTools differs from some other mission planning tools because there is a structured data model behind the graphics you see on the display. For example, icons on the temporal drawing canvas are associated with precise times. As another example, a movement arrow pointing to a place icon indicates that the movement will arrive at that destination, and this is represented in data, not just in the display. Having a structured data model enables new kinds of business logic and machine reasoning, potentially amplifying the brainpower of staff planners. These new capabilities are the reason a structured data model is important. This document describes the externally-relevant attributes of SOFTools’ data model. It also identifies the XML data format used to store and share the information for any particular plan or operation.

The Data Model: The SOFTools data model is relatively simple yet sufficient for plan authoring and execution monitoring[1]. SOFTools represents places, movement between places, and events. Places have different types and icons to indicate which type. Places are associated with a particular latitude and longitude, at least over a particular time period[2]. Movement between places often involves resources such as lift assets (e.g., three MH-53 helicopters), and these assets are represented as attributes of the movement rather than as first-class objects. Events can be associated with a place, a movement or the plan in general. Events also have communication parameters associated with the plan for execution monitoring. Parameters include who will report the events and to whom, their planned and actual times, the communication channel to be used, and whether or not the reporting is optional. SOFTools also represents meta information about the plan such as the identifying names for the operation, plan, course-of-action, sub-plan, mission, and sequel, a text description of the plan, the H-Hour and other specific times, the plan author, the classification level of the plan, who classified it and why, and when it should be de-classified.

On units: Locations and times are critical attributes in any planning system, and there are a wide variety of units that could be used for digital representation of these quantities. In SOFTools, latitudes and longitudes are provided in decimal degrees while time is expressed as seconds since 1970 GMT. This is reiterated below.

Now let’s take a closer look at the main elements of the SOFTools data model: places, movement between places, and events. For the purposes of this paper, we’ll focus only on the externally-relevant attributes[3].

Places have the following externally-relevant attributes:

 Unique ID (base-64 encoded globally unique integers, 160 bits in length[4])

 Name (a string of descriptive text naming a place)

 Type (from an enumerated set; derived from icon used)

 Latitude (decimal degrees)

 Longitude (decimal degrees)

 Any associated sub-plan (useful for monitoring the workflow)

Movements between places have the following externally-relevant attributes:

 Unique ID (base-64 encoded globally unique integers, 160 bits in length)

 From (Origin; a place ID)

 To (Destination; a place ID)

 Assets (a string in the form,”<number>x<kind” e.g., 1xAC-130U is 1 AC-130)

 Asset Description (string)

 Operational Element (a string identifying the team being transported)

 CallSign (a string assigned from an enumerated set for communication purposes)

 Any associated sub-plan (useful for monitoring the workflow)

In addition, movements include attributes relevant to communications and needed by the execution checklist (see the event attributes). This is because movement departures and arrivals are events that are typically tracked as events during execution.

Events include the following externally-relevant attributes:

 Unique ID (base-64 encoded globally unique integers, 160 bits in length)

 Type (either “plain” or “decisionpoint”)

 Name (a string of descriptive text)

 BoundTo (a place ID or movement ID with which the event is associated, if any)

 Latitude (decimal degrees; useful if the event is not bound to a place)

 Longitude (decimal degrees; useful if the event is not bound to a place)

 Any associated sub-plan (useful for monitoring the workflow)

Events, movement departures, and movement arrivals also have these attributes needed for execution monitoring with the SOFTools Execution Checklist[5]:

 Number (An integer; row number on the Execution Checklist)

 Text (A string describing the event)

 From (The call sign of the person reporting the event)

 To (The call sign designating to whom the event was reported)

 Net (Enumerated; the communication channel used for the communication)

 Required (Boolean; if true, the report is not optional)

 Codeword (Enumerated; a string used in the communication)

 Time (The planned time for the event; seconds since 1970 GMT)

 Calltime (The reported time the event occurred; seconds since 1970 GMT)

Externally-relevant meta data attributes for a plan include:

 Specially-designated times (e.g. H-hour), their names, and whether they are notional (“the time when operations begin”) or fixed (“2130 local time”)

 Hierarchically-related textual plan designators such as Operation, Plan, CourseOfAction, SubPlan, Mission, and Sequel

 Description (text describing the plan)

 Author of a plan (the text name of the author)

 As-Of time and date (manually entered by the author)

 Classification and security meta data such as the classifying source, reason, and de-classification date.

Discussion: SOFTools plans are saved as XML files (see the Appendix for an example). As noted previously many attributes are used only for internal purposes, and these have not been omitted in the XML of the example plan in the Appendix. The attribute terms used above correspond to the XML element names in the XML file, so it should be easy for the reader to find them. Plan meta data appear in XML elements <config> and <secheader> while data for a place, movement, or event appear in XML elements of the same name. For most integration purposes, this is a complete description of the SOFTools data model[6].

Summary: This paper seeks to describe the SOFTools data model including places, movement between places, and events in terms of their externally-relevant attributes. We also discussed plan meta data attributes and briefly discussed the XML plan representation used in SOFTools. Questions? .

Appendix: An Example SOFToools plan: Example-Simple.sof

The XML file for Example-simple.sof (filename: Example-simple.sof):

<softools>

<config>

<hour>

<fixed>1</fixed>

<name>H</name>

<time>1100228400</time>

</hour>

<plan_begin>1100098800</plan_begin>

<plan_span>259200</plan_span>

<time_format>zulu</time_format>

<timeline_latitude</timeline_latitude>

<timeline_longitude</timeline_longitude>

<timeline_ref_hour>H</timeline_ref_hour>

</config>

<event>

<boundto>00002Ac2AWZOkjT7ira_zlBQkIh</boundto>

<ckitem>

<calltime>0.0</calltime>

<codeword</codeword>

<from</from>

<net</net>

<number</number>

<required</required>

<text>OBJ Copper Objective Secure</text>

<text_ovrd>0</text_ovrd>

<time>1100229600</time>

<to</to>

</ckitem>

<fontcolor>#000000</fontcolor>

<fontsize>8</fontsize>

<iconcolor</iconcolor>

<id>00004Ac2AWZOkjT7ira_zlBQkIh</id>

<latitude</latitude>

<longitude</longitude>

<name>Objective Secure</name>

<namex>1100229600</namex>

<namey>222</namey>

<ref_hour>H</ref_hour>

<subplan</subplan>

<type>plain</type>

<y>192</y>

</event>

<event>

<ckitem>

<calltime>0.0</calltime>

<codeword</codeword>

<from</from>

<net</net>

<number</number>

<required</required>

<text>Weather Call</text>

<text_ovrd>0</text_ovrd>

<time>1100221968</time>

<to</to>

</ckitem>

<fontcolor>#000000</fontcolor>

<fontsize>8</fontsize>

<iconcolor</iconcolor>

<id>000022ICNjXQMR5DjtKgN0s7ZI8</id>

<latitude</latitude>

<longitude</longitude>

<name>Weather Call</name>

<namex>1100221344</namex>

<namey>100</namey>

<ref_hour>H</ref_hour>

<subplan</subplan>

<type>decisionpoint</type>

<y>91</y>

</event>

<event>

<ckitem>

<calltime>0.0</calltime>

<codeword</codeword>

<from</from>

<net</net>

<number</number>

<required</required>

<text>CNN Report</text>

<text_ovrd>0</text_ovrd>

<time>1100233776</time>

<to</to>

</ckitem>

<fontcolor>#000000</fontcolor>

<fontsize>8</fontsize>

<iconcolor</iconcolor>

<id>000032ICNjXQMR5DjtKgN0s7ZI8</id>

<latitude</latitude>

<longitude</longitude>

<name>CNN Report</name>

<namex>1100234016</namex>

<namey>253</namey>

<ref_hour>H</ref_hour>

<subplan</subplan>

<type>plain</type>

<y>246</y>

</event>

<event>

<boundto>00008Ac2AWZOkjT7ira_zlBQkIh</boundto>

<ckitem>

<calltime>0.0</calltime>

<codeword</codeword>

<from</from>

<net</net>

<number</number>

<required</required>

<text>TF Bravo 2xMH-53 Refuel</text>

<text_ovrd>0</text_ovrd>

<time>1100232581.19</time>

<to</to>

</ckitem>

<fontcolor>#000000</fontcolor>

<fontsize>8</fontsize>

<iconcolor</iconcolor>

<id>00003E080ASDkGD9egL5MOead1h</id>

<latitude</latitude>

<longitude</longitude>

<name>Refuel</name>

<namex>1100230805.19</namex>

<namey>140.75</namey>

<ref_hour>H</ref_hour>

<subplan</subplan>

<type>plain</type>

<y>161.75</y>

</event>

<event>

<boundto>000053NBoWEpkVP3_-Kt2EK7Lj4</boundto>

<ckitem>

<calltime</calltime>

<codeword</codeword>

<from</from>

<net</net>

<number</number>

<required</required>

<text>1xAC-130U On Station</text>

<text_ovrd>0</text_ovrd>

<time>1100229143.95</time>

<to</to>

</ckitem>

<fontcolor>#000000</fontcolor>

<fontsize>8</fontsize>

<iconcolor</iconcolor>

<id>000063NBoWEpkVP3_-Kt2EK7Lj4</id>

<latitude</latitude>

<longitude</longitude>

<name>On Station</name>

<namex>1100228951.95</namex>

<namey>365.5</namey>

<ref_hour>H</ref_hour>

<subplan>000023NBoWEpkVP3_-Kt2EK7Lj4</subplan>

<type>plain</type>

<y>354.5</y>

</event>

<event>

<boundto>000053NBoWEpkVP3_-Kt2EK7Lj4</boundto>

<ckitem>

<calltime</calltime>

<codeword</codeword>

<from</from>

<net</net>

<number</number>

<required</required>

<text>1xAC-130U Off Station</text>

<text_ovrd>0</text_ovrd>

<time>1100231975.7</time>

<to</to>

</ckitem>

<fontcolor>#000000</fontcolor>

<fontsize>8</fontsize>

<iconcolor</iconcolor>

<id>000073NBoWEpkVP3_-Kt2EK7Lj4</id>

<latitude</latitude>

<longitude</longitude>

<name>Off Station</name>

<namex>1100232359.7</namex>

<namey>369.5</namey>

<ref_hour>H</ref_hour>

<subplan>000023NBoWEpkVP3_-Kt2EK7Lj4</subplan>

<type>plain</type>

<y>354.5</y>

</event>

<icon>

<data>R0lGODlhFQAOAPECAAAAAP7+/v///wAAACH5BAUAAAIALAAAAAAVAA4AAAI8lC+gC+jGIntphYvDRDZ7rRwdcCkYCTajxqJoapbt+8Ln7GbMTfbyufvFYqlK7QNsQDrIjUgCVVKi0kMBADs</data>

<mag>1.0</mag>

<name>place/enemy/obj</name>

</icon>

<icon>

<data>R0lGODdhEgAOAPEAAAEBAf////7+/gAAACwAAAAAEgAOAAACKoSPqcsWD2NEskL6QNZu98BdoKdlYPlhoxmeqdiqHFq6tRUIJF41/s8oAAA7////</data>

<mag>1.0</mag>

<name>place/base/isb</name>

</icon>

<icon>

<data>R0lGODlhJAASAPQXAAEBAQAzAABmAACZmTMAADMzADMzMzNmADNmM2YzAGZmAGZmM2ZmZmbMAGbMM2bM/5mZAJmZmczMAMzMM8zM/8z////M/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAUAABgALAAAAAAkABIAAAXJICaOZGmaB3Gu7HkYRrVOBURRU0RFAZBQpJuoBzCUcIpCQaUAOAFH4tOJKfgWBkAgEGFBnAKqidJMtFoSqMSkOESsgbP8FEFQCIWubjIPxk8KDAwHBw4XggwWgmZnDRBjiIIKbZGIc0AkCwuVBxcUDYSBDHxyFAFCDxGIqpWVfQgTExADbRSthZ4ODrZ9AA4IlHatDA8MtpZ9kzsIA6puB4gTw3OtCxQSbYUDgtCtZ3a2N2SRbQjDiQxQLAzm5wwK7e4MZ/L1gichADs</data>

<mag>1.0</mag>

<name>asset/rotor/mh-53</name>

</icon>

<icon>

<data>R0lGODlhOgAXAPIGAAEBATMAMzMzM2ZmZpmZmczMzP///wAAACH5BAUAAAYALAAAAAA6ABcAAAPKaLrcO8TJSattYtzNu8qRJ47PoJEWoRICmUEopULhSJhDETNrUdSkAu6EWhF+P4Mv9iJ6jL+hEzWMzFSVWe54yxUAup10ljXSckpleNeVwhxt7RmrWIt6LKN+jztGb2AMdhx4JzR7Kj57PopeU4SJFFUrk1CKiYqDO0pcWnI/lmaJQDF6QmMBABBnfYikd3w6nixjbrVoT3pVLQq3Jm22AwLDjzK6UatgSQZ9wcHDAAAplLhwqh6nwdNaHJobS1k/AnTYmxZC3uabCQA7</data>

<mag>1.0</mag>

<name>asset/fixed/ac-130u</name>

</icon>

<location>

<id>00009Ac2AWZOkjT7ira_zlBQkIh</id>

<name>Copper</name>

</location>

<location>

<id>0000AAc2AWZOkjT7ira_zlBQkIh</id>

<latitude>17.1254</latitude>

<longitude>115.0023</longitude>

<name>Elden</name>

</location>

<movement>

<assetdesc</assetdesc>

<assets>2xMH-53</assets>

<callsign>Bravo 21</callsign>

<end>

<calltime</calltime>

<codeword</codeword>

<from>Bravo 21</from>

<net</net>

<number</number>

<required</required>

<text>TF Bravo 2xMH-53 ARR OBJ Copper</text>

<text_ovrd>0</text_ovrd>

<time>1100228400</time>

<to</to>

</end>

<fontcolor>#000000</fontcolor>

<fontsize>8</fontsize>

<from>00001Ac2AWZOkjT7ira_zlBQkIh</from>

<from_y>47</from_y>

<icon>asset/rotor/mh-53</icon>

<iconx>1100224726.84</iconx>

<icony>83.5</icony>

<id>00003Ac2AWZOkjT7ira_zlBQkIh</id>

<linecolor>#000000</linecolor>

<linedash>0.0</linedash>

<linewidth>2</linewidth>

<opelement>TF Bravo</opelement>

<ref_hour>H</ref_hour>

<start>

<calltime</calltime>

<codeword>Elizabet</codeword>

<from>Bravo 21</from>

<net>Sat A</net>

<number</number>

<required>M</required>

<text>TF Bravo 2xMH-53 DPT ISB Elden</text>

<text_ovrd>0</text_ovrd>

<time>1100225568</time>

<to>JOC</to>

</start>

<subplan</subplan>

<to>00002Ac2AWZOkjT7ira_zlBQkIh</to>

<to_y>192</to_y>

</movement>

<movement>

<assetdesc</assetdesc>

<assets>2xMH-53</assets>

<callsign>Bravo 21</callsign>

<end>

<calltime>0.0</calltime>

<codeword</codeword>

<from>Bravo 21</from>

<net</net>

<number</number>

<required</required>

<text>TF Bravo 2xMH-53 ARR ISB Elden</text>

<text_ovrd>0</text_ovrd>

<time>1100234880</time>

<to</to>

</end>

<fontcolor>#000000</fontcolor>

<fontsize>8</fontsize>

<from>00002Ac2AWZOkjT7ira_zlBQkIh</from>

<from_y>192</from_y>

<icon>asset/rotor/mh-53</icon>

<iconx>1100234868</iconx>

<icony>123.5</icony>

<id>00008Ac2AWZOkjT7ira_zlBQkIh</id>

<linecolor>#000000</linecolor>

<linedash>0.0</linedash>

<linewidth>2</linewidth>

<opelement>TF Bravo</opelement>

<ref_hour>H</ref_hour>

<start>

<calltime>0.0</calltime>

<codeword</codeword>

<from>Bravo 21</from>

<net</net>

<number</number>

<required</required>

<text>TF Bravo 2xMH-53 DPT OBJ Copper</text>

<text_ovrd>0</text_ovrd>

<time>1100231976</time>

<to</to>

</start>

<subplan</subplan>

<to>00001Ac2AWZOkjT7ira_zlBQkIh</to>

<to_y>47</to_y>

</movement>

<movement>

<assetdesc</assetdesc>

<assets>1xAC-130U</assets>

<callsign>Spartan 12</callsign>

<end>

<calltime</calltime>

<codeword</codeword>

<from>Spartan 12</from>

<net</net>

<number</number>

<required</required>

<text>1xAC-130U ARR ISB</text>

<text_ovrd>0</text_ovrd>

<time>1100237160</time>

<to</to>

</end>

<fontcolor>#000000</fontcolor>

<fontsize>8</fontsize>

<from>000033NBoWEpkVP3_-Kt2EK7Lj4</from>

<from_y>355</from_y>

<icon>asset/fixed/ac-130u</icon>

<iconx>1100220168</iconx>

<icony>353.5</icony>

<id>000053NBoWEpkVP3_-Kt2EK7Lj4</id>

<linecolor>#000000</linecolor>

<linedash>0.0</linedash>

<linewidth>2</linewidth>

<opelement</opelement>

<ref_hour>H</ref_hour>

<start>

<calltime</calltime>

<codeword</codeword>

<from>Spartan 12</from>

<net</net>

<number</number>

<required</required>

<text>1xAC-130U DPT ISB</text>

<text_ovrd>0</text_ovrd>

<time>1100224104</time>

<to</to>

</start>

<subplan>000023NBoWEpkVP3_-Kt2EK7Lj4</subplan>

<to>000043NBoWEpkVP3_-Kt2EK7Lj4</to>

<to_y>354</to_y>

</movement>

<place>

<endtime>1100236800</endtime>

<fontcolor>#000000</fontcolor>

<fontsize>8</fontsize>

<icon>place/base/isb</icon>

<id>00001Ac2AWZOkjT7ira_zlBQkIh</id>

<label1x>1100219088</label1x>

<label1y>63</label1y>

<label2x>1100237328</label2x>

<label2y>62</label2y>

<latitude>17.1254</latitude>

<linecolor>#000086</linecolor>

<linedash>0.0</linedash>

<linewidth>3</linewidth>

<locationptr>0000AAc2AWZOkjT7ira_zlBQkIh</locationptr>

<longitude>115.0023</longitude>

<name>Elden</name>

<ref_hour>H</ref_hour>

<starttime>1100219520</starttime>

<subplan</subplan>

<y>47</y>

</place>

<place>

<endtime>1100235240</endtime>

<fontcolor>#000000</fontcolor>

<fontsize>8</fontsize>

<icon>place/enemy/obj</icon>

<id>00002Ac2AWZOkjT7ira_zlBQkIh</id>

<label1x>1100225280</label1x>

<label1y>203</label1y>

<label2x>1100235960</label2x>

<label2y>202</label2y>

<linecolor>#000086</linecolor>

<linedash>0.0</linedash>

<linewidth>3</linewidth>

<locationptr>00009Ac2AWZOkjT7ira_zlBQkIh</locationptr>

<name>Copper</name>

<ref_hour>H</ref_hour>

<starttime>1100226000</starttime>

<subplan</subplan>

<y>192</y>

</place>

<place>

<endtime>1100224104</endtime>

<fontsize>8</fontsize>

<icon>place/base/isb</icon>

<id>000033NBoWEpkVP3_-Kt2EK7Lj4</id>

<label1x>1100224104</label1x>

<label1y>385</label1y>

<label2x>1100224104</label2x>

<label2y>385</label2y>

<name</name>

<ref_hour>H</ref_hour>

<starttime>1100224104</starttime>

<subplan>000023NBoWEpkVP3_-Kt2EK7Lj4</subplan>

<y>355</y>

</place>

<place>

<endtime>1100237160</endtime>

<fontsize>8</fontsize>

<icon>place/base/isb</icon>

<id>000043NBoWEpkVP3_-Kt2EK7Lj4</id>

<label1x>1100237160</label1x>

<label1y>384</label1y>

<label2x>1100237160</label2x>

<label2y>384</label2y>

<name</name>

<ref_hour>H</ref_hour>

<starttime>1100237160</starttime>

<subplan>000023NBoWEpkVP3_-Kt2EK7Lj4</subplan>

<y>354</y>

</place>

<planid>000083NBoWEpkVP3_-Kt2EK7Lj4</planid>

<secheader>

<asof>1627Z 12 Sep 2004</asof>

<author>Joe Schmoe</author>

<classifiedby</classifiedby>

<coa>ExampleCOA</coa>

<country</country>

<declassifyon>08 Sep 2014</declassifyon>

<derivedfrom</derivedfrom>

<description</description>

<level>UNCLASSIFIED</level>

<misnum>1</misnum>

<mtype</mtype>

<operation>ExampleOp</operation>

<plan>ExamplePlan</plan>

<reason</reason>

<sequel>ExampleSequel</sequel>

<show_asof>1</show_asof>

<show_author>0</show_author>

<show_coa>0</show_coa>

<show_hour>1</show_hour>

<show_misnum>0</show_misnum>

<show_operation>0</show_operation>

<show_plan>0</show_plan>

<show_sequel>0</show_sequel>

<show_subplan>0</show_subplan>

<subplan>ExampleSubplan</subplan>

<theater</theater>

<title</title>

</secheader>

<separator>

<fontsize>8</fontsize>

<id>000023NBoWEpkVP3_-Kt2EK7Lj4</id>

<name>Fire Support</name>

<y>307.0</y>

</separator>

<tpe_options>

<centertime>1100230200.0</centertime>

<hours_per_inch>1</hours_per_inch>

<show>

<activity_support>1</activity_support>

<asset_desc>1</asset_desc>

<checklist_detail>1</checklist_detail>

<event_names>1</event_names>

<event_status>0</event_status>

<event_times>1</event_times>

<extended_place_times>1</extended_place_times>

<grid>1</grid>

<locks>1</locks>

<mission_dates>0</mission_dates>

<mission_names>1</mission_names>

<mission_ophour_names>0</mission_ophour_names>

<mission_times>0</mission_times>

<move_arrive>1</move_arrive>

<move_assets>1</move_assets>

<move_depart>1</move_depart>

<move_icons>1</move_icons>

<move_op_elements>1</move_op_elements>

<place_names>1</place_names>

<place_times>1</place_times>

<sunrise>0</sunrise>

<time_bands>1</time_bands>

</show>

<top>3</top>

<zoom>1.0</zoom>

</tpe_options>

<user_message</user_message>

<version>2.0</version>

</softools>

[1] The data model in SOFTools is not sufficient for fully automated planning, although it supports some automated constraint checks. As requirements are added, it makes sense to extend the data model to support the new functions users need, and this can certainly be done.

[2] The deck of an aircraft carrier is an example of a place whose location may change.

[3] Some attributes are only relevant internally, i.e., to the SOFTools application itself. Examples include the font size of a text label and its location relative to its associated icon and whether or not it should be displayed.

[4] Globally unique identifiers: using a good random number generator, numbers of sufficient size have a calculable probability of being unique. If there are n plan objects, the probability of accidental non-uniqueness is n/s where s is the largest number that can possibly be generated. For a 160 bit integer, n = 2160 so even for a plan with a million elements, the probability of non-uniqueness is 6x10-43 making that event about 1033 times less likely than a meteor striking the earth, killing all life prior to the end of the project.

[5] The external relevance of these depends on the availability of other sources of data, e.g., voice radio traffic or some product based on it. These attributes are potentially relevant.

[6] Engineers who are very familiar with SOFTools can heuristically derive other information from a SOFTools XML file such as names and y-locations of separators relative to y-locations of plan element icons, attributes normally considered internally-relevant. Separators are typically used to define battlefield support activities such as fire support, combat search and rescue, intelligence, and medical support.