Hi Zuotian,
Surf is not intended to be a generic RDF management framework, it's
main purpose is to bridge the gap between the object-oriented paradigm
and that of RDF. The short answer to your scenario is no. Let me
detail: when an instance of a class is created it will always have a
triple of type <instance_subject, rdf:type, MyClassType> associated,
that triple will go into the current context when saved. As with most
things in python, you can "hack" a solution for your problem but it
won't be pretty. You can either remove the rdf:type triple from the
store after you save your instances or re-implement the graph() method
of your particular resource either for all instances (via subclassing)
or a specific instance by replacing the method dynamically
(person1.graph = my_graph_method). Inside this method you should
remove that triple before you return the graph. This is however a hack
and I would advise you not to do it as it can introduce hard to spot
bugs, potentially breaking down Surf. Hope this clarifies your
question,
Cheers,
Cosmin