anchor.diff:      parse_query([{hassubject, [Id]}|Rest], Context, Result);
   parse_query([{hassubject, [Id]}|Rest], Context, Result) ->
       {A, Result1} = add_edge_join("object_id", Result),
  -    {Arg, Result2} = add_arg(Id, Result1),
  +    {Arg, Result2} = add_arg(m_rsc:rid(Id,Context), Result1),
       Result3 = add_where(A ++ ".subject_id = " ++ Arg, Result2),
       parse_query(Rest, Context, Result3);
   
  
positive.code:     {A, Result1} = add_edge_join(Alias, "object_id", Result),
      Result2 = case Id of
                    undefined -> Result1;
                    _ -> {Arg1, R} = add_arg(Id, Result1),
                         add_where(A ++ ".subject_id = " ++ Arg1, R)
                end,
      PredicateId = m_predicate:name_to_id_check(Predicate, Context),
  
negative.code:     {A, Result1} = add_edge_join(Alias, "subject_id", Result),
      Result2 = case Id of
                    undefined -> Result1;
                    _ -> {Arg1, R} = add_arg(m_rsc:rid(Id,Context), Result1),
                         add_where(A ++ ".object_id = " ++ Arg1, R)
                end,
      PredicateId = m_predicate:name_to_id_check(Predicate, Context),
  