@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_01230#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_01230#construct-template-36>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-0>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-37>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-38>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-69>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-70>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-19>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-20>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-66>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-67>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-21>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-71>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-16>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-17>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-39>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-54>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-7>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-44>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-26>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-25>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-47>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-65>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-5>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-51>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-57>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-32>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-28>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-35>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-12>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-29>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-43>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-72>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-15>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-10>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-60>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-2>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-14>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-56>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-18>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-46>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-4>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-3>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-34>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-30>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-45>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-68>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-50>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-13>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-42>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-23>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-40>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-41>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-64>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-48>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-22>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-1>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-61>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-63>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-59>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-49>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-62>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-6>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-24>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-53>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-31>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-8>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-52>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-27>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-9>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-55>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-33>,
    <http://purl.uniprot.org/unirules/MF_01230#construct-template-11>, <http://purl.uniprot.org/unirules/MF_01230#construct-template-58>;
  <http://www.w3.org/ns/shacl#prefixes> <http://purl.uniprot.org/unirules/>;
  <http://spinrdf.org/sp#where> <http://purl.uniprot.org/unirules/MF_01230#construct-where-list-0>;
  <http://spinrdf.org/sp#templates> <http://purl.uniprot.org/unirules/MF_01230#construct-template-list-0>;
  <http://www.w3.org/ns/shacl#construct> """CONSTRUCT {
  _:434385 up:source unirule:MF_01230 .
  _:434386 up:source unirule:MF_01230 .
  _:434387 up:source unirule:MF_01230 .
  _:434388 up:source unirule:MF_01230 .
  _:434389 up:source unirule:MF_01230 .
  _:434390 up:source unirule:MF_01230 .
  _:434391 up:source unirule:MF_01230 .
  _:434392 up:source unirule:MF_01230 .
  _:434393 up:source unirule:MF_01230 .
  _:434394 up:source unirule:MF_01230 .
  _:434395 up:source unirule:MF_01230 .
  ?this up:annotation ?annotation2 ,
      ?annotation3 ,
      ?annotation5 ,
      ?annotation6 ;
    up:classifiedWith GO:0018786 ,
      keyword:378 ;
    up:recommendedName ?name0 .
  ?name0 up:ecName '3.8.1.5' ;
    up:fullName 'Haloalkane dehalogenase' ;
    rdf:type up:Structured_Name .
  ?gene1 skos:prefLabel 'dhmA' .
  ?annotation2 a up:Function_Annotation ;
    rdfs:comment 'Catalyzes hydrolytic cleavage of carbon-halogen bonds in halogenated aliphatic compounds, leading to the formation of the corresponding primary alcohols, halide ions and protons.' .
  ?annotation3 up:activity ?activity4 ;
    rdf:type up:Catalytic_Activity_Annotation .
  ?activity4 up:catalyticActivity <http://rdf.rhea-db.org/19081>;
    up:enzymeClass <http://purl.uniprot.org/enzyme/3.8.1.5>.
  ?annotation5 a up:Subunit_Annotation ;
    rdfs:comment 'Monomer.' .
  ?annotation6 a up:Similarity_Annotation ;
    rdfs:comment 'Belongs to the haloalkane dehalogenase family. Type 1 subfamily.' .
  ?pfs7 up:annotation ?annotation8 .
  ?annotation8 faldo:begin ?pfsb9 ;
    faldo:end ?pfse10 ;
    rdf:type up:Active_Site_Annotation ;
    rdfs:comment 'Nucleophile' .
  ?pfsb9 faldo:position ?thisPositionOn11 ;
    rdf:type faldo:ExactPosition .
  ?pfse10 faldo:position ?thisPositionOn12 ;
    rdf:type faldo:ExactPosition .
  ?pfs13 up:annotation ?annotation14 .
  ?annotation14 faldo:begin ?pfsb15 ;
    faldo:end ?pfse16 ;
    rdf:type up:Active_Site_Annotation ;
    rdfs:comment 'Proton donor' .
  ?pfsb15 faldo:position ?thisPositionOn17 ;
    rdf:type faldo:ExactPosition .
  ?pfse16 faldo:position ?thisPositionOn18 ;
    rdf:type faldo:ExactPosition .
  ?pfs19 up:annotation ?annotation20 .
  ?annotation20 faldo:begin ?pfsb21 ;
    faldo:end ?pfse22 ;
    rdf:type up:Active_Site_Annotation ;
    rdfs:comment 'Proton acceptor' .
  ?pfsb21 faldo:position ?thisPositionOn23 ;
    rdf:type faldo:ExactPosition .
  ?pfse22 faldo:position ?thisPositionOn24 ;
    rdf:type faldo:ExactPosition .
  _:434396 a rdf:Statement ;
    up:attribution _:434385 ;
    rdf:subject ?this ;
    rdf:predicate up:recommendedName ;
    rdf:object ?name0 .
  _:434397 a rdf:Statement ;
    up:attribution _:434386 ;
    rdf:subject ?gene1 ;
    rdf:predicate up:encodedBy ;
    rdf:object ?gene1 .
  _:434398 a rdf:Statement ;
    up:attribution _:434387 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation2 .
  _:434399 a rdf:Statement ;
    up:attribution _:434388 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation3 .
  _:434400 a rdf:Statement ;
    up:attribution _:434389 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation5 .
  _:434401 a rdf:Statement ;
    up:attribution _:434390 ;
    rdf:subject ?this ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation6 .
  _:434402 a rdf:Statement ;
    up:attribution _:434391 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object keyword:378 .
  _:434403 a rdf:Statement ;
    up:attribution _:434392 ;
    rdf:subject ?this ;
    rdf:predicate up:classifiedWith ;
    rdf:object GO:0018786 .
  _:434404 a rdf:Statement ;
    up:source unirule:MF_01230 ;
    rdf:subject ?pfs7 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation8 .
  _:434405 a rdf:Statement ;
    up:attribution _:434393 ;
    rdf:subject ?pfs7 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation8 .
  _:434406 a rdf:Statement ;
    up:source unirule:MF_01230 ;
    rdf:subject ?pfs13 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation14 .
  _:434407 a rdf:Statement ;
    up:attribution _:434394 ;
    rdf:subject ?pfs13 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation14 .
  _:434408 a rdf:Statement ;
    up:source unirule:MF_01230 ;
    rdf:subject ?pfs19 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation20 .
  _:434409 a rdf:Statement ;
    up:attribution _:434395 ;
    rdf:subject ?pfs19 ;
    rdf:predicate up:annotation ;
    rdf:object ?annotation20 .
}
WHERE {
  #baseURI: http://purl.uniprot.org/unirule/MF_01230
  #Rule MF_01230 Created by:? on:2005-02-28 Modified by:Edouard de Castro on:2019-11-19
  ?this up:organism ?thisOrganism ;
    rdfs:seeAlso signature:MF_01230 .
  ?thisOrganism rdfs:subClassOf+ taxon:2 .
  BIND(URI(CONCAT(STR(?this), '#MF_01230a0')) AS ?name0) .
  BIND(URI(CONCAT(STR(?this), '#MF_01230a2')) AS ?annotation2) .
  BIND(URI(CONCAT(STR(?this), '#MF_01230a3')) AS ?annotation3) .
  BIND(URI(CONCAT(STR(?this), '#MF_01230a5')) AS ?annotation5) .
  BIND(URI(CONCAT(STR(?this), '#MF_01230a6')) AS ?annotation6) .
  OPTIONAL {
    ?this up:sequence ?thisSequence .
    ?thisSequence rdf:value ?thisSequenceValue .
    ?templateMotifMatch29 faldo:location ?templateMotifSequenceMatchRegionP2264330 ;
      edam:is_output_of ?templateMotifSequenceProfileAlignmentOperationP2264332 ;
      rdf:type edam:data_0869 ;
      rdf:value ?templateMotifCigarP22643MF_0123025 .
    ?templateMotifSequenceMatchRegionP2264330 faldo:begin ?templateMotifSequenceMatchBeginP2264331 .
    ?templateMotifSequenceMatchBeginP2264331 faldo:position ?templateMotifSequenceMatchBeginPositionP2264326 ;
      faldo:reference isoform:P22643-1 .
    ?templateMotifSequenceProfileAlignmentOperationP2264332 edam:has_input signature:MF_01230 ;
      rdf:type edam:operation_0300 .
    ?targetMotifMatch33 faldo:location ?targetMotifMatchRegionMatch34 ;
      edam:is_output_of ?targetMotifSequenceAlignmentOperationMF_0123036 ;
      rdf:type edam:data_0869 ;
      rdf:value ?targetMotifMatchCigarP22643MF_0123027 .
    ?targetMotifMatchRegionMatch34 faldo:begin ?targetMotifMatchRegionMatchBeginMF_0123035 .
    ?targetMotifMatchRegionMatchBeginMF_0123035 faldo:position ?targetMotifMatchRegionMatchBeginPositionMF_0123028 ;
      faldo:reference ?thisSequence .
    ?targetMotifSequenceAlignmentOperationMF_0123036 edam:has_input signature:MF_01230 ;
      rdf:type edam:operation_0300 .
    BIND(STRLEN(REPLACE(SUBSTR(?templateMotifCigarP22643MF_0123025, 1, (STRLEN(?templateMotifCigarP22643MF_0123025) - STRLEN(REPLACE(?templateMotifCigarP22643MF_0123025, CONCAT('^(?:-*[^-]){', STR(((124 - ?templateMotifSequenceMatchBeginPositionP2264326) + 1)), '}'), '')))), '[a-z]', '')) AS ?step137) .
    BIND((STRLEN(SUBSTR(?targetMotifMatchCigarP22643MF_0123027, 1, (STRLEN(?targetMotifMatchCigarP22643MF_0123027) - STRLEN(REPLACE(?targetMotifMatchCigarP22643MF_0123027, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step137), '}'), ''))))) - STRLEN(REPLACE(SUBSTR(?targetMotifMatchCigarP22643MF_0123027, 1, (STRLEN(?targetMotifMatchCigarP22643MF_0123027) - STRLEN(REPLACE(?targetMotifMatchCigarP22643MF_0123027, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step137), '}'), '')))), '[^-]', ''))) AS ?step238) .
    BIND(((?step238 + ?targetMotifMatchRegionMatchBeginPositionMF_0123028) - 1) AS ?thisPositionOn11) .
    BIND(?thisPositionOn11 AS ?thisPositionOn12) .
    BIND(?this AS ?pfs1t39) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn11))) AS ?pfsb9) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn12))) AS ?pfse10) .
    FILTER ((SUBSTR(?thisSequenceValue, ?thisPositionOn11, 1) = 'D')) .
    BIND(URI(CONCAT(STR(?this), '#MF_01230a8')) AS ?annotation8) .
    BIND(?this AS ?pfs7) .
  }
  OPTIONAL {
    ?this up:sequence ?thisSequence .
    ?thisSequence rdf:value ?thisSequenceValue .
    ?templateMotifMatch44 faldo:location ?templateMotifSequenceMatchRegionP2264345 ;
      edam:is_output_of ?templateMotifSequenceProfileAlignmentOperationP2264347 ;
      rdf:type edam:data_0869 ;
      rdf:value ?templateMotifCigarP22643MF_0123040 .
    ?templateMotifSequenceMatchRegionP2264345 faldo:begin ?templateMotifSequenceMatchBeginP2264346 .
    ?templateMotifSequenceMatchBeginP2264346 faldo:position ?templateMotifSequenceMatchBeginPositionP2264341 ;
      faldo:reference isoform:P22643-1 .
    ?templateMotifSequenceProfileAlignmentOperationP2264347 edam:has_input signature:MF_01230 ;
      rdf:type edam:operation_0300 .
    ?targetMotifMatch48 faldo:location ?targetMotifMatchRegionMatch49 ;
      edam:is_output_of ?targetMotifSequenceAlignmentOperationMF_0123051 ;
      rdf:type edam:data_0869 ;
      rdf:value ?targetMotifMatchCigarP22643MF_0123042 .
    ?targetMotifMatchRegionMatch49 faldo:begin ?targetMotifMatchRegionMatchBeginMF_0123050 .
    ?targetMotifMatchRegionMatchBeginMF_0123050 faldo:position ?targetMotifMatchRegionMatchBeginPositionMF_0123043 ;
      faldo:reference ?thisSequence .
    ?targetMotifSequenceAlignmentOperationMF_0123051 edam:has_input signature:MF_01230 ;
      rdf:type edam:operation_0300 .
    BIND(STRLEN(REPLACE(SUBSTR(?templateMotifCigarP22643MF_0123040, 1, (STRLEN(?templateMotifCigarP22643MF_0123040) - STRLEN(REPLACE(?templateMotifCigarP22643MF_0123040, CONCAT('^(?:-*[^-]){', STR(((260 - ?templateMotifSequenceMatchBeginPositionP2264341) + 1)), '}'), '')))), '[a-z]', '')) AS ?step152) .
    BIND((STRLEN(SUBSTR(?targetMotifMatchCigarP22643MF_0123042, 1, (STRLEN(?targetMotifMatchCigarP22643MF_0123042) - STRLEN(REPLACE(?targetMotifMatchCigarP22643MF_0123042, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step152), '}'), ''))))) - STRLEN(REPLACE(SUBSTR(?targetMotifMatchCigarP22643MF_0123042, 1, (STRLEN(?targetMotifMatchCigarP22643MF_0123042) - STRLEN(REPLACE(?targetMotifMatchCigarP22643MF_0123042, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step152), '}'), '')))), '[^-]', ''))) AS ?step253) .
    BIND(((?step253 + ?targetMotifMatchRegionMatchBeginPositionMF_0123043) - 1) AS ?thisPositionOn17) .
    BIND(?thisPositionOn17 AS ?thisPositionOn18) .
    BIND(?this AS ?pfs1t54) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn17))) AS ?pfsb15) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn18))) AS ?pfse16) .
    FILTER ((SUBSTR(?thisSequenceValue, ?thisPositionOn17, 1) = 'D')) .
    BIND(URI(CONCAT(STR(?this), '#MF_01230a14')) AS ?annotation14) .
    BIND(?this AS ?pfs13) .
  }
  OPTIONAL {
    ?this up:sequence ?thisSequence .
    ?thisSequence rdf:value ?thisSequenceValue .
    ?templateMotifMatch59 faldo:location ?templateMotifSequenceMatchRegionP2264360 ;
      edam:is_output_of ?templateMotifSequenceProfileAlignmentOperationP2264362 ;
      rdf:type edam:data_0869 ;
      rdf:value ?templateMotifCigarP22643MF_0123055 .
    ?templateMotifSequenceMatchRegionP2264360 faldo:begin ?templateMotifSequenceMatchBeginP2264361 .
    ?templateMotifSequenceMatchBeginP2264361 faldo:position ?templateMotifSequenceMatchBeginPositionP2264356 ;
      faldo:reference isoform:P22643-1 .
    ?templateMotifSequenceProfileAlignmentOperationP2264362 edam:has_input signature:MF_01230 ;
      rdf:type edam:operation_0300 .
    ?targetMotifMatch63 faldo:location ?targetMotifMatchRegionMatch64 ;
      edam:is_output_of ?targetMotifSequenceAlignmentOperationMF_0123066 ;
      rdf:type edam:data_0869 ;
      rdf:value ?targetMotifMatchCigarP22643MF_0123057 .
    ?targetMotifMatchRegionMatch64 faldo:begin ?targetMotifMatchRegionMatchBeginMF_0123065 .
    ?targetMotifMatchRegionMatchBeginMF_0123065 faldo:position ?targetMotifMatchRegionMatchBeginPositionMF_0123058 ;
      faldo:reference ?thisSequence .
    ?targetMotifSequenceAlignmentOperationMF_0123066 edam:has_input signature:MF_01230 ;
      rdf:type edam:operation_0300 .
    BIND(STRLEN(REPLACE(SUBSTR(?templateMotifCigarP22643MF_0123055, 1, (STRLEN(?templateMotifCigarP22643MF_0123055) - STRLEN(REPLACE(?templateMotifCigarP22643MF_0123055, CONCAT('^(?:-*[^-]){', STR(((289 - ?templateMotifSequenceMatchBeginPositionP2264356) + 1)), '}'), '')))), '[a-z]', '')) AS ?step167) .
    BIND((STRLEN(SUBSTR(?targetMotifMatchCigarP22643MF_0123057, 1, (STRLEN(?targetMotifMatchCigarP22643MF_0123057) - STRLEN(REPLACE(?targetMotifMatchCigarP22643MF_0123057, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step167), '}'), ''))))) - STRLEN(REPLACE(SUBSTR(?targetMotifMatchCigarP22643MF_0123057, 1, (STRLEN(?targetMotifMatchCigarP22643MF_0123057) - STRLEN(REPLACE(?targetMotifMatchCigarP22643MF_0123057, CONCAT('^(?:[a-z]*(?:[A-Z]|-)){', STR(?step167), '}'), '')))), '[^-]', ''))) AS ?step268) .
    BIND(((?step268 + ?targetMotifMatchRegionMatchBeginPositionMF_0123058) - 1) AS ?thisPositionOn23) .
    BIND(?thisPositionOn23 AS ?thisPositionOn24) .
    BIND(?this AS ?pfs1t69) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn23))) AS ?pfsb21) .
    BIND(URI(CONCAT(STR(?thisSequence), '#position', STR(?thisPositionOn24))) AS ?pfse22) .
    FILTER ((SUBSTR(?thisSequenceValue, ?thisPositionOn23, 1) = 'H')) .
    BIND(URI(CONCAT(STR(?this), '#MF_01230a20')) AS ?annotation20) .
    BIND(?this AS ?pfs19) .
  }
}
""" .

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