Project

General

Profile

Download (23.3 KB) Statistics
| Branch: | Tag: | Revision:
1
<?xml version="1.0" encoding="UTF-8"?>
2
<!-- $Rev: 1321 $ -->
3
<!-- $Date: 2007-09-10 15:23:32 +0000 (Mon, 10 Sep 2007) $ -->
4
<!-- $Author: RogerHyam $ -->
5
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
6
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
7
     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" version="1.0"
8
     xmlns:dcterms="http://purl.org/dc/terms/" xmlns:dc="http://purl.org/dc/elements/1.1/"
9
     xmlns:tcom="http://rs.tdwg.org/ontology/voc/Common#" xmlns:owl="http://www.w3.org/2002/07/owl#"
10
     xmlns:tbase="http://rs.tdwg.org/ontology/Base#">
11
     <xsl:output method="html" encoding="UTF-8" indent="yes"/>
12
     <xsl:variable name="wikiPrefix">http://wiki.tdwg.org/twiki/bin/view/TAG/OntDiscuss</xsl:variable>
13
     <xsl:variable name="ontologyName">
14
          <xsl:choose>
15
               <xsl:when test="contains(/rdf:RDF/owl:Ontology/@rdf:about, '/ontology/voc/')">
16
                    <xsl:value-of
17
                         select="substring-after(/rdf:RDF/owl:Ontology/@rdf:about, '/ontology/voc/')"
18
                    />
19
               </xsl:when>
20
               <xsl:otherwise>
21
                    <xsl:value-of
22
                         select="substring-after(/rdf:RDF/owl:Ontology/@rdf:about, '/ontology/')"/>
23
               </xsl:otherwise>
24
          </xsl:choose>
25
     </xsl:variable>
26
     <xsl:template match="rdf:RDF">
27
          <html>
28
               <head>
29
                    <title><xsl:value-of select="$ontologyName"/> - Vocabulary</title>
30
                    <link rel="stylesheet" type="text/css" href="human.css"/>
31
               </head>
32
               <body>
33
                    <div class="container">
34

    
35
                         <div id="RDF-header">
36
                              <div id="logoBox">
37
                                   <a href="http://www.tdwg.org">
38
                                        <img src="images/logo_RDF.gif" alt="TDWG logo" width="117"
39
                                             height="67" border="0" id="logo"/>
40
                                   </a>
41
                              </div>
42
                              <div id="RDF-header-title"> TDWG Current Ontology (minimal classes for LSID Vocs) </div>
43
                         </div>
44

    
45
                         <div id="RDF-title-bar">
46
                              <img src="images/left-bar-top.gif" alt="left bar top"/>
47
                         </div>
48

    
49
                         <div id="left-bar">
50
                              <div id="left-bar-menu">
51
                                   <a href="http://www.tdwg.org">TDWG home</a>
52
                                   <div class="separator"><hr/></div>
53
                                   <a href="http://rs.tdwg.org/ontology/Base">Base</a><br/>
54
                                   <a href="http://rs.tdwg.org/ontology/Core">Core</a><br/>
55
                              </div>
56
                         </div>
57

    
58
                         <div id="RDF-main">
59
                              
60
                              <p style="color: red;">We are currently changing the way the TDWG
61
                                   ontology is managed. This copy may therefore be out of date.</p>
62
                              
63
                              <p style="color: red;">The current development version is available
64
                                   here: <a href="http://code.google.com/p/tdwg-ontology/"
65
                                        >http://code.google.com/p/tdwg-ontology/</a>
66
                              </p>
67
                              
68
                              <p style="color: red;"> The HTTP URIs of key concepts will be
69
                                   maintained and moved across to the new environment soon. </p>
70

    
71
                              <h1>
72
                                   <xsl:value-of select="owl:Ontology/dc:title"/>
73
                              </h1>
74
                              <p>(This is an HTML view of the OWL/RDF vocabulary. Use View-Source to
75
                                   see the underlying RDF.) </p>
76
                              <xsl:apply-templates select="owl:Ontology"/>
77
                              <xsl:apply-templates select="owl:Class"/>
78
                              <xsl:if
79
                                   test="//rdf:RDF/owl:ObjectProperty[not(rdfs:domain/@rdf:resource)]">
80
                                   <h3>Top Level Data Properties</h3>
81
                                   <div class="TopProperties">
82
                                        <xsl:apply-templates
83
                                             select="//rdf:RDF/owl:DatatypeProperty[not(rdfs:domain/@rdf:resource)]">
84
                                             <xsl:sort select="@rdf:ID"/>
85
                                        </xsl:apply-templates>
86
                                   </div>
87
                              </xsl:if>
88
                              <xsl:if
89
                                   test="//rdf:RDF/owl:ObjectProperty[not(rdfs:domain/@rdf:resource)]">
90
                                   <h3>Top Level Object Properties</h3>
91
                                   <div class="TopProperties">
92
                                        <xsl:apply-templates
93
                                             select="//rdf:RDF/owl:ObjectProperty[not(rdfs:domain/@rdf:resource)]">
94
                                             <xsl:sort select="@rdf:ID"/>
95
                                        </xsl:apply-templates>
96
                                   </div>
97
                              </xsl:if>
98
                         </div>
99
                    </div>
100
               </body>
101
          </html>
102
     </xsl:template>
103
     <xsl:template match="owl:Ontology">
104
          <h2>Ontology: <xsl:value-of select="dc:title"/></h2>
105
          <dl>
106
               <dt>Location</dt>
107
               <dd>
108
                    <a>
109
                         <xsl:attribute name="href">
110
                              <xsl:value-of select="@rdf:about"/>
111
                         </xsl:attribute>
112
                         <xsl:value-of select="@rdf:about"/>
113
                    </a>
114
               </dd>
115
               <xsl:apply-templates select="*"/>
116

    
117
          </dl>
118
          <dl>
119
               <dt>
120
                    <a>
121
                         <xsl:attribute name="href">
122
                              <xsl:value-of select="concat($wikiPrefix, $ontologyName)"/>
123
                         </xsl:attribute> Discussion Page. </a>
124
               </dt>
125
               <dd>Discussions related to this vocabulary on the wiki.</dd>
126
          </dl>
127

    
128
     </xsl:template>
129

    
130

    
131
     <xsl:template match="owl:Class">
132

    
133
          <xsl:variable name="currentClass">
134
               <xsl:value-of select="concat('#', @rdf:ID)"/>
135
          </xsl:variable>
136

    
137
          <a>
138
               <xsl:attribute name="name">
139
                    <xsl:value-of select="@rdf:ID"/>
140
               </xsl:attribute>
141
          </a>
142

    
143
          <h2>Class: <xsl:value-of select="@rdf:ID"/>
144
               <xsl:value-of select="@rdf:about"/>
145
          </h2>
146
          <xsl:if
147
               test="count(//rdf:RDF/owl:*[rdfs:domain/@rdf:resource =                $currentClass]) &gt; 0">
148
               <table>
149
                    <tr>
150
                         <th>Property Name</th>
151
                         <th>Range</th>
152
                         <th>Comment</th>
153
                    </tr>
154
                    <xsl:apply-templates mode="table-row"
155
                         select="//rdf:RDF/owl:*[rdfs:domain/@rdf:resource =                     $currentClass]">
156
                         <xsl:sort select="@rdf:ID"/>
157
                    </xsl:apply-templates>
158
               </table>
159
          </xsl:if>
160
          <dl>
161
               <xsl:apply-templates select="rdfs:*"/>
162
          </dl>
163

    
164
          <dl>
165
               <xsl:apply-templates select="tcom:*"/>
166
          </dl>
167
          <dl>
168
               <dt>
169
                    <a href="http://rs.tdwg.org/ontology/voc/Common.rdf">Common Properties</a>
170
               </dt>
171
               <dd>Common properties defined in <a href="http://rs.tdwg.org/ontology/voc/Common.rdf"
172
                         >http://rs.tdwg.org/ontology/voc/Common.rdf</a> are available for use in
173
                    this class.</dd>
174
          </dl>
175
          <dl>
176
               <dt>
177
                    <a>
178
                         <xsl:attribute name="href">
179
                              <xsl:value-of select="concat($wikiPrefix, $ontologyName ,@rdf:ID)"/>
180
                         </xsl:attribute> Discussion Page. </a>
181
               </dt>
182
               <dd>Discussions related to this class on the wiki.</dd>
183
          </dl>
184

    
185

    
186
          <div class="ClassProperties">
187

    
188
               <xsl:apply-templates
189
                    select="//rdf:RDF/owl:*[rdfs:domain/@rdf:resource =                $currentClass]">
190
                    <xsl:sort select="@rdf:ID"/>
191
               </xsl:apply-templates>
192

    
193
          </div>
194

    
195
          <xsl:variable name="className">
196
               <xsl:value-of select="@rdf:ID"/>
197
          </xsl:variable>
198

    
199
          <div class="ClassIndividuals">
200
               <xsl:if test="count(//*[name(.) = $className]) &gt; 0">
201
                    <table>
202
                         <tr>
203
                              <th>Term</th>
204
                              <th>Definition</th>
205
                         </tr>
206
                         <xsl:apply-templates mode="individual-table-row"
207
                              select="//*[name(.) = $className]">
208
                              <xsl:sort select="@rdf:ID"/>
209
                         </xsl:apply-templates>
210
                    </table>
211
               </xsl:if>
212
               <xsl:apply-templates select="//*[name(.) = $className]" mode="individual"/>
213
          </div>
214

    
215
     </xsl:template>
216

    
217
     <xsl:template match="*" mode="individual">
218
          <a>
219
               <xsl:attribute name="name">
220
                    <xsl:value-of select="@rdf:ID"/>
221
               </xsl:attribute>
222
          </a>
223
          <h3>Term: <xsl:value-of select="@rdf:ID"/></h3>
224
          <xsl:apply-templates select="*"/>
225
     </xsl:template>
226

    
227
     <xsl:template match="*" mode="individual-table-row">
228
          <tr>
229
               <td>
230
                    <a>
231
                         <xsl:attribute name="href">
232
                              <xsl:value-of select="concat('#',@rdf:ID)"/>
233
                         </xsl:attribute>
234
                         <xsl:value-of select="@rdf:ID"/>
235
                    </a>
236
               </td>
237
               <td>
238
                    <xsl:value-of select="tbase:definition"/>
239
               </td>
240
          </tr>
241
     </xsl:template>
242

    
243
     <xsl:template match="owl:DatatypeProperty">
244
          <a>
245
               <xsl:attribute name="name">
246
                    <xsl:value-of select="@rdf:ID"/>
247
               </xsl:attribute>
248
          </a>
249
          <h3>Data Property: <xsl:choose>
250
                    <xsl:when test="substring(rdfs:domain/@rdf:resource,2)">
251
                         <xsl:value-of select="substring(rdfs:domain/@rdf:resource,2)"/>
252
                    </xsl:when>
253
                    <xsl:otherwise>*</xsl:otherwise>
254
               </xsl:choose> -&gt; <xsl:value-of select="@rdf:ID"/></h3>
255

    
256

    
257

    
258
          <xsl:if test="descendant::rdfs:*">
259
               <dl>
260
                    <xsl:apply-templates select="rdfs:*"/>
261
               </dl>
262
          </xsl:if>
263

    
264
          <xsl:if test="descendant::tcom:*">
265
               <dl>
266
                    <xsl:apply-templates select="tcom:*"/>
267
               </dl>
268
          </xsl:if>
269

    
270
          <xsl:if test="descendant::dc:*">
271
               <dl>
272
                    <xsl:apply-templates select="dc:*"/>
273
               </dl>
274
          </xsl:if>
275

    
276

    
277
          <xsl:if test="descendant::owl:*">
278
               <dl>
279
                    <xsl:apply-templates select="owl:*"/>
280
               </dl>
281
          </xsl:if>
282

    
283
          <dl>
284
               <dt>
285
                    <a>
286
                         <xsl:attribute name="href">
287
                              <xsl:value-of
288
                                   select="concat($wikiPrefix, $ontologyName, substring(rdfs:domain/@rdf:resource,2) ,@rdf:ID)"
289
                              />
290
                         </xsl:attribute> Discussion Page. </a>
291
               </dt>
292
               <dd>Discussions related to this property on the wiki.</dd>
293
          </dl>
294
     </xsl:template>
295

    
296
     <xsl:template match="owl:ObjectProperty">
297
          <a>
298
               <xsl:attribute name="name">
299
                    <xsl:value-of select="@rdf:ID"/>
300
               </xsl:attribute>
301
          </a>
302
          <h3>Object Property: <xsl:choose>
303
                    <xsl:when test="substring(rdfs:domain/@rdf:resource,2)">
304
                         <xsl:value-of select="substring(rdfs:domain/@rdf:resource,2)"/>
305
                    </xsl:when>
306
                    <xsl:otherwise>*</xsl:otherwise>
307
               </xsl:choose> -&gt; <xsl:value-of select="@rdf:ID"/></h3>
308

    
309
          <xsl:if test="descendant::rdfs:*">
310
               <dl>
311
                    <xsl:apply-templates select="rdfs:*"/>
312
               </dl>
313
          </xsl:if>
314
          <xsl:if test="descendant::tcom:*">
315
               <dl>
316
                    <xsl:apply-templates select="tcom:*"/>
317
               </dl>
318
          </xsl:if>
319
          <xsl:if test="descendant::dc:*">
320
               <dl>
321
                    <xsl:apply-templates select="dc:*"/>
322
               </dl>
323
          </xsl:if>
324
          <xsl:if test="descendant::owl:*">
325
               <dl>
326
                    <xsl:apply-templates select="owl:*"/>
327
               </dl>
328
          </xsl:if>
329
          <dl>
330
               <dt>
331
                    <a>
332
                         <xsl:attribute name="href">
333
                              <xsl:value-of
334
                                   select="concat($wikiPrefix, $ontologyName, substring(rdfs:domain/@rdf:resource,2) ,@rdf:ID)"
335
                              />
336
                         </xsl:attribute> Discussion Page. </a>
337
               </dt>
338
               <dd>Discussions related to this property on the wiki.</dd>
339
          </dl>
340
     </xsl:template>
341

    
342
     <!-- Common Properties -->
343
     <xsl:template match="tcom:tcsEquivalence">
344
          <dt>
345
               <a>
346
                    <xsl:attribute name="href"
347
                    >http://rs.tdwg.org/ontology/voc/Common#tcsEquivalence</xsl:attribute> TCS
348
                    Equivalent</a>
349
          </dt>
350
          <dd>
351
               <xsl:value-of select="."/>
352
          </dd>
353
     </xsl:template>
354

    
355
     <xsl:template match="tcom:berlinModelEquivalence">
356
          <dt>
357
               <a>
358
                    <xsl:attribute name="href"
359
                         >http://rs.tdwg.org/ontology/voc/Common#berlinModelEquivalence</xsl:attribute>
360
                    Berlin Model Equivalent</a>
361
          </dt>
362
          <dd>
363
               <xsl:value-of select="."/>
364
          </dd>
365
     </xsl:template>
366

    
367
     <xsl:template match="tcom:abcdEquivalence">
368
          <dt>
369
               <a>
370
                    <xsl:attribute name="href"
371
                         >http://rs.tdwg.org/ontology/voc/Common#abcdEquivalence</xsl:attribute>
372
                    ABCD Equivalent</a>
373

    
374
          </dt>
375
          <dd>
376
               <xsl:value-of select="."/>
377
          </dd>
378
     </xsl:template>
379

    
380
     <xsl:template match="tcom:darwinCoreEquivalence">
381
          <dt>
382
               <a>
383
                    <xsl:attribute name="href"
384
                         >http://rs.tdwg.org/ontology/voc/Common#darwinCoreEquivalence</xsl:attribute>
385
                    DarwinCore Equivalent</a>
386
          </dt>
387
          <dd>
388
               <xsl:value-of select="."/>
389
          </dd>
390
     </xsl:template>
391

    
392

    
393
     <!-- RDFS links -->
394
     <xsl:template match="rdfs:label">
395
          <dt>
396
               <a>
397
                    <xsl:attribute name="href"
398
                    >http://www.w3.org/2000/01/rdf-schema#label</xsl:attribute> Label </a>
399
          </dt>
400
          <dd>
401
               <xsl:value-of select="."/>
402
          </dd>
403
     </xsl:template>
404

    
405
     <xsl:template match="rdfs:comment">
406
          <dt>
407
               <a>
408
                    <xsl:attribute name="href"
409
                    >http://www.w3.org/2000/01/rdf-schema#comment</xsl:attribute> Comment </a>
410
          </dt>
411
          <dd>
412
               <xsl:value-of select="."/>
413
          </dd>
414
     </xsl:template>
415

    
416
     <xsl:template match="rdfs:isDefinedBy">
417
          <dt>
418
               <a>
419
                    <xsl:attribute name="href"
420
                    >http://www.w3.org/2000/01/rdf-schema#isDefinedBy</xsl:attribute> Is Defined By
421
               </a>
422
          </dt>
423
          <dd>
424
               <a>
425
                    <xsl:attribute name="href">
426
                         <xsl:value-of select="./@rdf:resource"/>
427
                    </xsl:attribute>
428
                    <xsl:value-of select="./@rdf:resource"/>
429
               </a>
430
          </dd>
431
     </xsl:template>
432

    
433
     <xsl:template match="rdfs:subClassOf">
434
          <dt>
435
               <a>
436
                    <xsl:attribute name="href"
437
                    >http://www.w3.org/2000/01/rdf-schema#subClassOf</xsl:attribute> Sub Class Of
438
               </a>
439
          </dt>
440
          <dd>
441
               <a>
442
                    <xsl:attribute name="href">
443
                         <xsl:value-of select="./@rdf:resource"/>
444
                    </xsl:attribute>
445
                    <xsl:value-of select="./@rdf:resource"/>
446
               </a>
447
          </dd>
448
     </xsl:template>
449
     <xsl:template match="rdfs:range">
450
          <dt>
451
               <a>
452
                    <xsl:attribute name="href"
453
                    >http://www.w3.org/2000/01/rdf-schema#range</xsl:attribute> Range </a>
454
          </dt>
455
          <dd>
456
               <a>
457
                    <xsl:attribute name="href">
458
                         <xsl:value-of select="./@rdf:resource"/>
459
                    </xsl:attribute>
460
                    <xsl:value-of select="./@rdf:resource"/>
461
               </a>
462
          </dd>
463
     </xsl:template>
464

    
465
     <xsl:template match="rdfs:domain">
466
          <dt>
467
               <a>
468
                    <xsl:attribute name="href"
469
                    >http://www.w3.org/2000/01/rdf-schema#domain</xsl:attribute> Class </a>
470
          </dt>
471
          <dd>
472
               <a>
473
                    <xsl:attribute name="href">
474
                         <xsl:value-of select="./@rdf:resource"/>
475
                    </xsl:attribute>
476
                    <xsl:value-of select="./@rdf:resource"/>
477
               </a>
478
          </dd>
479
     </xsl:template>
480

    
481
     <!-- DC Links -->
482
     <xsl:template match="dc:title">
483
          <dt>
484
               <a>
485
                    <xsl:attribute name="href"
486
                    >http://purl.org/dc/elements/1.1/title</xsl:attribute>Title</a>
487
          </dt>
488
          <dd>
489
               <xsl:value-of select="."/>
490
          </dd>
491
     </xsl:template>
492
     <xsl:template match="dc:creator">
493
          <dt>
494
               <a>
495
                    <xsl:attribute name="href"
496
                    >http://purl.org/dc/elements/1.1/creator</xsl:attribute>Creator</a>
497
          </dt>
498
          <dd>
499
               <xsl:value-of select="."/>
500
          </dd>
501
     </xsl:template>
502

    
503
     <xsl:template match="dc:publisher">
504
          <dt>
505
               <a>
506
                    <xsl:attribute name="href"
507
                    >http://purl.org/dc/elements/1.1/publisher</xsl:attribute>Publisher</a>
508
          </dt>
509
          <dd>
510
               <xsl:value-of select="."/>
511
          </dd>
512
     </xsl:template>
513

    
514
     <xsl:template match="dc:description">
515
          <dt>
516
               <a>
517
                    <xsl:attribute name="href"
518
                    >http://purl.org/dc/elements/1.1/description</xsl:attribute>Description</a>
519
          </dt>
520
          <dd>
521
               <xsl:value-of select="."/>
522
          </dd>
523
     </xsl:template>
524

    
525
     <xsl:template match="dc:relation">
526
          <dt>
527
               <a>
528
                    <xsl:attribute name="href"
529
                    >http://purl.org/dc/elements/1.1/relation/</xsl:attribute>Relation</a>
530
          </dt>
531
          <dd>
532
               <a>
533
                    <xsl:attribute name="href">
534
                         <xsl:value-of select="./@rdf:resource"/>
535
                    </xsl:attribute>
536
                    <xsl:value-of select="./@rdf:resource"/>
537
               </a>
538
          </dd>
539
     </xsl:template>
540

    
541
     <xsl:template match="dcterms:issued">
542
          <dt>
543
               <a>
544
                    <xsl:attribute name="href"
545
               >http://purl.org/dc/terms/issued</xsl:attribute>Issued</a>
546
          </dt>
547
          <dd>
548
               <xsl:value-of select="."/>
549
          </dd>
550
     </xsl:template>
551

    
552
     <xsl:template match="dcterms:modified">
553
          <dt>
554
               <a>
555
                    <xsl:attribute name="href"
556
                    >http://purl.org/dc/terms/modified</xsl:attribute>Modified</a>
557
          </dt>
558
          <dd>
559
               <xsl:value-of select="."/>
560
          </dd>
561
     </xsl:template>
562

    
563
     <!-- OWL links -->
564
     <xsl:template match="owl:versionInfo">
565
          <dt>
566
               <a>
567
                    <xsl:attribute name="href"
568
                    >http://www.w3.org/2002/07/owl#versionInfo</xsl:attribute>Version Info</a>
569
          </dt>
570
          <dd>
571
               <xsl:value-of select="."/>
572
          </dd>
573
     </xsl:template>
574
     <xsl:template match="owl:sameAs">
575
          <dt>
576
               <a>
577
                    <xsl:attribute name="href"
578
                    >http://www.w3.org/2002/07/owl#sameAs</xsl:attribute>Same As</a>
579
          </dt>
580
          <dd>
581
               <a>
582
                    <xsl:attribute name="href">
583
                         <xsl:value-of select="@rdf:resource"/>
584
                    </xsl:attribute>
585
                    <xsl:value-of select="@rdf:resource"/>
586
               </a>
587

    
588
          </dd>
589
     </xsl:template>
590

    
591

    
592
     <!-- tbase links -->
593
     <xsl:template match="tbase:definition">
594
          <dt>
595
               <a>
596
                    <xsl:attribute name="href"
597
                    >http://rs.tdwg.org/ontology/Base#definition</xsl:attribute>Definition</a>
598
          </dt>
599
          <dd>
600
               <xsl:value-of select="."/>
601
          </dd>
602
     </xsl:template>
603

    
604
     <xsl:template mode="table-row" match="owl:DatatypeProperty">
605
          <tr>
606
               <td>
607
                    <a>
608
                         <xsl:attribute name="href">
609
                              <xsl:value-of select="concat('#',@rdf:ID)"/>
610
                         </xsl:attribute>
611
                         <xsl:value-of select="@rdf:ID"/>
612
                    </a>
613
               </td>
614
               <td>
615
                    <xsl:value-of select="substring-after(rdfs:range/@rdf:resource, '#')  "/>
616
               </td>
617
               <td>
618
                    <xsl:value-of select="rdfs:comment"/>
619
               </td>
620
          </tr>
621
     </xsl:template>
622

    
623

    
624
     <xsl:template mode="table-row" match="owl:ObjectProperty">
625
          <tr>
626
               <td>
627
                    <a>
628
                         <xsl:attribute name="href">
629
                              <xsl:value-of select="concat('#',@rdf:ID)"/>
630
                         </xsl:attribute>
631
                         <xsl:value-of select="@rdf:ID"/>
632
                    </a>
633
               </td>
634
               <td>
635
                    <a>
636
                         <xsl:attribute name="href">
637
                              <xsl:value-of select="rdfs:range/@rdf:resource"/>
638
                         </xsl:attribute>
639
                         <xsl:value-of select="substring-after(rdfs:range/@rdf:resource, '#')  "/>
640
                    </a>
641
               </td>
642
               <td>
643
                    <xsl:value-of select="rdfs:comment"/>
644
               </td>
645
          </tr>
646
     </xsl:template>
647

    
648
</xsl:stylesheet>
(1-1/2)