So, here's how I'd do this. Introduce a property linking a protein
to something (which might be anything from a piece of text to a
protein) called sameProteinAs. Its reflexive and transitive but
might not be symmetric (though it probably is when the value is
itself a protein). It is NOT substitutive. It means, roughly, that
its value either is, or has as its main topic, the same protein as
the argument. It is a mixture of sameAs restricted to proteins and
seeAlso restricted to cases where the topic is a single protein.
The "something" to which you link could even just be a blank node,
Basically, if I understand you correctly, it's just a hypothetical
tertium quid, that you might later abandon or declare to be devoid
of any useful meaning. Or perhaps better, it's a collection that
collects things that somebody thought were "similar" to each other.
So if it's a class or set, it's a set whose intension is defined by
some human opinion, not a class that makes any claim on being like a
natural kind.
Uh-oh. Rereading your proposal, I see I misinterpreted it. Apologize.
Would this be like a property defined by a rule? e.g.
If (subject type protein) and (object type protein)
then sameAs
else seeAlso.
or maybe
if (type(subject) equivalentClass type(object))
then sameAs
else seeAlso.