Chris@0
|
1 @prefix map: <file:///stdout#> .
|
Chris@0
|
2 @prefix d2r: <http://sites.wiwiss.fu-berlin.de/suhl/bizer/d2r-server/config.rdf#> .
|
Chris@0
|
3 @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
|
Chris@0
|
4 @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
Chris@0
|
5 @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
Chris@0
|
6 @prefix d2rq: <http://www.wiwiss.fu-berlin.de/suhl/bizer/D2RQ/0.1#> .
|
Chris@0
|
7 @prefix xsd: <http://www.w3.org/2001/XMLSchema#>.
|
Chris@0
|
8 @prefix foaf: <http://xmlns.com/foaf/0.1/>.
|
Chris@0
|
9 @prefix vs: <http://www.w3.org/2003/06/sw-vocab-status/ns#>.
|
Chris@0
|
10 @prefix tl: <http://purl.org/NET/c4dm/timeline.owl#>.
|
Chris@0
|
11 @prefix event: <http://purl.org/NET/c4dm/event.owl#>.
|
Chris@0
|
12 @prefix dc: <http://purl.org/dc/elements/1.1/>.
|
Chris@0
|
13 @prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>.
|
Chris@0
|
14 @prefix tags: <http://www.holygoat.co.uk/owl/redwood/0.1/tags/>.
|
Chris@0
|
15 @prefix po: <http://purl.org/ontology/po/>.
|
Chris@0
|
16 @prefix skos: <http://www.w3.org/2004/02/skos/core#>.
|
Chris@0
|
17 @prefix owl: <http://www.w3.org/2002/07/owl#>.
|
Chris@0
|
18
|
Chris@0
|
19 #
|
Chris@0
|
20 # A D2R mapping for the /programmes database,
|
Chris@0
|
21 # allowing to map this database to RDF designed
|
Chris@0
|
22 # according to the Programme ontology available at
|
Chris@0
|
23 #
|
Chris@0
|
24 # http://purl.org/ontology/po/
|
Chris@0
|
25 #
|
Chris@0
|
26 # This mapping is available under a Creative Commons
|
Chris@0
|
27 # Attribution License (CCBY).
|
Chris@0
|
28 #
|
Chris@0
|
29 # Copyright (c) Yves Raimond, BBC, November 2007
|
Chris@0
|
30 #
|
Chris@0
|
31
|
Chris@0
|
32
|
Chris@0
|
33 <> a d2r:Server;
|
Chris@0
|
34 rdfs:label "PIPS RDF view";
|
Chris@0
|
35 d2r:port "2021";
|
Chris@0
|
36 d2r:documentMetadata [
|
Chris@0
|
37 rdfs:comment "This instance of a D2R server provides a RDF view of the PIPS database";
|
Chris@0
|
38 ];
|
Chris@0
|
39 .
|
Chris@0
|
40
|
Chris@0
|
41 map:database a d2rq:Database;
|
Chris@0
|
42 d2rq:jdbcDriver "com.mysql.jdbc.Driver";
|
Chris@0
|
43 d2rq:jdbcDSN "jdbc:mysql://localhost/pips";
|
Chris@0
|
44 d2rq:username "moustaki";
|
Chris@0
|
45 d2rq:resultSizeLimit "500"; # Just for my laptop to not die horribly
|
Chris@0
|
46 .
|
Chris@0
|
47
|
Chris@0
|
48
|
Chris@0
|
49 # Dropped from the database dump, for now:
|
Chris@0
|
50 # * Versioning info
|
Chris@0
|
51 # * Collections
|
Chris@0
|
52 # * opt_out_url
|
Chris@0
|
53 # * brands_occurence
|
Chris@0
|
54 # * pip_formatid
|
Chris@0
|
55 # * all ids (in URI)
|
Chris@0
|
56 # * pip_genreid
|
Chris@0
|
57 # * api_public_name
|
Chris@0
|
58 # * is_publication_outlet
|
Chris@0
|
59 # * pit_id
|
Chris@0
|
60
|
Chris@0
|
61
|
Chris@0
|
62 # Mapping of the brands table
|
Chris@0
|
63
|
Chris@0
|
64 # mysql> describe brands;
|
Chris@0
|
65 # +-----------------+--------------+------+-----+---------+----------------+
|
Chris@0
|
66 # | Field | Type | Null | Key | Default | Extra |
|
Chris@0
|
67 # +-----------------+--------------+------+-----+---------+----------------+
|
Chris@0
|
68 # | id | int(11) | NO | PRI | NULL | auto_increment |
|
Chris@0
|
69 # | pid | varchar(8) | NO | UNI | | |
|
Chris@0
|
70 # | title | varchar(255) | NO | | | |
|
Chris@0
|
71 # | short_synopsis | text | YES | | NULL | |
|
Chris@0
|
72 # | medium_synopsis | text | YES | | NULL | |
|
Chris@0
|
73 # | long_synopsis | text | YES | | NULL | |
|
Chris@0
|
74 # | occurrence | text | YES | | NULL | |
|
Chris@0
|
75 # | service_id | int(11) | YES | MUL | NULL | |
|
Chris@0
|
76 # | opt_out_url | varchar(255) | YES | | NULL | |
|
Chris@0
|
77 # | created_at | datetime | NO | | | |
|
Chris@0
|
78 # | updated_at | datetime | NO | | | |
|
Chris@0
|
79 # +-----------------+--------------+------+-----+---------+----------------+
|
Chris@0
|
80
|
Chris@0
|
81
|
Chris@0
|
82 # To :
|
Chris@0
|
83 #
|
Chris@0
|
84 # po:Brand
|
Chris@0
|
85 # rdfs:label
|
Chris@0
|
86 # foaf:homepage
|
Chris@0
|
87 # po:pid
|
Chris@0
|
88 # dc:title
|
Chris@0
|
89 # po:short_synopsis
|
Chris@0
|
90 # po:medium_synopsis
|
Chris@0
|
91 # po:long_synopsis
|
Chris@0
|
92 # po:service
|
Chris@0
|
93 # po:creation_date
|
Chris@0
|
94 # po:update_date
|
Chris@0
|
95 #
|
Chris@0
|
96
|
Chris@0
|
97 map:brands a d2rq:ClassMap;
|
Chris@0
|
98 d2rq:dataStorage map:database;
|
Chris@0
|
99 d2rq:uriPattern "brand/@@brands.id@@";
|
Chris@0
|
100 d2rq:class po:Brand;
|
Chris@0
|
101 .
|
Chris@0
|
102 map:brands__label a d2rq:PropertyBridge;
|
Chris@0
|
103 d2rq:belongsToClassMap map:brands;
|
Chris@0
|
104 d2rq:property rdfs:label;
|
Chris@0
|
105 d2rq:column "brands.title";
|
Chris@0
|
106 .
|
Chris@0
|
107 map:brands_html a d2rq:PropertyBridge;
|
Chris@0
|
108 d2rq:belongsToClassMap map:brands;
|
Chris@0
|
109 d2rq:property foaf:homepage;
|
Chris@0
|
110 d2rq:uriPattern "http://www.bbc.co.uk/programmes/@@brands.pid@@";
|
Chris@0
|
111 .
|
Chris@0
|
112 map:brands_pid a d2rq:PropertyBridge;
|
Chris@0
|
113 d2rq:belongsToClassMap map:brands;
|
Chris@0
|
114 d2rq:property po:pid;
|
Chris@0
|
115 d2rq:column "brands.pid";
|
Chris@0
|
116 .
|
Chris@0
|
117 map:brands_title a d2rq:PropertyBridge;
|
Chris@0
|
118 d2rq:belongsToClassMap map:brands;
|
Chris@0
|
119 d2rq:property dc:title;
|
Chris@0
|
120 d2rq:column "brands.title";
|
Chris@0
|
121 .
|
Chris@0
|
122 map:brands_short_synopsis a d2rq:PropertyBridge;
|
Chris@0
|
123 d2rq:belongsToClassMap map:brands;
|
Chris@0
|
124 d2rq:property po:short_synopsis;
|
Chris@0
|
125 d2rq:column "brands.short_synopsis";
|
Chris@0
|
126 .
|
Chris@0
|
127 map:brands_medium_synopsis a d2rq:PropertyBridge;
|
Chris@0
|
128 d2rq:belongsToClassMap map:brands;
|
Chris@0
|
129 d2rq:property po:medium_synopsis;
|
Chris@0
|
130 d2rq:column "brands.medium_synopsis";
|
Chris@0
|
131 .
|
Chris@0
|
132 map:brands_long_synopsis a d2rq:PropertyBridge;
|
Chris@0
|
133 d2rq:belongsToClassMap map:brands;
|
Chris@0
|
134 d2rq:property po:long_synopsis;
|
Chris@0
|
135 d2rq:column "brands.long_synopsis";
|
Chris@0
|
136 .
|
Chris@0
|
137 map:brands_service_id a d2rq:PropertyBridge;
|
Chris@0
|
138 d2rq:belongsToClassMap map:brands;
|
Chris@0
|
139 d2rq:property po:service;
|
Chris@0
|
140 d2rq:refersToClassMap map:services;
|
Chris@0
|
141 d2rq:join "brands.service_id = services.id";
|
Chris@0
|
142 .
|
Chris@0
|
143 map:brands_created_at a d2rq:PropertyBridge;
|
Chris@0
|
144 d2rq:belongsToClassMap map:brands;
|
Chris@0
|
145 d2rq:property po:creation_date;
|
Chris@0
|
146 d2rq:column "brands.created_at";
|
Chris@0
|
147 d2rq:datatype xsd:dateTime;
|
Chris@0
|
148 d2rq:condition "brands.created_at != '0000'";
|
Chris@0
|
149 .
|
Chris@0
|
150 map:brands_updated_at a d2rq:PropertyBridge;
|
Chris@0
|
151 d2rq:belongsToClassMap map:brands;
|
Chris@0
|
152 d2rq:property po:update_date;
|
Chris@0
|
153 d2rq:column "brands.updated_at";
|
Chris@0
|
154 d2rq:datatype xsd:dateTime;
|
Chris@0
|
155 d2rq:condition "brands.updated_at != '0000'";
|
Chris@0
|
156 .
|
Chris@0
|
157 # Mapping the table brand_titles
|
Chris@0
|
158
|
Chris@0
|
159 # mysql> describe brand_titles;
|
Chris@0
|
160 # +-------------+--------------+------+-----+---------+----------------+
|
Chris@0
|
161 # | Field | Type | Null | Key | Default | Extra |
|
Chris@0
|
162 # +-------------+--------------+------+-----+---------+----------------+
|
Chris@0
|
163 # | id | int(11) | NO | PRI | NULL | auto_increment |
|
Chris@0
|
164 # | brand_id | int(11) | NO | MUL | 0 | |
|
Chris@0
|
165 # | title | varchar(255) | NO | | | |
|
Chris@0
|
166 # | slice_title | varchar(255) | NO | MUL | | |
|
Chris@0
|
167 # | letter | char(1) | NO | MUL | | |
|
Chris@0
|
168 # +-------------+--------------+------+-----+---------+----------------+
|
Chris@0
|
169
|
Chris@0
|
170 # To:
|
Chris@0
|
171 #
|
Chris@0
|
172 # po:Brand
|
Chris@0
|
173 # po:sort_title
|
Chris@0
|
174 # po:slice_title
|
Chris@0
|
175 # po:letter
|
Chris@0
|
176 #
|
Chris@0
|
177
|
Chris@0
|
178 map:brand_titles_title a d2rq:PropertyBridge;
|
Chris@0
|
179 d2rq:belongsToClassMap map:brands;
|
Chris@0
|
180 d2rq:property po:sort_title;
|
Chris@0
|
181 d2rq:column "brand_titles.title";
|
Chris@0
|
182 d2rq:join "brand_titles.brand_id = brands.id";
|
Chris@0
|
183 .
|
Chris@0
|
184 map:brand_titles_slice_title a d2rq:PropertyBridge;
|
Chris@0
|
185 d2rq:belongsToClassMap map:brands;
|
Chris@0
|
186 d2rq:property po:slice_title;
|
Chris@0
|
187 d2rq:column "brand_titles.slice_title";
|
Chris@0
|
188 d2rq:join "brand_titles.brand_id = brands.id";
|
Chris@0
|
189 .
|
Chris@0
|
190 map:brand_titles_letter a d2rq:PropertyBridge;
|
Chris@0
|
191 d2rq:belongsToClassMap map:brands;
|
Chris@0
|
192 d2rq:property po:letter;
|
Chris@0
|
193 d2rq:column "brand_titles.letter";
|
Chris@0
|
194 d2rq:join "brand_titles.brand_id = brands.id";
|
Chris@0
|
195 .
|
Chris@0
|
196
|
Chris@0
|
197 # Mapping the table collections
|
Chris@0
|
198
|
Chris@0
|
199 # mysql> describe collections;
|
Chris@0
|
200 # +----------------+---------+------+-----+---------+----------------+
|
Chris@0
|
201 # | Field | Type | Null | Key | Default | Extra |
|
Chris@0
|
202 # +----------------+---------+------+-----+---------+----------------+
|
Chris@0
|
203 # | id | int(11) | NO | PRI | NULL | auto_increment |
|
Chris@0
|
204 # | episode_id | int(11) | NO | UNI | 0 | |
|
Chris@0
|
205 # | brand_id | int(11) | YES | MUL | NULL | |
|
Chris@0
|
206 # | series_id | int(11) | YES | MUL | NULL | |
|
Chris@0
|
207 # | base_series_id | int(11) | YES | MUL | NULL | |
|
Chris@0
|
208 # +----------------+---------+------+-----+---------+----------------+
|
Chris@0
|
209
|
Chris@0
|
210 # To :
|
Chris@0
|
211 #
|
Chris@0
|
212 # po:Brand
|
Chris@0
|
213 # po:episode
|
Chris@0
|
214 # po:Series
|
Chris@0
|
215 # po:episode
|
Chris@0
|
216 # po:Brand
|
Chris@0
|
217 # po:series
|
Chris@0
|
218
|
Chris@0
|
219 # TODO:
|
Chris@0
|
220 # * is that right to consider base_series_id as being implicit
|
Chris@0
|
221 # in the series hierarchy?
|
Chris@0
|
222
|
Chris@0
|
223 map:brand_collection_episode a d2rq:PropertyBridge;
|
Chris@0
|
224 d2rq:belongsToClassMap map:brands;
|
Chris@0
|
225 d2rq:property po:episode;
|
Chris@0
|
226 d2rq:uriPattern "episode/@@collections.episode_id@@";
|
Chris@0
|
227 d2rq:join "collections.brand_id = brands.id";
|
Chris@0
|
228 .
|
Chris@0
|
229 map:series_collection_episode a d2rq:PropertyBridge;
|
Chris@0
|
230 d2rq:belongsToClassMap map:series;
|
Chris@0
|
231 d2rq:property po:episode;
|
Chris@0
|
232 d2rq:uriPattern "episode/@@collections.episode_id@@";
|
Chris@0
|
233 d2rq:join "collections.series_id = series.id";
|
Chris@0
|
234 .
|
Chris@0
|
235 map:brands_collection_series a d2rq:PropertyBridge;
|
Chris@0
|
236 d2rq:belongsToClassMap map:brands;
|
Chris@0
|
237 d2rq:property po:series;
|
Chris@0
|
238 d2rq:uriPattern "series/@@collections.series_id@@";
|
Chris@0
|
239 d2rq:join "collections.brand_id = brands.id";
|
Chris@0
|
240 .
|
Chris@0
|
241 map:series_collection_baseseries a d2rq:PropertyBridge;
|
Chris@0
|
242 d2rq:belongsToClassMap map:series;
|
Chris@0
|
243 d2rq:property po:episode;
|
Chris@0
|
244 d2rq:uriPattern "episode/@@collections.episode_id@@";
|
Chris@0
|
245 d2rq:join "collections.base_series_id = series.id";
|
Chris@0
|
246 .
|
Chris@0
|
247
|
Chris@0
|
248
|
Chris@0
|
249 # Mapping the table broadcasts
|
Chris@0
|
250
|
Chris@0
|
251 # mysql> describe broadcasts;
|
Chris@0
|
252 # +---------------+--------------+------+-----+---------------------+----------------+
|
Chris@0
|
253 # | Field | Type | Null | Key | Default | Extra |
|
Chris@0
|
254 # +---------------+--------------+------+-----+---------------------+----------------+
|
Chris@0
|
255 # | id | int(11) | NO | PRI | NULL | auto_increment |
|
Chris@0
|
256 # | start | datetime | NO | MUL | 0000-00-00 00:00:00 | |
|
Chris@0
|
257 # | end | datetime | NO | MUL | 0000-00-00 00:00:00 | |
|
Chris@0
|
258 # | duration | int(11) | NO | | 0 | |
|
Chris@0
|
259 # | is_repeat | tinyint(1) | YES | | NULL | |
|
Chris@0
|
260 # | schedule_date | date | NO | | 0000-00-00 | |
|
Chris@0
|
261 # | version_id | int(11) | NO | MUL | 0 | |
|
Chris@0
|
262 # | service_id | int(11) | NO | MUL | 0 | |
|
Chris@0
|
263 # | pid_imi | varchar(255) | NO | UNI | | |
|
Chris@0
|
264 # | created_at | datetime | NO | | | |
|
Chris@0
|
265 # | updated_at | datetime | NO | | | |
|
Chris@0
|
266 # +---------------+--------------+------+-----+---------------------+----------------+
|
Chris@0
|
267
|
Chris@0
|
268 # To:
|
Chris@0
|
269 # po:Broadcast
|
Chris@0
|
270 # rdfs:label
|
Chris@0
|
271 # event:time
|
Chris@0
|
272 # po:schedule_date
|
Chris@0
|
273 # po:broadcast_of
|
Chris@0
|
274 # po:broadcasted_on
|
Chris@0
|
275 # po:pid_imi
|
Chris@0
|
276 # po:creation_date
|
Chris@0
|
277 # po:update_date
|
Chris@0
|
278 # tl:Interval
|
Chris@0
|
279 # tl:start
|
Chris@0
|
280 # tl:end
|
Chris@0
|
281 # tl:duration
|
Chris@0
|
282 # po:FirstBroadcast
|
Chris@0
|
283 # po:RepeatBroadcast
|
Chris@0
|
284
|
Chris@0
|
285 # TODO:
|
Chris@0
|
286 # * Should the schedule date be a factor of the broadcast event?
|
Chris@0
|
287
|
Chris@0
|
288 map:broadcasts a d2rq:ClassMap;
|
Chris@0
|
289 d2rq:dataStorage map:database;
|
Chris@0
|
290 d2rq:uriPattern "broadcast/@@broadcasts.id@@";
|
Chris@0
|
291 d2rq:class po:Broadcast;
|
Chris@0
|
292 .
|
Chris@0
|
293 map:broadcasts__label a d2rq:PropertyBridge;
|
Chris@0
|
294 d2rq:belongsToClassMap map:broadcasts;
|
Chris@0
|
295 d2rq:property rdfs:label;
|
Chris@0
|
296 d2rq:pattern "broadcasts #@@broadcasts.id@@"; # <<<<<<<<
|
Chris@0
|
297 .
|
Chris@0
|
298 map:broadcast_event_time a d2rq:PropertyBridge;
|
Chris@0
|
299 d2rq:belongsToClassMap map:broadcasts;
|
Chris@0
|
300 d2rq:property event:time;
|
Chris@0
|
301 d2rq:uriPattern "time/@@broadcasts.id@@"; # <<<<<<<<<<<<<< PROBLEM
|
Chris@0
|
302 .
|
Chris@0
|
303 map:broadcast_time a d2rq:ClassMap;
|
Chris@0
|
304 d2rq:dataStorage map:database;
|
Chris@0
|
305 d2rq:uriPattern "time/@@broadcasts.id@@";
|
Chris@0
|
306 d2rq:class tl:Interval;
|
Chris@0
|
307 .
|
Chris@0
|
308 map:broadcasts_start a d2rq:PropertyBridge;
|
Chris@0
|
309 d2rq:belongsToClassMap map:broadcast_time;
|
Chris@0
|
310 d2rq:property tl:start;
|
Chris@0
|
311 d2rq:column "broadcasts.start";
|
Chris@0
|
312 d2rq:datatype xsd:dateTime;
|
Chris@0
|
313 d2rq:condition "broadcasts.start != '0000'";
|
Chris@0
|
314 .
|
Chris@0
|
315 map:broadcasts_end a d2rq:PropertyBridge;
|
Chris@0
|
316 d2rq:belongsToClassMap map:broadcast_time;
|
Chris@0
|
317 d2rq:property tl:end;
|
Chris@0
|
318 d2rq:column "broadcasts.end";
|
Chris@0
|
319 d2rq:datatype xsd:dateTime;
|
Chris@0
|
320 d2rq:condition "broadcasts.end != '0000'";
|
Chris@0
|
321 .
|
Chris@0
|
322 map:broadcasts_duration a d2rq:PropertyBridge;
|
Chris@0
|
323 d2rq:belongsToClassMap map:broadcast_time;
|
Chris@0
|
324 d2rq:property tl:duration;
|
Chris@0
|
325 d2rq:column "broadcasts.duration";
|
Chris@0
|
326 d2rq:datatype xsd:int;
|
Chris@0
|
327 .
|
Chris@0
|
328 map:first_broadcast a d2rq:ClassMap;
|
Chris@0
|
329 d2rq:dataStorage map:database;
|
Chris@0
|
330 d2rq:uriPattern "broadcast/@@broadcasts.id@@";
|
Chris@0
|
331 d2rq:class po:FirstBroadcast;
|
Chris@0
|
332 d2rq:condition "broadcasts.is_repeat = '0'";
|
Chris@0
|
333 .
|
Chris@0
|
334 map:repeated_broadcast a d2rq:ClassMap;
|
Chris@0
|
335 d2rq:dataStorage map:database;
|
Chris@0
|
336 d2rq:uriPattern "broadcast/@@broadcasts.id@@";
|
Chris@0
|
337 d2rq:class po:RepeatBroadcast;
|
Chris@0
|
338 d2rq:condition "broadcasts.is_repeat = '1'";
|
Chris@0
|
339 .
|
Chris@0
|
340 map:broadcasts_schedule_date a d2rq:PropertyBridge;
|
Chris@0
|
341 d2rq:belongsToClassMap map:broadcasts;
|
Chris@0
|
342 d2rq:property po:schedule_date;
|
Chris@0
|
343 d2rq:column "broadcasts.schedule_date";
|
Chris@0
|
344 d2rq:datatype xsd:date;
|
Chris@0
|
345 d2rq:condition "broadcasts.schedule_date != '0000'";
|
Chris@0
|
346 .
|
Chris@0
|
347 map:broadcasts_version_id a d2rq:PropertyBridge;
|
Chris@0
|
348 d2rq:belongsToClassMap map:broadcasts;
|
Chris@0
|
349 d2rq:property po:broadcast_of;
|
Chris@0
|
350 d2rq:refersToClassMap map:versions;
|
Chris@0
|
351 d2rq:join "broadcasts.version_id = versions.id";
|
Chris@0
|
352 .
|
Chris@0
|
353 map:broadcasts_service_id a d2rq:PropertyBridge;
|
Chris@0
|
354 d2rq:belongsToClassMap map:broadcasts;
|
Chris@0
|
355 d2rq:property po:broadcasted_on;
|
Chris@0
|
356 d2rq:refersToClassMap map:services;
|
Chris@0
|
357 d2rq:join "broadcasts.service_id = services.id";
|
Chris@0
|
358 .
|
Chris@0
|
359 map:broadcasts_pid_imi a d2rq:PropertyBridge;
|
Chris@0
|
360 d2rq:belongsToClassMap map:broadcasts;
|
Chris@0
|
361 d2rq:property po:pid_imi;
|
Chris@0
|
362 d2rq:column "broadcasts.pid_imi";
|
Chris@0
|
363 .
|
Chris@0
|
364 map:broadcasts_created_at a d2rq:PropertyBridge;
|
Chris@0
|
365 d2rq:belongsToClassMap map:broadcasts;
|
Chris@0
|
366 d2rq:property po:creation_date;
|
Chris@0
|
367 d2rq:column "broadcasts.created_at";
|
Chris@0
|
368 d2rq:datatype xsd:dateTime;
|
Chris@0
|
369 d2rq:condition "broadcasts.created_at != '0000'";
|
Chris@0
|
370 .
|
Chris@0
|
371 map:broadcasts_updated_at a d2rq:PropertyBridge;
|
Chris@0
|
372 d2rq:belongsToClassMap map:broadcasts;
|
Chris@0
|
373 d2rq:property po:update_date;
|
Chris@0
|
374 d2rq:column "broadcasts.updated_at";
|
Chris@0
|
375 d2rq:datatype xsd:dateTime;
|
Chris@0
|
376 d2rq:condition "broadcasts.updated_at != '0000'";
|
Chris@0
|
377 .
|
Chris@0
|
378
|
Chris@0
|
379 # Mapping the table episodes
|
Chris@0
|
380
|
Chris@0
|
381 # mysql> describe episodes;
|
Chris@0
|
382 # +-----------------+--------------+------+-----+---------+----------------+
|
Chris@0
|
383 # | Field | Type | Null | Key | Default | Extra |
|
Chris@0
|
384 # +-----------------+--------------+------+-----+---------+----------------+
|
Chris@0
|
385 # | id | int(11) | NO | PRI | NULL | auto_increment |
|
Chris@0
|
386 # | title | varchar(255) | NO | | | |
|
Chris@0
|
387 # | short_synopsis | text | YES | | NULL | |
|
Chris@0
|
388 # | medium_synopsis | text | YES | | NULL | |
|
Chris@0
|
389 # | long_synopsis | text | YES | | NULL | |
|
Chris@0
|
390 # | pid | varchar(8) | NO | UNI | | |
|
Chris@0
|
391 # | position | int(11) | YES | | NULL | |
|
Chris@0
|
392 # | service_id | int(11) | YES | MUL | NULL | |
|
Chris@0
|
393 # | opt_out_url | varchar(255) | YES | | NULL | |
|
Chris@0
|
394 # | created_at | datetime | NO | | | |
|
Chris@0
|
395 # | updated_at | datetime | NO | | | |
|
Chris@0
|
396 # +-----------------+--------------+------+-----+---------+----------------+
|
Chris@0
|
397
|
Chris@0
|
398 # To :
|
Chris@0
|
399 # po:Episode
|
Chris@0
|
400 # rdfs:label
|
Chris@0
|
401 # foaf:homepage
|
Chris@0
|
402 # dc:title
|
Chris@0
|
403 # po:short_synopsis
|
Chris@0
|
404 # po:medium_synopsis
|
Chris@0
|
405 # po:long_synopsis
|
Chris@0
|
406 # po:pid
|
Chris@0
|
407 # po:position
|
Chris@0
|
408 # po:service
|
Chris@0
|
409 # po:creation_date
|
Chris@0
|
410 # po:update_date
|
Chris@0
|
411
|
Chris@0
|
412 map:episodes a d2rq:ClassMap;
|
Chris@0
|
413 d2rq:dataStorage map:database;
|
Chris@0
|
414 d2rq:uriPattern "episode/@@episodes.id@@";
|
Chris@0
|
415 d2rq:class po:Episode;
|
Chris@0
|
416 .
|
Chris@0
|
417 map:episodes__label a d2rq:PropertyBridge;
|
Chris@0
|
418 d2rq:belongsToClassMap map:episodes;
|
Chris@0
|
419 d2rq:property rdfs:label;
|
Chris@0
|
420 d2rq:column "episodes.title";
|
Chris@0
|
421 .
|
Chris@0
|
422 map:episodes_html a d2rq:PropertyBridge;
|
Chris@0
|
423 d2rq:belongsToClassMap map:episodes;
|
Chris@0
|
424 d2rq:property foaf:homepage;
|
Chris@0
|
425 d2rq:uriPattern "http://www.bbc.co.uk/programmes/@@episodes.pid@@";
|
Chris@0
|
426 .
|
Chris@0
|
427 map:episodes_title a d2rq:PropertyBridge;
|
Chris@0
|
428 d2rq:belongsToClassMap map:episodes;
|
Chris@0
|
429 d2rq:property dc:title;
|
Chris@0
|
430 d2rq:column "episodes.title";
|
Chris@0
|
431 .
|
Chris@0
|
432 map:episodes_short_synopsis a d2rq:PropertyBridge;
|
Chris@0
|
433 d2rq:belongsToClassMap map:episodes;
|
Chris@0
|
434 d2rq:property po:short_synopsis;
|
Chris@0
|
435 d2rq:column "episodes.short_synopsis";
|
Chris@0
|
436 .
|
Chris@0
|
437 map:episodes_medium_synopsis a d2rq:PropertyBridge;
|
Chris@0
|
438 d2rq:belongsToClassMap map:episodes;
|
Chris@0
|
439 d2rq:property po:medium_synopsis;
|
Chris@0
|
440 d2rq:column "episodes.medium_synopsis";
|
Chris@0
|
441 .
|
Chris@0
|
442 map:episodes_long_synopsis a d2rq:PropertyBridge;
|
Chris@0
|
443 d2rq:belongsToClassMap map:episodes;
|
Chris@0
|
444 d2rq:property po:long_synopsis;
|
Chris@0
|
445 d2rq:column "episodes.long_synopsis";
|
Chris@0
|
446 .
|
Chris@0
|
447 map:episodes_pid a d2rq:PropertyBridge;
|
Chris@0
|
448 d2rq:belongsToClassMap map:episodes;
|
Chris@0
|
449 d2rq:property po:pid;
|
Chris@0
|
450 d2rq:column "episodes.pid";
|
Chris@0
|
451 .
|
Chris@0
|
452 map:episodes_position a d2rq:PropertyBridge;
|
Chris@0
|
453 d2rq:belongsToClassMap map:episodes;
|
Chris@0
|
454 d2rq:property po:position;
|
Chris@0
|
455 d2rq:column "episodes.position";
|
Chris@0
|
456 d2rq:datatype xsd:int;
|
Chris@0
|
457 .
|
Chris@0
|
458 map:episodes_service_id a d2rq:PropertyBridge;
|
Chris@0
|
459 d2rq:belongsToClassMap map:episodes;
|
Chris@0
|
460 d2rq:property po:service;
|
Chris@0
|
461 d2rq:refersToClassMap map:services;
|
Chris@0
|
462 d2rq:join "episodes.service_id = services.id";
|
Chris@0
|
463 .
|
Chris@0
|
464 map:episodes_created_at a d2rq:PropertyBridge;
|
Chris@0
|
465 d2rq:belongsToClassMap map:episodes;
|
Chris@0
|
466 d2rq:property po:creation_date;
|
Chris@0
|
467 d2rq:column "episodes.created_at";
|
Chris@0
|
468 d2rq:datatype xsd:dateTime;
|
Chris@0
|
469 d2rq:condition "episodes.created_at != '0000'";
|
Chris@0
|
470 .
|
Chris@0
|
471 map:episodes_updated_at a d2rq:PropertyBridge;
|
Chris@0
|
472 d2rq:belongsToClassMap map:episodes;
|
Chris@0
|
473 d2rq:property po:update_date;
|
Chris@0
|
474 d2rq:column "episodes.updated_at";
|
Chris@0
|
475 d2rq:datatype xsd:dateTime;
|
Chris@0
|
476 d2rq:condition "episodes.updated_at != '0000'";
|
Chris@0
|
477 .
|
Chris@0
|
478 # Mapping the table episode_title
|
Chris@0
|
479
|
Chris@0
|
480 # mysql> describe episode_titles;
|
Chris@0
|
481 # +-------------+--------------+------+-----+---------+----------------+
|
Chris@0
|
482 # | Field | Type | Null | Key | Default | Extra |
|
Chris@0
|
483 # +-------------+--------------+------+-----+---------+----------------+
|
Chris@0
|
484 # | id | int(11) | NO | PRI | NULL | auto_increment |
|
Chris@0
|
485 # | episode_id | int(11) | NO | MUL | 0 | |
|
Chris@0
|
486 # | title | varchar(255) | NO | | | |
|
Chris@0
|
487 # | slice_title | varchar(255) | NO | MUL | | |
|
Chris@0
|
488 # | letter | char(1) | NO | MUL | | |
|
Chris@0
|
489 # +-------------+--------------+------+-----+---------+----------------+
|
Chris@0
|
490
|
Chris@0
|
491 # To:
|
Chris@0
|
492 # po:Episode
|
Chris@0
|
493 # po:sort_title
|
Chris@0
|
494 # po:slice_title
|
Chris@0
|
495 # po:letter
|
Chris@0
|
496
|
Chris@0
|
497 map:episode_titles_title a d2rq:PropertyBridge;
|
Chris@0
|
498 d2rq:belongsToClassMap map:episodes;
|
Chris@0
|
499 d2rq:property po:sort_title;
|
Chris@0
|
500 d2rq:column "episode_titles.title";
|
Chris@0
|
501 d2rq:join "episode_titles.episode_id = episodes.id";
|
Chris@0
|
502 .
|
Chris@0
|
503 map:episode_titles_slice_title a d2rq:PropertyBridge;
|
Chris@0
|
504 d2rq:belongsToClassMap map:episodes;
|
Chris@0
|
505 d2rq:property po:slice_title;
|
Chris@0
|
506 d2rq:column "episode_titles.slice_title";
|
Chris@0
|
507 d2rq:join "episode_titles.episode_id = episodes.id";
|
Chris@0
|
508 .
|
Chris@0
|
509 map:episode_titles_letter a d2rq:PropertyBridge;
|
Chris@0
|
510 d2rq:belongsToClassMap map:episodes;
|
Chris@0
|
511 d2rq:property po:letter;
|
Chris@0
|
512 d2rq:column "episode_titles.letter";
|
Chris@0
|
513 d2rq:join "episode_titles.episode_id = episodes.id";
|
Chris@0
|
514 .
|
Chris@0
|
515 # Mapping the table rpps_links (start/end date?)
|
Chris@0
|
516
|
Chris@0
|
517 # mysql> describe rpps_links;
|
Chris@0
|
518 # +-----------------+-------------+------+-----+---------+----------------+
|
Chris@0
|
519 # | Field | Type | Null | Key | Default | Extra |
|
Chris@0
|
520 # +-----------------+-------------+------+-----+---------+----------------+
|
Chris@0
|
521 # | id | int(11) | NO | PRI | NULL | auto_increment |
|
Chris@0
|
522 # | episode_id | int(11) | NO | UNI | | |
|
Chris@0
|
523 # | rpps_id | int(11) | NO | UNI | | |
|
Chris@0
|
524 # | network_key | varchar(32) | NO | MUL | | |
|
Chris@0
|
525 # | file_key | varchar(64) | NO | | | |
|
Chris@0
|
526 # | available_start | datetime | NO | | | |
|
Chris@0
|
527 # | available_end | datetime | YES | | NULL | |
|
Chris@0
|
528 # +-----------------+-------------+------+-----+---------+----------------+
|
Chris@0
|
529
|
Chris@0
|
530 # To :
|
Chris@0
|
531 # po:Episode
|
Chris@0
|
532 # po:available_as
|
Chris@0
|
533
|
Chris@0
|
534 # TODO:
|
Chris@0
|
535 # * Dealing with start/end date?
|
Chris@0
|
536 # * It should surely be attached to a particular version!!!
|
Chris@0
|
537
|
Chris@0
|
538 map:episode_rpps a d2rq:PropertyBridge;
|
Chris@0
|
539 d2rq:belongsToClassMap map:episodes;
|
Chris@0
|
540 d2rq:property po:available_as;
|
Chris@0
|
541 d2rq:uriPattern "http://www.bbc.co.uk/radio/aod/@@rpps_links.network_key@@_aod.shtml?@@rpps_links.network_key@@/@@rpps_links.file_key@@";
|
Chris@0
|
542 d2rq:join "rpps_links.episode_id = episodes.id";
|
Chris@0
|
543 .
|
Chris@0
|
544
|
Chris@0
|
545
|
Chris@0
|
546 # Mapping the table formats
|
Chris@0
|
547
|
Chris@0
|
548 # mysql> describe formats;
|
Chris@0
|
549 # +--------------+--------------+------+-----+---------+----------------+
|
Chris@0
|
550 # | Field | Type | Null | Key | Default | Extra |
|
Chris@0
|
551 # +--------------+--------------+------+-----+---------+----------------+
|
Chris@0
|
552 # | id | int(11) | NO | PRI | NULL | auto_increment |
|
Chris@0
|
553 # | title | varchar(255) | NO | | | |
|
Chris@0
|
554 # | url_key | varchar(255) | NO | UNI | | |
|
Chris@0
|
555 # | pip_formatid | varchar(8) | NO | UNI | | |
|
Chris@0
|
556 # +--------------+--------------+------+-----+---------+----------------+
|
Chris@0
|
557
|
Chris@0
|
558 # To :
|
Chris@0
|
559 # po:Format
|
Chris@0
|
560 # rdfs:label
|
Chris@0
|
561 # dc:title
|
Chris@0
|
562 # foaf:homepage
|
Chris@0
|
563
|
Chris@0
|
564 map:formats a d2rq:ClassMap;
|
Chris@0
|
565 d2rq:dataStorage map:database;
|
Chris@0
|
566 d2rq:uriPattern "format/@@formats.id@@";
|
Chris@0
|
567 d2rq:class po:Format;
|
Chris@0
|
568 .
|
Chris@0
|
569 map:formats__label a d2rq:PropertyBridge;
|
Chris@0
|
570 d2rq:belongsToClassMap map:formats;
|
Chris@0
|
571 d2rq:property rdfs:label;
|
Chris@0
|
572 d2rq:column "formats.title";
|
Chris@0
|
573 .
|
Chris@0
|
574 map:formats_title a d2rq:PropertyBridge;
|
Chris@0
|
575 d2rq:belongsToClassMap map:formats;
|
Chris@0
|
576 d2rq:property dc:title;
|
Chris@0
|
577 d2rq:column "formats.title";
|
Chris@0
|
578 .
|
Chris@0
|
579 map:formats_html a d2rq:PropertyBridge;
|
Chris@0
|
580 d2rq:belongsToClassMap map:formats;
|
Chris@0
|
581 d2rq:property foaf:homepage;
|
Chris@0
|
582 d2rq:uriPattern "http://www.bbc.co.uk/programmes/formats/@@formats.url_key@@";
|
Chris@0
|
583 .
|
Chris@0
|
584
|
Chris@0
|
585 # mapping the table formats_versions
|
Chris@0
|
586
|
Chris@0
|
587 # mysql> describe formats_versions;
|
Chris@0
|
588 # +------------+---------+------+-----+---------+-------+
|
Chris@0
|
589 # | Field | Type | Null | Key | Default | Extra |
|
Chris@0
|
590 # +------------+---------+------+-----+---------+-------+
|
Chris@0
|
591 # | version_id | int(11) | NO | PRI | 0 | |
|
Chris@0
|
592 # | format_id | int(11) | NO | PRI | 0 | |
|
Chris@0
|
593 # +------------+---------+------+-----+---------+-------+
|
Chris@0
|
594
|
Chris@0
|
595 # To :
|
Chris@0
|
596 # po:Version
|
Chris@0
|
597 # po:format
|
Chris@0
|
598
|
Chris@0
|
599 map:formats_versions a d2rq:PropertyBridge;
|
Chris@0
|
600 d2rq:belongsToClassMap map:versions;
|
Chris@0
|
601 d2rq:property po:format;
|
Chris@0
|
602 d2rq:refersToClassMap map:formats;
|
Chris@0
|
603 d2rq:join "formats.id = formats_versions.format_id";
|
Chris@0
|
604 d2rq:join "formats_versions.version_id = versions.id";
|
Chris@0
|
605 .
|
Chris@0
|
606
|
Chris@0
|
607 # Mapping the table genres
|
Chris@0
|
608
|
Chris@0
|
609 # mysql> describe genres;
|
Chris@0
|
610 # +-----------------+--------------+------+-----+---------+----------------+
|
Chris@0
|
611 # | Field | Type | Null | Key | Default | Extra |
|
Chris@0
|
612 # +-----------------+--------------+------+-----+---------+----------------+
|
Chris@0
|
613 # | id | int(11) | NO | PRI | NULL | auto_increment |
|
Chris@0
|
614 # | parent_genre_id | int(11) | YES | MUL | NULL | |
|
Chris@0
|
615 # | title | varchar(255) | NO | | | |
|
Chris@0
|
616 # | url_key | varchar(255) | NO | MUL | | |
|
Chris@0
|
617 # | pip_genreid | varchar(8) | NO | UNI | | |
|
Chris@0
|
618 # +-----------------+--------------+------+-----+---------+----------------+
|
Chris@0
|
619
|
Chris@0
|
620 # To :
|
Chris@0
|
621 # skos:Concept
|
Chris@0
|
622 # rdfs:label
|
Chris@0
|
623 # skos:inScheme
|
Chris@0
|
624 # skos:narrower
|
Chris@0
|
625 # dc:title
|
Chris@0
|
626 # foaf:homepage
|
Chris@0
|
627
|
Chris@0
|
628 map:genres a d2rq:ClassMap;
|
Chris@0
|
629 d2rq:dataStorage map:database;
|
Chris@0
|
630 d2rq:uriPattern "genre/@@genres.id@@";
|
Chris@0
|
631 d2rq:class skos:Concept;
|
Chris@0
|
632 .
|
Chris@0
|
633 map:genres_inscheme a d2rq:PropertyBridge;
|
Chris@0
|
634 d2rq:belongsToClassMap map:genres;
|
Chris@0
|
635 d2rq:property skos:inScheme;
|
Chris@0
|
636 d2rq:uriPattern "http://purl.org/ontology/po/Genre";
|
Chris@0
|
637 .
|
Chris@0
|
638 map:genres__label a d2rq:PropertyBridge;
|
Chris@0
|
639 d2rq:belongsToClassMap map:genres;
|
Chris@0
|
640 d2rq:property rdfs:label;
|
Chris@0
|
641 d2rq:column "genres.title";
|
Chris@0
|
642 .
|
Chris@0
|
643 map:genres_html a d2rq:PropertyBridge;
|
Chris@0
|
644 d2rq:belongsToClassMap map:genres;
|
Chris@0
|
645 d2rq:property foaf:homepage;
|
Chris@0
|
646 d2rq:uriPattern "http://www.bbc.co.uk/programmes/genres/@@genres.url_key@@";
|
Chris@0
|
647 .
|
Chris@0
|
648 map:genres_parent_genre_id a d2rq:PropertyBridge;
|
Chris@0
|
649 d2rq:belongsToClassMap map:genres;
|
Chris@0
|
650 d2rq:property skos:narrower;
|
Chris@0
|
651 d2rq:refersToClassMap map:genres;
|
Chris@0
|
652 d2rq:alias "genres AS genres__alias";
|
Chris@0
|
653 d2rq:join "genres__alias.parent_genre_id = genres.id";
|
Chris@0
|
654 .
|
Chris@0
|
655 map:genres_title a d2rq:PropertyBridge;
|
Chris@0
|
656 d2rq:belongsToClassMap map:genres;
|
Chris@0
|
657 d2rq:property dc:title;
|
Chris@0
|
658 d2rq:column "genres.title";
|
Chris@0
|
659 .
|
Chris@0
|
660
|
Chris@0
|
661 # Mapping the table genres_versions
|
Chris@0
|
662
|
Chris@0
|
663 # mysql> describe genres_versions;
|
Chris@0
|
664 # +------------+---------+------+-----+---------+----------------+
|
Chris@0
|
665 # | Field | Type | Null | Key | Default | Extra |
|
Chris@0
|
666 # +------------+---------+------+-----+---------+----------------+
|
Chris@0
|
667 # | id | int(11) | NO | PRI | NULL | auto_increment |
|
Chris@0
|
668 # | version_id | int(11) | NO | MUL | 0 | |
|
Chris@0
|
669 # | genre_id | int(11) | NO | MUL | 0 | |
|
Chris@0
|
670 # | genre1_id | int(11) | NO | MUL | 0 | |
|
Chris@0
|
671 # | genre2_id | int(11) | YES | MUL | NULL | |
|
Chris@0
|
672 # | genre3_id | int(11) | YES | MUL | NULL | |
|
Chris@0
|
673 # +------------+---------+------+-----+---------+----------------+
|
Chris@0
|
674
|
Chris@0
|
675 # To :
|
Chris@0
|
676 # po:Version
|
Chris@0
|
677 # po:genre
|
Chris@0
|
678
|
Chris@0
|
679 # TODO:
|
Chris@0
|
680 # * Different `genre' properties for each degree of association
|
Chris@0
|
681 # * Should be linked to episode, instead of genre?
|
Chris@0
|
682
|
Chris@0
|
683 map:genres_versions_genre_1 a d2rq:PropertyBridge; # <<<<< there should be different genre properties
|
Chris@0
|
684 d2rq:belongsToClassMap map:versions;
|
Chris@0
|
685 d2rq:property po:genre;
|
Chris@0
|
686 d2rq:refersToClassMap map:genres;
|
Chris@0
|
687 d2rq:join "genres_versions.genre_id = genres.id";
|
Chris@0
|
688 d2rq:join "genres_versions.version_id = versions.id";
|
Chris@0
|
689 .
|
Chris@0
|
690 map:genres_versions_genre1_id a d2rq:PropertyBridge;
|
Chris@0
|
691 d2rq:belongsToClassMap map:versions;
|
Chris@0
|
692 d2rq:property po:genre;
|
Chris@0
|
693 d2rq:refersToClassMap map:genres;
|
Chris@0
|
694 d2rq:join "genres_versions.genre1_id = genres.id";
|
Chris@0
|
695 d2rq:join "genres_versions.version_id = versions.id";
|
Chris@0
|
696 .
|
Chris@0
|
697 map:genres_versions_genre2_id a d2rq:PropertyBridge;
|
Chris@0
|
698 d2rq:belongsToClassMap map:versions;
|
Chris@0
|
699 d2rq:property po:genre;
|
Chris@0
|
700 d2rq:refersToClassMap map:genres;
|
Chris@0
|
701 d2rq:join "genres_versions.genre2_id = genres.id";
|
Chris@0
|
702 d2rq:join "genres_versions.version_id = versions.id";
|
Chris@0
|
703 .
|
Chris@0
|
704 map:genres_versions_genre3_id a d2rq:PropertyBridge;
|
Chris@0
|
705 d2rq:belongsToClassMap map:versions;
|
Chris@0
|
706 d2rq:property po:genre;
|
Chris@0
|
707 d2rq:refersToClassMap map:genres;
|
Chris@0
|
708 d2rq:join "genres_versions.genre3_id = genres.id";
|
Chris@0
|
709 d2rq:join "genres_versions.version_id = versions.id";
|
Chris@0
|
710 .
|
Chris@0
|
711
|
Chris@0
|
712
|
Chris@0
|
713 # Mapping the table series
|
Chris@0
|
714
|
Chris@0
|
715 # mysql> describe series;
|
Chris@0
|
716 # +------------------+--------------+------+-----+---------+----------------+
|
Chris@0
|
717 # | Field | Type | Null | Key | Default | Extra |
|
Chris@0
|
718 # +------------------+--------------+------+-----+---------+----------------+
|
Chris@0
|
719 # | id | int(11) | NO | PRI | NULL | auto_increment |
|
Chris@0
|
720 # | parent_series_id | int(11) | YES | MUL | NULL | |
|
Chris@0
|
721 # | pid | varchar(8) | NO | UNI | | |
|
Chris@0
|
722 # | title | varchar(255) | NO | | | |
|
Chris@0
|
723 # | short_synopsis | text | YES | | NULL | |
|
Chris@0
|
724 # | medium_synopsis | text | YES | | NULL | |
|
Chris@0
|
725 # | long_synopsis | text | YES | | NULL | |
|
Chris@0
|
726 # | position | int(11) | YES | | NULL | |
|
Chris@0
|
727 # | service_id | int(11) | YES | MUL | NULL | |
|
Chris@0
|
728 # | opt_out_url | varchar(255) | YES | | NULL | |
|
Chris@0
|
729 # | created_at | datetime | NO | | | |
|
Chris@0
|
730 # | updated_at | datetime | NO | | | |
|
Chris@0
|
731 # +------------------+--------------+------+-----+---------+----------------+
|
Chris@0
|
732
|
Chris@0
|
733 # To :
|
Chris@0
|
734 # po:Series
|
Chris@0
|
735 # rdfs:label
|
Chris@0
|
736 # po:series
|
Chris@0
|
737 # po:pid
|
Chris@0
|
738 # dc:title
|
Chris@0
|
739 # po:short_synopsis
|
Chris@0
|
740 # po:medium_synopsis
|
Chris@0
|
741 # po:long_synopsis
|
Chris@0
|
742 # po:position
|
Chris@0
|
743 # po:service
|
Chris@0
|
744 # po:creation_date
|
Chris@0
|
745 # po:update_date
|
Chris@0
|
746
|
Chris@0
|
747 # TODO:
|
Chris@0
|
748 # * Filter out synopsis that do have an empty value (true for all other concepts
|
Chris@0
|
749 # holding such synopsis)
|
Chris@0
|
750
|
Chris@0
|
751 map:series a d2rq:ClassMap;
|
Chris@0
|
752 d2rq:dataStorage map:database;
|
Chris@0
|
753 d2rq:uriPattern "series/@@series.id@@";
|
Chris@0
|
754 d2rq:class po:Series;
|
Chris@0
|
755 .
|
Chris@0
|
756 map:series__label a d2rq:PropertyBridge;
|
Chris@0
|
757 d2rq:belongsToClassMap map:series;
|
Chris@0
|
758 d2rq:property rdfs:label;
|
Chris@0
|
759 d2rq:column "series.title";
|
Chris@0
|
760 .
|
Chris@0
|
761 map:series_html a d2rq:PropertyBridge;
|
Chris@0
|
762 d2rq:belongsToClassMap map:series;
|
Chris@0
|
763 d2rq:property foaf:homepage;
|
Chris@0
|
764 d2rq:uriPattern "http://www.bbc.co.uk/programmes/@@series.pid@@";
|
Chris@0
|
765 .
|
Chris@0
|
766 map:series_parent_series_id a d2rq:PropertyBridge;
|
Chris@0
|
767 d2rq:belongsToClassMap map:series;
|
Chris@0
|
768 d2rq:property po:series;
|
Chris@0
|
769 d2rq:refersToClassMap map:series;
|
Chris@0
|
770 d2rq:alias "series AS series__alias";
|
Chris@0
|
771 d2rq:join "series.id = series__alias.parent_series_id";
|
Chris@0
|
772 .
|
Chris@0
|
773 map:series_pid a d2rq:PropertyBridge;
|
Chris@0
|
774 d2rq:belongsToClassMap map:series;
|
Chris@0
|
775 d2rq:property po:pid;
|
Chris@0
|
776 d2rq:column "series.pid";
|
Chris@0
|
777 .
|
Chris@0
|
778 map:series_title a d2rq:PropertyBridge;
|
Chris@0
|
779 d2rq:belongsToClassMap map:series;
|
Chris@0
|
780 d2rq:property dc:title;
|
Chris@0
|
781 d2rq:column "series.title";
|
Chris@0
|
782 .
|
Chris@0
|
783 map:series_short_synopsis a d2rq:PropertyBridge;
|
Chris@0
|
784 d2rq:belongsToClassMap map:series;
|
Chris@0
|
785 d2rq:property po:short_synopsis;
|
Chris@0
|
786 d2rq:column "series.short_synopsis";
|
Chris@0
|
787 .
|
Chris@0
|
788 map:series_medium_synopsis a d2rq:PropertyBridge; # <<< condition on existence
|
Chris@0
|
789 d2rq:belongsToClassMap map:series;
|
Chris@0
|
790 d2rq:property po:medium_synopsis;
|
Chris@0
|
791 d2rq:column "series.medium_synopsis";
|
Chris@0
|
792 .
|
Chris@0
|
793 map:series_long_synopsis a d2rq:PropertyBridge;
|
Chris@0
|
794 d2rq:belongsToClassMap map:series;
|
Chris@0
|
795 d2rq:property po:long_synopsis;
|
Chris@0
|
796 d2rq:column "series.long_synopsis";
|
Chris@0
|
797 .
|
Chris@0
|
798 map:series_position a d2rq:PropertyBridge;
|
Chris@0
|
799 d2rq:belongsToClassMap map:series;
|
Chris@0
|
800 d2rq:property po:position;
|
Chris@0
|
801 d2rq:column "series.position";
|
Chris@0
|
802 d2rq:datatype xsd:int;
|
Chris@0
|
803 .
|
Chris@0
|
804 map:series_service_id a d2rq:PropertyBridge;
|
Chris@0
|
805 d2rq:belongsToClassMap map:series;
|
Chris@0
|
806 d2rq:property po:service;
|
Chris@0
|
807 d2rq:refersToClassMap map:services;
|
Chris@0
|
808 d2rq:join "series.service_id = services.id";
|
Chris@0
|
809 .
|
Chris@0
|
810 map:series_created_at a d2rq:PropertyBridge;
|
Chris@0
|
811 d2rq:belongsToClassMap map:series;
|
Chris@0
|
812 d2rq:property po:creation_date;
|
Chris@0
|
813 d2rq:column "series.created_at";
|
Chris@0
|
814 d2rq:datatype xsd:dateTime;
|
Chris@0
|
815 d2rq:condition "series.created_at != '0000'";
|
Chris@0
|
816 .
|
Chris@0
|
817 map:series_updated_at a d2rq:PropertyBridge;
|
Chris@0
|
818 d2rq:belongsToClassMap map:series;
|
Chris@0
|
819 d2rq:property po:update_date;
|
Chris@0
|
820 d2rq:column "series.updated_at";
|
Chris@0
|
821 d2rq:datatype xsd:dateTime;
|
Chris@0
|
822 d2rq:condition "series.updated_at != '0000'";
|
Chris@0
|
823 .
|
Chris@0
|
824
|
Chris@0
|
825 # Mapping the table series_titles
|
Chris@0
|
826
|
Chris@0
|
827 # mysql> describe series_titles;
|
Chris@0
|
828 # +-------------+--------------+------+-----+---------+----------------+
|
Chris@0
|
829 # | Field | Type | Null | Key | Default | Extra |
|
Chris@0
|
830 # +-------------+--------------+------+-----+---------+----------------+
|
Chris@0
|
831 # | id | int(11) | NO | PRI | NULL | auto_increment |
|
Chris@0
|
832 # | series_id | int(11) | NO | MUL | 0 | |
|
Chris@0
|
833 # | title | varchar(255) | NO | | | |
|
Chris@0
|
834 # | slice_title | varchar(255) | NO | MUL | | |
|
Chris@0
|
835 # | letter | char(1) | NO | MUL | | |
|
Chris@0
|
836 # +-------------+--------------+------+-----+---------+----------------+
|
Chris@0
|
837
|
Chris@0
|
838 # To :
|
Chris@0
|
839 # po:Series
|
Chris@0
|
840 # po:sort_title
|
Chris@0
|
841 # po:slice_title
|
Chris@0
|
842 # po:letter
|
Chris@0
|
843
|
Chris@0
|
844 map:series_titles_title a d2rq:PropertyBridge;
|
Chris@0
|
845 d2rq:belongsToClassMap map:series;
|
Chris@0
|
846 d2rq:property po:sort_title;
|
Chris@0
|
847 d2rq:column "series_titles.title";
|
Chris@0
|
848 d2rq:join "series_titles.series_id = series.id";
|
Chris@0
|
849 .
|
Chris@0
|
850 map:series_titles_slice_title a d2rq:PropertyBridge;
|
Chris@0
|
851 d2rq:belongsToClassMap map:series;
|
Chris@0
|
852 d2rq:property po:slice_title;
|
Chris@0
|
853 d2rq:column "series_titles.slice_title";
|
Chris@0
|
854 d2rq:join "series_titles.series_id = series.id";
|
Chris@0
|
855 .
|
Chris@0
|
856 map:series_titles_letter a d2rq:PropertyBridge;
|
Chris@0
|
857 d2rq:belongsToClassMap map:series;
|
Chris@0
|
858 d2rq:property po:letter;
|
Chris@0
|
859 d2rq:column "series_titles.letter";
|
Chris@0
|
860 d2rq:join "series_titles.series_id = series.id";
|
Chris@0
|
861 .
|
Chris@0
|
862
|
Chris@0
|
863 # Mapping the table services
|
Chris@0
|
864
|
Chris@0
|
865 # mysql> describe services;
|
Chris@0
|
866 # +-----------------------+-------------------------------------------------------------------------------------------+------+-----+---------+----------------+
|
Chris@0
|
867 # | Field | Type | Null | Key | Default | Extra |
|
Chris@0
|
868 # +-----------------------+-------------------------------------------------------------------------------------------+------+-----+---------+----------------+
|
Chris@0
|
869 # | id | int(11) | NO | PRI | NULL | auto_increment |
|
Chris@0
|
870 # | parent_service_id | int(11) | YES | MUL | NULL | |
|
Chris@0
|
871 # | title | varchar(64) | NO | | | |
|
Chris@0
|
872 # | api_public_name | varchar(32) | NO | UNI | | |
|
Chris@0
|
873 # | url_key | varchar(32) | NO | MUL | | |
|
Chris@0
|
874 # | outlet_url_key | varchar(32) | YES | MUL | NULL | |
|
Chris@0
|
875 # | is_publication_outlet | tinyint(4) | NO | | 1 | |
|
Chris@0
|
876 # | region | varchar(64) | YES | | NULL | |
|
Chris@0
|
877 # | service_type | enum('Local Radio','National Radio','Regional Radio','TV','Web Only','Master Brand Only') | YES | | NULL | |
|
Chris@0
|
878 # +-----------------------+-------------------------------------------------------------------------------------------+------+-----+---------+----------------+
|
Chris@0
|
879
|
Chris@0
|
880 # To:
|
Chris@0
|
881 # po:Service
|
Chris@0
|
882 # rdfs:label
|
Chris@0
|
883 # po:parent_service
|
Chris@0
|
884 # dc:title
|
Chris@0
|
885 # po:location
|
Chris@0
|
886 # po:TV
|
Chris@0
|
887 # po:LocalRadio
|
Chris@0
|
888 # po:RegionalRadio
|
Chris@0
|
889 # po:NationalRadio
|
Chris@0
|
890 # po:Web
|
Chris@0
|
891 # po:MasterBrand
|
Chris@0
|
892
|
Chris@0
|
893 # TODO:
|
Chris@0
|
894 # * All services are self-contained - this might not be a real issue, though
|
Chris@0
|
895 # * Sort out foaf:homepage
|
Chris@0
|
896
|
Chris@0
|
897 map:services a d2rq:ClassMap;
|
Chris@0
|
898 d2rq:dataStorage map:database;
|
Chris@0
|
899 d2rq:uriPattern "service/@@services.id@@";
|
Chris@0
|
900 d2rq:class po:Service;
|
Chris@0
|
901 .
|
Chris@0
|
902 map:services__label a d2rq:PropertyBridge;
|
Chris@0
|
903 d2rq:belongsToClassMap map:services;
|
Chris@0
|
904 d2rq:property rdfs:label;
|
Chris@0
|
905 d2rq:column "services.title";
|
Chris@0
|
906 .
|
Chris@0
|
907 #map:services_html a d2rq:PropertyBridge;
|
Chris@0
|
908 # d2rq:belongsToClassMap map:services;
|
Chris@0
|
909 # d2rq:property foaf:homepage;
|
Chris@0
|
910 # d2rq:uriPattern "http://www.bbc.co.uk/programmes/services/@@services.url_key@@";
|
Chris@0
|
911 # .
|
Chris@0
|
912 map:services_parent_service_id a d2rq:PropertyBridge; # <<<<< Why are all services self-contained??
|
Chris@0
|
913 d2rq:belongsToClassMap map:services;
|
Chris@0
|
914 d2rq:property po:parent_service;
|
Chris@0
|
915 d2rq:refersToClassMap map:services;
|
Chris@0
|
916 d2rq:alias "services AS services__alias";
|
Chris@0
|
917 d2rq:join "services.parent_service_id = services__alias.id";
|
Chris@0
|
918 .
|
Chris@0
|
919 map:services_title a d2rq:PropertyBridge;
|
Chris@0
|
920 d2rq:belongsToClassMap map:services;
|
Chris@0
|
921 d2rq:property dc:title;
|
Chris@0
|
922 d2rq:column "services.title";
|
Chris@0
|
923 .
|
Chris@0
|
924 map:services_region a d2rq:PropertyBridge; # <<<<<<<
|
Chris@0
|
925 d2rq:belongsToClassMap map:services;
|
Chris@0
|
926 d2rq:property po:location;
|
Chris@0
|
927 d2rq:translateWith map:location_table;
|
Chris@0
|
928 d2rq:uriColumn "services.region";
|
Chris@0
|
929 .
|
Chris@0
|
930 map:tv_service a d2rq:ClassMap;
|
Chris@0
|
931 d2rq:dataStorage map:database;
|
Chris@0
|
932 d2rq:uriPattern "service/@@services.id@@";
|
Chris@0
|
933 d2rq:class po:TV;
|
Chris@0
|
934 d2rq:condition "services.service_type = 'TV'";
|
Chris@0
|
935 .
|
Chris@0
|
936 map:local_service a d2rq:ClassMap;
|
Chris@0
|
937 d2rq:dataStorage map:database;
|
Chris@0
|
938 d2rq:uriPattern "service/@@services.id@@";
|
Chris@0
|
939 d2rq:class po:LocalRadio;
|
Chris@0
|
940 d2rq:condition "services.service_type = 'Local Radio'";
|
Chris@0
|
941 .
|
Chris@0
|
942 map:regional_service a d2rq:ClassMap;
|
Chris@0
|
943 d2rq:dataStorage map:database;
|
Chris@0
|
944 d2rq:uriPattern "service/@@services.id@@";
|
Chris@0
|
945 d2rq:class po:RegionalRadio;
|
Chris@0
|
946 d2rq:condition "services.service_type = 'Regional Radio'";
|
Chris@0
|
947 .
|
Chris@0
|
948 map:national_service a d2rq:ClassMap;
|
Chris@0
|
949 d2rq:dataStorage map:database;
|
Chris@0
|
950 d2rq:uriPattern "service/@@services.id@@";
|
Chris@0
|
951 d2rq:class po:NationalRadio;
|
Chris@0
|
952 d2rq:condition "services.service_type = 'National Radio'";
|
Chris@0
|
953 .
|
Chris@0
|
954 map:web_service a d2rq:ClassMap;
|
Chris@0
|
955 d2rq:dataStorage map:database;
|
Chris@0
|
956 d2rq:uriPattern "service/@@services.id@@";
|
Chris@0
|
957 d2rq:class po:Web;
|
Chris@0
|
958 d2rq:condition "services.service_type = 'Web Only'";
|
Chris@0
|
959 .
|
Chris@0
|
960 map:master_service a d2rq:ClassMap; # <<<< ?
|
Chris@0
|
961 d2rq:dataStorage map:database;
|
Chris@0
|
962 d2rq:uriPattern "service/@@services.id@@";
|
Chris@0
|
963 d2rq:class po:MasterBrand;
|
Chris@0
|
964 d2rq:condition "services.service_type = 'Master Brand Only'";
|
Chris@0
|
965 .
|
Chris@0
|
966
|
Chris@0
|
967 # Table for location mapping
|
Chris@0
|
968 map:location_table a d2rq:TranslationTable;
|
Chris@0
|
969 d2rq:translation [
|
Chris@0
|
970 d2rq:databaseValue "All regions";
|
Chris@0
|
971 d2rq:rdfValue <http://sws.geonames.org/2635167/>;
|
Chris@0
|
972 ];
|
Chris@0
|
973 d2rq:translation [
|
Chris@0
|
974 d2rq:databaseValue "All English Regions";
|
Chris@0
|
975 d2rq:rdfValue <http://sws.geonames.org/2635167/>; #??
|
Chris@0
|
976 ];
|
Chris@0
|
977 d2rq:translation [
|
Chris@0
|
978 d2rq:databaseValue "Northern Ireland";
|
Chris@0
|
979 d2rq:rdfValue <http://sws.geonames.org/2635167/>;
|
Chris@0
|
980 ];
|
Chris@0
|
981 d2rq:translation [
|
Chris@0
|
982 d2rq:databaseValue "Wales";
|
Chris@0
|
983 d2rq:rdfValue <http://sws.geonames.org/2635167/>;
|
Chris@0
|
984 ];
|
Chris@0
|
985 d2rq:translation [
|
Chris@0
|
986 d2rq:databaseValue "South West";
|
Chris@0
|
987 d2rq:rdfValue <http://sws.geonames.org/2637294/>; #South West peninsula?
|
Chris@0
|
988 ];
|
Chris@0
|
989 d2rq:translation [
|
Chris@0
|
990 d2rq:databaseValue "West Midlands";
|
Chris@0
|
991 d2rq:rdfValue <http://sws.geonames.org/2634343/>;
|
Chris@0
|
992 ];
|
Chris@0
|
993 d2rq:translation [
|
Chris@0
|
994 d2rq:databaseValue "East Midlands";
|
Chris@0
|
995 d2rq:rdfValue <http://sws.geonames.org/6296613/>;
|
Chris@0
|
996 ];
|
Chris@0
|
997 d2rq:translation [
|
Chris@0
|
998 d2rq:databaseValue "North East & Cumbria";
|
Chris@0
|
999 d2rq:rdfValue <http://sws.geonames.org/2651712/>;
|
Chris@0
|
1000 ];
|
Chris@0
|
1001 d2rq:translation [
|
Chris@0
|
1002 d2rq:databaseValue "Scotland";
|
Chris@0
|
1003 d2rq:rdfValue <http://sws.geonames.org/2638360/>;
|
Chris@0
|
1004 ];
|
Chris@0
|
1005 d2rq:translation [
|
Chris@0
|
1006 d2rq:databaseValue "Yorkshire";
|
Chris@0
|
1007 d2rq:rdfValue <http://sws.geonames.org/2641209/>;
|
Chris@0
|
1008 ];
|
Chris@0
|
1009 d2rq:translation [
|
Chris@0
|
1010 d2rq:databaseValue "Oxfordshire";
|
Chris@0
|
1011 d2rq:rdfValue <http://sws.geonames.org/2640726/>;
|
Chris@0
|
1012 ];
|
Chris@0
|
1013 d2rq:translation [
|
Chris@0
|
1014 d2rq:databaseValue "South East";
|
Chris@0
|
1015 d2rq:rdfValue <http://sws.geonames.org/2637438/>;
|
Chris@0
|
1016 ];
|
Chris@0
|
1017 d2rq:translation [
|
Chris@0
|
1018 d2rq:databaseValue "Cambridgeshire";
|
Chris@0
|
1019 d2rq:rdfValue <http://sws.geonames.org/2653940/>;
|
Chris@0
|
1020 ];
|
Chris@0
|
1021 d2rq:translation [
|
Chris@0
|
1022 d2rq:databaseValue "Channel Islands";
|
Chris@0
|
1023 d2rq:rdfValue <http://sws.geonames.org/3042400/>;
|
Chris@0
|
1024 ];
|
Chris@0
|
1025 d2rq:translation [
|
Chris@0
|
1026 d2rq:databaseValue "East Yorkshire & Lincolnshire";
|
Chris@0
|
1027 d2rq:rdfValue <http://sws.geonames.org/2644486/>;
|
Chris@0
|
1028 ];
|
Chris@0
|
1029 d2rq:translation [
|
Chris@0
|
1030 d2rq:databaseValue "Northern Ireland";
|
Chris@0
|
1031 d2rq:rdfValue <http://sws.geonames.org/2641364/>;
|
Chris@0
|
1032 ];
|
Chris@0
|
1033 d2rq:translation [
|
Chris@0
|
1034 d2rq:databaseValue "London";
|
Chris@0
|
1035 d2rq:rdfValue <http://sws.geonames.org/2643744/>;
|
Chris@0
|
1036 ];
|
Chris@0
|
1037 .
|
Chris@0
|
1038
|
Chris@0
|
1039 # Mapping the table taggings
|
Chris@0
|
1040
|
Chris@0
|
1041 # mysql> describe taggings;
|
Chris@0
|
1042 # +------------+----------+------+-----+---------------------+----------------+
|
Chris@0
|
1043 # | Field | Type | Null | Key | Default | Extra |
|
Chris@0
|
1044 # +------------+----------+------+-----+---------------------+----------------+
|
Chris@0
|
1045 # | id | int(11) | NO | PRI | NULL | auto_increment |
|
Chris@0
|
1046 # | episode_id | int(11) | NO | MUL | 0 | |
|
Chris@0
|
1047 # | tag_id | int(11) | NO | MUL | 0 | |
|
Chris@0
|
1048 # | created | datetime | NO | | 0000-00-00 00:00:00 | |
|
Chris@0
|
1049 # | pit_id | int(11) | NO | UNI | 0 | |
|
Chris@0
|
1050 # +------------+----------+------+-----+---------------------+----------------+
|
Chris@0
|
1051
|
Chris@0
|
1052 # To:
|
Chris@0
|
1053 # tags:Tagging
|
Chris@0
|
1054 # rdfs:label
|
Chris@0
|
1055 # tags:tag
|
Chris@0
|
1056 # tags:associatedTag
|
Chris@0
|
1057 # tags:taggedOn
|
Chris@0
|
1058
|
Chris@0
|
1059 map:taggings a d2rq:ClassMap;
|
Chris@0
|
1060 d2rq:dataStorage map:database;
|
Chris@0
|
1061 d2rq:uriPattern "tagging/@@taggings.id@@";
|
Chris@0
|
1062 d2rq:class tags:Tagging;
|
Chris@0
|
1063 .
|
Chris@0
|
1064 map:taggings__label a d2rq:PropertyBridge;
|
Chris@0
|
1065 d2rq:belongsToClassMap map:taggings;
|
Chris@0
|
1066 d2rq:property rdfs:label;
|
Chris@0
|
1067 d2rq:pattern "taggings #@@taggings.id@@";
|
Chris@0
|
1068 .
|
Chris@0
|
1069 map:taggings_episode_id a d2rq:PropertyBridge;
|
Chris@0
|
1070 d2rq:belongsToClassMap map:episodes;
|
Chris@0
|
1071 d2rq:property tags:tag;
|
Chris@0
|
1072 d2rq:refersToClassMap map:taggings;
|
Chris@0
|
1073 d2rq:join "taggings.episode_id = episodes.id";
|
Chris@0
|
1074 .
|
Chris@0
|
1075 map:taggings_tag_id a d2rq:PropertyBridge;
|
Chris@0
|
1076 d2rq:belongsToClassMap map:taggings;
|
Chris@0
|
1077 d2rq:property tags:associatedTag;
|
Chris@0
|
1078 d2rq:refersToClassMap map:tags;
|
Chris@0
|
1079 d2rq:join "taggings.tag_id = tags.id";
|
Chris@0
|
1080 .
|
Chris@0
|
1081 map:taggings_created a d2rq:PropertyBridge;
|
Chris@0
|
1082 d2rq:belongsToClassMap map:taggings;
|
Chris@0
|
1083 d2rq:property tags:taggedOn;
|
Chris@0
|
1084 d2rq:column "taggings.created";
|
Chris@0
|
1085 d2rq:datatype xsd:dateTime;
|
Chris@0
|
1086 d2rq:condition "taggings.created != '0000'";
|
Chris@0
|
1087 .
|
Chris@0
|
1088
|
Chris@0
|
1089 # Mapping the table tags
|
Chris@0
|
1090
|
Chris@0
|
1091 # mysql> describe tags;
|
Chris@0
|
1092 # +---------+--------------+------+-----+---------+----------------+
|
Chris@0
|
1093 # | Field | Type | Null | Key | Default | Extra |
|
Chris@0
|
1094 # +---------+--------------+------+-----+---------+----------------+
|
Chris@0
|
1095 # | id | int(11) | NO | PRI | NULL | auto_increment |
|
Chris@0
|
1096 # | title | varchar(255) | NO | | | |
|
Chris@0
|
1097 # | url_key | varchar(255) | NO | MUL | | |
|
Chris@0
|
1098 # | pit_id | int(11) | NO | UNI | 0 | |
|
Chris@0
|
1099 # +---------+--------------+------+-----+---------+----------------+
|
Chris@0
|
1100
|
Chris@0
|
1101 # To :
|
Chris@0
|
1102 # tags:Tag
|
Chris@0
|
1103 # rdfs:label
|
Chris@0
|
1104 # dc:title
|
Chris@0
|
1105
|
Chris@0
|
1106 # TODO:
|
Chris@0
|
1107 # * investigate the weird thing happening at http://www.bbc.co.uk/programmes/tags/john%20o'farrell
|
Chris@0
|
1108 # * most of the foaf:homepage point to non yet existing pages
|
Chris@0
|
1109
|
Chris@0
|
1110 map:tags a d2rq:ClassMap;
|
Chris@0
|
1111 d2rq:dataStorage map:database;
|
Chris@0
|
1112 d2rq:uriPattern "tag/@@tags.id@@";
|
Chris@0
|
1113 d2rq:class tags:Tag;
|
Chris@0
|
1114 .
|
Chris@0
|
1115 map:tags__label a d2rq:PropertyBridge;
|
Chris@0
|
1116 d2rq:belongsToClassMap map:tags;
|
Chris@0
|
1117 d2rq:property rdfs:label;
|
Chris@0
|
1118 d2rq:column "tags.title";
|
Chris@0
|
1119 .
|
Chris@0
|
1120 map:taggings_html a d2rq:PropertyBridge;
|
Chris@0
|
1121 d2rq:belongsToClassMap map:tags;
|
Chris@0
|
1122 d2rq:property foaf:homepage;
|
Chris@0
|
1123 d2rq:uriPattern "http://www.bbc.co.uk/programmes/tags/@@tags.url_key@@";
|
Chris@0
|
1124 .
|
Chris@0
|
1125 map:tags_title a d2rq:PropertyBridge;
|
Chris@0
|
1126 d2rq:belongsToClassMap map:tags;
|
Chris@0
|
1127 d2rq:property dc:title;
|
Chris@0
|
1128 d2rq:column "tags.title";
|
Chris@0
|
1129 .
|
Chris@0
|
1130
|
Chris@0
|
1131 # Mapping the table version_types
|
Chris@0
|
1132
|
Chris@0
|
1133 # mysql> describe version_types;
|
Chris@0
|
1134 # +---------------------+--------------+------+-----+---------+----------------+
|
Chris@0
|
1135 # | Field | Type | Null | Key | Default | Extra |
|
Chris@0
|
1136 # +---------------------+--------------+------+-----+---------+----------------+
|
Chris@0
|
1137 # | id | int(11) | NO | PRI | NULL | auto_increment |
|
Chris@0
|
1138 # | pip_version_type_id | varchar(32) | NO | UNI | | |
|
Chris@0
|
1139 # | title | varchar(128) | YES | | | |
|
Chris@0
|
1140 # | synopsis | varchar(128) | YES | | NULL | |
|
Chris@0
|
1141 # +---------------------+--------------+------+-----+---------+----------------+
|
Chris@0
|
1142
|
Chris@0
|
1143 # And the table version_types_versions ...
|
Chris@0
|
1144
|
Chris@0
|
1145 # mysql> describe version_types_versions;
|
Chris@0
|
1146 # +-----------------+---------+------+-----+---------+-------+
|
Chris@0
|
1147 # | Field | Type | Null | Key | Default | Extra |
|
Chris@0
|
1148 # +-----------------+---------+------+-----+---------+-------+
|
Chris@0
|
1149 # | version_id | int(11) | NO | PRI | 0 | |
|
Chris@0
|
1150 # | version_type_id | int(11) | NO | PRI | 0 | |
|
Chris@0
|
1151 # +-----------------+---------+------+-----+---------+-------+
|
Chris@0
|
1152
|
Chris@0
|
1153 # To :
|
Chris@0
|
1154 # po:OriginalVersion
|
Chris@0
|
1155 # po:AudioDescribedVersion
|
Chris@0
|
1156 # po:SignedVersion
|
Chris@0
|
1157 # po:ShortenedVersion
|
Chris@0
|
1158
|
Chris@0
|
1159 map:original_version a d2rq:ClassMap;
|
Chris@0
|
1160 d2rq:dataStorage map:database;
|
Chris@0
|
1161 d2rq:uriPattern "version/@@versions.id@@";
|
Chris@0
|
1162 d2rq:class po:OriginalVersion;
|
Chris@0
|
1163 d2rq:condition "versions.id = version_types_versions.version_id";
|
Chris@0
|
1164 d2rq:condition "version_types_versions.version_type_id = version_types.id" ;
|
Chris@0
|
1165 d2rq:condition "version_types.pip_version_type_id = 'Original'";
|
Chris@0
|
1166 .
|
Chris@0
|
1167 map:audiodesc_version a d2rq:ClassMap;
|
Chris@0
|
1168 d2rq:dataStorage map:database;
|
Chris@0
|
1169 d2rq:uriPattern "version/@@versions.id@@";
|
Chris@0
|
1170 d2rq:class po:AudioDescribedVersion;
|
Chris@0
|
1171 d2rq:condition "versions.id = version_types_versions.version_id";
|
Chris@0
|
1172 d2rq:condition "version_types_versions.version_type_id = version_types.id" ;
|
Chris@0
|
1173 d2rq:condition "version_types.pip_version_type_id = 'AudioDescribed'";
|
Chris@0
|
1174 .
|
Chris@0
|
1175 map:signed_version a d2rq:ClassMap;
|
Chris@0
|
1176 d2rq:dataStorage map:database;
|
Chris@0
|
1177 d2rq:uriPattern "version/@@versions.id@@";
|
Chris@0
|
1178 d2rq:class po:SignedVersion;
|
Chris@0
|
1179 d2rq:condition "versions.id = version_types_versions.version_id";
|
Chris@0
|
1180 d2rq:condition "version_types_versions.version_type_id = version_types.id" ;
|
Chris@0
|
1181 d2rq:condition "version_types.pip_version_type_id = 'Signed'";
|
Chris@0
|
1182 .
|
Chris@0
|
1183 map:shortened_version a d2rq:ClassMap;
|
Chris@0
|
1184 d2rq:dataStorage map:database;
|
Chris@0
|
1185 d2rq:uriPattern "version/@@versions.id@@";
|
Chris@0
|
1186 d2rq:class po:ShortenedVersion;
|
Chris@0
|
1187 d2rq:condition "versions.id = version_types_versions.version_id";
|
Chris@0
|
1188 d2rq:condition "version_types_versions.version_type_id = version_types.id" ;
|
Chris@0
|
1189 d2rq:condition "version_types.pip_version_type_id = 'Shortened'";
|
Chris@0
|
1190 .
|
Chris@0
|
1191
|
Chris@0
|
1192 # Mapping the table versions
|
Chris@0
|
1193
|
Chris@0
|
1194 # mysql> describe versions;
|
Chris@0
|
1195 # +-----------------------+-----------------------+------+-----+---------+----------------+
|
Chris@0
|
1196 # | Field | Type | Null | Key | Default | Extra |
|
Chris@0
|
1197 # +-----------------------+-----------------------+------+-----+---------+----------------+
|
Chris@0
|
1198 # | id | int(11) | NO | PRI | NULL | auto_increment |
|
Chris@0
|
1199 # | pid | varchar(8) | NO | UNI | | |
|
Chris@0
|
1200 # | episode_id | int(11) | NO | MUL | 0 | |
|
Chris@0
|
1201 # | duration | int(11) | YES | | NULL | |
|
Chris@0
|
1202 # | aspect_ratio | varchar(16) | YES | | NULL | |
|
Chris@0
|
1203 # | sound_format | varchar(64) | YES | | NULL | |
|
Chris@0
|
1204 # | subtitle_type | enum('open','closed') | YES | | NULL | |
|
Chris@0
|
1205 # | subtitle_supplemental | tinyint(1) | YES | | NULL | |
|
Chris@0
|
1206 # | subtitle_language | varchar(8) | YES | | NULL | |
|
Chris@0
|
1207 # | created_at | datetime | NO | | | |
|
Chris@0
|
1208 # | updated_at | datetime | NO | | | |
|
Chris@0
|
1209 # +-----------------------+-----------------------+------+-----+---------+----------------+
|
Chris@0
|
1210
|
Chris@0
|
1211 # To:
|
Chris@0
|
1212 # po:Version
|
Chris@0
|
1213 # rdfs:label
|
Chris@0
|
1214 # po:pid
|
Chris@0
|
1215 # po:version
|
Chris@0
|
1216 # po:duration
|
Chris@0
|
1217 # po:aspect_ratio
|
Chris@0
|
1218 # po:sound_format
|
Chris@0
|
1219 # po:creation_date
|
Chris@0
|
1220 # po:update_date
|
Chris@0
|
1221 # po:subtitle
|
Chris@0
|
1222 # po:Subtitle
|
Chris@0
|
1223 # po:subtitle_type
|
Chris@0
|
1224 # po:subtitle_supplemental
|
Chris@0
|
1225 # po:subtitle_language
|
Chris@0
|
1226
|
Chris@0
|
1227 map:versions a d2rq:ClassMap;
|
Chris@0
|
1228 d2rq:dataStorage map:database;
|
Chris@0
|
1229 d2rq:uriPattern "version/@@versions.id@@";
|
Chris@0
|
1230 d2rq:class po:Version;
|
Chris@0
|
1231 .
|
Chris@0
|
1232 map:versions__label a d2rq:PropertyBridge;
|
Chris@0
|
1233 d2rq:belongsToClassMap map:versions;
|
Chris@0
|
1234 d2rq:property rdfs:label;
|
Chris@0
|
1235 d2rq:pattern "versions #@@versions.id@@";
|
Chris@0
|
1236 .
|
Chris@0
|
1237 map:versions_pid a d2rq:PropertyBridge;
|
Chris@0
|
1238 d2rq:belongsToClassMap map:versions;
|
Chris@0
|
1239 d2rq:property po:pid;
|
Chris@0
|
1240 d2rq:column "versions.pid";
|
Chris@0
|
1241 .
|
Chris@0
|
1242 map:versions_episode_id a d2rq:PropertyBridge;
|
Chris@0
|
1243 d2rq:belongsToClassMap map:episodes;
|
Chris@0
|
1244 d2rq:property po:version;
|
Chris@0
|
1245 d2rq:refersToClassMap map:versions;
|
Chris@0
|
1246 d2rq:join "versions.episode_id = episodes.id";
|
Chris@0
|
1247 .
|
Chris@0
|
1248 map:versions_duration a d2rq:PropertyBridge;
|
Chris@0
|
1249 d2rq:belongsToClassMap map:versions;
|
Chris@0
|
1250 d2rq:property po:duration;
|
Chris@0
|
1251 d2rq:column "versions.duration";
|
Chris@0
|
1252 d2rq:datatype xsd:int;
|
Chris@0
|
1253 .
|
Chris@0
|
1254 map:versions_aspect_ratio a d2rq:PropertyBridge;
|
Chris@0
|
1255 d2rq:belongsToClassMap map:versions;
|
Chris@0
|
1256 d2rq:property po:aspect_ratio;
|
Chris@0
|
1257 d2rq:column "versions.aspect_ratio";
|
Chris@0
|
1258 .
|
Chris@0
|
1259 map:versions_sound_format a d2rq:PropertyBridge;
|
Chris@0
|
1260 d2rq:belongsToClassMap map:versions;
|
Chris@0
|
1261 d2rq:property po:sound_format;
|
Chris@0
|
1262 d2rq:column "versions.sound_format";
|
Chris@0
|
1263 .
|
Chris@0
|
1264 map:versions_subtitle a d2rq:PropertyBridge;
|
Chris@0
|
1265 d2rq:belongsToClassMap map:versions;
|
Chris@0
|
1266 d2rq:property po:subtitle;
|
Chris@0
|
1267 d2rq:uriPattern "subtitle/@@versions.id@@";
|
Chris@0
|
1268 .
|
Chris@0
|
1269 map:subtitle a d2rq:ClassMap;
|
Chris@0
|
1270 d2rq:dataStorage map:database;
|
Chris@0
|
1271 d2rq:uriPattern "subtitle/@@versions.id@@";
|
Chris@0
|
1272 d2rq:class po:Subtitle;
|
Chris@0
|
1273 .
|
Chris@0
|
1274 map:versions_subtitle_type a d2rq:PropertyBridge;
|
Chris@0
|
1275 d2rq:belongsToClassMap map:subtitle;
|
Chris@0
|
1276 d2rq:property po:subtitle_type;
|
Chris@0
|
1277 d2rq:column "versions.subtitle_type";
|
Chris@0
|
1278 .
|
Chris@0
|
1279 map:versions_subtitle_supplemental a d2rq:PropertyBridge;
|
Chris@0
|
1280 d2rq:belongsToClassMap map:subtitle;
|
Chris@0
|
1281 d2rq:property po:subtitle_supplemental;
|
Chris@0
|
1282 d2rq:column "versions.subtitle_supplemental";
|
Chris@0
|
1283 .
|
Chris@0
|
1284 map:versions_subtitle_language a d2rq:PropertyBridge;
|
Chris@0
|
1285 d2rq:belongsToClassMap map:subtitle;
|
Chris@0
|
1286 d2rq:property po:subtitle_language;
|
Chris@0
|
1287 d2rq:column "versions.subtitle_language";
|
Chris@0
|
1288 .
|
Chris@0
|
1289 map:versions_created_at a d2rq:PropertyBridge;
|
Chris@0
|
1290 d2rq:belongsToClassMap map:versions;
|
Chris@0
|
1291 d2rq:property po:creation_date;
|
Chris@0
|
1292 d2rq:column "versions.created_at";
|
Chris@0
|
1293 d2rq:datatype xsd:dateTime;
|
Chris@0
|
1294 d2rq:condition "versions.created_at != '0000'";
|
Chris@0
|
1295 .
|
Chris@0
|
1296 map:versions_updated_at a d2rq:PropertyBridge;
|
Chris@0
|
1297 d2rq:belongsToClassMap map:versions;
|
Chris@0
|
1298 d2rq:property po:update_date;
|
Chris@0
|
1299 d2rq:column "versions.updated_at";
|
Chris@0
|
1300 d2rq:datatype xsd:dateTime;
|
Chris@0
|
1301 d2rq:condition "versions.updated_at != '0000'";
|
Chris@0
|
1302 .
|
Chris@0
|
1303
|