PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX core: <http://vivoweb.org/ontology/core#> PREFIX afn: <http://jena.hpl.hp.com/ARQ/function#> PREFIX vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> SELECT DISTINCT ?subclass # send the property to the template, since this view supports multiple role properties ?property ?role ?roleLabel ?roleTypeLabel ?indivInRole (afn:localname(?indivInRole) AS ?indivName) ?indivLabel ?dateTimeInterval ?dateTimeStart ?dateTimeEnd ?objectType WHERE { ?subject ?property ?role . ?role a ?objectType OPTIONAL { ?role rdfs:label ?roleLabel } # We need ?subclass in the uncollated query to get the roleTypeLabel # for roles that have no label. OPTIONAL { ?role vitro:mostSpecificType ?subclass . } OPTIONAL { ?role vitro:mostSpecificType ?subclass . ?subclass rdfs:label ?roleTypeLabel } OPTIONAL { ?role <http://purl.obolibrary.org/obo/RO_0000052> ?indivInRole } OPTIONAL { ?role <http://purl.obolibrary.org/obo/RO_0000052> ?indivInRole . ?indivInRole rdfs:label ?indivLabel } OPTIONAL { ?role <http://purl.obolibrary.org/obo/BFO_0000054> ?indivInRole . } OPTIONAL { ?role <http://purl.obolibrary.org/obo/BFO_0000054> ?indivInRole . ?indivInRole rdfs:label ?indivLabel } OPTIONAL { ?role core:dateTimeInterval ?dateTimeInterval . ?dateTimeInterval core:start ?dateTimeStartValue . ?dateTimeStartValue core:dateTime ?dateTimeStart } OPTIONAL { ?role core:dateTimeInterval ?dateTimeInterval . ?dateTimeInterval core:end ?dateTimeEndValue . ?dateTimeEndValue core:dateTime ?dateTimeEnd } FILTER ( bound(?indivInRole) ) } ORDER BY ?subclass ?indivLabel ?roleLabel ?roleTypeLabel ?indivName 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 ?role . ?role a ?objectType . ?role ?roleProperty ?roleValue . ?role vitro:mostSpecificType ?subclass . ?subclass rdfs:label ?roleTypeLabel . ?indivInRole rdfs:label ?indivLabel } WHERE { { ?subject ?property ?role . ?role a ?objectType } UNION { ?subject ?property ?role . ?role a ?objectType . ?role ?roleProperty ?roleValue } UNION { ?subject ?property ?role . ?role a ?objectType . ?role vitro:mostSpecificType ?subclass } UNION { ?subject ?property ?role . ?role a ?objectType . ?role vitro:mostSpecificType ?subclass . ?subclass rdfs:label ?roleTypeLabel } UNION { ?subject ?property ?role . ?role a ?objectType . ?role <http://purl.obolibrary.org/obo/RO_0000052> ?indivInRole . ?indivInRole rdfs:label ?indivLabel } UNION { ?subject ?property ?role . ?role a ?objectType . ?role <http://purl.obolibrary.org/obo/BFO_0000054> ?indivInRole . ?indivInRole rdfs:label ?indivLabel } } PREFIX core: <http://vivoweb.org/ontology/core#> CONSTRUCT { ?subject ?property ?role . ?role a ?objectType . ?role core:dateTimeInterval ?dateTimeInterval . ?dateTimeInterval core:start ?dateTimeStartValue . ?dateTimeStartValue core:dateTime ?dateTimeStart } WHERE { ?subject ?property ?role . ?role a ?objectType . ?role core:dateTimeInterval ?dateTimeInterval . ?dateTimeInterval core:start ?dateTimeStartValue . ?dateTimeStartValue core:dateTime ?dateTimeStart } PREFIX core: <http://vivoweb.org/ontology/core#> CONSTRUCT { ?subject ?property ?role . ?role core:dateTimeInterval ?dateTimeInterval . ?dateTimeInterval core:end ?dateTimeEndValue . ?dateTimeEndValue core:dateTime ?dateTimeEnd } WHERE { ?subject ?property ?role . ?role core:dateTimeInterval ?dateTimeInterval . ?dateTimeInterval core:end ?dateTimeEndValue . ?dateTimeEndValue core:dateTime ?dateTimeEnd }