anchor.diff:    let main argv = 
       let parser = UnionArgParser.Create<Arguments>()
       let args = parser.Parse argv
  -
       let repo = repo (args.GetResult (<@ Path @>,defaultValue="."))
  +    use fout = new System.IO.StreamWriter (System.Console.OpenStandardOutput())
  +    use g = new VDS.RDF.Graph ()
  +    TTL.ns.add g
  + 
       repo
       |> commits (args.GetResult (<@ Since @>,defaultValue="HEAD"))
       |> Seq.pairwise
       |> Seq.map (Prov.Activity.fromCommit repo)
  -    |> Seq.map TTL.fromActivity
  -    |> Seq.map (TTL.ttl (System.IO.StreamWriter (System.Console.OpenStandardOutput())))
  -    |> Seq.iter (fun _ -> ()) 
  +    |> Seq.map (TTL.fromActivity g)
  +    |> Seq.last
  +    |> TTL.ttl fout
       
       0// return an integer exit code
   
  
positive.code:  
    type Uri =
      | Uri of string * string
      with static member commit r c = Uri ("commit:",short c r)
           static member identity (c:LibGit2Sharp.Commit) = Uri ("individual:",c.Author.Email)
           static member versionedcontent c = Uri ("versionedcontent:",c)
           static member individual (r,f:LibGit2Sharp.TreeEntryChanges) = Uri ("individual:",f.Path)
           override x.ToString () = match x with | Uri (p,s) -> sprintf "%s:%s" p s 
           
    type FileVersion = {
      Id : Uri
  
negative.code:     let prov = "http://www.w3.org/ns/prov#"
      let owl = "http://www.w3.org/2002/07/owl#"
      let bas = "http://nice.org.uk/ns/prov#"
  
      let add (g:IGraph) =
        g.BaseUri <- UriFactory.Create bas
        g.NamespaceMap.AddNamespace ("prov",UriFactory.Create prov)
        g.NamespaceMap.AddNamespace ("owl",UriFactory.Create owl)
        g.NamespaceMap.AddNamespace ("base",UriFactory.Create bas)
        
    let fromActivity  (g:IGraph) (act:Activity) =
     
      let literal s =
        g.CreateLiteralNode s :> INode
  
  