@prefix ex: <https://sparql.uniprot.org/.well-known/sparql-examples/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@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:29 a sh:SPARQLExecutable,
        sh:SPARQLSelectExecutable ;
    rdfs:comment "Use <a href=\"http://allie.dbcls.jp/\">ALLIE</a> a service for Abbreviation / Long Form in Japanese and English to search in UniProt using Japanese."^^rdf:HTML ;
    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 ?protein ?englishLabelStr
WHERE {
    SERVICE <https://data.allie.dbcls.jp/sparql>{
        ?x rdfs:label "アミロイド前駆体タンパク質"@ja ;
            rdfs:label ?englishLabel .
        FILTER(lang(?englishLabel) = "en")
    }
    BIND (STR(?englishLabel) AS ?englishLabelStr)
    ?protein a up:Protein .
    {
        ?protein (up:recommendedName|up:alternativeName) ?structuredName .
    }
    UNION
    {
        VALUES(?partType){(up:domain) (up:component)}
            ?protein ?partType ?part .
        ?part (up:recommendedName|up:alternativeName) ?structuredName .
    }
    ?structuredName ?anyKindOfName  ?englishLabelStr .
    ?anyKindOfName rdfs:subPropertyOf up:structuredNameType .
}""" ;
    schema:keywords "language" ;
    schema:target <https://sparql.uniprot.org/sparql/> ;
    spex:federatesWith <https://data.allie.dbcls.jp/sparql> .

