anchor.diff:      Mixins = [ occi_cid:to_binary(Cid) || Cid <- sets:to_list(occi_link:get_mixins(Link))],
       Src = occi_uri:to_binary(occi_link:get_source(Link)),
       Target = occi_uri:to_binary(occi_link:get_target(Link)),
  -    Attrs = [ { occi_attribute:get_id(A), occi_attribute:get_value(A)} 
  +    Attrs = [ render_attribute(A)
                 || A <- occi_link:get_attributes(Link) ],
       Owner = iolist_to_binary(io_lib:format("~p", [occi_node:owner(Node)])),
       case dbus_proxy:call(Backend, ?IFACE_BACKEND, <<"SaveLink">>, 
  
positive.code: update(#state{proxy=Backend}=State, #occi_node{data=Entity}=Node) ->
      ?info("[~p] update(~p)~n", [?MODULE, Node]),
      Id = occi_node:id(Node),
      Attrs = [ { occi_attribute:get_id(A), occi_attribute:get_value(A)} 
                || A <- 
                       case Entity of
                           #occi_resource{} -> occi_resource:get_attributes(Entity);
  
negative.code:             {error, Err}
      end.
  
  
  render_attribute(A) ->
      Key = case occi_attribute:id(A) of
                K when is_atom(K) -> atom_to_binary(K, utf8);
                K -> K
            end,
      { Key, occi_attribute:value(A)}.
  
  parse_attributes(Attrs) ->
      parse_attributes(Attrs, []).
  
  parse_attributes([], Acc) ->
      lists:reverse(Acc);
  parse_attributes([ {Key, #dbus_variant{value=Value} } | Tail ], Acc) ->
      parse_attributes(Tail, [ {?attr_to_atom(Key), Value} | Acc]).
  