@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_01871#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_01871#construct-template-62>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-63>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-25>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-45>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-12>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-13>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-38>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-47>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-48>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-46>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-57>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-29>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-35>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-37>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-53>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-20>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-61>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-88>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-30>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-16>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-70>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-65>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-51>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-14>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-42>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-1>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-92>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-23>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-77>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-49>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-18>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-26>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-67>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-71>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-34>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-64>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-2>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-43>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-3>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-9>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-36>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-50>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-27>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-59>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-66>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-28>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-69>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-21>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-22>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-33>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-31>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-86>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-73>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-24>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-72>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-40>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-8>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-97>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-90>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-89>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-41>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-75>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-6>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-4>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-15>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-68>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-44>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-52>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-5>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-98>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-74>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-84>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-58>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-10>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-76>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-95>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-93>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-7>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-94>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-32>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-54>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-96>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-60>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-19>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-17>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-56>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-0>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-78>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-55>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-82>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-91>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-11>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-39>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-80>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-79>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-87>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-85>,
    <http://purl.uniprot.org/unirules/MF_01871#construct-template-81>, <http://purl.uniprot.org/unirules/MF_01871#construct-template-83>;
  <http://www.w3.org/ns/shacl#prefixes> <http://purl.uniprot.org/unirules/>;
  <http://spinrdf.org/sp#where> <http://purl.uniprot.org/unirules/MF_01871#construct-where-list-0>;
  <http://spinrdf.org/sp#templates> <http://purl.uniprot.org/unirules/MF_01871#construct-template-list-0>;
  <http://www.w3.org/ns/shacl#construct> """CONSTRUCT {
  _:654500 up:source unirule:MF_01871 .
  _:654501 up:source unirule:MF_01871 .
  _:654502 up:source unirule:MF_01871 .
  _:654503 up:source unirule:MF_01871 .
  _:654504 up:source unirule:MF_01871 .
  _:654505 up:source unirule:MF_01871 .
  _:654506 up:source unirule:MF_01871 .
  _:654507 up:source unirule:MF_01871 .
  _:654508 up:source unirule:MF_01871 .
  _:654509 up:source unirule:MF_01871 .
  _:654510 up:source unirule:MF_01871 .
  _:654511 up:source unirule:MF_01871 .
  _:654512 up:source unirule:MF_01871 .
  _:654513 up:source unirule:MF_01871 .
  _:654514 up:source unirule:MF_01871 .
  _:654515 up:source unirule:MF_01871 .
  _:654516 up:source unirule:MF_01871 .
  ?this up:annotation ?annotation2 ,
      ?annotation3 ,
      ?annotation4 ;
    up:classifiedWith GO:0005886 ,
      keyword:1003 ,
      keyword:472 ,
      keyword:813 ;
    up:recommendedName ?name0 .
  ?name0 up:fullName 'Probable inorganic carbon transporter subunit DabA' ;
    rdf:type up:Structured_Name .
  ?gene1 skos:prefLabel 'dabA' .
  ?annotation2 a up:Function_Annotation ;
    rdfs:comment 'Part of an energy-coupled inorganic carbon pump.' .
  ?annotation3 a up:Subunit_Annotation ;
    rdfs:comment 'Forms a complex with DabB.' .
  ?annotation4 a up:Similarity_Annotation ;
    rdfs:comment 'Belongs to the inorganic carbon transporter (TC 9.A.2) DabA family.' .
  ?case5 up:classifiedWith GO:0008270 ,
      keyword:479 ,
      keyword:862 .
  ?case6 up:classifiedWith keyword:997 .
  ?pfs8 up:annotation ?annotation9 ,
      ?annotation15 ,
      ?annotation21 ,
      ?annotation27 .
  ?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:29105 .
  ?annotation15 faldo:begin ?pfsb16 ;
    faldo:end ?pfse17 ;
    up:ligand ?ligand18 ;
    rdf:type up:Binding_Site_Annotation .
  ?pfsb16 faldo:position ?thisPositionOn19 ;
    rdf:type faldo:ExactPosition .
  ?pfse17 faldo:position ?thisPositionOn20 ;
    rdf:type faldo:ExactPosition .
  ?ligand18 rdfs:subClassOf chebi:29105 .
  ?annotation21 faldo:begin ?pfsb22 ;
    faldo:end ?pfse23 ;
    up:ligand ?ligand24 ;
    rdf:type up:Binding_Site_Annotation .
  ?pfsb22 faldo:position ?thisPositionOn25 ;
    rdf:type faldo:ExactPosition .
  ?pfse23 faldo:position ?thisPositionOn26 ;
    rdf:type faldo:ExactPosition .
  ?ligand24 rdfs:subClassOf chebi:29105 .
  ?annotation27 faldo:begin ?pfsb28 ;
    faldo:end ?pfse29 ;
    up:ligand ?ligand30 ;
    rdf:type up:Binding_Site_Annotation .
  ?pfsb28 faldo:position ?thisPositionOn31 ;
    rdf:type faldo:ExactPosition .
  ?pfse29 faldo:position ?thisPositionOn32 ;
    rdf:type faldo:ExactPosition .
  ?ligand30 rdfs:subClassOf chebi:29105 .
  _:654517 a rdf:Statement ;
    up:attribution _:654500 ;
    rdf:subject ?this ;
    rdf:predicate up:recommendedName ;
    rdf:object ?name0 .
  _:654518 a rdf:Statement ;
    up:attribution _:654501 ;
    rdf:subject ?gene1 ;
    rdf:predicate up:encodedBy ;
    rdf:object ?gene1 .
  _:654519 a rdf:Statement ;
    up:attribution _:654502 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation2 .
  _:654520 a rdf:Statement ;
    up:attribution _:654503 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation3 .
  _:654521 a rdf:Statement ;
    up:attribution _:654504 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation4 .
  _:654522 a rdf:Statement ;
    up:attribution _:654505 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object keyword:1003 .
  _:654523 a rdf:Statement ;
    up:attribution _:654506 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object keyword:472 .
  _:654524 a rdf:Statement ;
    up:attribution _:654507 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object keyword:813 .
  _:654525 a rdf:Statement ;
    up:attribution _:654508 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object GO:0005886 .
  _:654526 a rdf:Statement ;
    up:attribution _:654509 ;
    rdf:subject ?case5 ;
    rdf:predicate up:classifiedWith ;
    rdf:object keyword:479 .
  _:654527 a rdf:Statement ;
    up:attribution _:654510 ;
    rdf:subject ?case5 ;
    rdf:predicate up:classifiedWith ;
    rdf:object keyword:862 .
  _:654528 a rdf:Statement ;
    up:attribution _:654511 ;
    rdf:subject ?case5 ;
    rdf:predicate up:classifiedWith ;
    rdf:object GO:0008270 .
  _:654529 a rdf:Statement ;
    up:attribution _:654512 ;
    rdf:subject ?case6 ;
    rdf:predicate up:classifiedWith ;
    rdf:object keyword:997 .
  _:654530 a rdf:Statement ;
    up:source unirule:MF_01871 ;
    rdf:subject ?pfs8 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation9 .
  _:654531 a rdf:Statement ;
    up:attribution _:654513 ;
    rdf:subject ?pfs8 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation9 .
  _:654532 a rdf:Statement ;
    up:source unirule:MF_01871 ;
    rdf:subject ?pfs8 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation15 .
  _:654533 a rdf:Statement ;
    up:attribution _:654514 ;
    rdf:subject ?pfs8 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation15 .
  _:654534 a rdf:Statement ;
    up:source unirule:MF_01871 ;
    rdf:subject ?pfs8 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation21 .
  _:654535 a rdf:Statement ;
    up:attribution _:654515 ;
    rdf:subject ?pfs8 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation21 .
  _:654536 a rdf:Statement ;
    up:source unirule:MF_01871 ;
    rdf:subject ?pfs8 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation27 .
  _:654537 a rdf:Statement ;
    up:attribution _:654516 ;
    rdf:subject ?pfs8 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation27 .
}
WHERE {
  #baseURI: http://purl.uniprot.org/unirule/MF_01871
  #Rule MF_01871 Created by:? on:2009-09-28 Modified by:Edouard de Castro on:2022-11-19
  VALUES ?supertaxon33 {taxon:2 taxon:183963}
  ?this up:organism ?thisOrganism ;
    rdfs:seeAlso signature:MF_01871 .
  ?thisOrganism rdfs:subClassOf+ ?supertaxon33 .
  BIND(URI(CONCAT(STR(?this), '#MF_01871a0')) AS ?name0) .
  BIND(URI(CONCAT(STR(?this), '#MF_01871a2')) AS ?annotation2) .
  BIND(URI(CONCAT(STR(?this), '#MF_01871a3')) AS ?annotation3) .
  BIND(URI(CONCAT(STR(?this), '#MF_01871a4')) AS ?annotation4) .
  OPTIONAL {
    ?this up:sequence ?thisSequence .
    ?thisSequence rdf:value ?thisSequenceValue .
    ?templateMotifMatch38 faldo:location ?templateMotifSequenceMatchRegionD0KWS739 ;
      edam:is_output_of ?templateMotifSequenceProfileAlignmentOperationD0KWS741 ;
      rdf:type edam:data_0869 ;
      rdf:value ?templateMotifCigarD0KWS7MF_0187134 .
    ?templateMotifSequenceMatchRegionD0KWS739 faldo:begin ?templateMotifSequenceMatchBeginD0KWS740 .
    ?templateMotifSequenceMatchBeginD0KWS740 faldo:position ?templateMotifSequenceMatchBeginPositionD0KWS735 ;
      faldo:reference isoform:D0KWS7-1 .
    ?templateMotifSequenceProfileAlignmentOperationD0KWS741 edam:has_input signature:MF_01871 ;
      rdf:type edam:operation_0300 .
    ?targetMotifMatch42 faldo:location ?targetMotifMatchRegionMatch43 ;
      edam:is_output_of ?targetMotifSequenceAlignmentOperationMF_0187145 ;
      rdf:type edam:data_0869 ;
      rdf:value ?targetMotifMatchCigarD0KWS7MF_0187136 .
    ?targetMotifMatchRegionMatch43 faldo:begin ?targetMotifMatchRegionMatchBeginMF_0187144 .
    ?targetMotifMatchRegionMatchBeginMF_0187144 faldo:position ?targetMotifMatchRegionMatchBeginPositionMF_0187137 ;
      faldo:reference ?thisSequence .
    ?targetMotifSequenceAlignmentOperationMF_0187145 edam:has_input signature:MF_01871 ;
      rdf:type edam:operation_0300 .
    BIND(?this AS ?tagFTGRP_1) .
    BIND(STRLEN(REPLACE(SUBSTR(?templateMotifCigarD0KWS7MF_0187134, 1, (STRLEN(?templateMotifCigarD0KWS7MF_0187134) - STRLEN(REPLACE(?templateMotifCigarD0KWS7MF_0187134, CONCAT('^(?:-*[^-]){', STR(((351 - ?templateMotifSequenceMatchBeginPositionD0KWS735) + 1)), '}'), '')))), '[a-z]', '')) AS ?step146) .
    BIND((STRLEN(SUBSTR(?targetMotifMatchCigarD0KWS7MF_0187136, 1, (STRLEN(?targetMotifMatchCigarD0KWS7MF_0187136) - STRLEN(REPLACE(?targetMotifMatchCigarD0KWS7MF_0187136, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step146), '}'), ''))))) - STRLEN(REPLACE(SUBSTR(?targetMotifMatchCigarD0KWS7MF_0187136, 1, (STRLEN(?targetMotifMatchCigarD0KWS7MF_0187136) - STRLEN(REPLACE(?targetMotifMatchCigarD0KWS7MF_0187136, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step146), '}'), '')))), '[^-]', ''))) AS ?step247) .
    BIND(((?step247 + ?targetMotifMatchRegionMatchBeginPositionMF_0187137) - 1) AS ?thisPositionOn13) .
    BIND(?thisPositionOn13 AS ?thisPositionOn14) .
    BIND(?this AS ?pfs1t48) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn13))) AS ?pfsb10) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn14))) AS ?pfse11) .
    FILTER ((SUBSTR(?thisSequenceValue, ?thisPositionOn13, 1) = 'C')) .
    BIND(STRLEN(REPLACE(SUBSTR(?templateMotifCigarD0KWS7MF_0187134, 1, (STRLEN(?templateMotifCigarD0KWS7MF_0187134) - STRLEN(REPLACE(?templateMotifCigarD0KWS7MF_0187134, CONCAT('^(?:-*[^-]){', STR(((353 - ?templateMotifSequenceMatchBeginPositionD0KWS735) + 1)), '}'), '')))), '[a-z]', '')) AS ?step149) .
    BIND((STRLEN(SUBSTR(?targetMotifMatchCigarD0KWS7MF_0187136, 1, (STRLEN(?targetMotifMatchCigarD0KWS7MF_0187136) - STRLEN(REPLACE(?targetMotifMatchCigarD0KWS7MF_0187136, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step149), '}'), ''))))) - STRLEN(REPLACE(SUBSTR(?targetMotifMatchCigarD0KWS7MF_0187136, 1, (STRLEN(?targetMotifMatchCigarD0KWS7MF_0187136) - STRLEN(REPLACE(?targetMotifMatchCigarD0KWS7MF_0187136, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step149), '}'), '')))), '[^-]', ''))) AS ?step250) .
    BIND(((?step250 + ?targetMotifMatchRegionMatchBeginPositionMF_0187137) - 1) AS ?thisPositionOn19) .
    BIND(?thisPositionOn19 AS ?thisPositionOn20) .
    BIND(?this AS ?pfs1t51) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn19))) AS ?pfsb16) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn20))) AS ?pfse17) .
    FILTER ((SUBSTR(?thisSequenceValue, ?thisPositionOn19, 1) = 'D')) .
    BIND(STRLEN(REPLACE(SUBSTR(?templateMotifCigarD0KWS7MF_0187134, 1, (STRLEN(?templateMotifCigarD0KWS7MF_0187134) - STRLEN(REPLACE(?templateMotifCigarD0KWS7MF_0187134, CONCAT('^(?:-*[^-]){', STR(((524 - ?templateMotifSequenceMatchBeginPositionD0KWS735) + 1)), '}'), '')))), '[a-z]', '')) AS ?step152) .
    BIND((STRLEN(SUBSTR(?targetMotifMatchCigarD0KWS7MF_0187136, 1, (STRLEN(?targetMotifMatchCigarD0KWS7MF_0187136) - STRLEN(REPLACE(?targetMotifMatchCigarD0KWS7MF_0187136, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step152), '}'), ''))))) - STRLEN(REPLACE(SUBSTR(?targetMotifMatchCigarD0KWS7MF_0187136, 1, (STRLEN(?targetMotifMatchCigarD0KWS7MF_0187136) - STRLEN(REPLACE(?targetMotifMatchCigarD0KWS7MF_0187136, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step152), '}'), '')))), '[^-]', ''))) AS ?step253) .
    BIND(((?step253 + ?targetMotifMatchRegionMatchBeginPositionMF_0187137) - 1) AS ?thisPositionOn25) .
    BIND(?thisPositionOn25 AS ?thisPositionOn26) .
    BIND(?this AS ?pfs1t54) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn25))) AS ?pfsb22) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn26))) AS ?pfse23) .
    FILTER ((SUBSTR(?thisSequenceValue, ?thisPositionOn25, 1) = 'H')) .
    BIND(STRLEN(REPLACE(SUBSTR(?templateMotifCigarD0KWS7MF_0187134, 1, (STRLEN(?templateMotifCigarD0KWS7MF_0187134) - STRLEN(REPLACE(?templateMotifCigarD0KWS7MF_0187134, CONCAT('^(?:-*[^-]){', STR(((539 - ?templateMotifSequenceMatchBeginPositionD0KWS735) + 1)), '}'), '')))), '[a-z]', '')) AS ?step155) .
    BIND((STRLEN(SUBSTR(?targetMotifMatchCigarD0KWS7MF_0187136, 1, (STRLEN(?targetMotifMatchCigarD0KWS7MF_0187136) - STRLEN(REPLACE(?targetMotifMatchCigarD0KWS7MF_0187136, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step155), '}'), ''))))) - STRLEN(REPLACE(SUBSTR(?targetMotifMatchCigarD0KWS7MF_0187136, 1, (STRLEN(?targetMotifMatchCigarD0KWS7MF_0187136) - STRLEN(REPLACE(?targetMotifMatchCigarD0KWS7MF_0187136, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step155), '}'), '')))), '[^-]', ''))) AS ?step256) .
    BIND(((?step256 + ?targetMotifMatchRegionMatchBeginPositionMF_0187137) - 1) AS ?thisPositionOn31) .
    BIND(?thisPositionOn31 AS ?thisPositionOn32) .
    BIND(?this AS ?pfs1t57) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn31))) AS ?pfsb28) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn32))) AS ?pfse29) .
    FILTER ((SUBSTR(?thisSequenceValue, ?thisPositionOn31, 1) = 'C')) .
    BIND(?this AS ?pfs8) .
  }
  OPTIONAL {
    ?this a up:Protein .
    BIND(?this AS ?caseWithTag58) .
  }
  BIND(IF(BOUND(?tagFTGRP_1), ?caseWithTag58, ?UNBOUND_VARIABLE) AS ?case5) .
  OPTIONAL {
    ?this a up:Protein .
    {
      ?this up:proteome <http://purl.uniprot.org/proteomes/Membrane#2>.
    } UNION {
      ?this up:proteome ?p59 .
      ?p59 skos:narrower <http://purl.uniprot.org/proteomes/Membrane#2>.
    }
    BIND(?this AS ?case6) .
  }
  OPTIONAL {
    ?this a up:Protein .
    {
      FILTER (! (EXISTS {
        {
          ?this up:proteome <http://purl.uniprot.org/proteomes/Membrane#any>.
        } UNION {
          ?this up:proteome ?p60 .
          ?p60 skos:narrower <http://purl.uniprot.org/proteomes/Membrane#any>.
        }
      })) .
    } UNION {
      {
        ?this up:proteome <http://purl.uniprot.org/proteomes/Membrane#1>.
      } UNION {
        ?this up:proteome ?p61 .
        ?p61 skos:narrower <http://purl.uniprot.org/proteomes/Membrane#1>.
      }
    }
    BIND(?this AS ?case7) .
  }
}
""" .

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