@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_00646#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_00646#construct-template-15>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-19>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-64>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-40>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-11>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-63>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-62>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-20>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-61>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-27>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-60>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-30>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-33>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-4>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-25>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-18>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-81>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-14>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-6>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-29>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-8>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-31>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-13>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-17>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-80>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-22>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-26>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-2>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-16>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-21>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-7>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-5>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-23>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-9>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-1>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-3>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-39>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-0>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-38>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-32>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-37>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-36>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-12>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-59>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-35>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-24>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-58>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-34>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-10>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-57>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-56>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-79>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-55>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-78>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-54>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-53>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-77>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-52>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-76>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-75>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-51>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-74>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-50>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-73>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-72>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-71>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-70>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-28>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-49>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-48>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-47>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-46>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-69>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-45>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-68>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-44>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-67>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-43>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-42>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-66>, <http://purl.uniprot.org/unirules/MF_00646#construct-template-41>,
    <http://purl.uniprot.org/unirules/MF_00646#construct-template-65>;
  <http://www.w3.org/ns/shacl#prefixes> <http://purl.uniprot.org/unirules/>;
  <http://spinrdf.org/sp#where> <http://purl.uniprot.org/unirules/MF_00646#construct-where-list-0>;
  <http://spinrdf.org/sp#templates> <http://purl.uniprot.org/unirules/MF_00646#construct-template-list-0>;
  <http://www.w3.org/ns/shacl#construct> """CONSTRUCT {
  _:247331 up:source unirule:MF_00646 .
  _:247332 up:source unirule:MF_00646 .
  _:247333 up:source unirule:MF_00646 .
  _:247334 up:source unirule:MF_00646 .
  _:247335 up:source unirule:MF_00646 .
  _:247336 up:source unirule:MF_00646 .
  _:247337 up:source unirule:MF_00646 .
  _:247338 up:source unirule:MF_00646 .
  _:247339 up:source unirule:MF_00646 .
  _:247340 up:source unirule:MF_00646 .
  _:247341 up:source unirule:MF_00646 .
  _:247342 up:source unirule:MF_00646 .
  _:247343 up:source unirule:MF_00646 .
  _:247344 up:source unirule:MF_00646 .
  _:247345 up:source unirule:MF_00646 .
  _:247346 up:source unirule:MF_00646 .
  _:247347 up:source unirule:MF_00646 .
  _:247348 up:source unirule:MF_00646 .
  ?this up:annotation ?annotation2 ,
      ?annotation3 ,
      ?annotation4 ,
      ?annotation6 ;
    up:classifiedWith GO:0003746 ,
      GO:0005737 ,
      GO:0006414 ,
      GO:0072344 ,
      keyword:251 ,
      keyword:648 ,
      keyword:694 ,
      keyword:820 ,
      keyword:963 ;
    up:recommendedName ?name0 .
  ?name0 up:fullName 'Elongation factor protein EfpL' ;
    rdf:type up:Structured_Name .
  ?gene1 skos:prefLabel 'efpL' .
  ?annotation2 a up:Function_Annotation ;
    rdfs:comment 'Involved in peptide bond synthesis. Alleviates ribosome stalling at di-proline-containing sequences; in rare cases stalled nascent peptides lacking di-Pro can also be rescued.' .
  ?annotation3 a up:Pathway_Annotation ;
    rdfs:comment 'Protein biosynthesis; polypeptide chain elongation.' .
  ?annotation4 a up:Subcellular_Location_Annotation .
  ?annotation4li5 up:cellularComponent <http://purl.uniprot.org/locations/null>.
  ?annotation6 a up:Similarity_Annotation ;
    rdfs:comment 'Belongs to the elongation factor P family. EfpL subfamily.' .
  ?case7 up:classifiedWith keyword:7 .
  ?pfs8 up:annotation ?annotation9 .
  ?annotation9 faldo:begin ?pfsb10 ;
    faldo:end ?pfse11 ;
    rdf:type up:Modified_Residue_Annotation ;
    rdfs:comment 'N6-acetyllysine' .
  ?pfsb10 faldo:position ?thisPositionOn12 ;
    rdf:type faldo:ExactPosition .
  ?pfse11 faldo:position ?thisPositionOn13 ;
    rdf:type faldo:ExactPosition .
  ?pfs14 up:annotation ?annotation15 .
  ?annotation15 faldo:begin ?pfsb16 ;
    faldo:end ?pfse17 ;
    rdf:type up:Site_Annotation ;
    rdfs:comment \"Probably interacts with 3' end of the P-site tRNA\" .
  ?pfsb16 faldo:position ?thisPositionOn18 ;
    rdf:type faldo:ExactPosition .
  ?pfse17 faldo:position ?thisPositionOn19 ;
    rdf:type faldo:ExactPosition .
  _:247349 a rdf:Statement ;
    up:attribution _:247331 ;
    rdf:subject ?this ;
    rdf:predicate up:recommendedName ;
    rdf:object ?name0 .
  _:247350 a rdf:Statement ;
    up:attribution _:247332 ;
    rdf:subject ?gene1 ;
    rdf:predicate up:encodedBy ;
    rdf:object ?gene1 .
  _:247351 a rdf:Statement ;
    up:attribution _:247333 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation2 .
  _:247352 a rdf:Statement ;
    up:attribution _:247334 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation3 .
  _:247353 a rdf:Statement ;
    up:attribution _:247335 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation4 .
  _:247354 a rdf:Statement ;
    up:attribution _:247336 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation6 .
  _:247355 a rdf:Statement ;
    up:attribution _:247337 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object keyword:963 .
  _:247356 a rdf:Statement ;
    up:attribution _:247338 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object keyword:648 .
  _:247357 a rdf:Statement ;
    up:attribution _:247339 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object keyword:251 .
  _:247358 a rdf:Statement ;
    up:attribution _:247340 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object keyword:820 .
  _:247359 a rdf:Statement ;
    up:attribution _:247341 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object keyword:694 .
  _:247360 a rdf:Statement ;
    up:attribution _:247342 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object GO:0072344 .
  _:247361 a rdf:Statement ;
    up:attribution _:247343 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object GO:0003746 .
  _:247362 a rdf:Statement ;
    up:attribution _:247344 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object GO:0006414 .
  _:247363 a rdf:Statement ;
    up:attribution _:247345 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object GO:0005737 .
  _:247364 a rdf:Statement ;
    up:attribution _:247346 ;
    rdf:subject ?case7 ;
    rdf:predicate up:classifiedWith ;
    rdf:object keyword:7 .
  _:247365 a rdf:Statement ;
    up:source unirule:MF_00646 ;
    rdf:subject ?pfs8 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation9 .
  _:247366 a rdf:Statement ;
    up:attribution _:247347 ;
    rdf:subject ?pfs8 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation9 .
  _:247367 a rdf:Statement ;
    up:source unirule:MF_00646 ;
    rdf:subject ?pfs14 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation15 .
  _:247368 a rdf:Statement ;
    up:attribution _:247348 ;
    rdf:subject ?pfs14 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation15 .
}
WHERE {
  #baseURI: http://purl.uniprot.org/unirule/MF_00646
  #Rule MF_00646 Created by:? on:2005-02-28 Modified by:Andrea Auchincloss on:2025-07-25
  ?this up:organism ?thisOrganism ;
    rdfs:seeAlso signature:MF_00646 .
  ?thisOrganism rdfs:subClassOf+ taxon:2 .
  BIND(URI(CONCAT(STR(?this), '#MF_00646a0')) AS ?name0) .
  BIND(URI(CONCAT(STR(?this), '#MF_00646a2')) AS ?annotation2) .
  BIND(URI(CONCAT(STR(?this), '#MF_00646a3')) AS ?annotation3) .
  BIND(URI(CONCAT(STR(?this), '#MF_00646a4')) AS ?annotation4) .
  BIND(URI(CONCAT(STR(?this), '#MF_00646a6')) AS ?annotation6) .
  OPTIONAL {
    ?this up:sequence ?thisSequence .
    ?thisSequence rdf:value ?thisSequenceValue .
    ?templateMotifMatch24 faldo:location ?templateMotifSequenceMatchRegionP0A6N825 ;
      edam:is_output_of ?templateMotifSequenceProfileAlignmentOperationP0A6N827 ;
      rdf:type edam:data_0869 ;
      rdf:value ?templateMotifCigarP0A6N8MF_0064620 .
    ?templateMotifSequenceMatchRegionP0A6N825 faldo:begin ?templateMotifSequenceMatchBeginP0A6N826 .
    ?templateMotifSequenceMatchBeginP0A6N826 faldo:position ?templateMotifSequenceMatchBeginPositionP0A6N821 ;
      faldo:reference isoform:P0A6N8-1 .
    ?templateMotifSequenceProfileAlignmentOperationP0A6N827 edam:has_input signature:MF_00646 ;
      rdf:type edam:operation_0300 .
    ?targetMotifMatch28 faldo:location ?targetMotifMatchRegionMatch29 ;
      edam:is_output_of ?targetMotifSequenceAlignmentOperationMF_0064631 ;
      rdf:type edam:data_0869 ;
      rdf:value ?targetMotifMatchCigarP0A6N8MF_0064622 .
    ?targetMotifMatchRegionMatch29 faldo:begin ?targetMotifMatchRegionMatchBeginMF_0064630 .
    ?targetMotifMatchRegionMatchBeginMF_0064630 faldo:position ?targetMotifMatchRegionMatchBeginPositionMF_0064623 ;
      faldo:reference ?thisSequence .
    ?targetMotifSequenceAlignmentOperationMF_0064631 edam:has_input signature:MF_00646 ;
      rdf:type edam:operation_0300 .
    BIND(?this AS ?tagacetyl) .
    ?this up:organism ?thisOrganism .
    ?thisOrganism rdfs:subClassOf+ taxon:543 .
    BIND(STRLEN(REPLACE(SUBSTR(?templateMotifCigarP0A6N8MF_0064620, 1, (STRLEN(?templateMotifCigarP0A6N8MF_0064620) - STRLEN(REPLACE(?templateMotifCigarP0A6N8MF_0064620, CONCAT('^(?:-*[^-]){', STR(((51 - ?templateMotifSequenceMatchBeginPositionP0A6N821) + 1)), '}'), '')))), '[a-z]', '')) AS ?step132) .
    BIND((STRLEN(SUBSTR(?targetMotifMatchCigarP0A6N8MF_0064622, 1, (STRLEN(?targetMotifMatchCigarP0A6N8MF_0064622) - STRLEN(REPLACE(?targetMotifMatchCigarP0A6N8MF_0064622, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step132), '}'), ''))))) - STRLEN(REPLACE(SUBSTR(?targetMotifMatchCigarP0A6N8MF_0064622, 1, (STRLEN(?targetMotifMatchCigarP0A6N8MF_0064622) - STRLEN(REPLACE(?targetMotifMatchCigarP0A6N8MF_0064622, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step132), '}'), '')))), '[^-]', ''))) AS ?step233) .
    BIND(((?step233 + ?targetMotifMatchRegionMatchBeginPositionMF_0064623) - 1) AS ?thisPositionOn12) .
    BIND(?thisPositionOn12 AS ?thisPositionOn13) .
    BIND(?this AS ?pfs1t34) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn12))) AS ?pfsb10) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn13))) AS ?pfse11) .
    FILTER ((SUBSTR(?thisSequenceValue, ?thisPositionOn12, 1) = 'K')) .
    BIND(URI(CONCAT(STR(?this), '#MF_00646a9')) AS ?annotation9) .
    BIND(?this AS ?pfs8) .
  }
  OPTIONAL {
    ?this up:sequence ?thisSequence .
    ?thisSequence rdf:value ?thisSequenceValue .
    ?templateMotifMatch39 faldo:location ?templateMotifSequenceMatchRegionP0A6N840 ;
      edam:is_output_of ?templateMotifSequenceProfileAlignmentOperationP0A6N842 ;
      rdf:type edam:data_0869 ;
      rdf:value ?templateMotifCigarP0A6N8MF_0064635 .
    ?templateMotifSequenceMatchRegionP0A6N840 faldo:begin ?templateMotifSequenceMatchBeginP0A6N841 .
    ?templateMotifSequenceMatchBeginP0A6N841 faldo:position ?templateMotifSequenceMatchBeginPositionP0A6N836 ;
      faldo:reference isoform:P0A6N8-1 .
    ?templateMotifSequenceProfileAlignmentOperationP0A6N842 edam:has_input signature:MF_00646 ;
      rdf:type edam:operation_0300 .
    ?targetMotifMatch43 faldo:location ?targetMotifMatchRegionMatch44 ;
      edam:is_output_of ?targetMotifSequenceAlignmentOperationMF_0064646 ;
      rdf:type edam:data_0869 ;
      rdf:value ?targetMotifMatchCigarP0A6N8MF_0064637 .
    ?targetMotifMatchRegionMatch44 faldo:begin ?targetMotifMatchRegionMatchBeginMF_0064645 .
    ?targetMotifMatchRegionMatchBeginMF_0064645 faldo:position ?targetMotifMatchRegionMatchBeginPositionMF_0064638 ;
      faldo:reference ?thisSequence .
    ?targetMotifSequenceAlignmentOperationMF_0064646 edam:has_input signature:MF_00646 ;
      rdf:type edam:operation_0300 .
    BIND(STRLEN(REPLACE(SUBSTR(?templateMotifCigarP0A6N8MF_0064635, 1, (STRLEN(?templateMotifCigarP0A6N8MF_0064635) - STRLEN(REPLACE(?templateMotifCigarP0A6N8MF_0064635, CONCAT('^(?:-*[^-]){', STR(((33 - ?templateMotifSequenceMatchBeginPositionP0A6N836) + 1)), '}'), '')))), '[a-z]', '')) AS ?step147) .
    BIND((STRLEN(SUBSTR(?targetMotifMatchCigarP0A6N8MF_0064637, 1, (STRLEN(?targetMotifMatchCigarP0A6N8MF_0064637) - STRLEN(REPLACE(?targetMotifMatchCigarP0A6N8MF_0064637, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step147), '}'), ''))))) - STRLEN(REPLACE(SUBSTR(?targetMotifMatchCigarP0A6N8MF_0064637, 1, (STRLEN(?targetMotifMatchCigarP0A6N8MF_0064637) - STRLEN(REPLACE(?targetMotifMatchCigarP0A6N8MF_0064637, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step147), '}'), '')))), '[^-]', ''))) AS ?step248) .
    BIND(((?step248 + ?targetMotifMatchRegionMatchBeginPositionMF_0064638) - 1) AS ?thisPositionOn18) .
    BIND(?thisPositionOn18 AS ?thisPositionOn19) .
    BIND(?this AS ?pfs2t49) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn18))) AS ?pfsb16) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn19))) AS ?pfse17) .
    FILTER ((SUBSTR(?thisSequenceValue, ?thisPositionOn18, 1) = 'R')) .
    BIND(URI(CONCAT(STR(?this), '#MF_00646a15')) AS ?annotation15) .
    BIND(?this AS ?pfs14) .
  }
  OPTIONAL {
    ?this a up:Protein .
    ?this up:organism ?thisOrganism .
    ?thisOrganism rdfs:subClassOf+ taxon:543 .
    BIND(?this AS ?caseWithTag50) .
  }
  BIND(IF(BOUND(?tagacetyl), ?caseWithTag50, ?UNBOUND_VARIABLE) AS ?case7) .
}
""" .

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