diff --git a/shapes/WIP_standard_annot_ShEx b/shapes/WIP_standard_annot_ShEx
new file mode 100644
index 0000000..dcfcfed
--- /dev/null
+++ b/shapes/WIP_standard_annot_ShEx
@@ -0,0 +1,541 @@
+BASE
+PREFIX obo:
+PREFIX rdf:
+PREFIX rdfs:
+PREFIX owl:
+PREFIX xsd:
+PREFIX skos:
+PREFIX prov:
+#metadata
+PREFIX bl:
+PREFIX contributor:
+PREFIX provided_by:
+PREFIX modification_date:
+PREFIX creation_date:
+PREFIX import_date:
+PREFIX xref:
+PREFIX exact_match:
+PREFIX source:
+PREFIX evidence:
+PREFIX with:
+PREFIX x:
+PREFIX y:
+#model level annotations
+PREFIX ontology:
+PREFIX taxon:
+PREFIX modelstate:
+PREFIX templatestate:
+PREFIX oboinowlid:
+###contributor, date, providedBy reused
+PREFIX title:
+PREFIX imports:
+# always limit imports to? ;
+PREFIX in_taxon:
+#semantic: classes
+PREFIX GoInformationBiomacromolecule:
+PREFIX GoProtein:
+PREFIX GoProteinContainingComplex:
+PREFIX GoCellularComponent:
+PREFIX GoBiologicalProcess:
+PREFIX GoAnatomicalStructureDevelopment:
+PREFIX GoAnatomicalStructureFormationInvolvedInMorphogenesis:
+PREFIX GoAnatomicalStructureMorphogenesis:
+PREFIX GoCellDifferentiation:
+PREFIX GoCellDivision:
+PREFIX GoCellFateCommitment:
+PREFIX GoCellFateDetermination:
+PREFIX GoCellFateSpecification:
+PREFIX GoCellularComponentAssembly:
+PREFIX GoCellularComponentDisassembly:
+PREFIX GoCellularComponentOrganization:
+PREFIX GoDevelopmentalMaturation:
+PREFIX GoGrowth:
+PREFIX GoLocalization:
+PREFIX GoLocomotion:
+PREFIX GoProteinContainingComplexRemodeling:
+PREFIX GoPatternSpecificationProcess:
+PREFIX GoMetabolicProcess:
+PREFIX GoTransport:
+PREFIX GoMolecularFunction:
+PREFIX GoTransporterActivity:
+PREFIX GoChemicalEntity:
+PREFIX GoEvidence:
+PREFIX GoAnatomicalEntity:
+PREFIX GoCell:
+PREFIX GoOrganism:
+PREFIX GoBiologicalPhase:
+PREFIX GoLifeCycleStage:
+PREFIX GoPlantStructureDevelopmentStage:
+#semantic: relations
+PREFIX acts_upstream_of:
+PREFIX acts_upstream_of_negative_effect:
+PREFIX acts_upstream_of_positive_effect:
+PREFIX acts_upstream_of_or_within:
+PREFIX acts_upstream_of_or_within_negative_effect:
+PREFIX acts_upstream_of_or_within_positive_effect:
+PREFIX involved_in:
+PREFIX part_of:
+PREFIX has_part:
+PREFIX occurs_in:
+PREFIX adjacent_to:
+PREFIX overlaps:
+PREFIX existence_overlaps:
+PREFIX existence_starts_and_ends_during:
+PREFIX enabled_by:
+PREFIX contributes_to:
+PREFIX has_input:
+PREFIX has_output:
+PREFIX has_primary_input:
+PREFIX has_primary_output:
+PREFIX has_target_end_location:
+PREFIX has_target_start_location:
+PREFIX located_in:
+PREFIX is_active_in:
+PREFIX happens_during:
+PREFIX acts_on_population_of:
+PREFIX results_in_development_of:
+PREFIX results_in_formation_of:
+PREFIX results_in_morphogenesis_of:
+PREFIX results_in_acquisition_of_features_of:
+PREFIX results_in_commitment_to:
+PREFIX results_in_determination_of:
+PREFIX results_in_specification_of:
+PREFIX results_in_assembly_of:
+PREFIX results_in_disassembly_of:
+PREFIX results_in_organization_of:
+PREFIX results_in_maturation_of:
+PREFIX results_in_growth_of:
+PREFIX results_in_movement_of:
+PREFIX results_in_remodeling_of:
+
+ {
+ a [owl:Ontology] + ;
+ contributor: xsd:string +; #TODO would be better as an IRI
+ modification_date: xsd:string {1}; #Use ISO 8601 as a standard.
+ creation_date: xsd:string {0,1}; #Use ISO 8601 as a standard.
+ import_date: xsd:string {0,1}; #Use ISO 8601 as a standard.
+ provided_by: xsd:string +; #TODO would be better as an IRI
+ rdfs:comment xsd:string *;
+ modelstate: xsd:string {1}; #TODO would be better as an IRI
+ templatestate: xsd:string {0,1}; #TODO should be modeled as xsd:boolean but currently a string. No value means false.
+ in_taxon: . *;
+ title: xsd:string {1};
+ imports: . *;
+ oboinowlid: . *; #TODO not sure if we really want this?
+ owl:versionIRI . *;
+ prov:wasDerivedFrom IRI {0,1}; # for model copy
+}
+
+ {
+ contributor: xsd:string +; #TODO would be better as an IRI
+ modification_date: xsd:string {1}; #Use ISO 8601 as a standard.
+ creation_date: xsd:string {0,1}; #Use ISO 8601 as a standard.
+ import_date: xsd:string {0,1}; #Use ISO 8601 as a standard.
+ provided_by: xsd:string *; #TODO would be better as an IRI
+ rdfs:comment xsd:string *;
+ skos:note xsd:string *;
+}
+
+ IRI @ AND EXTRA a {
+ a [owl:NamedIndividual] * // rdfs:comment "Every entity we care about is a named individual";
+ xref: . * // rdfs:comment "mappings for the entity. Value is typically a CURIE string. Currently this is only used for Reactome-derived models." ;
+ rdfs:label . {0,1} // rdfs:comment "the name of the entity. Currently this is only used for Reactome-derived models." ;
+ exact_match: . *;
+ x: . {0,1} // rdfs:comment "X coordinate for node. This is used for caching layouts in the Noctua Graph Editor.";
+ y: . {0,1} // rdfs:comment "Y coordinate for node. This is used for caching layouts in the Noctua Graph Editor.";
+ skos:narrower . * // rdfs:comment "This entity (e.g. a node representing a pathway) represents a narrower (in any sense) concept then the target node. ";
+ skos:broader . * // rdfs:comment "This entity (e.g. a node representing a pathway) represents a broader (in any sense) concept then the target node. ";
+} // rdfs:comment "Default allowable metadata for GO-CAM entities"
+
+ {
+ rdf:type [ owl:Class ] {1};
+}
+
+ IRI @ AND EXTRA rdfs:subClassOf {
+ rdfs:subClassOf [ GoBiologicalProcess: ] ;
+}
+
+ BNode @ AND {
+ owl:complementOf @
+}
+
+ IRI @ AND EXTRA rdfs:subClassOf {
+ rdfs:subClassOf [ GoOrganism: ] ;
+}
+
+ @ AND EXTRA a {
+ a @ ;
+} // rdfs:comment "A member of a class of organisms defined in the NCBI taxonomy"
+
+ @ AND EXTRA a {
+ a ( @ OR @ ) {1};
+ part_of: @ *;
+ has_input: ( @ OR @ OR @ OR @ ) *;
+ has_output: ( @ OR @ OR @ ) *;
+ occurs_in: @ {0,1};
+ has_target_end_location: @ {0,1};
+ has_target_start_location: @ {0,1};
+ acts_on_population_of: ( @ OR @ ) *;
+ happens_during: ( @ OR @ OR @ ) *;
+} // rdfs:comment "A biological process"
+
+ IRI @ AND EXTRA rdfs:subClassOf {
+ rdfs:subClassOf [ GoAnatomicalStructureDevelopment: ] ;
+}
+
+ @ AND EXTRA a {
+ a @ {1};
+ results_in_development_of: @ {0,1};
+} // rdfs:comment "an anatomical structure development class GO biological process or child"
+
+ IRI @ AND EXTRA rdfs:subClassOf {
+ rdfs:subClassOf [ GoAnatomicalStructureFormationInvolvedInMorphogenesis: ] ;
+}
+
+ @ AND EXTRA a {
+ a @ {1};
+ results_in_formation_of: @ {0,1};
+} // rdfs:comment "an anatomical structure formation involved in morphogenesis class GO biological process or child"
+
+ IRI @ AND EXTRA rdfs:subClassOf {
+ rdfs:subClassOf [ GoAnatomicalStructureMorphogenesis: ] ;
+}
+
+ @ AND EXTRA a {
+ a @ {1};
+ results_in_morphogenesis_of: @ {0,1};
+} // rdfs:comment "an anatomical structure morphogenesis class GO biological process or child"
+
+ IRI @ AND EXTRA rdfs:subClassOf {
+ rdfs:subClassOf [ GoCellDifferentiation: ] ;
+}
+
+ @ AND EXTRA a {
+ a @ {1};
+ results_in_acquisition_of_features_of: @ {0,1};
+} // rdfs:comment "a cell differentiation GO biological process or child"
+
+ IRI @ AND EXTRA rdfs:subClassOf {
+ rdfs:subClassOf [ GoCellDivision: ] ;
+}
+
+ @ AND EXTRA a {
+ a @ {1};
+ occurs_in: @ {0,1};
+} // rdfs:comment "a cell division GO biological process or child"
+
+ IRI @ AND EXTRA rdfs:subClassOf {
+ rdfs:subClassOf [ GoCellFateCommitment: ] ;
+}
+
+ @ AND EXTRA a {
+ a @ {1};
+ results_in_commitment_to: @ {0,1};
+} // rdfs:comment "a cell fate commitment GO biological process or child"
+
+ IRI @ AND EXTRA rdfs:subClassOf {
+ rdfs:subClassOf [ GoCellFateDetermination: ] ;
+}
+
+ @ AND EXTRA a {
+ a @ {1};
+ results_in_determination_of: @ {0,1};
+} // rdfs:comment "a cell fate determination GO biological process or child"
+
+ IRI @ AND EXTRA rdfs:subClassOf {
+ rdfs:subClassOf [ GoCellFateSpecification: ] ;
+}
+
+ @ AND EXTRA a {
+ a @ {1};
+ results_in_specification_of: @ {0,1};
+} // rdfs:comment "a cell fate specification GO biological process or child"
+
+ IRI @ AND EXTRA rdfs:subClassOf {
+ rdfs:subClassOf [ GoCellularComponentAssembly: ] ;
+}
+
+ @ AND EXTRA a {
+ a @ {1};
+ results_in_assembly_of: @ {0,1};
+} // rdfs:comment "a cellular component assembly GO biological process or child"
+
+ IRI @ AND EXTRA rdfs:subClassOf {
+ rdfs:subClassOf [ GoCellularComponentDisassembly: ] ;
+}
+
+ @ AND EXTRA a {
+ a @ {1};
+ results_in_disassembly_of: @ {0,1};
+} // rdfs:comment "a cellular component disassembly GO biological process or child"
+
+ IRI @ AND EXTRA rdfs:subClassOf {
+ rdfs:subClassOf [ GoCellularComponentOrganization: ] ;
+}
+
+ @ AND EXTRA a {
+ a @ {1};
+ results_in_organization_of: @ {0,1};
+} // rdfs:comment "a cellular component organization GO biological process or child"
+
+ IRI @ AND EXTRA rdfs:subClassOf {
+ rdfs:subClassOf [ GoDevelopmentalMaturation: ] ;
+}
+
+ @ AND EXTRA a {
+ a @ {1};
+ results_in_maturation_of: @ {0,1};
+} // rdfs:comment "a developmental maturation GO biological process or child"
+
+ IRI @ AND EXTRA rdfs:subClassOf {
+ rdfs:subClassOf [ GoGrowth: ] ;
+}
+
+ @ AND EXTRA a {
+ a @ {1};
+ results_in_growth_of: @ {0,1};
+} // rdfs:comment "a growth GO biological process or child"
+
+ IRI @ AND EXTRA rdfs:subClassOf {
+ rdfs:subClassOf [ GoLocalization: ] ;
+}
+
+ @ AND EXTRA a {
+ a @ {1};
+ has_primary_input: ( @ OR @ OR @ OR @ ) *;
+ has_target_end_location: @ {0,1};
+ has_target_start_location: @ {0,1};
+} // rdfs:comment "a localization GO biological process or child"
+
+ IRI @ AND EXTRA rdfs:subClassOf {
+ rdfs:subClassOf [ GoLocomotion: ] ;
+}
+
+ @ AND EXTRA a {
+ a @ {1};
+ results_in_movement_of: @ {0,1};
+} // rdfs:comment "a locomotion GO biological process or child"
+
+ IRI @ AND EXTRA rdfs:subClassOf {
+ rdfs:subClassOf [ GoMetabolicProcess: ] ;
+}
+
+ @ AND EXTRA a {
+ a @ {1};
+ has_primary_input: @ *;
+ has_primary_output: @ *;
+} // rdfs:comment "a metabolic process GO biological process or child"
+
+ IRI @ AND EXTRA rdfs:subClassOf {
+ rdfs:subClassOf [ GoProteinContainingComplexRemodeling: ] ;
+}
+
+ @ AND EXTRA a {
+ a @ {1};
+ results_in_remodeling_of: @ {0,1};
+} // rdfs:comment "a protein containing complex remodeling GO biological process or child"
+
+ IRI @ AND EXTRA rdfs:subClassOf {
+ rdfs:subClassOf [ GoPatternSpecificationProcess: ] ;
+}
+
+ @ AND EXTRA a {
+ a @ {1};
+ results_in_specification_of: @ {0,1};
+} // rdfs:comment "a pattern specification process GO biological process or child"
+
+ IRI @ AND EXTRA rdfs:subClassOf {
+ rdfs:subClassOf [ GoTransport: ] ;
+}
+
+ @ AND EXTRA a {
+ a @ | | | | |