@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_00028 a sh:SPARQLExecutable,
        sh:SPARQLSelectExecutable ;
    rdfs:comment "Proteins associated with a disease but without a disease-causing amino-acid substitution variant"@en ;
    sh:prefixes _:sparql_examples_prefixes ;
    sh:select """PREFIX : <http://nextprot.org/rdf/>
PREFIX nextprot_cv: <http://nextprot.org/rdf/terminology/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

SELECT DISTINCT ?entry WHERE {
 ?entry :isoform ?iso.
 {
	 ?iso :medical / rdf:type :Disease.
 } union {
 ?iso :uniprotKeyword / :term ?kw .
	 ?kw :termType "Disease"^^xsd:string
	 filter (?kw != nextprot_cv:KW-0656)
 }
 filter ( not exists { ?entry :isoform / :variant / :disease ?_ . } )
 filter ( not exists {
	?entry :isoform / :proteoform ?pf.
	?pf :difference / :evidence / :negative false. # positive evidence only
	?pf :diseaseRelatedVariant / :term nextprot_cv:ME_0000013 . # cause of disease
 } )
}""" ;
    schema:keywords "disease",
        "keyword",
        "tutorial",
        "variant" ;
    schema:target <https://sparql.nextprot.org/sparql> .

