@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#> .
@prefix spex:<https://purl.expasy.org/sparql-examples/ontology#> .

ex:90_uniprot_affected_by_metabolic_diseases_using_MeSH a sh:SPARQLExecutable,
        sh:SPARQLSelectExecutable ;
    rdfs:comment "Find UniProtKB proteins involved in metabolic diseases using the MeSH concept for 'Metabolic Diseases'."@en ;
    sh:prefixes _:sparql_examples_prefixes ;
    sh:select """PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX up: <http://purl.uniprot.org/core/>

SELECT
 ?disease ?protein
WHERE {
  SERVICE<https://id.nlm.nih.gov/mesh/sparql> {
    GRAPH <http://id.nlm.nih.gov/mesh> {
      # Mesh M0013493 represents the concept 'Metabolic Diseases'
	  ?mesh <http://id.nlm.nih.gov/mesh/vocab#broaderDescriptor>* ?broader .
      ?broader <http://id.nlm.nih.gov/mesh/vocab#preferredConcept> <http://id.nlm.nih.gov/mesh/M0013493> .
    }
  }
  GRAPH <http://sparql.uniprot.org/diseases>{
    ?disease a up:Disease ;
    	rdfs:seeAlso ?mesh .
    ?mesh up:database <http://purl.uniprot.org/database/MeSH> .
  }
  GRAPH <http://sparql.uniprot.org/uniprot> {
     ?protein up:annotation/up:disease ?disease . 
  }
}""" ;
    schema:keywords "enzyme" , "disease" , "MeSH" ; 
    schema:target <https://sparql.uniprot.org/sparql/> ;
    spex:federatesWith <https://id.nlm.nih.gov/mesh/sparql> .

