index.html
126 KB
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
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>
<html lang="en" dir="ltr">
<head>
<title>The PROV Ontology: Model and Formal Semantics</title>
<script src="toggles.js" type="text/javascript"></script>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<!--
=== NOTA BENE ===
For the three scripts below, if your spec resides on dev.w3 you can check them
out in the same tree and use relative links so that they'll work offline,
-->
<!-- From DM -->
<style type="text/css">
.note { font-size:small; margin-left:50px }
table { text-align: center; vertical-align: middle }
</style>
<style type="text/css">
/*****************************************************************
* ReSpec CSS
* Robin Berjon (robin at berjon dot com)
* v0.05 - 2009-07-31
*****************************************************************/
/* --- INLINES --- */
em.rfc2119 {
text-transform: lowercase;
font-variant: small-caps;
font-style: normal;
color: #900;
}
h1 acronym, h2 acronym, h3 acronym, h4 acronym, h5 acronym, h6 acronym, a acronym,
h1 abbr, h2 abbr, h3 abbr, h4 abbr, h5 abbr, h6 abbr, a abbr {
border: none;
}
dfn {
font-weight: bold;
}
a.internalDFN {
color: inherit;
border-bottom: 1px solid #99c;
text-decoration: none;
}
a.externalDFN {
color: inherit;
border-bottom: 1px dotted #ccc;
text-decoration: none;
}
a.bibref {
text-decoration: none;
}
code {
color: #ff4500;
}
/* --- WEB IDL --- */
pre.idl {
border-top: 1px solid #90b8de;
border-bottom: 1px solid #90b8de;
padding: 1em;
line-height: 120%;
}
pre.idl::before {
content: "WebIDL";
display: block;
width: 150px;
background: #90b8de;
color: #fff;
font-family: initial;
padding: 3px;
font-weight: bold;
margin: -1em 0 1em -1em;
}
.idlType {
color: #ff4500;
font-weight: bold;
text-decoration: none;
}
/*.idlModule*/
/*.idlModuleID*/
/*.idlInterface*/
.idlInterfaceID, .idlDictionaryID {
font-weight: bold;
color: #005a9c;
}
.idlSuperclass {
font-style: italic;
color: #005a9c;
}
/*.idlAttribute*/
.idlAttrType, .idlFieldType, .idlMemberType {
color: #005a9c;
}
.idlAttrName, .idlFieldName, .idlMemberName {
color: #ff4500;
}
.idlAttrName a, .idlFieldName a, .idlMemberName a {
color: #ff4500;
border-bottom: 1px dotted #ff4500;
text-decoration: none;
}
/*.idlMethod*/
.idlMethType {
color: #005a9c;
}
.idlMethName {
color: #ff4500;
}
.idlMethName a {
color: #ff4500;
border-bottom: 1px dotted #ff4500;
text-decoration: none;
}
/*.idlParam*/
.idlParamType {
color: #005a9c;
}
.idlParamName {
font-style: italic;
}
.extAttr {
color: #666;
}
/*.idlConst*/
.idlConstType {
color: #005a9c;
}
.idlConstName {
color: #ff4500;
}
.idlConstName a {
color: #ff4500;
border-bottom: 1px dotted #ff4500;
text-decoration: none;
}
/*.idlException*/
.idlExceptionID {
font-weight: bold;
color: #c00;
}
.idlTypedefID, .idlTypedefType {
color: #005a9c;
}
.idlRaises, .idlRaises a.idlType, .idlRaises a.idlType code, .excName a, .excName a code {
color: #c00;
font-weight: normal;
}
.excName a {
font-family: monospace;
}
.idlRaises a.idlType, .excName a.idlType {
border-bottom: 1px dotted #c00;
}
.excGetSetTrue, .excGetSetFalse, .prmNullTrue, .prmNullFalse, .prmOptTrue, .prmOptFalse {
width: 45px;
text-align: center;
}
.excGetSetTrue, .prmNullTrue, .prmOptTrue { color: #0c0; }
.excGetSetFalse, .prmNullFalse, .prmOptFalse { color: #c00; }
.idlImplements a {
font-weight: bold;
}
dl.attributes, dl.methods, dl.constants, dl.fields, dl.dictionary-members {
margin-left: 2em;
}
.attributes dt, .methods dt, .constants dt, .fields dt, .dictionary-members dt {
font-weight: normal;
}
.attributes dt code, .methods dt code, .constants dt code, .fields dt code, .dictionary-members dt code {
font-weight: bold;
color: #000;
font-family: monospace;
}
.attributes dt code, .fields dt code, .dictionary-members dt code {
background: #ffffd2;
}
.attributes dt .idlAttrType code, .fields dt .idlFieldType code, .dictionary-members dt .idlMemberType code {
color: #005a9c;
background: transparent;
font-family: inherit;
font-weight: normal;
font-style: italic;
}
.methods dt code {
background: #d9e6f8;
}
.constants dt code {
background: #ddffd2;
}
.attributes dd, .methods dd, .constants dd, .fields dd, .dictionary-members dd {
margin-bottom: 1em;
}
table.parameters, table.exceptions {
border-spacing: 0;
border-collapse: collapse;
margin: 0.5em 0;
width: 100%;
}
table.parameters { border-bottom: 1px solid #90b8de; }
table.exceptions { border-bottom: 1px solid #deb890; }
.parameters th, .exceptions th {
color: #fff;
padding: 3px 5px;
text-align: left;
font-family: initial;
font-weight: normal;
text-shadow: #666 1px 1px 0;
}
.parameters th { background: #90b8de; }
.exceptions th { background: #deb890; }
.parameters td, .exceptions td {
padding: 3px 10px;
border-top: 1px solid #ddd;
vertical-align: top;
}
.parameters tr:first-child td, .exceptions tr:first-child td {
border-top: none;
}
.parameters td.prmName, .exceptions td.excName, .exceptions td.excCodeName {
width: 100px;
}
.parameters td.prmType {
width: 120px;
}
table.exceptions table {
border-spacing: 0;
border-collapse: collapse;
width: 100%;
}
/* --- TOC --- */
.toc a {
text-decoration: none;
}
a .secno {
color: #000;
}
/* --- TABLE --- */
table.simple {
border-spacing: 0;
border-collapse: collapse;
border-bottom: 3px solid #005a9c;
}
.simple th {
background: #005a9c;
color: #fff;
padding: 3px 5px;
text-align: left;
}
.simple th[scope="row"] {
background: inherit;
color: inherit;
border-top: 1px solid #ddd;
}
.simple td {
padding: 3px 10px;
border-top: 1px solid #ddd;
}
.simple tr:nth-child(even) {
background: #f0f6ff;
}
/* --- DL --- */
.section dd > p:first-child {
margin-top: 0;
}
.section dd > p:last-child {
margin-bottom: 0;
}
.section dd {
margin-bottom: 1em;
}
.section dl.attrs dd, .section dl.eldef dd {
margin-bottom: 0;
}
/* --- EXAMPLES --- */
pre.example {
border-top: 1px solid #ff4500;
border-bottom: 1px solid #ff4500;
padding: 1em;
margin-top: 1em;
}
pre.example::before {
content: "Example";
display: block;
width: 150px;
background: #ff4500;
color: #fff;
font-family: initial;
padding: 3px;
font-weight: bold;
margin: -1em 0 1em -1em;
}
/* --- EDITORIAL NOTES --- */
.issue {
padding: 1em;
margin: 1em 0em 0em;
border: 1px solid #f00;
background: #ffc;
}
.issue::before {
content: "Issue";
display: block;
width: 150px;
margin: -1.5em 0 0.5em 0;
font-weight: bold;
border: 1px solid #f00;
background: #fff;
padding: 3px 1em;
}
.note {
margin: 1em 0em 0em;
padding: 1em;
border: 2px solid #cff6d9;
background: #e2fff0;
}
.note::before {
content: "Note";
display: block;
width: 150px;
margin: -1.5em 0 0.5em 0;
font-weight: bold;
border: 1px solid #cff6d9;
background: #fff;
padding: 3px 1em;
}
/* --- Best Practices --- */
div.practice {
border: solid #bebebe 1px;
margin: 2em 1em 1em 2em;
}
span.practicelab {
margin: 1.5em 0.5em 1em 1em;
font-weight: bold;
font-style: italic;
}
span.practicelab { background: #dfffff; }
span.practicelab {
position: relative;
padding: 0 0.5em;
top: -1.5em;
}
p.practicedesc {
margin: 1.5em 0.5em 1em 1em;
}
@media screen {
p.practicedesc {
position: relative;
top: -2em;
padding: 0;
margin: 1.5em 0.5em -1em 1em;
}
}
/* --- SYNTAX HIGHLIGHTING --- */
pre.sh_sourceCode {
background-color: white;
color: black;
font-style: normal;
font-weight: normal;
}
pre.sh_sourceCode .sh_keyword { color: #005a9c; font-weight: bold; } /* language keywords */
pre.sh_sourceCode .sh_type { color: #666; } /* basic types */
pre.sh_sourceCode .sh_usertype { color: teal; } /* user defined types */
pre.sh_sourceCode .sh_string { color: red; font-family: monospace; } /* strings and chars */
pre.sh_sourceCode .sh_regexp { color: orange; font-family: monospace; } /* regular expressions */
pre.sh_sourceCode .sh_specialchar { color: #ffc0cb; font-family: monospace; } /* e.g., \n, \t, \\ */
pre.sh_sourceCode .sh_comment { color: #A52A2A; font-style: italic; } /* comments */
pre.sh_sourceCode .sh_number { color: purple; } /* literal numbers */
pre.sh_sourceCode .sh_preproc { color: #00008B; font-weight: bold; } /* e.g., #include, import */
pre.sh_sourceCode .sh_symbol { color: blue; } /* e.g., *, + */
pre.sh_sourceCode .sh_function { color: black; font-weight: bold; } /* function calls and declarations */
pre.sh_sourceCode .sh_cbracket { color: red; } /* block brackets (e.g., {, }) */
pre.sh_sourceCode .sh_todo { font-weight: bold; background-color: #00FFFF; } /* TODO and FIXME */
/* Predefined variables and functions (for instance glsl) */
pre.sh_sourceCode .sh_predef_var { color: #00008B; }
pre.sh_sourceCode .sh_predef_func { color: #00008B; font-weight: bold; }
/* for OOP */
pre.sh_sourceCode .sh_classname { color: teal; }
/* line numbers (not yet implemented) */
pre.sh_sourceCode .sh_linenum { display: none; }
/* Internet related */
pre.sh_sourceCode .sh_url { color: blue; text-decoration: underline; font-family: monospace; }
/* for ChangeLog and Log files */
pre.sh_sourceCode .sh_date { color: blue; font-weight: bold; }
pre.sh_sourceCode .sh_time, pre.sh_sourceCode .sh_file { color: #00008B; font-weight: bold; }
pre.sh_sourceCode .sh_ip, pre.sh_sourceCode .sh_name { color: #006400; }
/* for Prolog, Perl... */
pre.sh_sourceCode .sh_variable { color: #006400; }
/* for LaTeX */
pre.sh_sourceCode .sh_italics { color: #006400; font-style: italic; }
pre.sh_sourceCode .sh_bold { color: #006400; font-weight: bold; }
pre.sh_sourceCode .sh_underline { color: #006400; text-decoration: underline; }
pre.sh_sourceCode .sh_fixed { color: green; font-family: monospace; }
pre.sh_sourceCode .sh_argument { color: #006400; }
pre.sh_sourceCode .sh_optionalargument { color: purple; }
pre.sh_sourceCode .sh_math { color: orange; }
pre.sh_sourceCode .sh_bibtex { color: blue; }
/* for diffs */
pre.sh_sourceCode .sh_oldfile { color: orange; }
pre.sh_sourceCode .sh_newfile { color: #006400; }
pre.sh_sourceCode .sh_difflines { color: blue; }
/* for css */
pre.sh_sourceCode .sh_selector { color: purple; }
pre.sh_sourceCode .sh_property { color: blue; }
pre.sh_sourceCode .sh_value { color: #006400; font-style: italic; }
/* other */
pre.sh_sourceCode .sh_section { color: black; font-weight: bold; }
pre.sh_sourceCode .sh_paren { color: red; }
pre.sh_sourceCode .sh_attribute { color: #006400; }
</style><style type="text/css">
/* --- EDITORIAL NOTES --- */
.pending {
padding: 1em;
margin: 1em 0em 0em;
border: 1px solid #f00;
background: #BFEFFF;
}
.pending::before {
content: "Pending Review";
display: block;
width: 150px;
margin: -1.5em 0 0.5em 0;
font-weight: bold;
border: 1px solid #f00;
background: #fff;
padding: 3px 1em;
}
.resolved {
padding: 1em;
margin: 1em 0em 0em;
border: 1px solid #f00;
background: #9BCD9B;
}
.resolved::before {
content: "Resolved";
display: block;
width: 150px;
margin: -1.5em 0 0.5em 0;
font-weight: bold;
border: 1px solid #f00;
background: #fff;
padding: 3px 1em;
}
.inference {
padding: 1em;
margin: 1em 0em 0em;
border: 1px solid #f00;
background: #fff;
}
.inference::before {
content: "Inference";
display: block;
width: 150px;
margin: -1.5em 0 0.5em 0;
font-weight: bold;
border: 1px solid #f00;
background: #fff;
padding: 3px 1em;
}
.unamedconstraint {
padding: 1em;
margin: 1em 0em 0em;
border: 1px solid #00f;
background: #fff;
}
.unamedconstraint::before {
content: "Constraint";
display: block;
width: 150px;
margin: -1.5em 0 0.5em 0;
font-weight: bold;
border: 1px solid #00f;
background: #fff;
padding: 3px 1em;
}
.constraint {
padding: 1em;
margin: 1em 0em 0em;
border: 1px solid #00f;
background: #fff;
}
.constraint[id]::before {
content: "Constraint: " attr(id);
width: 380px; /* How can we compute the length of "Constraint: " attr(id) */
}
.constraint::before {
content: "Constraint";
display: block;
width: 150px;
margin: -1.5em 0 0.5em 0;
font-weight: bold;
border: 1px solid #00f;
background: #fff;
padding: 3px 1em;
}
.conditional {
color: blue;
}
.grammar {
margin-top: 1ex;
margin-bottom: 1ex;
padding-left: 1ex;
padding-right: 1ex;
padding-top: 1ex;
padding-bottom: 0.6ex;
border: 1px dashed #2f6fab;
font-family: monospace;
}
.nonterminal {
font-weight: bold;
font-family: sans-serif;
font-size: 95%;
}
.name {
font-family: monospace;
}
.xmpl {
padding: 1em;
margin: 1em 0em 0em;
border: 1px solid #f00;
background: #fff;
}
.xmpl::before {
content: "Example";
display: block;
width: 150px;
margin: -1.5em 0 0.5em 0;
font-weight: bold;
border: 1px solid #f00;
background: #fff;
padding: 3px 1em;
}
</style><link charset="utf-8" type="text/css" rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/W3C-WD"></head>
<body style="display: inherit;"><div class="head"><p><a href="http://www.w3.org/"><img src="http://www.w3.org/Icons/w3c_home" alt="W3C" height="48" width="72"></a></p><h1 class="title" id="title">The PROV Ontology: Model and Formal Semantics</h1><h2 id="w3c-working-draft-13-december-2011"><acronym title="World Wide Web Consortium">W3C</acronym> Working Draft 13 December 2011</h2><dl><dt>This version:</dt><dd><a href="http://www.w3.org/TR/2011/WD-prov-o-20111213/">http://www.w3.org/TR/2011/WD-prov-o-20111213/</a></dd><dt>Latest published version:</dt><dd><a href="http://www.w3.org/TR/prov-o/">http://www.w3.org/TR/prov-o/</a></dd><dt>Latest editor's draft:</dt><dd><a href="http://dvcs.w3.org/hg/prov/raw-file/default/ontology/ProvenanceFormalModel.html">http://dvcs.w3.org/hg/prov/raw-file/default/ontology/ProvenanceFormalModel.html</a></dd><dt>Editors:</dt><dd><a href="http://cci.case.edu/cci/index.php/Satya_Sahoo">Satya Sahoo</a>, Case Western Reserve University, USA</dd>
<dd><a href="http://tw.rpi.edu/instances/Deborah_L_McGuinness">Deborah McGuinness</a>, Rensselaer Polytechnic Institute, USA</dd>
<dt>Authors:</dt><dd><span>(In alphabetical order)</span></dd>
<dd><a href="http://semanticweb.org/wiki/Khalid_Belhajjame">Khalid Belhajjame</a>, University of Manchester, UK</dd>
<dd><a href="http://homepages.inf.ed.ac.uk/jcheney/">James Cheney</a>, University of Edinburgh, UK</dd>
<dd><a href="http://www.oeg-upm.net/index.php/en/phdstudents/28-dgarijo">Daniel Garijo</a>, Universidad Politécnica de Madrid, Spain</dd>
<dd><a href="http://tw.rpi.edu/instances/TimLebo">Timothy Lebo</a>, Rensselaer Polytechnic Institute, USA</dd>
<dd><a href="http://soiland-reyes.com/stian/">Stian Soiland-Reyes</a>, University of Manchester, UK</dd>
<dd><a href="http://tw.rpi.edu/web/person/StephanZednik">Stephan Zednik</a>, Rensselaer Polytechnic Institute, USA</dd>
</dl><p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2011 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.eu/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p><hr></div>
<div class="introductory section" id="abstract"><h2>Abstract</h2>
<p>
The PROV Ontology (also PROV-O) encodes the PROV Data Model [<cite><a href="#bib-PROV-DM" rel="biblioentry" class="bibref">PROV-DM</a></cite>] in the OWL2 Web Ontology Language (OWL2). The PROV ontology consists of a set of classes, properties, and restrictions that can be used to represent provenance information. The PROV ontology can also be specialized to create new classes and properties for modeling provenance information specific to different domain applications. The PROV ontology supports a set of entailments based on OWL2 formal semantics and provenance specific inference rules. The PROV ontology is available for download as a separate OWL2 document.
</p>
</div><div id="sotd" class="introductory section"><h2>Status of This Document</h2><p><em>This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current <acronym title="World Wide Web Consortium">W3C</acronym> publications and the latest revision of this technical report can be found in the <a href="http://www.w3.org/TR/"><acronym title="World Wide Web Consortium">W3C</acronym> technical reports index</a> at http://www.w3.org/TR/.</em></p>
<p>
This specification defines the PROV Ontology as the normative representation of the PROV Data Model using the Web Ontology Language (OWL2). This document is part of a set of specifications being created to address the issue of provenance interchange in Web applications. This document is accompanied by (1) the PROV Data Model, (2) the PROV Access and Query, and (3) the Primer documents.
</p>
<p>This document was published by the <a href="http://www.w3.org/2011/prov/">Provenance Working Group</a> as a First Public Working Draft. This document is intended to become a <acronym title="World Wide Web Consortium">W3C</acronym> Recommendation. If you wish to make comments regarding this document, please send them to <a href="mailto:public-prov-wg@w3.org">public-prov-wg@w3.org</a> (<a href="mailto:public-prov-wg-request@w3.org?subject=subscribe">subscribe</a>, <a href="http://lists.w3.org/Archives/Public/public-prov-wg/">archives</a>). All feedback is welcome.</p><p>Publication as a Working Draft does not imply endorsement by the <acronym title="World Wide Web Consortium">W3C</acronym> Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.</p><p>This document was produced by a group operating under the <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February 2004 <acronym title="World Wide Web Consortium">W3C</acronym> Patent Policy</a>. <acronym title="World Wide Web Consortium">W3C</acronym> maintains a <a href="http://www.w3.org/2004/01/pp-impl/46974/status" rel="disclosure">public list of any patent disclosures</a> made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential Claim(s)</a> must disclose the information in accordance with <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section 6 of the <acronym title="World Wide Web Consortium">W3C</acronym> Patent Policy</a>.</p></div><div class="section" id="toc"><h2 class="introductory">Table of Contents</h2><ul class="toc"><li class="tocline"><a class="tocxref" href="#introduction"><span class="secno">1. </span>Introduction</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#guide-to-this-document"><span class="secno">1.1 </span>Guide to this Document</a></li></ul></li><li class="tocline"><a class="tocxref" href="#prov-ontology"><span class="secno">2. </span>PROV Ontology</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#mapping-the-prov-dm-terms-to-prov-ontology"><span class="secno">2.1 </span>Mapping the PROV-DM terms to PROV Ontology</a></li><li class="tocline"><a class="tocxref" href="#owl2-syntax-used-in-this-document"><span class="secno">2.2 </span>OWL2 Syntax Used in this Document</a></li><li class="tocline"><a class="tocxref" href="#namespace-and-owl2-version"><span class="secno">2.3 </span>Namespace and OWL2 version</a></li></ul></li><li class="tocline"><a class="tocxref" href="#prov-ontology--owl-encoding-of-prov-data-model"><span class="secno">3. </span>PROV Ontology: Classes and Properties</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#classes"><span class="secno">3.1 </span>Classes</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#entity"><span class="secno">3.1.1 </span>Entity</a></li><li class="tocline"><a class="tocxref" href="#activity"><span class="secno">3.1.2 </span>Activity</a></li><li class="tocline"><a class="tocxref" href="#agent"><span class="secno">3.1.3 </span>Agent</a></li><li class="tocline"><a class="tocxref" href="#temporalentity"><span class="secno">3.1.4 </span>TemporalEntity</a></li><li class="tocline"><a class="tocxref" href="#provenancecontainer"><span class="secno">3.1.5 </span>ProvenanceContainer</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#modeling-provenancecontainer-and-account-as-rdf-graph"><span class="secno">3.1.5.1 </span>Modeling ProvenanceContainer and Account as RDF Graph</a></li></ul></li><li class="tocline"><a class="tocxref" href="#location"><span class="secno">3.1.6 </span>Location</a></li><li class="tocline"><a class="tocxref" href="#qualifiedinvolvement"><span class="secno">3.1.7 </span>QualifiedInvolvement</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#usage"><span class="secno">3.1.7.1 </span>Usage</a></li><li class="tocline"><a class="tocxref" href="#participation"><span class="secno">3.1.7.2 </span>Participation</a></li><li class="tocline"><a class="tocxref" href="#control"><span class="secno">3.1.7.3 </span>Control</a></li><li class="tocline"><a class="tocxref" href="#generation"><span class="secno">3.1.7.4 </span>Generation</a></li></ul></li><li class="tocline"><a class="tocxref" href="#recipe"><span class="secno">3.1.8 </span>Recipe</a></li><li class="tocline"><a class="tocxref" href="#role"><span class="secno">3.1.9 </span>Role</a></li><li class="tocline"><a class="tocxref" href="#classes-under-discussion"><span class="secno">3.1.10 </span>Classes under Discussion</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#time"><span class="secno">3.1.10.1 </span>Time</a></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#object-properties"><span class="secno">3.2 </span>Object Properties</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#wasgeneratedby"><span class="secno">3.2.1 </span>wasGeneratedBy</a></li><li class="tocline"><a class="tocxref" href="#revision"><span class="secno">3.2.2 </span>wasRevisionOf</a></li><li class="tocline"><a class="tocxref" href="#wasderivedfrom"><span class="secno">3.2.3 </span>wasDerivedFrom</a></li><li class="tocline"><a class="tocxref" href="#waseventuallyderivedfrom"><span class="secno">3.2.4 </span>wasEventuallyDerivedFrom</a></li><li class="tocline"><a class="tocxref" href="#dependedon"><span class="secno">3.2.5 </span>dependedOn</a></li><li class="tocline"><a class="tocxref" href="#used"><span class="secno">3.2.6 </span>used</a></li><li class="tocline"><a class="tocxref" href="#hadparticipant"><span class="secno">3.2.7 </span>hadParticipant</a></li><li class="tocline"><a class="tocxref" href="#wascomplementof"><span class="secno">3.2.8 </span>wasComplementOf</a></li><li class="tocline"><a class="tocxref" href="#wascontrolledby"><span class="secno">3.2.9 </span>wasControlledBy</a></li><li class="tocline"><a class="tocxref" href="#hadrecipe"><span class="secno">3.2.10 </span>hadRecipe</a></li><li class="tocline"><a class="tocxref" href="#wasinformedby"><span class="secno">3.2.11 </span>wasInformedBy</a></li><li class="tocline"><a class="tocxref" href="#wascheduledafter"><span class="secno">3.2.12 </span>wasScheduledAfter</a></li><li class="tocline"><a class="tocxref" href="#hadtemporalvalue"><span class="secno">3.2.13 </span>hadTemporalValue</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#startedat"><span class="secno">3.2.13.1 </span>startedAt</a></li><li class="tocline"><a class="tocxref" href="#endedat"><span class="secno">3.2.13.2 </span>endedAt</a></li><li class="tocline"><a class="tocxref" href="#wasGeneratedat"><span class="secno">3.2.13.3 </span>wasGeneratedAt</a></li></ul></li><li class="tocline"><a class="tocxref" href="#attribution"><span class="secno">3.2.14 </span>wasAttributedTo</a></li><li class="tocline"><a class="tocxref" href="#quotation"><span class="secno">3.2.15 </span>wasQuoteOf</a></li><li class="tocline"><a class="tocxref" href="#summary"><span class="secno">3.2.16 </span>wasSummaryOf</a></li><li class="tocline"><a class="tocxref" href="#originalsource"><span class="secno">3.2.17 </span>hadOriginalSource</a></li><li class="tocline"><a class="tocxref" href="#hadqualifiedusage"><span class="secno">3.2.18 </span>hadQualifiedUsage</a></li><li class="tocline"><a class="tocxref" href="#hadqualifiedparticipation"><span class="secno">3.2.19 </span>hadQualifiedParticipation</a></li><li class="tocline"><a class="tocxref" href="#hadqualifiedcontrol"><span class="secno">3.2.20 </span>hadQualifiedControl</a></li><li class="tocline"><a class="tocxref" href="#hadqualifiedgeneration"><span class="secno">3.2.21 </span>hadQualifiedGeneration</a></li><li class="tocline"><a class="tocxref" href="#hadqualifiedentity"><span class="secno">3.2.22 </span>hadQualifiedEntity</a></li></ul></li><li class="tocline"><a class="tocxref" href="#characteristics-of-object-properties"><span class="secno">3.3 </span>Characteristics of Object Properties </a></li><li class="tocline"><a class="tocxref" href="#annotation-properties"><span class="secno">3.4 </span>Annotation Properties</a></li><li class="tocline"><a class="tocxref" href="#overview-of-the-ontology"><span class="secno">3.5 </span>Overview of the ontology</a></li><li class="tocline"><a class="tocxref" href="#overview-of-qualified-involvement"><span class="secno">3.6 </span>Overview of Qualified Involvement</a></li></ul></li><li class="tocline"><a class="tocxref" href="#specializing-provenance-ontology-for-domain-specific-provenance-applications"><span class="secno">4. </span>Specializing the PROV Ontology for Domain-specific Provenance Applications</a></li><li class="tocline"><a class="tocxref" href="#formal-semantics-of-the-prov-ontology"><span class="secno">5. </span>Formal Semantics of the PROV Ontology</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#rdf-semantics-for-prov-ontology"><span class="secno">5.1 </span>RDF Semantics for PROV Ontology</a></li><li class="tocline"><a class="tocxref" href="#owl2-semantics-for-prov-ontology"><span class="secno">5.2 </span>OWL2 Semantics for PROV Ontology</a></li><li class="tocline"><a class="tocxref" href="#entailments-supported-by-the-provenance-model"><span class="secno">5.3 </span>Provenance-specific Entailments Supported by PROV Ontology</a></li></ul></li><li class="tocline"><a class="tocxref" href="#acknowledgements"><span class="secno">A. </span>Acknowledgements</a></li><li class="tocline"><a class="tocxref" href="#references"><span class="secno">B. </span>References</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#normative-references"><span class="secno">B.1 </span>Normative references</a></li><li class="tocline"><a class="tocxref" href="#informative-references"><span class="secno">B.2 </span>Informative references</a></li></ul></li></ul></div>
<div class="section" id="introduction">
<!--OddPage--><h2><span class="secno">1. </span>Introduction</h2>
<p>
PROV Ontology (also PROV-O) defines the normative modeling of the PROV Data Model [<cite><a href="#bib-PROV-DM" rel="biblioentry" class="bibref">PROV-DM</a></cite>] using the <acronym title="World Wide Web Consortium">W3C</acronym> OWL2 Web Ontology Language. This document specification describes the set of classes, properties, and restrictions that constitute the PROV ontology, which have been introduced in the PROV Data Model [<cite><a href="#bib-PROV-DM" rel="biblioentry" class="bibref">PROV-DM</a></cite>]. This ontology specification provides the foundation for implementation of provenance applications in different domains using the PROV ontology for representing, exchanging, and integrating provenance information. Together with the PROV Access and Query [<cite><a href="#bib-PROV-PAQ" rel="biblioentry" class="bibref">PROV-PAQ</a></cite>] and PROV Data Model [<cite><a href="#bib-PROV-DM" rel="biblioentry" class="bibref">PROV-DM</a></cite>], this document forms a framework for provenance information interchange and management in domain-specific Web-based applications.
</p>
<p>
The PROV ontology classes and properties are defined such that they can not only be used directly to represent provenance information, but also can be specialized for modeling application-specific provenance details in a variety of domains. Thus, the PROV ontology is expected to be both directly usable in applications as well as serve as a <i>reference model</i> for creation of domain-specific provenance ontology and thereby facilitate interoperable provenance modeling. This document uses an example <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> introduced in the PROV Data Model [<cite><a href="#bib-PROV-DM" rel="biblioentry" class="bibref">PROV-DM</a></cite>] to demonstrate the use PROV-O classes and properties to model provenance information.
</p>
<p>
Finally, this document describes the formal semantics of the PROV ontology using the OWL2 semantics, [<cite><a href="#bib-OWL2-DIRECT-SEMANTICS" rel="biblioentry" class="bibref">OWL2-DIRECT-SEMANTICS</a></cite>], [<cite><a href="#bib-OWL2-RDF-BASED-SEMANTICS" rel="biblioentry" class="bibref">OWL2-RDF-BASED-SEMANTICS</a></cite>], and a set of provenance-specific inference rules. This is expected to support provenance implementations to automatically check for consistency of provenance information represented using PROV ontology and explicitly assert implicit provenance knowledge.
</p>
<p>The key words "<em title="must" class="rfc2119">must</em>", "<em title="must not" class="rfc2119">must not</em>", "<em title="required" class="rfc2119">required</em>", "<em title="shall" class="rfc2119">shall</em>", "<em title="shall not" class="rfc2119">shall not</em>", "<em title="should" class="rfc2119">should</em>", "<em title="should not" class="rfc2119">should not</em>", "<em title="recommended" class="rfc2119">recommended</em>", "<em title="may" class="rfc2119">may</em>", and "<em title="optional" class="rfc2119">optional</em>" in this document are to be interpreted as described in [<cite><a href="#bib-RFC2119" rel="biblioentry" class="bibref">RFC2119</a></cite>].</p>
<div class="section" id="guide-to-this-document">
<h3><span class="secno">1.1 </span>Guide to this Document</h3>
<p> This document is intended for provide an understanding of the PROV ontology and how it can be used by different applications to represent their provenance information. The intended audience of this document include users who are new to provenance modeling as well as experienced users who would like their provenance model compatible with the PROV ontology to facilitate standardization. This document assumes a basic understanding of the <acronym title="World Wide Web Consortium">W3C</acronym> RDF(S) and OWL2 specification. Readers are referred to the OWL2 and RDF(S) documentations, starting with the [<cite><a href="#bib-OWL2-PRIMER" rel="biblioentry" class="bibref">OWL2-PRIMER</a></cite>] and [<cite><a href="#bib-RDF-PRIMER" rel="biblioentry" class="bibref">RDF-PRIMER</a></cite>], for further details about the OWL2 and RDF(S) specifications respectively.
</p>
<p><a href="#prov-ontology--owl-encoding-of-prov-data-model">Section 2</a> describes the mapping of the PROV Data Model [<cite><a href="#bib-PROV-DM" rel="biblioentry" class="bibref">PROV-DM</a></cite>] to the PROV ontology. <a href="#specializing-provenance-ontology-for-domain-specific-provenance-applications">Section 3</a> introduces the classes and properties of the PROV ontology. <a href="#specializing-provenance-ontology-for-domain-specific-provenance-applications">Section 4</a> describes the approach used to specialize the PROV ontology create a domain specific ontology for an example <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario">provenance scenario</a> introduced in the PROV Data Model [<cite><a href="#bib-PROV-DM" rel="biblioentry" class="bibref">PROV-DM</a></cite>]. The PROV ontology supports a set of provenance entailments and these are described in <a href="#entailments-supported-by-the-provenance-model">Section 5</a>.
</p>
</div>
</div> <!-- Introduction -->
<div class="section" id="prov-ontology">
<!--OddPage--><h2><span class="secno">2. </span>PROV Ontology</h2>
<p> The PROV Data Model [<cite><a href="#bib-PROV-DM" rel="biblioentry" class="bibref">PROV-DM</a></cite>] introduces a minimal set of concepts to represent provenance information in a variety of application domains. This document maps the PROV Data Model to PROV Ontology using the OWL2 ontology language, which facilitates a fixed interpretation and use of the PROV Data Model concepts based on the formal semantics of OWL2 [<cite><a href="#bib-OWL2-DIRECT-SEMANTICS" rel="biblioentry" class="bibref">OWL2-DIRECT-SEMANTICS</a></cite>] [<cite><a href="#bib-OWL2-RDF-BASED-SEMANTICS" rel="biblioentry" class="bibref">OWL2-RDF-BASED-SEMANTICS</a></cite>].
</p>
<p>The PROV Ontology can be used directly in a domain application, though many domain applications may require specialization of PROV-O Classes and Properties for representing domain-specific provenance information. We briefly introduce some of the OWL2 modeling terms that will be used to describe the PROV ontology. An OWL2 <i>instance</i> is an individual object in a domain of discourse, for example a person named Alice or a car, and a set of individuals sharing a set of common characteristics is called a <i>class</i>. Person and Car are examples of classes representing the set of individual persons and cars respectively. The OWL2 object properties are used to link individuals, classes, or create a property hierarchy. For example, the object property "hasOwner" can be used to link car with person. The OWL2 datatype properties are used to link individuals or classes to data values, including XML Schema datatypes [<cite><a href="#bib-XMLSCHEMA-2" rel="biblioentry" class="bibref">XMLSCHEMA-2</a></cite>].
</p>
<p>The PROV Data Model document [<cite><a href="#bib-PROV-DM" rel="biblioentry" class="bibref">PROV-DM</a></cite>] introduces an example <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> describing the creation of crime statistics file stored on a shared file system and edited by journalists Alice, Bob, Charles, David, and Edith. This scenario is used as a running example in this document to describe the PROV ontology classes and properties, the specialization mechanism, and the entailments supported by the PROV ontology.
</p>
<div class="section" id="mapping-the-prov-dm-terms-to-prov-ontology">
<h3><span class="secno">2.1 </span>Mapping the PROV-DM terms to PROV Ontology</h3>
<p>The PROV Data Model [<cite><a href="#bib-PROV-DM" rel="biblioentry" class="bibref">PROV-DM</a></cite>] uses an Abstract Syntax Notation (ASN) to describe the set of provenance terms that are used to construct the PROV ontology. There are a number of differences between the PROV-DM ASN and the Semantic Web RDF, RDFS and OWL2 technologies; hence the approach used to model the provenance terms in PROV ontology differ, partially or significantly, from the PROV-DM approach.
</p>
<p>For example, the notion of "expressions" used in the PROV-DM map to RDF triple assertions in PROV-O. Similarly, the PROV-DM discusses the use of "Qualifier" to assert additional information about provenance terms. Following the general knowledge representation practices and OWL2 ontologies specifically, the PROV ontology specializes a given provenance term to create either a sub class or sub property to represent "additionally" qualified terms. Throughout this document, we explicitly state the difference, if any, between the PROV-DM term and PROV ontology term.
</p>
<div class="note"> In addition, RDF is strictly monotonic and "...it cannot express closed-world assumptions, local default preferences, and several other commonly used non-monotonic constructs."[<cite><a href="#bib-RDF-MT" rel="biblioentry" class="bibref">RDF-MT</a></cite>], but the PROV-DM seems to introduce the notion of non-monotonic assertions through "Account" construct [<cite><a href="#bib-PROV-DM" rel="biblioentry" class="bibref">PROV-DM</a></cite>]. For example, Account description in PROV-DM states that it "It provides a scoping mechanism for expression identifiers and for some contraints (such as generation-unicity and derivation-use)."
</div>
</div>
<div class="section" id="owl2-syntax-used-in-this-document">
<h3><span class="secno">2.2 </span>OWL2 Syntax Used in this Document</h3>
<p>This document uses the RDF/XML syntax, which is the mandatory syntax supported by all OWL2 syntax [<cite><a href="#bib-OWL2-PRIMER" rel="biblioentry" class="bibref">OWL2-PRIMER</a></cite>] to represent the PROV ontology. Provenance assertions using PROV-O can use any of the RDF syntax defined in the RDF specification [<cite><a href="#bib-RDF-PRIMER" rel="biblioentry" class="bibref">RDF-PRIMER</a></cite>].
</p>
</div>
<div class="section" id="namespace-and-owl2-version">
<h3><span class="secno">2.3 </span>Namespace and OWL2 version</h3>
<p>
The corresponding OWL2 version of this PROV Ontology is available at [<cite><a href="#bib-PROV-Ontology-Namespace" rel="biblioentry" class="bibref">PROV-Ontology-Namespace</a></cite>] and as <a href="ProvenanceOntology.owl">ProvenanceOntology.owl</a>. The namespace for the PROV ontology and all terms defined in this document is <code>http://www.w3.org/ns/prov-o/</code> [<cite><a href="#bib-PROV-Ontology-Namespace" rel="biblioentry" class="bibref">PROV-Ontology-Namespace</a></cite>] and is in this document denoted by the prefix <code>prov</code>.
</p>
<div class="issue">
It has been suggested that [<cite><a href="#bib-PROV-DM" rel="biblioentry" class="bibref">PROV-DM</a></cite>] and PROV-O should instead use the namespace <code>http://www.w3.org/ns/prov/</code> for terms that are common in both models. This is <a href="http://www.w3.org/2011/prov/track/issues/90">ISSUE-90</a>
</div>
</div>
</div> <!-- PROV Ontology -->
<div class="section" id="prov-ontology--owl-encoding-of-prov-data-model">
<!--OddPage--><h2><span class="secno">3. </span>PROV Ontology: Classes and Properties</h2>
<p> We now introduce the classes and properties that constitute the PROV ontology. We first give a textual description of each ontology term, followed by OWL2 syntax representing the ontology term and an example use of the class in the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario">provenance scenario</a>.
</p>
<div class="section" id="classes">
<h3><span class="secno">3.1 </span>Classes</h3>
<div class="buttonpanel">
<form action=""><p>
<input id="hide-examples1" onclick="set_display_by_class('div','anexample','none'); set_display_by_id('hide-examples1','none'); set_display_by_id('show-examples1','');" value="Hide Examples" type="button">
<input id="show-examples1" onclick="set_display_by_class('div','anexample',''); set_display_by_id('hide-examples1',''); set_display_by_id('show-examples1','none');" style="display: none" value="Show Examples" type="button">
</p>
</form>
</div>
<p>The PROV ontology consists of classes that can be organized into a hierarchical structure using the <code>rdfs:subClassOf</code> property.
<img src="diagrams/Ontology_hierarchy.png" style="width: 70%; min-width: 25em; max-width: 60em" alt="Class hierarchy of the PROV ontology">
<br>
</p>
<p><i>Note: CamelBack notation is used for class names</i></p>
<div class="section" id="entity">
<h4><span class="secno">3.1.1 </span>Entity</h4>
<div><b>Class Description</b></div>
<p>Entity is defined to be "An Entity represents an identifiable characterized thing." [<cite><a href="#bib-PROV-DM" rel="biblioentry" class="bibref">PROV-DM</a></cite>]</p>
<div><b>OWL syntax</b></div>
<pre> prov:Entity rdfs:subClassOf owl:Thing.
</pre>
<div class="anexample">
<div><b>Example</b></div>
<p> Example of instances of class Entity from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> are files with identifiers <i>e1</i> and <i>e2</i>. The RDF/XML syntax for asserting that e1 is an instance of Entity is given below.
</p><div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#e1">
<rdf:type rdf:resource="http://www.w3.org/ns/prov-o/Entity"/>
</rdf:Description></pre>
</div>
</div>
<p>Additional assertions can be made about the Entity instances that describe additional attributes of the entities. Following common knowledge representation approach, the Entity class can be specialized to create multiple sub classes, using the <code>rdfs:subClassOf</code> property, representing distinct categories of entities using additional characterizing attributes (as defined in the [<cite><a href="#bib-PROV-DM" rel="biblioentry" class="bibref">PROV-DM</a></cite>]). The additional attributes <em title="should" class="rfc2119">should</em> use an appropriate namespace, and the new sub classes <em title="may" class="rfc2119">may</em> be introduced by application-specific provenance ontologies.
</p>
<div class="anexample">
<div><b>Example</b></div>
<div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#e2">
<rdf:type rdf:resource="http://www.example.com/crime#CrimeFile">
</rdf:Description>
<rdf:Description rdf:about="http://www.example.com/crime#CrimeFile">
<rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov-o/Entity"/>
</rdf:Description></pre>
</div>
</div>
</div> <!-- Classes -->
<div class="section" id="activity">
<h4><span class="secno">3.1.2 </span>Activity</h4>
<div><b>Class Description</b></div>
<p>Activity is defined to be "an identifiable activity, which performs a piece of work." [<cite><a href="#bib-PROV-DM" rel="biblioentry" class="bibref">PROV-DM</a></cite>]</p>
<div><b>OWL syntax</b></div>
<pre>prov:Activity rdfs:subClassOf owl:Thing.</pre>
<div class="anexample">
<div><b>Example</b></div>
<p> Example instances of the class Activity (from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a>) are "file creation" (<i>pe0</i>) and "file editing" (<i>pe2</i>) . The RDF/XML syntax for asserting that act2 is an instance of Activity is given below.
</p><div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#act2">
<rdf:type rdf:resource="http://www.w3.org/ns/prov-o/Activity"/>
</rdf:Description></pre>
</div>
</div>
<div class="note"> act2 is an instance of class <code>:Emailing</code>, which is defined to be sub-class of class <code>prov:Activity</code> in the CrimeFile ontology. Hence, using standard RDFS entailment allows us to infer that act2 is also an instance of <code>prov:Activity</code>.
</div>
</div>
<div class="section" id="agent">
<h4><span class="secno">3.1.3 </span>Agent</h4>
<div><b>Class Description</b></div>
<p>Agent is defined to be a "characterized entity capable of activity" [<cite><a href="#bib-PROV-DM" rel="biblioentry" class="bibref">PROV-DM</a></cite>]</p>
<div><b>OWL syntax</b></div>
<pre>prov:Agent rdfs:subClassOf prov:Entity.</pre>
<div class="anexample">
<div><b>Example</b></div>
<p> Example of instances of class Agent from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> are <i>Alice</i> and <i>Edith</i>. The RDF/XML syntax for asserting that Alice is an instance of Agent is given below.
</p><div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#Alice">
<rdf:type rdf:resource="http://www.w3.org/ns/prov-o/Agent"/>
</rdf:Description></pre>
</div>
</div>
<div class="note"> Similar to example for Entity, both Alice and Edith are instances of class Journalist, which is defined to be "sub-class" of class Agent in the CrimeFile ontology. Hence, using standard RDFS entailment allows us to infer that both Alice and Edith are also instances of Agent.
</div>
</div>
<div class="section" id="temporalentity">
<h4><span class="secno">3.1.4 </span>TemporalEntity</h4>
<div><b>Class Description</b></div>
<p>TemporalEntity represents temporal information about entities in the Provenance model. This class has been re-used from the OWL Time ontology [<cite><a href="#bib-OWL-TIME" rel="biblioentry" class="bibref">OWL-TIME</a></cite>]. The PROV ontology also models the two sub classes of TemporalEntity, namely Instant and Interval.</p>
<p>The Instant class represents "point-line" temporal information that have "no interior points" [<cite><a href="#bib-OWL-TIME" rel="biblioentry" class="bibref">OWL-TIME</a></cite>]. The Interval class represents temporal information that have a non-zero duration [<cite><a href="#bib-OWL-TIME" rel="biblioentry" class="bibref">OWL-TIME</a></cite>]</p>
<div><b>OWL syntax</b></div>
<pre>time:TemporalEntity rdfs:subClassOf owl:Thing.</pre>
<div class="anexample">
<div><b>Example</b></div>
<p> Example of instances of class TemporalEntity from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> are <i>t</i> and <i>t+1</i>. t+1 is associated with the instance of Activity act2. The instances of TemporalEntity are linked to instances of Entity or Activity classes by the <a href="#hadtemporalvalue">hadTemporalValue</a> property that is described later in this document. </p>
<p>The RDF/XML syntax for this asserting that t+1 is an instance of class TemporalEntity and t+1 is associated with act2 is given below.
</p>
<div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#act2">
<prov:hadTemporalValue rdf:about="http://www.example.com/crimeFile#t+1">
<rdf:type rdf:resource="http://www.w3.org/2006/time#TemporalEntity"/>
</prov:hadTemporalValue>
</rdf:Description></pre>
</div>
</div>
</div>
<div class="section" id="provenancecontainer">
<h4><span class="secno">3.1.5 </span>ProvenanceContainer</h4>
<div><b>Class Description</b></div>
<p>ProvenanceContainer is defined to be an aggregation of provenance assertions. A provenance container should have an URI associated with it. The ProvenanceContainer class can also be used to model the PROV-DM concept of <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#expression-Account">Account</a>.</p>
<div><b>OWL syntax</b></div>
<pre>prov:ProvenanceContainer rdfs:subClassOf owl:Thing.</pre>
<p>Examples of instance of class ProvenanceContainer includes a RDF graph containing set of assertions describing the provenance of a car, such as its manufacturer, date of manufacture, and place of manufacture.</p>
<div class="anexample">
<div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#ProvenanceContainer1">
<rdf:type rdf:resource="http://www.w3.org/ns/prov-o/ProvenanceContainer"/>
<cf:contains rdf:resource="http://www.example.com/crimeFile#Statement1"/>
<cf:contains rdf:resource="http://www.example.com/crimeFile#Statement2"/>
<cf:assertedBy rdf:resource="http://www.example.com/crimeFile#Alice"/>
</rdf:Description> </pre>
</div>
</div>
<div class="note"> According to the definitions of ProvenanceContainer and Account, both contain a set of provenance assertions and have an identifier. Hence, ProvenanceContainer class can also be used to create instances of accounts.
</div>
<div class="issue">Scope and Identifiers.
This is <a href="http://www.w3.org/2011/prov/track/issues/81">ISSUE-81</a>.</div>
<div class="section" id="modeling-provenancecontainer-and-account-as-rdf-graph">
<h5><span class="secno">3.1.5.1 </span>Modeling ProvenanceContainer and Account as RDF Graph</h5>
<p>If a RDF graph contains a set of RDF assertions then, (a) if an explicit asserter is associated with the RDF graph it corresponds to the term "Account" in PROV-DM, and (b) if an asserted is not associated with the RDF graph it corresponds to the term "ProvenanceContainer" in PROV-DM.</p>
</div>
</div>
<div class="section" id="location">
<h4><span class="secno">3.1.6 </span>Location</h4>
<div><b>Class Description</b></div>
<p>Location is defined to be "is an identifiable geographic place (ISO 19112)." [<cite><a href="#bib-PROV-DM" rel="biblioentry" class="bibref">PROV-DM</a></cite>]</p>
<div><b>OWL syntax</b></div>
<pre>prov:Location rdfs:subClassOf owl:Thing.</pre>
<p> Example of instances of class Location from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> is the location of the crime file in the shared directory <i>/share</i> with file path <i>/shared/crime.txt</i>. The RDF/XML syntax for asserting that the location of the crime file is the shared directory.
</p><div class="anexample">
<div class="exampleOuter">
<pre class="example"><cf:hasLocation>
<rdf:Description rdf:about="http://www.example.com/crimeFile#sharedDirectoryLocation1">
<rdf:type rdf:resource="http://www.w3.org/ns/prov-o/Location"/>
<cf:hasFilePath rdf:datatype="http://www.w3.org/2001/XMLSchema#string">/share/crime.txt</cf:hasFilePath>
</rdf:Description>
</cf:hasLocation></pre>
</div>
</div>
<div class="note"> Need to clarify whether "geographic" includes "geospatial"?</div>
</div>
<div class="section" id="qualifiedinvolvement">
<h4><span class="secno">3.1.7 </span>QualifiedInvolvement</h4>
<div><b>Class Description</b></div>
<p>The QualifiedInvolvement class represents an n-ary property to capture qualifying information related to the the use, generation, control, and participation.</p>
<div><b>OWL syntax</b></div>
<pre>prov:QualifiedInvolvement rdfs:subClassOf owl:Thing.</pre>
<div class="section" id="usage">
<h5><span class="secno">3.1.7.1 </span>Usage</h5>
<div><b>Class Description</b></div>
<p>The Usage class represents an n-ary property to capture qualifying information related to the use of Entity by Activity.</p>
<div><b>OWL syntax</b></div>
<pre>prov:Usage rdfs:subClassOf prov:QualifiedInvolvement.</pre>
<div class="anexample">
<div><b>Example</b></div>
<p> Example of instances of class Usage from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> provenance scenario ??? is given below.
</p><div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#u1">
<rdf:type rdf:resource="http://www.w3.org/ns/prov-o/Usage"/>
<prov:hadQualifiedEntity rdf:resource="http://www.example.com/crimeFile#Bob"/>
</rdf:Description></pre>
</div>
</div>
</div>
<div class="section" id="participation">
<h5><span class="secno">3.1.7.2 </span>Participation</h5>
<div><b>Class Description</b></div>
<p>The Participation class represents an n-ary property to capture qualifying information related to the participation of Entity in Activity.</p>
<div><b>OWL syntax</b></div>
<pre>prov:Participation rdfs:subClassOf prov:QualifiedInvolvement.</pre>
<div class="anexample">
<div><b>Example</b></div>
<p> Example of instances of class Participation from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> provenance scenario ??? is given below.
</p><div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#p1">
<rdf:type rdf:resource="http://www.w3.org/ns/prov-o/Participation"/>
<prov:hadQualifiedEntity rdf:resource="http://www.example.com/crimeFile#Bob"/>
</rdf:Description></pre>
</div>
</div>
</div>
<div class="section" id="control">
<h5><span class="secno">3.1.7.3 </span>Control</h5>
<div><b>Class Description</b></div>
<p>The Control class represents an n-ary property to capture qualifying information related to the control of Activity by Agent.</p>
<div><b>OWL syntax</b></div>
<pre>prov:Control rdfs:subClassOf prov:QualifiedInvolvement.</pre>
<div class="anexample">
<div><b>Example</b></div>
<p>Example of instances of class Control from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> provenance scenario ??? is given below.
</p><div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#c1">
<rdf:type rdf:resource="http://www.w3.org/ns/prov-o/Control"/>
<prov:hadQualifiedEntity rdf:resource="http://www.example.com/crimeFile#Bob"/>
</rdf:Description></pre>
</div>
</div>
</div>
<div class="section" id="generation">
<h5><span class="secno">3.1.7.4 </span>Generation</h5>
<div><b>Class Description</b></div>
<p>The Generation class represents an n-ary property to capture qualifying information related to the generation of Entity by Activity.</p>
<div><b>OWL syntax</b></div>
<pre>prov:Generation rdfs:subClassOf prov:QualifiedInvolvement.</pre>
<div class="anexample">
<div><b>Example</b></div>
<p> Example of instances of class Generation from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario</a> ??? is given below.
</p><div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#g1">
<rdf:type rdf:resource="http://www.w3.org/ns/prov-o/Generation"/>
<prov:hadQualifiedEntity rdf:resource="http://www.example.com/crimeFile#Bob"/>
</rdf:Description></pre>
</div>
</div>
</div>
</div>
<div class="section" id="recipe">
<h4><span class="secno">3.1.8 </span>Recipe</h4>
<div><b>Class Description</b></div>
<p>Recipe represents the specification of a <a href="#activity">Activity</a>. PROV ontology does not define the different types of recipes that can be created by provenance applications in different domains.</p>
<div><b>OWL syntax</b></div>
<pre>prov:Recipe rdfs:subClassOf owl:Thing.</pre>
<div class="anexample">
<div><b>Example</b></div>
<p>An example of recipe from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario">provenance scenario </a>may be the editing protocol followed by the journalists to edit a news report.
</p><div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#news_editing">
<rdf:type rdf:resource="http://www.w3.org/ns/prov-o/Activity"/>
<prov:hadRecipe rdf:resource="http://www.example.com/crimeFile#NewsReportEditingProtocol"/>
</rdf:Description></pre>
</div>
</div>
</div>
<div class="section" id="role">
<h4><span class="secno">3.1.9 </span>Role</h4>
<div><b>Class Description</b></div>
<p>Role class models additional information about Entity or Activity class with respect to the QualifiedInvolvement class [<cite><a href="#bib-PROV-DM" rel="biblioentry" class="bibref">PROV-DM</a></cite>]</p>
<div><b>OWL syntax</b></div>
<pre>prov:Role rdfs:subClassOf owl:Thing.</pre>
<div class="anexample">
<div><b>Example</b></div>
<p> Example of instances of class Role from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> are <i>author (for Alice)</i> and <i>save (for act1)</i>. The RDF/XML syntax for asserting that Alice played a role of author in the usage u1 (instance of class Usage) of file e1 in the activity of adding content.
</p><div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#u1">
<rdf:type rdf:resource="http://www.w3.org/ns/prov-o/Usage"/>
<prov:hadRole rdf:resource="www.example.com/crimeFile#author"/>
</rdf:Description></pre>
</div>
</div>
<div class="note"> It is not clear how two roles can be modeled using the QualifiedInvolvement class-based approach, where an Entity plays a role of "author", while the Activity plays the role of "save" (from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a>).
</div>
</div>
<div class="section" id="classes-under-discussion">
<h4><span class="secno">3.1.10 </span>Classes under Discussion</h4>
<p>Temporary section for terms not part of "core" ontology.</p>
<div class="section" id="time">
<h5><span class="secno">3.1.10.1 </span>Time</h5>
<div><b>Class Description</b></div>
<p><code>Time</code> is subclass of <code>time:Instant</code>
from [<cite><a href="#bib-OWL-TIME" rel="biblioentry" class="bibref">OWL-TIME</a></cite>] which requires that the time is defined
using the <code>time:inXSDDateTime</code> property. This
class used with <code>startedAt</code> and other subproperties
of <code>hasTemporalValue</code> ensures compatibility with <code>xsd:dateTime</code> literals
expressions in [<cite><a href="#bib-PROV-DM" rel="biblioentry" class="bibref">PROV-DM</a></cite>] ASN and other serialisations.
c</p>
</div>
</div>
</div>
<div class="section" id="object-properties">
<h3><span class="secno">3.2 </span>Object Properties</h3>
<div class="buttonpanel">
<form action=""><p>
<input id="hide-examples2" onclick="set_display_by_class('div','anexample','none'); set_display_by_id('hide-examples2','none'); set_display_by_id('show-examples2','');" value="Hide Examples" type="button">
<input id="show-examples2" onclick="set_display_by_class('div','anexample',''); set_display_by_id('hide-examples2',''); set_display_by_id('show-examples2','none');" style="display: none" value="Show Examples" type="button">
</p>
</form>
</div>
<p>The PROV ontology has the following object properties. </p>
<p><i>Note: Names of properties starts with a verb in lower case followed by verb(s) starting with upper case </i></p>
<div class="section" id="wasgeneratedby">
<h4><span class="secno">3.2.1 </span>wasGeneratedBy</h4>
<p>The wasGeneratedBy property links the Entity class with the Activity class.</p>
<p><i>Note: No arity constraints are assumed between Entity and Activity</i></p>
<img src="diagrams/wasGeneratedBy.png" style="height: 3em" alt="wasGeneratedBy links Entity to Activity">
<div class="anexample">
<div><b>Example</b></div>
<p>Example of wasGeneratedBy property from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> is <i>e1 wasGeneratedBy act0</i>. The RDF/XML syntax for asserting this information is given below.
</p>
<div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#e1">
<rdf:type rdf:resource="http://www.w3.org/ns/prov-o/Entity"/>
<prov:wasGeneratedBy>
<rdf:Description rdf:about="http://www.example.com/crimeFile#act0">
<rdf:type rdf:resource="http://www.w3.org/ns/prov-o/Activity"/>
</rdf:Description>
<prov:wasGeneratedBy>
</rdf:Description> </pre>
</div>
</div>
</div>
<div class="section" id="revision">
<h4><span class="secno">3.2.2 </span>wasRevisionOf</h4>
<p>The wasRevisionOf property links two instances of Entity class, where one instance is a revision of another instance, and there is explicit role of an Agent in asserting this information.</p>
<div class="anexample">
<div><b>Example</b></div>
<p>Example of wasRevisionOf property from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> is <i>e3 wasRevisionOf e2</i>. The RDF/XML syntax for asserting this information is given below.
</p>
<div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#e3">
<rdf:type rdf:resource="http://www.w3.org/ns/prov-o/Entity"/>
<prov:wasRevisionOf>
<rdf:Description rdf:about="http://www.example.com/crimeFile#e2">
<rdf:type rdf:resource="http://www.w3.org/ns/prov-o/Entity"/>
</rdf:Description>
<prov:wasRevisionOf>
</rdf:Description> </pre>
</div>
</div>
<div class="note"> Can instance of Agents be reasoning agents that infer the information that one Entity instance is a revision of another Entity instance and then asserts the information? In other words, is assertion after inference supported by this property?
</div>
</div>
<div class="section" id="wasderivedfrom">
<h4><span class="secno">3.2.3 </span>wasDerivedFrom</h4>
<p>The wasDerivedFrom property links two instances of Entity class, where "some characterized entity is transformed from, created from, or affected by another characterized entity." [<cite><a href="#bib-PROV-DM" rel="biblioentry" class="bibref">PROV-DM</a></cite>]</p>
<img src="diagrams/wasDerivedFrom.png" style="height: 3em" alt="wasDerivedFrom links Entity to Entity">
<div class="anexample">
<div><b>Example</b></div>
<p> Example of wasDerivedFrom property from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> is <i>e3 wasDerivedFrom e2</i>. The RDF/XML syntax for asserting this is given below.
</p>
<div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#e3">
<prov:wasDerivedFrom rdf:resource="http://www.example.com/crimeFile#e2"/>
</rdf:Description> </pre>
</div>
</div>
<div class="issue">Should derivation have a time? Which time? This is <a href="http://www.w3.org/2011/prov/track/issues/43">ISSUE-43</a>.</div>
<div class="issue">Should we specifically mention derivation of agents? This is <a href="http://www.w3.org/2011/prov/track/issues/42">ISSUE-42</a>.</div>
</div>
<div class="section" id="waseventuallyderivedfrom">
<h4><span class="secno">3.2.4 </span>wasEventuallyDerivedFrom</h4>
<p>This object property is used to link two instances of Entity class that "...are not directly used and generated respectively" by a single instance of Activity class [<cite><a href="#bib-PROV-DM" rel="biblioentry" class="bibref">PROV-DM</a></cite>].
</p>
<img src="diagrams/wasEventuallyDerivedFrom.png" style="height: 3em" alt="wasEventuallyDerivedFrom links Entity to Entity">
<div class="anexample">
<div><b>Example</b></div>
<p> Example of wasEventuallyDerivedFrom property from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> is <i>e5 wasEventuallyDerivedFrom e2</i>. The RDF/XML syntax for asserting this is given below.
</p><div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#e5">
<prov:wasEventuallyDerivedFrom rdf:resource="http://www.example.com/crimeFile#e2"/>
</rdf:Description> </pre>
</div>
</div>
<div class="issue">Is the current definition of wasEventuallyDerivedFrom inconsistent with definition of wasDerivedFrom? This is <a href="http://www.w3.org/2011/prov/track/issues/122">ISSUE-122 </a> and <a href="http://www.w3.org/2011/prov/track/issues/126">ISSUE-126</a></div>
</div>
<div class="section" id="dependedon">
<h4><span class="secno">3.2.5 </span>dependedOn</h4>
<p>The dependedOn property links two instances of Entity class to model the derivation of one instance from another instance. This is a <i>transitive</i> property, in other words if an Entity instance a1 dependedOn a2 and a2 dependedOn a3, then a1 dependedOn a3 is also true.</p>
<img src="diagrams/dependedOn.png" style="height: 3em" alt="dependedOn links Entity to Entity">
<div class="anexample">
<div><b>Example</b></div>
<p>Example of dependedOn property from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> is <i>e5 dependedOn e2</i>. The RDF/XML syntax for asserting this is given below.</p>
<div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#e5">
<prov:dependedOn rdf:resource="http://www.example.com/crimeFile#e2"/>
</rdf:Description> </pre>
</div>
</div>
<div class="issue">Is dependedOn a parent property of
wasDerivedFrom? This is <a href="http://www.w3.org/2011/prov/track/issues/125">ISSUE-125</a>
</div>
</div>
<div class="section" id="used">
<h4><span class="secno">3.2.6 </span>used</h4>
<p>The used property links the Activity class to the Entity class, where the Entity instance is "consumed" by a Activity instance.</p>
<p><i>Note: No arity constraints are assumed between Entity and Activity</i></p>
<img src="diagrams/used.png" style="height: 3em" alt="used links Activity to Entity">
<div class="anexample">
<div><b>Example</b></div>
<p> Example of used property from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> is <i>pe2 used e2</i>. The RDF/XML syntax for asserting this is given below.</p>
<div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#act2">
<prov:used rdf:resource="http://www.example.com/crimeFile#e2"/>
</rdf:Description> </pre>
</div>
</div>
</div>
<div class="section" id="hadparticipant">
<h4><span class="secno">3.2.7 </span>hadParticipant</h4>
<p>The hadPariticipant property links Entity class to Activity class, where Entity used or wasGeneratedBy Activity.</p>
<p><i>Note: No arity constraints are assumed between Entity and Activity</i></p>
<img src="diagrams/hadParticipant.png" style="height: 3em" alt="hadParticipant links Activity to Entity">
<div class="anexample">
<div><b>Example</b></div>
<p> Example of hadParticipant property from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> is <i>pe2 hadParticipant e2</i>. The RDF/XML syntax for asserting this is given below.</p>
<div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#act2">
<prov:hadParticipant rdf:resource="http://www.example.com/crimeFile#e2"/>
</rdf:Description> </pre>
</div>
</div>
<div class="pending">Suggested definition for participation. This is <a href="http://www.w3.org/2011/prov/track/issues/49">ISSUE-49</a>.</div>
<div class="note"> The current definition of hasParticipant does not account for involvement of an Entity in Activity where it was neither "used" or "generated". For example, a witness in a criminal activity.
</div>
</div>
<div class="section" id="wascomplementof">
<h4><span class="secno">3.2.8 </span>wasComplementOf</h4>
<p>The wasComplementOf property links two instances of set of assertions about Entity instances, where "it is relationship between two characterized entities asserted to have compatible characterization over some continuous time interval." [<cite><a href="#bib-PROV-DM" rel="biblioentry" class="bibref">PROV-DM</a></cite>]</p>
<img src="diagrams/wasComplementOf.png" style="height: 3em" alt="wasComplementOf links Entity to Entity">
<div class="note"> Should the wasComplementOf property link two instances of ProvenanceContainer (or Account) classes since they are two classes modeling a set of (one or more) provenance assertions?
</div>
</div>
<div class="section" id="wascontrolledby">
<h4><span class="secno">3.2.9 </span>wasControlledBy</h4>
<p>The wasControlledBy property links Activity class to Agent class, where control represents the involvement of the Agent in modifying the characteristics of the instance of the Activity class"[<cite><a href="#bib-PROV-DM" rel="biblioentry" class="bibref">PROV-DM</a></cite>].</p>
<img src="diagrams/wasControlledBy.png" style="height: 3em" alt="wasControlledBy links Activity to Agent">
<div class="anexample">
<div><b>Example</b></div>
<p> Example of wasControlledBy property from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> is <i>FileAppending</i> (Activity) <i>wasControlledBy Bob</i>. The RDF/XML syntax for asserting this is given below.
</p><div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#act1">
<prov:wasControlledBy>
<rdf:Description rdf:about="http://www.example.com/crimeFile#Bob">
<rdf:type rdf:resource="http://www.example.com/crime#Journalist"/>
</rdf:Description>
</prov:wasControlledBy>
</rdf:Description> </pre>
</div>
</div>
</div>
<div class="section" id="hadrecipe">
<h4><span class="secno">3.2.10 </span>hadRecipe</h4>
<p>This property links the Activity class to the Recipe class, which describes the execution characteristics of the instance of the Activity class. The recipe might or might not have been followed exactly by the Activity.
</p>
<img src="diagrams/hadRecipe.png" style="height: 3em" alt="hadRecipe links Activity to Agent">
<div class="anexample">
<div><b>Example</b></div>
<p> Example of hadRecipe property in the (extended)<a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> is that act1 (instance of Activity class) followed some file appending instructions (instructions1). The RDF/XML syntax for asserting this is given below.</p>
<div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#act1">
<prov:hadRecipe rdf:resource="http://www.example.com/crimeFile#instructions1"/>
</rdf:Description> </pre>
</div>
</div>
</div>
<div class="section" id="wasinformedby">
<h4><span class="secno">3.2.11 </span>wasInformedBy</h4>
<p> This object property links two instances of the Activity classes. It is used to express the information that a given process execution used an entity that was generated by another process execution.
</p>
<img src="diagrams/wasInformedBy.png" style="height: 3em" alt="wasInformedBy links Activity to Activity">
<div class="anexample">
<div><b>Example</b></div>
<p> Example of wasInformedBy property from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> is <i>pe4 wasInformedBy act3</i>. The RDF/XML syntax for asserting this is given below.</p>
<div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#act4">
<prov:wasInformedBy rdf:resource="http://www.example.com/crimeFile#act3"/>
</rdf:Description> </pre>
</div>
</div>
</div>
<div class="section" id="wascheduledafter">
<h4><span class="secno">3.2.12 </span>wasScheduledAfter</h4>
<p>
This property links two instances of Activity class to specify the order of their executions. Specifically, it is used to specify that a given process execution starts after the end of another process execution.
</p>
<img src="diagrams/wasScheduledAfter.png" style="height: 3em" alt="wasScheduledAfter links Activity to Activity">
<div class="anexample">
<div><b>Example</b></div>
<p> Example of wasScheduledAfter property from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> is <i>pe4 wasScheduledAfter act3</i>. The RDF/XML syntax for asserting this is given below.</p>
<div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#act4">
<prov:wasScheduledAfter rdf:resource="http://www.example.com/crimeFile#act3"/>
</rdf:Description> </pre>
</div>
</div>
<div class="issue"> There is proposal to either rename wasScheduledAfter or clarify its definition in PROV-DM. These are issues <a href="http://www.w3.org/2011/prov/track/issues/148">Issue-148</a>
</div>
</div>
<div class="section" id="hadtemporalvalue">
<h4><span class="secno">3.2.13 </span>hadTemporalValue</h4>
<p> This object property links an instance of <code>Activity</code> or <code>Entity</code> with an <code>time:TemporalEntity</code> from [<cite><a href="#bib-OWL-TIME" rel="biblioentry" class="bibref">OWL-TIME</a></cite>], thereby allowing association of time value with instances of the two classes and their subclasses.
</p>
<img src="diagrams/hadTemporalValue.png" style="height: 3em" alt="hadTemporalValue links Activity or Entity to time:TemporalValue">
<div class="anexample">
<div><b>Example</b></div>
<p> Example of hadTemporalValue property from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario">provenance scenario</a> is <i>t+3</i> time value is associated with the act3 Activity instanc. The RDF/XML syntax for asserting this is given below.</p>
<div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#act3">
<prov:hasTemporalValue rdf:resource="http://www.example.com/crimeFile#t+3"/>
</rdf:Description> </pre>
</div>
</div>
<div class="section" id="startedat">
<h5><span class="secno">3.2.13.1 </span>startedAt</h5>
<p> This object property defines the time when <code>Activity</code> started. The time is specified as an <code>time:Instant</code> [<cite><a href="#bib-OWL-TIME" rel="biblioentry" class="bibref">OWL-TIME</a></cite>].
</p>
<img src="diagrams/startedAt.png" style="height: 3em" alt="startedAt links Activity to Instant">
<div class="anexample">
<div><b>Example</b></div>
<p> Example of startedAt property is that a act1 (instance of Activity class) is "2011-10-20T17:14:12Z". The RDF/XML syntax for asserting this is given below.</p>
<div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#act1">
<prov:startedAt rdf:about="http://www.example.com/crimeFile#t1>
<rdf:type rdf:resource=""http://www.w3.org/2006/time#Instant"/>
<time:inXSDDateTime>2011-10-20T17:14:12Z</time:inXSDDateTime>
</prov:startedAt>
</rdf:Description> </pre>
</div>
</div>
</div>
<div class="section" id="endedat">
<h5><span class="secno">3.2.13.2 </span>endedAt</h5>
<p> This object property defines the time when a <code>Activity</code> ended. The time is specified as an <code>time:Instant</code> [<cite><a href="#bib-OWL-TIME" rel="biblioentry" class="bibref">OWL-TIME</a></cite>].
</p>
<img src="diagrams/endedAt.png" style="height: 3em" alt="endedAt links Activity to Instant">
<div class="anexample">
<div><b>Example</b></div>
<p> Example of endedAt property is that a act1 (instance of Activity class) is "2011-10-20T20:14:12Z". The RDF/XML syntax for asserting this is given below.</p>
<div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#act1">
<prov:endedAt rdf:about="http://www.example.com/crimeFile#t2>
<rdf:type rdf:resource=""http://www.w3.org/2006/time#Instant"/>
<time:inXSDDateTime>2011-10-20T20:14:12Z</time:inXSDDateTime>
</prov:endedAt>
</rdf:Description></pre>
</div>
</div>
</div>
<div class="section" id="wasGeneratedat">
<h5><span class="secno">3.2.13.3 </span>wasGeneratedAt</h5>
<p> This object property defines the time when a <code>Entity</code> was generated by Activity.
</p>
<img src="diagrams/wasGeneratedAt.png" style="height: 3em" alt="wasGeneratedAt links Entity to Instant">
<div class="anexample">
<div><b>Example</b></div>
<p> Example of wasGeneratedAt property is that a e1 (instance of Entity class) wasGeneratedAt "2011-10-20T20:12:12Z". The RDF/XML syntax for asserting this is given below.</p>
<div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#e1">
<prov:wasGeneratedAt rdf:about="http://www.example.com/crimeFile#t3>
<rdf:type rdf:resource=""http://www.w3.org/2006/time#Instant"/>
<time:inXSDDateTime>2011-10-20T20:12:12Z</time:inXSDDateTime>
</prov:startedAt>
</rdf:Description></pre>
</div>
</div>
</div>
</div>
<div class="section" id="attribution">
<h4><span class="secno">3.2.14 </span>wasAttributedTo</h4>
<p>The wasAttributedTo property links an instance of the Entity class to an instance of Agent class.</p>
<img src="diagrams/wasAttributedTo.png" style="height: 3em" alt="wasAttributedTo links Entity to Agent">
<div class="anexample">
<div><b>Example</b></div>
<p> Example of wasAttributedTo property as an addition to the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> is the attribution of e3 to David for writting editing the file (<i>e3 wasAttributedTo David</i>). The RDF/XML syntax for asserting this is given below.</p>
<div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#e3">
<prov:wasAttributedTo rdf:resource="http://www.example.com/crimeFile#David"/>
</rdf:Description> </pre>
</div>
</div>
</div>
<div class="section" id="quotation">
<h4><span class="secno">3.2.15 </span>wasQuoteOf</h4>
<p>The wasQuoteOf property links an instance of the Entity class to an instance of the Agent class.</p>
<img src="diagrams/wasQuoteOf.png" style="height: 3em" alt="wasQuoteOf links Entity to Agent">
<div class="anexample">
<div><b>Example</b></div>
<p> Example of wasQuoteOf property as an addition to the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> is e2 quoting Alice, recorded by Bob (<i> e2 wasQuoteOf Alice</i>). The RDF/XML syntax for asserting this is given below.</p>
<div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#e2">
<prov:wasQuoteOf rdf:resource="http://www.example.com/crimeFile#Alice"/>
</rdf:Description> </pre>
</div>
</div>
</div>
<div class="section" id="summary">
<h4><span class="secno">3.2.16 </span>wasSummaryOf</h4>
<p>The wasSummaryOf property links two instances of the Entity class.</p>
<img src="diagrams/wasSummaryOf.png" style="height: 3em" alt="wasSummaryOf links Entity to Entity">
<div class="anexample">
<div><b>Example</b></div>
<p> Example of wasSummaryOf property as an addition to the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> is e3 summarizing some additional statistics(<i> e3 wasSummaryOf statistics</i>). The RDF/XML syntax for asserting this is given below.</p>
<div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#e3">
<prov:wasSummaryOf rdf:resource="http://www.example.com/crimeFile#statistics"/>
</rdf:Description> </pre>
</div>
</div>
</div>
<div class="section" id="originalsource">
<h4><span class="secno">3.2.17 </span>hadOriginalSource</h4>
<p>The hadOriginalSource property links two instances of the Entity class. This property is defined to be a specialization of the wasEventuallyDerivedFrom propery.</p>
<img src="diagrams/hadOriginalSource.png" style="height: 3em" alt="hadOriginalSource links Entity to Entity">
<div class="anexample">
<div><b>Example</b></div>
<p> Example of hadOriginalSource property from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> <i> e6 hadOriginalSource e1</i>. The RDF/XML syntax for asserting this is given below.</p>
<div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#e6">
<prov:hadOriginalSource rdf:resource="http://www.example.com/crimeFile#e1"/>
</rdf:Description> </pre>
</div>
<div>
</div></div></div>
<div class="section" id="hadqualifiedusage">
<h4><span class="secno">3.2.18 </span>hadQualifiedUsage</h4>
<p>The hadQualifiedUsage property links the Activity class with the Usage class.</p>
<img src="diagrams/hadQualifiedUsage.png" style="height: 3em" alt="hadQualifiedUsage links Activity to Usage">
<div class="anexample">
<div><b>Example</b></div>
<p> Example of hadQualifiedUsage property from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> <i> act1 hadQualifiedUsage u1</i>, where the hadRole describes the usage of e1 as a "load". The RDF/XML syntax for asserting this is given below.</p>
<div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#act1">
<prov:hadQualifiedUsage rdf:resource="http://www.example.com/Usage#u1"/>
</rdf:Description> </pre>
</div>
</div>
</div>
<div class="section" id="hadqualifiedparticipation">
<h4><span class="secno">3.2.19 </span>hadQualifiedParticipation</h4>
<p>The hadQualifiedParticipation property links the Activity class with the Participation class.</p>
<img src="diagrams/hadQualifiedParticipation.png" style="height: 3em" alt="hadQualifiedParticipation links Activity to Participation">
<div class="anexample">
<div><b>Example</b></div>
<p> Example of hadQualifiedParticipation property from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> <i> act1 hadQualifiedParticipation p1</i>, where the hadRole describes the participation of Alice as an "author" in act1. The RDF/XML syntax for asserting this is given below.</p>
<div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#act1">
<prov:hadQualifiedParticipation rdf:resource="http://www.example.com/crimeFile#p1"/>
</rdf:Description> </pre>
</div>
</div>
</div>
<div class="section" id="hadqualifiedcontrol">
<h4><span class="secno">3.2.20 </span>hadQualifiedControl</h4>
<p>The hadQualifiedControl property links the Activity class with the Control class.</p>
<img src="diagrams/hadQualifiedControl.png" style="height: 3em" alt="hadQualifiedControl links Activity to Control">
<div class="anexample">
<div><b>Example</b></div>
<p> Example of hadQualifiedControl property from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> <i> act0 hadQualifiedControl c1</i>, where the hadRole describes the control of act0 by Alice as "creator". The RDF/XML syntax for asserting this is given below.</p>
<div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#act0">
<prov:hadQualifiedControl rdf:resource="http://www.example.com/crimeFile#c1"/>
</rdf:Description> </pre>
</div>
</div>
</div>
<div class="section" id="hadqualifiedgeneration">
<h4><span class="secno">3.2.21 </span>hadQualifiedGeneration</h4>
<p>The hadQualifiedGeneration property links the Activity class with the Generation class.</p>
<img src="diagrams/hadQualifiedGeneration.png" style="height: 3em" alt="hadQualifiedGeneration links Activity to Generation">
<div class="anexample">
<div><b>Example</b></div>
<p> Example of hadQualifiedGeneration property from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> <i> e1 hadQualifiedGeneration g1</i>, where the hadRole describes the generation of e1 by "save". The RDF/XML syntax for asserting this is given below.</p>
<div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#e1">
<prov:hadQualifiedGeneration rdf:resource="http://www.example.com/crimeFile#u1"/>
</rdf:Description> </pre>
</div>
</div>
</div>
<div class="section" id="hadqualifiedentity">
<h4><span class="secno">3.2.22 </span>hadQualifiedEntity</h4>
<p>The hadQualifiedEntity property links the QualifiedInvolvement class with the Entity class.</p>
<img src="diagrams/hadQualifiedEntity.png" style="height: 3em" alt="hadQualifiedInvolvement links QualifiedInvolvement to Entity">
<div class="anexample">
<div><b>Example</b></div>
<p> Example of hadQualifiedEntity property from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario"> provenance scenario </a> <i> u2 hadQualifiedEntity e2</i>, where the hadRole describes the usage of e2 as an "attachment". The RDF/XML syntax for asserting this is given below.</p>
<div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#u2">
<prov:hadQualifiedEntity rdf:resource="http://www.example.com/crimeFile#e2"/>
</rdf:Description> </pre>
</div>
</div>
</div>
</div>
<div class="section" id="characteristics-of-object-properties">
<h3><span class="secno">3.3 </span>Characteristics of Object Properties </h3>
<p>The table below summarizes the characteristics of the object properties that are defined in the OWL schema.
</p>
<table style="border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 0">
<tbody><tr>
<th style="border-style: solid; border-width: 0 1px 1px 0">
</th><th style="border-style: solid; border-width: 0 1px 1px 0"> Functional
</th><th style="border-style: solid; border-width: 0 1px 1px 0"> Reverse functional
</th><th style="border-style: solid; border-width: 0 1px 1px 0"> Transitive
</th><th style="border-style: solid; border-width: 0 1px 1px 0"> Symmetric
</th><th style="border-style: solid; border-width: 0 1px 1px 0">Asymmetric
</th><th style="border-style: solid; border-width: 0 1px 1px 0"> Reflexive
</th><th style="border-style: solid; border-width: 0 1px 1px 0"> Irreflexive
</th></tr>
<tr>
<td style="border-style: solid; border-width: 0 1px 1px 0"> wasControlledBy
</td><td style="border-style: solid; border-width: 0 1px 1px 0">No
</td><td style="border-style: solid; border-width: 0 1px 1px 0">No
</td><td style="border-style: solid; border-width: 0 1px 1px 0">?
</td><td style="border-style: solid; border-width: 0 1px 1px 0"> No
</td><td style="border-style: solid; border-width: 0 1px 1px 0">Yes
</td><td style="border-style: solid; border-width: 0 1px 1px 0">No
</td><td style="border-style: solid; border-width: 0 1px 1px 0">Yes
</td></tr>
<tr>
<td style="border-style: solid; border-width: 0 1px 1px 0"> wasDerivedFrom
</td><td style="border-style: solid; border-width: 0 1px 1px 0">No
</td><td style="border-style: solid; border-width: 0 1px 1px 0">No
</td><td style="border-style: solid; border-width: 0 1px 1px 0">Yes
</td><td style="border-style: solid; border-width: 0 1px 1px 0">No
</td><td style="border-style: solid; border-width: 0 1px 1px 0">Yes
</td><td style="border-style: solid; border-width: 0 1px 1px 0">No
</td><td style="border-style: solid; border-width: 0 1px 1px 0">Yes
</td></tr>
<tr>
<td style="border-style: solid; border-width: 0 1px 1px 0"> hadParticipant
</td><td style="border-style: solid; border-width: 0 1px 1px 0">No
</td><td style="border-style: solid; border-width: 0 1px 1px 0">No
</td><td style="border-style: solid; border-width: 0 1px 1px 0">?
</td><td style="border-style: solid; border-width: 0 1px 1px 0">No
</td><td style="border-style: solid; border-width: 0 1px 1px 0">Yes
</td><td style="border-style: solid; border-width: 0 1px 1px 0">No
</td><td style="border-style: solid; border-width: 0 1px 1px 0">Yes
</td></tr>
<tr>
<td style="border-style: solid; border-width: 0 1px 1px 0"> wasGeneratedBy
</td><td style="border-style: solid; border-width: 0 1px 1px 0">Yes
</td><td style="border-style: solid; border-width: 0 1px 1px 0">No
</td><td style="border-style: solid; border-width: 0 1px 1px 0">?
</td><td style="border-style: solid; border-width: 0 1px 1px 0">No
</td><td style="border-style: solid; border-width: 0 1px 1px 0">Yes
</td><td style="border-style: solid; border-width: 0 1px 1px 0">No
</td><td style="border-style: solid; border-width: 0 1px 1px 0">Yes
</td></tr>
<tr>
<td style="border-style: solid; border-width: 0 1px 1px 0"> used
</td><td style="border-style: solid; border-width: 0 1px 1px 0">No
</td><td style="border-style: solid; border-width: 0 1px 1px 0">No
</td><td style="border-style: solid; border-width: 0 1px 1px 0">?
</td><td style="border-style: solid; border-width: 0 1px 1px 0">No
</td><td style="border-style: solid; border-width: 0 1px 1px 0">Yes
</td><td style="border-style: solid; border-width: 0 1px 1px 0">No
</td><td style="border-style: solid; border-width: 0 1px 1px 0">Yes
</td></tr>
<tr>
<td style="border-style: solid; border-width: 0 1px 1px 0"> wasInformedBy
</td><td style="border-style: solid; border-width: 0 1px 1px 0">No
</td><td style="border-style: solid; border-width: 0 1px 1px 0">No
</td><td style="border-style: solid; border-width: 0 1px 1px 0">No
</td><td style="border-style: solid; border-width: 0 1px 1px 0">No
</td><td style="border-style: solid; border-width: 0 1px 1px 0">No
</td><td style="border-style: solid; border-width: 0 1px 1px 0">No
</td><td style="border-style: solid; border-width: 0 1px 1px 0">No
</td></tr>
<tr>
<td style="border-style: solid; border-width: 0 1px 1px 0"> wasScheduledAfter
</td><td style="border-style: solid; border-width: 0 1px 1px 0">No
</td><td style="border-style: solid; border-width: 0 1px 1px 0">No
</td><td style="border-style: solid; border-width: 0 1px 1px 0">Yes
</td><td style="border-style: solid; border-width: 0 1px 1px 0">No
</td><td style="border-style: solid; border-width: 0 1px 1px 0">Yes
</td><td style="border-style: solid; border-width: 0 1px 1px 0">No
</td><td style="border-style: solid; border-width: 0 1px 1px 0">Yes
</td></tr></tbody></table>
<div class="note">Some of the properties may be subject to discussion. In particular, regarding the object properties <i>wasControlledBy</i>, <i>wasGeneratedBy</i> and <i>used</i>, we did not specify whether they are transitive or not. One may argue that given that an agent can be a process execution, a process execution, e.g., <i>pe1</i>, can be controlled by an agent <i>pe2</i>, which happens to be a process execution that is controlled by an agent <i>ag</i>, and that, therefore, <i>ag</i> (indirectly) controls <i>pe1</i>. The same argument can be applied to <i>wasGeneratedBy</i> and <i>used</i>. That said, we are not convinced that these properties should be declared as transitive. In fact, we are more inclined towards specifying that they are not.</div>
</div>
<div class="section" id="annotation-properties">
<h3><span class="secno">3.4 </span>Annotation Properties</h3>
<p>The PROV ontology uses the OWL2 annotation properties to describe additional information about the PROV ontology classes, properties, individuals, and axioms. OWL2 defines nine annotation properties that are part of the OWL2 structural specification (see OWL2 Syntax document for additional details [<cite><a href="#bib-OWL2-SYNTAX" rel="biblioentry" class="bibref">OWL2-SYNTAX</a></cite>]):</p>
<ul>
<li><a href="http://www.w3.org/TR/2009/REC-owl2-syntax-20091027/#Annotation_Properties"><b>rdfs:label</b></a>- This property is used to associated a "human-readable label" with a term. For example, the class "<a href="#location">Location</a>" can be annotated with "Geo-spatial Location" label using rdfs:label</li>
<li><a href="http://www.w3.org/TR/2009/REC-owl2-syntax-20091027/#Annotation_Properties"><b>rdfs:comment</b></a>- This property is used to annotate ontology terms with a readable comment. For example, the class "<a href="#location">Location</a>" can be annotated with "This class represents an identifiable geographic place (ISO 19112)" comment using the rdfs:comment property</li>
<li><a href="http://www.w3.org/TR/2009/REC-owl2-syntax-20091027/#Annotation_Properties"><b>rdfs:seeAlso</b></a>- Provenance ontologies can use this property for referring to location of additional information, using an Internationalized Resource Identifier (IRI), associated with a provenance ontology resource. For example, a PROV ontology term can refer users to the PROV Data Model for a descriptive specification</li>
<li><a href="http://www.w3.org/TR/2009/REC-owl2-syntax-20091027/#Annotation_Properties"><b>rdfs:isDefinedBy</b></a>- Information related to the definition of a term can be provided by a PROV ontology term using this property</li>
<li><a href="http://www.w3.org/TR/2009/REC-owl2-syntax-20091027/#Annotation_Properties"><b>owl:deprecated</b></a>- In many cases, domain-specific provenance ontologies will replace or remove certain ontology terms. These terms can be labeled using this property (with value set to be "true^^xsd:boolean")</li>
<li><a href="http://www.w3.org/TR/2009/REC-owl2-syntax-20091027/#Annotation_Properties"><b>olw:versionInfo</b></a>- This property is used to associate a version information with ontology terms. For example, the current version of the PROV ontology is version "1.0"</li>
<li><a href="http://www.w3.org/TR/2009/REC-owl2-syntax-20091027/#Annotation_Properties"><b>owl:priorVersion</b></a>- This property allows provenance applications to locate previous version of ontology terms. For example, the PROV ontology can identify a previous version "0.1" using this property</li>
<li><a href="http://www.w3.org/TR/2009/REC-owl2-syntax-20091027/#Annotation_Properties"><b>owl:backwardCompatibleWith</b></a>- Provenance ontologies can specify previous version of the ontology that are compatible with the current version of the ontology using this property</li>
<li><a href="http://www.w3.org/TR/2009/REC-owl2-syntax-20091027/#Annotation_Properties"><b>owl:incompatibleWith</b></a>- Similar to the previous property, this property allows provenance applications to identify incompatible version of provenance ontologies.</li>
</ul>
<p>Additional annotation properties can be defined by provenance ontologies, but unlike the OWL2 annotation properties, these custom annotation properties may not be interpreted in a standard manner across different provenance applications.
</p>
<div class="note"> Is there a need to define standard provenance-specific annotation properties?
</div>
</div>
<div class="section" id="overview-of-the-ontology">
<h3><span class="secno">3.5 </span>Overview of the ontology</h3>
<p>The following diagram illustrates the complete PROV ontology except for <code>QualifiedInvolvement</code> which is detailed in the <a href="#overview-of-qualified-involvement">subsection on Qualified Involvement</a> below. </p>
<img src="diagrams/ProvenanceOntology.png" style="min-width: 45em; width: 55em; max-width: 95%" alt="Classes and properties of the PROV ontology">
</div>
<div class="section" id="overview-of-qualified-involvement">
<h3><span class="secno">3.6 </span>Overview of Qualified Involvement</h3>
<p>The <a href="#qualifiedinvolvement">QualifiedInvolvement</a> class describes qualifying information on the PROV-O properties, namely <a href="#used">used</a>, <a href="#wasgeneratedby">wasGeneratedBy</a>, <a href="#wascontrolledby">wasControlledBy</a>, and <a href="#hadparticipant">hadParticipant</a>. The following figure illustrates the representation of qualifying information using these PROV-O classes and properties.</p>
<img src="diagrams/QualifiedInvolvementDiagram.png" style="min-width: 45em; width: 55em; max-width: 95%" alt="Classes and properties of qualified involvement in the PROV ontology">
</div>
</div>
<div class="informative section" id="specializing-provenance-ontology-for-domain-specific-provenance-applications">
<!--OddPage--><h2><span class="secno">4. </span>Specializing the PROV Ontology for Domain-specific Provenance Applications</h2><p><em>This section is non-normative.</em></p>
<p>The PROV Ontology does not include all the provenance terms that are required by different application to model provenance information. For example, the classes and properties to model provenance information in the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario">provenance scenario</a>, such as "Journalist" or "FileEditing", are not part of the PROV ontology. This is a deliberate design choice for PROV ontology, since modeling provenance terms for a variety of domain applications in a single ontology is impractical. Hence, the PROV Ontology is conceived as an ontology that can be extended by various domain-specific applications to model the required set of provenance terms. The PROV Ontology classes and properties can be specialized using the following two RDFS properties:</p>
<ul>
<li><i>rdfs:subClassOf</i>: The property rdfs:subClassOf is an instance of rdf:Property that is used to state that all the instances of one class are instances of another [<cite><a href="#bib-RDF-SCHEMA" rel="biblioentry" class="bibref">RDF-SCHEMA</a></cite>]</li>
<li><i>rdfs:subPropertyOf</i>: "A rdfs:subPropertyOf axiom defines that the property is a subproperty of some other property" [<cite><a href="#bib-RDF-SCHEMA" rel="biblioentry" class="bibref">RDF-SCHEMA</a></cite>]</li>
</ul>
<p>A new provenance ontology can be created to model the classes and properties required by an application to represent its domain-specific provenance terms. The new provenance ontology, for the given application, is also expected to include all the PROV Ontology classes and properties, which will facilitate provenance exchange through a common set of terms.</p>
<p>The following are a few example classes from the <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/#a-file-scenario">provenance scenario</a> that are created by specializing PROV Ontology classes:
</p><ul>
<li>The <a href="#agent">Agent</a> class can be specialized to define a class called Journalist, which has individuals such as alice, bob, and edith </li>
<li>Similarly, the <a href="#activity">Activity</a> class can be specialized to define classes called FileCreation, FileAppending, and FileEditing </li>
</ul>
The [<cite><a href="#bib-PROV-BestPractices" rel="biblioentry" class="bibref">PROV-BestPractices</a></cite>] document describes in detail the approach used to model provenance information in two domain-specific examples by specializing the PROV Ontology.<p></p>
</div>
<div class="section" id="formal-semantics-of-the-prov-ontology">
<!--OddPage--><h2><span class="secno">5. </span>Formal Semantics of the PROV Ontology</h2>
<p>The PROV ontology uses OWL2 as the ontology language, hence it supports a set of entailments based on the standard RDF semantics [<cite><a href="#bib-RDF-MT" rel="biblioentry" class="bibref">RDF-MT</a></cite>] and OWL2 semantics ([<cite><a href="#bib-OWL2-DIRECT-SEMANTICS" rel="biblioentry" class="bibref">OWL2-DIRECT-SEMANTICS</a></cite>], [<cite><a href="#bib-OWL2-RDF-BASED-SEMANTICS" rel="biblioentry" class="bibref">OWL2-RDF-BASED-SEMANTICS</a></cite>]). In this section, we describe these set of semantics as applied to the PROV ontology along with a set of constraints introduced in the PROV-DM [<cite><a href="#bib-PROV-DM" rel="biblioentry" class="bibref">PROV-DM</a></cite>] that are provenance-specific. It is intended that provenance applications can leverage this normative description of the formal semantics of PROV ontology to support:</p>
<ul>
<li><b>Automated consistency checking </b>of provenance assertions (in RDF): Any RDF graph generated to represent provenance information using the PROV ontology as schema can be automatically checked for consistency using reasoning tool, such as FaCT++, Pellet, and Racer among others.</li>
<li><b>Inferencing</b>: Make implicit knowledge explicit from RDF-encoded provenance datasets using valid entailment rules</li>
</ul>
<div class="section" id="rdf-semantics-for-prov-ontology">
<h3><span class="secno">5.1 </span>RDF Semantics for PROV Ontology</h3>
<p> We briefly summarize the essential features of the RDF Semantics and refer to the RDF semantics [<cite><a href="#bib-RDF-MT" rel="biblioentry" class="bibref">RDF-MT</a></cite>] for the normative specification. The RDF Semantics uses model theory, with a notion of interpretation I defined over RDF (rdf-interpretation) or RDFS (rdfs-interpretation) vocabulary, for specifying the formal semantics of a RDF or RDFS graph [<cite><a href="#bib-RDF-MT" rel="biblioentry" class="bibref">RDF-MT</a></cite>]. The rdf-interpretation is an interpretation that satisfies a set of constraints called "<i>RDF semantic conditions</i>" and a set of "<i>RDF axiomatic triples</i>" (see Section 3.1 of RDF Semantics [<cite><a href="#bib-RDF-MT" rel="biblioentry" class="bibref">RDF-MT</a></cite>]). The rdfs-interpretation is defined over the additional terms in the RDFS vocabulary, including <i>rdfs:domain</i>, <i>rdfs:range</i>, <i>rdfs:Class</i>, <i>rdfs:subClassOf</i>, and <i>rdfs:subPropertyOf</i>. An rdfs-interpretation satisfies a set of constraints called "<i>RDFS semantic conditions</i>" and "<i>RDFS axiomatic triples</i>" (see Section 4.1 of RDFS Semantics [<cite><a href="#bib-RDF-MT" rel="biblioentry" class="bibref">RDF-MT</a></cite>]).
</p>
<p>The rdfs-interpretation supports the following set of the entailment rules that are applicable to the PROV ontology (we do not discuss the simple RDF entailments):
</p>
<h4 id="rule-1">Rule 1</h4>
<p>If a PROV ontology class X is defined to be <i>domain</i> of a PROV property, then an individual asserted as "subject" of that property in a RDF triple is an instance of the class X. (from rdf2 Rule defined in RDF Semantics)
</p>
<h4 id="rule-2">Rule 2</h4>
<p>Similar to Rule 1, if a PROV ontology class Y is defined to be <i>range</i> of a PROV object property, then an individual asserted as "object" of that property in a RDF triple is an instance of the class Y. (from rdf3 Rule defined in RDF Semantics)
</p>
<h4 id="rule-3">Rule 3</h4>
<p>Both the <code>rdfs:subClassOf</code> and <code>rdfs:subPropertyOf</code> are transitive properties, hence provenance assertions, in form of RDF triples, using a specialized sub class or sub property can be inferred to be true for their parent class or parent property. For example, in the provenance scenario, though alice and bob are asserted to be individuals of the class Journalist, we can infer that they are also individuals of the PROV ontology class Agent and Entity.
</p><div class="anexample">Given,
<p></p>
<div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#Alice">
<rdf:type rdf:resource="http://www.example.com/crime#Journalist"/>
</rdf:Description></pre>
</div>
<p>and</p>
<div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crime#Journalist">
<rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov-o/Agent"/>
</rdf:Description>
<rdf:Description rdf:about="http://www.w3.org/ns/prov-o/Agent">
<rdfs:subClassOf rdf:resource="http://www.w3.org/ns/prov-o/Entity"/>
</rdf:Description></pre>
</div>
<p>we can infer the following</p>
<div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#Alice">
<rdf:type rdf:resource="http://www.w3.org/ns/prov-o/Agent"/>
</rdf:Description></pre>
</div>
<p>and</p>
<div class="exampleOuter">
<pre class="example"><rdf:Description rdf:about="http://www.example.com/crimeFile#Alice">
<rdf:type rdf:resource="http://www.w3.org/ns/prov-o/Entity"/>
</rdf:Description></pre>
</div>
</div>
</div>
<div class="section" id="owl2-semantics-for-prov-ontology">
<h3><span class="secno">5.2 </span>OWL2 Semantics for PROV Ontology</h3>
<p>In addition to RDF Semantics, the OWL2 semantics as described in [<cite><a href="#bib-OWL2-DIRECT-SEMANTICS" rel="biblioentry" class="bibref">OWL2-DIRECT-SEMANTICS</a></cite>], [<cite><a href="#bib-OWL2-RDF-BASED-SEMANTICS" rel="biblioentry" class="bibref">OWL2-RDF-BASED-SEMANTICS</a></cite>] are also applicable to PROV ontology. We consider the OWL2 RDF-Based Semantics (since it is a semantics superset of OWL2 Direct Semantics) and specifically the extension of the D-interpretation, which satisfies the constraints for rdf-interpretation, rdfs-interpretation (as defined in previous section), graphs with blank nodes, and interpretation defined for RDF datatypes (see Section 5.1 in RDF Semantics [<cite><a href="#bib-RDF-MT" rel="biblioentry" class="bibref">RDF-MT</a></cite>]). The OWL2 RDF-based semantics introduces the notion of "facets" to constrain datatypes, both the rdf:XMLLiteral defined in the RDF Semantics [<cite><a href="#bib-RDF-MT" rel="biblioentry" class="bibref">RDF-MT</a></cite>] and datatypes defined in the OWL2 Structural Specifications [<cite><a href="#bib-OWL2-SYNTAX" rel="biblioentry" class="bibref">OWL2-SYNTAX</a></cite>]. The OWL2 RDF-based interpretation, also called <b>D-interpretation with facets</b> is a D-interpretation that also satisfies the OWL2 RDF-based semantics called "semantic constraints" (see Section 5 in OWL2 RDF-Based Semantics [<cite><a href="#bib-OWL2-RDF-BASED-SEMANTICS" rel="biblioentry" class="bibref">OWL2-RDF-BASED-SEMANTICS</a></cite>]).
</p>
</div>
<div class="section" id="entailments-supported-by-the-provenance-model">
<h3><span class="secno">5.3 </span>Provenance-specific Entailments Supported by PROV Ontology</h3>
<p>The PROV-DM [<cite><a href="#bib-PROV-DM" rel="biblioentry" class="bibref">PROV-DM</a></cite>] introduces a set of provenance-specific constraints. These provenance constraints will be modeled in PROV ontology as OWL axioms or as rules using the Rule Interchange Framework (RIF) [<cite><a href="#bib-RIF-OVERVIEW" rel="biblioentry" class="bibref">RIF-OVERVIEW</a></cite>]. These constraints are expected to be used by provenance applications in addition to the PROV ontology file.</p>
<div class="note"> The provenance-specific constraints are currently under review and discussion. Individual constraints will be added to the PROV ontology or as RIF rules after the relevant issues are resolved. The provenance constraints will be progressively added to this section as the related issues are resolved.
</div>
</div>
</div>
<!-- <section class="appendix">
<h2>Provenance-specific Constraints</h2>
<p>This section lists the provenance-specific constraints introduced by the PROV-DM [[PROV-DM]], but are still under discussion.
<section id="provenance-constraint-on-activity">
<h4>Provenance constraint on Activity</h4>
<p>The PROV-DM describes a constraint on ordering of time (or event) associated with a <a href="#activity">Activity.</a> </p>
<div class='issue'>"From a process execution expression, one can infer that the start event precedes the end event of the represented activity." This is <a href="http://www.w3.org/2011/prov/track/issues/121">ISSUE-121</a></div>
</section>
<section id="provenance-constraint-on-wasgeneratedby-generation-affects-attributes">
<h4>Provenance constraint on wasGeneratedBy (generation-affects-attributes)</h4>
<p>The PROV-DM describes a constraint on wasGeneratedBy that associates the values of attributes of an Entity with the Activity that generated the Entity.</p>
<div class='issue'>"Given a process execution act, entity e, role r, and optional time t, if the assertion wasGeneratedBy(e,pe,r) or wasGeneratedBy(e,pe,r,t) holds, the values of some of e's attributes are determined by the activity denoted by act and the entities used by act. Only some (possibly none) of the attributes values may be determined since, in an open world, not all used entities may have been asserted." This is <a href="http://www.w3.org/2011/prov/track/issues/122">ISSUE-122 </a> and <a href="http://www.w3.org/2011/prov/track/issues/105">ISSUE-105</a></div>
</section>
<section id="provenance-constraint-on-wasgeneratedby-generation-pe-ordering">
<h4>Provenance constraint on wasGeneratedBy (generation-pe-ordering)</h4>
<p>The second constraint on wasGeneratedBy associates an ordering of events associated with the generation of an Entity instance and the start, end time or event of theActivityinstance.</p>
<div class='note'> Without an explicit association of <a href="#time">TemporalEntity</a> with the <a href="#entity">Entity</a> instance and <a href="#activity">PE</a> instance, it is not possible to state or enforce this constraint in the PROV ontology schema and the corresponding RDF dataset.
</div>
</section>
<section id="provenance-constraint-on-wasgeneratedby-generation-unicity">
<h4>Provenance constraint on wasGeneratedBy (generation-unicity)</h4>
<p>The PROV-DM describes a constraint on wasGeneratedBy that asserts that given an account, only oneActivityinstance can be associated to an Entity instance by the property wasGeneratedBy.</p>
<div class='issue'>"Given an entity expression denoted by e, two process execution expressions denoted by act1 and act2, and two qualifiers q1 and q2, if the expressions wasGeneratedBy(e,pe1,q1) and wasGeneratedBy(e,pe2,q2) exist in the scope of a given account, then act1=act2 and q1=q2." This is <a href="http://www.w3.org/2011/prov/track/issues/105">ISSUE-105</a></div>
</section>
<section id ="provenance-constraint-on-used-use-attributes">
<h4>Provenance constraint on Used (use-attributes)</h4>
<p>A constraint is defined for the Used relation in PROV-DM, that makes it necessary for an attribute-value to be true for an Entity instance linked to a Activity instance by relation Used.
</p>
<div class='issue'>"Given a process execution expression identified by act, an entity expression identified by e, a qualifier q, and optional time t, if assertion used(pe,e,q) or used(pe,e,q,t) holds, then the existence of an attribute-value pair in the entity expression identified by e is a pre-condition for the termination of the activity represented by the process execution expression identified by act." This is <a href="http://www.w3.org/2011/prov/track/issues/124">ISSUE-124</a></div>
</section>
<section id ="provenance-constraint-on-used-pe-ordering">
<h4>Provenance constraint on Used (use-pe-ordering)</h4>
<p>The PROV-DM describes a constraint for Used relation, which makes it necessary for an Entity instance e (linked to a Activity instance act by Used relation) to be "used" before act terminates and also the "generation" of e precedes "use" of e.
</p>
<div class='issue'>"Given a process execution expression identified by act, an entity expression identified by e, a qualifier q, and optional time t, if assertion used(pe,e,q) or used(pe,e,q,t) holds, then the use of the thing represented by entity expression identified by e precedes the end time contained in the process execution expression identified by act and follows its beginning. Furthermore, the generation of the thing denoted by entity expression identified by e always precedes its use." This is <a href="http://www.w3.org/2011/prov/track/issues/124">ISSUE-124</a></div>
</section>
<section id ="provenance-constraint-on-derivation-attributes">
<h4>Provenance constraint on wasDerivedFrom (derivation-attributes)</h4>
<p>The PROV-DM describes a constraint for asserting wasDerivedFrom property between two Entity instances if some attributes of an Entity instance are partially or fully determined by attributes values of the other Entity instance.
</p>
<div class='issue'>"Given a process execution expression denoted by act, entity expressions denoted by e1 and e2, qualifiers q1 and q2, the assertion wasDerivedFrom(e2,e1,pe,q2,q1) or wasDerivedFrom(e2,e1) holds if and only if the values of some attributes of the entity expression identified by e2 are partly or fully determined by the values of some attributes of the entity expression identified by e1." This is <a href="http://www.w3.org/2011/prov/track/issues/125">ISSUE-125</a></div>
</section>
<section id ="provenance-constraint-on-derivation-use-generation-ordering">
<h4>Provenance constraint on wasDerivedFrom (derivation-use-generation-ordering)</h4>
<p>The PROV-DM describes a constraint that if wasDerivedFrom property is asserted between two Entity instances e1 and e2, that is wasDerivedFrom (e2, e1), then the for time instant t1 associated with aActivityinstance that "used" is less than the time instant t2 associated with "generation" of e2.
</p>
<div class='note'> Without an explicit association of <a href="#time">TemporalEntity</a> with the <a href="#entity">Entity</a> instance and <a href="#activity">PE</a> instance, it is not possible to state or enforce this constraint in the PROV ontology schema and the corresponding RDF dataset.
</div>
</section>
<section id ="provenance-constraint-on-derivation-events">
<h4>Provenance constraint on wasDerivedFrom (derivation-events)</h4>
<p>The PROV-DM describes a constraint that if wasDerivedFrom property is asserted between two Entity instances e1 and e2, that is wasDerivedFrom (e2, e1, act), then wasGeneratedBy(e2, act) and used(pe, e1) can also be asserted.
</p>
<div class='note'> Since the above constraint defined in PROV-DM does not define how act is linked to the derivation of e2 from e1, this constraint can be supported in the "opposite" direction in PROV-O. In other words, given e2 was generated at time instant t2 by act and act used e1 at time instant t1 and t1 is less than t2, then we can assert that wasDerivedFrom(e2, e1).
</div>
</section>
<section id ="provenance-constraint-on-derivation-process-execution">
<h4>Provenance constraint on wasDerivedFrom (derivation-events)</h4>
<p>The PROV-DM describes a constraint that if wasDerivedFrom property is asserted between two Entity instances e1 and e2, then there exists someActivityinstance such that wasGeneratedBy(e2, act) and used(pe, e1) can also be asserted.
</p>
<div class='note'> This constraint is a re-statement of the generic Semantic Web "open-world assumption". Hence, it is not mapped to PROV ontology.
</div>
</section>
<section id ="provenance-constraint-on-derivation-use">
<h4>Provenance constraint on wasDerivedFrom (derivation-use)</h4>
<p>The PROV-DM describes a constraint that if wasDerivedFrom property is asserted between two Entity instances e1 and e2, and wasGeneratedBy(e2, act) is also asserted then Used(pe, e1) can also be asserted.
</p>
<div class='note'> This will be asserted as a rule.
</div>
</section>
<section id ="provenance-constraint-on-derivation-generation-generation-ordering">
<h4>Provenance constraint on wasEventuallyDerivedFrom (derivation-generation-generation-ordering)</h4>
<p>The PROV-DM describes a constraint that if wasEventuallyDerivedFrom property is asserted between two Entity instances e1 and e2, then generation of e1 occurred before generation of e2.
</p>
<div class='note'> Without an explicit association of <a href="#time">TemporalEntity</a> (or event) with the <a href="#entity">Entity</a> instance and <a href="#activity">PE</a> instance, it is not possible to state or enforce this constraint in the PROV ontology schema and the corresponding RDF dataset.
</div>
</section>
<section id ="provenance-constraint-on-derivation-linked-independent">
<h4>Provenance constraint on wasEventuallyDerivedFrom (derivation-linked-independent)</h4>
<p>The PROV-DM describes a constraint that if wasDerivedFrom property is asserted between two Entity instances e1 and e2, then wasEventuallyDerivedFrom property can also be asserted between the two Entity instances.
</p>
<div class='note'> Is this an equivalence constraint or can we assert a subPropertyOf property between wasDerivedFrom and wasEventuallyFrom?
</div>
</section>
<section id ="provenance-constraint-on-complementof-necessary-cond">
<h4>Provenance constraint on wasComplementOf (wasComplementOf-necessary-cond)</h4>
<p>The PROV-DM describes a constraint that wasComplementOf property holds between two entities over a temporal intersection of the two entities.
</p>
<div class='note'> Without an explicit association of time value, this constraint cannot be stated or enforced in PROV ontology.
</div>
</section>
<section id ="provenance-constraint-on-hasParticipant-participant">
<h4>Provenance constraint on hadParticipant (participant)</h4>
<p>The PROV-DM describes a constraint that hadParticipant property holds between an instance of Entity and instance of Activity if the two instances are linked by "used" of "wasControlledBy" or "wasComplementOf".
</p>
<div class='issue'> "Given two identifiers act and e, respectively identifying a process execution expression and an entity expression, the expression hadParticipant(pe,e) holds if and only if:
*used(pe,e) holds, or
*wasControlledBy(pe,e) holds, or
*wasComplementOf(e1,e) holds for some entity expression identified by e1, and hadParticipant(pe,e1) holds some process execution expression identified by act." This is <a href="http://www.w3.org/2011/prov/track/issues/127">ISSUE-127</a>
</div>
</section>
</section>
-->
<div id="acknowledgements" class="appendix section">
<!--OddPage--><h2><span class="secno">A. </span>Acknowledgements</h2>
<p>
The Provenance Working Group Members.
</p>
</div>
<div class="appendix section" id="references"><!--OddPage--><h2><span class="secno">B. </span>References</h2><div class="section" id="normative-references"><h3><span class="secno">B.1 </span>Normative references</h3><dl class="bibliography"><dt id="bib-OWL-TIME">[OWL-TIME]</dt><dd>Feng Pan; Jerry R. Hobbs. <a href="http://www.w3.org/TR/2006/WD-owl-time-20060927"><cite>Time Ontology in OWL.</cite></a> 27 September 2006. W3C Working Draft. (Work in progress.) URL: <a href="http://www.w3.org/TR/2006/WD-owl-time-20060927">http://www.w3.org/TR/2006/WD-owl-time-20060927</a>
</dd><dt id="bib-OWL2-DIRECT-SEMANTICS">[OWL2-DIRECT-SEMANTICS]</dt><dd>Boris Motik; Peter F. Patel-Schneider; Bernardo Cuenca Grau. <a href="http://www.w3.org/TR/2009/REC-owl2-direct-semantics-20091027/"><cite>OWL 2 Web Ontology Language:Direct Semantics.</cite></a> 27 October 2009. W3C Recommendation. URL: <a href="http://www.w3.org/TR/2009/REC-owl2-direct-semantics-20091027/">http://www.w3.org/TR/2009/REC-owl2-direct-semantics-20091027/</a>
</dd><dt id="bib-OWL2-PRIMER">[OWL2-PRIMER]</dt><dd>Pascal Hitzler; Markus Krötzsch; Bijan Parsia; Peter F. Patel-Schneider; Sebastian Rudolph. <a href="http://www.w3.org/TR/2009/REC-owl2-primer-20091027/"><cite>OWL 2 Web Ontology Language:Primer.</cite></a> 27 October 2009. W3C Recommendation. URL: <a href="http://www.w3.org/TR/2009/REC-owl2-primer-20091027/">http://www.w3.org/TR/2009/REC-owl2-primer-20091027/</a>
</dd><dt id="bib-OWL2-RDF-BASED-SEMANTICS">[OWL2-RDF-BASED-SEMANTICS]</dt><dd>Michael Schneider. <a href="http://www.w3.org/TR/2009/REC-owl2-rdf-based-semantics-20091027/"><cite>OWL 2 Web Ontology Language:RDF-Based Semantics.</cite></a> 27 October 2009. W3C Recommendation. URL: <a href="http://www.w3.org/TR/2009/REC-owl2-rdf-based-semantics-20091027/">http://www.w3.org/TR/2009/REC-owl2-rdf-based-semantics-20091027/</a>
</dd><dt id="bib-OWL2-SYNTAX">[OWL2-SYNTAX]</dt><dd>Boris Motik; Peter F. Patel-Schneider; Bijan Parsia. <a href="http://www.w3.org/TR/2009/REC-owl2-syntax-20091027/"><cite>OWL 2 Web Ontology Language:Structural Specification and Functional-Style Syntax.</cite></a> 27 October 2009. W3C Recommendation. URL: <a href="http://www.w3.org/TR/2009/REC-owl2-syntax-20091027/">http://www.w3.org/TR/2009/REC-owl2-syntax-20091027/</a>
</dd><dt id="bib-RDF-MT">[RDF-MT]</dt><dd>Patrick Hayes. <a href="http://www.w3.org/TR/2004/REC-rdf-mt-20040210"><cite>RDF Semantics.</cite></a> 10 February 2004. W3C Recommendation. URL: <a href="http://www.w3.org/TR/2004/REC-rdf-mt-20040210">http://www.w3.org/TR/2004/REC-rdf-mt-20040210</a>
</dd><dt id="bib-RDF-PRIMER">[RDF-PRIMER]</dt><dd>Frank Manola; Eric Miller. <a href="http://www.w3.org/TR/2004/REC-rdf-primer-20040210/"><cite>RDF Primer.</cite></a> 10 February 2004. W3C Recommendation. URL: <a href="http://www.w3.org/TR/2004/REC-rdf-primer-20040210/">http://www.w3.org/TR/2004/REC-rdf-primer-20040210/</a>
</dd><dt id="bib-RDF-SCHEMA">[RDF-SCHEMA]</dt><dd>Dan Brickley; Ramanathan V. Guha. <a href="http://www.w3.org/TR/2004/REC-rdf-schema-20040210"><cite>RDF Vocabulary Description Language 1.0: RDF Schema.</cite></a> 10 February 2004. W3C Recommendation. URL: <a href="http://www.w3.org/TR/2004/REC-rdf-schema-20040210">http://www.w3.org/TR/2004/REC-rdf-schema-20040210</a>
</dd><dt id="bib-RFC2119">[RFC2119]</dt><dd>S. Bradner. <a href="http://www.ietf.org/rfc/rfc2119.txt"><cite>Key words for use in RFCs to Indicate Requirement Levels.</cite></a> March 1997. Internet RFC 2119. URL: <a href="http://www.ietf.org/rfc/rfc2119.txt">http://www.ietf.org/rfc/rfc2119.txt</a>
</dd><dt id="bib-RIF-OVERVIEW">[RIF-OVERVIEW]</dt><dd>Michael Kifer; Harold Boley. <a href="http://www.w3.org/TR/2010/NOTE-rif-overview-20100622/"><cite>RIF Overview.</cite></a> 22 June 2010. W3C Working Group Note. URL: <a href="http://www.w3.org/TR/2010/NOTE-rif-overview-20100622/">http://www.w3.org/TR/2010/NOTE-rif-overview-20100622/</a>
</dd><dt id="bib-XMLSCHEMA-2">[XMLSCHEMA-2]</dt><dd>Paul V. Biron; Ashok Malhotra. <a href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/"><cite>XML Schema Part 2: Datatypes Second Edition.</cite></a> 28 October 2004. W3C Recommendation. URL: <a href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/">http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/</a>
</dd></dl></div><div class="section" id="informative-references"><h3><span class="secno">B.2 </span>Informative references</h3><dl class="bibliography"><dt id="bib-PROV-BestPractices">[PROV-BestPractices]</dt><dd>Stian Soiland-Reyes <a href="http://dvcs.w3.org/hg/prov/raw-file/tip/bestpractices/BestPractices.html"><cite>PROV Best Practices</cite></a>. 2011, Work in progress. URL: <a href="http://dvcs.w3.org/hg/prov/raw-file/tip/bestpractices/BestPractices.html">http://dvcs.w3.org/hg/prov/tip/bestpracties/BestPractices.html</a>
</dd><dt id="bib-PROV-DM">[PROV-DM]</dt><dd>Luc Moreau, Paolo Missier<a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/"><cite>The PROV Data Model and Abstract Syntax Notation</cite></a>. 18 October 2011. W3C Working Draft. (Work in progress.) URL: <a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018/">http://www.w3.org/TR/2011/WD-prov-dm-20111018/</a>
</dd><dt id="bib-PROV-Ontology-Namespace">[PROV-Ontology-Namespace]</dt><dd>TBD<a href="http://www.w3.org/ns/prov-o/"><cite>PROV Ontology Namespace</cite></a>. 2011, Work in progress. URL: <a href="http://www.w3.org/ns/prov-o/">http://www.w3.org/ns/prov-o/</a>
</dd><dt id="bib-PROV-PAQ">[PROV-PAQ]</dt><dd>Graham Klyne and Paul Groth <a href="http://dvcs.w3.org/hg/prov/raw-file/tip/paq/prov-aq.html"><cite>Provenance Access and Query</cite></a>. 2011, Work in progress. URL: <a href="http://dvcs.w3.org/hg/prov/raw-file/tip/paq/prov-aq.html">http://dvcs.w3.org/hg/prov/tip/paq/prov-aq.html</a>
</dd></dl></div></div></body></html>