anchor.diff:                  undefined ->
                       Acc;
                   TripleJson ->
  -                    JsonKey = hd(maps:keys(TripleJson)),
  -                    #{JsonKey := JsonValue} = TripleJson,
  -
  -                    case maps:get(JsonKey, Acc, undefined) of
  -                        undefined ->
  -                            maps:merge(Acc, TripleJson);
  -                        Value when is_list(Value) ->
  -                            Acc#{JsonKey => [JsonValue | Value]};
  -                        Value ->
  -                            Acc#{JsonKey => [JsonValue | [Value]]}
  -                    end
  +                    merge_values(TripleJson, Acc)
               end
           end,
           #{<<"@id">> => Id},
  
positive.code:     %% Ignore triples that belong to other subjects (they are found through the
      %% recursive call in the clause above).
      undefined.
  
negative.code:     TripleMap = lists:foldl(
          fun(#triple{} = Triple, Map) ->
              %% Replace id in RDF resource with that of the current object
              merge_values(triple_to_map(Triple, RdfResource#rdf_resource{id = Object}), Map)
          end,
          #{<<"@id">> => Object},
          m_rdf:filter_subject(RdfResource, Object)
  