anchor.diff:            (lemma (slot-value tk 'lemma))
             (upostag (slot-value tk 'upostag))
             (xpostag (slot-value tk 'xpostag))
  -          (feats (make-features (slot-value tk 'feats)))
  +          (feats (make-features-bnode (slot-value tk 'feats)))
             (head (make-token-id id (slot-value tk 'head)))
             (deprel (slot-value tk 'deprel))
             (deps (slot-value tk 'deps))
  -          (misc (slot-value tk 'misc)))
  +          (misc (make-features-bnode (slot-value tk 'misc) t)))
         (format stream "conll:~a a conll:Token .~%" tid)
         (format stream "conll:~a conll:sentence conll:~a .~%" tid id)
         (format stream "conll:~a conll:form ~a .~%" tid (make-literal form))
         (format stream "conll:~a conll:lemma ~a .~%" tid (make-literal lemma))
         (format stream "conll:~a conll:upos ~a .~%" tid (make-upos upostag))
  +      (format stream "~a a conll:UPostag .~%" (make-upos upostag))
  +      (format stream "~a rdfs:label ~a .~%" (make-upos upostag) (make-literal upostag))
   
         ;; we append -raw to these as we don't have a good way of
         ;; converting them to "proper" RDF
  
positive.code:   (format nil "conll:~a" (string-capitalize upos)))
  
  (defun make-dep (dep)
    (format nil "conll:~a" dep))
  
  (defun make-metadata (metadata)
    (format nil "~{ ~a ~}"
            (mapcar (lambda (m)
                      (format nil "[ conll:metadata-key ~a ; conll:metadata-value ~a ]" (make-literal (car m)) (make-literal (cdr m)))) metadata)))
  
  (defun make-features (features)
    (unless (unspecified-field? features)
      (format nil "~{ ~a~^;~}" 
              (mapcar (lambda (f)
                        (destructuring-bind (name value) (split-sequence #\= f)
                          (format nil "conll:~a conll:~a" (string-downcase name) value))) 
                      (split-sequence #\| features :remove-empty-subseqs t)))))
  
  (defun convert-sentence-to-turtle (stream conll text id)
    (format stream "conll:~a a conll:Sentence .~%" id)
    (format stream "conll:~a rdfs:label ~a .~%" id (make-literal text))
    (format stream "conll:~a conll:tokens (~{~a~^ ~}) .~%" id 
  
negative.code:        (format stream "conll:~a conll:xpos-raw ~a .~%" tid (make-literal xpostag)))
        (unless (unspecified-field? deps)
         (format stream "conll:~a conll:deps-raw ~a .~%" tid (make-literal deps)))
  
        (when misc
         (format stream "conll:~a conll:misc [ ~a ] .~%" tid misc))
  
        (when feats
          (format stream "~a" (make-features (slot-value tk 'feats)))
          (format stream "conll:~a conll:features [ ~a ] .~%" tid feats))
        (if (string-equal "root" deprel)
            (format stream "conll:~a conll:root conll:~a .~%" id tid)
            (progn 
              (format stream "~a a conll:DepRel .~%" (make-dep deprel))
              (format stream "~a rdfs:label ~a .~%" (make-dep deprel) (make-literal deprel))
              (format stream "conll:~a ~a conll:~a .~%" tid (make-dep deprel) head)
              (format stream "conll:~a ~a conll:~a .~%" tid (make-dep deprel) head))))))
  
  (defun convert-conll (stream conlls text-fn id-fn)
    "Converts the collection of sentences (as generated by READ-CONLLU)
  