22: For two accession numbers (ACs) find the GO term labels and group them into GO process,function and component

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX up: <http://purl.uniprot.org/core/> PREFIX GO:<http://purl.obolibrary.org/obo/GO_> SELECT (CONCAT(SUBSTR(STR(?protein), 33)) AS ?uniprot) (GROUP_CONCAT(?celtype; separator=";") AS ?celtypes) (GROUP_CONCAT(?biotype; separator=";") AS ?biotypes) (GROUP_CONCAT(?moltype; separator=";") AS ?moltypes) WHERE { VALUES (?ac) {("Q6GZX4") ("Q96375")} BIND (IRI(CONCAT("http://purl.uniprot.org/uniprot/",?ac)) AS ?protein) ?protein a up:Protein . ?protein up:classifiedWith ?goTerm . #Determine if the type is biological_process OPTIONAL { ?goTerm rdfs:subClassOf GO:0008150 . ?goTerm rdfs:label ?biotype . } #Determine if the type is cellular_component OPTIONAL { ?goTerm rdfs:subClassOf GO:0005575 . ?goTerm rdfs:label ?celtype . } #Determine if the type is molecular_function OPTIONAL { ?goTerm rdfs:subClassOf GO:0003674 . ?goTerm rdfs:label ?moltype . } #Filter out the uniprot keywords FILTER(bound(?biotype) || bound(?celtype) || bound(?moltype)) } GROUP BY ?proteinUse