vivo/productMods/config/listViewConfig-organizationForPosition.xml

261 lines
12 KiB
XML
Raw Normal View History

<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<!-- See guidelines in vitro/doc/list_view_configuration_guidelines.txt -->
<list-view-config>
<query-base>
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX afn: &lt;http://jena.hpl.hp.com/ARQ/function#&gt;
SELECT DISTINCT ?position (afn:localname(?position) AS ?positionName)
?positionTitle
?person ?personName
?dateTimeStart ?dateTimeEnd WHERE {
{
?subject ?property ?position .
}
UNION {
?subject ?property ?position .
?position core:positionForPerson ?person .
?person rdfs:label ?personName
}
UNION {
?subject ?property ?position .
?position rdfs:label ?positionTitle
}
UNION {
?subject ?property ?position .
?position core:positionForPerson ?person .
?person rdfs:label ?personName .
?position rdfs:label ?positionTitle
}
UNION {
?subject ?property ?position .
?position core:dateTimeInterval ?dateTimeInterval .
}
UNION {
?subject ?property ?position .
?position core:dateTimeInterval ?dateTimeInterval .
?position core:positionForPerson ?person .
?person rdfs:label ?personName .
}
UNION {
?subject ?property ?position .
?position core:dateTimeInterval ?dateTimeInterval .
?subject ?property ?position .
?position rdfs:label ?positionTitle
}
UNION {
?subject ?property ?position .
?position core:dateTimeInterval ?dateTimeInterval .
?position core:positionForPerson ?person .
?person rdfs:label ?personName .
?position rdfs:label ?positionTitle
}
UNION {
?subject ?property ?position .
?position core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
}
UNION {
?subject ?property ?position .
?position core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart .
?position core:positionForPerson ?person .
?person rdfs:label ?personName
}
UNION {
?subject ?property ?position .
?position core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart .
?position rdfs:label ?positionTitle
}
UNION {
?subject ?property ?position .
?position core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart .
?position core:positionForPerson ?person .
?person rdfs:label ?personName .
?position rdfs:label ?positionTitle
}
UNION {
?subject ?property ?position .
?position core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd .
}
UNION {
?subject ?property ?position .
?position core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd .
?position core:positionForPerson ?person .
?person rdfs:label ?personName
}
UNION {
?subject ?property ?position .
?position core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd .
?position rdfs:label ?positionTitle
} UNION {
?subject ?property ?position .
?position core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd .
?position core:positionForPerson ?person .
?person rdfs:label ?personName .
?position rdfs:label ?positionTitle
}
# Current positions only: end date is either null or not in the past
FILTER ( !bound(?dateTimeEnd) ||
afn:substring(str(?dateTimeEnd), 0, 4) &gt;= afn:substring(str(afn:now()), 0, 4) )
} ORDER BY ?personName
</query-base>
<query-collated>
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX afn: &lt;http://jena.hpl.hp.com/ARQ/function#&gt;
SELECT DISTINCT ?subclass
?position (afn:localname(?position) AS ?positionName)
?positionTitle
?person ?personName
?dateTimeStart ?dateTimeEnd WHERE {
GRAPH &lt;urn:x-arq:UnionGraph&gt; {
?subject ?property ?position .
?position a ?subclass .
?subclass rdfs:subClassOf core:Position .
{
{
?subject ?property ?position .
?position core:positionForPerson ?person .
?person rdfs:label ?personName
}
UNION {
?subject ?property ?position .
?position rdfs:label ?positionTitle
}
UNION {
?subject ?property ?position .
?position core:positionForPerson ?person .
?person rdfs:label ?personName .
?position rdfs:label ?positionTitle
}
UNION {
?subject ?property ?position .
?position core:dateTimeInterval ?dateTimeInterval .
}
UNION {
?subject ?property ?position .
?position core:dateTimeInterval ?dateTimeInterval .
?position core:positionForPerson ?person .
?person rdfs:label ?personName .
}
UNION {
?subject ?property ?position .
?position core:dateTimeInterval ?dateTimeInterval .
?subject ?property ?position .
?position rdfs:label ?positionTitle
}
UNION {
?subject ?property ?position .
?position core:dateTimeInterval ?dateTimeInterval .
?position core:positionForPerson ?person .
?person rdfs:label ?personName .
?position rdfs:label ?positionTitle
}
UNION {
?subject ?property ?position .
?position core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart
}
UNION {
?subject ?property ?position .
?position core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart .
?position core:positionForPerson ?person .
?person rdfs:label ?personName
}
UNION {
?subject ?property ?position .
?position core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart .
?position rdfs:label ?positionTitle
}
UNION {
?subject ?property ?position .
?position core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart .
?position core:positionForPerson ?person .
?person rdfs:label ?personName .
?position rdfs:label ?positionTitle
}
UNION {
?subject ?property ?position .
?position core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd .
}
UNION {
?subject ?property ?position .
?position core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd .
?position core:positionForPerson ?person .
?person rdfs:label ?personName
}
UNION {
?subject ?property ?position .
?position core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd .
?position rdfs:label ?positionTitle
} UNION {
?subject ?property ?position .
?position core:dateTimeInterval ?dateTimeInterval .
?dateTimeInterval core:start ?dateTimeStartValue .
?dateTimeStartValue core:dateTime ?dateTimeStart .
?dateTimeInterval core:end ?dateTimeEndValue .
?dateTimeEndValue core:dateTime ?dateTimeEnd .
?position core:positionForPerson ?person .
?person rdfs:label ?personName .
?position rdfs:label ?positionTitle
}
}
# Current positions only: end date is either null or not in the past
FILTER ( !bound(?dateTimeEnd) ||
afn:substring(str(?dateTimeEnd), 0, 4) &gt;= afn:substring(str(afn:now()), 0, 4) )
} } ORDER BY ?subclass ?personName
</query-collated>
<template>propStatement-organizationForPosition.ftl</template>
</list-view-config>