Episteme - DML - Presentational Operators

Syntax of Presentational Operators

We can operate on presentational primitives to produce other presentational primitves. As before, an operator is a function that given zero or more primitives as input, produces one or more primitives as output. Presentational operators have the following syntax.

	<data_namespace:operator_name>
	  <!-- The newly produced primitives have the 'result' attribute -->
	  <data_namespace:type_name id='label' result='result_idx'/>

	  <!-- The input primitives that have already been declared -->
	  <data_namespace:type_name ref='label'/>
	<\data_namespace:operator_name>
      

Current Presentational Operator Collections

ePiX Geometric Library (epix)

Using Presentational Operators

Lets intersect an ePiX circle and segment, grab the resulting points, and stuff them into instances of the ePiX point. This operation would be written as follows:

	<epix:intersect_primitives>
	  <epix:point id='a' result='0'/>
	  <epix:point id='d' result='1'/>
	  <epix:segment ref='ul_aod'/>
	  <epix:circle ref='ul_abcd'/>
	</epix:intersect_primitives>
      

Given n previously defined presentational primitives, as indicated by those types with ref attributes, produce k presentational primitives. These k primitives are stored in an array, usually in some meaningful order as defined by the operator. This allows them to be retrieved via an index, the value of the result attribute, and used to declare a type with a specified id. Here, n=2 and ul_aod and ul_abcd are intersected to produce points a and d.