rdf-vocab 0.8.8 → 2.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rdf/vocab.rb +160 -61
  3. data/lib/rdf/vocab/acl.rb +6 -1
  4. data/lib/rdf/vocab/bibframe.rb +83 -78
  5. data/lib/rdf/vocab/bibo.rb +255 -248
  6. data/lib/rdf/vocab/cc.rb +132 -0
  7. data/lib/rdf/vocab/cert.rb +249 -0
  8. data/lib/rdf/vocab/cnt.rb +23 -18
  9. data/lib/rdf/vocab/crm.rb +12 -7
  10. data/lib/rdf/vocab/datacite.rb +88 -83
  11. data/lib/rdf/vocab/dc.rb +952 -0
  12. data/lib/rdf/vocab/dc11.rb +171 -0
  13. data/lib/rdf/vocab/dcat.rb +218 -0
  14. data/lib/rdf/vocab/dcmitype.rb +80 -75
  15. data/lib/rdf/vocab/doap.rb +341 -0
  16. data/lib/rdf/vocab/dwc.rb +1651 -1646
  17. data/lib/rdf/vocab/ebucore.rb +122 -117
  18. data/lib/rdf/vocab/edm.rb +102 -97
  19. data/lib/rdf/vocab/exif.rb +945 -0
  20. data/lib/rdf/vocab/extensions.rb +1 -0
  21. data/lib/rdf/vocab/fcrepo4.rb +62 -57
  22. data/lib/rdf/vocab/foaf.rb +618 -0
  23. data/lib/rdf/vocab/geo.rb +161 -0
  24. data/lib/rdf/vocab/geonames.rb +2742 -2737
  25. data/lib/rdf/vocab/gr.rb +1505 -0
  26. data/lib/rdf/vocab/ht.rb +240 -0
  27. data/lib/rdf/vocab/hydra.rb +96 -91
  28. data/lib/rdf/vocab/iana.rb +5 -0
  29. data/lib/rdf/vocab/ical.rb +532 -0
  30. data/lib/rdf/vocab/identifiers.rb +203 -182
  31. data/lib/rdf/vocab/iiif.rb +51 -26
  32. data/lib/rdf/vocab/jsonld.rb +15 -10
  33. data/lib/rdf/vocab/ldp.rb +66 -61
  34. data/lib/rdf/vocab/lrmi.rb +68 -63
  35. data/lib/rdf/vocab/ma.rb +517 -0
  36. data/lib/rdf/vocab/mads.rb +448 -206
  37. data/lib/rdf/vocab/marc_relators.rb +1240 -1235
  38. data/lib/rdf/vocab/mo.rb +2416 -0
  39. data/lib/rdf/vocab/mods.rb +17 -12
  40. data/lib/rdf/vocab/nfo.rb +65 -60
  41. data/lib/rdf/vocab/oa.rb +91 -86
  42. data/lib/rdf/vocab/og.rb +226 -0
  43. data/lib/rdf/vocab/ogc.rb +62 -0
  44. data/lib/rdf/vocab/ore.rb +24 -19
  45. data/lib/rdf/vocab/org.rb +83 -78
  46. data/lib/rdf/vocab/pplan.rb +54 -49
  47. data/lib/rdf/vocab/premis.rb +470 -465
  48. data/lib/rdf/vocab/premis_event_type.rb +85 -80
  49. data/lib/rdf/vocab/prov.rb +1554 -0
  50. data/lib/rdf/vocab/ptr.rb +5 -0
  51. data/lib/rdf/vocab/rsa.rb +76 -0
  52. data/lib/rdf/vocab/rss.rb +70 -0
  53. data/lib/rdf/vocab/schema.rb +10765 -0
  54. data/lib/rdf/vocab/sioc.rb +673 -0
  55. data/lib/rdf/vocab/sioc_services.rb +27 -22
  56. data/lib/rdf/vocab/skos.rb +242 -0
  57. data/lib/rdf/vocab/skosxl.rb +61 -0
  58. data/lib/rdf/vocab/v.rb +387 -0
  59. data/lib/rdf/vocab/vcard.rb +845 -0
  60. data/lib/rdf/vocab/version.rb +1 -0
  61. data/lib/rdf/vocab/vmd.rb +387 -0
  62. data/lib/rdf/vocab/void.rb +190 -0
  63. data/lib/rdf/vocab/vs.rb +32 -0
  64. data/lib/rdf/vocab/wdrs.rb +138 -0
  65. data/lib/rdf/vocab/wot.rb +171 -0
  66. data/lib/rdf/vocab/xhtml.rb +12 -0
  67. data/lib/rdf/vocab/xhv.rb +509 -0
  68. data/spec/spec_helper.rb +1 -0
  69. data/spec/vocab_spec.rb +1 -0
  70. metadata +76 -33
  71. data/lib/rdf/vocab/disco.rb +0 -369
@@ -1,146 +1,151 @@
1
1
  # -*- encoding: utf-8 -*-
2
+ # frozen_string_literal: true
2
3
  # This file generated automatically using vocab-fetch from http://purl.org/net/p-plan#
3
4
  require 'rdf'
4
5
  module RDF::Vocab
6
+ # @!parse
7
+ # # Vocabulary for <http://purl.org/net/p-plan#>
8
+ # class PPLAN < RDF::StrictVocabulary
9
+ # end
5
10
  class PPLAN < RDF::StrictVocabulary("http://purl.org/net/p-plan#")
6
11
 
7
12
  # Class definitions
8
13
  term :Activity,
9
14
  comment: %(A p-plan:Activity represents the execution process planned in a p-plan:Step).freeze,
10
15
  label: "Activity".freeze,
11
- "rdfs:isDefinedBy" => %(pplan:).freeze,
16
+ :"rdfs:isDefinedBy" => %(pplan:).freeze,
12
17
  subClassOf: "prov:Activity".freeze,
13
18
  type: "owl:Class".freeze
14
19
  term :Bundle,
15
20
  label: "Bundle".freeze,
16
- "prov:definition" => %(A p-plan:Bundle is a specific type of prov:Bundle that contains the provenance assertions of the execution of a p-plan:Plan).freeze,
17
- "rdfs:isDefinedBy" => %(pplan:).freeze,
21
+ :"prov:definition" => %(A p-plan:Bundle is a specific type of prov:Bundle that contains the provenance assertions of the execution of a p-plan:Plan).freeze,
22
+ :"rdfs:isDefinedBy" => %(pplan:).freeze,
18
23
  subClassOf: ["pplan:Entity".freeze, "prov:Bundle".freeze],
19
24
  type: "owl:Class".freeze
20
25
  term :Entity,
21
26
  label: "Entity".freeze,
22
- "prov:definition" => %(A p-plan:Entity represents the input of the execution of a p-plan:Activity. It corresponds to a p-plan:Variable.).freeze,
23
- "rdfs:isDefinedBy" => %(pplan:).freeze,
27
+ :"prov:definition" => %(A p-plan:Entity represents the input of the execution of a p-plan:Activity. It corresponds to a p-plan:Variable.).freeze,
28
+ :"rdfs:isDefinedBy" => %(pplan:).freeze,
24
29
  subClassOf: "prov:Entity".freeze,
25
30
  type: "owl:Class".freeze
26
31
  term :MultiStep,
27
32
  label: "MultiStep".freeze,
28
- "prov:definition" => %(A multi step is the representation of a plan that appears as a step of another plan.).freeze,
29
- "rdfs:isDefinedBy" => %(pplan:).freeze,
33
+ :"prov:definition" => %(A multi step is the representation of a plan that appears as a step of another plan.).freeze,
34
+ :"rdfs:isDefinedBy" => %(pplan:).freeze,
30
35
  subClassOf: ["pplan:Plan".freeze, "pplan:Step".freeze],
31
36
  type: "owl:Class".freeze
32
37
  term :Plan,
33
38
  label: "Plan".freeze,
34
- "prov:definition" => %(A p-plan:Plan is a specific type of prov:Plan. It is composed of smaller steps that use and produce Variables.).freeze,
35
- "rdfs:isDefinedBy" => %(pplan:).freeze,
39
+ :"prov:definition" => %(A p-plan:Plan is a specific type of prov:Plan. It is composed of smaller steps that use and produce Variables.).freeze,
40
+ :"rdfs:isDefinedBy" => %(pplan:).freeze,
36
41
  subClassOf: ["pplan:Entity".freeze, "prov:Plan".freeze],
37
42
  type: "owl:Class".freeze
38
43
  term :Step,
39
44
  label: "Step".freeze,
40
- "prov:definition" => %(A p-plan:Step represents the planned execution activity).freeze,
41
- "rdfs:isDefinedBy" => %(pplan:).freeze,
45
+ :"prov:definition" => %(A p-plan:Step represents the planned execution activity).freeze,
46
+ :"rdfs:isDefinedBy" => %(pplan:).freeze,
42
47
  type: "owl:Class".freeze
43
48
  term :Variable,
44
49
  label: "Variable".freeze,
45
- "prov:definition" => %(A p-plan:Variable represents a description of the input of the planned Activity \(p-plan:Step\)).freeze,
46
- "rdfs:isDefinedBy" => %(pplan:).freeze,
50
+ :"prov:definition" => %(A p-plan:Variable represents a description of the input of the planned Activity \(p-plan:Step\)).freeze,
51
+ :"rdfs:isDefinedBy" => %(pplan:).freeze,
47
52
  type: "owl:Class".freeze
48
53
 
49
54
  # Property definitions
50
55
  property :correspondsToStep,
51
56
  domain: "pplan:Activity".freeze,
52
57
  label: "correspondsToStep".freeze,
53
- "prov:definition" => %(p-plan:correspondsToStep links a p-plan:Activity to its planned p-plan:Step).freeze,
58
+ :"prov:definition" => %(p-plan:correspondsToStep links a p-plan:Activity to its planned p-plan:Step).freeze,
54
59
  range: "pplan:Step".freeze,
55
- "rdfs:isDefinedBy" => %(pplan:).freeze,
56
- type: ["owl:ObjectProperty".freeze, "owl:FunctionalProperty".freeze]
60
+ :"rdfs:isDefinedBy" => %(pplan:).freeze,
61
+ type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze]
57
62
  property :correspondsToVariable,
58
63
  domain: "pplan:Entity".freeze,
59
64
  label: "correspondsToVariable".freeze,
60
- "prov:definition" => %(p-plan:correspondsToVariable binds a p-plan:Entity \(used by a p-plan:Activity in the execution of a plan\) to the p-plan:Variable it represented it in the p-plan:Plan.).freeze,
65
+ :"prov:definition" => %(p-plan:correspondsToVariable binds a p-plan:Entity \(used by a p-plan:Activity in the execution of a plan\) to the p-plan:Variable it represented it in the p-plan:Plan.).freeze,
61
66
  range: "pplan:Variable".freeze,
62
- "rdfs:isDefinedBy" => %(pplan:).freeze,
63
- type: ["owl:ObjectProperty".freeze, "owl:FunctionalProperty".freeze]
67
+ :"rdfs:isDefinedBy" => %(pplan:).freeze,
68
+ type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze]
64
69
  property :hasInputVar,
65
70
  domain: "pplan:Step".freeze,
66
71
  label: "hasInputVar".freeze,
67
- "prov:definition" => %(p-plan:hasInputVar binds a p-plan:Step to the p-plan:Variable that takes as input for the planned execution).freeze,
72
+ :"prov:definition" => %(p-plan:hasInputVar binds a p-plan:Step to the p-plan:Variable that takes as input for the planned execution).freeze,
68
73
  range: "pplan:Variable".freeze,
69
- "rdfs:isDefinedBy" => %(pplan:).freeze,
74
+ :"rdfs:isDefinedBy" => %(pplan:).freeze,
70
75
  type: "owl:ObjectProperty".freeze
71
76
  property :hasOutputVar,
72
77
  domain: "pplan:Step".freeze,
73
78
  label: "hasOutputVar".freeze,
74
- "owl:inverseOf" => %(pplan:isOutputVarOf).freeze,
75
- "prov:definition" => %(p-plan:hasOutputVar binds a p-plan:Step to the p-plan:Variable that will be produced as output in the planned execution).freeze,
79
+ :"owl:inverseOf" => %(pplan:isOutputVarOf).freeze,
80
+ :"prov:definition" => %(p-plan:hasOutputVar binds a p-plan:Step to the p-plan:Variable that will be produced as output in the planned execution).freeze,
76
81
  range: "pplan:Variable".freeze,
77
- "rdfs:isDefinedBy" => %(pplan:).freeze,
82
+ :"rdfs:isDefinedBy" => %(pplan:).freeze,
78
83
  type: "owl:ObjectProperty".freeze
79
84
  property :isDecomposedAsPlan,
80
85
  domain: "pplan:MultiStep".freeze,
81
86
  label: "isDecomposedAsPlan".freeze,
82
- "prov:definition" => %(The p-plan:isDecomposedAsPlan relationship binds a p-plan:MultiStep to the p-plan:Plan holding the definition of that step. That is, p-plan:isDecomposedAsPlan links the MultiStep to the Plan sptecification where it is decomposed.).freeze,
87
+ :"prov:definition" => %(The p-plan:isDecomposedAsPlan relationship binds a p-plan:MultiStep to the p-plan:Plan holding the definition of that step. That is, p-plan:isDecomposedAsPlan links the MultiStep to the Plan sptecification where it is decomposed.).freeze,
83
88
  range: "pplan:Plan".freeze,
84
- "rdfs:isDefinedBy" => %(pplan:).freeze,
89
+ :"rdfs:isDefinedBy" => %(pplan:).freeze,
85
90
  type: "owl:ObjectProperty".freeze
86
91
  property :isInputVarOf,
87
92
  domain: "pplan:Variable".freeze,
88
93
  label: "isInputVarOf".freeze,
89
- "owl:inverseOf" => %(pplan:hasInputVar).freeze,
90
- "prov:definition" => %(p-plan:isInputVarOf links an input variable of a step to the step.).freeze,
94
+ :"owl:inverseOf" => %(pplan:hasInputVar).freeze,
95
+ :"prov:definition" => %(p-plan:isInputVarOf links an input variable of a step to the step.).freeze,
91
96
  range: "pplan:Step".freeze,
92
- "rdfs:isDefinedBy" => %(pplan:).freeze,
97
+ :"rdfs:isDefinedBy" => %(pplan:).freeze,
93
98
  type: "owl:ObjectProperty".freeze
94
99
  property :isOutputVarOf,
95
100
  domain: "pplan:Variable".freeze,
96
101
  label: "isOutputVarOf".freeze,
97
- "prov:definition" => %(p-plan:isOutputVarOf is intended to link an output variable of a step to the step.).freeze,
102
+ :"prov:definition" => %(p-plan:isOutputVarOf is intended to link an output variable of a step to the step.).freeze,
98
103
  range: "pplan:Step".freeze,
99
- "rdfs:isDefinedBy" => %(pplan:).freeze,
100
- type: ["owl:ObjectProperty".freeze, "owl:FunctionalProperty".freeze]
104
+ :"rdfs:isDefinedBy" => %(pplan:).freeze,
105
+ type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze]
101
106
  property :isPrecededBy,
102
107
  comment: %(Property that asserts which Step preceeds the current one. ).freeze,
103
108
  domain: "pplan:Step".freeze,
104
109
  label: "isPrecededBy".freeze,
105
110
  range: "pplan:Step".freeze,
106
- "rdfs:isDefinedBy" => %(pplan:).freeze,
111
+ :"rdfs:isDefinedBy" => %(pplan:).freeze,
107
112
  type: ["owl:ObjectProperty".freeze, "owl:TransitiveProperty".freeze]
108
113
  property :isStepOfPlan,
109
114
  domain: "pplan:Step".freeze,
110
115
  label: "isStepOfPlan".freeze,
111
- "prov:definition" => %(p-plan:isStepOfPlan links a p-plan:Step to the p-plan:Plan which it corresponds to.).freeze,
116
+ :"prov:definition" => %(p-plan:isStepOfPlan links a p-plan:Step to the p-plan:Plan which it corresponds to.).freeze,
112
117
  range: "pplan:Plan".freeze,
113
- "rdfs:isDefinedBy" => %(pplan:).freeze,
118
+ :"rdfs:isDefinedBy" => %(pplan:).freeze,
114
119
  type: "owl:ObjectProperty".freeze
115
120
  property :isSubPlanOfPlan,
116
121
  domain: "pplan:Plan".freeze,
117
122
  label: "isSubPlanOfPlan".freeze,
118
- "prov:definition" => %(A p-plan:Plan may be a subplan of another bigger p-plan:Plan. p-plan:isSubPlanOfPlan is used to state the link among the two different plans. Note that if p1 is a p-plan:subPlan of p2, p1will not necessarily be a step of p2. A multistep will represent p1 in p2, and link to p1 with the p-plan.hasStepDecomposition relationship.).freeze,
123
+ :"prov:definition" => %(A p-plan:Plan may be a subplan of another bigger p-plan:Plan. p-plan:isSubPlanOfPlan is used to state the link among the two different plans. Note that if p1 is a p-plan:subPlan of p2, p1will not necessarily be a step of p2. A multistep will represent p1 in p2, and link to p1 with the p-plan.hasStepDecomposition relationship.).freeze,
119
124
  range: "pplan:Plan".freeze,
120
- "rdfs:isDefinedBy" => %(pplan:).freeze,
125
+ :"rdfs:isDefinedBy" => %(pplan:).freeze,
121
126
  subPropertyOf: "owl:topObjectProperty".freeze,
122
127
  type: "owl:ObjectProperty".freeze
123
128
  property :isVariableOfPlan,
124
129
  domain: "pplan:Variable".freeze,
125
130
  label: "isVariableofPlan".freeze,
126
- "prov:definition" => %(p-plan:IsVariableOfPlan binds a p-plan:Variable to the p-plan:Plan it corresponds to.).freeze,
131
+ :"prov:definition" => %(p-plan:IsVariableOfPlan binds a p-plan:Variable to the p-plan:Plan it corresponds to.).freeze,
127
132
  range: "pplan:Plan".freeze,
128
- "rdfs:isDefinedBy" => %(pplan:).freeze,
133
+ :"rdfs:isDefinedBy" => %(pplan:).freeze,
129
134
  type: "owl:ObjectProperty".freeze
130
135
 
131
136
  # Extra definitions
132
137
  term :"",
133
138
  comment: %(PROV extension for linking Plans and parts of plans to their respective executions. Created by Daniel Garijo and Yolanda Gil).freeze,
134
- "dc:created" => %(2012-11-10).freeze,
135
- "dc:creator" => [%(http://delicias.dia.fi.upm.es/members/DGarijo#me).freeze, %(http://www.isi.edu/~gil/).freeze],
136
- "dc:description" => %(PROV extension for linking Plans and parts of plans to their respective executions.).freeze,
137
- "dc:license" => %(http://creativecommons.org/licenses/by-nc-sa/2.0/).freeze,
138
- "dc:modified" => %(2014-03-12).freeze,
139
- "dc:title" => %(The P-Plan ontology).freeze,
140
- "http://purl.org/vocab/vann/preferredNamespacePrefix" => %(p-plan).freeze,
141
- "http://purl.org/vocab/vann/preferredNamespaceUri" => %(http://purl.org/net/p-plan#).freeze,
139
+ :"dc:created" => %(2012-11-10).freeze,
140
+ :"dc:creator" => [%(http://delicias.dia.fi.upm.es/members/DGarijo#me).freeze, %(http://www.isi.edu/~gil/).freeze],
141
+ :"dc:description" => %(PROV extension for linking Plans and parts of plans to their respective executions.).freeze,
142
+ :"dc:license" => %(http://creativecommons.org/licenses/by-nc-sa/2.0/).freeze,
143
+ :"dc:modified" => %(2014-03-12).freeze,
144
+ :"dc:title" => %(The P-Plan ontology).freeze,
145
+ :"http://purl.org/vocab/vann/preferredNamespacePrefix" => %(p-plan).freeze,
146
+ :"http://purl.org/vocab/vann/preferredNamespaceUri" => %(http://purl.org/net/p-plan#).freeze,
142
147
  label: "".freeze,
143
- "owl:versionInfo" => %(1.3).freeze,
144
- type: ["owl:Ontology".freeze, "owl:Thing".freeze, "owl:NamedIndividual".freeze]
148
+ :"owl:versionInfo" => %(1.3).freeze,
149
+ type: ["owl:NamedIndividual".freeze, "owl:Ontology".freeze, "owl:Thing".freeze]
145
150
  end
146
151
  end
@@ -1,7 +1,12 @@
1
1
  # -*- encoding: utf-8 -*-
2
+ # frozen_string_literal: true
2
3
  # This file generated automatically using vocab-fetch from http://www.loc.gov/premis/rdf/v1.rdf
3
4
  require 'rdf'
4
5
  module RDF::Vocab
6
+ # @!parse
7
+ # # Vocabulary for <http://www.loc.gov/premis/rdf/v1#>
8
+ # class PREMIS < RDF::StrictVocabulary
9
+ # end
5
10
  class PREMIS < RDF::StrictVocabulary("http://www.loc.gov/premis/rdf/v1#")
6
11
 
7
12
  # Class definitions
@@ -9,1135 +14,1135 @@ module RDF::Vocab
9
14
  comment: %(The Agent entity aggregates information about attributes or characteristics of agents \(persons, organizations, or software\) associated with rights management and preservation events in the life of a data object. Agent information serves to identify an agent unambiguously from all other
10
15
  Agent entities.).freeze,
11
16
  label: "Agent".freeze,
12
- "skos:editorialNote" => %(Entity properties: May hold or grant one or more rights. May carry out, authorize, or compel one or more events. May create or act upon one or more objects through an event or with respect to a rights statement.).freeze,
13
- subClassOf: ["premis:PremisEntity".freeze, "dc:Agent".freeze, "foaf:Agent".freeze],
17
+ :"skos:editorialNote" => %(Entity properties: May hold or grant one or more rights. May carry out, authorize, or compel one or more events. May create or act upon one or more objects through an event or with respect to a rights statement.).freeze,
18
+ subClassOf: ["dc:Agent".freeze, "foaf:Agent".freeze, "premis:PremisEntity".freeze],
14
19
  type: "owl:Class".freeze,
15
- "vs:term_status" => %(stable).freeze
20
+ :"vs:term_status" => %(stable).freeze
16
21
  term :ApplicableDates,
17
22
  label: "ApplicableDates".freeze,
18
- "skos:definition" => %(Definition: The date range during which the particular rights statement applies or is applied to the content.).freeze,
19
- "skos:editorialNote" => %(Rationale Specific dates may apply to the particular rights statement.).freeze,
23
+ :"skos:definition" => %(Definition: The date range during which the particular rights statement applies or is applied to the content.).freeze,
24
+ :"skos:editorialNote" => %(Rationale Specific dates may apply to the particular rights statement.).freeze,
20
25
  type: "owl:Class".freeze,
21
- "vs:term_status" => %(stable).freeze
26
+ :"vs:term_status" => %(stable).freeze
22
27
  term :Bitstream,
23
28
  label: "Bitstream".freeze,
24
- "rdfs:seeAlso" => %(Object class definition).freeze,
25
- "skos:definition" => %(Definition: Contiguous or non-contiguous data within a file that has meaningful properties for preservation purposes.).freeze,
29
+ :"rdfs:seeAlso" => %(Object class definition).freeze,
30
+ :"skos:definition" => %(Definition: Contiguous or non-contiguous data within a file that has meaningful properties for preservation purposes.).freeze,
26
31
  subClassOf: "premis:Object".freeze,
27
32
  type: "owl:Class".freeze,
28
- "vs:term_status" => %(stable).freeze
33
+ :"vs:term_status" => %(stable).freeze
29
34
  term :ContentLocation,
30
35
  label: "ContentLocation".freeze,
31
- "skos:definition" => %(Definition: Information needed to retrieve a file from the storage system, or to access a bitstream within a file.).freeze,
32
- "skos:historyNote" => %(Creation / Maintenance Notes: A preservation repository should never refer to content that it does not control. Therefore, the PREMIS working group assumed that the repository will always assign the contentLocation, probably by program.).freeze,
33
- "skos:scopeNote" => %(Usage Notes: If the preservation repository uses the objectIdentifier as a handle for retrieving data, contentLocation is implicit and does not need to be recorded.).freeze,
36
+ :"skos:definition" => %(Definition: Information needed to retrieve a file from the storage system, or to access a bitstream within a file.).freeze,
37
+ :"skos:historyNote" => %(Creation / Maintenance Notes: A preservation repository should never refer to content that it does not control. Therefore, the PREMIS working group assumed that the repository will always assign the contentLocation, probably by program.).freeze,
38
+ :"skos:scopeNote" => %(Usage Notes: If the preservation repository uses the objectIdentifier as a handle for retrieving data, contentLocation is implicit and does not need to be recorded.).freeze,
34
39
  type: "owl:Class".freeze,
35
- "vs:term_status" => %(stable).freeze
40
+ :"vs:term_status" => %(stable).freeze
36
41
  term :CopyrightInformation,
37
42
  label: "CopyrightInformation".freeze,
38
- "skos:definition" => %(Definition: Information about the copyright status of the object\(s\).).freeze,
39
- "skos:scopeNote" => %(Usage Notes: When rights basis is a copyright, copyrightInformation should be provided. Repositories may need to extend this with more detailed information. See the California Digital Library's copyrightMD schema \(www.cdlib.org/inside/projects/rights/schema/\) for an example of a more detailed scheme.).freeze,
43
+ :"skos:definition" => %(Definition: Information about the copyright status of the object\(s\).).freeze,
44
+ :"skos:scopeNote" => %(Usage Notes: When rights basis is a copyright, copyrightInformation should be provided. Repositories may need to extend this with more detailed information. See the California Digital Library's copyrightMD schema \(www.cdlib.org/inside/projects/rights/schema/\) for an example of a more detailed scheme.).freeze,
40
45
  subClassOf: "premis:RightsStatement".freeze,
41
46
  type: "owl:Class".freeze,
42
- "vs:term_status" => %(stable).freeze
47
+ :"vs:term_status" => %(stable).freeze
43
48
  term :CreatingApplication,
44
49
  label: "CreatingApplication".freeze,
45
- "skos:definition" => %(Definition: Information about the application that created the object.).freeze,
46
- "skos:editorialNote" => %(Rationale: Information about the creating application, including the version of the application and the date the file was created, can be useful for problem solving purposes. For example, it is not uncommon for certain versions of software to be known for causing conversion errors or introducing artifacts. It is also useful to determine which rendering software is available for the digital object. For example, if you know that the Distiller program created the PDF file, you know it will be renderable with \(among other programs\) Adobe Reader.).freeze,
47
- "skos:historyNote" => %(Creation / Maintenance Notes: If the object was created by the repository, assignment of creating application information should be straightforward. If the object was created outside the repository, it is possible this information could be supplied by the depositor. It might also be extracted from the file itself; the name of the creating application is often embedded within the file.).freeze,
48
- "skos:scopeNote" => %(Usage Notes: This semantic unit applies to both objects created external to the repository and subsequently ingested, and to objects created by the repository, for example, through migration events. The creatingApplication container is repeatable if more than one application processed the object in turn. For example, a file could be created by Microsoft Word and later turned into a PDF using Adobe Acrobat. Details of both the Word and Acrobat applications may be recorded. However, if both files are stored in the repository, each file should be completely described as an Object entity and linked by using relationship information with a relationshipType “derivation.” It may also be repeated to record the creating application before the object was ingested as well as the creating application used as part of the ingest process. For example, an HTML file was created pre-ingest using Dreamweaver, and the Web crawler Heritrix then captured a snapshot of the files as part of the ingest. The amount of information needed for creatingApplication given here is minimal. For more granularity, extensibility is provided. Rather than having each repository record this locally, it would be preferable to have a registry of this information similar to format or environment registries.).freeze,
50
+ :"skos:definition" => %(Definition: Information about the application that created the object.).freeze,
51
+ :"skos:editorialNote" => %(Rationale: Information about the creating application, including the version of the application and the date the file was created, can be useful for problem solving purposes. For example, it is not uncommon for certain versions of software to be known for causing conversion errors or introducing artifacts. It is also useful to determine which rendering software is available for the digital object. For example, if you know that the Distiller program created the PDF file, you know it will be renderable with \(among other programs\) Adobe Reader.).freeze,
52
+ :"skos:historyNote" => %(Creation / Maintenance Notes: If the object was created by the repository, assignment of creating application information should be straightforward. If the object was created outside the repository, it is possible this information could be supplied by the depositor. It might also be extracted from the file itself; the name of the creating application is often embedded within the file.).freeze,
53
+ :"skos:scopeNote" => %(Usage Notes: This semantic unit applies to both objects created external to the repository and subsequently ingested, and to objects created by the repository, for example, through migration events. The creatingApplication container is repeatable if more than one application processed the object in turn. For example, a file could be created by Microsoft Word and later turned into a PDF using Adobe Acrobat. Details of both the Word and Acrobat applications may be recorded. However, if both files are stored in the repository, each file should be completely described as an Object entity and linked by using relationship information with a relationshipType “derivation.” It may also be repeated to record the creating application before the object was ingested as well as the creating application used as part of the ingest process. For example, an HTML file was created pre-ingest using Dreamweaver, and the Web crawler Heritrix then captured a snapshot of the files as part of the ingest. The amount of information needed for creatingApplication given here is minimal. For more granularity, extensibility is provided. Rather than having each repository record this locally, it would be preferable to have a registry of this information similar to format or environment registries.).freeze,
49
54
  type: "owl:Class".freeze,
50
- "vs:term_status" => %(stable).freeze
55
+ :"vs:term_status" => %(stable).freeze
51
56
  term :Dependency,
52
57
  label: "Dependency".freeze,
53
- "skos:definition" => %(Definition: Information about a non-software component or associated file needed in order to use or render the representation or file, for example, a schema, a DTD, or an entity file declaration.).freeze,
54
- "skos:historyNote" => %(Creation / Maintenance Notes: Recommended practice is for a repository to archive objects on which other objects depend. These may be sent by the submitter of the primary object, or they may in some cases be automatically obtained by the repository. For example, a markup file will often contain links to other objects it requires such as DTDs or XML Schema. If it does, these objects can often be identified by the link and downloaded by the repository.).freeze,
55
- "skos:scopeNote" => %(Usage Notes: This semantic unit is for additional objects that are necessary to render a file or representation, not for required software or hardware. It may also be used for a non-executable component of the object, such as a font or style sheet. For things that the software requires, see swDependency. This semantic unit does not include objects required by structural relationships, such as child content objects \(e.g., figures that are part of an article\), which are recorded under relationship with a relationshipType of “structural”. It is up to the repository to determine what constitutes a dependency in the context of the designated community. The objects noted may be internal or external to the preservation repository.).freeze,
58
+ :"skos:definition" => %(Definition: Information about a non-software component or associated file needed in order to use or render the representation or file, for example, a schema, a DTD, or an entity file declaration.).freeze,
59
+ :"skos:historyNote" => %(Creation / Maintenance Notes: Recommended practice is for a repository to archive objects on which other objects depend. These may be sent by the submitter of the primary object, or they may in some cases be automatically obtained by the repository. For example, a markup file will often contain links to other objects it requires such as DTDs or XML Schema. If it does, these objects can often be identified by the link and downloaded by the repository.).freeze,
60
+ :"skos:scopeNote" => %(Usage Notes: This semantic unit is for additional objects that are necessary to render a file or representation, not for required software or hardware. It may also be used for a non-executable component of the object, such as a font or style sheet. For things that the software requires, see swDependency. This semantic unit does not include objects required by structural relationships, such as child content objects \(e.g., figures that are part of an article\), which are recorded under relationship with a relationshipType of “structural”. It is up to the repository to determine what constitutes a dependency in the context of the designated community. The objects noted may be internal or external to the preservation repository.).freeze,
56
61
  type: "owl:Class".freeze,
57
- "vs:term_status" => %(stable).freeze
62
+ :"vs:term_status" => %(stable).freeze
58
63
  term :Environment,
59
64
  label: "Environment".freeze,
60
- "skos:definition" => %(Definition: Hardware/software combinations supporting use of the object.).freeze,
61
- "skos:editorialNote" => %(Rationale: Environment is the means by which the user renders and interacts with content. Separation of digital content from its environmental context can result in the content becoming unusable.).freeze,
62
- "skos:historyNote" => %(Creation / Maintenance Notes: This information may be omitted when the repository is doing only bit-level preservation on the object. Rather than having each repository record this locally, it would be preferable to have a registry of environment information similar to proposed registries of format information. Repositories may choose to design mechanisms for inheritance, so that if the environment required for each file within a representation is identical to the environment recorded for the representation as a whole, it is not necessary to store this information in each file.).freeze,
63
- "skos:scopeNote" => %(Usage Notes: All of this semantic units’ subunits are optional. At least one subunit \(i.e. environmentNote, dependency, software, hardware, and/or environmentExtension\) must be present if this container is included.).freeze,
65
+ :"skos:definition" => %(Definition: Hardware/software combinations supporting use of the object.).freeze,
66
+ :"skos:editorialNote" => %(Rationale: Environment is the means by which the user renders and interacts with content. Separation of digital content from its environmental context can result in the content becoming unusable.).freeze,
67
+ :"skos:historyNote" => %(Creation / Maintenance Notes: This information may be omitted when the repository is doing only bit-level preservation on the object. Rather than having each repository record this locally, it would be preferable to have a registry of environment information similar to proposed registries of format information. Repositories may choose to design mechanisms for inheritance, so that if the environment required for each file within a representation is identical to the environment recorded for the representation as a whole, it is not necessary to store this information in each file.).freeze,
68
+ :"skos:scopeNote" => %(Usage Notes: All of this semantic units’ subunits are optional. At least one subunit \(i.e. environmentNote, dependency, software, hardware, and/or environmentExtension\) must be present if this container is included.).freeze,
64
69
  type: "owl:Class".freeze,
65
- "vs:term_status" => %(stable).freeze
70
+ :"vs:term_status" => %(stable).freeze
66
71
  term :Event,
67
72
  comment: %(The Event entity aggregates information about an action that involves one or more Object entities. Metadata about an Event would normally be recorded and stored separately from the digital object.
68
73
  Whether or not a preservation repository records an Event depends upon the importance of the event. Actions that modify objects should always be recorded. Other actions such as copying an object for backup purposes may be recorded in system logs or an audit trail but not necessarily in
69
74
  an Event entity.
70
75
  Mandatory semantic units are: eventIdentifier, eventType, and eventDateTime.).freeze,
71
76
  label: "Event".freeze,
72
- "skos:editorialNote" => %(Entity properties: Must be related to one or more objects. Can be related to one or more agents. Links between entities may be recorded from either direction and need not be bi-directional.).freeze,
77
+ :"skos:editorialNote" => %(Entity properties: Must be related to one or more objects. Can be related to one or more agents. Links between entities may be recorded from either direction and need not be bi-directional.).freeze,
73
78
  subClassOf: "premis:PremisEntity".freeze,
74
79
  type: "owl:Class".freeze,
75
- "vs:term_status" => %(stable).freeze
80
+ :"vs:term_status" => %(stable).freeze
76
81
  term :EventOutcomeDetail,
77
82
  label: "EventOutcomeDetail".freeze,
78
- "skos:definition" => %(Definition: A detailed description of the result or product of the event.).freeze,
79
- "skos:editorialNote" => %(Rationale: An event outcome may be sufficiently complex that a coded description is not adequate to document it.).freeze,
80
- "skos:scopeNote" => %(Usage Notes: This may be used to record all error and warning messages issued by a program involved in the event or to record a pointer to an error log. If the event was a validity check \(e.g., profile conformance\) any anomalies or quirks discovered would be recorded here. All subunits of this semantic unit are optional. At least one subunit \(i.e. eventOutcomeDetailNote and/or eventOutcomeDetailExtension\) must be present if this container is included.).freeze,
83
+ :"skos:definition" => %(Definition: A detailed description of the result or product of the event.).freeze,
84
+ :"skos:editorialNote" => %(Rationale: An event outcome may be sufficiently complex that a coded description is not adequate to document it.).freeze,
85
+ :"skos:scopeNote" => %(Usage Notes: This may be used to record all error and warning messages issued by a program involved in the event or to record a pointer to an error log. If the event was a validity check \(e.g., profile conformance\) any anomalies or quirks discovered would be recorded here. All subunits of this semantic unit are optional. At least one subunit \(i.e. eventOutcomeDetailNote and/or eventOutcomeDetailExtension\) must be present if this container is included.).freeze,
81
86
  type: "owl:Class".freeze,
82
- "vs:term_status" => %(stable).freeze
87
+ :"vs:term_status" => %(stable).freeze
83
88
  term :EventOutcomeInformation,
84
89
  label: "EventOutcomeInformation".freeze,
85
- "skos:definition" => %(Definition: Information about the outcome of an event.).freeze,
86
- "skos:scopeNote" => %(Usage Notes: A repository may wish to supplement a coded eventOutcome value with additional information in eventOutcomeDetail. Since events may have more than one outcome, the container is repeatable. All subunits of this semantic unit are optional. At least one subunit \(i.e. eventOutcome or eventOutcomeDetail\) must be present if this container is included.).freeze,
90
+ :"skos:definition" => %(Definition: Information about the outcome of an event.).freeze,
91
+ :"skos:scopeNote" => %(Usage Notes: A repository may wish to supplement a coded eventOutcome value with additional information in eventOutcomeDetail. Since events may have more than one outcome, the container is repeatable. All subunits of this semantic unit are optional. At least one subunit \(i.e. eventOutcome or eventOutcomeDetail\) must be present if this container is included.).freeze,
87
92
  type: "owl:Class".freeze,
88
- "vs:term_status" => %(stable).freeze
93
+ :"vs:term_status" => %(stable).freeze
89
94
  term :File,
90
95
  label: "File".freeze,
91
- "rdfs:seeAlso" => %(Object class definition).freeze,
92
- "skos:definition" => %(Definition: A named and ordered sequence of bytes that is known to an operating system.).freeze,
96
+ :"rdfs:seeAlso" => %(Object class definition).freeze,
97
+ :"skos:definition" => %(Definition: A named and ordered sequence of bytes that is known to an operating system.).freeze,
93
98
  subClassOf: "premis:Object".freeze,
94
99
  type: "owl:Class".freeze,
95
- "vs:term_status" => %(stable).freeze
100
+ :"vs:term_status" => %(stable).freeze
96
101
  term :Fixity,
97
102
  label: "Fixity".freeze,
98
- "skos:definition" => %(Definition: Information used to verify whether an object has been altered in an undocumented or unauthorized way.).freeze,
99
- "skos:historyNote" => %(Creation / Maintenance Notes: Automatically calculated and recorded by repository.).freeze,
100
- "skos:scopeNote" => %(Usage Notes: To perform a fixity check, a message digest calculated at some earlier time is compared with a message digest calculated at a later time. If the digests are the same, the object was not altered in the interim. Recommended practice is to use two or more message digests calculated by different algorithms. \(Note that the terms “message digest” and “checksum” are commonly used interchangeably. However, the term “checksum” is more correctly used for the product of a cyclical redundancy check \(CRC\), whereas the term “message digest” refers to the result of a cryptographic hash function, which is what is referred to here.\) The act of performing a fixity check and the date it occurred would be recorded as an Event. The result of the check would be recorded as the eventOutcome. Therefore, only the messageDigestAlgorithm and messageDigest need to be recorded as objectCharacteristics for future comparison. Representation level: It could be argued that if a representation consists of a single file or if all the files comprised by a representation are combined \(e.g., zipped\) into a single file, then a fixity check could be performed on the representation. However, in both cases the fixity check is actually being performed on a file, which in this case happens to be coincidental with a representation. Bitstream level: Message digests can be computed for bitstreams although they are not as common as with files. For example, the JPX format, which is a JPEG2000 format, supports the inclusion of MD5 or SHA-1 message digests in internal metadata that was calculated on any range of bytes of the file.).freeze,
103
+ :"skos:definition" => %(Definition: Information used to verify whether an object has been altered in an undocumented or unauthorized way.).freeze,
104
+ :"skos:historyNote" => %(Creation / Maintenance Notes: Automatically calculated and recorded by repository.).freeze,
105
+ :"skos:scopeNote" => %(Usage Notes: To perform a fixity check, a message digest calculated at some earlier time is compared with a message digest calculated at a later time. If the digests are the same, the object was not altered in the interim. Recommended practice is to use two or more message digests calculated by different algorithms. \(Note that the terms “message digest” and “checksum” are commonly used interchangeably. However, the term “checksum” is more correctly used for the product of a cyclical redundancy check \(CRC\), whereas the term “message digest” refers to the result of a cryptographic hash function, which is what is referred to here.\) The act of performing a fixity check and the date it occurred would be recorded as an Event. The result of the check would be recorded as the eventOutcome. Therefore, only the messageDigestAlgorithm and messageDigest need to be recorded as objectCharacteristics for future comparison. Representation level: It could be argued that if a representation consists of a single file or if all the files comprised by a representation are combined \(e.g., zipped\) into a single file, then a fixity check could be performed on the representation. However, in both cases the fixity check is actually being performed on a file, which in this case happens to be coincidental with a representation. Bitstream level: Message digests can be computed for bitstreams although they are not as common as with files. For example, the JPX format, which is a JPEG2000 format, supports the inclusion of MD5 or SHA-1 message digests in internal metadata that was calculated on any range of bytes of the file.).freeze,
101
106
  type: "owl:Class".freeze,
102
- "vs:term_status" => %(stable).freeze
107
+ :"vs:term_status" => %(stable).freeze
103
108
  term :Format,
104
109
  label: "Format".freeze,
105
- "skos:definition" => %(Definition: Identification of the format of a file or bitstream where format is the organization of digital information according to preset specifications.).freeze,
106
- "skos:editorialNote" => %(Rationale: Many preservation activities depend on detailed knowledge about the format of the digital object. An accurate identification of format is essential. The identification provided, whether by name or pointer into a format registry, should be sufficient to associate the object with more detailed format information.).freeze,
107
- "skos:historyNote" => %(Creation / Maintenance Notes: The format of a file or bitstream should be ascertained by the repository on ingest. Even if this information is provided by the submitter, directly in metadata or indirectly via the file name extension, recommended practice is to independently identify the format by parsing the file when possible. If the format cannot be identified at the time of ingest, it is valid to record that it is unknown, but the repository should subsequently make an effort to identify the format, even if manual intervention is required.).freeze,
108
- "skos:scopeNote" => %(Usage Notes: A bitstream embedded within a file may have different characteristics than the larger file. For example, a bitstream in LaTex format could be embedded within an SGML file, or multiple images using different colorspaces could be embedded within a TIFF file. format must be recorded for every object. When the bitstream format can be recognized by the repository and the repository might want to treat the bitstream differently from the embedding file for preservation purposes, format can be recorded for embedded bitstreams. Although this semantic unit is mandatory, both of its subunits are optional. At least one subunit \(i.e. either formatDesignation or formatRegistry\) must be present if this container is included or both may be used. If the subunit \(formatDesignation or formatRegistry\) needs to be repeated, the entire format container is repeated. This allows for association of format designation with a particular set of format registry information. For example, if the precise format cannot be determined and two format designations are recorded, each is given within a separate format container. The format container may also be repeated for multiple format registry entries.).freeze,
110
+ :"skos:definition" => %(Definition: Identification of the format of a file or bitstream where format is the organization of digital information according to preset specifications.).freeze,
111
+ :"skos:editorialNote" => %(Rationale: Many preservation activities depend on detailed knowledge about the format of the digital object. An accurate identification of format is essential. The identification provided, whether by name or pointer into a format registry, should be sufficient to associate the object with more detailed format information.).freeze,
112
+ :"skos:historyNote" => %(Creation / Maintenance Notes: The format of a file or bitstream should be ascertained by the repository on ingest. Even if this information is provided by the submitter, directly in metadata or indirectly via the file name extension, recommended practice is to independently identify the format by parsing the file when possible. If the format cannot be identified at the time of ingest, it is valid to record that it is unknown, but the repository should subsequently make an effort to identify the format, even if manual intervention is required.).freeze,
113
+ :"skos:scopeNote" => %(Usage Notes: A bitstream embedded within a file may have different characteristics than the larger file. For example, a bitstream in LaTex format could be embedded within an SGML file, or multiple images using different colorspaces could be embedded within a TIFF file. format must be recorded for every object. When the bitstream format can be recognized by the repository and the repository might want to treat the bitstream differently from the embedding file for preservation purposes, format can be recorded for embedded bitstreams. Although this semantic unit is mandatory, both of its subunits are optional. At least one subunit \(i.e. either formatDesignation or formatRegistry\) must be present if this container is included or both may be used. If the subunit \(formatDesignation or formatRegistry\) needs to be repeated, the entire format container is repeated. This allows for association of format designation with a particular set of format registry information. For example, if the precise format cannot be determined and two format designations are recorded, each is given within a separate format container. The format container may also be repeated for multiple format registry entries.).freeze,
109
114
  type: "owl:Class".freeze,
110
- "vs:term_status" => %(stable).freeze
115
+ :"vs:term_status" => %(stable).freeze
111
116
  term :FormatDesignation,
112
117
  label: "FormatDesignation".freeze,
113
- "skos:definition" => %(Definition: An identification of the format of the object.).freeze,
114
- "skos:scopeNote" => %(Usage Notes: Either formatDesignation or at least one instance of formatRegistry is required. Both may be included. The most specific format \(or format profile\) should be recorded. A repository \(or formats registry\) may wish to use multipart format names \(e.g., “TIFF_GeoTIFF” or “WAVE_MPEG_BWF”\) to achieve this specificity.).freeze,
118
+ :"skos:definition" => %(Definition: An identification of the format of the object.).freeze,
119
+ :"skos:scopeNote" => %(Usage Notes: Either formatDesignation or at least one instance of formatRegistry is required. Both may be included. The most specific format \(or format profile\) should be recorded. A repository \(or formats registry\) may wish to use multipart format names \(e.g., “TIFF_GeoTIFF” or “WAVE_MPEG_BWF”\) to achieve this specificity.).freeze,
115
120
  type: "owl:Class".freeze,
116
- "vs:term_status" => %(stable).freeze
121
+ :"vs:term_status" => %(stable).freeze
117
122
  term :FormatRegistry,
118
123
  label: "FormatRegistry".freeze,
119
- "skos:definition" => %(Definition: Identifies and/or gives further information about the format by reference to an entry in a format registry.).freeze,
120
- "skos:editorialNote" => %(Rationale: If central format registries are available to the preservation repository, they may provide an excellent way of referencing detailed format information.).freeze,
121
- "skos:scopeNote" => %(Usage Notes: Either formatDesignation or at least one instance of formatRegistry is required. If more than one formatRegistry needs to be recorded the format container should be repeated to include each additional set of formatRegistry information. The PREMIS working group assumed that a number of format registries will be developed and maintained to support digital preservation efforts. The proposal for a Global Digital Format Registry \(GDFR\) \(http://hul.harvard.edu/gdfr/documents.html#data\), for example, would create a network-accessible registry designed to store detailed specifications on formats and profiles.).freeze,
124
+ :"skos:definition" => %(Definition: Identifies and/or gives further information about the format by reference to an entry in a format registry.).freeze,
125
+ :"skos:editorialNote" => %(Rationale: If central format registries are available to the preservation repository, they may provide an excellent way of referencing detailed format information.).freeze,
126
+ :"skos:scopeNote" => %(Usage Notes: Either formatDesignation or at least one instance of formatRegistry is required. If more than one formatRegistry needs to be recorded the format container should be repeated to include each additional set of formatRegistry information. The PREMIS working group assumed that a number of format registries will be developed and maintained to support digital preservation efforts. The proposal for a Global Digital Format Registry \(GDFR\) \(http://hul.harvard.edu/gdfr/documents.html#data\), for example, would create a network-accessible registry designed to store detailed specifications on formats and profiles.).freeze,
122
127
  type: "owl:Class".freeze,
123
- "vs:term_status" => %(stable).freeze
128
+ :"vs:term_status" => %(stable).freeze
124
129
  term :Hardware,
125
130
  label: "Hardware".freeze,
126
- "skos:definition" => %(Definition: Hardware components needed by the software referenced in swName or the human user of the referenced software.).freeze,
127
- "skos:historyNote" => %(Creation / Maintenance Notes: Hardware environment information can be very difficult to provide. Many different hardware environments may apply; there are a huge number of combinations of maker and type of CPU, memory, video drivers, and so on. Although at least one hardware environment should be recorded, it is not necessary to record them all and each repository will have to make its own decisions about which hardware environments to record. Because of the difficulty recording this information comprehensively, it would be optimal if central registries of environment information existed. In many cases the environment of a file object is directly associated with the format, making registry lookup by format feasible. In the absence of a global mechanism, repositories may be forced to develop their own local “registries” relating format to hwEnvironment.).freeze,
131
+ :"skos:definition" => %(Definition: Hardware components needed by the software referenced in swName or the human user of the referenced software.).freeze,
132
+ :"skos:historyNote" => %(Creation / Maintenance Notes: Hardware environment information can be very difficult to provide. Many different hardware environments may apply; there are a huge number of combinations of maker and type of CPU, memory, video drivers, and so on. Although at least one hardware environment should be recorded, it is not necessary to record them all and each repository will have to make its own decisions about which hardware environments to record. Because of the difficulty recording this information comprehensively, it would be optimal if central registries of environment information existed. In many cases the environment of a file object is directly associated with the format, making registry lookup by format feasible. In the absence of a global mechanism, repositories may be forced to develop their own local “registries” relating format to hwEnvironment.).freeze,
128
133
  type: "owl:Class".freeze,
129
- "vs:term_status" => %(stable).freeze
134
+ :"vs:term_status" => %(stable).freeze
130
135
  term :Identifier,
131
136
  comment: %(This class is used in PREMIS OWL to describe identifiers if the identifiers are not http URIs.).freeze,
132
137
  label: "Identifier".freeze,
133
138
  type: "owl:Class".freeze,
134
- "vs:term_status" => %(stable).freeze
139
+ :"vs:term_status" => %(stable).freeze
135
140
  term :Inhibitors,
136
141
  label: "Inhibitors".freeze,
137
- "skos:definition" => %(Definition: Features of the object intended to inhibit access, use, or migration.).freeze,
138
- "skos:editorialNote" => %(Rationale: Format information may indicate whether a file is encrypted, but the nature of the encryption also must be recorded, as well as the access key.).freeze,
139
- "skos:historyNote" => %(Creation / Maintenance Notes: Inhibitors are more likely to be present on an object ingested by the repository than applied by the repository itself. It is often not possible to tell that a file has been encrypted by parsing it; the file may appear to be ASCII text. Therefore, information about inhibitors should be supplied as metadata with submitted objects when possible.).freeze,
140
- "skos:scopeNote" => %(Usage Notes: Some file formats allow encryption for embedded bitstreams. Some file formats such as PDF use passwords to control access to content or specific functions. Although this is actually implemented at the bitstream level, for preservation purposes it is effectively managed at the file level; that is, passwords would not be recorded for individually addressable bitstreams. For certain types of inhibitor keys, more granularity may be required. If the inhibitor key information is identical to key information in digital signatures, use those semantic units.).freeze,
142
+ :"skos:definition" => %(Definition: Features of the object intended to inhibit access, use, or migration.).freeze,
143
+ :"skos:editorialNote" => %(Rationale: Format information may indicate whether a file is encrypted, but the nature of the encryption also must be recorded, as well as the access key.).freeze,
144
+ :"skos:historyNote" => %(Creation / Maintenance Notes: Inhibitors are more likely to be present on an object ingested by the repository than applied by the repository itself. It is often not possible to tell that a file has been encrypted by parsing it; the file may appear to be ASCII text. Therefore, information about inhibitors should be supplied as metadata with submitted objects when possible.).freeze,
145
+ :"skos:scopeNote" => %(Usage Notes: Some file formats allow encryption for embedded bitstreams. Some file formats such as PDF use passwords to control access to content or specific functions. Although this is actually implemented at the bitstream level, for preservation purposes it is effectively managed at the file level; that is, passwords would not be recorded for individually addressable bitstreams. For certain types of inhibitor keys, more granularity may be required. If the inhibitor key information is identical to key information in digital signatures, use those semantic units.).freeze,
141
146
  type: "owl:Class".freeze,
142
- "vs:term_status" => %(stable).freeze
147
+ :"vs:term_status" => %(stable).freeze
143
148
  term :IntellectualEntity,
144
149
  comment: %(Intellectual entities are described via Descriptive metadata models. These are very domain-specific and are out of scope for PREMIS. Examples: Dublin Core, Mets, MARC).freeze,
145
150
  label: "IntellectualEntity".freeze,
146
- "skos:definition" => %(Definition: a set of content that is considered a single intellectual unit for purposes of management and description: for example, a particular book, map, photograph, or database. An Intellectual Entity can include other Intellectual Entities; for example, a Web site can include a Web page; a Web page can include an image. An Intellectual Entity may have one or more digital representations.).freeze,
151
+ :"skos:definition" => %(Definition: a set of content that is considered a single intellectual unit for purposes of management and description: for example, a particular book, map, photograph, or database. An Intellectual Entity can include other Intellectual Entities; for example, a Web site can include a Web page; a Web page can include an image. An Intellectual Entity may have one or more digital representations.).freeze,
147
152
  subClassOf: "premis:PremisEntity".freeze,
148
153
  type: "owl:Class".freeze,
149
- "vs:term_status" => %(stable).freeze
154
+ :"vs:term_status" => %(stable).freeze
150
155
  term :LicenseInformation,
151
156
  label: "LicenseInformation".freeze,
152
- "skos:definition" => %(Definition: Information about a license or other agreement granting permissions related to an object.).freeze,
153
- "skos:scopeNote" => %(Usage Note: When rights basis is a license, licenseInformation should be provided.).freeze,
157
+ :"skos:definition" => %(Definition: Information about a license or other agreement granting permissions related to an object.).freeze,
158
+ :"skos:scopeNote" => %(Usage Note: When rights basis is a license, licenseInformation should be provided.).freeze,
154
159
  subClassOf: "premis:RightsStatement".freeze,
155
160
  type: "owl:Class".freeze,
156
- "vs:term_status" => %(stable).freeze
161
+ :"vs:term_status" => %(stable).freeze
157
162
  term :Object,
158
163
  comment: %(The object class aggregates information about a digital object held by a preservation repository and describes those characteristics relevant to preservation management. The only mandatory property is objectIdentifier.
159
164
  The object class has three subclasses: Representation, File, and Bitstream.).freeze,
160
165
  label: "Object".freeze,
161
- "skos:editorialNote" => [%(Entity properties: Can be associated with one or more rights statements. Can participate in one or more events. Links between entities may be recorded from either direction and need not be bi-directional.).freeze, %(Entity types: Representation: A digital object instantiating or embodying an Intellectual Entity. A representation is the set of stored digital files and structural metadata needed to provide a complete and reasonable rendition of the Intellectual Entity. File: A named and ordered sequence of bytes that is known to an operating system. Bitstream: Contiguous or non-contiguous data within a file that has meaningful properties for preservation purposes.).freeze],
166
+ :"skos:editorialNote" => [%(Entity properties: Can be associated with one or more rights statements. Can participate in one or more events. Links between entities may be recorded from either direction and need not be bi-directional.).freeze, %(Entity types: Representation: A digital object instantiating or embodying an Intellectual Entity. A representation is the set of stored digital files and structural metadata needed to provide a complete and reasonable rendition of the Intellectual Entity. File: A named and ordered sequence of bytes that is known to an operating system. Bitstream: Contiguous or non-contiguous data within a file that has meaningful properties for preservation purposes.).freeze],
162
167
  subClassOf: "premis:PremisEntity".freeze,
163
168
  type: "owl:Class".freeze,
164
- "vs:term_status" => %(stable).freeze
169
+ :"vs:term_status" => %(stable).freeze
165
170
  term :ObjectCharacteristics,
166
171
  label: "ObjectCharacteristics".freeze,
167
- "skos:definition" => %(Definition: Technical properties of a file or bitstream that are applicable to all or most formats.).freeze,
168
- "skos:editorialNote" => %(Rationale: There are some important technical properties that apply to objects of any format. Detailed definition of format-specific properties is outside the scope of this Data Dictionary, although such properties may be included within objectCharacteristicsExtension.).freeze,
169
- "skos:scopeNote" => %(Usage Notes: The semantic units included in objectCharacteristics should be treated as a set of information that pertains to a single object at a single compositionLevel. Object characteristics may be repeated when an object was created by applying two or more encodings, such as compression and encryption. In this case each repetition of objectCharacteristics would have an incrementally higher compositionLevel. When encryption is applied, the objectCharacteristics block must include an inhibitors semantic unit. A bitstream embedded within a file may have different object characteristics than the file. Where these characteristics are relevant for preservation, they should be recorded. When a single file is equivalent to a representation, objectCharacteristics may be applied and thus associated with the representation. In these cases, the relationship between the file comprising the representation and other associated files may be expressed using relationshipSubType.).freeze,
172
+ :"skos:definition" => %(Definition: Technical properties of a file or bitstream that are applicable to all or most formats.).freeze,
173
+ :"skos:editorialNote" => %(Rationale: There are some important technical properties that apply to objects of any format. Detailed definition of format-specific properties is outside the scope of this Data Dictionary, although such properties may be included within objectCharacteristicsExtension.).freeze,
174
+ :"skos:scopeNote" => %(Usage Notes: The semantic units included in objectCharacteristics should be treated as a set of information that pertains to a single object at a single compositionLevel. Object characteristics may be repeated when an object was created by applying two or more encodings, such as compression and encryption. In this case each repetition of objectCharacteristics would have an incrementally higher compositionLevel. When encryption is applied, the objectCharacteristics block must include an inhibitors semantic unit. A bitstream embedded within a file may have different object characteristics than the file. Where these characteristics are relevant for preservation, they should be recorded. When a single file is equivalent to a representation, objectCharacteristics may be applied and thus associated with the representation. In these cases, the relationship between the file comprising the representation and other associated files may be expressed using relationshipSubType.).freeze,
170
175
  type: "owl:Class".freeze,
171
- "vs:term_status" => %(stable).freeze
176
+ :"vs:term_status" => %(stable).freeze
172
177
  term :PremisEntity,
173
178
  label: "PremisEntity".freeze,
174
- "owl:versionInfo" => %(PREMIS 2.2 Owl v2).freeze,
175
- "skos:definition" => %(Definition: Basicly, the preservation information in PREMIS OWL consists of five entities related to each other. The entities are: Agent, Event, IntellectualEntity, Object, and RightsStatement.).freeze,
179
+ :"owl:versionInfo" => %(PREMIS 2.2 Owl v2).freeze,
180
+ :"skos:definition" => %(Definition: Basicly, the preservation information in PREMIS OWL consists of five entities related to each other. The entities are: Agent, Event, IntellectualEntity, Object, and RightsStatement.).freeze,
176
181
  subClassOf: "owl:Thing".freeze,
177
182
  type: "owl:Class".freeze,
178
- "vs:term_status" => %(stable).freeze
183
+ :"vs:term_status" => %(stable).freeze
179
184
  term :PreservationLevel,
180
185
  label: "PreservationLevel".freeze,
181
- "skos:definition" => %(Definition: Information indicating the decision or policy on the set of preservation functions to be applied to an object and the context in which the decision or policy was made.).freeze,
182
- "skos:editorialNote" => %(Rationale: Some preservation repositories will offer multiple preservation options depending on factors such as the value or uniqueness of the material, the “preservability” of the format, the amount the customer is willing to pay, etc. The context surrounding the choice of a particular preservation option for an object may also require further explanation.).freeze,
183
- "skos:historyNote" => %(Creation / Maintenance Notes: The preservation level may be assigned by the repository or requested by the depositor and submitted as metadata. The repository may also choose to record additional metadata indicating the context for the assignment of the preservation level.).freeze,
184
- "skos:scopeNote" => %(Usage Notes: If the repository offers only a single preservation level, this value does not need to be explicitly recorded within the repository. Application of a particular set of preservationLevel semantic units may only cover a single representation of an object: representations in other technical forms or serving other functions may have a different preservationLevel applied. The container may be repeated if a preservation level value needs to be recorded in additional contexts \(see preservationLevelRole\).).freeze,
186
+ :"skos:definition" => %(Definition: Information indicating the decision or policy on the set of preservation functions to be applied to an object and the context in which the decision or policy was made.).freeze,
187
+ :"skos:editorialNote" => %(Rationale: Some preservation repositories will offer multiple preservation options depending on factors such as the value or uniqueness of the material, the “preservability” of the format, the amount the customer is willing to pay, etc. The context surrounding the choice of a particular preservation option for an object may also require further explanation.).freeze,
188
+ :"skos:historyNote" => %(Creation / Maintenance Notes: The preservation level may be assigned by the repository or requested by the depositor and submitted as metadata. The repository may also choose to record additional metadata indicating the context for the assignment of the preservation level.).freeze,
189
+ :"skos:scopeNote" => %(Usage Notes: If the repository offers only a single preservation level, this value does not need to be explicitly recorded within the repository. Application of a particular set of preservationLevel semantic units may only cover a single representation of an object: representations in other technical forms or serving other functions may have a different preservationLevel applied. The container may be repeated if a preservation level value needs to be recorded in additional contexts \(see preservationLevelRole\).).freeze,
185
190
  type: "owl:Class".freeze,
186
- "vs:term_status" => %(stable).freeze
191
+ :"vs:term_status" => %(stable).freeze
187
192
  term :RelatedObjectIdentification,
188
193
  label: "RelatedObjectIdentification".freeze,
189
- "skos:definition" => %(Definition: The identifier and sequential context of the related resource).freeze,
190
- "skos:scopeNote" => %(Usage Notes: The related object may or may not be held within the preservation repository. Recommended practice is that objects reside within the repository unless there is a good reason to reference an object outside. Internal and external references should be clear.).freeze,
194
+ :"skos:definition" => %(Definition: The identifier and sequential context of the related resource).freeze,
195
+ :"skos:scopeNote" => %(Usage Notes: The related object may or may not be held within the preservation repository. Recommended practice is that objects reside within the repository unless there is a good reason to reference an object outside. Internal and external references should be clear.).freeze,
191
196
  type: "owl:Class".freeze,
192
- "vs:term_status" => %(stable).freeze
197
+ :"vs:term_status" => %(stable).freeze
193
198
  term :Representation,
194
199
  label: "Representation".freeze,
195
- "rdfs:seeAlso" => %(Object class definition).freeze,
196
- "skos:definition" => %(Definition: A digital object instantiating or embodying an Intellectual Entity. A representation is the set of stored digital files and structural metadata needed to provide a complete and reasonable rendition of the Intellectual Entity.).freeze,
200
+ :"rdfs:seeAlso" => %(Object class definition).freeze,
201
+ :"skos:definition" => %(Definition: A digital object instantiating or embodying an Intellectual Entity. A representation is the set of stored digital files and structural metadata needed to provide a complete and reasonable rendition of the Intellectual Entity.).freeze,
197
202
  subClassOf: "premis:Object".freeze,
198
203
  type: "owl:Class".freeze,
199
- "vs:term_status" => %(stable).freeze
204
+ :"vs:term_status" => %(stable).freeze
200
205
  term :RightsDocumentation,
201
206
  label: "RightsDocumentation".freeze,
202
- "skos:definition" => %(Definition: A designation used to uniquely identify documentation supporting the specified rights within the repository system.).freeze,
207
+ :"skos:definition" => %(Definition: A designation used to uniquely identify documentation supporting the specified rights within the repository system.).freeze,
203
208
  type: "owl:Class".freeze,
204
- "vs:term_status" => %(stable).freeze
209
+ :"vs:term_status" => %(stable).freeze
205
210
  term :RightsGranted,
206
211
  label: "RightsGranted".freeze,
207
- "skos:definition" => %(Definition: The action\(s\) that the granting agency has allowed the repository.).freeze,
212
+ :"skos:definition" => %(Definition: The action\(s\) that the granting agency has allowed the repository.).freeze,
208
213
  type: "owl:Class".freeze,
209
- "vs:term_status" => %(stable).freeze
214
+ :"vs:term_status" => %(stable).freeze
210
215
  term :RightsStatement,
211
216
  comment: %(Extensions: In OWL one can define its own subclasses to the the RightsStatement class to denote OtherRightsInformation of the PREMIS data dictionary.).freeze,
212
217
  label: "RightsStatement".freeze,
213
- "skos:definition" => %(Definition: Documentation of the repository's right to perform one or more acts.).freeze,
214
- "skos:scopeNote" => %(Usage Notes: This semantic unit is optional because in some cases rights may be unknown. Institutions are encouraged to record rights information when possible. Either rightsStatement or rightsExtension must be present if the Rights entity is included. The rightsStatement should be repeated when the act\(s\) described has more than one basis, or when different acts have different bases.).freeze,
215
- subClassOf: ["premis:PremisEntity".freeze, "dc:RightsStatement".freeze],
218
+ :"skos:definition" => %(Definition: Documentation of the repository's right to perform one or more acts.).freeze,
219
+ :"skos:scopeNote" => %(Usage Notes: This semantic unit is optional because in some cases rights may be unknown. Institutions are encouraged to record rights information when possible. Either rightsStatement or rightsExtension must be present if the Rights entity is included. The rightsStatement should be repeated when the act\(s\) described has more than one basis, or when different acts have different bases.).freeze,
220
+ subClassOf: ["dc:RightsStatement".freeze, "premis:PremisEntity".freeze],
216
221
  type: "owl:Class".freeze,
217
- "vs:term_status" => %(stable).freeze
222
+ :"vs:term_status" => %(stable).freeze
218
223
  term :Signature,
219
224
  label: "Signature".freeze,
220
- "skos:definition" => %(Definition: Information needed to use a digital signature to authenticate the signer of an object and/or the information contained in the object.).freeze,
221
- "skos:editorialNote" => %(Rationale: A repository may have a policy of generating digital signatures for files on ingest, or may have a need to store and later validate incoming digital signatures.).freeze,
222
- "skos:scopeNote" => %(Usage Notes: Several of the semantic components of signatureInformation are taken from the W3C’s XML-Signature Syntax and Processing; see www.w3.org/TR/2002/REC-xmldsig-core-20020212/ for more information on the structure and application of these semantic units.).freeze,
225
+ :"skos:definition" => %(Definition: Information needed to use a digital signature to authenticate the signer of an object and/or the information contained in the object.).freeze,
226
+ :"skos:editorialNote" => %(Rationale: A repository may have a policy of generating digital signatures for files on ingest, or may have a need to store and later validate incoming digital signatures.).freeze,
227
+ :"skos:scopeNote" => %(Usage Notes: Several of the semantic components of signatureInformation are taken from the W3C’s XML-Signature Syntax and Processing; see www.w3.org/TR/2002/REC-xmldsig-core-20020212/ for more information on the structure and application of these semantic units.).freeze,
223
228
  type: "owl:Class".freeze,
224
- "vs:term_status" => %(stable).freeze
229
+ :"vs:term_status" => %(stable).freeze
225
230
  term :SignificantProperties,
226
231
  label: "SignificantProperties".freeze,
227
- "skos:definition" => %(Definition: Characteristics of a particular object subjectively determined to be important to maintain through preservation actions.).freeze,
228
- "skos:editorialNote" => %(Rationale: Objects that have the same technical properties may still differ as to the properties that should be preserved for future presentation or use.).freeze,
229
- "skos:historyNote" => %(Creation / Maintenance Notes: Significant properties may pertain to all objects of a certain class; for example, the repository can decide that for all PDF files, only the content need be preserved. In other cases, for example, for media art, the significant properties may be unique to each individual object. Where values are unique, they must be supplied by the submitter or provided by the curatorial staff of the repository.).freeze,
230
- "skos:scopeNote" => %(Usage Notes: All of this semantic unit’s subunits are optional. At least one of the significantPropertiesValue and significantPropertiesExtension subunits must be present if this container is included or both may be used. Significant properties may be objective technical characteristics subjectively considered important, or subjectively determined characteristics. For example, a PDF may contain links that are not considered important and JavaScript that is considered important. Or future migrations of a TIFF image may require optimization for line clarity or for color; the option chosen would depend upon a curatorial judgment of the significant properties of the image. Listing significant properties implies that the repository plans to preserve these properties across time and requires them to acceptably survive preservation action; for example, to be maintained during emulation or after format migration. It also implies that the repository would note when preservation action results in modification of significant properties. In practice, significant properties might be used as measures of preservation success, as part of quality checking the results of a preservation action or evaluating the efficacy of a preservation method. For example, if the listed significant properties are not maintained after application of a particular preservation method, it may indicate a failure of the process or that the method is not well suited to the type of material. More experience with digital preservation is needed to determine the best ways of representing significant properties in general, and of representing modification of significant properties. The semantic units included in the significantProperties container aim to provide a flexible structure for describing significant properties, allowing general types of aspects, facets or attributes of an object to be declared and to be paired with specific significant details about the object pertaining to that aspect, facet or attribute. For example, some repositories may define significant properties for objects related to facets of content, appearance, structure, behavior, and context. Examples of facet:detail pairs in this case could include: significantPropertiesType = “content” significantPropertiesValue = “all textual content and images” significantPropertiesType = “behavior” significantPropertiesValue = “editable” Other repositories may choose to describe significant properties at a more granular attribute level; for example: significantPropertiesType = “page count” significantPropertiesValue = “7” significantPropertiesType = “page width” significantPropertiesValue = “210 mm” Each facet:detail pair should be contained in a separate, repeated significantProperties container. Further work on determining and describing significant properties may yield more detailed schemes to facilitate general description. Representing modification of significant properties as a result of preservation action also requires further work. One possible way involves the use of Object and Event information: Object A has significant properties volume and timing, which are recorded as significantProperties of A. In migrated version B, the timing is modified, which is noted in the eventOutcome of the migration event. Only volume is listed as a significant property of B.).freeze,
232
+ :"skos:definition" => %(Definition: Characteristics of a particular object subjectively determined to be important to maintain through preservation actions.).freeze,
233
+ :"skos:editorialNote" => %(Rationale: Objects that have the same technical properties may still differ as to the properties that should be preserved for future presentation or use.).freeze,
234
+ :"skos:historyNote" => %(Creation / Maintenance Notes: Significant properties may pertain to all objects of a certain class; for example, the repository can decide that for all PDF files, only the content need be preserved. In other cases, for example, for media art, the significant properties may be unique to each individual object. Where values are unique, they must be supplied by the submitter or provided by the curatorial staff of the repository.).freeze,
235
+ :"skos:scopeNote" => %(Usage Notes: All of this semantic unit’s subunits are optional. At least one of the significantPropertiesValue and significantPropertiesExtension subunits must be present if this container is included or both may be used. Significant properties may be objective technical characteristics subjectively considered important, or subjectively determined characteristics. For example, a PDF may contain links that are not considered important and JavaScript that is considered important. Or future migrations of a TIFF image may require optimization for line clarity or for color; the option chosen would depend upon a curatorial judgment of the significant properties of the image. Listing significant properties implies that the repository plans to preserve these properties across time and requires them to acceptably survive preservation action; for example, to be maintained during emulation or after format migration. It also implies that the repository would note when preservation action results in modification of significant properties. In practice, significant properties might be used as measures of preservation success, as part of quality checking the results of a preservation action or evaluating the efficacy of a preservation method. For example, if the listed significant properties are not maintained after application of a particular preservation method, it may indicate a failure of the process or that the method is not well suited to the type of material. More experience with digital preservation is needed to determine the best ways of representing significant properties in general, and of representing modification of significant properties. The semantic units included in the significantProperties container aim to provide a flexible structure for describing significant properties, allowing general types of aspects, facets or attributes of an object to be declared and to be paired with specific significant details about the object pertaining to that aspect, facet or attribute. For example, some repositories may define significant properties for objects related to facets of content, appearance, structure, behavior, and context. Examples of facet:detail pairs in this case could include: significantPropertiesType = “content” significantPropertiesValue = “all textual content and images” significantPropertiesType = “behavior” significantPropertiesValue = “editable” Other repositories may choose to describe significant properties at a more granular attribute level; for example: significantPropertiesType = “page count” significantPropertiesValue = “7” significantPropertiesType = “page width” significantPropertiesValue = “210 mm” Each facet:detail pair should be contained in a separate, repeated significantProperties container. Further work on determining and describing significant properties may yield more detailed schemes to facilitate general description. Representing modification of significant properties as a result of preservation action also requires further work. One possible way involves the use of Object and Event information: Object A has significant properties volume and timing, which are recorded as significantProperties of A. In migrated version B, the timing is modified, which is noted in the eventOutcome of the migration event. Only volume is listed as a significant property of B.).freeze,
231
236
  type: "owl:Class".freeze,
232
- "vs:term_status" => %(stable).freeze
237
+ :"vs:term_status" => %(stable).freeze
233
238
  term :Software,
234
239
  label: "Software".freeze,
235
- "skos:definition" => %(Definition: Software required to render or use the object.).freeze,
236
- "skos:historyNote" => %(Creation / Maintenance Notes: If recording this explicitly, many different software environments may apply; for example, a particular object such as a PDF file may be viewable by several versions of several applications running under several operating systems and operating system versions. Although at least one software environment should be recorded, it is not necessary to record them all and each repository will have to make its own decisions about which software environments to record. Also, what appears to the user as a single rendering program can have many dependencies, including system utilities, runtime libraries, and so on, which each might have their own dependencies in turn. As with environment, metadata may be more efficiently managed in conjunction with a format registry either internal or external to a repository. In the absence of a global mechanism, repositories may be forced to develop their own local “registries” relating format to software environment.).freeze,
240
+ :"skos:definition" => %(Definition: Software required to render or use the object.).freeze,
241
+ :"skos:historyNote" => %(Creation / Maintenance Notes: If recording this explicitly, many different software environments may apply; for example, a particular object such as a PDF file may be viewable by several versions of several applications running under several operating systems and operating system versions. Although at least one software environment should be recorded, it is not necessary to record them all and each repository will have to make its own decisions about which software environments to record. Also, what appears to the user as a single rendering program can have many dependencies, including system utilities, runtime libraries, and so on, which each might have their own dependencies in turn. As with environment, metadata may be more efficiently managed in conjunction with a format registry either internal or external to a repository. In the absence of a global mechanism, repositories may be forced to develop their own local “registries” relating format to software environment.).freeze,
237
242
  type: "owl:Class".freeze,
238
- "vs:term_status" => %(stable).freeze
243
+ :"vs:term_status" => %(stable).freeze
239
244
  term :StatuteInformation,
240
245
  label: "StatuteInformation".freeze,
241
- "skos:definition" => %(Definition: Information about the statute allowing use of the object.).freeze,
242
- "skos:scopeNote" => %(Usage Notes: When rights basis is a statute, statuteInformation should be provided.).freeze,
246
+ :"skos:definition" => %(Definition: Information about the statute allowing use of the object.).freeze,
247
+ :"skos:scopeNote" => %(Usage Notes: When rights basis is a statute, statuteInformation should be provided.).freeze,
243
248
  subClassOf: "premis:RightsStatement".freeze,
244
249
  type: "owl:Class".freeze,
245
- "vs:term_status" => %(stable).freeze
250
+ :"vs:term_status" => %(stable).freeze
246
251
  term :Storage,
247
252
  label: "Storage".freeze,
248
- "skos:definition" => %(Definition: Information about how and where a file is stored in the storage system.).freeze,
249
- "skos:editorialNote" => %(Rationale: It is necessary for a repository to associate the contentLocation with the storageMedium.).freeze,
250
- "skos:scopeNote" => %(Usage Notes: Normally there would be a single storage location and medium for an object, because an object in another location would be considered a different object. The storage composite should be repeated if there are two or more copies that are identical bit-wise and managed as a unit except for the medium on which they are stored. They must have a single objectIdentifier and be managed as a single object by the repository. Although this semantic unit is mandatory, both of its subunits are optional. At least one subunit \(i.e. either contentLocation or storageMedium\) must be present or both may be used.).freeze,
253
+ :"skos:definition" => %(Definition: Information about how and where a file is stored in the storage system.).freeze,
254
+ :"skos:editorialNote" => %(Rationale: It is necessary for a repository to associate the contentLocation with the storageMedium.).freeze,
255
+ :"skos:scopeNote" => %(Usage Notes: Normally there would be a single storage location and medium for an object, because an object in another location would be considered a different object. The storage composite should be repeated if there are two or more copies that are identical bit-wise and managed as a unit except for the medium on which they are stored. They must have a single objectIdentifier and be managed as a single object by the repository. Although this semantic unit is mandatory, both of its subunits are optional. At least one subunit \(i.e. either contentLocation or storageMedium\) must be present or both may be used.).freeze,
251
256
  type: "owl:Class".freeze,
252
- "vs:term_status" => %(stable).freeze
257
+ :"vs:term_status" => %(stable).freeze
253
258
  term :TermOfGrant,
254
259
  label: "TermOfGrant".freeze,
255
- "skos:definition" => %(Definition: The time period for the permissions granted.).freeze,
256
- "skos:editorialNote" => %(Rationale: The permission to preserve may be time bounded.).freeze,
260
+ :"skos:definition" => %(Definition: The time period for the permissions granted.).freeze,
261
+ :"skos:editorialNote" => %(Rationale: The permission to preserve may be time bounded.).freeze,
257
262
  subClassOf: "premis:ApplicableDates".freeze,
258
263
  type: "owl:Class".freeze,
259
- "vs:term_status" => %(stable).freeze
264
+ :"vs:term_status" => %(stable).freeze
260
265
  term :TermOfRestriction,
261
266
  label: "TermOfRestriction".freeze,
262
- "skos:definition" => %(Definition: The time period for the restriction granted.).freeze,
263
- "skos:editorialNote" => %(Rationale: The current definition of termOfGrant is "time period for the permissions granted." This allows for expressing information about the rights granted, but some repositories may need to express timebounded restrictions like embargoes. If this is applicable startDate for the beginning of the embargo and endDate for the end of the embargo should be recorded.).freeze,
267
+ :"skos:definition" => %(Definition: The time period for the restriction granted.).freeze,
268
+ :"skos:editorialNote" => %(Rationale: The current definition of termOfGrant is "time period for the permissions granted." This allows for expressing information about the rights granted, but some repositories may need to express timebounded restrictions like embargoes. If this is applicable startDate for the beginning of the embargo and endDate for the end of the embargo should be recorded.).freeze,
264
269
  subClassOf: "premis:ApplicableDates".freeze,
265
270
  type: "owl:Class".freeze,
266
- "vs:term_status" => %(stable).freeze
271
+ :"vs:term_status" => %(stable).freeze
267
272
 
268
273
  # Property definitions
269
274
  property :hasAct,
270
275
  comment: [%(Data Constraint: Values are taken from the SKOS vocabulary: http://id.loc.gov/vocabulary/preservation/actionsGranted ).freeze, %(Extensions: One can use its own SKOS vocabulary to use for this property. The precondition to do this, is to link your SKOS concepts to the SKOS concepts of the id.loc.gov vocabulary.).freeze],
271
276
  domain: "premis:RightsGranted".freeze,
272
277
  label: "hasAct".freeze,
273
- "skos:definition" => %(Definition: The action the preservation repository is allowed to take.).freeze,
278
+ :"skos:definition" => %(Definition: The action the preservation repository is allowed to take.).freeze,
274
279
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
275
- "vs:term_status" => %(stable).freeze
280
+ :"vs:term_status" => %(stable).freeze
276
281
  property :hasAgent,
277
282
  label: "hasAgent".freeze,
278
283
  range: "premis:Agent".freeze,
279
- "rdfs:seeAlso" => %(Agent class definition).freeze,
280
- "skos:definition" => %(Definition: link to the associated Agent.).freeze,
281
- "skos:editorialNote" => %(Rationale: Digital provenance requires often that relationships between agents and events are documented. The role of the associated agent may need to be documented. For this, a SKOS vocabulary can be used. The LOC will publish a vocabulary at http://id.loc.gov/, denoting the agent's role. These vocabulary will publish the concepts also as subproperties to the linkingAgent property, for denoting the role of the agent in the event or rightsstatement.).freeze,
284
+ :"rdfs:seeAlso" => %(Agent class definition).freeze,
285
+ :"skos:definition" => %(Definition: link to the associated Agent.).freeze,
286
+ :"skos:editorialNote" => %(Rationale: Digital provenance requires often that relationships between agents and events are documented. The role of the associated agent may need to be documented. For this, a SKOS vocabulary can be used. The LOC will publish a vocabulary at http://id.loc.gov/, denoting the agent's role. These vocabulary will publish the concepts also as subproperties to the linkingAgent property, for denoting the role of the agent in the event or rightsstatement.).freeze,
282
287
  type: "owl:ObjectProperty".freeze,
283
- "vs:term_status" => %(testing).freeze
288
+ :"vs:term_status" => %(testing).freeze
284
289
  property :hasAgentName,
285
290
  comment: %(Examples: Erik Owens, Pc).freeze,
286
291
  domain: "premis:Agent".freeze,
287
292
  label: "hasAgentName".freeze,
288
293
  range: "xsd:string".freeze,
289
- "skos:definition" => %(Definition: A text string which could be used in addition to agentIdentifier to identify an agent.).freeze,
290
- "skos:editorialNote" => %(Rationale: This semantic unit provides a more reader-friendly version of the agent identified by the agentIdentifier.).freeze,
291
- "skos:scopeNote" => %(Usage Note: The value is not necessarily unique.).freeze,
294
+ :"skos:definition" => %(Definition: A text string which could be used in addition to agentIdentifier to identify an agent.).freeze,
295
+ :"skos:editorialNote" => %(Rationale: This semantic unit provides a more reader-friendly version of the agent identified by the agentIdentifier.).freeze,
296
+ :"skos:scopeNote" => %(Usage Note: The value is not necessarily unique.).freeze,
292
297
  type: "owl:DatatypeProperty".freeze,
293
- "vs:term_status" => %(stable).freeze
298
+ :"vs:term_status" => %(stable).freeze
294
299
  property :hasAgentNote,
295
300
  domain: "premis:Agent".freeze,
296
301
  label: "hasAgentNote".freeze,
297
302
  range: "xsd:string".freeze,
298
- "skos:definition" => %(Definition: Additional information about the agent.).freeze,
299
- "skos:editorialNote" => %(Rationale: Additional information may be needed to describe or disambiguate the agent.).freeze,
303
+ :"skos:definition" => %(Definition: Additional information about the agent.).freeze,
304
+ :"skos:editorialNote" => %(Rationale: Additional information may be needed to describe or disambiguate the agent.).freeze,
300
305
  type: "owl:DatatypeProperty".freeze,
301
- "vs:term_status" => %(stable).freeze
306
+ :"vs:term_status" => %(stable).freeze
302
307
  property :hasAgentType,
303
308
  comment: [%(Data Constraint: Values are taken from the SKOS vocabulary: http://id.loc.gov/vocabulary/preservation/agentType ).freeze, %(Extensions: One can use its own SKOS vocabulary to use for this property. The precondition to do this, is to link your SKOS concepts to the SKOS concepts of the id.loc.gov vocabulary.).freeze],
304
309
  domain: "premis:Agent".freeze,
305
310
  label: "hasAgentType".freeze,
306
- "skos:definition" => %(Definition: A high-level characterization of the type of agent.).freeze,
307
- type: ["owl:ObjectProperty".freeze, "owl:FunctionalProperty".freeze],
308
- "vs:term_status" => %(stable).freeze
311
+ :"skos:definition" => %(Definition: A high-level characterization of the type of agent.).freeze,
312
+ type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
313
+ :"vs:term_status" => %(stable).freeze
309
314
  property :hasApplicableDates,
310
315
  domain: "premis:RightsStatement".freeze,
311
316
  label: "hasApplicableDates".freeze,
312
317
  range: "premis:ApplicableDates".freeze,
313
- "rdfs:seeAlso" => %(ApplicableDates class definition).freeze,
318
+ :"rdfs:seeAlso" => %(ApplicableDates class definition).freeze,
314
319
  type: "owl:ObjectProperty".freeze,
315
- "vs:term_status" => %(stable).freeze
320
+ :"vs:term_status" => %(stable).freeze
316
321
  property :hasCompositionLevel,
317
- comment: [%(Examples: 0, 1, 2).freeze, %(Data Constraints: Non-negative integers.).freeze],
322
+ comment: [%(Data Constraints: Non-negative integers.).freeze, %(Examples: 0, 1, 2).freeze],
318
323
  domain: "premis:ObjectCharacteristics".freeze,
319
324
  label: "hasCompositionLevel".freeze,
320
325
  range: "xsd:int".freeze,
321
- "skos:definition" => %(Definition: An indication of whether the object is subject to one or more processes of decoding or unbundling.).freeze,
322
- "skos:editorialNote" => %(Rationale: A file or bitstream can be encoded with compression, encryption, etc., or bundled with other files or bitstreams into larger packages. Knowing the order in which these actions are taken is important if the original object or objects must be recovered.).freeze,
323
- "skos:historyNote" => %(Creation / Maintenance Notes: Composition level will generally be supplied by the repository, which should attempt to supply this value automatically. If the object was created by the repository, the creating routine knows the composition level and can supply this metadata. If the object is being ingested by the repository, repository programs will have to attempt to identify the composition level from the object itself or from externally supplied metadata.).freeze,
324
- "skos:scopeNote" => %(Usage Notes: A file or bitstream can be subject to multiple encodings that must be decoded in reverse order \(highest to lowest\). For example, file A may be compressed to create file B, which is encrypted to create file C. To recreate a copy of the base file A, one would have to unencrypt file C to create file B and then uncompress file B to create file A. A compositionLevel of zero indicates that the object is a base object and not subject to further decoding, while a level of 1 or higher indicates that one or more decodings must be applied. Numbering goes lowest to highest \(first encoded = 0\). 0 is base object; 1-n are subsequent encodings. Use 0 as the default if there is only one compositionLevel. When multiple file objects are bundled together as filestreams within a package file object \(e.g., a ZIP file\), the individual filestream objects are not composition levels of the package file object. They should be considered separate objects, each with their own composition levels. For example, two encrypted files zipped together and stored in an archive as one file object would be described as three separate objects, each with its own associated metadata. The storage location of the two inner objects would point to the ZIP file, but the ZIP file itself would have only a single composition level \(of zero\) whose format would be “zip.”).freeze,
325
- type: ["owl:FunctionalProperty".freeze, "owl:DatatypeProperty".freeze],
326
- "vs:term_status" => %(stable).freeze
326
+ :"skos:definition" => %(Definition: An indication of whether the object is subject to one or more processes of decoding or unbundling.).freeze,
327
+ :"skos:editorialNote" => %(Rationale: A file or bitstream can be encoded with compression, encryption, etc., or bundled with other files or bitstreams into larger packages. Knowing the order in which these actions are taken is important if the original object or objects must be recovered.).freeze,
328
+ :"skos:historyNote" => %(Creation / Maintenance Notes: Composition level will generally be supplied by the repository, which should attempt to supply this value automatically. If the object was created by the repository, the creating routine knows the composition level and can supply this metadata. If the object is being ingested by the repository, repository programs will have to attempt to identify the composition level from the object itself or from externally supplied metadata.).freeze,
329
+ :"skos:scopeNote" => %(Usage Notes: A file or bitstream can be subject to multiple encodings that must be decoded in reverse order \(highest to lowest\). For example, file A may be compressed to create file B, which is encrypted to create file C. To recreate a copy of the base file A, one would have to unencrypt file C to create file B and then uncompress file B to create file A. A compositionLevel of zero indicates that the object is a base object and not subject to further decoding, while a level of 1 or higher indicates that one or more decodings must be applied. Numbering goes lowest to highest \(first encoded = 0\). 0 is base object; 1-n are subsequent encodings. Use 0 as the default if there is only one compositionLevel. When multiple file objects are bundled together as filestreams within a package file object \(e.g., a ZIP file\), the individual filestream objects are not composition levels of the package file object. They should be considered separate objects, each with their own composition levels. For example, two encrypted files zipped together and stored in an archive as one file object would be described as three separate objects, each with its own associated metadata. The storage location of the two inner objects would point to the ZIP file, but the ZIP file itself would have only a single composition level \(of zero\) whose format would be “zip.”).freeze,
330
+ type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
331
+ :"vs:term_status" => %(stable).freeze
327
332
  property :hasContentLocation,
328
333
  domain: "premis:Storage".freeze,
329
334
  label: "hasContentLocation".freeze,
330
335
  range: "premis:ContentLocation".freeze,
331
- "rdfs:seeAlso" => %(Storage class definition and ContentLocation class definition).freeze,
336
+ :"rdfs:seeAlso" => %(Storage class definition and ContentLocation class definition).freeze,
332
337
  type: ["owl:FunctionalProperty".freeze, "owl:InverseFunctionalProperty".freeze, "owl:ObjectProperty".freeze],
333
- "vs:term_status" => %(stable).freeze
338
+ :"vs:term_status" => %(stable).freeze
334
339
  property :hasContentLocationType,
335
340
  comment: [%(Data Constraint: Values are taken from the SKOS vocabulary: http://id.loc.gov/vocabulary/preservation/contentLocationType).freeze, %(Extensions: One can use its own SKOS vocabulary to use for this property. The precondition to do this, is to link your SKOS concepts to the SKOS concepts of the id.loc.gov vocabulary.).freeze],
336
341
  domain: "premis:ContentLocation".freeze,
337
342
  label: "hasContentLocationType".freeze,
338
- "skos:definition" => %(Definition: The means of referencing the location of the content.).freeze,
339
- "skos:editorialNote" => %(Rationale: To understand the meaning of the value it is necessary to know what location scheme is used.).freeze,
343
+ :"skos:definition" => %(Definition: The means of referencing the location of the content.).freeze,
344
+ :"skos:editorialNote" => %(Rationale: To understand the meaning of the value it is necessary to know what location scheme is used.).freeze,
340
345
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
341
- "vs:term_status" => %(stable).freeze
346
+ :"vs:term_status" => %(stable).freeze
342
347
  property :hasContentLocationValue,
343
348
  comment: %(Examples: http://wwasearch.loc.gov/107th/200212107035/http://house.gov/langevin/ \(file\), c:\apache2\htdocs\index.html \(file\), 64 [offset from start of file c:\apache2\htdocs\image\logo.gif] \(bitstream\)).freeze,
344
349
  domain: "premis:ContentLocation".freeze,
345
350
  label: "hasContentLocationValue".freeze,
346
351
  range: "xsd:string".freeze,
347
- "skos:definition" => %(Definition: The reference to the location of the content used by the storage system.).freeze,
348
- "skos:scopeNote" => %(Usage Notes: This could be a fully qualified path and filename, or the information used by a resolution system \(e.g., a handle\) or the native information used by a storage management system. For a bitstream or filestream, this would probably be the reference point and offset of the starting position of the bitstream. It is up to the repository to determine the level of granularity that should be recorded.).freeze,
352
+ :"skos:definition" => %(Definition: The reference to the location of the content used by the storage system.).freeze,
353
+ :"skos:scopeNote" => %(Usage Notes: This could be a fully qualified path and filename, or the information used by a resolution system \(e.g., a handle\) or the native information used by a storage management system. For a bitstream or filestream, this would probably be the reference point and offset of the starting position of the bitstream. It is up to the repository to determine the level of granularity that should be recorded.).freeze,
349
354
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
350
- "vs:term_status" => %(stable).freeze
355
+ :"vs:term_status" => %(stable).freeze
351
356
  property :hasCopyrightJurisdiction,
352
357
  comment: [%(Data Constraint: Values should be taken from ISO 3166.).freeze, %(Examples: us, de, be).freeze],
353
358
  domain: "premis:CopyrightInformation".freeze,
354
359
  label: "hasCopyrightJurisdiction".freeze,
355
360
  range: "xsd:string".freeze,
356
- "skos:definition" => %(Definition: The country whose copyright laws apply.).freeze,
357
- "skos:editorialNote" => %(Rationale: Copyright law can vary from country to country.).freeze,
358
- type: ["owl:FunctionalProperty".freeze, "owl:DatatypeProperty".freeze],
359
- "vs:term_status" => %(stable).freeze
361
+ :"skos:definition" => %(Definition: The country whose copyright laws apply.).freeze,
362
+ :"skos:editorialNote" => %(Rationale: Copyright law can vary from country to country.).freeze,
363
+ type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
364
+ :"vs:term_status" => %(stable).freeze
360
365
  property :hasCopyrightStatus,
361
366
  comment: [%(Data Constraint: Values are taken from the SKOS vocabulary: http://id.loc.gov/vocabulary/preservation/copyrightStatus).freeze, %(Extensions: One can use its own SKOS vocabulary to use for this property. The precondition to do this, is to link your SKOS concepts to the SKOS concepts of the id.loc.gov vocabulary.).freeze],
362
367
  domain: "premis:CopyrightInformation".freeze,
363
368
  label: "hasCopyrightStatus".freeze,
364
- "skos:definition" => %(Definition: A coded designation for the copyright status of the object at the time the rights statement is recorded.).freeze,
369
+ :"skos:definition" => %(Definition: A coded designation for the copyright status of the object at the time the rights statement is recorded.).freeze,
365
370
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
366
- "vs:term_status" => %(stable).freeze
371
+ :"vs:term_status" => %(stable).freeze
367
372
  property :hasCopyrightStatusDeterminationDate,
368
373
  comment: [%(Data Constraint: To aid machine processing, value should use a structured form: xsd:dateTime).freeze, %(Example: 2001-10-26T19:32:52+00:00).freeze],
369
374
  domain: "premis:CopyrightInformation".freeze,
370
375
  label: "hasCopyrightStatusDeterminationDate".freeze,
371
376
  range: "xsd:dateTime".freeze,
372
- "skos:definition" => %(Definition: The date that the copyright status recorded in copyrightStatus was determined.).freeze,
373
- type: ["owl:FunctionalProperty".freeze, "owl:DatatypeProperty".freeze],
374
- "vs:term_status" => %(stable).freeze
377
+ :"skos:definition" => %(Definition: The date that the copyright status recorded in copyrightStatus was determined.).freeze,
378
+ type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
379
+ :"vs:term_status" => %(stable).freeze
375
380
  property :hasCreatingApplication,
376
381
  domain: "premis:ObjectCharacteristics".freeze,
377
382
  label: "hasCreatingApplication".freeze,
378
383
  range: "premis:CreatingApplication".freeze,
379
- "rdfs:seeAlso" => %(ObjectCharacteristics class definition and CreatingApplication class definition).freeze,
384
+ :"rdfs:seeAlso" => %(ObjectCharacteristics class definition and CreatingApplication class definition).freeze,
380
385
  type: "owl:ObjectProperty".freeze,
381
- "vs:term_status" => %(stable).freeze
386
+ :"vs:term_status" => %(stable).freeze
382
387
  property :hasCreatingApplicationName,
383
388
  comment: %(Example: MSWord).freeze,
384
389
  domain: "premis:CreatingApplication".freeze,
385
390
  label: "hasCreatingApplicationName".freeze,
386
391
  range: "xsd:string".freeze,
387
- "skos:definition" => %(Definition: A designation for the name of the software program that created the object.).freeze,
388
- "skos:scopeNote" => %(Usage Notes: The creatingApplication is the application that created the object in its current format, not the application that created the copy written to storage. For example, if a document is created by Microsoft Word and subsequently copied to archive storage by a repository’s Ingest program, the creatingApplication is Word, not the Ingest program.).freeze,
389
- type: ["owl:FunctionalProperty".freeze, "owl:DatatypeProperty".freeze],
390
- "vs:term_status" => %(stable).freeze
392
+ :"skos:definition" => %(Definition: A designation for the name of the software program that created the object.).freeze,
393
+ :"skos:scopeNote" => %(Usage Notes: The creatingApplication is the application that created the object in its current format, not the application that created the copy written to storage. For example, if a document is created by Microsoft Word and subsequently copied to archive storage by a repository’s Ingest program, the creatingApplication is Word, not the Ingest program.).freeze,
394
+ type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
395
+ :"vs:term_status" => %(stable).freeze
391
396
  property :hasCreatingApplicationVersion,
392
397
  comment: %(Example: 2000).freeze,
393
398
  domain: "premis:CreatingApplication".freeze,
394
399
  label: "hasCreatingApplicationVersion".freeze,
395
400
  range: "xsd:string".freeze,
396
- "skos:definition" => %(Definition: The version of the software program that created the object.).freeze,
397
- type: ["owl:FunctionalProperty".freeze, "owl:DatatypeProperty".freeze],
398
- "vs:term_status" => %(stable).freeze
401
+ :"skos:definition" => %(Definition: The version of the software program that created the object.).freeze,
402
+ type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
403
+ :"vs:term_status" => %(stable).freeze
399
404
  property :hasDateCreatedByApplication,
400
405
  comment: [%(Data Constraint: To aid machine processing, value should use a structured form: xsd:dateTime).freeze, %(Example: 2001-10-26T19:32:52+00:00).freeze],
401
406
  domain: "premis:CreatingApplication".freeze,
402
407
  label: "hasDateCreatedByApplication".freeze,
403
408
  range: "xsd:dateTime".freeze,
404
- "skos:definition" => %(Definition: The actual or approximate date and time the object was created.).freeze,
405
- "skos:scopeNote" => %(Usage Notes: Use the most precise date available. This is the date the object was created by the creating application, not the date any copy was made externally or by the repository. For example, if a file is created by Microsoft Word in 2001 and two copies are made in 2003, the dateCreatedByApplication of all three files is 2001. The date a file is written to storage can be recorded as an Event. If the object itself contains internal creation and modification dates, the modification date should be used as dateCreatedByApplication. If the application is a Web harvester capturing an object at a point of time, use for date captured.).freeze,
406
- type: ["owl:FunctionalProperty".freeze, "owl:DatatypeProperty".freeze],
407
- "vs:term_status" => %(stable).freeze
409
+ :"skos:definition" => %(Definition: The actual or approximate date and time the object was created.).freeze,
410
+ :"skos:scopeNote" => %(Usage Notes: Use the most precise date available. This is the date the object was created by the creating application, not the date any copy was made externally or by the repository. For example, if a file is created by Microsoft Word in 2001 and two copies are made in 2003, the dateCreatedByApplication of all three files is 2001. The date a file is written to storage can be recorded as an Event. If the object itself contains internal creation and modification dates, the modification date should be used as dateCreatedByApplication. If the application is a Web harvester capturing an object at a point of time, use for date captured.).freeze,
411
+ type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
412
+ :"vs:term_status" => %(stable).freeze
408
413
  property :hasDependency,
409
414
  domain: "premis:Environment".freeze,
410
415
  label: "hasDependency".freeze,
411
416
  range: "premis:Dependency".freeze,
412
- "rdfs:seeAlso" => %(Environment class definition and Dependency class definition).freeze,
417
+ :"rdfs:seeAlso" => %(Environment class definition and Dependency class definition).freeze,
413
418
  type: "owl:ObjectProperty".freeze,
414
- "vs:term_status" => %(stable).freeze
419
+ :"vs:term_status" => %(stable).freeze
415
420
  property :hasDependencyName,
416
421
  comment: %(Example: Additional Element Set for Language Corpora).freeze,
417
422
  domain: "premis:Dependency".freeze,
418
423
  label: "hasDependencyName".freeze,
419
424
  range: "xsd:string".freeze,
420
- "skos:definition" => %(Definition: A designation for a component or associated file needed by the representation or file.).freeze,
421
- "skos:editorialNote" => %(Rationale: It may not be self-evident from the dependencyIdentifier what the name of the object actually is.).freeze,
425
+ :"skos:definition" => %(Definition: A designation for a component or associated file needed by the representation or file.).freeze,
426
+ :"skos:editorialNote" => %(Rationale: It may not be self-evident from the dependencyIdentifier what the name of the object actually is.).freeze,
422
427
  type: "owl:DatatypeProperty".freeze,
423
- "vs:term_status" => %(stable).freeze
428
+ :"vs:term_status" => %(stable).freeze
424
429
  property :hasEndDate,
425
430
  comment: %(Data Constraint: To aid machine processing, value should use a structured form: xsd:dateTime).freeze,
426
431
  domain: "premis:ApplicableDates".freeze,
427
432
  label: "hasEndDate".freeze,
428
433
  range: "xsd:dateTime".freeze,
429
- "skos:definition" => %(Definition: The ending date of the permission granted.).freeze,
430
- "skos:scopeNote" => %(Usage Notes: Use “0000-00-00T00:00:00+00:00” for an open ended term of grant. Omit endDate if the ending date is unknown or the permission statement applies to many objects with different end dates.).freeze,
434
+ :"skos:definition" => %(Definition: The ending date of the permission granted.).freeze,
435
+ :"skos:scopeNote" => %(Usage Notes: Use “0000-00-00T00:00:00+00:00” for an open ended term of grant. Omit endDate if the ending date is unknown or the permission statement applies to many objects with different end dates.).freeze,
431
436
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
432
- "vs:term_status" => %(stable).freeze
437
+ :"vs:term_status" => %(stable).freeze
433
438
  property :hasEnvironment,
434
439
  domain: "premis:Object".freeze,
435
440
  label: "hasEnvironment".freeze,
436
441
  range: "premis:Environment".freeze,
437
- "rdfs:seeAlso" => %(Object class definition and Environment class definition).freeze,
442
+ :"rdfs:seeAlso" => %(Object class definition and Environment class definition).freeze,
438
443
  type: "owl:ObjectProperty".freeze,
439
- "vs:term_status" => %(stable).freeze
444
+ :"vs:term_status" => %(stable).freeze
440
445
  property :hasEnvironmentCharacteristic,
441
446
  comment: [%(Data Constraint: Values are taken from the SKOS vocabulary: http://id.loc.gov/vocabulary/preservation/environmentCharacteristic).freeze, %(Extensions: One can use its own SKOS vocabulary to use for this property. The precondition to do this, is to link your SKOS concepts to the SKOS concepts of the id.loc.gov vocabulary.).freeze],
442
447
  domain: "premis:Environment".freeze,
443
448
  label: "hasEnvironmentCharacteristic".freeze,
444
- "skos:definition" => %(Definition: An assessment of the extent to which the described environment supports its purpose.).freeze,
445
- "skos:editorialNote" => %(Rationale: If multiple environments are described, this element can help to distinguish among them.).freeze,
446
- type: ["owl:ObjectProperty".freeze, "owl:FunctionalProperty".freeze],
447
- "vs:term_status" => %(stable).freeze
449
+ :"skos:definition" => %(Definition: An assessment of the extent to which the described environment supports its purpose.).freeze,
450
+ :"skos:editorialNote" => %(Rationale: If multiple environments are described, this element can help to distinguish among them.).freeze,
451
+ type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
452
+ :"vs:term_status" => %(stable).freeze
448
453
  property :hasEnvironmentNote,
449
454
  comment: %(Example: This environment assumes that the PDF will be stored locally
450
455
  and used with a standalone PDF reader.).freeze,
451
456
  domain: "premis:Environment".freeze,
452
457
  label: "hasEnvironmentNote".freeze,
453
458
  range: "xsd:string".freeze,
454
- "skos:definition" => %(Definition: Additional information about the environment.).freeze,
455
- "skos:editorialNote" => %(Rationale: There may be a need to give a textual description of the environment for additional explanation.).freeze,
456
- "skos:scopeNote" => %(Usage Notes: This note could be used to record the context of the environment information. For example, if a file can be rendered through a PC client application or through a browser with a plug-in, this note could be used to identify which situation applies. The note should not be used for a textual description of environment information recorded more rigorously elsewhere.).freeze,
459
+ :"skos:definition" => %(Definition: Additional information about the environment.).freeze,
460
+ :"skos:editorialNote" => %(Rationale: There may be a need to give a textual description of the environment for additional explanation.).freeze,
461
+ :"skos:scopeNote" => %(Usage Notes: This note could be used to record the context of the environment information. For example, if a file can be rendered through a PC client application or through a browser with a plug-in, this note could be used to identify which situation applies. The note should not be used for a textual description of environment information recorded more rigorously elsewhere.).freeze,
457
462
  type: "owl:DatatypeProperty".freeze,
458
- "vs:term_status" => %(stable).freeze
463
+ :"vs:term_status" => %(stable).freeze
459
464
  property :hasEnvironmentPurpose,
460
465
  comment: [%(Data Constraint: Values are taken from the SKOS vocabulary: http://id.loc.gov/vocabulary/preservation/environmentPurpose).freeze, %(Extensions: One can use its own SKOS vocabulary to use for this property. The precondition to do this, is to link your SKOS concepts to the SKOS concepts of the id.loc.gov vocabulary.).freeze],
461
466
  domain: "premis:Environment".freeze,
462
467
  label: "hasEnvironmentPurpose".freeze,
463
- "skos:definition" => %(Definition: The use\(s\) supported by the specified environment.).freeze,
464
- "skos:editorialNote" => %(Rationale: Different environments can support different uses of objects. For example, the environment needed to edit and modify a file can be quite different than the environment needed to render it.).freeze,
468
+ :"skos:definition" => %(Definition: The use\(s\) supported by the specified environment.).freeze,
469
+ :"skos:editorialNote" => %(Rationale: Different environments can support different uses of objects. For example, the environment needed to edit and modify a file can be quite different than the environment needed to render it.).freeze,
465
470
  type: "owl:ObjectProperty".freeze,
466
- "vs:term_status" => %(stable).freeze
471
+ :"vs:term_status" => %(stable).freeze
467
472
  property :hasEvent,
468
473
  label: "hasEvent".freeze,
469
474
  range: "premis:Event".freeze,
470
- "rdfs:seeAlso" => %(Object class definition, the Agent class Definition and Event class definition).freeze,
471
- "skos:definition" => %(Definition: The event associated with the object or an agent.).freeze,
472
- "skos:scopeNote" => %(Usage Notes: Use to link to events that are not associated with relationships between objects, such as format validation, virus checking, etc.).freeze,
475
+ :"rdfs:seeAlso" => %(Object class definition, the Agent class Definition and Event class definition).freeze,
476
+ :"skos:definition" => %(Definition: The event associated with the object or an agent.).freeze,
477
+ :"skos:scopeNote" => %(Usage Notes: Use to link to events that are not associated with relationships between objects, such as format validation, virus checking, etc.).freeze,
473
478
  type: "owl:ObjectProperty".freeze,
474
- "vs:term_status" => %(stable).freeze
479
+ :"vs:term_status" => %(stable).freeze
475
480
  property :hasEventDateTime,
476
481
  comment: [%(Data Constraint: To aid machine processing, value should use a structured form: xsd:dateTime).freeze, %(Example: 2001-10-26T19:32:52+00:00).freeze],
477
482
  domain: "premis:Event".freeze,
478
483
  label: "hasEventDateTime".freeze,
479
484
  range: "xsd:dateTime".freeze,
480
- "skos:definition" => %(Definition: The single date and time, or date and time range, at or during which the event occurred.).freeze,
481
- "skos:scopeNote" => %(Usage Notes: Recommended practice is to record the most specific time possible and to designate the time zone.).freeze,
482
- type: ["owl:FunctionalProperty".freeze, "owl:DatatypeProperty".freeze],
483
- "vs:term_status" => %(stable).freeze
485
+ :"skos:definition" => %(Definition: The single date and time, or date and time range, at or during which the event occurred.).freeze,
486
+ :"skos:scopeNote" => %(Usage Notes: Recommended practice is to record the most specific time possible and to designate the time zone.).freeze,
487
+ type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
488
+ :"vs:term_status" => %(stable).freeze
484
489
  property :hasEventDetail,
485
490
  comment: %(Examples: Object permanently withdrawn by request of Caroline Hunt,
486
491
  Program=“MIGJP2JP2K”; version=“2.2”).freeze,
487
492
  domain: "premis:Event".freeze,
488
493
  label: "hasEventDetail".freeze,
489
494
  range: "xsd:string".freeze,
490
- "skos:definition" => %(Definition: Additional information about the event.).freeze,
491
- "skos:scopeNote" => %(Usage Notes: eventDetail is not intended to be processed by machine. It may record any information about an event and/or point to information stored elsewhere.).freeze,
495
+ :"skos:definition" => %(Definition: Additional information about the event.).freeze,
496
+ :"skos:scopeNote" => %(Usage Notes: eventDetail is not intended to be processed by machine. It may record any information about an event and/or point to information stored elsewhere.).freeze,
492
497
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
493
- "vs:term_status" => %(stable).freeze
498
+ :"vs:term_status" => %(stable).freeze
494
499
  property :hasEventOutcome,
495
500
  comment: [%(Data Constraint: Value should be taken from a controlled vocabulary.).freeze, %(Examples: 00 [a code meaning “action successfully completed”], CV-01 [a code meaning “checksum validated”]).freeze],
496
501
  domain: "premis:EventOutcomeInformation".freeze,
497
502
  label: "hasEventOutcome".freeze,
498
503
  range: "xsd:string".freeze,
499
- "skos:definition" => %(Definition: A categorization of the overall result of the event in terms of success, partial success, or failure.).freeze,
500
- "skos:editorialNote" => %(Rationale: A coded way of representing the outcome of an event may be useful for machine processing and reporting. If, for example, a fixity check fails, the event record provides both an actionable and a permanent record.).freeze,
501
- "skos:scopeNote" => %(Usage Notes: Recommended practice is to use a controlled vocabulary that a system can act upon automatically. More detail about the outcome may be recorded in eventOutcomeDetail. Recommended practice is to define events with sufficient granularity that each event has a single outcome.).freeze,
502
- type: ["owl:FunctionalProperty".freeze, "owl:DatatypeProperty".freeze],
503
- "vs:term_status" => %(stable).freeze
504
+ :"skos:definition" => %(Definition: A categorization of the overall result of the event in terms of success, partial success, or failure.).freeze,
505
+ :"skos:editorialNote" => %(Rationale: A coded way of representing the outcome of an event may be useful for machine processing and reporting. If, for example, a fixity check fails, the event record provides both an actionable and a permanent record.).freeze,
506
+ :"skos:scopeNote" => %(Usage Notes: Recommended practice is to use a controlled vocabulary that a system can act upon automatically. More detail about the outcome may be recorded in eventOutcomeDetail. Recommended practice is to define events with sufficient granularity that each event has a single outcome.).freeze,
507
+ type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
508
+ :"vs:term_status" => %(stable).freeze
504
509
  property :hasEventOutcomeDetail,
505
510
  domain: "premis:EventOutcomeInformation".freeze,
506
511
  label: "hasEventOutcomeDetail".freeze,
507
512
  range: "premis:EventOutcomeDetail".freeze,
508
- "rdfs:seeAlso" => %(EventOutcomeInformation class definition and EventOutcomeDetail class definition).freeze,
513
+ :"rdfs:seeAlso" => %(EventOutcomeInformation class definition and EventOutcomeDetail class definition).freeze,
509
514
  type: "owl:ObjectProperty".freeze,
510
- "vs:term_status" => %(stable).freeze
515
+ :"vs:term_status" => %(stable).freeze
511
516
  property :hasEventOutcomeDetailNote,
512
517
  comment: %(Examples: LZW compressed file, Non-standard tags found in header).freeze,
513
518
  domain: "premis:EventOutcomeDetail".freeze,
514
519
  label: "hasEventOutcomeDetailNote".freeze,
515
520
  range: "xsd:string".freeze,
516
- "skos:definition" => %(Definition: A detailed description of the result or product of the event in textual form.).freeze,
517
- "skos:editorialNote" => %(Rationale: Additional information in textual form may be needed about the outcome of the event.).freeze,
518
- type: ["owl:FunctionalProperty".freeze, "owl:DatatypeProperty".freeze],
519
- "vs:term_status" => %(stable).freeze
521
+ :"skos:definition" => %(Definition: A detailed description of the result or product of the event in textual form.).freeze,
522
+ :"skos:editorialNote" => %(Rationale: Additional information in textual form may be needed about the outcome of the event.).freeze,
523
+ type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
524
+ :"vs:term_status" => %(stable).freeze
520
525
  property :hasEventOutcomeInformation,
521
526
  domain: "premis:Event".freeze,
522
527
  label: "hasEventOutcomeInformation".freeze,
523
528
  range: "premis:EventOutcomeInformation".freeze,
524
- "rdfs:seeAlso" => %(Event class definition and EventOutcomeInformation class definition).freeze,
529
+ :"rdfs:seeAlso" => %(Event class definition and EventOutcomeInformation class definition).freeze,
525
530
  type: "owl:ObjectProperty".freeze,
526
- "vs:term_status" => %(stable).freeze
531
+ :"vs:term_status" => %(stable).freeze
527
532
  property :hasEventRelatedAgent,
528
- comment: [%(This propety links a Event instance to an Agent instance. Via this property a distinction can be made in the linkingAgent properties based on the domain.).freeze, %(Extensions: One can extend this property to use more fine grained properties by defining the fine grained properties as subproperties of this property.).freeze],
533
+ comment: [%(Extensions: One can extend this property to use more fine grained properties by defining the fine grained properties as subproperties of this property.).freeze, %(This propety links a Event instance to an Agent instance. Via this property a distinction can be made in the linkingAgent properties based on the domain.).freeze],
529
534
  domain: "premis:Event".freeze,
530
535
  label: "hasEventRelatedAgent".freeze,
531
536
  range: "premis:Agent".freeze,
532
- "rdfs:seeAlso" => %(http://id.loc.gov/vocabulary/preservation/eventRelatedAgentRole).freeze,
537
+ :"rdfs:seeAlso" => %(http://id.loc.gov/vocabulary/preservation/eventRelatedAgentRole).freeze,
533
538
  subPropertyOf: "premis:hasAgent".freeze,
534
539
  type: "owl:ObjectProperty".freeze,
535
- "vs:term_status" => %(unstable).freeze
540
+ :"vs:term_status" => %(unstable).freeze
536
541
  property :hasEventRelatedObject,
537
542
  comment: %(Extensions: One can extend this property to use more fine grained properties by defining the fine grained properties as subproperties of this property.).freeze,
538
543
  domain: "premis:Event".freeze,
539
544
  label: "hasEventRelatedObject".freeze,
540
545
  range: "premis:Object".freeze,
541
- "rdfs:seeAlso" => [%(Event class definition and Object class definition).freeze, %(http://id.loc.gov/vocabulary/preservation/eventRelatedObjectRole).freeze],
542
- "skos:definition" => %(Definition: Information about an object associated with an event.).freeze,
543
- "skos:editorialNote" => %(Rationale: Digital provenance often requires that relationships between objects and events are documented.).freeze,
546
+ :"rdfs:seeAlso" => [%(Event class definition and Object class definition).freeze, %(http://id.loc.gov/vocabulary/preservation/eventRelatedObjectRole).freeze],
547
+ :"skos:definition" => %(Definition: Information about an object associated with an event.).freeze,
548
+ :"skos:editorialNote" => %(Rationale: Digital provenance often requires that relationships between objects and events are documented.).freeze,
544
549
  subPropertyOf: "premis:hasObject".freeze,
545
550
  type: "owl:ObjectProperty".freeze,
546
- "vs:term_status" => %(stable).freeze
551
+ :"vs:term_status" => %(stable).freeze
547
552
  property :hasEventType,
548
553
  comment: [%(Data Constraint: Values are taken from the SKOS vocabulary: http://id.loc.gov/vocabulary/preservation/eventType).freeze, %(Extensions: One can use its own SKOS vocabulary to use for this property. The precondition to do this, is to link your SKOS concepts to the SKOS concepts of the id.loc.gov vocabulary.).freeze],
549
554
  domain: "premis:Event".freeze,
550
555
  label: "hasEventType".freeze,
551
- "skos:definition" => %(Definition: A categorization of the nature of the event.).freeze,
552
- "skos:editorialNote" => %(Rationale: Categorizing events will aid the preservation repository in machine processing of event information, particularly in reporting.).freeze,
553
- type: ["owl:ObjectProperty".freeze, "owl:FunctionalProperty".freeze],
554
- "vs:term_status" => %(testing).freeze
556
+ :"skos:definition" => %(Definition: A categorization of the nature of the event.).freeze,
557
+ :"skos:editorialNote" => %(Rationale: Categorizing events will aid the preservation repository in machine processing of event information, particularly in reporting.).freeze,
558
+ type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
559
+ :"vs:term_status" => %(testing).freeze
555
560
  property :hasFixity,
556
561
  domain: "premis:ObjectCharacteristics".freeze,
557
562
  label: "hasFixity".freeze,
558
563
  range: "premis:Fixity".freeze,
559
- "rdfs:seeAlso" => %(ObjectCharacteristics class definition and Fixity class definition).freeze,
564
+ :"rdfs:seeAlso" => %(ObjectCharacteristics class definition and Fixity class definition).freeze,
560
565
  type: ["owl:InverseFunctionalProperty".freeze, "owl:ObjectProperty".freeze],
561
- "vs:term_status" => %(stable).freeze
566
+ :"vs:term_status" => %(stable).freeze
562
567
  property :hasFormat,
563
568
  domain: "premis:ObjectCharacteristics".freeze,
564
569
  label: "hasFormat".freeze,
565
- "rdfs:seeAlso" => %(ObjectCharacteristics class definition and Format class definition. Next to the premis:Format class this property can also link to a pronom:file-format or udfr:AbstractFormat .).freeze,
570
+ :"rdfs:seeAlso" => %(ObjectCharacteristics class definition and Format class definition. Next to the premis:Format class this property can also link to a pronom:file-format or udfr:AbstractFormat .).freeze,
566
571
  type: "owl:ObjectProperty".freeze,
567
- "vs:term_status" => %(stable).freeze
572
+ :"vs:term_status" => %(stable).freeze
568
573
  property :hasFormatDesignation,
569
574
  domain: "premis:Format".freeze,
570
575
  label: "hasFormatDesignation".freeze,
571
576
  range: "premis:FormatDesignation".freeze,
572
- "rdfs:seeAlso" => %(Format class definition and FormatDesignation class definition).freeze,
573
- type: ["owl:ObjectProperty".freeze, "owl:FunctionalProperty".freeze],
574
- "vs:term_status" => %(stable).freeze
577
+ :"rdfs:seeAlso" => %(Format class definition and FormatDesignation class definition).freeze,
578
+ type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
579
+ :"vs:term_status" => %(stable).freeze
575
580
  property :hasFormatName,
576
581
  comment: [%(Data Constraint: Value should be taken from a controlled vocabulary.).freeze, %(Examples: Text/sgml, image/tiff/geotiff, Adobe PDF, DES, PGP, base64, unknown, LaTex).freeze],
577
582
  domain: "premis:FormatDesignation".freeze,
578
583
  label: "hasFormatName".freeze,
579
584
  range: "xsd:string".freeze,
580
- "skos:definition" => %(Definition: A designation of the format of the file or bitstream.).freeze,
581
- "skos:scopeNote" => %(Usage Notes: For unidentified formats, formatName may be recorded as “unknown”.).freeze,
585
+ :"skos:definition" => %(Definition: A designation of the format of the file or bitstream.).freeze,
586
+ :"skos:scopeNote" => %(Usage Notes: For unidentified formats, formatName may be recorded as “unknown”.).freeze,
582
587
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
583
- "vs:term_status" => %(stable).freeze
588
+ :"vs:term_status" => %(stable).freeze
584
589
  property :hasFormatNote,
585
590
  comment: %(Examples: tentative identification, disjunction, multiple format identifications found).freeze,
586
591
  domain: "premis:Format".freeze,
587
592
  label: "hasFormatNote".freeze,
588
593
  range: "xsd:string".freeze,
589
- "skos:definition" => %(Definition: Additional information about format.).freeze,
590
- "skos:editorialNote" => %(Rationale: Qualifying information may be needed to supplement format designation and registry information or record a status for identification.).freeze,
591
- "skos:scopeNote" => %(Usage Notes: The formatNote may contain free text, a reference pointer, or a value from a controlled list.).freeze,
594
+ :"skos:definition" => %(Definition: Additional information about format.).freeze,
595
+ :"skos:editorialNote" => %(Rationale: Qualifying information may be needed to supplement format designation and registry information or record a status for identification.).freeze,
596
+ :"skos:scopeNote" => %(Usage Notes: The formatNote may contain free text, a reference pointer, or a value from a controlled list.).freeze,
592
597
  type: "owl:DatatypeProperty".freeze,
593
- "vs:term_status" => %(stable).freeze
598
+ :"vs:term_status" => %(stable).freeze
594
599
  property :hasFormatRegistry,
595
600
  domain: "premis:Format".freeze,
596
601
  label: "hasFormatRegistry".freeze,
597
602
  range: "premis:FormatRegistry".freeze,
598
- "rdfs:seeAlso" => %(Format class definition and FormatRegistry class definition).freeze,
603
+ :"rdfs:seeAlso" => %(Format class definition and FormatRegistry class definition).freeze,
599
604
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
600
- "vs:term_status" => %(stable).freeze
605
+ :"vs:term_status" => %(stable).freeze
601
606
  property :hasFormatRegistryKey,
602
607
  comment: %(Examples: info:gdfr/fred/f/tiff, TIFF/6.0).freeze,
603
608
  domain: "premis:FormatRegistry".freeze,
604
609
  label: "hasFormatRegistryKey".freeze,
605
- "skos:definition" => %(Definition: The unique key used to reference an entry for this format in a format registry.).freeze,
606
- type: ["owl:FunctionalProperty".freeze, "owl:DatatypeProperty".freeze],
607
- "vs:term_status" => %(stable).freeze
610
+ :"skos:definition" => %(Definition: The unique key used to reference an entry for this format in a format registry.).freeze,
611
+ type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
612
+ :"vs:term_status" => %(stable).freeze
608
613
  property :hasFormatRegistryName,
609
614
  comment: %(Examples: PRONOM, www.nationalarchives.gov.uk/pronom, Representation Information Registry Repository, FRED: A format registry demonstration, release 0.07).freeze,
610
615
  domain: "premis:FormatRegistry".freeze,
611
616
  label: "hasFormatRegistryName".freeze,
612
617
  range: "xsd:string".freeze,
613
- "skos:definition" => %(Definition: A designation identifying the referenced format registry.).freeze,
614
- "skos:scopeNote" => %(Usage Notes: This can be a formal name, internally used name, or URI.).freeze,
618
+ :"skos:definition" => %(Definition: A designation identifying the referenced format registry.).freeze,
619
+ :"skos:scopeNote" => %(Usage Notes: This can be a formal name, internally used name, or URI.).freeze,
615
620
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
616
- "vs:term_status" => %(stable).freeze
621
+ :"vs:term_status" => %(stable).freeze
617
622
  property :hasFormatRegistryRole,
618
623
  comment: [%(Data Constraint: Values are taken from the SKOS vocabulary: http://id.loc.gov/vocabulary/preservation/formatRegistryRole).freeze, %(Extensions: One can use its own SKOS vocabulary to use for this property. The precondition to do this, is to link your SKOS concepts to the SKOS concepts of the id.loc.gov vocabulary.).freeze],
619
624
  domain: "premis:FormatRegistry".freeze,
620
625
  label: "hasFormatRegistryRole".freeze,
621
- "skos:definition" => %(Definition: The purpose or expected use of the registry.).freeze,
622
- "skos:editorialNote" => %(Rationale: The same format may be defined in different registries for different purposes. For example, one registry may give detailed format specifications while another has profile information. If multiple registries are recorded, this semantic unit can be used to distinguish among them.).freeze,
626
+ :"skos:definition" => %(Definition: The purpose or expected use of the registry.).freeze,
627
+ :"skos:editorialNote" => %(Rationale: The same format may be defined in different registries for different purposes. For example, one registry may give detailed format specifications while another has profile information. If multiple registries are recorded, this semantic unit can be used to distinguish among them.).freeze,
623
628
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
624
- "vs:term_status" => %(stable).freeze
629
+ :"vs:term_status" => %(stable).freeze
625
630
  property :hasFormatVersion,
626
631
  comment: %(Examples: 6.0, 2003).freeze,
627
632
  domain: "premis:FormatDesignation".freeze,
628
633
  label: "hasFormatVersion".freeze,
629
634
  range: "xsd:string".freeze,
630
- "skos:definition" => %(Definition: The version of the format named in formatName.).freeze,
631
- "skos:editorialNote" => %(Rationale: Many authority lists of format names are not granular enough to indicate version, for example, MIME Media types.).freeze,
632
- "skos:scopeNote" => %(Usage Notes: If the format is versioned, formatVersion should be recorded. It can be either a numeric or chronological designation.).freeze,
635
+ :"skos:definition" => %(Definition: The version of the format named in formatName.).freeze,
636
+ :"skos:editorialNote" => %(Rationale: Many authority lists of format names are not granular enough to indicate version, for example, MIME Media types.).freeze,
637
+ :"skos:scopeNote" => %(Usage Notes: If the format is versioned, formatVersion should be recorded. It can be either a numeric or chronological designation.).freeze,
633
638
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
634
- "vs:term_status" => %(stable).freeze
639
+ :"vs:term_status" => %(stable).freeze
635
640
  property :hasHardware,
636
641
  domain: "premis:Environment".freeze,
637
642
  label: "hasHardware".freeze,
638
643
  range: "premis:Hardware".freeze,
639
- "rdfs:seeAlso" => %(Environment class definition and Hardware class definition).freeze,
644
+ :"rdfs:seeAlso" => %(Environment class definition and Hardware class definition).freeze,
640
645
  type: "owl:ObjectProperty".freeze,
641
- "vs:term_status" => %(stable).freeze
646
+ :"vs:term_status" => %(stable).freeze
642
647
  property :hasHardwareName,
643
648
  comment: %(Examples: Intel Pentium III, 1 GB DRAM, Windows XPcompatible joystick).freeze,
644
649
  domain: "premis:Hardware".freeze,
645
650
  label: "hasHardwareName".freeze,
646
651
  range: "xsd:string".freeze,
647
- "skos:definition" => %(Definition: Manufacturer, model, and version \(if applicable\) of the hardware.).freeze,
648
- "skos:scopeNote" => %(Usage Notes: Include manufacturer when this helps to identify or disambiguate the product. Include version for firmware or other components where that information is pertinent.).freeze,
649
- type: ["owl:FunctionalProperty".freeze, "owl:DatatypeProperty".freeze],
650
- "vs:term_status" => %(stable).freeze
652
+ :"skos:definition" => %(Definition: Manufacturer, model, and version \(if applicable\) of the hardware.).freeze,
653
+ :"skos:scopeNote" => %(Usage Notes: Include manufacturer when this helps to identify or disambiguate the product. Include version for firmware or other components where that information is pertinent.).freeze,
654
+ type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
655
+ :"vs:term_status" => %(stable).freeze
651
656
  property :hasHardwareOtherInformation,
652
657
  comment: %(Examples: 32MB minimum, Required RAM for Apache is unknown).freeze,
653
658
  domain: "premis:Hardware".freeze,
654
659
  label: "hasHardwareOtherInformation".freeze,
655
660
  range: "xsd:string".freeze,
656
- "skos:definition" => %(Definition: Additional requirements or instructions related to the hardware referenced in hwName.).freeze,
657
- "skos:editorialNote" => %(Rationale: For hardware, the amount of computing resource needed \(such as memory, storage, processor speed, etc.\) may need to be documented. In addition, more detailed instructions may be needed to install and/or operate the hardware.).freeze,
658
- "skos:scopeNote" => %(Usage Notes: This could be an identifier or URI used to point to hardware documentation.).freeze,
661
+ :"skos:definition" => %(Definition: Additional requirements or instructions related to the hardware referenced in hwName.).freeze,
662
+ :"skos:editorialNote" => %(Rationale: For hardware, the amount of computing resource needed \(such as memory, storage, processor speed, etc.\) may need to be documented. In addition, more detailed instructions may be needed to install and/or operate the hardware.).freeze,
663
+ :"skos:scopeNote" => %(Usage Notes: This could be an identifier or URI used to point to hardware documentation.).freeze,
659
664
  type: "owl:DatatypeProperty".freeze,
660
- "vs:term_status" => %(stable).freeze
665
+ :"vs:term_status" => %(stable).freeze
661
666
  property :hasHardwareType,
662
667
  comment: [%(Data Constraint: Values are taken from the SKOS vocabulary: http://id.loc.gov/vocabulary/preservation/hardwareType).freeze, %(Extensions: One can use its own SKOS vocabulary to use for this property. The precondition to do this, is to link your SKOS concepts to the SKOS concepts of the id.loc.gov vocabulary.).freeze],
663
668
  domain: "premis:Hardware".freeze,
664
669
  label: "hasHardwareType".freeze,
665
- "skos:definition" => %(Definition: Class or category of the hardware.).freeze,
670
+ :"skos:definition" => %(Definition: Class or category of the hardware.).freeze,
666
671
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
667
- "vs:term_status" => %(stable).freeze
672
+ :"vs:term_status" => %(stable).freeze
668
673
  property :hasIdentifier,
669
674
  label: "hasIdentifier".freeze,
670
- "rdfs:seeAlso" => %(Identifier class definition).freeze,
671
- type: ["owl:ObjectProperty".freeze, "owl:InverseFunctionalProperty".freeze],
672
- "vs:term_status" => %(stable).freeze
675
+ :"rdfs:seeAlso" => %(Identifier class definition).freeze,
676
+ type: ["owl:InverseFunctionalProperty".freeze, "owl:ObjectProperty".freeze],
677
+ :"vs:term_status" => %(stable).freeze
673
678
  property :hasIdentifierType,
674
- comment: [%(Examples: DLC, DRS, hdl:4263537).freeze, %(Data Constraint: Value should be taken from controlled vocabulary.).freeze],
679
+ comment: [%(Data Constraint: Value should be taken from controlled vocabulary.).freeze, %(Examples: DLC, DRS, hdl:4263537).freeze],
675
680
  domain: "premis:Identifier".freeze,
676
681
  label: "hasIdentifierType".freeze,
677
682
  range: "xsd:string".freeze,
678
- "skos:definition" => %(Definition: A designation of the domain within which the identifier is unique.).freeze,
679
- "skos:editorialNote" => %(Rationale: Identifier values cannot be assumed to be unique across domains. The combination of identifierType and identifierValue should ensure uniqueness.).freeze,
680
- "skos:scopeNote" => %(Usage Notes: The type of the identifier may be implicit within the repository as long it can be explicitly communicated when the item is disseminated outside of it.).freeze,
681
- type: ["owl:FunctionalProperty".freeze, "owl:DatatypeProperty".freeze],
682
- "vs:term_status" => %(stable).freeze
683
+ :"skos:definition" => %(Definition: A designation of the domain within which the identifier is unique.).freeze,
684
+ :"skos:editorialNote" => %(Rationale: Identifier values cannot be assumed to be unique across domains. The combination of identifierType and identifierValue should ensure uniqueness.).freeze,
685
+ :"skos:scopeNote" => %(Usage Notes: The type of the identifier may be implicit within the repository as long it can be explicitly communicated when the item is disseminated outside of it.).freeze,
686
+ type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
687
+ :"vs:term_status" => %(stable).freeze
683
688
  property :hasIdentifierValue,
684
689
  comment: [%(Defnition: The value of the Identifier.).freeze, %(Examples: 0000000312 \(Representation\), IU2440 \(File\), WAC1943.56 \(File\), http://nrs.harvard.edu/urn-3:FHCL.Loeb:sal \(File\), IU2440-1 \(Bitstream\)).freeze],
685
690
  domain: "premis:Identifier".freeze,
686
691
  label: "hasIdentifierValue".freeze,
687
692
  range: "xsd:string".freeze,
688
- type: ["owl:FunctionalProperty".freeze, "owl:DatatypeProperty".freeze],
689
- "vs:term_status" => %(stable).freeze
693
+ type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
694
+ :"vs:term_status" => %(stable).freeze
690
695
  property :hasInhibitorKey,
691
696
  comment: %(Example: [DES decryption key]).freeze,
692
697
  domain: "premis:Inhibitors".freeze,
693
698
  label: "hasInhibitorKey".freeze,
694
699
  range: "xsd:string".freeze,
695
- "skos:definition" => %(Definition: The decryption key or password.).freeze,
696
- "skos:scopeNote" => %(Usage Notes: The key should be provided if known. However, it is not advisable to actually store the inhibitorKey in plain text in an unsecure database.).freeze,
697
- type: ["owl:FunctionalProperty".freeze, "owl:DatatypeProperty".freeze],
698
- "vs:term_status" => %(stable).freeze
700
+ :"skos:definition" => %(Definition: The decryption key or password.).freeze,
701
+ :"skos:scopeNote" => %(Usage Notes: The key should be provided if known. However, it is not advisable to actually store the inhibitorKey in plain text in an unsecure database.).freeze,
702
+ type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
703
+ :"vs:term_status" => %(stable).freeze
699
704
  property :hasInhibitorTarget,
700
705
  comment: [%(Data Constraint: Values are taken from the SKOS vocabulary: http://id.loc.gov/vocabulary/preservation/inhibitorTarget).freeze, %(Extensions: One can use its own SKOS vocabulary to use for this property. The precondition to do this, is to link your SKOS concepts to the SKOS concepts of the id.loc.gov vocabulary.).freeze],
701
706
  domain: "premis:Inhibitors".freeze,
702
707
  label: "hasInhibitorTarget".freeze,
703
- "skos:definition" => %(Definition: The content or function protected by the inhibitor.).freeze,
708
+ :"skos:definition" => %(Definition: The content or function protected by the inhibitor.).freeze,
704
709
  type: "owl:ObjectProperty".freeze,
705
- "vs:term_status" => %(stable).freeze
710
+ :"vs:term_status" => %(stable).freeze
706
711
  property :hasInhibitorType,
707
712
  comment: [%(Data Constraint: Values are taken from the SKOS vocabulary: http://id.loc.gov/vocabulary/preservation/inhibitorType).freeze, %(Extensions: One can use its own SKOS vocabulary to use for this property. The precondition to do this, is to link your SKOS concepts to the SKOS concepts of the id.loc.gov vocabulary.).freeze],
708
713
  domain: "premis:Inhibitors".freeze,
709
714
  label: "hasInhibitorType".freeze,
710
- "skos:definition" => %(Definition: The inhibitor method employed.).freeze,
715
+ :"skos:definition" => %(Definition: The inhibitor method employed.).freeze,
711
716
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
712
- "vs:term_status" => %(stable).freeze
717
+ :"vs:term_status" => %(stable).freeze
713
718
  property :hasInhibitors,
714
719
  domain: "premis:ObjectCharacteristics".freeze,
715
720
  label: "hasInhibitors".freeze,
716
721
  range: "premis:Inhibitors".freeze,
717
- "rdfs:seeAlso" => %(ObjectCharacteristics class definition and Inhibitors class definition).freeze,
722
+ :"rdfs:seeAlso" => %(ObjectCharacteristics class definition and Inhibitors class definition).freeze,
718
723
  type: "owl:ObjectProperty".freeze,
719
- "vs:term_status" => %(stable).freeze
724
+ :"vs:term_status" => %(stable).freeze
720
725
  property :hasIntellectualEntity,
721
726
  domain: "premis:Object".freeze,
722
727
  label: "hasIntellectualEntity".freeze,
723
728
  range: "premis:IntellectualEntity".freeze,
724
- "skos:definition" => %(Definition: An intellectual entity associated with the object.).freeze,
725
- "skos:scopeNote" => %(Usage Notes: Use to link to an intellectual entity that is related to the object. This may be a link to descriptive metadata that describes the intellectual entity or some other surrogate for it that can be referenced. This link will likely be to an identifier of an object that is at a higher conceptual level than the object for which the metadata is provided, for example, to a collection or parent object.).freeze,
729
+ :"skos:definition" => %(Definition: An intellectual entity associated with the object.).freeze,
730
+ :"skos:scopeNote" => %(Usage Notes: Use to link to an intellectual entity that is related to the object. This may be a link to descriptive metadata that describes the intellectual entity or some other surrogate for it that can be referenced. This link will likely be to an identifier of an object that is at a higher conceptual level than the object for which the metadata is provided, for example, to a collection or parent object.).freeze,
726
731
  type: "owl:ObjectProperty".freeze,
727
- "vs:term_status" => %(stable).freeze
732
+ :"vs:term_status" => %(stable).freeze
728
733
  property :hasKeyInformation,
729
734
  domain: "premis:Signature".freeze,
730
735
  label: "hasKeyInformation".freeze,
731
- "rdfs:seeAlso" => %(Signature class definition and KeyInformation class definition).freeze,
732
- type: ["owl:ObjectProperty".freeze, "owl:FunctionalProperty".freeze],
733
- "vs:term_status" => %(unstable).freeze
736
+ :"rdfs:seeAlso" => %(Signature class definition and KeyInformation class definition).freeze,
737
+ type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
738
+ :"vs:term_status" => %(unstable).freeze
734
739
  property :hasLicenseTerms,
735
740
  domain: "premis:LicenseInformation".freeze,
736
741
  label: "hasLicenseTerms".freeze,
737
742
  range: "xsd:string".freeze,
738
- "skos:definition" => %(Definition: Text describing the license or agreement by which permission was granted.).freeze,
739
- "skos:scopeNote" => %(Usage Notes: This could contain the actual text of the license or agreement or a paraphrase or summary.).freeze,
740
- type: ["owl:FunctionalProperty".freeze, "owl:DatatypeProperty".freeze],
741
- "vs:term_status" => %(stable).freeze
743
+ :"skos:definition" => %(Definition: Text describing the license or agreement by which permission was granted.).freeze,
744
+ :"skos:scopeNote" => %(Usage Notes: This could contain the actual text of the license or agreement or a paraphrase or summary.).freeze,
745
+ type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
746
+ :"vs:term_status" => %(stable).freeze
742
747
  property :hasMessageDigest,
743
748
  comment: %(Example: 7c9b35da4f2ebd436f1cf88e5a39b3a257edf4a22be3c955ac49da2e2107b67a1924419563).freeze,
744
749
  domain: "premis:Fixity".freeze,
745
750
  label: "hasMessageDigest".freeze,
746
751
  range: "xsd:string".freeze,
747
- "skos:definition" => %(Definition: The output of the message digest algorithm.).freeze,
748
- "skos:editorialNote" => %(Rationale: This must be stored so that it can be compared in future fixity checks.).freeze,
749
- type: ["owl:FunctionalProperty".freeze, "owl:DatatypeProperty".freeze],
750
- "vs:term_status" => %(stable).freeze
752
+ :"skos:definition" => %(Definition: The output of the message digest algorithm.).freeze,
753
+ :"skos:editorialNote" => %(Rationale: This must be stored so that it can be compared in future fixity checks.).freeze,
754
+ type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
755
+ :"vs:term_status" => %(stable).freeze
751
756
  property :hasMessageDigestAlgorithm,
752
757
  comment: [%(Data Constraint: Values are taken from the SKOS vocabulary: http://id.loc.gov/vocabulary/preservation/cryptographicHashFunctions).freeze, %(Extensions: One can use its own SKOS vocabulary to use for this property. The precondition to do this, is to link your SKOS concepts to the SKOS concepts of the id.loc.gov vocabulary.).freeze],
753
758
  domain: "premis:Fixity".freeze,
754
759
  label: "hasMessageDigestAlgorithm".freeze,
755
- "skos:definition" => %(Definition: The specific algorithm used to construct the message digest for the digital object.).freeze,
760
+ :"skos:definition" => %(Definition: The specific algorithm used to construct the message digest for the digital object.).freeze,
756
761
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
757
- "vs:term_status" => %(stable).freeze
762
+ :"vs:term_status" => %(stable).freeze
758
763
  property :hasMessageDigestOriginator,
759
764
  comment: %(Examples: DRS, A0000978).freeze,
760
765
  domain: "premis:Fixity".freeze,
761
766
  label: "hasMessageDigestOriginator".freeze,
762
767
  range: "xsd:string".freeze,
763
- "skos:definition" => %(Definition: The agent that created the original message digest that is compared in a fixity check.).freeze,
764
- "skos:editorialNote" => %(Rationale: A preservation repository may ingest files that have had message digests calculated by the submitter; checking these ensures that the file as received is the same as the file as sent. The repository may also ingest files that do not have message digests, and so must calculate the initial value upon ingest. It can be useful to know who calculated the initial value of the message digest.).freeze,
765
- "skos:historyNote" => %(Creation / Maintenance Notes: If the calculation of the initial message digest is treated by the repository as an Event, this information could be obtained from an Event record.).freeze,
766
- "skos:scopeNote" => %(Usage Notes: The originator of the message digest could be represented by a string representing the agent \(e.g., “NRS” referring to the archive itself\) or a pointer to an agent description \(e.g., “A0000987” taken here to be an agentIdentifierValue\).).freeze,
768
+ :"skos:definition" => %(Definition: The agent that created the original message digest that is compared in a fixity check.).freeze,
769
+ :"skos:editorialNote" => %(Rationale: A preservation repository may ingest files that have had message digests calculated by the submitter; checking these ensures that the file as received is the same as the file as sent. The repository may also ingest files that do not have message digests, and so must calculate the initial value upon ingest. It can be useful to know who calculated the initial value of the message digest.).freeze,
770
+ :"skos:historyNote" => %(Creation / Maintenance Notes: If the calculation of the initial message digest is treated by the repository as an Event, this information could be obtained from an Event record.).freeze,
771
+ :"skos:scopeNote" => %(Usage Notes: The originator of the message digest could be represented by a string representing the agent \(e.g., “NRS” referring to the archive itself\) or a pointer to an agent description \(e.g., “A0000987” taken here to be an agentIdentifierValue\).).freeze,
767
772
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
768
- "vs:term_status" => %(stable).freeze
773
+ :"vs:term_status" => %(stable).freeze
769
774
  property :hasObject,
770
775
  comment: %(Extensions: One can extend this property to use more fine grained properties by defining the fine grained properties as subproperties of this property.).freeze,
771
776
  label: "hasObject".freeze,
772
777
  range: "premis:Object".freeze,
773
- "rdfs:seeAlso" => [%(Event and RightsStatement class definition and Object class definition).freeze, %(http://id.loc.gov/vocabulary/preservation/eventRelatedObjectRole).freeze],
774
- "skos:definition" => %(Definition: Information about an object associated with an event or rightsstatement.).freeze,
775
- "skos:editorialNote" => %(Rationale: Digital provenance often requires that relationships between objects and events are documented. / Rights statements must be associated with the objects to which they pertain, either by linking from the rights statement to the object\(s\) or by linking from the object\(s\) to the rights statement. This provides the mechanism for the link from the rights statement to an object. For denoting the role of the object, when related to an event,one can extend this ontology be defining your own subproperties, such as those given by http://id.loc.gov/vocabulary/preservation/eventRelatedObjectRole.).freeze,
778
+ :"rdfs:seeAlso" => [%(Event and RightsStatement class definition and Object class definition).freeze, %(http://id.loc.gov/vocabulary/preservation/eventRelatedObjectRole).freeze],
779
+ :"skos:definition" => %(Definition: Information about an object associated with an event or rightsstatement.).freeze,
780
+ :"skos:editorialNote" => %(Rationale: Digital provenance often requires that relationships between objects and events are documented. / Rights statements must be associated with the objects to which they pertain, either by linking from the rights statement to the object\(s\) or by linking from the object\(s\) to the rights statement. This provides the mechanism for the link from the rights statement to an object. For denoting the role of the object, when related to an event,one can extend this ontology be defining your own subproperties, such as those given by http://id.loc.gov/vocabulary/preservation/eventRelatedObjectRole.).freeze,
776
781
  type: "owl:ObjectProperty".freeze,
777
- "vs:term_status" => %(stable).freeze
782
+ :"vs:term_status" => %(stable).freeze
778
783
  property :hasObjectCharacteristics,
779
784
  label: "hasObjectCharacteristics".freeze,
780
785
  range: "premis:ObjectCharacteristics".freeze,
781
- "rdfs:seeAlso" => %(Object class definition and ObjectCharacteristics class definition).freeze,
786
+ :"rdfs:seeAlso" => %(Object class definition and ObjectCharacteristics class definition).freeze,
782
787
  type: ["owl:InverseFunctionalProperty".freeze, "owl:ObjectProperty".freeze],
783
- "vs:term_status" => %(stable).freeze
788
+ :"vs:term_status" => %(stable).freeze
784
789
  property :hasOriginalName,
785
790
  comment: %(Example: N419.pdf).freeze,
786
791
  label: "hasOriginalName".freeze,
787
792
  range: "xsd:string".freeze,
788
- "skos:definition" => %(Definition: The name of the object as submitted to or harvested by the repository, before any renaming by the repository.).freeze,
789
- "skos:editorialNote" => %(Rationale: The name used within the preservation repository may not be known outside of the repository. A depositor might need to request a file by its original name. Also, the repository may need to reconstruct internal links for dissemination.).freeze,
790
- "skos:historyNote" => %(Creation / Maintenance Notes: This value would always be supplied to the repository by the submitter or harvesting application. How much of the file path to preserve would be up to the repository.).freeze,
791
- "skos:scopeNote" => %(Usage Notes: This is the name of the object as designated in the Submission Information Package \(SIP\). The object may have other names in different contexts. When two repositories are exchanging content, it would be important for the receiving repository to know and record the name of the representation at the originating repository. In the case of representations, this may be a directory name.).freeze,
792
- type: ["owl:FunctionalProperty".freeze, "owl:DatatypeProperty".freeze],
793
- "vs:term_status" => %(stable).freeze
793
+ :"skos:definition" => %(Definition: The name of the object as submitted to or harvested by the repository, before any renaming by the repository.).freeze,
794
+ :"skos:editorialNote" => %(Rationale: The name used within the preservation repository may not be known outside of the repository. A depositor might need to request a file by its original name. Also, the repository may need to reconstruct internal links for dissemination.).freeze,
795
+ :"skos:historyNote" => %(Creation / Maintenance Notes: This value would always be supplied to the repository by the submitter or harvesting application. How much of the file path to preserve would be up to the repository.).freeze,
796
+ :"skos:scopeNote" => %(Usage Notes: This is the name of the object as designated in the Submission Information Package \(SIP\). The object may have other names in different contexts. When two repositories are exchanging content, it would be important for the receiving repository to know and record the name of the representation at the originating repository. In the case of representations, this may be a directory name.).freeze,
797
+ type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
798
+ :"vs:term_status" => %(stable).freeze
794
799
  property :hasPreservationLevel,
795
800
  label: "hasPreservationLevel".freeze,
796
801
  range: "premis:PreservationLevel".freeze,
797
- "rdfs:seeAlso" => %(Object class definition and PreservationLevel class definition).freeze,
802
+ :"rdfs:seeAlso" => %(Object class definition and PreservationLevel class definition).freeze,
798
803
  type: "owl:ObjectProperty".freeze,
799
- "vs:term_status" => %(stable).freeze
804
+ :"vs:term_status" => %(stable).freeze
800
805
  property :hasPreservationLevelDateAssigned,
801
806
  comment: [%(Data Constraint: To aid machine processing, value should use a structured form: xsd:dateTime).freeze, %(Examples: 2001-10-26T19:32:52+00:00).freeze],
802
807
  domain: "premis:PreservationLevel".freeze,
803
808
  label: "hasPreservationLevelDateAssigned".freeze,
804
809
  range: "xsd:dateTime".freeze,
805
- "skos:definition" => %(Definition: The date, or date and time, when a particular preservationLevelValue was assigned to the object.).freeze,
806
- "skos:editorialNote" => %(Rationale: The preservationLevel applicable to an object is expected to be reviewed and changed over time, in response to changes in repository preservation requirements, policies, or capabilities relevant to the object. The date that the current preservationLevelValue was assigned aids review of decisions.).freeze,
810
+ :"skos:definition" => %(Definition: The date, or date and time, when a particular preservationLevelValue was assigned to the object.).freeze,
811
+ :"skos:editorialNote" => %(Rationale: The preservationLevel applicable to an object is expected to be reviewed and changed over time, in response to changes in repository preservation requirements, policies, or capabilities relevant to the object. The date that the current preservationLevelValue was assigned aids review of decisions.).freeze,
807
812
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
808
- "vs:term_status" => %(stable).freeze
813
+ :"vs:term_status" => %(stable).freeze
809
814
  property :hasPreservationLevelRationale,
810
815
  comment: %(Examples: user pays, legislation, defective file, bit-level preservation only available for this format).freeze,
811
816
  domain: "premis:PreservationLevel".freeze,
812
817
  label: "hasPreservationLevelRationale".freeze,
813
818
  range: "xsd:string".freeze,
814
- "skos:definition" => %(Definition: The reason a particular preservationLevelValue was applied to the object.).freeze,
815
- "skos:editorialNote" => %(Rationale: Application of a particular preservationLevelValue may require justification, especially if it differs from that usually applied according to repository policy.).freeze,
816
- "skos:scopeNote" => %(Usage Notes: This optional semantic unit records the reason for applying the preservationLevelValue. This information can be particularly important when the assigned preservationLevelValue differs from usual repository policy. For example, a repository may normally assign a preservationLevelValue of “full preservation” for JPEG2000 files, but detects that a particular file is defective. This may mean that the repository’s preservation strategy for JPEG2000 may not be effective for this particular file, so the repository may assign a preservationLevelValue of “bit-level preservation” to this file, recording “defective file” as the rationale. Similarly, legislative requirements or contractual agreements may require a higher level of preservation to be assigned to a particular object than would be assigned to that class of object according to usual policy. In this case, the rationale for the assignment may be recorded as “legislation” or “user pays”, for example. preservationLevelRationale may be repeated if more than one reason needs to be recorded.).freeze,
819
+ :"skos:definition" => %(Definition: The reason a particular preservationLevelValue was applied to the object.).freeze,
820
+ :"skos:editorialNote" => %(Rationale: Application of a particular preservationLevelValue may require justification, especially if it differs from that usually applied according to repository policy.).freeze,
821
+ :"skos:scopeNote" => %(Usage Notes: This optional semantic unit records the reason for applying the preservationLevelValue. This information can be particularly important when the assigned preservationLevelValue differs from usual repository policy. For example, a repository may normally assign a preservationLevelValue of “full preservation” for JPEG2000 files, but detects that a particular file is defective. This may mean that the repository’s preservation strategy for JPEG2000 may not be effective for this particular file, so the repository may assign a preservationLevelValue of “bit-level preservation” to this file, recording “defective file” as the rationale. Similarly, legislative requirements or contractual agreements may require a higher level of preservation to be assigned to a particular object than would be assigned to that class of object according to usual policy. In this case, the rationale for the assignment may be recorded as “legislation” or “user pays”, for example. preservationLevelRationale may be repeated if more than one reason needs to be recorded.).freeze,
817
822
  type: "owl:DatatypeProperty".freeze,
818
- "vs:term_status" => %(stable).freeze
823
+ :"vs:term_status" => %(stable).freeze
819
824
  property :hasPreservationLevelRole,
820
825
  comment: [%(Data Constraint: Values are taken from the SKOS vocabulary: http://id.loc.gov/vocabulary/preservation/preservationLevelRole).freeze, %(Extensions: One can use its own SKOS vocabulary to use for this property. The precondition to do this, is to link your SKOS concepts to the SKOS concepts of the id.loc.gov vocabulary.).freeze],
821
826
  domain: "premis:PreservationLevel".freeze,
822
827
  label: "hasPreservationLevelRole".freeze,
823
- "skos:definition" => %(Definition: A value indicating the context in which a set of preservation options is applicable.).freeze,
824
- "skos:editorialNote" => %(Rationale: Repositories may assign preservationLevelValues in different contexts which must be differentiated, and may need to record more than one context.).freeze,
828
+ :"skos:definition" => %(Definition: A value indicating the context in which a set of preservation options is applicable.).freeze,
829
+ :"skos:editorialNote" => %(Rationale: Repositories may assign preservationLevelValues in different contexts which must be differentiated, and may need to record more than one context.).freeze,
825
830
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
826
- "vs:term_status" => %(stable).freeze
831
+ :"vs:term_status" => %(stable).freeze
827
832
  property :hasPreservationLevelValue,
828
- comment: [%(Examples: bit-level, full, fully supported with future migrations \(File\), 0).freeze, %(Data Constraint: Value should be taken from a controlled vocabulary.).freeze],
833
+ comment: [%(Data Constraint: Value should be taken from a controlled vocabulary.).freeze, %(Examples: bit-level, full, fully supported with future migrations \(File\), 0).freeze],
829
834
  domain: "premis:PreservationLevel".freeze,
830
835
  label: "hasPreservationLevelValue".freeze,
831
836
  range: "xsd:string".freeze,
832
- "skos:definition" => %(Definition: A value indicating the set of preservation functions expected to be applied to the object.).freeze,
833
- "skos:editorialNote" => %(Rationale: Some preservation repositories will offer multiple preservation options depending on factors such as the value or uniqueness of the material, the “preservability” of the format, the amount the customer is willing to pay, etc.).freeze,
834
- "skos:historyNote" => %(Creation / Maintenance Notes: The preservation level may be assigned by the repository or requested by the depositor and submitted as metadata.).freeze,
835
- "skos:scopeNote" => %(Usage Notes: Only one preservationLevelValue may be recorded per preservationLevel container. If a further preservationLevelValue applies to the object in a different context, a separate preservationLevel container should be repeated.).freeze,
837
+ :"skos:definition" => %(Definition: A value indicating the set of preservation functions expected to be applied to the object.).freeze,
838
+ :"skos:editorialNote" => %(Rationale: Some preservation repositories will offer multiple preservation options depending on factors such as the value or uniqueness of the material, the “preservability” of the format, the amount the customer is willing to pay, etc.).freeze,
839
+ :"skos:historyNote" => %(Creation / Maintenance Notes: The preservation level may be assigned by the repository or requested by the depositor and submitted as metadata.).freeze,
840
+ :"skos:scopeNote" => %(Usage Notes: Only one preservationLevelValue may be recorded per preservationLevel container. If a further preservationLevelValue applies to the object in a different context, a separate preservationLevel container should be repeated.).freeze,
836
841
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
837
- "vs:term_status" => %(stable).freeze
842
+ :"vs:term_status" => %(stable).freeze
838
843
  property :hasRelatedObject,
839
844
  domain: "premis:RelatedObjectIdentification".freeze,
840
845
  label: "hasRelatedObject".freeze,
841
846
  range: "premis:Object".freeze,
842
- "skos:definition" => %(Definition: This property related to all object belonging to a RelatedObjectIdentification to describe the related objects as an aggregation.).freeze,
847
+ :"skos:definition" => %(Definition: This property related to all object belonging to a RelatedObjectIdentification to describe the related objects as an aggregation.).freeze,
843
848
  type: "owl:ObjectProperty".freeze,
844
- "vs:term_status" => %(stable).freeze
849
+ :"vs:term_status" => %(stable).freeze
845
850
  property :hasRelatedObjectSequence,
846
851
  domain: "premis:RelatedObjectIdentification".freeze,
847
852
  label: "hasRelatedObjectSequence".freeze,
848
853
  range: "xsd:string".freeze,
849
- "skos:definition" => %(Definition: The order of the related object relative to other objects with the same type of relationship.).freeze,
850
- "skos:editorialNote" => %(Rationale: This semantic unit is particularly useful for structural relationships. In order to reconstruct a representation, it may be necessary to know the order of components with sibling or part-whole relationships. For example, to render a page-image book, it is necessary to know the order of files representing pages.).freeze,
854
+ :"skos:definition" => %(Definition: The order of the related object relative to other objects with the same type of relationship.).freeze,
855
+ :"skos:editorialNote" => %(Rationale: This semantic unit is particularly useful for structural relationships. In order to reconstruct a representation, it may be necessary to know the order of components with sibling or part-whole relationships. For example, to render a page-image book, it is necessary to know the order of files representing pages.).freeze,
851
856
  type: "owl:DatatypeProperty".freeze,
852
- "vs:term_status" => %(stable).freeze
857
+ :"vs:term_status" => %(stable).freeze
853
858
  property :hasRelatedStatuteInformation,
854
859
  domain: "premis:StatuteInformation".freeze,
855
860
  label: "hasRelatedStatuteInformation".freeze,
856
861
  range: "premis:StatuteInformation".freeze,
857
- "skos:definition" => %(Definition: This property is used to relate certain StatuteInformation instances. The rationale for this is that in the PREMIS data dictionary, a RightsStatement instance can consist of several StatuteInformation instances. In the PREMIS OWL ontology, the StatuteInformation class is subclassed to RightsStatement. The restore the relation between the grouped StatuteInformation instances of a RightsStatement of the PREMIS data dictionary, this property is used is PREMIS OWL.).freeze,
862
+ :"skos:definition" => %(Definition: This property is used to relate certain StatuteInformation instances. The rationale for this is that in the PREMIS data dictionary, a RightsStatement instance can consist of several StatuteInformation instances. In the PREMIS OWL ontology, the StatuteInformation class is subclassed to RightsStatement. The restore the relation between the grouped StatuteInformation instances of a RightsStatement of the PREMIS data dictionary, this property is used is PREMIS OWL.).freeze,
858
863
  type: "owl:ObjectProperty".freeze,
859
- "vs:term_status" => %(stable).freeze
864
+ :"vs:term_status" => %(stable).freeze
860
865
  property :hasRelationship,
861
- comment: [%(The LOC will provide a SKOS vocabulary, where the concepts can also be used as object properties at http://id.loc.gov/. These relationships will capture the relationship type and subtype. One can define its own relationships, but for interoperability reasons, these should be linked to or made a subproperty of the properties of the LOC vocabulary.).freeze, %(Extensions: One can extend this property to use more fine grained properties by defining the fine grained properties as subproperties of this property.).freeze],
866
+ comment: [%(Extensions: One can extend this property to use more fine grained properties by defining the fine grained properties as subproperties of this property.).freeze, %(The LOC will provide a SKOS vocabulary, where the concepts can also be used as object properties at http://id.loc.gov/. These relationships will capture the relationship type and subtype. One can define its own relationships, but for interoperability reasons, these should be linked to or made a subproperty of the properties of the LOC vocabulary.).freeze],
862
867
  domain: "premis:Object".freeze,
863
868
  label: "hasRelationship".freeze,
864
- "rdfs:seeAlso" => [%(http://id.loc.gov/vocabulary/preservation/relationshipType).freeze, %(http://id.loc.gov/vocabulary/preservation/relationshipSubType).freeze],
865
- "skos:definition" => %(Definition: This property links one object to one or more other objects.).freeze,
869
+ :"rdfs:seeAlso" => [%(http://id.loc.gov/vocabulary/preservation/relationshipSubType).freeze, %(http://id.loc.gov/vocabulary/preservation/relationshipType).freeze],
870
+ :"skos:definition" => %(Definition: This property links one object to one or more other objects.).freeze,
866
871
  type: "owl:ObjectProperty".freeze,
867
- "vs:term_status" => %(testing).freeze
872
+ :"vs:term_status" => %(testing).freeze
868
873
  property :hasRestriction,
869
874
  comment: %(Examples: No more than three, Allowed only after one year of archival retention has elapsed, Rightsholder must be notified after completion of act).freeze,
870
875
  domain: "premis:RightsGranted".freeze,
871
876
  label: "hasRestriction".freeze,
872
877
  range: "xsd:string".freeze,
873
- "skos:definition" => %(Definition: A condition or limitation on the act.).freeze,
878
+ :"skos:definition" => %(Definition: A condition or limitation on the act.).freeze,
874
879
  type: "owl:DatatypeProperty".freeze,
875
- "vs:term_status" => %(stable).freeze
880
+ :"vs:term_status" => %(stable).freeze
876
881
  property :hasRightsDocumentation,
877
882
  domain: "premis:RightsStatement".freeze,
878
883
  label: "hasRightsDocumentation".freeze,
879
884
  range: "premis:RightsDocumentation".freeze,
880
- "rdfs:seeAlso" => %(RiightsDocumentation class definition).freeze,
885
+ :"rdfs:seeAlso" => %(RiightsDocumentation class definition).freeze,
881
886
  type: "owl:ObjectProperty".freeze,
882
- "vs:term_status" => %(stable).freeze
887
+ :"vs:term_status" => %(stable).freeze
883
888
  property :hasRightsDocumentationRole,
884
889
  domain: "premis:RightsDocumentation".freeze,
885
890
  label: "hasRightsDocumentationRole".freeze,
886
891
  range: "skos:Concept".freeze,
887
- "skos:definition" => %(Definition: This property denotes the role of the related documentation. The value must be taken from a skos vocabulary. A value indicating the purpose or expected use of the documentation being identified.).freeze,
888
- "skos:editorialNote" => %(Rationale: This information distinguishes the purpose of the supporting documentation especially when there are multiple documentation identifiers.).freeze,
892
+ :"skos:definition" => %(Definition: This property denotes the role of the related documentation. The value must be taken from a skos vocabulary. A value indicating the purpose or expected use of the documentation being identified.).freeze,
893
+ :"skos:editorialNote" => %(Rationale: This information distinguishes the purpose of the supporting documentation especially when there are multiple documentation identifiers.).freeze,
889
894
  type: "owl:ObjectProperty".freeze,
890
- "vs:term_status" => %(stable).freeze
895
+ :"vs:term_status" => %(stable).freeze
891
896
  property :hasRightsGranted,
892
897
  domain: "premis:RightsStatement".freeze,
893
898
  label: "hasRightsGranted".freeze,
894
899
  range: "premis:RightsGranted".freeze,
895
- "rdfs:seeAlso" => %(RightsStatement class definition and RightsGranted class definition).freeze,
900
+ :"rdfs:seeAlso" => %(RightsStatement class definition and RightsGranted class definition).freeze,
896
901
  type: "owl:ObjectProperty".freeze,
897
- "vs:term_status" => %(stable).freeze
902
+ :"vs:term_status" => %(stable).freeze
898
903
  property :hasRightsGrantedNote,
899
904
  domain: "premis:RightsGranted".freeze,
900
905
  label: "hasRightsGrantedNote".freeze,
901
906
  range: "xsd:string".freeze,
902
- "skos:definition" => %(Definition: Additional information about the rights granted.).freeze,
903
- "skos:editorialNote" => %(Rationale: A textual description of the rights granted may be needed for additional explanation.).freeze,
904
- "skos:scopeNote" => %(Usage Notes: This semantic unit may include a statement about risk assessment, for example, when a repository is not certain about what permissions have been granted.).freeze,
907
+ :"skos:definition" => %(Definition: Additional information about the rights granted.).freeze,
908
+ :"skos:editorialNote" => %(Rationale: A textual description of the rights granted may be needed for additional explanation.).freeze,
909
+ :"skos:scopeNote" => %(Usage Notes: This semantic unit may include a statement about risk assessment, for example, when a repository is not certain about what permissions have been granted.).freeze,
905
910
  type: "owl:DatatypeProperty".freeze,
906
- "vs:term_status" => %(stable).freeze
911
+ :"vs:term_status" => %(stable).freeze
907
912
  property :hasRightsRelatedAgent,
908
913
  comment: [%(Extensions: One can extend this property to use more fine grained properties by defining the fine grained properties as subproperties of this property.).freeze, %(This propety links a RightsStatement instance to an Agent instance. Via this property a distinction can be made in the linkingAgent properties based on the domain.).freeze],
909
914
  domain: "premis:RightsStatement".freeze,
910
915
  label: "hasRightsRelatedAgent".freeze,
911
916
  range: "premis:Agent".freeze,
912
- "rdfs:seeAlso" => %(http://id.loc.gov/vocabulary/preservation/rightsRelatedAgentRole).freeze,
917
+ :"rdfs:seeAlso" => %(http://id.loc.gov/vocabulary/preservation/rightsRelatedAgentRole).freeze,
913
918
  subPropertyOf: "premis:hasAgent".freeze,
914
919
  type: "owl:ObjectProperty".freeze,
915
- "vs:term_status" => %(unstable).freeze
920
+ :"vs:term_status" => %(unstable).freeze
916
921
  property :hasRightsStatement,
917
922
  label: "hasRightsStatement".freeze,
918
923
  range: "premis:RightsStatement".freeze,
919
- "rdfs:seeAlso" => %(RightsStatement class definition).freeze,
920
- "skos:definition" => %(Definition: A rights statement associated with the object.).freeze,
921
- "skos:editorialNote" => %(Rationale: A repository may choose to link from a rights statement to an object or from an object to a rights statement or both.).freeze,
924
+ :"rdfs:seeAlso" => %(RightsStatement class definition).freeze,
925
+ :"skos:definition" => %(Definition: A rights statement associated with the object.).freeze,
926
+ :"skos:editorialNote" => %(Rationale: A repository may choose to link from a rights statement to an object or from an object to a rights statement or both.).freeze,
922
927
  type: "owl:ObjectProperty".freeze,
923
- "vs:term_status" => %(stable).freeze
928
+ :"vs:term_status" => %(stable).freeze
924
929
  property :hasRightsStatementNote,
925
930
  comment: %(Examples: Copyright expiration expected in 2010 unless renewed.
926
931
  License is embedded in XMP block in file header.).freeze,
927
932
  domain: "premis:RightsStatement".freeze,
928
933
  label: "hasRightsStatementNote".freeze,
929
934
  range: "xsd:string".freeze,
930
- "skos:definition" => %(Definition: Additional information about the RightsStatement of an object.).freeze,
935
+ :"skos:definition" => %(Definition: Additional information about the RightsStatement of an object.).freeze,
931
936
  type: "owl:DatatypeProperty".freeze,
932
- "vs:term_status" => %(stable).freeze
937
+ :"vs:term_status" => %(stable).freeze
933
938
  property :hasSignature,
934
939
  label: "hasSignature".freeze,
935
940
  range: "premis:Signature".freeze,
936
- "rdfs:seeAlso" => %(Signature class definition).freeze,
941
+ :"rdfs:seeAlso" => %(Signature class definition).freeze,
937
942
  type: "owl:ObjectProperty".freeze,
938
- "vs:term_status" => %(stable).freeze
943
+ :"vs:term_status" => %(stable).freeze
939
944
  property :hasSignatureEncoding,
940
945
  comment: [%(Data Constraint: Values are taken from the SKOS vocabulary: http://id.loc.gov/vocabulary/signatureEncoding).freeze, %(Extensions: One can use its own SKOS vocabulary to use for this property. The precondition to do this, is to link your SKOS concepts to the SKOS concepts of the id.loc.gov vocabulary.).freeze],
941
946
  domain: "premis:Signature".freeze,
942
947
  label: "hasSignatureEncoding".freeze,
943
- "skos:definition" => %(Definition: The encoding used for the values of signatureValue, keyInformation.).freeze,
944
- "skos:editorialNote" => %(Rationale: These values cannot be interpreted correctly if the encoding is unknown.).freeze,
945
- type: ["owl:ObjectProperty".freeze, "owl:FunctionalProperty".freeze],
946
- "vs:term_status" => %(stable).freeze
948
+ :"skos:definition" => %(Definition: The encoding used for the values of signatureValue, keyInformation.).freeze,
949
+ :"skos:editorialNote" => %(Rationale: These values cannot be interpreted correctly if the encoding is unknown.).freeze,
950
+ type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
951
+ :"vs:term_status" => %(stable).freeze
947
952
  property :hasSignatureMethod,
948
953
  comment: [%(Data Constraint: Values are taken from a SKOS vocabulary).freeze, %(Extensions: One can use its own SKOS vocabulary to use for this property. The precondition to do this, is to link your SKOS concepts to the SKOS concepts of the id.loc.gov vocabulary.).freeze],
949
954
  domain: "premis:Signature".freeze,
950
955
  label: "hasSignatureMethod".freeze,
951
956
  range: "skos:Concept".freeze,
952
- "skos:definition" => %(Definition: A designation for the encryption and hash algorithms used for signature generation.).freeze,
953
- "skos:editorialNote" => %(Rationale: The same algorithms must be used for signature validation.).freeze,
957
+ :"skos:definition" => %(Definition: A designation for the encryption and hash algorithms used for signature generation.).freeze,
958
+ :"skos:editorialNote" => %(Rationale: The same algorithms must be used for signature validation.).freeze,
954
959
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
955
- "vs:term_status" => %(stable).freeze
960
+ :"vs:term_status" => %(stable).freeze
956
961
  property :hasSignatureProperties,
957
962
  domain: "premis:Signature".freeze,
958
963
  label: "hasSignatureProperties".freeze,
959
964
  range: "xsd:string".freeze,
960
- "skos:definition" => %(Definition: Additional information about the generation of the signature.).freeze,
961
- "skos:scopeNote" => %(Usage Notes: This may include the date/time of signature generation, the serial number of the cryptographic hardware used, or other information related to the generation of the signature. Repositories will likely want to define a suitably granular structure to signatureProperties.).freeze,
965
+ :"skos:definition" => %(Definition: Additional information about the generation of the signature.).freeze,
966
+ :"skos:scopeNote" => %(Usage Notes: This may include the date/time of signature generation, the serial number of the cryptographic hardware used, or other information related to the generation of the signature. Repositories will likely want to define a suitably granular structure to signatureProperties.).freeze,
962
967
  type: "owl:DatatypeProperty".freeze,
963
- "vs:term_status" => %(stable).freeze
968
+ :"vs:term_status" => %(stable).freeze
964
969
  property :hasSignatureValidationRules,
965
970
  domain: "premis:Signature".freeze,
966
971
  label: "hasSignatureValidationRules".freeze,
967
972
  range: "xsd:string".freeze,
968
- "skos:definition" => %(Definition: The operations to be performed in order to validate the digital signature.).freeze,
969
- "skos:editorialNote" => %(Rationale: The repository should not assume that the procedure for validating any particular signature will be known many years in the future without documentation.).freeze,
970
- "skos:scopeNote" => %(Usage Notes: This may include the canonicalization method used before calculating the message digest, if the object was normalized before signing. This value could also be a pointer to archive documentation.).freeze,
973
+ :"skos:definition" => %(Definition: The operations to be performed in order to validate the digital signature.).freeze,
974
+ :"skos:editorialNote" => %(Rationale: The repository should not assume that the procedure for validating any particular signature will be known many years in the future without documentation.).freeze,
975
+ :"skos:scopeNote" => %(Usage Notes: This may include the canonicalization method used before calculating the message digest, if the object was normalized before signing. This value could also be a pointer to archive documentation.).freeze,
971
976
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
972
- "vs:term_status" => %(stable).freeze
977
+ :"vs:term_status" => %(stable).freeze
973
978
  property :hasSignatureValue,
974
979
  comment: %(Example: juS5RhJ884qoFR8flVXd/rbrSDVGn40CapgB7qeQiT+rr0NekEQ6BHhUA8dT3+BCTBUQI0dBjlml9lwzENXvS83zRECjzXbMRTUtVZiPZG2pqKPnL2YU3A9645UCjTXU+jgFumv7k78hieAGDzNci+PQ9KRmm//icT7JaYztgt4=).freeze,
975
980
  domain: "premis:Signature".freeze,
976
981
  label: "hasSignatureValue".freeze,
977
982
  range: "xsd:string".freeze,
978
- "skos:definition" => %(Definition: The digital signature; a value generated from the application of a private key to a message digest.).freeze,
979
- type: ["owl:FunctionalProperty".freeze, "owl:DatatypeProperty".freeze],
980
- "vs:term_status" => %(stable).freeze
983
+ :"skos:definition" => %(Definition: The digital signature; a value generated from the application of a private key to a message digest.).freeze,
984
+ type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
985
+ :"vs:term_status" => %(stable).freeze
981
986
  property :hasSigner,
982
987
  domain: "premis:Signature".freeze,
983
988
  label: "hasSigner".freeze,
984
989
  range: ["premis:Agent".freeze, "xsd:string".freeze],
985
- "skos:definition" => %(Definition: The individual, institution, or authority responsible for generating the signature.).freeze,
986
- "skos:editorialNote" => %(Rationale: The signer might also be carried in the keyInformation, but it can be accessed more conveniently if recorded here.).freeze,
987
- "skos:scopeNote" => %(Usage Notes: If the signer is an Agent known to the repository, this property can directly link to this agent. The consequence is punning: a datatype property and object property with the same name, i.e., :signer).freeze,
990
+ :"skos:definition" => %(Definition: The individual, institution, or authority responsible for generating the signature.).freeze,
991
+ :"skos:editorialNote" => %(Rationale: The signer might also be carried in the keyInformation, but it can be accessed more conveniently if recorded here.).freeze,
992
+ :"skos:scopeNote" => %(Usage Notes: If the signer is an Agent known to the repository, this property can directly link to this agent. The consequence is punning: a datatype property and object property with the same name, i.e., :signer).freeze,
988
993
  type: "owl:AnnotationProperty".freeze,
989
- "vs:term_status" => %(stable).freeze
994
+ :"vs:term_status" => %(stable).freeze
990
995
  property :hasSignificantProperties,
991
996
  domain: "premis:Object".freeze,
992
997
  label: "hasSignificantProperties".freeze,
993
998
  range: "premis:SignificantProperties".freeze,
994
- "rdfs:seeAlso" => %(Object class definition and SignificantProperties class definition).freeze,
999
+ :"rdfs:seeAlso" => %(Object class definition and SignificantProperties class definition).freeze,
995
1000
  type: "owl:ObjectProperty".freeze,
996
- "vs:term_status" => %(stable).freeze
1001
+ :"vs:term_status" => %(stable).freeze
997
1002
  property :hasSignificantPropertiesType,
998
1003
  comment: %(Examples: content, structure, behavior, page count, page width, typeface, hyperlinks \(representation\), image count \(representation\), color space [for an embedded image] \(bitstream\)).freeze,
999
1004
  domain: "premis:SignificantProperties".freeze,
1000
1005
  label: "hasSignificantPropertiesType".freeze,
1001
1006
  range: "xsd:string".freeze,
1002
- "skos:definition" => %(Definition: The aspect, facet, or attribute of an object about which significant properties are being described.).freeze,
1003
- "skos:editorialNote" => %(Rationale: Repositories may choose to describe significant properties based on a particular aspect or attribute of an object.).freeze,
1004
- "skos:scopeNote" => %(Usage Notes: This semantic unit is optional and may be used as part of a facet:detail pair with significantPropertiesValue.).freeze,
1005
- type: ["owl:FunctionalProperty".freeze, "owl:DatatypeProperty".freeze],
1006
- "vs:term_status" => %(stable).freeze
1007
+ :"skos:definition" => %(Definition: The aspect, facet, or attribute of an object about which significant properties are being described.).freeze,
1008
+ :"skos:editorialNote" => %(Rationale: Repositories may choose to describe significant properties based on a particular aspect or attribute of an object.).freeze,
1009
+ :"skos:scopeNote" => %(Usage Notes: This semantic unit is optional and may be used as part of a facet:detail pair with significantPropertiesValue.).freeze,
1010
+ type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
1011
+ :"vs:term_status" => %(stable).freeze
1007
1012
  property :hasSignificantPropertiesValue,
1008
1013
  comment: %(Examples: [For a Web page containing animation that is not considered essential] Content only, [For detail associated with a significantPropertiesType of "behavior"] Hyperlinks traversable, [For a Word document with embedded links that are not considered essential] Content only, [For detail associated with significantPropertiesType of "behavior"] Editable, [For detail associated with a significantPropertiesType of "page width"] 210 mm, [For a PDF with an embedded graph, where the lines' color determines the lines' meaning] Color, [For detail associated with a significantPropertiesType of "appearance"] Color).freeze,
1009
1014
  domain: "premis:SignificantProperties".freeze,
1010
1015
  label: "hasSignificantPropertiesValue".freeze,
1011
1016
  range: "xsd:string".freeze,
1012
- "skos:definition" => %(Definition: Description of the characteristics of a particular object subjectively determined to be important to maintain through preservation actions.).freeze,
1013
- "skos:editorialNote" => %(Rationale: Repositories may choose to describe significant properties based on a particular aspect or attribute of an object.).freeze,
1014
- "skos:scopeNote" => %(Usage Notes: If facet:detail pairs are used, the content of significantPropertiesValue should describe the significant properties of object relevant to the aspect, facet, or attribute declared in the significantPropertiesType with which it is paired. If facet:detail pairs are not used, significantPropertiesValue may be used to freely describe any characteristic of an object. significantPropertiesValue is not repeatable. Multiple significant properties should be described in separate, repeated significantProperties container units.).freeze,
1015
- type: ["owl:FunctionalProperty".freeze, "owl:DatatypeProperty".freeze],
1016
- "vs:term_status" => %(stable).freeze
1017
+ :"skos:definition" => %(Definition: Description of the characteristics of a particular object subjectively determined to be important to maintain through preservation actions.).freeze,
1018
+ :"skos:editorialNote" => %(Rationale: Repositories may choose to describe significant properties based on a particular aspect or attribute of an object.).freeze,
1019
+ :"skos:scopeNote" => %(Usage Notes: If facet:detail pairs are used, the content of significantPropertiesValue should describe the significant properties of object relevant to the aspect, facet, or attribute declared in the significantPropertiesType with which it is paired. If facet:detail pairs are not used, significantPropertiesValue may be used to freely describe any characteristic of an object. significantPropertiesValue is not repeatable. Multiple significant properties should be described in separate, repeated significantProperties container units.).freeze,
1020
+ type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
1021
+ :"vs:term_status" => %(stable).freeze
1017
1022
  property :hasSize,
1018
1023
  comment: %(Example: 2038937).freeze,
1019
1024
  domain: "premis:ObjectCharacteristics".freeze,
1020
1025
  label: "hasSize".freeze,
1021
1026
  range: "xsd:long".freeze,
1022
- "skos:definition" => %(Definition: The size in bytes of the file or bitstream stored in the repository.).freeze,
1023
- "skos:editorialNote" => %(Rationale: Size is useful for ensuring the correct number of bytes from storage have been retrieved and that an application has enough room to move or process files. It might also be used when billing for storage.).freeze,
1024
- "skos:historyNote" => %(Creation / Maintenance Notes: Automatically obtained by the repository.).freeze,
1025
- "skos:scopeNote" => %(Usage Notes: Defining this semantic unit as size in bytes makes it unnecessary to record a unit of measurement. However, for the purpose of data exchange the unit of measurement should be stated or understood by both partners.).freeze,
1027
+ :"skos:definition" => %(Definition: The size in bytes of the file or bitstream stored in the repository.).freeze,
1028
+ :"skos:editorialNote" => %(Rationale: Size is useful for ensuring the correct number of bytes from storage have been retrieved and that an application has enough room to move or process files. It might also be used when billing for storage.).freeze,
1029
+ :"skos:historyNote" => %(Creation / Maintenance Notes: Automatically obtained by the repository.).freeze,
1030
+ :"skos:scopeNote" => %(Usage Notes: Defining this semantic unit as size in bytes makes it unnecessary to record a unit of measurement. However, for the purpose of data exchange the unit of measurement should be stated or understood by both partners.).freeze,
1026
1031
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
1027
- "vs:term_status" => %(stable).freeze
1032
+ :"vs:term_status" => %(stable).freeze
1028
1033
  property :hasSoftware,
1029
1034
  domain: "premis:Environment".freeze,
1030
1035
  label: "hasSoftware".freeze,
1031
1036
  range: "premis:Software".freeze,
1032
- "rdfs:seeAlso" => %(Environment class definition and Software class definition).freeze,
1037
+ :"rdfs:seeAlso" => %(Environment class definition and Software class definition).freeze,
1033
1038
  type: "owl:ObjectProperty".freeze,
1034
- "vs:term_status" => %(stable).freeze
1039
+ :"vs:term_status" => %(stable).freeze
1035
1040
  property :hasSoftwareDependency,
1036
1041
  comment: %(Example: GNU gcc >=2.7.2).freeze,
1037
1042
  domain: "premis:Software".freeze,
1038
1043
  label: "hasSoftwareDependency".freeze,
1039
1044
  range: "xsd:string".freeze,
1040
- "skos:definition" => %(Definition: The name and, if applicable, version of any software component needed by the software referenced in swName in the context of using this object.).freeze,
1041
- "skos:scopeNote" => %(Usage Notes: The value should be constructed in a way that is consistent with the construction of swName and swVersion. This semantic unit identifies the software that is needed by what is recorded in swName, for example, a Perl script that depends on a Perl module. In this case the Perl script is listed in swName, with the module in swDependency within a software container.).freeze,
1045
+ :"skos:definition" => %(Definition: The name and, if applicable, version of any software component needed by the software referenced in swName in the context of using this object.).freeze,
1046
+ :"skos:scopeNote" => %(Usage Notes: The value should be constructed in a way that is consistent with the construction of swName and swVersion. This semantic unit identifies the software that is needed by what is recorded in swName, for example, a Perl script that depends on a Perl module. In this case the Perl script is listed in swName, with the module in swDependency within a software container.).freeze,
1042
1047
  type: "owl:DatatypeProperty".freeze,
1043
- "vs:term_status" => %(stable).freeze
1048
+ :"vs:term_status" => %(stable).freeze
1044
1049
  property :hasSoftwareName,
1045
1050
  comment: %(Examples: Adobe Photoshop, Adobe Acrobat Reader).freeze,
1046
1051
  domain: "premis:Software".freeze,
1047
1052
  label: "hasSoftwareName".freeze,
1048
1053
  range: "xsd:string".freeze,
1049
- "skos:definition" => %(Definition: Manufacturer and title of the software application.).freeze,
1050
- "skos:scopeNote" => %(Usage Notes: Include manufacturer when this helps to identify or disambiguate the product, for example, use “Adobe Photoshop” rather than “Photoshop.”).freeze,
1051
- type: ["owl:FunctionalProperty".freeze, "owl:DatatypeProperty".freeze],
1052
- "vs:term_status" => %(stable).freeze
1054
+ :"skos:definition" => %(Definition: Manufacturer and title of the software application.).freeze,
1055
+ :"skos:scopeNote" => %(Usage Notes: Include manufacturer when this helps to identify or disambiguate the product, for example, use “Adobe Photoshop” rather than “Photoshop.”).freeze,
1056
+ type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
1057
+ :"vs:term_status" => %(stable).freeze
1053
1058
  property :hasSoftwareOtherInformation,
1054
1059
  comment: %(Example: Install Acroread \(Adobe Acrobat\) first; copy nppdf.so \(the plug-in\) to your Mozilla plug-ins directory, and make sure a copy of \(or symlink to\) Acroread is in your PATH.).freeze,
1055
1060
  domain: "premis:Software".freeze,
1056
1061
  label: "hasSoftwareOtherInformation".freeze,
1057
1062
  range: "xsd:string".freeze,
1058
- "skos:definition" => %(Definition: Additional requirements or instructions related to the software referenced in swName.).freeze,
1059
- "skos:scopeNote" => %(Usage Notes: This could be a reliable persistent identifier or URI pointing to software documentation within or outside the repository.).freeze,
1063
+ :"skos:definition" => %(Definition: Additional requirements or instructions related to the software referenced in swName.).freeze,
1064
+ :"skos:scopeNote" => %(Usage Notes: This could be a reliable persistent identifier or URI pointing to software documentation within or outside the repository.).freeze,
1060
1065
  type: "owl:DatatypeProperty".freeze,
1061
- "vs:term_status" => %(stable).freeze
1066
+ :"vs:term_status" => %(stable).freeze
1062
1067
  property :hasSoftwareType,
1063
1068
  comment: [%(Data Constraint: Values are taken from the SKOS vocabulary: http://id.loc.gov/vocabulary/preservation/softwareType).freeze, %(Extensions: One can use its own SKOS vocabulary to use for this property. The precondition to do this, is to link your SKOS concepts to the SKOS concepts of the id.loc.gov vocabulary.).freeze],
1064
1069
  domain: "premis:Software".freeze,
1065
1070
  label: "hasSoftwareType".freeze,
1066
- "skos:definition" => %(Definition: Class or category of software.).freeze,
1067
- "skos:editorialNote" => %(Rationale: Several different layers of software can be required to support an object.).freeze,
1071
+ :"skos:definition" => %(Definition: Class or category of software.).freeze,
1072
+ :"skos:editorialNote" => %(Rationale: Several different layers of software can be required to support an object.).freeze,
1068
1073
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
1069
- "vs:term_status" => %(stable).freeze
1074
+ :"vs:term_status" => %(stable).freeze
1070
1075
  property :hasSoftwareVersion,
1071
1076
  comment: %(Examples: >=2.2.0, 6.0, 2003).freeze,
1072
1077
  domain: "premis:Software".freeze,
1073
1078
  label: "hasSoftwareVersion".freeze,
1074
1079
  range: "xsd:string".freeze,
1075
- "skos:definition" => %(Definition: The version or versions of the software referenced in swName.).freeze,
1076
- "skos:scopeNote" => %(Usage Notes: If there is no formal version, the date of issuance can be used.).freeze,
1077
- type: ["owl:FunctionalProperty".freeze, "owl:DatatypeProperty".freeze],
1078
- "vs:term_status" => %(stable).freeze
1080
+ :"skos:definition" => %(Definition: The version or versions of the software referenced in swName.).freeze,
1081
+ :"skos:scopeNote" => %(Usage Notes: If there is no formal version, the date of issuance can be used.).freeze,
1082
+ type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
1083
+ :"vs:term_status" => %(stable).freeze
1079
1084
  property :hasStartDate,
1080
1085
  comment: %(Data Constraint: To aid machine processing, value should use a structured form: xsd:dateTime).freeze,
1081
1086
  domain: "premis:ApplicableDates".freeze,
1082
1087
  label: "hasStartDate".freeze,
1083
1088
  range: "xsd:dateTime".freeze,
1084
- "skos:definition" => %(Definition: The beginning date of the permission granted.).freeze,
1085
- type: ["owl:FunctionalProperty".freeze, "owl:DatatypeProperty".freeze],
1086
- "vs:term_status" => %(stable).freeze
1089
+ :"skos:definition" => %(Definition: The beginning date of the permission granted.).freeze,
1090
+ type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
1091
+ :"vs:term_status" => %(stable).freeze
1087
1092
  property :hasStatuteCitation,
1088
1093
  comment: %(Examples: Legal Deposit \(Jersey\) Law 200, National Library of New Zealand \(Te Puna Mātauranga o Aotearoa\) Act 2003 no 19 part 4 s 34).freeze,
1089
1094
  domain: "premis:StatuteInformation".freeze,
1090
1095
  label: "hasStatuteCitation".freeze,
1091
1096
  range: "xsd:string".freeze,
1092
- "skos:definition" => %(Definition: An identifying designation for the statute.).freeze,
1093
- "skos:scopeNote" => %(Usage Notes: Use standard citation form when applicable.).freeze,
1094
- type: ["owl:FunctionalProperty".freeze, "owl:DatatypeProperty".freeze],
1095
- "vs:term_status" => %(stable).freeze
1097
+ :"skos:definition" => %(Definition: An identifying designation for the statute.).freeze,
1098
+ :"skos:scopeNote" => %(Usage Notes: Use standard citation form when applicable.).freeze,
1099
+ type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
1100
+ :"vs:term_status" => %(stable).freeze
1096
1101
  property :hasStatuteInformationDeterminationDate,
1097
1102
  comment: [%(Data Constraint: To aid machine processing, value should use a structured form: xsd:dateTime).freeze, %(Example: 2001-10-26T19:32:52+00:00).freeze],
1098
1103
  domain: "premis:StatuteInformation".freeze,
1099
1104
  label: "hasStatuteInformationDeterminationDate".freeze,
1100
1105
  range: "xsd:dateTime".freeze,
1101
- "skos:definition" => %(Definition: The date that the determination was made that the statute authorized the permission\(s\) noted.).freeze,
1102
- "skos:editorialNote" => %(Rationale: The permission in question may be the subject of some interpretation. These assessments are made within a specific context and at a specific time. At another time the context, and therefore the assessment, could change. For this reason it can be important to record the date of the decision.).freeze,
1103
- type: ["owl:FunctionalProperty".freeze, "owl:DatatypeProperty".freeze],
1104
- "vs:term_status" => %(stable).freeze
1106
+ :"skos:definition" => %(Definition: The date that the determination was made that the statute authorized the permission\(s\) noted.).freeze,
1107
+ :"skos:editorialNote" => %(Rationale: The permission in question may be the subject of some interpretation. These assessments are made within a specific context and at a specific time. At another time the context, and therefore the assessment, could change. For this reason it can be important to record the date of the decision.).freeze,
1108
+ type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
1109
+ :"vs:term_status" => %(stable).freeze
1105
1110
  property :hasStatuteJurisdiction,
1106
1111
  comment: [%(Data Constraint: Values should be taken from a controlled vocabulary.).freeze, %(Examples: us, de, be).freeze],
1107
1112
  domain: "premis:StatuteInformation".freeze,
1108
1113
  label: "hasStatuteJurisdiction".freeze,
1109
1114
  range: "xsd:string".freeze,
1110
- "skos:definition" => %(Definition: The country or other political body enacting the statute.).freeze,
1111
- "skos:editorialNote" => %(Rationale: The connection between the object and the rights granted is based on jurisdiction.).freeze,
1112
- type: ["owl:FunctionalProperty".freeze, "owl:DatatypeProperty".freeze],
1113
- "vs:term_status" => %(stable).freeze
1115
+ :"skos:definition" => %(Definition: The country or other political body enacting the statute.).freeze,
1116
+ :"skos:editorialNote" => %(Rationale: The connection between the object and the rights granted is based on jurisdiction.).freeze,
1117
+ type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
1118
+ :"vs:term_status" => %(stable).freeze
1114
1119
  property :hasStorage,
1115
1120
  label: "hasStorage".freeze,
1116
1121
  range: "premis:Storage".freeze,
1117
- "rdfs:seeAlso" => %(Object class definition and Storage class definition).freeze,
1122
+ :"rdfs:seeAlso" => %(Object class definition and Storage class definition).freeze,
1118
1123
  type: "owl:ObjectProperty".freeze,
1119
- "vs:term_status" => %(stable).freeze
1124
+ :"vs:term_status" => %(stable).freeze
1120
1125
  property :hasStorageMedium,
1121
1126
  comment: [%(Data Constraint: Values are taken from the SKOS vocabulary: http://id.loc.gov/vocabulary/preservation/storageMedium).freeze, %(Extensions: One can use its own SKOS vocabulary to use for this property. The precondition to do this, is to link your SKOS concepts to the SKOS concepts of the id.loc.gov vocabulary.).freeze],
1122
1127
  domain: "premis:Storage".freeze,
1123
1128
  label: "hasStorageMedium".freeze,
1124
- "skos:definition" => %(Definition: The physical medium on which the object is stored \(e.g., magnetic tape, hard disk, CD-ROM, DVD\).).freeze,
1125
- "skos:editorialNote" => %(Rationale: The repository needs to know the medium on which an object is stored in order to know how and when to do media refreshment and media migration.).freeze,
1126
- type: ["owl:ObjectProperty".freeze, "owl:FunctionalProperty".freeze],
1127
- "vs:term_status" => %(stable).freeze
1129
+ :"skos:definition" => %(Definition: The physical medium on which the object is stored \(e.g., magnetic tape, hard disk, CD-ROM, DVD\).).freeze,
1130
+ :"skos:editorialNote" => %(Rationale: The repository needs to know the medium on which an object is stored in order to know how and when to do media refreshment and media migration.).freeze,
1131
+ type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
1132
+ :"vs:term_status" => %(stable).freeze
1128
1133
  property :hasTermOfGrant,
1129
1134
  domain: "premis:RightsGranted".freeze,
1130
1135
  label: "hasTermOfGrant".freeze,
1131
1136
  range: "premis:TermOfGrant".freeze,
1132
- "rdfs:seeAlso" => %(RightsGranted class definition and TermOfGrant class definition).freeze,
1137
+ :"rdfs:seeAlso" => %(RightsGranted class definition and TermOfGrant class definition).freeze,
1133
1138
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
1134
- "vs:term_status" => %(stable).freeze
1139
+ :"vs:term_status" => %(stable).freeze
1135
1140
  property :hasTermOfRestriction,
1136
1141
  domain: "premis:RightsGranted".freeze,
1137
1142
  label: "hasTermOfRestriction".freeze,
1138
1143
  range: "premis:TermOfRestriction".freeze,
1139
- "rdfs:seeAlso" => %(RightsGranted and TermOfRestriction class definitions).freeze,
1144
+ :"rdfs:seeAlso" => %(RightsGranted and TermOfRestriction class definitions).freeze,
1140
1145
  type: "owl:ObjectProperty".freeze,
1141
- "vs:term_status" => %(stable).freeze
1146
+ :"vs:term_status" => %(stable).freeze
1142
1147
  end
1143
1148
  end