@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_00670#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_00670#construct-template-39>,
    <http://purl.uniprot.org/unirules/MF_00670#construct-template-27>, <http://purl.uniprot.org/unirules/MF_00670#construct-template-54>,
    <http://purl.uniprot.org/unirules/MF_00670#construct-template-28>, <http://purl.uniprot.org/unirules/MF_00670#construct-template-30>,
    <http://purl.uniprot.org/unirules/MF_00670#construct-template-38>, <http://purl.uniprot.org/unirules/MF_00670#construct-template-52>,
    <http://purl.uniprot.org/unirules/MF_00670#construct-template-53>, <http://purl.uniprot.org/unirules/MF_00670#construct-template-17>,
    <http://purl.uniprot.org/unirules/MF_00670#construct-template-37>, <http://purl.uniprot.org/unirules/MF_00670#construct-template-19>,
    <http://purl.uniprot.org/unirules/MF_00670#construct-template-22>, <http://purl.uniprot.org/unirules/MF_00670#construct-template-48>,
    <http://purl.uniprot.org/unirules/MF_00670#construct-template-51>, <http://purl.uniprot.org/unirules/MF_00670#construct-template-15>,
    <http://purl.uniprot.org/unirules/MF_00670#construct-template-26>, <http://purl.uniprot.org/unirules/MF_00670#construct-template-8>,
    <http://purl.uniprot.org/unirules/MF_00670#construct-template-12>, <http://purl.uniprot.org/unirules/MF_00670#construct-template-31>,
    <http://purl.uniprot.org/unirules/MF_00670#construct-template-18>, <http://purl.uniprot.org/unirules/MF_00670#construct-template-50>,
    <http://purl.uniprot.org/unirules/MF_00670#construct-template-1>, <http://purl.uniprot.org/unirules/MF_00670#construct-template-41>,
    <http://purl.uniprot.org/unirules/MF_00670#construct-template-14>, <http://purl.uniprot.org/unirules/MF_00670#construct-template-32>,
    <http://purl.uniprot.org/unirules/MF_00670#construct-template-23>, <http://purl.uniprot.org/unirules/MF_00670#construct-template-44>,
    <http://purl.uniprot.org/unirules/MF_00670#construct-template-13>, <http://purl.uniprot.org/unirules/MF_00670#construct-template-36>,
    <http://purl.uniprot.org/unirules/MF_00670#construct-template-20>, <http://purl.uniprot.org/unirules/MF_00670#construct-template-43>,
    <http://purl.uniprot.org/unirules/MF_00670#construct-template-35>, <http://purl.uniprot.org/unirules/MF_00670#construct-template-11>,
    <http://purl.uniprot.org/unirules/MF_00670#construct-template-3>, <http://purl.uniprot.org/unirules/MF_00670#construct-template-34>,
    <http://purl.uniprot.org/unirules/MF_00670#construct-template-10>, <http://purl.uniprot.org/unirules/MF_00670#construct-template-24>,
    <http://purl.uniprot.org/unirules/MF_00670#construct-template-6>, <http://purl.uniprot.org/unirules/MF_00670#construct-template-57>,
    <http://purl.uniprot.org/unirules/MF_00670#construct-template-33>, <http://purl.uniprot.org/unirules/MF_00670#construct-template-42>,
    <http://purl.uniprot.org/unirules/MF_00670#construct-template-56>, <http://purl.uniprot.org/unirules/MF_00670#construct-template-55>,
    <http://purl.uniprot.org/unirules/MF_00670#construct-template-21>, <http://purl.uniprot.org/unirules/MF_00670#construct-template-2>,
    <http://purl.uniprot.org/unirules/MF_00670#construct-template-5>, <http://purl.uniprot.org/unirules/MF_00670#construct-template-29>,
    <http://purl.uniprot.org/unirules/MF_00670#construct-template-45>, <http://purl.uniprot.org/unirules/MF_00670#construct-template-4>,
    <http://purl.uniprot.org/unirules/MF_00670#construct-template-7>, <http://purl.uniprot.org/unirules/MF_00670#construct-template-9>,
    <http://purl.uniprot.org/unirules/MF_00670#construct-template-47>, <http://purl.uniprot.org/unirules/MF_00670#construct-template-25>,
    <http://purl.uniprot.org/unirules/MF_00670#construct-template-40>, <http://purl.uniprot.org/unirules/MF_00670#construct-template-0>,
    <http://purl.uniprot.org/unirules/MF_00670#construct-template-16>, <http://purl.uniprot.org/unirules/MF_00670#construct-template-49>,
    <http://purl.uniprot.org/unirules/MF_00670#construct-template-46>;
  <http://www.w3.org/ns/shacl#prefixes> <http://purl.uniprot.org/unirules/>;
  <http://spinrdf.org/sp#where> <http://purl.uniprot.org/unirules/MF_00670#construct-where-list-0>;
  <http://spinrdf.org/sp#templates> <http://purl.uniprot.org/unirules/MF_00670#construct-template-list-0>;
  <http://www.w3.org/ns/shacl#construct> """CONSTRUCT {
  _:254189 up:source unirule:MF_00670 .
  _:254190 up:source unirule:MF_00670 .
  _:254191 up:source unirule:MF_00670 .
  _:254192 up:source unirule:MF_00670 .
  _:254193 up:source unirule:MF_00670 .
  _:254194 up:source unirule:MF_00670 .
  _:254195 up:source unirule:MF_00670 .
  _:254196 up:source unirule:MF_00670 .
  _:254197 up:source unirule:MF_00670 .
  _:254198 up:source unirule:MF_00670 .
  _:254199 up:source unirule:MF_00670 .
  ?this up:alternativeName ?name1 ,
      ?name2 ;
    up:annotation ?annotation4 ,
      ?annotation6 ,
      ?annotation7 ;
    up:classifiedWith GO:0009026 ,
      keyword:520 ,
      keyword:560 ;
    up:recommendedName ?name0 .
  ?name0 up:ecName '1.1.1.58' ;
    up:fullName 'Altronate oxidoreductase' ;
    rdf:type up:Structured_Name .
  ?name1 up:fullName 'Tagaturonate dehydrogenase' ;
    rdf:type up:Structured_Name .
  ?name2 up:fullName 'Tagaturonate reductase' ;
    rdf:type up:Structured_Name .
  ?gene3 skos:prefLabel 'uxaB' .
  ?annotation4 up:activity ?activity5 ;
    rdf:type up:Catalytic_Activity_Annotation .
  ?activity5 up:catalyticActivity <http://rdf.rhea-db.org/17813>;
    up:enzymeClass <http://purl.uniprot.org/enzyme/1.1.1.58>.
  ?annotation6 a up:Pathway_Annotation ;
    rdfs:comment 'Carbohydrate metabolism; pentose and glucuronate interconversion.' .
  ?annotation7 a up:Similarity_Annotation ;
    rdfs:comment 'Belongs to the mannitol dehydrogenase family. UxaB subfamily.' .
  ?pfs8 up:annotation ?annotation9 .
  ?annotation9 faldo:begin ?pfsb10 ;
    faldo:end ?pfse11 ;
    up:ligand ?ligand12 ;
    rdf:type up:Binding_Site_Annotation .
  ?pfsb10 faldo:position ?thisPositionOn13 ;
    rdf:type faldo:ExactPosition .
  ?pfse11 faldo:position ?thisPositionOn14 ;
    rdf:type faldo:ExactPosition .
  ?ligand12 rdfs:subClassOf chebi:57540 .
  _:254200 a rdf:Statement ;
    up:attribution _:254189 ;
    rdf:subject ?this ;
    rdf:predicate up:recommendedName ;
    rdf:object ?name0 .
  _:254201 a rdf:Statement ;
    up:attribution _:254190 ;
    rdf:subject ?this ;
    rdf:predicate up:alternativeName ;
    rdf:object ?name1 .
  _:254202 a rdf:Statement ;
    up:attribution _:254191 ;
    rdf:subject ?this ;
    rdf:predicate up:alternativeName ;
    rdf:object ?name2 .
  _:254203 a rdf:Statement ;
    up:attribution _:254192 ;
    rdf:subject ?gene3 ;
    rdf:predicate up:encodedBy ;
    rdf:object ?gene3 .
  _:254204 a rdf:Statement ;
    up:attribution _:254193 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation4 .
  _:254205 a rdf:Statement ;
    up:attribution _:254194 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation6 .
  _:254206 a rdf:Statement ;
    up:attribution _:254195 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation7 .
  _:254207 a rdf:Statement ;
    up:attribution _:254196 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object keyword:560 .
  _:254208 a rdf:Statement ;
    up:attribution _:254197 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object keyword:520 .
  _:254209 a rdf:Statement ;
    up:attribution _:254198 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object GO:0009026 .
  _:254210 a rdf:Statement ;
    up:source unirule:MF_00670 ;
    rdf:subject ?pfs8 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation9 .
  _:254211 a rdf:Statement ;
    up:attribution _:254199 ;
    rdf:subject ?pfs8 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation9 .
}
WHERE {
  #baseURI: http://purl.uniprot.org/unirule/MF_00670
  #Rule MF_00670 Created by:? on:2005-02-28 Modified by:Edouard de Castro on:2024-09-02
  ?this up:organism ?thisOrganism ;
    rdfs:seeAlso signature:MF_00670 .
  ?thisOrganism rdfs:subClassOf+ taxon:2 .
  BIND(URI(CONCAT(STR(?this), '#MF_00670a0')) AS ?name0) .
  BIND(URI(CONCAT(STR(?this), '#MF_00670a1')) AS ?name1) .
  BIND(URI(CONCAT(STR(?this), '#MF_00670a2')) AS ?name2) .
  BIND(URI(CONCAT(STR(?this), '#MF_00670a4')) AS ?annotation4) .
  BIND(URI(CONCAT(STR(?this), '#MF_00670a6')) AS ?annotation6) .
  BIND(URI(CONCAT(STR(?this), '#MF_00670a7')) AS ?annotation7) .
  OPTIONAL {
    ?this up:sequence ?thisSequence .
    ?thisSequence rdf:value ?thisSequenceValue .
    ?templateMotifMatch19 faldo:location ?templateMotifSequenceMatchRegionP0A6L720 ;
      edam:is_output_of ?templateMotifSequenceProfileAlignmentOperationP0A6L722 ;
      rdf:type edam:data_0869 ;
      rdf:value ?templateMotifCigarP0A6L7MF_0067015 .
    ?templateMotifSequenceMatchRegionP0A6L720 faldo:begin ?templateMotifSequenceMatchBeginP0A6L721 .
    ?templateMotifSequenceMatchBeginP0A6L721 faldo:position ?templateMotifSequenceMatchBeginPositionP0A6L716 ;
      faldo:reference isoform:P0A6L7-1 .
    ?templateMotifSequenceProfileAlignmentOperationP0A6L722 edam:has_input signature:MF_00670 ;
      rdf:type edam:operation_0300 .
    ?targetMotifMatch23 faldo:location ?targetMotifMatchRegionMatch24 ;
      edam:is_output_of ?targetMotifSequenceAlignmentOperationMF_0067026 ;
      rdf:type edam:data_0869 ;
      rdf:value ?targetMotifMatchCigarP0A6L7MF_0067017 .
    ?targetMotifMatchRegionMatch24 faldo:begin ?targetMotifMatchRegionMatchBeginMF_0067025 .
    ?targetMotifMatchRegionMatchBeginMF_0067025 faldo:position ?targetMotifMatchRegionMatchBeginPositionMF_0067018 ;
      faldo:reference ?thisSequence .
    ?targetMotifSequenceAlignmentOperationMF_0067026 edam:has_input signature:MF_00670 ;
      rdf:type edam:operation_0300 .
    BIND(STRLEN(REPLACE(SUBSTR(?templateMotifCigarP0A6L7MF_0067015, 1, (STRLEN(?templateMotifCigarP0A6L7MF_0067015) - STRLEN(REPLACE(?templateMotifCigarP0A6L7MF_0067015, CONCAT('^(?:-*[^-]){', STR(((18 - ?templateMotifSequenceMatchBeginPositionP0A6L716) + 1)), '}'), '')))), '[a-z]', '')) AS ?step127) .
    BIND((STRLEN(SUBSTR(?targetMotifMatchCigarP0A6L7MF_0067017, 1, (STRLEN(?targetMotifMatchCigarP0A6L7MF_0067017) - STRLEN(REPLACE(?targetMotifMatchCigarP0A6L7MF_0067017, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step127), '}'), ''))))) - STRLEN(REPLACE(SUBSTR(?targetMotifMatchCigarP0A6L7MF_0067017, 1, (STRLEN(?targetMotifMatchCigarP0A6L7MF_0067017) - STRLEN(REPLACE(?targetMotifMatchCigarP0A6L7MF_0067017, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step127), '}'), '')))), '[^-]', ''))) AS ?step228) .
    BIND(((?step228 + ?targetMotifMatchRegionMatchBeginPositionMF_0067018) - 1) AS ?thisPositionOn13) .
    BIND(STRLEN(REPLACE(SUBSTR(?templateMotifCigarP0A6L7MF_0067015, 1, (STRLEN(?templateMotifCigarP0A6L7MF_0067015) - STRLEN(REPLACE(?templateMotifCigarP0A6L7MF_0067015, CONCAT('^(?:-*[^-]){', STR(((29 - ?templateMotifSequenceMatchBeginPositionP0A6L716) + 1)), '}'), '')))), '[a-z]', '')) AS ?step129) .
    BIND((STRLEN(SUBSTR(?targetMotifMatchCigarP0A6L7MF_0067017, 1, (STRLEN(?targetMotifMatchCigarP0A6L7MF_0067017) - STRLEN(REPLACE(?targetMotifMatchCigarP0A6L7MF_0067017, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step129), '}'), ''))))) - STRLEN(REPLACE(SUBSTR(?targetMotifMatchCigarP0A6L7MF_0067017, 1, (STRLEN(?targetMotifMatchCigarP0A6L7MF_0067017) - STRLEN(REPLACE(?targetMotifMatchCigarP0A6L7MF_0067017, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step129), '}'), '')))), '[^-]', ''))) AS ?step230) .
    BIND(((?step230 + ?targetMotifMatchRegionMatchBeginPositionMF_0067018) - 1) AS ?thisPositionOn14) .
    BIND(?this AS ?pfs1t31) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn13))) AS ?pfsb10) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn14))) AS ?pfse11) .
    FILTER (REGEX('[LIV]{2)QFGEGNFLR[GA]', SUBSTR(?thisSequenceValue, ?thisPositionOn13, (?thisPositionOn14 - ?thisPositionOn13)))) .
    BIND(URI(CONCAT(STR(?this), '#MF_00670a9')) AS ?annotation9) .
    BIND(?this AS ?pfs8) .
  }
}
""" .

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