@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix rdf4j: <http://rdf4j.org/schema/rdf4j#> .
@prefix sesame: <http://www.openrdf.org/schema/sesame#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix fn: <http://www.w3.org/2005/xpath-functions#> .

<http://purl.uniprot.org/unirules/MF_02130#construct> a <http://www.w3.org/ns/shacl#SPARQLRule>,
    <http://spinrdf.org/sp#Construct>;
  <https://hamap.expasy.org/rdf/vocab#addsTriple> <http://purl.uniprot.org/unirules/MF_02130#construct-template-70>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-10>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-71>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-19>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-72>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-9>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-2>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-73>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-21>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-3>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-0>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-20>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-23>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-22>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-1>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-7>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-17>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-18>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-26>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-14>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-15>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-39>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-11>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-16>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-5>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-35>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-59>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-4>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-12>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-36>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-24>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-13>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-37>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-38>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-30>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-55>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-79>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-31>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-32>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-56>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-33>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-57>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-34>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-58>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-50>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-74>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-6>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-51>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-75>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-76>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-52>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-77>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-25>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-53>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-54>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-78>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-60>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-61>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-8>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-27>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-28>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-29>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-47>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-48>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-49>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-42>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-43>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-67>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-44>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-68>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-45>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-69>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-46>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-62>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-63>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-40>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-64>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-65>, <http://purl.uniprot.org/unirules/MF_02130#construct-template-41>,
    <http://purl.uniprot.org/unirules/MF_02130#construct-template-66>;
  <http://www.w3.org/ns/shacl#prefixes> <http://purl.uniprot.org/unirules/>;
  <http://spinrdf.org/sp#where> <http://purl.uniprot.org/unirules/MF_02130#construct-where-list-0>;
  <http://spinrdf.org/sp#templates> <http://purl.uniprot.org/unirules/MF_02130#construct-template-list-0>;
  <http://www.w3.org/ns/shacl#construct> """CONSTRUCT {
  _:757609 up:source unirule:MF_02130 .
  _:757610 up:source unirule:MF_02130 .
  _:757611 up:source unirule:MF_02130 .
  _:757612 up:source unirule:MF_02130 .
  _:757613 up:source unirule:MF_02130 .
  _:757614 up:source unirule:MF_02130 .
  _:757615 up:source unirule:MF_02130 .
  _:757616 up:source unirule:MF_02130 .
  _:757617 up:source unirule:MF_02130 .
  _:757618 up:source unirule:MF_02130 .
  _:757619 up:source unirule:MF_02130 .
  _:757620 up:source unirule:MF_02130 .
  _:757621 up:source unirule:MF_02130 .
  _:757622 up:source unirule:MF_02130 .
  ?this up:alternativeName ?name1 ;
    up:annotation ?annotation3 ,
      ?annotation4 ,
      ?annotation6 ,
      ?annotation7 ;
    up:classifiedWith GO:0004150 ,
      keyword:456 ;
    up:recommendedName ?name0 .
  ?name0 up:ecName '4.1.2.25' ;
    up:fullName 'Dihydroneopterin aldolase' ;
    up:shortName 'DHNA' ;
    rdf:type up:Structured_Name .
  ?name1 up:fullName '7,8-dihydroneopterin aldolase' ;
    rdf:type up:Structured_Name .
  ?gene2 skos:prefLabel 'mptD' .
  ?annotation3 a up:Function_Annotation ;
    rdfs:comment 'Catalyzes the conversion of 7,8-dihydroneopterin (H2Neo) to 6-hydroxymethyl-7,8-dihydropterin (6-HMD).' .
  ?annotation4 up:activity ?activity5 ;
    rdf:type up:Catalytic_Activity_Annotation .
  ?activity5 up:catalyticActivity <http://rdf.rhea-db.org/10540>;
    up:enzymeClass <http://purl.uniprot.org/enzyme/4.1.2.25>.
  ?annotation6 a up:Subunit_Annotation ;
    rdfs:comment 'Homotetramer.' .
  ?annotation7 a up:Similarity_Annotation ;
    rdfs:comment 'Belongs to the archaeal dihydroneopterin aldolase family.' .
  ?case8 up:classifiedWith GO:0046654 ,
      keyword:289 .
  ?case9 up:classifiedWith GO:2001118 .
  ?pfs10 up:annotation ?annotation11 .
  ?annotation11 faldo:begin ?pfsb12 ;
    faldo:end ?pfse13 ;
    up:ligand ?ligand14 ;
    rdf:type up:Binding_Site_Annotation .
  ?pfsb12 faldo:position ?thisPositionOn16 ;
    rdf:type faldo:ExactPosition .
  ?pfse13 faldo:position ?thisPositionOn17 ;
    rdf:type faldo:ExactPosition .
  ?ligand14 rdfs:subClassOf ?molecule15 .
  ?molecule15 rdfs:label 'substrate' .
  ?pfs18 up:annotation ?annotation19 .
  ?annotation19 faldo:begin ?pfsb20 ;
    faldo:end ?pfse21 ;
    up:ligand ?ligand22 ;
    rdf:type up:Binding_Site_Annotation .
  ?pfsb20 faldo:position ?thisPositionOn24 ;
    rdf:type faldo:ExactPosition .
  ?pfse21 faldo:position ?thisPositionOn25 ;
    rdf:type faldo:ExactPosition .
  ?ligand22 rdfs:subClassOf ?molecule23 .
  ?molecule23 rdfs:label 'substrate' .
  _:757623 a rdf:Statement ;
    up:attribution _:757609 ;
    rdf:subject ?this ;
    rdf:predicate up:recommendedName ;
    rdf:object ?name0 .
  _:757624 a rdf:Statement ;
    up:attribution _:757610 ;
    rdf:subject ?this ;
    rdf:predicate up:alternativeName ;
    rdf:object ?name1 .
  _:757625 a rdf:Statement ;
    up:attribution _:757611 ;
    rdf:subject ?gene2 ;
    rdf:predicate up:encodedBy ;
    rdf:object ?gene2 .
  _:757626 a rdf:Statement ;
    up:attribution _:757612 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation3 .
  _:757627 a rdf:Statement ;
    up:attribution _:757613 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation4 .
  _:757628 a rdf:Statement ;
    up:attribution _:757614 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation6 .
  _:757629 a rdf:Statement ;
    up:attribution _:757615 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation7 .
  _:757630 a rdf:Statement ;
    up:attribution _:757616 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object keyword:456 .
  _:757631 a rdf:Statement ;
    up:attribution _:757617 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object GO:0004150 .
  _:757632 a rdf:Statement ;
    up:attribution _:757618 ;
    rdf:subject ?case8 ;
    rdf:predicate up:classifiedWith ;
    rdf:object keyword:289 .
  _:757633 a rdf:Statement ;
    up:attribution _:757619 ;
    rdf:subject ?case8 ;
    rdf:predicate up:classifiedWith ;
    rdf:object GO:0046654 .
  _:757634 a rdf:Statement ;
    up:attribution _:757620 ;
    rdf:subject ?case9 ;
    rdf:predicate up:classifiedWith ;
    rdf:object GO:2001118 .
  _:757635 a rdf:Statement ;
    up:source unirule:MF_02130 ;
    rdf:subject ?pfs10 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation11 .
  _:757636 a rdf:Statement ;
    up:attribution _:757621 ;
    rdf:subject ?pfs10 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation11 .
  _:757637 a rdf:Statement ;
    up:source unirule:MF_02130 ;
    rdf:subject ?pfs18 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation19 .
  _:757638 a rdf:Statement ;
    up:attribution _:757622 ;
    rdf:subject ?pfs18 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation19 .
}
WHERE {
  #baseURI: http://purl.uniprot.org/unirule/MF_02130
  #Rule MF_02130 Created by:? on:2012-10-12 Modified by:Edouard de Castro on:2022-05-14
  ?this up:organism ?thisOrganism ;
    rdfs:seeAlso signature:MF_02130 .
  ?thisOrganism rdfs:subClassOf+ taxon:2157 .
  BIND(URI(CONCAT(STR(?this), '#MF_02130a0')) AS ?name0) .
  BIND(URI(CONCAT(STR(?this), '#MF_02130a1')) AS ?name1) .
  BIND(URI(CONCAT(STR(?this), '#MF_02130a3')) AS ?annotation3) .
  BIND(URI(CONCAT(STR(?this), '#MF_02130a4')) AS ?annotation4) .
  BIND(URI(CONCAT(STR(?this), '#MF_02130a6')) AS ?annotation6) .
  BIND(URI(CONCAT(STR(?this), '#MF_02130a7')) AS ?annotation7) .
  OPTIONAL {
    ?this up:sequence ?thisSequence .
    ?thisSequence rdf:value ?thisSequenceValue .
    ?templateMotifMatch30 faldo:location ?templateMotifSequenceMatchRegionQ5785131 ;
      edam:is_output_of ?templateMotifSequenceProfileAlignmentOperationQ5785133 ;
      rdf:type edam:data_0869 ;
      rdf:value ?templateMotifCigarQ57851MF_0213026 .
    ?templateMotifSequenceMatchRegionQ5785131 faldo:begin ?templateMotifSequenceMatchBeginQ5785132 .
    ?templateMotifSequenceMatchBeginQ5785132 faldo:position ?templateMotifSequenceMatchBeginPositionQ5785127 ;
      faldo:reference isoform:Q57851-1 .
    ?templateMotifSequenceProfileAlignmentOperationQ5785133 edam:has_input signature:MF_02130 ;
      rdf:type edam:operation_0300 .
    ?targetMotifMatch34 faldo:location ?targetMotifMatchRegionMatch35 ;
      edam:is_output_of ?targetMotifSequenceAlignmentOperationMF_0213037 ;
      rdf:type edam:data_0869 ;
      rdf:value ?targetMotifMatchCigarQ57851MF_0213028 .
    ?targetMotifMatchRegionMatch35 faldo:begin ?targetMotifMatchRegionMatchBeginMF_0213036 .
    ?targetMotifMatchRegionMatchBeginMF_0213036 faldo:position ?targetMotifMatchRegionMatchBeginPositionMF_0213029 ;
      faldo:reference ?thisSequence .
    ?targetMotifSequenceAlignmentOperationMF_0213037 edam:has_input signature:MF_02130 ;
      rdf:type edam:operation_0300 .
    BIND(STRLEN(REPLACE(SUBSTR(?templateMotifCigarQ57851MF_0213026, 1, (STRLEN(?templateMotifCigarQ57851MF_0213026) - STRLEN(REPLACE(?templateMotifCigarQ57851MF_0213026, CONCAT('^(?:-*[^-]){', STR(((25 - ?templateMotifSequenceMatchBeginPositionQ5785127) + 1)), '}'), '')))), '[a-z]', '')) AS ?step138) .
    BIND((STRLEN(SUBSTR(?targetMotifMatchCigarQ57851MF_0213028, 1, (STRLEN(?targetMotifMatchCigarQ57851MF_0213028) - STRLEN(REPLACE(?targetMotifMatchCigarQ57851MF_0213028, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step138), '}'), ''))))) - STRLEN(REPLACE(SUBSTR(?targetMotifMatchCigarQ57851MF_0213028, 1, (STRLEN(?targetMotifMatchCigarQ57851MF_0213028) - STRLEN(REPLACE(?targetMotifMatchCigarQ57851MF_0213028, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step138), '}'), '')))), '[^-]', ''))) AS ?step239) .
    BIND(((?step239 + ?targetMotifMatchRegionMatchBeginPositionMF_0213029) - 1) AS ?thisPositionOn16) .
    BIND(?thisPositionOn16 AS ?thisPositionOn17) .
    BIND(?this AS ?pfs1t40) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn16))) AS ?pfsb12) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn17))) AS ?pfse13) .
    FILTER ((SUBSTR(?thisSequenceValue, ?thisPositionOn16, 1) = 'E')) .
    BIND(URI(CONCAT(STR(?this), '#MF_02130a11')) AS ?annotation11) .
    BIND(?this AS ?pfs10) .
  }
  OPTIONAL {
    ?this up:sequence ?thisSequence .
    ?thisSequence rdf:value ?thisSequenceValue .
    ?templateMotifMatch45 faldo:location ?templateMotifSequenceMatchRegionQ5785146 ;
      edam:is_output_of ?templateMotifSequenceProfileAlignmentOperationQ5785148 ;
      rdf:type edam:data_0869 ;
      rdf:value ?templateMotifCigarQ57851MF_0213041 .
    ?templateMotifSequenceMatchRegionQ5785146 faldo:begin ?templateMotifSequenceMatchBeginQ5785147 .
    ?templateMotifSequenceMatchBeginQ5785147 faldo:position ?templateMotifSequenceMatchBeginPositionQ5785142 ;
      faldo:reference isoform:Q57851-1 .
    ?templateMotifSequenceProfileAlignmentOperationQ5785148 edam:has_input signature:MF_02130 ;
      rdf:type edam:operation_0300 .
    ?targetMotifMatch49 faldo:location ?targetMotifMatchRegionMatch50 ;
      edam:is_output_of ?targetMotifSequenceAlignmentOperationMF_0213052 ;
      rdf:type edam:data_0869 ;
      rdf:value ?targetMotifMatchCigarQ57851MF_0213043 .
    ?targetMotifMatchRegionMatch50 faldo:begin ?targetMotifMatchRegionMatchBeginMF_0213051 .
    ?targetMotifMatchRegionMatchBeginMF_0213051 faldo:position ?targetMotifMatchRegionMatchBeginPositionMF_0213044 ;
      faldo:reference ?thisSequence .
    ?targetMotifSequenceAlignmentOperationMF_0213052 edam:has_input signature:MF_02130 ;
      rdf:type edam:operation_0300 .
    BIND(STRLEN(REPLACE(SUBSTR(?templateMotifCigarQ57851MF_0213041, 1, (STRLEN(?templateMotifCigarQ57851MF_0213041) - STRLEN(REPLACE(?templateMotifCigarQ57851MF_0213041, CONCAT('^(?:-*[^-]){', STR(((114 - ?templateMotifSequenceMatchBeginPositionQ5785142) + 1)), '}'), '')))), '[a-z]', '')) AS ?step153) .
    BIND((STRLEN(SUBSTR(?targetMotifMatchCigarQ57851MF_0213043, 1, (STRLEN(?targetMotifMatchCigarQ57851MF_0213043) - STRLEN(REPLACE(?targetMotifMatchCigarQ57851MF_0213043, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step153), '}'), ''))))) - STRLEN(REPLACE(SUBSTR(?targetMotifMatchCigarQ57851MF_0213043, 1, (STRLEN(?targetMotifMatchCigarQ57851MF_0213043) - STRLEN(REPLACE(?targetMotifMatchCigarQ57851MF_0213043, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step153), '}'), '')))), '[^-]', ''))) AS ?step254) .
    BIND(((?step254 + ?targetMotifMatchRegionMatchBeginPositionMF_0213044) - 1) AS ?thisPositionOn24) .
    BIND(?thisPositionOn24 AS ?thisPositionOn25) .
    BIND(?this AS ?pfs1t55) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn24))) AS ?pfsb20) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn25))) AS ?pfse21) .
    FILTER ((SUBSTR(?thisSequenceValue, ?thisPositionOn24, 1) = 'M')) .
    BIND(URI(CONCAT(STR(?this), '#MF_02130a19')) AS ?annotation19) .
    BIND(?this AS ?pfs18) .
  }
  OPTIONAL {
    ?this a up:Protein .
    VALUES ?supertaxon56 {taxon:183963 taxon:2207}
    ?this up:organism ?thisOrganism .
    ?thisOrganism rdfs:subClassOf+ ?supertaxon56 .
    BIND(?this AS ?case8) .
  }
  OPTIONAL {
    ?this a up:Protein .
    VALUES ?supertaxon57 {taxon:183925 taxon:183939 taxon:224756 taxon:183988 taxon:183980}
    ?this up:organism ?thisOrganism .
    ?thisOrganism rdfs:subClassOf+ ?supertaxon57 .
    BIND(?this AS ?case9) .
  }
}
""" .

<http://purl.uniprot.org/unirules/MF_02130> <http://www.w3.org/ns/shacl#rule> <http://purl.uniprot.org/unirules/MF_02130#construct> .
