@prefix ex: <https://sparql.uniprot.org/.well-known/sparql-examples/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix schema: <https://schema.org/> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

ex:103_uniprot_proteome_location_of_gene a sh:SPARQLExecutable,
        sh:SPARQLSelectExecutable ;
    rdfs:comment "List UniProtKB proteins with genetic replicon that they are encoded on using the Proteome data."@en ;
    sh:prefixes _:sparql_examples_prefixes ;
    sh:select """PREFIX taxon: <http://purl.uniprot.org/taxonomy/>
PREFIX up: <http://purl.uniprot.org/core/>

SELECT
  DISTINCT
    ?proteomeData
    ?replicon
    ?proteome  
WHERE {
  # reviewed entries (UniProtKB/Swiss-Prot)
  ?protein up:reviewed true . 
  # restricted to Human taxid
  ?protein up:organism taxon:9606 .
  ?protein up:proteome ?proteomeData .
  BIND( strbefore( str(?proteomeData), "#" ) as ?proteome )
  BIND( strafter( str(?proteomeData), "#" ) as ?replicon )
}""" ;
    schema:keywords "proteome" ;
    schema:target <https://sparql.uniprot.org/sparql/> .

