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#> PREFIX obo: <http://purl.obolibrary.org/obo/> PREFIX vcard: <http://www.w3.org/2006/vcard/ns#> SELECT ?subclass ?object ?label ?localName ?type ?title WHERE { ?subject ?property ?object . LET (?localName := afn:localname(?object)) OPTIONAL { ?object rdfs:label ?label } OPTIONAL { # Get mostSpecificType only for Persons ?object vitro:mostSpecificType ?subclass . ?subclass rdfs:label ?type . # Display only a mostSpecificType that belongs to a classgroup. ?subclass vitro:inClassGroup ?classGroup . ?classGroup a vitro:ClassGroup } OPTIONAL { ?object obo:ARG_2000028 ?vcard . ?vcard vcard:hasTitle ?titleObj . ?titleObj vcard:title ?title } 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 rdfs:label ?label . } WHERE { { ?subject ?property ?object . } 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#> PREFIX obo: <http://purl.obolibrary.org/obo/> PREFIX vcard: <http://www.w3.org/2006/vcard/ns#> CONSTRUCT { ?subject ?property ?object . ?object vitro:mostSpecificType ?subclass . ?subclass vitro:inClassGroup ?classGroup . ?classGroup a vitro:ClassGroup . ?subclass rdfs:label ?type . ?object obo:ARG_2000028 ?vcard . ?vcard vcard:hasTitle ?titleObj . ?titleObj vcard:title ?title } WHERE { { ?subject ?property ?object . } UNION { ?subject ?property ?object . ?object vitro:mostSpecificType ?subclass . ?subclass rdfs:label ?type . ?subclass vitro:inClassGroup ?classGroup . ?classGroup a vitro:ClassGroup } UNION { ?subject ?property ?object . ?object obo:ARG_2000028 ?vcard . ?vcard vcard:hasTitle ?titleObj . ?titleObj vcard:title ?title } }