<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -166,7 +166,6 @@
   (:documentation &quot;empirical characteristics for a continuous
     statistical variable&quot;))
 
-
 (defmethod print-object ((object statistical-variable) stream)
   &quot;Need to work through how to print various objects.  Statvars don't
 necessarily have data yet!&quot;
@@ -178,7 +177,54 @@ necessarily have data yet!&quot;
 necessarily have data yet!  Here, we should print out the stat-var
 information, (pass to superclass) and then print out factor levels if
 short enough (exact class).  Useful to review methods-mixing for
-this.&quot;
+this, first bit should be indentical to stat-var.&quot;
   (print-unreadable-object (object stream :type t)
     (format stream &quot;nobs=~d&quot; (nobs object))
-    (format stream &quot;levels=~A&quot; (factor-levels object))))
\ No newline at end of file
+    (format stream &quot;levels=~A&quot; (factor-levels object))))
+
+;;; Observations
+;;;
+
+(defclass statistical-observation ()
+  ((measurement-types :initform nil
+		      :initarg measurement-types
+		      :accessor measurement-types
+		      :type sequence
+		      :documentation &quot;sequence of types corresponding
+  to the classes of entries which have been measured/recorded to form
+  the observation.&quot;)
+   (record :initform nil
+	   :initarg record
+	   :accessor record
+	   :type sequence
+	   :documentation &quot;the sequence of data which is a realization
+  of the corresponding measurement type&quot;))
+  (:documentation &quot;denotes a vector of measurements, not necesarily
+  simple (i.e. entries could be scalar, array, network) which can be
+  assumed to be independent or at least conditionally independent
+  given measurements external to the collected dataset.  Failure of
+  this condition implies a single observation, not multiple
+  observations.&quot;))
+
+;;; At this point, from a dataframe, which is just a simple holding
+;;; structure, we should be able to extract variables and
+;;; observations, which ought to be coherent, atomic, complex objects.
+;;; (to create a wonderful contradiction: consider the time-series
+;;; from the Dow Jones Industrial Average -- in this case, we need
+;;; would have a dataset consisting of 1 observation and 1 variable --
+;;; which would be the singular time series (at whatever temporal
+;;; resolution was desired).
+
+;;; For now, we need to have a means of extracting components of the
+;;; dataframe into corresponding variables and observations as
+;;; needed.   We don't build up the dataframe directly from variables
+;;; (yet -- this could change as we consider the workflow/API
+;;; approach) but rather we tear-down the dataframe through
+;;; consideration of variables and observations.
+
+;;; this naturally means that this is metadata on top of the
+;;; dataframe, rather than building the dataframe on top of metadata.
+;;; For pragmatic reasons, it isn't always clear that the dataframe
+;;; MUST correspond to the particular instance of the practical
+;;; statistical philosophy espoused in this system.  But at some more
+;;; mature point, it should be.</diff>
      <filename>src/data/data.lisp</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>f4ca2a6ae52e1625938298f8ec762e88576b03cf</id>
    </parent>
  </parents>
  <author>
    <name>AJ Rossini</name>
    <email>blindglobe@gmail.com</email>
  </author>
  <url>http://github.com/blindglobe/common-lisp-stat/commit/b0b23576b937cf4d29146e6cb5ee11f078ddd6b9</url>
  <id>b0b23576b937cf4d29146e6cb5ee11f078ddd6b9</id>
  <committed-date>2009-10-29T00:16:16-07:00</committed-date>
  <authored-date>2009-10-29T00:16:16-07:00</authored-date>
  <message>getting dataframe philosophy right, finally!  added initial data structure for observations, and comments/documentation for how it should all fit together.

Signed-off-by: AJ Rossini &lt;blindglobe@gmail.com&gt;</message>
  <tree>45fbc1ea0c08d378bb756bbbcf11299beffa6769</tree>
  <committer>
    <name>AJ Rossini</name>
    <email>blindglobe@gmail.com</email>
  </committer>
</commit>
