-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Currently the GraphQL types are basically a verbatim implementation of the InterMine types. This means certain types contain fields that are mutually exclusive. For example, the Trait type can have a value for its qtlStudy field or its gwas field, but not both. The canonical way to handle this in GraphQL is to use a single field with a union or interface as its type. This will make the semantics of our GraphQL API more obvious and simplify client code that uses these types while enabling canonical functionality, e.g. filtering queries/results by type.
<edits>
- Commit 24e8445 adds the necessary resolver support
- Commit 103f5c8 adds support for
format=jsonobjectsqueries, which is required to recover model class information from query responses
</edits>
The following types should be updated to use this approach:
- Location:
chromsome/supercontig->locatedOnCommits e65b104 and bcc8c50 - Location:
featureCommit 4c41818 - Trait:
qtlStudy/gwas->study; removeqltsandgwasResultssince they can be accessed viastudy - DataSet:
bioEntities; already generalized to type[BioEntity!]!but not implemented correctly - SequenceFeature:
-
childFeaturesandoverlappingFeatures; both fields are already generalized to type[SequenceFeature!]!but are not implemented correctly -
chromsomeLocation/supercontigLocation->location -
chromsomeandsupercontigcan be removed because they will be accessible vialocation.locatedOn
-
- ExpressionValue:
feature; already generalized to typeSequenceFeaturebut not implemented correctly - PanGeneSets:
transcripts; already generalized to type[Transcript!]!but not implemented correctly
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request