- (setq interventionsl2 '())
- (setq interventionsl1 '())
- (setq xml (xml-parse-region (point-min) (point-max)))
- (setq results (car xml))
- (setq episodes (xml-get-children results 'episode))
- (setq asunitsl2 0.0000)
- (setq asunitsl1 0.0000)
- (setq shifts)
- (setq clausesl1 0.0000)
- (setq errorsl1 0.0000)
- (setq clausesl2 0.0000)
- (setq errorsl2 0.0000)
- (dolist (episode episodes)
- (setq numbernode (xml-get-children episode 'number))
- (setq number (nth 2 (car numbernode)))
- (when (equal episodenumber number)
- (setq durationnode (xml-get-children episode 'duration))
- (setq duration (nth 2 (car durationnode)))
- (setq transcription (xml-get-children episode 'transcription))
- (dolist (turn transcription)
- (setq interventionnode (xml-get-children turn (intern personid)))
- (dolist (intervention interventionnode)
- (setq l2node (xml-get-children intervention 'l2))
- (dolist (l2turn l2node)
- (setq l2 (nth 2 l2turn))
- (setq clausesl2node (nth 1 l2turn))
- (setq clausesl2nodeinc (cdr (car clausesl2node)))
- (when (not (equal clausesl2node nil))
- (setq clausesl2 (+ clausesl2
- (string-to-number clausesl2nodeinc))))
- (when (not (equal l2 nil))
- (add-to-list 'interventionsl2 l2)
- (setq asunitsl2 (1+ asunitsl2))))
- (setq l1node (xml-get-children intervention 'l1))
- (dolist (l1turn l1node)
- (setq l1 (nth 2 l1turn))
- (setq clausesl1node (nth 1 l1turn))
- (setq clausesl1nodeinc (cdr (car clausesl1node)))
- (when (not (equal clausesl1node nil))
- (setq clausesl1 (+ clausesl1
- (string-to-number clausesl1nodeinc))))
- (when (not (equal l1 nil))
- (add-to-list 'interventionsl1 l1)
- (setq asunitsl1 (1+ asunitsl1))))))))
+ (let* ((interventionsl2 '())
+ (interventionsl1 '())
+ (xml (xml-parse-region (point-min) (point-max)))
+ (results (car xml))
+ (episodes (xml-get-children results 'episode))
+ (asunitsl2 0.0000)
+ (asunitsl1 0.0000)
+ ;; (shifts 0.0000);; TODO implement
+ (initiating 0.0000);; TODO implement
+ (responding 0.0000);; TODO implement
+ (control 0.0000);; TODO implement
+ (expressive 0.0000);; TODO implement
+ (interpersonal 0.0000);; TODO implement
+ (clausesl1 0.0000)
+ ;; (errorsl1 0.0000);; TODO implement
+ (clausesl2 0.0000)
+ (errorsl2 0.0000)
+ (duration nil)
+ (role nil)
+ (context nil)
+ (demand nil)
+ ;; (clausesmessage nil)
+ (number nil))
+
+ (dolist (episode episodes)
+ (let*((numbernode (xml-get-children episode 'number))
+ (tasknode (xml-get-children episode 'task)))
+
+ (setq number (nth 2 (car numbernode)))
+ (when (equal episodenumber number)
+ (let* ((durationnode (xml-get-children episode 'duration))
+ (transcription (xml-get-children episode 'transcription)))
+
+ (setq duration (nth 2 (car durationnode)))
+
+ (dolist (task tasknode)
+ (let* ((rolenode (xml-get-children task 'role))
+ (contextnode (xml-get-children task 'context))
+ (demandnode (xml-get-children task 'demand)))
+
+ (setq role (nth 2 (car rolenode)))
+ (setq context (nth 2 (car contextnode)))
+ (setq demand (nth 2 (car demandnode)))
+ ;; (with-current-buffer "Statistics Output"
+ ;; (insert (format "role: %s; context: %s; demand: %s\n" role context demand)))
+ ))
+
+ (dolist (turn transcription)
+ (let* ((interventionnode (xml-get-children turn
+ (intern personid))))
+
+ (dolist (intervention interventionnode)
+ (let* ((l2node (xml-get-children intervention 'l2))
+ (l1node (xml-get-children intervention 'l1)))
+
+ (dolist (l2turn l2node)
+ (let* ((l2 (nth 2 l2turn))
+ (attrs (nth 1 l2turn))
+ (clausesl2nodeinc (cdr (assq 'clauses attrs)))
+ (errorsl2inc (cdr (assq 'errors attrs)))
+ (function (cdr (assq 'function attrs))))
+
+ (when (string-equal function "initiating")
+ (setq initiating (+ initiating 1)))
+ (when (string-equal function "responding")
+ (setq responding (+ responding 1)))
+ (when (string-equal function "control")
+ (setq control (+ control 1)))
+ (when (string-equal function "expressive")
+ (setq expressive (+ expressive 1)))
+ (when (string-equal function "interpersonal")
+ (setq interpersonal (+ interpersonal 1)))
+ (when attrs
+ (setq clausesl2 (+ clausesl2 (string-to-number
+ clausesl2nodeinc)))
+ (setq errorsl2 (+ errorsl2 (string-to-number
+ errorsl2inc))))
+ (when l2
+ ;; (add-to-list 'interventionsl2 l2)
+ (cl-pushnew l2 interventionsl2 :test #'equal)
+ (setq asunitsl2 (1+ asunitsl2)))))
+ (dolist (l1turn l1node)
+ (let*((l1 (nth 2 l1turn))
+ (clausesl1node (nth 1 l1turn))
+ (clausesl1nodeinc (cdr (car clausesl1node))))
+
+ (when (not (equal clausesl1node nil))
+ (setq clausesl1 (+ clausesl1 (string-to-number
+ clausesl1nodeinc))))
+ (when l1
+ ;; (add-to-list 'interventionsl1 l1)
+ (cl-pushnew l1 interventionsl1 :test #'equal)
+ (setq asunitsl1 (1+ asunitsl1)))))))))))))