diff --git a/productMods/config/listViewConfig-authorInAuthorship.xml b/productMods/config/listViewConfig-authorInAuthorship.xml index 1ac9aa1c..4fe65593 100644 --- a/productMods/config/listViewConfig-authorInAuthorship.xml +++ b/productMods/config/listViewConfig-authorInAuthorship.xml @@ -12,13 +12,20 @@ SELECT DISTINCT ?authorship (afn:localname(?authorship) AS ?authorshipName) ?infoResource ?infoResourceName ?dateTime WHERE { - GRAPH ?g1 { ?subject ?property ?authorship } - OPTIONAL { GRAPH ?g2 { ?authorship core:linkedInformationResource ?infoResource } - GRAPH ?g3 { ?infoResource rdfs:label ?infoResourceName } - OPTIONAL { GRAPH ?g4 { ?infoResource core:dateTimeValue ?dateTimeValue } - GRAPH ?g5 { ?dateTimeValue core:dateTime ?dateTime } - } - } + { + { + ?subject ?property ?authorship . + ?authorship core:linkedInformationResource ?infoResource . + ?infoResource rdfs:label ?infoResourceName . + } + UNION { + ?subject ?property ?authorship . + ?authorship core:linkedInformationResource ?infoResource . + ?infoResource core:dateTimeValue ?dateTimeValue . + ?dateTimeValue core:dateTime ?dateTime . + ?infoResource rdfs:label ?infoResourceName . + } + } } ORDER BY DESC(?dateTime) ?infoResourceName @@ -30,18 +37,24 @@ SELECT DISTINCT ?subclass ?authorship (afn:localname(?authorship) AS ?authorshipName) ?infoResource ?infoResourceName - ?dateTime WHERE { - GRAPH ?g1 { ?subject ?property ?authorship } - OPTIONAL { GRAPH ?g2 { ?authorship core:linkedInformationResource ?infoResource } - GRAPH ?g3 { ?infoResource rdfs:label ?infoResourceName } - OPTIONAL { GRAPH ?g4 { ?subclass rdfs:subClassOf core:InformationResource } - GRAPH ?g5 { ?infoResource a ?subclass } - } - OPTIONAL { GRAPH ?g6 { ?infoResource core:dateTimeValue ?dateTimeValue } - GRAPH ?g7 { ?dateTimeValue core:dateTime ?dateTime } - } - } - } ORDER BY ?subclass DESC(?dateTime) ?infoResourceName + ?dateTime WHERE { GRAPH <urn:x-arq:UnionGraph> { + { + ?subject ?property ?authorship + ?authorship core:linkedInformationResource ?infoResource . + ?infoResource rdfs:label ?infoResourceName . + ?infoResource a ?subclass . + ?subclass rdfs:subClassOf core:InformationResource . + } + UNION { + ?subject ?property ?authorship + ?authorship core:linkedInformationResource ?infoResource . + ?infoResource rdfs:label ?infoResourceName . + ?infoResource a ?subclass . + ?subclass rdfs:subClassOf core:InformationResource . + ?infoResource core:dateTimeValue ?dateTimeValue . + ?dateTimeValue core:dateTime ?dateTime . + } + } } ORDER BY ?subclass DESC(?dateTime) ?infoResourceName diff --git a/productMods/config/listViewConfig-dateTimeInterval.xml b/productMods/config/listViewConfig-dateTimeInterval.xml index 63f482c8..f295a05a 100644 --- a/productMods/config/listViewConfig-dateTimeInterval.xml +++ b/productMods/config/listViewConfig-dateTimeInterval.xml @@ -16,27 +16,46 @@ ?valueEnd ?valueEndName ?dateTimeEnd ?precisionEnd WHERE { - GRAPH ?g1 { ?subject ?property ?dateTimeInterval - LET (?intervalName := afn:localname(?dateTimeInterval)) + { + ?subject ?property ?dateTimeInterval } - OPTIONAL { GRAPH ?g2 { ?dateTimeInterval core:start ?valueStart - LET (?valueStartName := afn:localname(?valueStart)) - } - OPTIONAL { GRAPH ?g3 { ?valueStart core:dateTime ?dateTimeStart } } - OPTIONAL { GRAPH ?g4 { ?valueStart core:dateTimePrecision ?dateTimePrecisionStart - LET (?precisionStart := afn:localname(?dateTimePrecisionStart)) - } - } - } - OPTIONAL { GRAPH ?g5 { ?dateTimeInterval core:end ?valueEnd - LET (?valueEndName := afn:localname(?valueEnd)) - } - OPTIONAL { GRAPH ?g6 { ?valueEnd core:dateTime ?dateTimeEnd } } - OPTIONAL { GRAPH ?g7 { ?valueEnd core:dateTimePrecision ?dateTimePrecisionEnd - LET (?precisionEnd := afn:localname(?dateTimePrecisionEnd)) - } - } + UNION { + ?subject ?property ?dateTimeInterval . + ?dateTimeInterval core:start ?valueStart . } + UNION { + ?subject ?property ?dateTimeInterval . + ?dateTimeInterval core:start ?valueStart . + ?valueStart core:dateTime ?dateTimeStart . + } + UNION { + ?subject ?property ?dateTimeInterval . + ?dateTimeInterval core:start ?valueStart . + ?valueStart core:dateTime ?dateTimeStart . + ?valueStart core:dateTimePrecision ?dateTimePrecisionStart . + } + UNION { + ?subject ?property ?dateTimeInterval . + ?dateTimeInterval core:end ?valueEnd . + } + UNION { + ?subject ?property ?dateTimeInterval . + ?dateTimeInterval core:end ?valueEnd . + ?valueEnd core:dateTime ?dateTimeEnd . + } + UNION { + ?subject ?property ?dateTimeInterval . + ?dateTimeInterval core:end ?valueEnd . + ?valueEnd core:dateTime ?dateTimeEnd . + ?valueEnd core:dateTimePrecision ?dateTimePrecisionEnd . + } + + LET (?intervalName := afn:localname(?dateTimeInterval)) + LET (?valueStartName := afn:localname(?valueStart)) + LET (?precisionStart := afn:localname(?dateTimePrecisionStart)) + LET (?valueEndName := afn:localname(?valueEnd)) + LET (?precisionEnd := afn:localname(?dateTimePrecisionEnd)) + } diff --git a/productMods/config/listViewConfig-dateTimeValue.xml b/productMods/config/listViewConfig-dateTimeValue.xml index e12f7b32..1fdfddb2 100644 --- a/productMods/config/listViewConfig-dateTimeValue.xml +++ b/productMods/config/listViewConfig-dateTimeValue.xml @@ -13,11 +13,24 @@ (afn:localname(?dateTimeValue) AS ?dateTimeValueName) (afn:localname(?dateTimePrecision) AS ?precision) ?dateTime WHERE { - GRAPH ?g1 { ?subject ?property ?dateTimeValue } - OPTIONAL { GRAPH ?g2 { ?dateTimeValue core:dateTime ?dateTime } } - OPTIONAL { GRAPH ?g3 { ?dateTimeValue core:dateTimePrecision ?dateTimePrecision } } + { + ?subject ?property ?dateTimeValue + } + UNION { + ?subject ?property ?dateTimeValue . + ?dateTimeValue core:dateTime ?dateTime . + } + UNION { + ?subject ?property ?dateTimeValue . + ?dateTimeValue core:dateTimePrecision ?dateTimePrecision . + } + UNION { + ?subject ?property ?dateTimeValue . + ?dateTimeValue core:dateTime ?dateTime . + ?dateTimeValue core:dateTimePrecision ?dateTimePrecision . + } } - \ No newline at end of file + diff --git a/productMods/config/listViewConfig-educationalTraining.xml b/productMods/config/listViewConfig-educationalTraining.xml index fb1e2850..0f860d10 100644 --- a/productMods/config/listViewConfig-educationalTraining.xml +++ b/productMods/config/listViewConfig-educationalTraining.xml @@ -15,27 +15,72 @@ ?majorField ?deptOrSchool ?info ?dateTimeStart ?dateTimeEnd WHERE { - GRAPH ?g1 { ?subject ?property ?edTraining - LET (?edTrainingName := afn:localname(?edTraining)) - } - OPTIONAL { GRAPH ?g2 { ?edTraining core:trainingAtOrganization ?org } - GRAPH ?g3 { ?org rdfs:label ?orgName } - } - OPTIONAL { GRAPH ?g4 { ?edTraining core:degreeEarned ?degree } - OPTIONAL { GRAPH ?g5 { ?degree rdfs:label ?degreeName } } - OPTIONAL { GRAPH ?g6 { ?degree core:abbreviation ?degreeAbbr } } - } - OPTIONAL { GRAPH ?g7 { ?edTraining core:majorField ?majorField } } - OPTIONAL { GRAPH ?g8 { ?edTraining core:departmentOrSchool ?deptOrSchool } } - OPTIONAL { GRAPH ?g9 { ?edTraining core:supplementalInformation ?info } } - OPTIONAL { GRAPH ?g10 { ?edTraining core:dateTimeInterval ?dateTimeInterval } - OPTIONAL { GRAPH ?g11 { ?dateTimeInterval core:start ?dateTimeStartValue } - GRAPH ?g12 { ?dateTimeStartValue core:dateTime ?dateTimeStart } - } - OPTIONAL { GRAPH ?g13 { ?dateTimeInterval core:end ?dateTimeEndValue } - GRAPH ?g14 { ?dateTimeEndValue core:dateTime ?dateTimeEnd } - } - } + { + ?subject ?property ?edTraining + OPTIONAL { ?edTraining core:trainingAtOrganization ?org . + ?org rdfs:label ?orgName . + } + OPTIONAL { ?edTraining core:degreeEarned ?degree . + ?degree rdfs:label ?degreeName . + OPTIONAL { ?degree core:abbreviation ?degreeAbbr } + } + OPTIONAL { ?edTraining core:majorField ?majorField } + OPTIONAL { ?edTraining core:departmentOrSchool ?deptOrSchool } + OPTIONAL { ?edTraining core:supplementalInformation ?info } + } + UNION { + ?subject ?property ?edTraining . + ?edTraining core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + OPTIONAL { ?edTraining core:trainingAtOrganization ?org . + ?org rdfs:label ?orgName . + } + OPTIONAL { ?edTraining core:degreeEarned ?degree . + ?degree rdfs:label ?degreeName . + OPTIONAL { ?degree core:abbreviation ?degreeAbbr } + } + OPTIONAL { ?edTraining core:majorField ?majorField } + OPTIONAL { ?edTraining core:departmentOrSchool ?deptOrSchool } + OPTIONAL { ?edTraining core:supplementalInformation ?info } + } + UNION { + ?subject ?property ?edTraining . + ?edTraining core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + OPTIONAL { ?edTraining core:trainingAtOrganization ?org . + ?org rdfs:label ?orgName . + } + OPTIONAL { ?edTraining core:degreeEarned ?degree . + ?degree rdfs:label ?degreeName . + OPTIONAL { ?degree core:abbreviation ?degreeAbbr } + } + OPTIONAL { ?edTraining core:majorField ?majorField } + OPTIONAL { ?edTraining core:departmentOrSchool ?deptOrSchool } + OPTIONAL { ?edTraining core:supplementalInformation ?info } + } + UNION { + ?subject ?property ?edTraining . + ?edTraining core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + OPTIONAL { ?edTraining core:trainingAtOrganization ?org . + ?org rdfs:label ?orgName . + } + OPTIONAL { ?edTraining core:degreeEarned ?degree . + ?degree rdfs:label ?degreeName . + OPTIONAL { ?degree core:abbreviation ?degreeAbbr } + } + OPTIONAL { ?edTraining core:majorField ?majorField } + OPTIONAL { ?edTraining core:departmentOrSchool ?deptOrSchool } + OPTIONAL { ?edTraining core:supplementalInformation ?info } + } + + LET (?edTrainingName := afn:localname(?edTraining)) + } ORDER BY DESC(?dateTimeEnd) DESC(?dateTimeStart) diff --git a/productMods/config/listViewConfig-hasRole.xml b/productMods/config/listViewConfig-hasRole.xml index 0b77426b..9e63f16d 100644 --- a/productMods/config/listViewConfig-hasRole.xml +++ b/productMods/config/listViewConfig-hasRole.xml @@ -12,21 +12,145 @@ SELECT DISTINCT ?role (afn:localname(?role) AS ?roleName) ?roleLabel ?activity ?activityName - ?dateTimeStart ?dateTimeEnd WHERE { - GRAPH ?g1 { ?subject ?property ?role } - OPTIONAL { GRAPH ?g2 { ?role core:roleIn ?activity } - GRAPH ?g3 { ?activity rdfs:label ?activityName } + ?dateTimeStart ?dateTimeEnd WHERE { GRAPH <urn:x-arq:UnionGraph> { + { + { + ?subject ?property ?role . + ?role core:roleIn ?activity . + ?activity rdfs:label ?activityName } - OPTIONAL { GRAPH ?g4 { ?role rdfs:label ?roleLabel } } - OPTIONAL { GRAPH ?g5 { ?role core:dateTimeInterval ?dateTimeInterval } - OPTIONAL { GRAPH ?g6 { ?dateTimeInterval core:start ?dateTimeStartValue } - GRAPH ?g7 { ?dateTimeStartValue core:dateTime ?dateTimeStart } - } - OPTIONAL { GRAPH ?g8 { ?dateTimeInterval core:end ?dateTimeEndValue } - GRAPH ?g9 { ?dateTimeEndValue core:dateTime ?dateTimeEnd } - } + UNION { + ?subject ?property ?role . + ?role rdfs:label ?roleLabel } - } ORDER BY DESC(?dateTimeEnd) DESC(?dateTimeStart) ?personName + UNION { + ?subject ?property ?role . + ?role core:roleIn ?activity . + ?activity rdfs:label ?activityName . + ?role rdfs:label ?roleLabel + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role core:roleIn ?activity . + ?activity rdfs:label ?activityName + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role rdfs:label ?roleLabel + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role core:roleIn ?activity . + ?activity rdfs:label ?activityName . + ?role rdfs:label ?roleLabel + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role core:roleIn ?activity . + ?activity rdfs:label ?activityName + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role rdfs:label ?roleLabel + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role core:roleIn ?activity . + ?activity rdfs:label ?activityName . + ?role rdfs:label ?roleLabel + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role core:roleIn ?activity . + ?activity rdfs:label ?activityName + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role rdfs:label ?roleLabel + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role core:roleIn ?activity . + ?activity rdfs:label ?activityName . + ?role rdfs:label ?roleLabel + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?role core:roleIn ?activity . + ?activity rdfs:label ?activityName + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?role rdfs:label ?roleLabel + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?role core:roleIn ?activity . + ?activity rdfs:label ?activityName . + ?role rdfs:label ?roleLabel + } + } + } } ORDER BY DESC(?dateTimeEnd) DESC(?dateTimeStart) ?activityName @@ -38,25 +162,184 @@ ?role (afn:localname(?role) AS ?roleName) ?roleLabel ?activity ?activityName - ?dateTimeStart ?dateTimeEnd WHERE { - GRAPH ?g1 { ?subject ?property ?role } - OPTIONAL { GRAPH ?g2 { ?role core:roleIn ?activity } - GRAPH ?g3 { ?activity rdfs:label ?activityName } + ?dateTimeStart ?dateTimeEnd WHERE { GRAPH <urn:x-arq:UnionGraph> { + { + { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:roleIn ?activity . + ?activity rdfs:label ?activityName } - OPTIONAL { GRAPH ?g4 { ?role a ?subclass } - GRAPH ?g5 { ?subclass rdfs:subClassOf core:Role } - } - OPTIONAL { GRAPH ?g6 { ?role rdfs:label ?roleLabel } } - OPTIONAL { GRAPH ?g7 { ?role core:dateTimeInterval ?dateTimeInterval } - OPTIONAL { GRAPH ?g8 { ?dateTimeInterval core:start ?dateTimeStartValue } - GRAPH ?g9 { ?dateTimeStartValue core:dateTime ?dateTimeStart } - } - OPTIONAL { GRAPH ?g10 { ?dateTimeInterval core:end ?dateTimeEndValue } - GRAPH ?g11 { ?dateTimeEndValue core:dateTime ?dateTimeEnd } - } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role rdfs:label ?roleLabel } - } ORDER BY ?subclass DESC(?dateTimeEnd) DESC(?dateTimeStart) ?personName + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:roleIn ?activity . + ?activity rdfs:label ?activityName . + ?role rdfs:label ?roleLabel + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role core:roleIn ?activity . + ?activity rdfs:label ?activityName + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role rdfs:label ?roleLabel + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role core:roleIn ?activity . + ?activity rdfs:label ?activityName . + ?role rdfs:label ?roleLabel + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role core:roleIn ?activity . + ?activity rdfs:label ?activityName + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role rdfs:label ?roleLabel + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role core:roleIn ?activity . + ?activity rdfs:label ?activityName . + ?role rdfs:label ?roleLabel + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role core:roleIn ?activity . + ?activity rdfs:label ?activityName + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role rdfs:label ?roleLabel + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role core:roleIn ?activity . + ?activity rdfs:label ?activityName . + ?role rdfs:label ?roleLabel + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?role core:roleIn ?activity . + ?activity rdfs:label ?activityName + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?role rdfs:label ?roleLabel + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?role core:roleIn ?activity . + ?activity rdfs:label ?activityName . + ?role rdfs:label ?roleLabel + } + } + } } ORDER BY ?subclass DESC(?dateTimeEnd) DESC(?dateTimeStart) ?personName - \ No newline at end of file + diff --git a/productMods/config/listViewConfig-informationResourceInAuthorship.xml b/productMods/config/listViewConfig-informationResourceInAuthorship.xml index 77a44646..1356b4bf 100644 --- a/productMods/config/listViewConfig-informationResourceInAuthorship.xml +++ b/productMods/config/listViewConfig-informationResourceInAuthorship.xml @@ -11,11 +11,23 @@ SELECT DISTINCT ?authorship (afn:localname(?authorship) AS ?authorshipName) ?person ?personName WHERE { - GRAPH ?g1 { ?subject ?property ?authorship } - OPTIONAL { GRAPH ?g2 { ?authorship core:authorRank ?rank } } - OPTIONAL { GRAPH ?g3 { ?authorship core:linkedAuthor ?person } - GRAPH ?g4 { ?person rdfs:label ?personName } - } + { + { + ?subject ?property ?authorship . + ?authorship core:authorRank ?rank + } + UNION { + ?subject ?property ?authorship . + ?authorship core:linkedAuthor ?person . + ?person rdfs:label ?personName . + } + UNION { + ?subject ?property ?authorship . + ?authorship core:linkedAuthor ?person . + ?person rdfs:label ?personName . + ?authorship core:authorRank ?rank . + } + } } ORDER BY ?rank ?personName @@ -28,14 +40,21 @@ SELECT DISTINCT ?subclass ?authorship (afn:localname(?authorship) AS ?authorshipName) ?person ?personName WHERE { - GRAPH ?g1 { ?subject ?property ?authorship } - OPTIONAL { GRAPH ?g2 { ?authorship core:authorRank ?rank } } - OPTIONAL { GRAPH ?g3 { ?authorship core:linkedAuthor ?person } - GRAPH ?g4 { ?person rdfs:label ?personName } - OPTIONAL { GRAPH ?g5 { ?person a ?subclass } - GRAPH ?g6 { ?subclass rdfs:subClassOf foaf:Person } - } - } + { + ?subject ?property ?authorship . + ?authorship core:linkedAuthor ?person . + ?person rdfs:label ?personName . + ?person a ?subclass . + ?subclass rdfs:subClassOf foaf:Person . + } + UNION { + ?subject ?property ?authorship . + ?authorship core:linkedAuthor ?person . + ?person rdfs:label ?personName . + ?person a ?subclass . + ?subclass rdfs:subClassOf foaf:Person . + ?authorship core:authorRank ?rank + } } ORDER BY ?subclass ?rank ?personName diff --git a/productMods/config/listViewConfig-organizationForPosition.xml b/productMods/config/listViewConfig-organizationForPosition.xml index dbc91c5b..1781a7fd 100644 --- a/productMods/config/listViewConfig-organizationForPosition.xml +++ b/productMods/config/listViewConfig-organizationForPosition.xml @@ -13,21 +13,116 @@ ?positionTitle ?person ?personName ?dateTimeStart ?dateTimeEnd WHERE { - GRAPH ?g1 { ?subject ?property ?position } - OPTIONAL { GRAPH ?g2 { ?position core:positionForPerson ?person } - GRAPH ?g3 { ?person rdfs:label ?personName } + { + ?subject ?property ?position . + } + UNION { + ?subject ?property ?position . + ?position core:positionForPerson ?person . + ?person rdfs:label ?personName } - OPTIONAL { GRAPH ?g4 { ?position rdfs:label ?positionTitle } } - OPTIONAL { GRAPH ?g5 { ?position core:dateTimeInterval ?dateTimeInterval } - OPTIONAL { GRAPH ?g6 { ?dateTimeInterval core:start ?dateTimeStartValue } - GRAPH ?g7 { ?dateTimeStartValue core:dateTime ?dateTimeStart } - } - OPTIONAL { GRAPH ?g8 { ?dateTimeInterval core:end ?dateTimeEndValue } - GRAPH ?g9 { ?dateTimeEndValue core:dateTime ?dateTimeEnd } - - } + 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) || + FILTER ( !bound(?dateTimeEnd) || afn:substring(str(?dateTimeEnd), 0, 4) >= afn:substring(str(afn:now()), 0, 4) ) } ORDER BY ?personName @@ -42,26 +137,124 @@ ?positionTitle ?person ?personName ?dateTimeStart ?dateTimeEnd WHERE { - GRAPH ?g1 { ?subject ?property ?position } - OPTIONAL { GRAPH ?g2 { ?position core:positionForPerson ?person } - GRAPH ?g3 { ?person rdfs:label ?personName } - } - OPTIONAL { GRAPH ?g4 { ?position a ?subclass } - GRAPH ?g5 { ?subclass rdfs:subClassOf core:Position } - } - OPTIONAL { GRAPH ?g6 { ?position rdfs:label ?positionTitle } } - OPTIONAL { GRAPH ?g7 { ?position core:dateTimeInterval ?dateTimeInterval } - OPTIONAL { GRAPH ?g8 { ?dateTimeInterval core:start ?dateTimeStartValue } - GRAPH ?g9 { ?dateTimeStartValue core:dateTime ?dateTimeStart } - } - OPTIONAL { GRAPH ?g10 { ?dateTimeInterval core:end ?dateTimeEndValue } - GRAPH ?g11 { ?dateTimeEndValue core:dateTime ?dateTimeEnd } - } + GRAPH <urn:x-arq:UnionGraph> { + ?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) || + FILTER ( !bound(?dateTimeEnd) || afn:substring(str(?dateTimeEnd), 0, 4) >= afn:substring(str(afn:now()), 0, 4) ) - } ORDER BY ?subclass ?personName + + } } ORDER BY ?subclass ?personName - \ No newline at end of file + diff --git a/productMods/config/listViewConfig-personInPosition.xml b/productMods/config/listViewConfig-personInPosition.xml index 5f279f5f..199f75e5 100644 --- a/productMods/config/listViewConfig-personInPosition.xml +++ b/productMods/config/listViewConfig-personInPosition.xml @@ -12,21 +12,145 @@ SELECT DISTINCT ?position (afn:localname(?position) AS ?positionName) ?positionTitle ?org ?orgName - ?dateTimeStart ?dateTimeEnd WHERE { - GRAPH ?g1 { ?subject ?property ?position } - OPTIONAL { GRAPH ?g2 { ?position core:positionInOrganization ?org } - GRAPH ?g3 { ?org rdfs:label ?orgName } + ?dateTimeStart ?dateTimeEnd WHERE { GRAPH <urn:x-arq:UnionGraph> { + { + { + ?subject ?property ?position . + ?position core:positionInOrganization ?org . + ?org rdfs:label ?orgName . + } + UNION { + ?subject ?property ?position . + ?position rdfs:label ?positionTitle . + } + UNION { + ?subject ?property ?position . + ?position rdfs:label ?positionTitle . + ?position core:positionInOrganization ?org . + ?org rdfs:label ?orgName . } - OPTIONAL { GRAPH ?g4 { ?position rdfs:label ?positionTitle } } - OPTIONAL { GRAPH ?g5 { ?position core:dateTimeInterval ?dateTimeInterval } - OPTIONAL { GRAPH ?g6 { ?dateTimeInterval core:start ?dateTimeStartValue } - GRAPH ?g7 { ?dateTimeStartValue core:dateTime ?dateTimeStart } - } - OPTIONAL { GRAPH ?g8 { ?dateTimeInterval core:end ?dateTimeEndValue } - GRAPH ?g9 { ?dateTimeEndValue core:dateTime ?dateTimeEnd } - } + UNION { + ?subject ?property ?position . + ?position core:dateTimeInterval ?dateTimeInterval . } - } ORDER BY DESC(?dateTimeEnd) DESC(?dateTimeStart) ?orgName + UNION { + ?subject ?property ?position . + ?position core:dateTimeInterval ?dateTimeInterval . + ?position core:positionInOrganization ?org . + ?org rdfs:label ?orgName . + } + UNION { + ?subject ?property ?position . + ?position core:dateTimeInterval ?dateTimeInterval . + ?position rdfs:label ?positionTitle . + } + UNION { + ?subject ?property ?position . + ?position core:dateTimeInterval ?dateTimeInterval . + ?position rdfs:label ?positionTitle . + ?position core:positionInOrganization ?org . + ?org rdfs:label ?orgName . + } + 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:positionInOrganization ?org . + ?org rdfs:label ?orgName . + } + 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 rdfs:label ?positionTitle . + ?position core:positionInOrganization ?org . + ?org rdfs:label ?orgName . + } + 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:positionInOrganization ?org . + ?org rdfs:label ?orgName . + } + 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 rdfs:label ?positionTitle . + ?position core:positionInOrganization ?org . + ?org rdfs:label ?orgName . + } + 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:positionInOrganization ?org . + ?org rdfs:label ?orgName . + } + 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 rdfs:label ?positionTitle . + ?position core:positionInOrganization ?org . + ?org rdfs:label ?orgName . + } + } + } } ORDER BY DESC(?dateTimeEnd) DESC(?dateTimeStart) ?orgName @@ -38,25 +162,185 @@ ?position (afn:localname(?position) AS ?positionName) ?positionTitle ?org ?orgName - ?dateTimeStart ?dateTimeEnd WHERE { - GRAPH ?g1 { ?subject ?property ?position } - OPTIONAL { GRAPH ?g2 { ?position core:positionInOrganization ?org } - GRAPH ?g3 { ?org rdfs:label ?orgName } - } - OPTIONAL { GRAPH ?g4 { ?position rdfs:label ?positionTitle } } - OPTIONAL { GRAPH ?g5 { ?position core:dateTimeInterval ?dateTimeInterval } - OPTIONAL { GRAPH ?g6 { ?dateTimeInterval core:start ?dateTimeStartValue } - GRAPH ?g7 { ?dateTimeStartValue core:dateTime ?dateTimeStart } - } - OPTIONAL { GRAPH ?g8 { ?dateTimeInterval core:end ?dateTimeEndValue } - GRAPH ?g9 { ?dateTimeEndValue core:dateTime ?dateTimeEnd } - } - } - OPTIONAL { GRAPH ?g8 { ?position a ?subclass } - GRAPH ?g9 { ?subclass rdfs:subClassOf core:Position } + ?dateTimeStart ?dateTimeEnd WHERE { GRAPH <urn:x-arq:UnionGraph> { + + { + { + ?subject ?property ?position . + ?position a ?subclass . + ?subclass rdfs:subClassOf core:Position . + ?position core:positionInOrganization ?org . + ?org rdfs:label ?orgName . } - } ORDER BY ?subclass DESC(?dateTimeEnd) DESC(?dateTimeStart) ?orgName + UNION { + ?subject ?property ?position . + ?position a ?subclass . + ?subclass rdfs:subClassOf core:Position . + ?position rdfs:label ?positionTitle . + } + UNION { + ?subject ?property ?position . + ?position a ?subclass . + ?subclass rdfs:subClassOf core:Position . + ?position rdfs:label ?positionTitle . + ?position core:positionInOrganization ?org . + ?org rdfs:label ?orgName . + } + UNION { + ?subject ?property ?position . + ?position a ?subclass . + ?subclass rdfs:subClassOf core:Position . + ?position core:dateTimeInterval ?dateTimeInterval . + } + UNION { + ?subject ?property ?position . + ?position a ?subclass . + ?subclass rdfs:subClassOf core:Position . + ?position core:dateTimeInterval ?dateTimeInterval . + ?position core:positionInOrganization ?org . + ?org rdfs:label ?orgName . + } + UNION { + ?subject ?property ?position . + ?position a ?subclass . + ?subclass rdfs:subClassOf core:Position . + ?position core:dateTimeInterval ?dateTimeInterval . + ?position rdfs:label ?positionTitle . + } + UNION { + ?subject ?property ?position . + ?position a ?subclass . + ?subclass rdfs:subClassOf core:Position . + ?position core:dateTimeInterval ?dateTimeInterval . + ?position rdfs:label ?positionTitle . + ?position core:positionInOrganization ?org . + ?org rdfs:label ?orgName . + } + UNION { + ?subject ?property ?position . + ?position a ?subclass . + ?subclass rdfs:subClassOf core:Position . + ?position core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + } + UNION { + ?subject ?property ?position . + ?position a ?subclass . + ?subclass rdfs:subClassOf core:Position . + ?position core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?position core:positionInOrganization ?org . + ?org rdfs:label ?orgName . + } + UNION { + ?subject ?property ?position . + ?position a ?subclass . + ?subclass rdfs:subClassOf core:Position . + ?position core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?position rdfs:label ?positionTitle . + } + UNION { + ?subject ?property ?position . + ?position a ?subclass . + ?subclass rdfs:subClassOf core:Position . + ?position core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?position rdfs:label ?positionTitle . + ?position core:positionInOrganization ?org . + ?org rdfs:label ?orgName . + } + UNION { + ?subject ?property ?position . + ?position a ?subclass . + ?subclass rdfs:subClassOf core:Position . + ?position core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + } + UNION { + ?subject ?property ?position . + ?position a ?subclass . + ?subclass rdfs:subClassOf core:Position . + ?position core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?position core:positionInOrganization ?org . + ?org rdfs:label ?orgName . + } + UNION { + ?subject ?property ?position . + ?position a ?subclass . + ?subclass rdfs:subClassOf core:Position . + ?position core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?position rdfs:label ?positionTitle . + } + UNION { + ?subject ?property ?position . + ?position a ?subclass . + ?subclass rdfs:subClassOf core:Position . + ?position core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?position rdfs:label ?positionTitle . + ?position core:positionInOrganization ?org . + ?org rdfs:label ?orgName . + } + UNION { + ?subject ?property ?position . + ?position a ?subclass . + ?subclass rdfs:subClassOf core: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 a ?subclass . + ?subclass rdfs:subClassOf core:Position . + ?position core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?position core:positionInOrganization ?org . + ?org rdfs:label ?orgName . + } + UNION { + ?subject ?property ?position . + ?position a ?subclass . + ?subclass rdfs:subClassOf core: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 a ?subclass . + ?subclass rdfs:subClassOf core: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 . + ?position core:positionInOrganization ?org . + ?org rdfs:label ?orgName . + } + } + } } ORDER BY ?subclass DESC(?dateTimeEnd) DESC(?dateTimeStart) ?orgName - \ No newline at end of file + diff --git a/productMods/config/listViewConfig-relatedRole.xml b/productMods/config/listViewConfig-relatedRole.xml index dd9accc6..623beeb8 100644 --- a/productMods/config/listViewConfig-relatedRole.xml +++ b/productMods/config/listViewConfig-relatedRole.xml @@ -13,82 +13,921 @@ ?roleLabel ?roleTypeLabel ?indivInRole ?indivName ?dateTimeInterval ?dateTimeStart ?dateTimeEnd WHERE { - GRAPH ?g1 { ?subject ?property ?role } - - # ?role is either a core:Role or one of its subclasses - { - { GRAPH ?g2 { ?role a ?subclass } } - { GRAPH ?g3 { ?subclass rdfs:subClassOf core:Role } } - UNION - { GRAPH ?g4 { ?role a core:Role } } - } - - # Works because we don't do inferencing on subproperties, so the only ?roleProp + GRAPH <urn:x-arq:UnionGraph> { + # Works because we don't do inferencing on properties, so the only ?roleProp # returned will be the asserted one. - OPTIONAL { GRAPH ?g5 { ?roleProp rdfs:subPropertyOf core:roleOf } - GRAPH ?g6 { ?role ?roleProp ?indivInRole } - GRAPH ?g7 { ?indivInRole rdfs:label ?indivName } + { + ?subject ?property ?role . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role rdfs:label ?roleLabel + } UNION { + ?subject ?property ?role . + ?role rdfs:label ?roleLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role a ?roleType . + ?roleType rdfs:label ?roleTypeLabel + } + UNION { + ?subject ?property ?role . + ?role a ?roleType . + ?roleType rdfs:label ?roleTypeLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role a ?roleType . + ?roleType rdfs:label ?roleTypeLabel . + ?role rdfs:label ?roleLabel . + } + UNION { + ?subject ?property ?role . + ?role a ?roleType . + ?roleType rdfs:label ?roleTypeLabel . + ?role rdfs:label ?roleLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role rdfs:label ?roleLabel + } UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role rdfs:label ?roleLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role a ?roleType . + ?roleType rdfs:label ?roleTypeLabel + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role a ?roleType . + ?roleType rdfs:label ?roleTypeLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role a ?roleType . + ?roleType rdfs:label ?roleTypeLabel . + ?role rdfs:label ?roleLabel . + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role a ?roleType . + ?roleType rdfs:label ?roleTypeLabel . + ?role rdfs:label ?roleLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role rdfs:label ?roleLabel + } UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role rdfs:label ?roleLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role a ?roleType . + ?roleType rdfs:label ?roleTypeLabel . + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role a ?roleType . + ?roleType rdfs:label ?roleTypeLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role a ?roleType . + ?roleType rdfs:label ?roleTypeLabel . + ?role rdfs:label ?roleLabel . + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role a ?roleType . + ?roleType rdfs:label ?roleTypeLabel . + ?role rdfs:label ?roleLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role core:dateTimeInterval ?dateTimeInterval . + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role rdfs:label ?roleLabel + } UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role rdfs:label ?roleLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role a ?roleType . + ?roleType rdfs:label ?roleTypeLabel + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role a ?roleType . + ?roleType rdfs:label ?roleTypeLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role a ?roleType . + ?roleType rdfs:label ?roleTypeLabel . + ?role rdfs:label ?roleLabel . + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role a ?roleType . + ?roleType rdfs:label ?roleTypeLabel . + ?role rdfs:label ?roleLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?role rdfs:label ?roleLabel + } UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?role rdfs:label ?roleLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?role a ?roleType . + ?roleType rdfs:label ?roleTypeLabel + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?role a ?roleType . + ?roleType rdfs:label ?roleTypeLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?role a ?roleType . + ?roleType rdfs:label ?roleTypeLabel . + ?role rdfs:label ?roleLabel . + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?role a ?roleType . + ?roleType rdfs:label ?roleTypeLabel . + ?role rdfs:label ?roleLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?role core:dateTimeInterval ?dateTimeInterval . + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role rdfs:label ?roleLabel + } UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role rdfs:label ?roleLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role a ?roleType . + ?roleType rdfs:label ?roleTypeLabel + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role a ?roleType . + ?roleType rdfs:label ?roleTypeLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role a ?roleType . + ?roleType rdfs:label ?roleTypeLabel . + ?role rdfs:label ?roleLabel . + } + UNION { + ?subject ?property ?role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role a ?roleType . + ?roleType rdfs:label ?roleTypeLabel . + ?role rdfs:label ?roleLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName } - OPTIONAL { GRAPH ?g8 { ?role rdfs:label ?roleLabel } } - OPTIONAL { GRAPH ?g9 { ?subclass rdfs:label ?roleTypeLabel } } - OPTIONAL { GRAPH ?g10 { ?role core:dateTimeInterval ?dateTimeInterval } - OPTIONAL { GRAPH ?g11 { ?dateTimeInterval core:start ?dateTimeStartValue } - GRAPH ?g12 { ?dateTimeStartValue core:dateTime ?dateTimeStart } - } - OPTIONAL { GRAPH ?g13 { ?dateTimeInterval core:end ?dateTimeEndValue } - GRAPH ?g14 { ?dateTimeEndValue core:dateTime ?dateTimeEnd } - } - } FILTER ( ( ?roleProp != core:investigatorRoleOf || ?subclass = core:InvestigatorRole ) && ( ?roleProp != core:principalInvestigatorRoleOf || ?subclass = core:PrincipalInvestigatorRole ) && ( ?roleProp != core:co-PrincipalInvestigatorRoleOf || ?subclass = core:CoPrincipalInvestigatorRole ) ) - } ORDER BY ?indivName ?roleLabel ?roleTypeLabel + } } ORDER BY ?indivName ?roleLabel ?roleTypeLabel - 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 ?subclass ?role (afn:localname(?role) AS ?roleName) ?roleLabel ?roleTypeLabel ?indivInRole ?indivName ?dateTimeInterval ?dateTimeStart ?dateTimeEnd WHERE { - GRAPH ?g1 { ?subject ?property ?role } - - # ?role is either a core:Role or one of its subclasses - { - { GRAPH ?g2 { ?role a ?subclass } } - { GRAPH ?g3 { ?subclass rdfs:subClassOf core:Role } } - UNION - { GRAPH ?g4 { ?role a core:Role } } - } - - # Works because we don't do inferencing on subproperties, so the only ?roleProp + GRAPH <urn:x-arq:UnionGraph> { + + # Works because we don't do inferencing on properties, so the only ?roleProp # returned will be the asserted one. - OPTIONAL { GRAPH ?g5 { ?roleProp rdfs:subPropertyOf core:roleOf } - GRAPH ?g6 { ?role ?roleProp ?indivInRole } - GRAPH ?g7 { ?indivInRole rdfs:label ?indivName } - } - OPTIONAL { GRAPH ?g8 { ?role rdfs:label ?roleLabel } } - OPTIONAL { GRAPH ?g9 { ?subclass rdfs:label ?roleTypeLabel } } - OPTIONAL { GRAPH ?g10 { ?role core:dateTimeInterval ?dateTimeInterval } - OPTIONAL { GRAPH ?g11 { ?dateTimeInterval core:start ?dateTimeStartValue } - GRAPH ?g12 { ?dateTimeStartValue core:dateTime ?dateTimeStart } - } - OPTIONAL { GRAPH ?g13 { ?dateTimeInterval core:end ?dateTimeEndValue } - GRAPH ?g14 { ?dateTimeEndValue core:dateTime ?dateTimeEnd } - } + { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role rdfs:label ?roleLabel + } UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role rdfs:label ?roleLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?roleType rdfs:label ?roleTypeLabel + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?subclass rdfs:label ?roleTypeLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?subclass rdfs:label ?roleTypeLabel . + ?role rdfs:label ?roleLabel . + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?subclass rdfs:label ?roleTypeLabel . + ?role rdfs:label ?roleLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role rdfs:label ?roleLabel + } UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role rdfs:label ?roleLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?subclass rdfs:label ?roleTypeLabel + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?subclass rdfs:label ?roleTypeLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?subclass rdfs:label ?roleTypeLabel . + ?role rdfs:label ?roleLabel . + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?subclass rdfs:label ?roleTypeLabel . + ?role rdfs:label ?roleLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role rdfs:label ?roleLabel + } UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role rdfs:label ?roleLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?subclass rdfs:label ?roleTypeLabel . + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?subclass rdfs:label ?roleTypeLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?subclass rdfs:label ?roleTypeLabel . + ?role rdfs:label ?roleLabel . + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?subclass rdfs:label ?roleTypeLabel . + ?role rdfs:label ?roleLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role core:dateTimeInterval ?dateTimeInterval . + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role rdfs:label ?roleLabel + } UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role rdfs:label ?roleLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role core:dateTimeInterval ?dateTimeInterval . + ?subclass rdfs:label ?roleTypeLabel + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role core:dateTimeInterval ?dateTimeInterval . + ?subclass rdfs:label ?roleTypeLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role core:dateTimeInterval ?dateTimeInterval . + ?subclass rdfs:label ?roleTypeLabel . + ?role rdfs:label ?roleLabel . + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?role core:dateTimeInterval ?dateTimeInterval . + ?subclass rdfs:label ?roleTypeLabel . + ?role rdfs:label ?roleLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?role rdfs:label ?roleLabel + } UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?role rdfs:label ?roleLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?subclass rdfs:label ?roleTypeLabel + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?subclass rdfs:label ?roleTypeLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?subclass rdfs:label ?roleTypeLabel . + ?role rdfs:label ?roleLabel . + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?subclass rdfs:label ?roleTypeLabel . + ?role rdfs:label ?roleLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?role core:dateTimeInterval ?dateTimeInterval . + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role rdfs:label ?roleLabel + } UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?role core:dateTimeInterval ?dateTimeInterval . + ?role rdfs:label ?roleLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?role core:dateTimeInterval ?dateTimeInterval . + ?subclass rdfs:label ?roleTypeLabel + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?role core:dateTimeInterval ?dateTimeInterval . + ?subclass rdfs:label ?roleTypeLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?role core:dateTimeInterval ?dateTimeInterval . + ?subclass rdfs:label ?roleTypeLabel . + ?role rdfs:label ?roleLabel . + } + UNION { + ?subject ?property ?role . + ?role a ?subclass . + ?subclass rdfs:subClassOf core:Role . + ?role core:dateTimeInterval ?dateTimeInterval . + ?dateTimeInterval core:start ?dateTimeStartValue . + ?dateTimeStartValue core:dateTime ?dateTimeStart . + ?dateTimeInterval core:end ?dateTimeEndValue . + ?dateTimeEndValue core:dateTime ?dateTimeEnd . + ?role core:dateTimeInterval ?dateTimeInterval . + ?subclass rdfs:label ?roleTypeLabel . + ?role rdfs:label ?roleLabel . + ?role ?roleProp ?indivInRole . + ?indivInRole rdfs:label ?indivName + } + FILTER ( ( ?roleProp != core:investigatorRoleOf || ?subclass = core:InvestigatorRole ) && ( ?roleProp != core:principalInvestigatorRoleOf || ?subclass = core:PrincipalInvestigatorRole ) && ( ?roleProp != core:co-PrincipalInvestigatorRoleOf || ?subclass = core:CoPrincipalInvestigatorRole ) ) - } ORDER BY ?subclass ?indivName ?roleLabel ?roleTypeLabel + + + + } } ORDER BY ?subclass ?indivName ?roleLabel ?roleTypeLabel - \ No newline at end of file +