Episteme - DML - Presentational Types

Syntax of Presentational Types

The presentationaly types are determined by the ways in which the logical concepts of the construction are presented on the page. In Euclid, Ptolemy, and Archimedes, this is mostly through 2D geometry on a page. However, Ptolemy's use of multiple projections laid on top of each other indicates that this presentation relies upon a 3D model to some extent. The focus so far has been on developing a basic geometric model extending the ePiX graphics library.

As before, the syntax for a presentational type is data_namespace:typename. In this case, the data_namespace is going to be epix, as the geometric primitives are based on this library.

Current Presentational Type Collections

ePiX Geometric Library (epix)

Declaring and Referencing Presentational Type Variables

For example, the syntax for declaring an ePiX point labeled o takes the following form:

	<epix:point id='o'/>
      

Using the same identifier as the logical Euclidean point in the example from the 'logical types' section means that the Euclidean point o will be presented as a geometric point in the model. If I wanted to, I could present the Euclidean point using a segment by using the following declaration, potentially violating logical constraints within the construction).

	<epix:segment id='o'/>
      

Now lets say that I want to represent the fluid surface called abcd. I could represent this fluid surface as a epix:circle, however lets present it as an epix:arc. The semantics of the id and ref attributes are the same as in the logical language, only here they work with identifiers for instances of presentational types.

	<diapre:value>
	  <epix:arc id='abcd'>
	    <epix:circle ref='ul_abcd'>
	    <epix:point ref='d'>
	    <epix:point ref='a'>
	  </epix:arc>
	</diapre:value>
      

One very important presentational type that must be included in every presentational model is the notion of a view. Presentational primitives are declared in a cartesian space called the world. The view type of a presentational model specifies how to 'look into' that world and come out with an image. More generally, the view specifies how to map the world into a format for a user to process and does not necessarily have to be visual in theory.

In practice, the current presentational model implements this view type via the epix:pipeline type. The pipeline acts as an interface to a traditional graphics pipeline and encapsulates the transformation from world space to camera space, to the viewport. From the viewport, the primitives are projected onto a plane and then translated into image coordinates. More information on this primitive will be provided in the description of the backend of the DML compiler (dmlc).