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

ex:NXQ_00023 a sh:SPARQLExecutable,
        sh:SPARQLSelectExecutable ;
    rdfs:comment "Proteins that are involved in transport and located in a membrane and that are not glycosylated (experimentally or predicted)"@en ;
    sh:prefixes _:sparql_examples_prefixes ;
    sh:select """PREFIX : <http://nextprot.org/rdf/>
PREFIX nextprot_cv: <http://nextprot.org/rdf/terminology/>

SELECT DISTINCT ?entry WHERE {
 ?entry :isoform ?iso .
 {
 ?iso :goBiologicalProcess ?gofunc .
	?gofunc :term / :childOf nextprot_cv:GO_0006810. # GO value for transport
	filter not exists {?gofunc :negativeEvidence ?negev} # No negative function evidence
 } union {
 ?iso :uniprotKeyword / :term nextprot_cv:KW-0813. # KW for transport
 }
 {
 ?iso :uniprotKeyword / :term nextprot_cv:KW-0812. # transmembrane
 } union {
 ?iso :topology / :term nextprot_cv:CVTO_0004. # intramembrane
 }
 filter not exists { ?iso :uniprotKeyword / :term nextprot_cv:KW-0325 } # not a glycoprotein
}""" ;
    schema:keywords "PTM",
        "function",
        "glycosylation",
        "subcellular location",
        "tutorial" ;
    schema:target <https://sparql.nextprot.org/sparql> .

