#
# example SPARQL query 168
#

@prefix schema: <https://schema.org/> . 
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . 
@prefix sh: <http://www.w3.org/ns/shacl#> . 
@prefix cello: <https://purl.expasy.org/cellosaurus/rdf/ontology/> .


cello:Query_168 a sh:SPARQLExecutable ;
    sh:prefixes _:sparql_examples_prefixes ;
    rdfs:comment """Super class and equivalent class of each class defined in the cello ontology"""@en ; 
    schema:keywords "ontology" , "class" , "semantics" , "private" ; 
    schema:target <https://sparql.cellosaurus.org/sparql> ; 
    sh:select """
PREFIX cello: <https://purl.expasy.org/cellosaurus/rdf/ontology/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
select ?cello_class ?hasSuperClass ?rdfs_superClass ?hasEqClass ?owl_equivalentClass  where {
  ?cello_class a owl:Class .
  ?cello_class rdfs:isDefinedBy cello: .
  optional { ?cello_class owl:equivalentClass ?owl_equivalentClass . }
  optional { ?cello_class rdfs:subClassOf ?rdfs_superClass . }
  bind(if(bound(?owl_equivalentClass),"yes", "no") as ?hasEqClass)
  bind(if(bound(?rdfs_superClass),"yes", "no") as ?hasSuperClass)
}
order by ?rdfs_superClass ?owl_equivalentClass ?parent ?cello_class
    """
    .

