rolling back undesirable changes from r.2403, 'boatload'

This commit is contained in:
bjl23 2011-01-28 16:49:54 +00:00
parent 6ebddbc085
commit 2cbd060696
9 changed files with 216 additions and 1927 deletions

View file

@ -12,20 +12,13 @@
SELECT DISTINCT ?authorship (afn:localname(?authorship) AS ?authorshipName) SELECT DISTINCT ?authorship (afn:localname(?authorship) AS ?authorshipName)
?infoResource ?infoResourceName ?infoResource ?infoResourceName
?dateTime WHERE { ?dateTime WHERE {
{ GRAPH ?g1 { ?subject ?property ?authorship }
{ OPTIONAL { GRAPH ?g2 { ?authorship core:linkedInformationResource ?infoResource }
?subject ?property ?authorship . GRAPH ?g3 { ?infoResource rdfs:label ?infoResourceName }
?authorship core:linkedInformationResource ?infoResource . OPTIONAL { GRAPH ?g4 { ?infoResource core:dateTimeValue ?dateTimeValue }
?infoResource rdfs:label ?infoResourceName . GRAPH ?g5 { ?dateTimeValue core:dateTime ?dateTime }
}
} }
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 } ORDER BY DESC(?dateTime) ?infoResourceName
</query-base> </query-base>
@ -37,24 +30,18 @@
SELECT DISTINCT ?subclass SELECT DISTINCT ?subclass
?authorship (afn:localname(?authorship) AS ?authorshipName) ?authorship (afn:localname(?authorship) AS ?authorshipName)
?infoResource ?infoResourceName ?infoResource ?infoResourceName
?dateTime WHERE { GRAPH &lt;urn:x-arq:UnionGraph&gt; { ?dateTime WHERE {
{ GRAPH ?g1 { ?subject ?property ?authorship }
?subject ?property ?authorship . OPTIONAL { GRAPH ?g2 { ?authorship core:linkedInformationResource ?infoResource }
?authorship core:linkedInformationResource ?infoResource . GRAPH ?g3 { ?infoResource rdfs:label ?infoResourceName }
?infoResource rdfs:label ?infoResourceName . OPTIONAL { GRAPH ?g4 { ?subclass rdfs:subClassOf core:InformationResource }
?infoResource a ?subclass . GRAPH ?g5 { ?infoResource a ?subclass }
?subclass rdfs:subClassOf core:InformationResource . }
} OPTIONAL { GRAPH ?g6 { ?infoResource core:dateTimeValue ?dateTimeValue }
UNION { GRAPH ?g7 { ?dateTimeValue core:dateTime ?dateTime }
?subject ?property ?authorship . }
?authorship core:linkedInformationResource ?infoResource . }
?infoResource rdfs:label ?infoResourceName . } ORDER BY ?subclass DESC(?dateTime) ?infoResourceName
?infoResource a ?subclass .
?subclass rdfs:subClassOf core:InformationResource .
?infoResource core:dateTimeValue ?dateTimeValue .
?dateTimeValue core:dateTime ?dateTime .
}
} } ORDER BY ?subclass DESC(?dateTime) ?infoResourceName
</query-collated> </query-collated>
<template>propStatement-authorInAuthorship.ftl</template> <template>propStatement-authorInAuthorship.ftl</template>

View file

@ -16,46 +16,27 @@
?valueEnd ?valueEndName ?valueEnd ?valueEndName
?dateTimeEnd ?dateTimeEnd
?precisionEnd WHERE { ?precisionEnd WHERE {
{ GRAPH ?g1 { ?subject ?property ?dateTimeInterval
?subject ?property ?dateTimeInterval LET (?intervalName := afn:localname(?dateTimeInterval))
} }
UNION { OPTIONAL { GRAPH ?g2 { ?dateTimeInterval core:start ?valueStart
?subject ?property ?dateTimeInterval . LET (?valueStartName := afn:localname(?valueStart))
?dateTimeInterval core:start ?valueStart . }
OPTIONAL { GRAPH ?g3 { ?valueStart core:dateTime ?dateTimeStart } }
OPTIONAL { GRAPH ?g4 { ?valueStart core:dateTimePrecision ?dateTimePrecisionStart
LET (?precisionStart := afn:localname(?dateTimePrecisionStart))
}
}
} }
UNION { OPTIONAL { GRAPH ?g5 { ?dateTimeInterval core:end ?valueEnd
?subject ?property ?dateTimeInterval . LET (?valueEndName := afn:localname(?valueEnd))
?dateTimeInterval core:start ?valueStart . }
?valueStart core:dateTime ?dateTimeStart . 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 .
?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))
} }
</query-base> </query-base>

View file

@ -13,22 +13,9 @@
(afn:localname(?dateTimeValue) AS ?dateTimeValueName) (afn:localname(?dateTimeValue) AS ?dateTimeValueName)
(afn:localname(?dateTimePrecision) AS ?precision) (afn:localname(?dateTimePrecision) AS ?precision)
?dateTime WHERE { ?dateTime WHERE {
{ GRAPH ?g1 { ?subject ?property ?dateTimeValue }
?subject ?property ?dateTimeValue OPTIONAL { GRAPH ?g2 { ?dateTimeValue core:dateTime ?dateTime } }
} OPTIONAL { GRAPH ?g3 { ?dateTimeValue core:dateTimePrecision ?dateTimePrecision } }
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 .
}
} }
</query-base> </query-base>

View file

@ -15,72 +15,27 @@
?majorField ?deptOrSchool ?info ?majorField ?deptOrSchool ?info
?dateTimeStart ?dateTimeEnd ?dateTimeStart ?dateTimeEnd
WHERE { WHERE {
{ GRAPH ?g1 { ?subject ?property ?edTraining
?subject ?property ?edTraining LET (?edTrainingName := afn:localname(?edTraining))
OPTIONAL { ?edTraining core:trainingAtOrganization ?org . }
?org rdfs:label ?orgName . OPTIONAL { GRAPH ?g2 { ?edTraining core:trainingAtOrganization ?org }
} GRAPH ?g3 { ?org rdfs:label ?orgName }
OPTIONAL { ?edTraining core:degreeEarned ?degree . }
?degree rdfs:label ?degreeName . OPTIONAL { GRAPH ?g4 { ?edTraining core:degreeEarned ?degree }
OPTIONAL { ?degree core:abbreviation ?degreeAbbr } OPTIONAL { GRAPH ?g5 { ?degree rdfs:label ?degreeName } }
} OPTIONAL { GRAPH ?g6 { ?degree core:abbreviation ?degreeAbbr } }
OPTIONAL { ?edTraining core:majorField ?majorField } }
OPTIONAL { ?edTraining core:departmentOrSchool ?deptOrSchool } OPTIONAL { GRAPH ?g7 { ?edTraining core:majorField ?majorField } }
OPTIONAL { ?edTraining core:supplementalInformation ?info } OPTIONAL { GRAPH ?g8 { ?edTraining core:departmentOrSchool ?deptOrSchool } }
} OPTIONAL { GRAPH ?g9 { ?edTraining core:supplementalInformation ?info } }
UNION { OPTIONAL { GRAPH ?g10 { ?edTraining core:dateTimeInterval ?dateTimeInterval }
?subject ?property ?edTraining . OPTIONAL { GRAPH ?g11 { ?dateTimeInterval core:start ?dateTimeStartValue }
?edTraining core:dateTimeInterval ?dateTimeInterval . GRAPH ?g12 { ?dateTimeStartValue core:dateTime ?dateTimeStart }
?dateTimeInterval core:start ?dateTimeStartValue . }
?dateTimeStartValue core:dateTime ?dateTimeStart . OPTIONAL { GRAPH ?g13 { ?dateTimeInterval core:end ?dateTimeEndValue }
OPTIONAL { ?edTraining core:trainingAtOrganization ?org . GRAPH ?g14 { ?dateTimeEndValue core:dateTime ?dateTimeEnd }
?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) } ORDER BY DESC(?dateTimeEnd) DESC(?dateTimeStart)
</query-base> </query-base>

View file

@ -12,145 +12,21 @@
SELECT DISTINCT ?role (afn:localname(?role) AS ?roleName) SELECT DISTINCT ?role (afn:localname(?role) AS ?roleName)
?roleLabel ?roleLabel
?activity ?activityName ?activity ?activityName
?dateTimeStart ?dateTimeEnd WHERE { GRAPH &lt;urn:x-arq:UnionGraph&gt; { ?dateTimeStart ?dateTimeEnd WHERE {
{ GRAPH ?g1 { ?subject ?property ?role }
{ OPTIONAL { GRAPH ?g2 { ?role core:roleIn ?activity }
?subject ?property ?role . GRAPH ?g3 { ?activity rdfs:label ?activityName }
?role core:roleIn ?activity .
?activity rdfs:label ?activityName
} }
UNION { OPTIONAL { GRAPH ?g4 { ?role rdfs:label ?roleLabel } }
?subject ?property ?role . OPTIONAL { GRAPH ?g5 { ?role core:dateTimeInterval ?dateTimeInterval }
?role rdfs:label ?roleLabel 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 { } ORDER BY DESC(?dateTimeEnd) DESC(?dateTimeStart) ?personName
?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
</query-base> </query-base>
<query-collated> <query-collated>
@ -162,183 +38,24 @@
?role (afn:localname(?role) AS ?roleName) ?role (afn:localname(?role) AS ?roleName)
?roleLabel ?roleLabel
?activity ?activityName ?activity ?activityName
?dateTimeStart ?dateTimeEnd WHERE { GRAPH &lt;urn:x-arq:UnionGraph&gt; { ?dateTimeStart ?dateTimeEnd WHERE {
{ GRAPH ?g1 { ?subject ?property ?role }
{ OPTIONAL { GRAPH ?g2 { ?role core:roleIn ?activity }
?subject ?property ?role . GRAPH ?g3 { ?activity rdfs:label ?activityName }
?role a ?subclass .
?subclass rdfs:subClassOf core:Role .
?role core:roleIn ?activity .
?activity rdfs:label ?activityName
} }
UNION { OPTIONAL { GRAPH ?g4 { ?role a ?subclass }
?subject ?property ?role . GRAPH ?g5 { ?subclass rdfs:subClassOf core:Role }
?role a ?subclass .
?subclass rdfs:subClassOf core:Role .
?role rdfs:label ?roleLabel
} }
UNION { OPTIONAL { GRAPH ?g6 { ?role rdfs:label ?roleLabel } }
?subject ?property ?role . OPTIONAL { GRAPH ?g7 { ?role core:dateTimeInterval ?dateTimeInterval }
?role a ?subclass . OPTIONAL { GRAPH ?g8 { ?dateTimeInterval core:start ?dateTimeStartValue }
?subclass rdfs:subClassOf core:Role . GRAPH ?g9 { ?dateTimeStartValue core:dateTime ?dateTimeStart }
?role core:roleIn ?activity . }
?activity rdfs:label ?activityName . OPTIONAL { GRAPH ?g10 { ?dateTimeInterval core:end ?dateTimeEndValue }
?role rdfs:label ?roleLabel GRAPH ?g11 { ?dateTimeEndValue core:dateTime ?dateTimeEnd }
}
} }
UNION { } ORDER BY ?subclass DESC(?dateTimeEnd) DESC(?dateTimeStart) ?personName
?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
</query-collated> </query-collated>
<template>propStatement-hasRole.ftl</template> <template>propStatement-hasRole.ftl</template>

View file

@ -11,23 +11,11 @@
SELECT DISTINCT ?authorship (afn:localname(?authorship) AS ?authorshipName) SELECT DISTINCT ?authorship (afn:localname(?authorship) AS ?authorshipName)
?person ?personName WHERE { ?person ?personName WHERE {
{ GRAPH ?g1 { ?subject ?property ?authorship }
{ OPTIONAL { GRAPH ?g2 { ?authorship core:authorRank ?rank } }
?subject ?property ?authorship . OPTIONAL { GRAPH ?g3 { ?authorship core:linkedAuthor ?person }
?authorship core:authorRank ?rank GRAPH ?g4 { ?person rdfs:label ?personName }
} }
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 } ORDER BY ?rank ?personName
</query-base> </query-base>
@ -40,20 +28,13 @@
SELECT DISTINCT ?subclass SELECT DISTINCT ?subclass
?authorship (afn:localname(?authorship) AS ?authorshipName) ?authorship (afn:localname(?authorship) AS ?authorshipName)
?person ?personName WHERE { ?person ?personName WHERE {
{ GRAPH ?g1 { ?subject ?property ?authorship }
?subject ?property ?authorship . OPTIONAL { GRAPH ?g2 { ?authorship core:authorRank ?rank } }
?authorship core:linkedAuthor ?person . OPTIONAL { GRAPH ?g3 { ?authorship core:linkedAuthor ?person }
?person rdfs:label ?personName . GRAPH ?g4 { ?person rdfs:label ?personName }
?person a ?subclass . OPTIONAL { GRAPH ?g5 { ?person a ?subclass }
?subclass rdfs:subClassOf foaf:Person . GRAPH ?g6 { ?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 } ORDER BY ?subclass ?rank ?personName
</query-collated> </query-collated>

View file

@ -13,116 +13,21 @@
?positionTitle ?positionTitle
?person ?personName ?person ?personName
?dateTimeStart ?dateTimeEnd WHERE { ?dateTimeStart ?dateTimeEnd WHERE {
{ GRAPH ?g1 { ?subject ?property ?position }
?subject ?property ?position . OPTIONAL { GRAPH ?g2 { ?position core:positionForPerson ?person }
} GRAPH ?g3 { ?person rdfs:label ?personName }
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
} }
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 }
}
# Current positions only: end date is either null or not in the past # 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) &gt;= afn:substring(str(afn:now()), 0, 4) ) afn:substring(str(?dateTimeEnd), 0, 4) &gt;= afn:substring(str(afn:now()), 0, 4) )
} ORDER BY ?personName } ORDER BY ?personName
</query-base> </query-base>
@ -137,123 +42,25 @@
?positionTitle ?positionTitle
?person ?personName ?person ?personName
?dateTimeStart ?dateTimeEnd WHERE { ?dateTimeStart ?dateTimeEnd WHERE {
GRAPH &lt;urn:x-arq:UnionGraph&gt; { GRAPH ?g1 { ?subject ?property ?position }
?subject ?property ?position . OPTIONAL { GRAPH ?g2 { ?position core:positionForPerson ?person }
?position a ?subclass . GRAPH ?g3 { ?person rdfs:label ?personName }
?subclass rdfs:subClassOf core:Position .
{
{
?subject ?property ?position .
?position core:positionForPerson ?person .
?person rdfs:label ?personName
} }
UNION { OPTIONAL { GRAPH ?g4 { ?position a ?subclass }
?subject ?property ?position . GRAPH ?g5 { ?subclass rdfs:subClassOf core:Position }
?position rdfs:label ?positionTitle
} }
UNION { OPTIONAL { GRAPH ?g6 { ?position rdfs:label ?positionTitle } }
?subject ?property ?position . OPTIONAL { GRAPH ?g7 { ?position core:dateTimeInterval ?dateTimeInterval }
?position core:positionForPerson ?person . OPTIONAL { GRAPH ?g8 { ?dateTimeInterval core:start ?dateTimeStartValue }
?person rdfs:label ?personName . GRAPH ?g9 { ?dateTimeStartValue core:dateTime ?dateTimeStart }
?position rdfs:label ?positionTitle }
} OPTIONAL { GRAPH ?g10 { ?dateTimeInterval core:end ?dateTimeEndValue }
UNION { GRAPH ?g11 { ?dateTimeEndValue core:dateTime ?dateTimeEnd }
?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 # 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) &gt;= afn:substring(str(afn:now()), 0, 4) ) afn:substring(str(?dateTimeEnd), 0, 4) &gt;= afn:substring(str(afn:now()), 0, 4) )
} ORDER BY ?subclass ?personName
} } ORDER BY ?subclass ?personName
</query-collated> </query-collated>
<template>propStatement-organizationForPosition.ftl</template> <template>propStatement-organizationForPosition.ftl</template>

View file

@ -12,145 +12,21 @@
SELECT DISTINCT ?position (afn:localname(?position) AS ?positionName) SELECT DISTINCT ?position (afn:localname(?position) AS ?positionName)
?positionTitle ?positionTitle
?org ?orgName ?org ?orgName
?dateTimeStart ?dateTimeEnd WHERE { GRAPH &lt;urn:x-arq:UnionGraph&gt; { ?dateTimeStart ?dateTimeEnd WHERE {
{ GRAPH ?g1 { ?subject ?property ?position }
{ OPTIONAL { GRAPH ?g2 { ?position core:positionInOrganization ?org }
?subject ?property ?position . GRAPH ?g3 { ?org rdfs:label ?orgName }
?position core:positionInOrganization ?org .
?org rdfs:label ?orgName .
} }
UNION { OPTIONAL { GRAPH ?g4 { ?position rdfs:label ?positionTitle } }
?subject ?property ?position . OPTIONAL { GRAPH ?g5 { ?position core:dateTimeInterval ?dateTimeInterval }
?position rdfs:label ?positionTitle . 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 { } ORDER BY DESC(?dateTimeEnd) DESC(?dateTimeStart) ?orgName
?subject ?property ?position .
?position rdfs:label ?positionTitle .
?position core:positionInOrganization ?org .
?org rdfs:label ?orgName .
}
UNION {
?subject ?property ?position .
?position core:dateTimeInterval ?dateTimeInterval .
}
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
</query-base> </query-base>
<query-collated> <query-collated>
@ -162,184 +38,24 @@
?position (afn:localname(?position) AS ?positionName) ?position (afn:localname(?position) AS ?positionName)
?positionTitle ?positionTitle
?org ?orgName ?org ?orgName
?dateTimeStart ?dateTimeEnd WHERE { GRAPH &lt;urn:x-arq:UnionGraph&gt; { ?dateTimeStart ?dateTimeEnd WHERE {
GRAPH ?g1 { ?subject ?property ?position }
{ OPTIONAL { GRAPH ?g2 { ?position core:positionInOrganization ?org }
{ GRAPH ?g3 { ?org rdfs:label ?orgName }
?subject ?property ?position .
?position a ?subclass .
?subclass rdfs:subClassOf core:Position .
?position core:positionInOrganization ?org .
?org rdfs:label ?orgName .
} }
UNION { OPTIONAL { GRAPH ?g4 { ?position rdfs:label ?positionTitle } }
?subject ?property ?position . OPTIONAL { GRAPH ?g5 { ?position core:dateTimeInterval ?dateTimeInterval }
?position a ?subclass . OPTIONAL { GRAPH ?g6 { ?dateTimeInterval core:start ?dateTimeStartValue }
?subclass rdfs:subClassOf core:Position . GRAPH ?g7 { ?dateTimeStartValue core:dateTime ?dateTimeStart }
?position rdfs:label ?positionTitle . }
OPTIONAL { GRAPH ?g8 { ?dateTimeInterval core:end ?dateTimeEndValue }
GRAPH ?g9 { ?dateTimeEndValue core:dateTime ?dateTimeEnd }
}
} }
UNION { OPTIONAL { GRAPH ?g8 { ?position a ?subclass }
?subject ?property ?position . GRAPH ?g9 { ?subclass rdfs:subClassOf core:Position }
?position a ?subclass .
?subclass rdfs:subClassOf core:Position .
?position rdfs:label ?positionTitle .
?position core:positionInOrganization ?org .
?org rdfs:label ?orgName .
} }
UNION { } ORDER BY ?subclass DESC(?dateTimeEnd) DESC(?dateTimeStart) ?orgName
?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
</query-collated> </query-collated>
<template>propStatement-personInPosition.ftl</template> <template>propStatement-personInPosition.ftl</template>

View file

@ -13,924 +13,82 @@
?roleLabel ?roleTypeLabel ?roleLabel ?roleTypeLabel
?indivInRole ?indivName ?indivInRole ?indivName
?dateTimeInterval ?dateTimeStart ?dateTimeEnd WHERE { ?dateTimeInterval ?dateTimeStart ?dateTimeEnd WHERE {
GRAPH &lt;urn:x-arq:UnionGraph&gt; { GRAPH ?g1 { ?subject ?property ?role }
# Works because we don't do inferencing on properties, so the only ?roleProp
# returned will be the asserted one. # ?role is either a core:Role or one of its subclasses
{ {
?subject ?property ?role . { GRAPH ?g2 { ?role a ?subclass } }
?role ?roleProp ?indivInRole . { GRAPH ?g3 { ?subclass rdfs:subClassOf core:Role } }
?indivInRole rdfs:label ?indivName UNION
{ GRAPH ?g4 { ?role a core:Role } }
} }
UNION {
?subject ?property ?role . # Works because we don't do inferencing on subproperties, so the only ?roleProp
?role rdfs:label ?roleLabel # returned will be the asserted one.
} UNION { OPTIONAL { GRAPH ?g5 { ?roleProp rdfs:subPropertyOf core:roleOf }
?subject ?property ?role . GRAPH ?g6 { ?role ?roleProp ?indivInRole }
?role rdfs:label ?roleLabel . GRAPH ?g7 { ?indivInRole rdfs:label ?indivName }
?role ?roleProp ?indivInRole .
?indivInRole rdfs:label ?indivName
} }
UNION { OPTIONAL { GRAPH ?g8 { ?role rdfs:label ?roleLabel } }
?subject ?property ?role . OPTIONAL { GRAPH ?g9 { ?subclass rdfs:label ?roleTypeLabel } }
?role a ?roleType . OPTIONAL { GRAPH ?g10 { ?role core:dateTimeInterval ?dateTimeInterval }
?roleType rdfs:label ?roleTypeLabel OPTIONAL { GRAPH ?g11 { ?dateTimeInterval core:start ?dateTimeStartValue }
} GRAPH ?g12 { ?dateTimeStartValue core:dateTime ?dateTimeStart }
UNION { }
?subject ?property ?role . OPTIONAL { GRAPH ?g13 { ?dateTimeInterval core:end ?dateTimeEndValue }
?role a ?roleType . GRAPH ?g14 { ?dateTimeEndValue core:dateTime ?dateTimeEnd }
?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
} }
FILTER ( FILTER (
( ?roleProp != core:investigatorRoleOf || ?subclass = core:InvestigatorRole ) &amp;&amp; ( ?roleProp != core:investigatorRoleOf || ?subclass = core:InvestigatorRole ) &amp;&amp;
( ?roleProp != core:principalInvestigatorRoleOf || ?subclass = core:PrincipalInvestigatorRole ) &amp;&amp; ( ?roleProp != core:principalInvestigatorRoleOf || ?subclass = core:PrincipalInvestigatorRole ) &amp;&amp;
( ?roleProp != core:co-PrincipalInvestigatorRoleOf || ?subclass = core:CoPrincipalInvestigatorRole ) ( ?roleProp != core:co-PrincipalInvestigatorRoleOf || ?subclass = core:CoPrincipalInvestigatorRole )
) )
} } ORDER BY ?indivName ?roleLabel ?roleTypeLabel } ORDER BY ?indivName ?roleLabel ?roleTypeLabel
</query-base> </query-base>
<query-collated> <query-collated>
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt; PREFIX core: &lt;http://vivoweb.org/ontology/core#&gt;
PREFIX afn: &lt;http://jena.hpl.hp.com/ARQ/function#&gt; PREFIX afn: &lt;http://jena.hpl.hp.com/ARQ/function#&gt;
SELECT DISTINCT ?subclass SELECT DISTINCT ?subclass
?role (afn:localname(?role) AS ?roleName) ?role (afn:localname(?role) AS ?roleName)
?roleLabel ?roleTypeLabel ?roleLabel ?roleTypeLabel
?indivInRole ?indivName ?indivInRole ?indivName
?dateTimeInterval ?dateTimeStart ?dateTimeEnd WHERE { ?dateTimeInterval ?dateTimeStart ?dateTimeEnd WHERE {
GRAPH &lt;urn:x-arq:UnionGraph&gt; { GRAPH ?g1 { ?subject ?property ?role }
# Works because we don't do inferencing on properties, so the only ?roleProp # ?role is either a core:Role or one of its subclasses
# returned will be the asserted one.
{ {
?subject ?property ?role . { GRAPH ?g2 { ?role a ?subclass } }
?role a ?subclass . { GRAPH ?g3 { ?subclass rdfs:subClassOf core:Role } }
?subclass rdfs:subClassOf core:Role . UNION
?role ?roleProp ?indivInRole . { GRAPH ?g4 { ?role a core:Role } }
?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
} }
# Works because we don't do inferencing on subproperties, 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 }
}
}
FILTER ( FILTER (
( ?roleProp != core:investigatorRoleOf || ?subclass = core:InvestigatorRole ) &amp;&amp; ( ?roleProp != core:investigatorRoleOf || ?subclass = core:InvestigatorRole ) &amp;&amp;
( ?roleProp != core:principalInvestigatorRoleOf || ?subclass = core:PrincipalInvestigatorRole ) &amp;&amp; ( ?roleProp != core:principalInvestigatorRoleOf || ?subclass = core:PrincipalInvestigatorRole ) &amp;&amp;
( ?roleProp != core:co-PrincipalInvestigatorRoleOf || ?subclass = core:CoPrincipalInvestigatorRole ) ( ?roleProp != core:co-PrincipalInvestigatorRoleOf || ?subclass = core:CoPrincipalInvestigatorRole )
) )
} ORDER BY ?subclass ?indivName ?roleLabel ?roleTypeLabel
} } ORDER BY ?subclass ?indivName ?roleLabel ?roleTypeLabel
</query-collated> </query-collated>
<!-- <!--