Episteme - DML - Logical Operators

Syntax of Logical Operators

Now that we have the logical primitives, we can operate on them to produce other logical primitives. An operator is a function that given zero or more primitives as input, produces one or more primitives as output. This is syntactically represented in the following form:

	<data_namespace:operator_name>
	  <!-- One or more emergent primitives that are newly declared -->
	  <dialog:emergent_primitives>
	    <data_namespace:type_name id='label'/>         
	  </dialog:emergent_primitives>
	    <!-- Zero or more input primitives that have already been declared -->
	  <data_namespace:type_name ref='label'/>
	  ...
	</data_namespace:operator_name>
      

Current Logical Operator Collections

Archimedes (tlg0552)
Euclid (tlg1799)

Using Logical Operators

For example, the syntax for applying the binary intersection operator to the fluid surface ul_abcd and the Euclidean plane surface ul_abcdo to yield the curve abcd takes this form:

	<tlg1799.tlg001:intersection>
	  <dialog:emergent_primitives>
	    <tlg0552.tlg008:curve id='abcd'/>
	  <dialog:emergent_primitives>
	  <tlg0552.tlg008:fluid_surface ref='ul_abcd'/>
	  <tlg1799.tlg001:plane_surface ref='ul_abcdo'/>
	</tlg1799.tlg001:intersection>