@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_09426 a sh:SPARQLExecutable, sh:SPARQLSelectExecutable ;
  sh:prefixes _:sparql_examples_prefixes ;
  rdfs:comment '''Check there are no entries which are PE2-PE4 with an expression-info annotation of GOLD quality which has a description which contains "(at protein level)" and evidence assigned by neXtProt'''@en ;
  schema:keywords "QC", "protein existence", "PE" ;
  schema:target <https://sparql.nextprot.org/sparql> ;
  sh:select '''PREFIX : <http://nextprot.org/rdf/>
PREFIX cv: <http://nextprot.org/rdf/terminology/>
PREFIX source: <http://nextprot.org/rdf/source/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

select distinct ?entry where {
  ?entry a :Entry.
  ?entry :existence ?pe.
  filter ( ?pe not in (:Evidence_at_protein_level,:Uncertain ))
  ?entry :isoform ?iso .
  ?iso :expressionInfo ?ex.
  ?ex :evidence /:assignedBy source:NextProt.
  ?ex :quality :GOLD.
  ?ex rdfs:comment ?comment
  filter (contains(?comment, "(at protein level)"))
}''' .
