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
}
propStatement-relatedRole.ftl