PREFIX afn: <http://jena.hpl.hp.com/ARQ/function#> PREFIX core: <http://vivoweb.org/ontology/core#> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> SELECT ?subclass ?object ?label ?localName ?type ?objectType ?title WHERE { ?subject ?property ?object . ?object a ?objectType LET (?localName := afn:localname(?object)) OPTIONAL { ?object rdfs:label ?label } OPTIONAL { # Get mostSpecificType only for Persons ?object a foaf:Person . ?object vitro:mostSpecificType ?typeUri . ?typeUri rdfs:label ?type . # Display only a mostSpecificType that belongs to a classgroup. ?typeUri vitro:inClassGroup ?classGroup . ?classGroup a vitro:ClassGroup } OPTIONAL { ?object core:preferredTitle ?title } OPTIONAL { ?object a ?subclass } FILTER ( afn:namespace(?subclass) != "http://vitro.mannlib.cornell.edu/ns/vitro/0.7#" ) # Order by ?type is important, because if the object has more than one mostSpecificType, # they all get returned, but postprocessing culls out all but one. Ordering by ?type # will ensure that at least we'll get the same one every time. } ORDER BY ?subclass ASC( ?label ) ASC( ?localName ) ?type PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> CONSTRUCT { ?subject ?property ?object . ?object a ?subclass . ?object rdfs:label ?label . } WHERE { { ?subject ?property ?object . } UNION { ?subject ?property ?object . ?object a ?subclass . } UNION { ?subject ?property ?object . ?object rdfs:label ?label . } } PREFIX core: <http://vivoweb.org/ontology/core#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> CONSTRUCT { ?subject ?property ?object . ?object vitro:mostSpecificType ?typeUri . ?typeUri vitro:inClassGroup ?classGroup . ?classGroup a vitro:ClassGroup . ?typeUri rdfs:label ?type . ?object core:preferredTitle ?title . } WHERE { { ?subject ?property ?object . ?object vitro:mostSpecificType ?typeUri . ?typeUri rdfs:label ?type . ?typeUri vitro:inClassGroup ?classGroup . ?classGroup a vitro:ClassGroup } UNION { ?subject ?property ?object . ?object core:preferredTitle ?title . } }