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#>
SELECT DISTINCT ?dateTimeInterval ?label
?valueStart ?valueStartName
?dateTimeStart
?precisionStart
?valueEnd ?valueEndName
?dateTimeEnd
?precisionEnd
WHERE
{
?subject ?property ?dateTimeInterval
OPTIONAL
{
?dateTimeInterval core:start ?valueStart
LET (?valueStartName := afn:localname(?valueStart))
OPTIONAL { ?valueStart core:dateTime ?dateTimeStart }
OPTIONAL
{
?valueStart core:dateTimePrecision ?dateTimePrecisionStart
LET (?precisionStart := afn:localname(?dateTimePrecisionStart))
}
}
OPTIONAL
{
?dateTimeInterval core:end ?valueEnd
LET (?valueEndName := afn:localname(?valueEnd))
OPTIONAL { ?valueEnd core:dateTime ?dateTimeEnd }
OPTIONAL
{
?valueEnd core:dateTimePrecision ?dateTimePrecisionEnd
LET (?precisionEnd := afn:localname(?dateTimePrecisionEnd))
}
}
OPTIONAL {?dateTimeInterval rdfs:label ?label}
FILTER ( bound(?dateTimeStart) || bound(?dateTimeEnd) )
}
PREFIX core: <http://vivoweb.org/ontology/core#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
CONSTRUCT
{
?subject ?property ?dateTimeInterval .
?dateTimeInterval rdfs:label ?label .
?dateTimeInterval core:start ?sStart .
?dateTimeInterval core:end ?sEnd .
?sStart ?p ?o .
?sEnd ?p ?o .
}
WHERE
{
{
?subject core:dateTimeInterval ?dateTimeInterval .
}
UNION
{
?subject core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval rdfs:label ?label .
}
UNION
{
?subject ?property ?dateTimeInterval .
?dateTimeInterval core:start ?sStart .
?sStart ?p ?o .
}
UNION
{
?subject ?property ?dateTimeInterval .
?dateTimeInterval core:end ?sEnd .
?sEnd ?p ?o .
}
}
propStatement-dateTimeInterval.ftl