@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_00217 a sh:SPARQLExecutable,
        sh:SPARQLSelectExecutable ;
    rdfs:comment "Proteins associated with an incomplete EC number, no function annotated and high expression in liver"@en ;
    sh:prefixes _:sparql_examples_prefixes ;
    sh:select """PREFIX : <http://nextprot.org/rdf/>
PREFIX nextprot_cv: <http://nextprot.org/rdf/terminology/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

SELECT DISTINCT ?entry WHERE {
 ?entry :isoform ?isox.
 ?isox :enzymeClassification / :term / rdfs:label ?eclabel.
 filter regex(?eclabel, '-'^^xsd:string) # incomplete EC number
 ?isox :highExpression /:term /:childOf nextprot_cv:TS-0564. # highly expressed in liver
 {
 ?isox :functionInfo / rdfs:comment ?functext .
 filter(strstarts(?functext,"Probable") || strstarts(?functext,"Putative"))
 }
 UNION
 {
 filter not exists {?isox :functionInfo ?_ } # entries with no function at all
 }
}""" ;
    schema:keywords "enzyme",
        "expression",
        "function",
        "tutorial" ;
    schema:target <https://sparql.nextprot.org/sparql> .

