@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_04030#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_04030#construct-template-10>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-14>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-15>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-42>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-27>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-6>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-51>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-64>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-65>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-34>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-4>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-38>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-39>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-53>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-54>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-60>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-61>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-30>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-36>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-29>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-41>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-43>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-12>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-22>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-66>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-62>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-5>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-16>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-44>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-48>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-20>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-63>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-40>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-31>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-49>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-67>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-24>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-1>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-7>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-68>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-55>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-52>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-69>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-45>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-21>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-32>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-50>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-18>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-46>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-47>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-23>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-70>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-33>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-37>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-25>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-3>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-26>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-19>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-17>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-0>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-28>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-9>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-58>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-35>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-8>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-2>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-13>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-71>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-11>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-56>, <http://purl.uniprot.org/unirules/MF_04030#construct-template-57>,
    <http://purl.uniprot.org/unirules/MF_04030#construct-template-59>;
  <http://www.w3.org/ns/shacl#prefixes> <http://purl.uniprot.org/unirules/>;
  <http://spinrdf.org/sp#where> <http://purl.uniprot.org/unirules/MF_04030#construct-where-list-0>;
  <http://spinrdf.org/sp#templates> <http://purl.uniprot.org/unirules/MF_04030#construct-template-list-0>;
  <http://www.w3.org/ns/shacl#construct> """CONSTRUCT {
  _:904537 up:source unirule:MF_04030 .
  _:904538 up:source unirule:MF_04030 .
  _:904539 up:source unirule:MF_04030 .
  _:904540 up:source unirule:MF_04030 .
  _:904541 up:source unirule:MF_04030 .
  _:904542 up:source unirule:MF_04030 .
  _:904543 up:source unirule:MF_04030 .
  _:904544 up:source unirule:MF_04030 .
  _:904545 up:source unirule:MF_04030 .
  _:904546 up:source unirule:MF_04030 .
  _:904547 up:source unirule:MF_04030 .
  _:904548 up:source unirule:MF_04030 .
  _:904549 up:source unirule:MF_04030 .
  _:904550 up:source unirule:MF_04030 .
  _:904551 up:source unirule:MF_04030 .
  _:904552 up:source unirule:MF_04030 .
  _:904553 up:source unirule:MF_04030 .
  ?this up:annotation ?annotation2 ,
      ?annotation3 ,
      ?annotation4 ,
      ?annotation6 ;
    up:classifiedWith GO:0004386 ,
      GO:0005524 ,
      GO:0039686 ,
      GO:0042025 ,
      keyword:1048 ,
      keyword:235 ,
      keyword:347 ,
      keyword:378 ,
      keyword:547 ,
      keyword:67 ;
    up:recommendedName ?name0 .
  ?name0 up:ecName '3.6.4.-' ;
    up:fullName 'DNA replication helicase' ;
    rdf:type up:Structured_Name .
  ?gene1 skos:prefLabel 'HELI' .
  ?annotation2 a up:Function_Annotation ;
    rdfs:comment 'Component of the helicase/primase complex. Unwinds the DNA at the replication forks and generates single-stranded DNA for both leading and lagging strand synthesis. The primase synthesizes short RNA primers on the lagging strand that the polymerase elongates using dNTPs. Possesses helicase-like motifs and therefore may act as the helicase subunit of the complex.' .
  ?annotation3 a up:Subunit_Annotation ;
    rdfs:comment 'Associates with the primase and the primase-associated factor to form the helicase-primase complex.' .
  ?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 herpesviridae helicase family.' .
  ?pfs7 up:annotation ?annotation8 .
  ?annotation8 faldo:begin ?pfsb9 ;
    faldo:end ?pfse10 ;
    up:ligand ?ligand11 ;
    rdf:type up:Binding_Site_Annotation .
  ?pfsb9 faldo:position ?thisPositionOn12 ;
    rdf:type faldo:ExactPosition .
  ?pfse10 faldo:position ?thisPositionOn13 ;
    rdf:type faldo:ExactPosition .
  ?ligand11 rdfs:subClassOf chebi:30616 .
  _:904554 a rdf:Statement ;
    up:attribution _:904537 ;
    rdf:subject ?this ;
    rdf:predicate up:recommendedName ;
    rdf:object ?name0 .
  _:904555 a rdf:Statement ;
    up:attribution _:904538 ;
    rdf:subject ?gene1 ;
    rdf:predicate up:encodedBy ;
    rdf:object ?gene1 .
  _:904556 a rdf:Statement ;
    up:attribution _:904539 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation2 .
  _:904557 a rdf:Statement ;
    up:attribution _:904540 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation3 .
  _:904558 a rdf:Statement ;
    up:attribution _:904541 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation4 .
  _:904559 a rdf:Statement ;
    up:attribution _:904542 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation6 .
  _:904560 a rdf:Statement ;
    up:attribution _:904543 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object keyword:67 .
  _:904561 a rdf:Statement ;
    up:attribution _:904544 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object keyword:235 .
  _:904562 a rdf:Statement ;
    up:attribution _:904545 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object keyword:347 .
  _:904563 a rdf:Statement ;
    up:attribution _:904546 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object keyword:1048 .
  _:904564 a rdf:Statement ;
    up:attribution _:904547 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object keyword:378 .
  _:904565 a rdf:Statement ;
    up:attribution _:904548 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object keyword:547 .
  _:904566 a rdf:Statement ;
    up:attribution _:904549 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object GO:0042025 .
  _:904567 a rdf:Statement ;
    up:attribution _:904550 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object GO:0005524 .
  _:904568 a rdf:Statement ;
    up:attribution _:904551 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object GO:0004386 .
  _:904569 a rdf:Statement ;
    up:attribution _:904552 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object GO:0039686 .
  _:904570 a rdf:Statement ;
    up:source unirule:MF_04030 ;
    rdf:subject ?pfs7 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation8 .
  _:904571 a rdf:Statement ;
    up:attribution _:904553 ;
    rdf:subject ?pfs7 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation8 .
}
WHERE {
  #baseURI: http://purl.uniprot.org/unirule/MF_04030
  #Rule MF_04030 Created by:? on:2016-05-09 Modified by:Edouard de Castro on:2022-11-19
  ?this up:organism ?thisOrganism ;
    rdfs:seeAlso signature:MF_04030 .
  ?thisOrganism rdfs:subClassOf+ taxon:10292 .
  BIND(URI(CONCAT(STR(?this), '#MF_04030a0')) AS ?name0) .
  BIND(URI(CONCAT(STR(?this), '#MF_04030a2')) AS ?annotation2) .
  BIND(URI(CONCAT(STR(?this), '#MF_04030a3')) AS ?annotation3) .
  BIND(URI(CONCAT(STR(?this), '#MF_04030a4')) AS ?annotation4) .
  BIND(URI(CONCAT(STR(?this), '#MF_04030a6')) AS ?annotation6) .
  OPTIONAL {
    ?this up:sequence ?thisSequence .
    ?thisSequence rdf:value ?thisSequenceValue .
    ?templateMotifMatch18 faldo:location ?templateMotifSequenceMatchRegionP1018919 ;
      edam:is_output_of ?templateMotifSequenceProfileAlignmentOperationP1018921 ;
      rdf:type edam:data_0869 ;
      rdf:value ?templateMotifCigarP10189MF_0403014 .
    ?templateMotifSequenceMatchRegionP1018919 faldo:begin ?templateMotifSequenceMatchBeginP1018920 .
    ?templateMotifSequenceMatchBeginP1018920 faldo:position ?templateMotifSequenceMatchBeginPositionP1018915 ;
      faldo:reference isoform:P10189-1 .
    ?templateMotifSequenceProfileAlignmentOperationP1018921 edam:has_input signature:MF_04030 ;
      rdf:type edam:operation_0300 .
    ?targetMotifMatch22 faldo:location ?targetMotifMatchRegionMatch23 ;
      edam:is_output_of ?targetMotifSequenceAlignmentOperationMF_0403025 ;
      rdf:type edam:data_0869 ;
      rdf:value ?targetMotifMatchCigarP10189MF_0403016 .
    ?targetMotifMatchRegionMatch23 faldo:begin ?targetMotifMatchRegionMatchBeginMF_0403024 .
    ?targetMotifMatchRegionMatchBeginMF_0403024 faldo:position ?targetMotifMatchRegionMatchBeginPositionMF_0403017 ;
      faldo:reference ?thisSequence .
    ?targetMotifSequenceAlignmentOperationMF_0403025 edam:has_input signature:MF_04030 ;
      rdf:type edam:operation_0300 .
    BIND(STRLEN(REPLACE(SUBSTR(?templateMotifCigarP10189MF_0403014, 1, (STRLEN(?templateMotifCigarP10189MF_0403014) - STRLEN(REPLACE(?templateMotifCigarP10189MF_0403014, CONCAT('^(?:-*[^-]){', STR(((97 - ?templateMotifSequenceMatchBeginPositionP1018915) + 1)), '}'), '')))), '[a-z]', '')) AS ?step126) .
    BIND((STRLEN(SUBSTR(?targetMotifMatchCigarP10189MF_0403016, 1, (STRLEN(?targetMotifMatchCigarP10189MF_0403016) - STRLEN(REPLACE(?targetMotifMatchCigarP10189MF_0403016, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step126), '}'), ''))))) - STRLEN(REPLACE(SUBSTR(?targetMotifMatchCigarP10189MF_0403016, 1, (STRLEN(?targetMotifMatchCigarP10189MF_0403016) - STRLEN(REPLACE(?targetMotifMatchCigarP10189MF_0403016, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step126), '}'), '')))), '[^-]', ''))) AS ?step227) .
    BIND(((?step227 + ?targetMotifMatchRegionMatchBeginPositionMF_0403017) - 1) AS ?thisPositionOn12) .
    BIND(STRLEN(REPLACE(SUBSTR(?templateMotifCigarP10189MF_0403014, 1, (STRLEN(?templateMotifCigarP10189MF_0403014) - STRLEN(REPLACE(?templateMotifCigarP10189MF_0403014, CONCAT('^(?:-*[^-]){', STR(((104 - ?templateMotifSequenceMatchBeginPositionP1018915) + 1)), '}'), '')))), '[a-z]', '')) AS ?step128) .
    BIND((STRLEN(SUBSTR(?targetMotifMatchCigarP10189MF_0403016, 1, (STRLEN(?targetMotifMatchCigarP10189MF_0403016) - STRLEN(REPLACE(?targetMotifMatchCigarP10189MF_0403016, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step128), '}'), ''))))) - STRLEN(REPLACE(SUBSTR(?targetMotifMatchCigarP10189MF_0403016, 1, (STRLEN(?targetMotifMatchCigarP10189MF_0403016) - STRLEN(REPLACE(?targetMotifMatchCigarP10189MF_0403016, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step128), '}'), '')))), '[^-]', ''))) AS ?step229) .
    BIND(((?step229 + ?targetMotifMatchRegionMatchBeginPositionMF_0403017) - 1) AS ?thisPositionOn13) .
    BIND(?this AS ?pfs1t30) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn12))) AS ?pfsb9) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn13))) AS ?pfse10) .
    FILTER (REGEX('G[ARNDCQEGHILKMFPSTWYVBZJUOX]AG[ARNDCQEGHILKMFPSTWYVBZJUOX]GK[ST]', SUBSTR(?thisSequenceValue, ?thisPositionOn12, (?thisPositionOn13 - ?thisPositionOn12)))) .
    BIND(URI(CONCAT(STR(?this), '#MF_04030a8')) AS ?annotation8) .
    BIND(?this AS ?pfs7) .
  }
}
""" .

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