From 22fe43ab6c264d4963e40ba3ded96db199257e2f Mon Sep 17 00:00:00 2001 From: vanaukenk Date: Tue, 19 Mar 2024 12:20:45 -0400 Subject: [PATCH] Create WIP_standard_annot_ShEx --- shapes/WIP_standard_annot_ShEx | 541 +++++++++++++++++++++++++++++++++ 1 file changed, 541 insertions(+) create mode 100644 shapes/WIP_standard_annot_ShEx 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 @ {1}; + has_primary_input: ( @ OR @ OR @ OR @ ) *; + has_primary_output: ( @ OR @ OR @ OR @ ) *; +} // rdfs:comment "a transport GO biological process or child" + + IRI @ AND EXTRA rdfs:subClassOf { + rdfs:subClassOf [ GoMolecularFunction: ] ; +} + + BNode @ AND { + owl:complementOf @ +} + + @ AND EXTRA a { + a ( @ OR @ ) {1}; + part_of: @ *; + has_part: @ *; + occurs_in: @ {0,1}; + has_output: ( @ OR @ ) *; + has_input: ( @ OR @ ) *; + has_primary_input: ( @ OR @ ) *; + has_primary_output: ( @ OR @ ) *; + happens_during: ( @ OR @ OR @ ) *; +} // rdfs:comment "A molecular function" + + IRI @ AND EXTRA rdfs:subClassOf { + rdfs:subClassOf [ GoTransporterActivity: ]; +} + + @ AND EXTRA a { + a @ {1}; + has_primary_input: ( @ OR @ ) *; + has_primary_output: ( @ OR @ ) *; + has_target_end_location: @ *; + has_target_start_location: @ *; +} // rdfs:comment "a transporter activity GO molecular function or child" + + IRI @ AND EXTRA rdfs:subClassOf { + rdfs:subClassOf [ GoBiologicalPhase: ]; +} + + @ AND EXTRA a { + a @; +} // rdfs:comment "a biological phase" + + IRI @ AND EXTRA rdfs:subClassOf { + rdfs:subClassOf [ GoLifeCycleStage: ]; +} + + @ AND EXTRA a { + a @; +} // rdfs:comment "a lifecycle stage" + + IRI @ AND EXTRA rdfs:subClassOf { + rdfs:subClassOf [ GoPlantStructureDevelopmentStage: ]; +} + + @ AND EXTRA a { + a @; +} // rdfs:comment "a plant structure developmental stage" + + IRI @ AND EXTRA rdfs:subClassOf { + rdfs:subClassOf [ GoAnatomicalEntity: ]; +} + + BNode @ AND { + owl:complementOf @ +} + + @ AND EXTRA a { + a ( @ OR @ ); + part_of: @ {0,1}; +} // rdfs:comment "an anatomical entity" + + IRI @ AND EXTRA rdfs:subClassOf { + rdfs:subClassOf [ GoCell: ]; +} + + @ AND EXTRA a { + a @ {1}; + part_of: @ {0,1}; +} // rdfs:comment "a cell or child" + + IRI @ AND EXTRA rdfs:subClassOf { + rdfs:subClassOf [ GoCellularComponent: ]; +} + + BNode @ AND { + owl:complementOf @ +} + + IRI @ AND EXTRA a { + a [ GoCellularComponent: ]; +} + +# @ AND EXTRA a { # If we want to intersect with anatomical entity, then GO cellular_component needs to subclass anatomical entity in go-lego + @ AND EXTRA a { + a ( @ OR @ ) {1}; + part_of: @ {0,1}; + adjacent_to: @ *; + overlaps: @ *; + existence_overlaps: ( @ OR @ OR @ ) *; + existence_starts_and_ends_during: ( @ OR @ OR @ ) *; +} // rdfs:comment "a cellular component" + + @ AND EXTRA a { + a @; + enables: ( @ OR @ ) {0,1}; + contributes_to: @ {0,1}; + located_in: ( @ OR @ ) {0,1}; + is_active_in: ( @ OR @ OR @VirionComponent> ) {0,1}; + part_of: @ *; + has_part: ( @ OR @ ) *; + existence_overlaps: ( @ OR @ OR @ ) *; + existence_starts_and_ends_during: ( @ OR @ OR @ ) *; + involved_in: ( @ OR @ ) {0,1}; + acts_upstream_of_negative_effect: @ {0,1}; + acts_upstream_of_positive_effect: @ {0,1}; + acts_upstream_of_or_within_negative_effect: @ {0,1}; + acts_upstream_of_or_within_positive_effect: @ {0,1}; +} // rdfs:comment "a protein complex" + + IRI @ AND EXTRA rdfs:subClassOf { + rdfs:subClassOf [ GoProteinContainingComplex: ]; +} + + IRI @ AND EXTRA rdfs:subClassOf { + rdfs:subClassOf [ GoProtein: ]; +} + @ AND EXTRA a { + a @ ; + enables: ( @ OR @ ) {0,1}; + contributes_to: @ {0,1}; + located_in: ( @ OR @ ) {0,1}; + is_active_in: ( @ OR @ OR @ ) {0,1}; + part_of: @ {0,1}; + involved_in: ( @ OR @ ) {0,1}; + acts_upstream_of_negative_effect: @ {0,1}; + acts_upstream_of_positive_effect: @ {0,1}; + acts_upstream_of_or_within_negative_effect: @ {0,1}; + acts_upstream_of_or_within_positive_effect: @ {0,1}; +}// rdfs:comment "a protein" + + IRI @ AND EXTRA rdfs:subClassOf { + rdfs:subClassOf [ GoInformationBiomacromolecule: ]; +} + @ AND EXTRA a { + a @ +; + enables: ( @ OR @ ) {0,1}; + contributes_to: @ {0,1}; + located_in: ( @ OR @ ) {0,1}; + is_active_in: ( @ OR @ OR @ ) {0,1}; + part_of: @ {0,1}; + involved_in: ( @ OR @ ) {0,1}; + acts_upstream_of_negative_effect: @ {0,1}; + acts_upstream_of_positive_effect: @ {0,1}; + acts_upstream_of_or_within_negative_effect: @ {0,1}; + acts_upstream_of_or_within_positive_effect: @ {0,1}; +}// rdfs:comment "an information biomacromolecule - e.g. a protein or RNA product" + + IRI @ AND EXTRA rdfs:subClassOf { + rdfs:subClassOf [ GoEvidence: ] ; +} + + @ AND EXTRA a { + a @ {1}; + source: xsd:string {1}; + with: xsd:string {0,1} +}// rdfs:comment "A kind of evidence" + + BNode @ AND { + a [ owl:Axiom ] ; + owl:annotatedSource @ ; + owl:annotatedProperty IRI ; + owl:annotatedTarget @ ; + evidence: @ * +} + +# { +# bl:category . {0} +# // rdfs:comment "has no type tag inside" ; +#} // rdfs:comment "has no type tag full rule" + +# { +# bl:category . {1} +#} // rdfs:comment "has exactly one type tag" + +# { +# bl:category . {2,} +#} // rdfs:comment "has multiple type tags"