In order to solve the problem of precedence, would the nesting of qualifiers help? We might need several layers of qualifications. One example is conflicting annotations with hasPart (it's more important to know it's a complex than that it's a version of a protein) and isVersionOf (e.g. hasPart cdk2 and isVersionOf cdk2 for the MPF complex). One answer might be using rdf:alt, or perhaps collections rather than containers. How can we describe boolean operators? Does this cover AND/OR/NOT? (NOT 1: This protein is not P12345, or this protein is not phosphorylated (is this a useful example?); NOT 2: a value was tested for, and not found. Should we include this information? Someone could choose to ignore the annotation, so should annotation be used to negate a value?)
This problem eventually resolved into two separate problems:
- Do different types of qualifiers innately have precedence over other types? Does a relationship of hasPart have more importance than hasVersion?
- How should we represent boolean relationships between annotations, such as AND, OR or NOT?