-
Notifications
You must be signed in to change notification settings - Fork 0
/
get-pathevolution-and-associated-info.rq
300 lines (282 loc) · 15.5 KB
/
get-pathevolution-and-associated-info.rq
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
prefix obo: <http://purl.obolibrary.org/obo/>
PREFIX obc: <http://www.pitt.edu/obc/>
prefix dc: <http://purl.org/dc/elements/1.1/>
select distinct ?dtm ?prefTerm ?title ?searchMeasureLabel ?sourceCodeRelease ?version ?doi ?doiURL ?synopsis ?sourceCodeRepositoryUrl ?webAppUrl ?licenseName ?licenseUrl ?documentationDescription ?documentationUrl ?websiteUrl ?developerName ?pubAbout ?pubThatUsedRelease ?inputSpecLabel ?outputSpecLabel ?olympus ?uidsConc ?measureLabel ?hostPopulation ?hostPopulationLabel ?hostType ?hostTypeLabel ?pathogenPopulation ?pathogenPopulationLabel ?pathogenType ?pathogenTypeLabel ?geoLocation ?geoLocationLabel ?forecast ?nowcast ?forecastType ?forecastFrequency ?grantFunding
#select distinct *
from <http://www.pitt.edu/obc/ide/apollo-sv>
from <http://www.pitt.edu/obc/ide/classes-and-indexing-instances>
from <http://www.pitt.edu/obc/ide/article-instances>
from <http://www.pitt.edu/obc/ide/article-deleted-instances>
from <http://ide.obc.io/auth>
from <http://www.pitt.edu/obc/mdc/content>
from <http://www.pitt.edu/obc/simulates-instances>
where {
#the item (?dtm) is in the MIDAS Digital Commons
<http://www.pitt.edu/obc/IDE_ARTICLES_12000070095> obo:BFO_0000174 ?dtm .
?dtm rdf:type/rdfs:subClassOf* <http://purl.obolibrary.org/obo/APOLLO_SV_00000544>. #<http://purl.obolibrary.org/obo/APOLLO_SV_00000007> . #x is simulation software
?dtm rdfs:label ?prefTerm .
#get compiledSoftware that corresponds to dtm via a compiling process
?compilingProcess obo:OBI_0000293 ?dtm .
?compilingProcess obo:OBI_0000299 ?executable .
#get compiled software that achieves planned objective simulating of process type x
?executionProcess obo:OBI_0000417 ?executable . #achieves planned objective obo:OBI_0000417
?executable rdf:type/rdfs:subClassOf* obo:APOLLO_SV_00000525 .
?executionProcess rdf:type obo:OBIws_0000050 .
#execution process has input dna sequence dataset
?executionProcess obo:OBI_0000293 ?dnaSequenceData . #has specified input - obo:OBI_0000293
?dnaSequenceData rdf:type/rdfs:subClassOf* obo:OBI_0001573 .
#dna sequence dataset is about some pathogen population
?dnaSequenceData obo:IAO_0000136 ?pathogenPopulation .
?pathogenPopulation rdf:type/rdfs:subClassOf* <##PATHOGEN##> . #default http://www.pitt.edu/obc/IDE_0000000007
?pathogenPopulation rdfs:label ?pathogenPopulationLabel .
?pathogenPopulation a ?pathogenType .
?pathogenType rdfs:label ?pathogenTypeLabel .
#if the user specifies a particular host to search by, then we don't want to return
# pathogen evolution models (unless they mention a specific host). So this block will
# be switched to optional when query not restricted by host.
##H_TOGGLE## OPTIONAL {
?dnaSequenceData obo:IAO_0000136 ?hostPopulation .
?hostPopulation rdf:type/rdfs:subClassOf* <##HOST##> . #default http://purl.obolibrary.org/obo/APOLLO_SV_00000516
?hostPopulation rdfs:label ?hostPopulationLabel .
?hostPopulation a ?hostType .
?hostType rdfs:label ?hostTypeLabel .
?hostPopulation obo:BFO_0000137 ?bioticEcosystem
##H_TOGGLE## }
.
#get the biotic ecosystem of the populations
#BFO_0000137 proper part of continuant at all times
?pathogenPopulation obo:BFO_0000137 ?bioticEcosystem .
?bioticEcosystem rdf:type obo:APOLLO_SV_00000104 .
#get the ecosystm that contains the biotic ecosystem
#obo:ecosystem APOLLO_SV_00000097
?bioticEcosystem obo:BFO_0000137 ?ecosystem . #BFO_0000137 proper part of continuant at all times
?ecosystem rdf:type obo:APOLLO_SV_00000097 .
#get the geographic region/location of the ecosystem.
?ecosystem <http://www.obofoundry.org/ro/ro.owl#located_in> ?geoLocation .
?geoLocation obo:BFO_0000137* <##LOCATION##> . #default http://purl.obolibrary.org/obo/GEO_000000345
?geoLocation rdfs:label ?geoLocationLabel .
#get the title if present
OPTIONAL { ?dtm dc:title ?title } .
#get URL to source code for this version if present
OPTIONAL { ?dtm obo:ERO_0000480 ?sourceCodeRelease } .
#get version if present
OPTIONAL { ?y rdf:type obo:APOLLO_SV_00000108 .
?y obo:IAO_0000219 ?dtm .
?y rdfs:label ?version } .
#get DOI if present
OPTIONAL { ?z rdf:type obo:OBI_0002110 .
?z obo:IAO_0000219 ?dtm .
?z rdfs:label ?doi } .
#get DOI URL if present
OPTIONAL { ?z rdf:type obo:OBI_0002110 .
?z obo:IAO_0000219 ?dtm .
?z obo:ERO_0000480 ?doiURL } .
#get human readable synopsis if present
OPTIONAL { ?dtm obo:APOLLO_SV_00000523 ?synopsis } .
#get source code repository information if present
OPTIONAL { ?w rdf:type obo:APOLLO_SV_00000522 .
?dtm obo:BFO_0000050 ?w .
?w obo:ERO_0000480 ?sourceCodeRepositoryUrl } .
#get executable(s) name if present
OPTIONAL { ?v rdf:type obo:APOLLO_SV_00000525 .
?u rdf:type obo:APOLLO_SV_00000524 .
?u obo:OBI_0000293 ?dtm .
?u obo:OBI_0000299 ?v .
?v rdfs:label ?executableName } .
#get executable(s) url if present
OPTIONAL { ?v rdf:type obo:APOLLO_SV_00000525 .
?u rdf:type obo:APOLLO_SV_00000524 .
?u obo:OBI_0000293 ?dtm .
?u obo:OBI_0000299 ?v .
?v obo:ERO_0000480 ?executableUrl } .
#get web application url if present
OPTIONAL { ?v rdf:type obo:APOLLO_SV_00000525 .
?u rdf:type obo:APOLLO_SV_00000524 .
?u obo:OBI_0000293 ?dtm .
?u obo:OBI_0000299 ?v .
?g obo:OBI_0000417 ?v .
?g rdf:type obo:OBIws_0000050 .
?g obo:ERO_0000480 ?webAppUrl } .
#get license name if present
OPTIONAL { ?t rdf:type obo:APOLLO_SV_00000535 .
?t obo:BFO_0000050 ?dtm .
?t rdfs:label ?licenseName } .
#get license URL if present
OPTIONAL { ?t rdf:type obo:APOLLO_SV_00000535 .
?t obo:BFO_0000050 ?dtm .
?t obo:ERO_0000480 ?licenseUrl } .
#get documentation description if present
OPTIONAL { ?s rdf:type obo:IAO_0000310 .
?s obo:IAO_0000136 ?dtm .
?s rdfs:label ?documentationDescription } .
#get documentation URL if present
OPTIONAL { ?s rdf:type obo:IAO_0000310 .
?s obo:IAO_0000136 ?dtm .
?s obo:ERO_0000480 ?documentationUrl } .
#get website URL if present
OPTIONAL { ?o rdf:type obo:FBcv_0000667 .
?o obo:IAO_0000136 ?dtm .
?o obo:ERO_0000480 ?websiteUrl } .
#get developer(s) if any
OPTIONAL { ?r rdf:type obo:BFO_0000040 .
?r obo:RO_0000053 ?q .
?q rdf:type obo:OMRSE_00000038 .
?p rdf:type obo:APOLLO_SV_00000008 .
?p obo:RO_0002218 ?r .
?p obo:OBI_0000299 ?dtm .
?r rdfs:label ?developerName } .
#get publication(s) about if any
OPTIONAL { ?n obo:IAO_0000136 ?dtm .
?n rdf:type obo:IAO_0000311 .
?n dc:title ?pubAbout
} .
#get publication(s) that used release if any
OPTIONAL { ?m obo:IAO_0000136 ?k . #m is about k
?k rdf:type obo:OBI_0000471 . #k is instance of study
?m rdf:type obo:IAO_0000311 . #m is instance of pub
?m dc:title ?pubThatUsedRelease . #m has label pubThatUsedRelease
?j obo:OBI_0000417 ?i . #j achieves planned objective of i
?j rdf:type obo:OBIws_0000050 . #j is instance of code execution
?j obo:BFO_0000050 ?k . #j (execution) part of k (study)
?i rdf:type obo:APOLLO_SV_00000525 . #i instance of executable
?h obo:OBI_0000299 ?i . #i specified output of h
?h rdf:type obo:APOLLO_SV_00000524 . #h instance of compiling
?h obo:OBI_0000293 ?dtm #h has input the dtm
} .
#get data input formats if any
OPTIONAL { ?v rdf:type obo:APOLLO_SV_00000525 . #v is executable
?u rdf:type obo:APOLLO_SV_00000524 . #u is compiling
?u obo:OBI_0000293 ?dtm . #compiling has source code as input
?u obo:OBI_0000299 ?v . #compiling has executable as output
?parsingPlan obo:BFO_0000050 ?v . #data parsing plan spec part of executable
?dataParsing obo:OBI_0000417 ?parsingPlan . #parsing achieves parsing plan objective
?dataParsing obo:OBI_0000417 ?inputSpec . #parsing achieves spec objective
?dataParsing rdf:type obo:APOLLO_SV_00000566 . #parsing individual is instance of parsing
?inputSpec rdf:type obo:IAO_0000098 . #input spec is data format spec
?inputSpec rdfs:label ?inputSpecLabel #input spec label
} .
#get data output formats if any
OPTIONAL { ?v rdf:type obo:APOLLO_SV_00000525 . #v is executable
?u rdf:type obo:APOLLO_SV_00000524 . #u is compiling
?u obo:OBI_0000293 ?dtm . #compiling has source code as input
?u obo:OBI_0000299 ?v . #compiling has executable as output
?encodingPlan obo:BFO_0000050 ?v . #data encoding plan spec part of executable
?dataEncoding obo:OBI_0000417 ?encodingPlan . #encoding achieves encoding plan objective
?dataEncoding obo:OBI_0000417 ?outputSpec . #encoding achieves spec objective
?dataEncoding rdf:type obo:OBI_0000227 . #encoding individusal is instance of encoding
?outputSpec rdf:type obo:IAO_0000098 . #output spec is data format spec
?outputSpec rdfs:label ?outputSpecLabel #output spec label
} .
#get RROO info if any
OPTIONAL { ?v rdf:type obo:APOLLO_SV_00000525 . #v is executable
?u rdf:type obo:APOLLO_SV_00000524 . #u is compiling
?u obo:OBI_0000293 ?dtm . #compiling has source code as input
?u obo:OBI_0000299 ?v . #compiling has executable as output
?execConc rdf:type obo:IAO_0000015 . #the executable concretization is an instance of information carrier
?v obo:RO_0000058 ?execConc . #and the executable is concretized by executable concretization
obo:IDE_0000000270 obo:RO_0000053 ?execConc . #and Olympus is the bearer of the executable concretization
obo:IDE_0000000270 rdfs:label ?olympus #get label of Olympus individual
} .
#get UIDS info if any
OPTIONAL { ?v1 rdf:type obo:APOLLO_SV_00000525 . #v1 is executable
?u1 rdf:type obo:APOLLO_SV_00000524 . #u1 is compiling
?u1 obo:OBI_0000293 ?dtm . #compiling has source code as input
?u1 obo:OBI_0000299 ?v1 . #compiling has executable as output
?execConc1 rdf:type obo:IAO_0000015 . #the executable concretization is an instance of information carrier
?v1 obo:RO_0000058 ?execConc1 . #and the executable is concretized by executable concretization
?execDisp obo:APOLLO_SV_00000543 ?execConc1 . #the disposition to execute the software has its basis in the concretization
?invokeDisp obo:BFO_0000169 ?execDisp . #the UIDS disp to invoke the software specifically depends on the execute disposition
?invokeDisp obo:APOLLO_SV_00000543 ?uidsConc . #the concretization of UIDS software is the basis for the invoke disposition
} .
#get control measures if any
##CM_TOGGLE## OPTIONAL {
?v3 rdf:type obo:APOLLO_SV_00000525 . #v3 is executable
?u3 rdf:type obo:APOLLO_SV_00000524 . #u3 is compiling
?u3 obo:OBI_0000293 ?dtm . #compiling has source code as input
?u3 obo:OBI_0000299 ?v3 . #compiling has executable as output
?simulatingx obo:OBI_0000417 ?v3 . #simulatingx achieves objective of executable
?simulatingx rdf:type obo:APOLLO_SV_00000005 . #simulatingx is instance of process of simulating process of type X
?simulatingx obo:OBI_0000299 ?measure . #simulatingx has output an infectious disease control measure
?measure rdf:type ?measureType . #control measure is an instance of a particular type
?measureType rdfs:label ?measureLabel . #get the label on the measure type
#control measure type must be a type of control measure (otherwise we get other ICE/PIE output by simulation)
?measureType rdfs:subClassOf* <##CONTROL_MEASURE_IRI##> #default http://purl.obolibrary.org/obo/APOLLO_SV_00000086
##CM_TOGGLE## }
.
#get forecasts if any
OPTIONAL {
# the item (?dtm) is an instance of disease forecaster
?dtm rdf:type obo:APOLLO_SV_00000557 .
# there is a forecasting objective that is part of the forecaster
?forecastingObjective obo:BFO_0000050 ?dtm .
?forecastingObjective rdf:type obo:APOLLO_SV_00000581 .
# there is a compiling of the forecaster
?u4 obo:OBI_0000293 ?dtm .
# compiling outputs executable
?u4 obo:OBI_0000299 ?v4 .
?v4 rdf:type obo:APOLLO_SV_00000525 .
# the executable was run
?forecasting obo:OBI_0000417 ?v4 .
# the run of the executable has specified output - that's the forecast
?forecasting obo:OBI_0000299 ?forecastInd .
?forecastInd rdfs:label ?forecast
} .
#get nowcasts if any
OPTIONAL {
# the item (?dtm) is an instance of disease forecaster
?dtm rdf:type obo:APOLLO_SV_00000557 .
# there is a nowcasting objective that is part of the forecaster
?nowcastingObjective obo:BFO_0000050 ?dtm .
?nowcastingObjective rdf:type obo:APOLLO_SV_00000582 .
# there is a compiling of the forecaster
?u4 obo:OBI_0000293 ?dtm .
# compiling outputs executable
?u4 obo:OBI_0000299 ?v4 .
?v4 rdf:type obo:APOLLO_SV_00000525 .
# the executable was run
?forecasting obo:OBI_0000417 ?v4 .
# the run of the executable has specified output - that's the nowcast
?forecasting obo:OBI_0000299 ?nowcastInd .
?nowcastInd rdfs:label ?nowcast
} .
# get forecaster type if any
OPTIONAL {
# there is an objective that is part of the forecaster
?forecastObjectiveInd obo:BFO_0000050 ?dtm .
?forecastObjectiveInd rdf:type ?forecastObjectiveType .
?forecastObjectiveType rdfs:label ?forecastType .
?forecastObjectiveType rdfs:subClassOf* obo:IAO_0000005
} .
#get forecastFrequency if any
OPTIONAL {
# the item (?dtm) is an instance of disease forecaster
?dtm rdf:type obo:APOLLO_SV_00000557 .
# there is a simulator time step specification that is part of the forecaster
?simulatorTimeStepSpec obo:BFO_0000050 ?dtm .
?simulatorTimeStepSpec rdf:type obo:APOLLO_SV_00000068 .
# the simulator time step specification has a value specification
?simulatorTimeStepSpec obo:OBI_0001938 ?valueSpec .
#the value specification has a time unit. This is the frequency. Note that we assume the value of value spec is one. That might have to change someday.
?valueSpec obo:IAO_0000039 ?forecastFrequencyInd .
?forecastFrequencyInd rdfs:label ?forecastFrequency
} .
#get grantFunding if any
OPTIONAL {
#the item is the output of a code writing (aka software developing) process
?codeWriting obo:OBI_0000299 ?dtm .
#the code writing process is part of a research (study execution) process
?codeWriting obo:BFO_0000050 ?research .
?research rdf:type obo:OBI_0000011 .
#the study execution process achieves the planned objective of some grant
?research obo:OBI_0000417 ?grantInd .
?grantInd rdf:type obo:OBI_0001636 .
#there is a grant identifier that denotes the grant
?grantId obo:IAO_0000219 ?grantInd .
?grantId rdf:type obo:OBI_0001629 .
#get the label of the grant identifier individual
?grantId rdfs:label ?grantFunding
} .
#filter out punned individuals
FILTER ( ?dtm != obo:APOLLO_SV_00000557 )
}
ORDER BY ?dtm