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 ?position ?positionTitle ?person ?personName ?dateTimeStart ?dateTimeEnd WHERE { ?subject ?property ?position OPTIONAL { ?position core:positionForPerson ?person . ?person rdfs:label ?personName } OPTIONAL { ?position vitro:mostSpecificType ?subclass . ?subclass rdfs:subClassOf core:Position } OPTIONAL { ?position rdfs:label ?positionTitle } OPTIONAL { ?position core:dateTimeInterval ?dateTimeInterval OPTIONAL { ?dateTimeInterval core:start ?dateTimeStartValue . ?dateTimeStartValue core:dateTime ?dateTimeStart } OPTIONAL { ?dateTimeInterval core:end ?dateTimeEndValue . ?dateTimeEndValue core:dateTime ?dateTimeEnd } # Get current positions only: end date is either null or not in the past } FILTER ( !bound(?dateTimeEnd) || afn:substring(str(?dateTimeEnd), 0, 4) >= afn:substring(str(afn:now()), 0, 4) ) FILTER ( bound(?person) ) } ORDER BY ?subclass ?personName PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX core: <http://vivoweb.org/ontology/core#> PREFIX vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> CONSTRUCT { ?subject ?property ?position . ?position vitro:mostSpecificType ?subclass . ?subclass rdfs:subClassOf core:Position } WHERE { ?subject ?property ?position . ?position vitro:mostSpecificType ?subclass . ?subclass rdfs:subClassOf core:Position } PREFIX core: <http://vivoweb.org/ontology/core#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> CONSTRUCT { ?subject ?property ?position . ?position ?positionProperty ?positionValue . ?person rdfs:label ?personName } WHERE { { ?subject ?property ?position } UNION { ?subject ?property ?position . ?position ?positionProperty ?positionValue } UNION { ?subject ?property ?position . ?position core:positionForPerson ?person . ?person rdfs:label ?personName } } PREFIX core: <http://vivoweb.org/ontology/core#> CONSTRUCT { ?subject ?property ?position . ?position core:dateTimeInterval ?dateTimeInterval . ?dateTimeInterval core:start ?dateTimeStartValue . ?dateTimeStartValue core:dateTime ?dateTimeStart } WHERE { ?subject ?property ?position . ?position core:dateTimeInterval ?dateTimeInterval . ?dateTimeInterval core:start ?dateTimeStartValue . ?dateTimeStartValue core:dateTime ?dateTimeStart } PREFIX core: <http://vivoweb.org/ontology/core#> CONSTRUCT { ?subject ?property ?position . ?position core:dateTimeInterval ?dateTimeInterval . ?dateTimeInterval core:end ?dateTimeEndValue . ?dateTimeEndValue core:dateTime ?dateTimeEnd } WHERE { ?subject ?property ?position . ?position core:dateTimeInterval ?dateTimeInterval . ?dateTimeInterval core:end ?dateTimeEndValue . ?dateTimeEndValue core:dateTime ?dateTimeEnd }