rdf-vocab 2.2.9 → 3.0.0

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 +5 -5
  2. data/VERSION +1 -1
  3. data/lib/rdf/vocab.rb +21 -2
  4. data/lib/rdf/vocab/acl.rb +21 -5
  5. data/lib/rdf/vocab/bf2.rb +812 -812
  6. data/lib/rdf/vocab/bibframe.rb +78 -78
  7. data/lib/rdf/vocab/bibo.rb +239 -247
  8. data/lib/rdf/vocab/cc.rb +4 -9
  9. data/lib/rdf/vocab/cert.rb +44 -45
  10. data/lib/rdf/vocab/cnt.rb +5 -5
  11. data/lib/rdf/vocab/crm.rb +344 -344
  12. data/lib/rdf/vocab/datacite.rb +152 -58
  13. data/lib/rdf/vocab/dc.rb +439 -439
  14. data/lib/rdf/vocab/dc11.rb +93 -93
  15. data/lib/rdf/vocab/dcat.rb +152 -101
  16. data/lib/rdf/vocab/dcmitype.rb +75 -75
  17. data/lib/rdf/vocab/disco.rb +169 -101
  18. data/lib/rdf/vocab/doap.rb +179 -159
  19. data/lib/rdf/vocab/dwc.rb +1648 -1648
  20. data/lib/rdf/vocab/ebucore.rb +373 -124
  21. data/lib/rdf/vocab/edm.rb +216 -139
  22. data/lib/rdf/vocab/exif.rb +208 -208
  23. data/lib/rdf/vocab/fcrepo4.rb +57 -134
  24. data/lib/rdf/vocab/foaf.rb +166 -166
  25. data/lib/rdf/vocab/geo.rb +3 -5
  26. data/lib/rdf/vocab/geojson.rb +16 -16
  27. data/lib/rdf/vocab/geonames.rb +2827 -3455
  28. data/lib/rdf/vocab/gr.rb +699 -254
  29. data/lib/rdf/vocab/gs1.rb +1765 -1761
  30. data/lib/rdf/vocab/ht.rb +23 -23
  31. data/lib/rdf/vocab/hydra.rb +104 -104
  32. data/lib/rdf/vocab/ical.rb +674 -127
  33. data/lib/rdf/vocab/identifiers.rb +120 -212
  34. data/lib/rdf/vocab/iiif.rb +25 -37
  35. data/lib/rdf/vocab/jsonld.rb +11 -11
  36. data/lib/rdf/vocab/ldp.rb +79 -69
  37. data/lib/rdf/vocab/lrmi.rb +63 -63
  38. data/lib/rdf/vocab/ma.rb +47 -132
  39. data/lib/rdf/vocab/mads.rb +83 -28
  40. data/lib/rdf/vocab/marc_relators.rb +12 -2201
  41. data/lib/rdf/vocab/mo.rb +920 -836
  42. data/lib/rdf/vocab/mods.rb +6 -13
  43. data/lib/rdf/vocab/oa.rb +82 -72
  44. data/lib/rdf/vocab/og.rb +50 -50
  45. data/lib/rdf/vocab/ogc.rb +9 -8
  46. data/lib/rdf/vocab/ore.rb +22 -19
  47. data/lib/rdf/vocab/org.rb +217 -167
  48. data/lib/rdf/vocab/pplan.rb +45 -45
  49. data/lib/rdf/vocab/premis.rb +855 -582
  50. data/lib/rdf/vocab/premis_event_type.rb +148 -70
  51. data/lib/rdf/vocab/prov.rb +842 -806
  52. data/lib/rdf/vocab/rightsstatements.rb +140 -157
  53. data/lib/rdf/vocab/rsa.rb +16 -13
  54. data/lib/rdf/vocab/rss.rb +10 -10
  55. data/lib/rdf/vocab/schema.rb +1448 -1448
  56. data/lib/rdf/vocab/sioc.rb +158 -159
  57. data/lib/rdf/vocab/sioc_services.rb +14 -14
  58. data/lib/rdf/vocab/sioct.rb +70 -70
  59. data/lib/rdf/vocab/skos.rb +97 -93
  60. data/lib/rdf/vocab/skosxl.rb +29 -24
  61. data/lib/rdf/vocab/v.rb +88 -90
  62. data/lib/rdf/vocab/vcard.rb +340 -196
  63. data/lib/rdf/vocab/vmd.rb +88 -90
  64. data/lib/rdf/vocab/vs.rb +15 -15
  65. data/lib/rdf/vocab/wdrs.rb +30 -30
  66. data/lib/rdf/vocab/wot.rb +47 -47
  67. data/lib/rdf/vocab/xhtml.rb +3 -3
  68. data/lib/rdf/vocab/xhv.rb +37 -123
  69. data/lib/rdf/vocab/xkos.rb +110 -107
  70. data/spec/vocab_spec.rb +6 -6
  71. metadata +19 -31
@@ -12,139 +12,139 @@ module RDF::Vocab
12
12
  # Ontology definition
13
13
  ontology :"http://purl.org/net/p-plan#",
14
14
  comment: %(PROV extension for linking Plans and parts of plans to their respective executions. Created by Daniel Garijo and Yolanda Gil).freeze,
15
- :"dc:created" => %(2012-11-10).freeze,
16
- :"dc:creator" => [%(http://delicias.dia.fi.upm.es/members/DGarijo#me).freeze, %(http://www.isi.edu/~gil/).freeze],
17
- :"dc:description" => %(PROV extension for linking Plans and parts of plans to their respective executions.).freeze,
18
- :"dc:license" => %(http://creativecommons.org/licenses/by-nc-sa/2.0/).freeze,
19
- :"dc:modified" => %(2014-03-12).freeze,
20
- :"dc:title" => %(The P-Plan ontology).freeze,
21
- :"http://purl.org/vocab/vann/preferredNamespacePrefix" => %(p-plan).freeze,
22
- :"http://purl.org/vocab/vann/preferredNamespaceUri" => %(http://purl.org/net/p-plan#).freeze,
23
- :"owl:versionInfo" => %(1.3).freeze,
15
+ "dc:created": "2012-11-10".freeze,
16
+ "dc:creator": ["http://delicias.dia.fi.upm.es/members/DGarijo#me".freeze, "http://www.isi.edu/~gil/".freeze],
17
+ "dc:description": "PROV extension for linking Plans and parts of plans to their respective executions.".freeze,
18
+ "dc:license": "http://creativecommons.org/licenses/by-nc-sa/2.0/".freeze,
19
+ "dc:modified": "2014-03-12".freeze,
20
+ "dc:title": "The P-Plan ontology".freeze,
21
+ "http://purl.org/vocab/vann/preferredNamespacePrefix": "p-plan".freeze,
22
+ "http://purl.org/vocab/vann/preferredNamespaceUri": "http://purl.org/net/p-plan#".freeze,
23
+ "owl:versionInfo": "1.3".freeze,
24
24
  type: ["owl:NamedIndividual".freeze, "owl:Ontology".freeze, "owl:Thing".freeze]
25
25
 
26
26
  # Class definitions
27
27
  term :Activity,
28
28
  comment: %(A p-plan:Activity represents the execution process planned in a p-plan:Step).freeze,
29
+ isDefinedBy: "pplan:".freeze,
29
30
  label: "Activity".freeze,
30
- :"rdfs:isDefinedBy" => %(pplan:).freeze,
31
31
  subClassOf: "prov:Activity".freeze,
32
32
  type: "owl:Class".freeze
33
33
  term :Bundle,
34
+ isDefinedBy: "pplan:".freeze,
34
35
  label: "Bundle".freeze,
35
- :"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,
36
- :"rdfs:isDefinedBy" => %(pplan:).freeze,
36
+ "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,
37
37
  subClassOf: ["pplan:Entity".freeze, "prov:Bundle".freeze],
38
38
  type: "owl:Class".freeze
39
39
  term :Entity,
40
+ isDefinedBy: "pplan:".freeze,
40
41
  label: "Entity".freeze,
41
- :"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,
42
- :"rdfs:isDefinedBy" => %(pplan:).freeze,
42
+ "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,
43
43
  subClassOf: "prov:Entity".freeze,
44
44
  type: "owl:Class".freeze
45
45
  term :MultiStep,
46
+ isDefinedBy: "pplan:".freeze,
46
47
  label: "MultiStep".freeze,
47
- :"prov:definition" => %(A multi step is the representation of a plan that appears as a step of another plan.).freeze,
48
- :"rdfs:isDefinedBy" => %(pplan:).freeze,
48
+ "prov:definition": "A multi step is the representation of a plan that appears as a step of another plan.".freeze,
49
49
  subClassOf: ["pplan:Plan".freeze, "pplan:Step".freeze],
50
50
  type: "owl:Class".freeze
51
51
  term :Plan,
52
+ isDefinedBy: "pplan:".freeze,
52
53
  label: "Plan".freeze,
53
- :"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,
54
- :"rdfs:isDefinedBy" => %(pplan:).freeze,
54
+ "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,
55
55
  subClassOf: ["pplan:Entity".freeze, "prov:Plan".freeze],
56
56
  type: "owl:Class".freeze
57
57
  term :Step,
58
+ isDefinedBy: "pplan:".freeze,
58
59
  label: "Step".freeze,
59
- :"prov:definition" => %(A p-plan:Step represents the planned execution activity).freeze,
60
- :"rdfs:isDefinedBy" => %(pplan:).freeze,
60
+ "prov:definition": "A p-plan:Step represents the planned execution activity".freeze,
61
61
  type: "owl:Class".freeze
62
62
  term :Variable,
63
+ isDefinedBy: "pplan:".freeze,
63
64
  label: "Variable".freeze,
64
- :"prov:definition" => %(A p-plan:Variable represents a description of the input of the planned Activity \(p-plan:Step\)).freeze,
65
- :"rdfs:isDefinedBy" => %(pplan:).freeze,
65
+ "prov:definition": "A p-plan:Variable represents a description of the input of the planned Activity (p-plan:Step)".freeze,
66
66
  type: "owl:Class".freeze
67
67
 
68
68
  # Property definitions
69
69
  property :correspondsToStep,
70
70
  domain: "pplan:Activity".freeze,
71
+ isDefinedBy: "pplan:".freeze,
71
72
  label: "correspondsToStep".freeze,
72
- :"prov:definition" => %(p-plan:correspondsToStep links a p-plan:Activity to its planned p-plan:Step).freeze,
73
+ "prov:definition": "p-plan:correspondsToStep links a p-plan:Activity to its planned p-plan:Step".freeze,
73
74
  range: "pplan:Step".freeze,
74
- :"rdfs:isDefinedBy" => %(pplan:).freeze,
75
75
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze]
76
76
  property :correspondsToVariable,
77
77
  domain: "pplan:Entity".freeze,
78
+ isDefinedBy: "pplan:".freeze,
78
79
  label: "correspondsToVariable".freeze,
79
- :"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,
80
+ "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,
80
81
  range: "pplan:Variable".freeze,
81
- :"rdfs:isDefinedBy" => %(pplan:).freeze,
82
82
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze]
83
83
  property :hasInputVar,
84
84
  domain: "pplan:Step".freeze,
85
+ isDefinedBy: "pplan:".freeze,
85
86
  label: "hasInputVar".freeze,
86
- :"prov:definition" => %(p-plan:hasInputVar binds a p-plan:Step to the p-plan:Variable that takes as input for the planned execution).freeze,
87
+ "prov:definition": "p-plan:hasInputVar binds a p-plan:Step to the p-plan:Variable that takes as input for the planned execution".freeze,
87
88
  range: "pplan:Variable".freeze,
88
- :"rdfs:isDefinedBy" => %(pplan:).freeze,
89
89
  type: "owl:ObjectProperty".freeze
90
90
  property :hasOutputVar,
91
91
  domain: "pplan:Step".freeze,
92
+ inverseOf: "pplan:isOutputVarOf".freeze,
93
+ isDefinedBy: "pplan:".freeze,
92
94
  label: "hasOutputVar".freeze,
93
- :"owl:inverseOf" => %(pplan:isOutputVarOf).freeze,
94
- :"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,
95
+ "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,
95
96
  range: "pplan:Variable".freeze,
96
- :"rdfs:isDefinedBy" => %(pplan:).freeze,
97
97
  type: "owl:ObjectProperty".freeze
98
98
  property :isDecomposedAsPlan,
99
99
  domain: "pplan:MultiStep".freeze,
100
+ isDefinedBy: "pplan:".freeze,
100
101
  label: "isDecomposedAsPlan".freeze,
101
- :"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,
102
+ "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,
102
103
  range: "pplan:Plan".freeze,
103
- :"rdfs:isDefinedBy" => %(pplan:).freeze,
104
104
  type: "owl:ObjectProperty".freeze
105
105
  property :isInputVarOf,
106
106
  domain: "pplan:Variable".freeze,
107
+ inverseOf: "pplan:hasInputVar".freeze,
108
+ isDefinedBy: "pplan:".freeze,
107
109
  label: "isInputVarOf".freeze,
108
- :"owl:inverseOf" => %(pplan:hasInputVar).freeze,
109
- :"prov:definition" => %(p-plan:isInputVarOf links an input variable of a step to the step.).freeze,
110
+ "prov:definition": "p-plan:isInputVarOf links an input variable of a step to the step.".freeze,
110
111
  range: "pplan:Step".freeze,
111
- :"rdfs:isDefinedBy" => %(pplan:).freeze,
112
112
  type: "owl:ObjectProperty".freeze
113
113
  property :isOutputVarOf,
114
114
  domain: "pplan:Variable".freeze,
115
+ isDefinedBy: "pplan:".freeze,
115
116
  label: "isOutputVarOf".freeze,
116
- :"prov:definition" => %(p-plan:isOutputVarOf is intended to link an output variable of a step to the step.).freeze,
117
+ "prov:definition": "p-plan:isOutputVarOf is intended to link an output variable of a step to the step.".freeze,
117
118
  range: "pplan:Step".freeze,
118
- :"rdfs:isDefinedBy" => %(pplan:).freeze,
119
119
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze]
120
120
  property :isPrecededBy,
121
121
  comment: %(Property that asserts which Step preceeds the current one. ).freeze,
122
122
  domain: "pplan:Step".freeze,
123
+ isDefinedBy: "pplan:".freeze,
123
124
  label: "isPrecededBy".freeze,
124
125
  range: "pplan:Step".freeze,
125
- :"rdfs:isDefinedBy" => %(pplan:).freeze,
126
126
  type: ["owl:ObjectProperty".freeze, "owl:TransitiveProperty".freeze]
127
127
  property :isStepOfPlan,
128
128
  domain: "pplan:Step".freeze,
129
+ isDefinedBy: "pplan:".freeze,
129
130
  label: "isStepOfPlan".freeze,
130
- :"prov:definition" => %(p-plan:isStepOfPlan links a p-plan:Step to the p-plan:Plan which it corresponds to.).freeze,
131
+ "prov:definition": "p-plan:isStepOfPlan links a p-plan:Step to the p-plan:Plan which it corresponds to.".freeze,
131
132
  range: "pplan:Plan".freeze,
132
- :"rdfs:isDefinedBy" => %(pplan:).freeze,
133
133
  type: "owl:ObjectProperty".freeze
134
134
  property :isSubPlanOfPlan,
135
135
  domain: "pplan:Plan".freeze,
136
+ isDefinedBy: "pplan:".freeze,
136
137
  label: "isSubPlanOfPlan".freeze,
137
- :"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,
138
+ "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,
138
139
  range: "pplan:Plan".freeze,
139
- :"rdfs:isDefinedBy" => %(pplan:).freeze,
140
140
  subPropertyOf: "owl:topObjectProperty".freeze,
141
141
  type: "owl:ObjectProperty".freeze
142
142
  property :isVariableOfPlan,
143
143
  domain: "pplan:Variable".freeze,
144
+ isDefinedBy: "pplan:".freeze,
144
145
  label: "isVariableofPlan".freeze,
145
- :"prov:definition" => %(p-plan:IsVariableOfPlan binds a p-plan:Variable to the p-plan:Plan it corresponds to.).freeze,
146
+ "prov:definition": "p-plan:IsVariableOfPlan binds a p-plan:Variable to the p-plan:Plan it corresponds to.".freeze,
146
147
  range: "pplan:Plan".freeze,
147
- :"rdfs:isDefinedBy" => %(pplan:).freeze,
148
148
  type: "owl:ObjectProperty".freeze
149
149
  end
150
150
  end
@@ -10,1150 +10,1423 @@ module RDF::Vocab
10
10
  class PREMIS < RDF::StrictVocabulary("http://www.loc.gov/premis/rdf/v1#")
11
11
 
12
12
  # Ontology definition
13
- ontology :"http://www.loc.gov/premis/rdf/v1",
13
+ ontology :"http://www.loc.gov/premis/rdf/v1#",
14
14
  comment: %(This ontology identifies the classes and properties used to describe preservation metadata in RDF.).freeze,
15
- :"dc:modified" => %(2012-09-14T00:00:00Z).freeze,
15
+ "dc:modified": "2012-09-14T00:00:00Z".freeze,
16
+ isDefinedBy: "http://www.loc.gov/standards/premis/v2/premis-2-2.pdf".freeze,
16
17
  label: "Preservation Metadata: Implementation Strategies (PREMIS) Ontology".freeze,
17
- :"owl:imports" => [%(http://id.loc.gov/vocabulary/preservation/actionsGranted).freeze, %(http://id.loc.gov/vocabulary/preservation/agentType).freeze, %(http://id.loc.gov/vocabulary/preservation/contentLocationType).freeze, %(http://id.loc.gov/vocabulary/preservation/copyrightStatus).freeze, %(http://id.loc.gov/vocabulary/preservation/cryptographicHashFunctions).freeze, %(http://id.loc.gov/vocabulary/preservation/environmentCharacteristic).freeze, %(http://id.loc.gov/vocabulary/preservation/environmentPurpose).freeze, %(http://id.loc.gov/vocabulary/preservation/eventRelatedAgentRole).freeze, %(http://id.loc.gov/vocabulary/preservation/eventRelatedObjectRole).freeze, %(http://id.loc.gov/vocabulary/preservation/eventType).freeze, %(http://id.loc.gov/vocabulary/preservation/formatRegistryRole).freeze, %(http://id.loc.gov/vocabulary/preservation/hardwareType).freeze, %(http://id.loc.gov/vocabulary/preservation/inhibitorTarget).freeze, %(http://id.loc.gov/vocabulary/preservation/inhibitorType).freeze, %(http://id.loc.gov/vocabulary/preservation/objectCategory).freeze, %(http://id.loc.gov/vocabulary/preservation/preservationLevelRole).freeze, %(http://id.loc.gov/vocabulary/preservation/relationshipSubType).freeze, %(http://id.loc.gov/vocabulary/preservation/relationshipType).freeze, %(http://id.loc.gov/vocabulary/preservation/rightsBasis).freeze, %(http://id.loc.gov/vocabulary/preservation/rightsRelatedAgentRole).freeze, %(http://id.loc.gov/vocabulary/preservation/signatureEncoding).freeze, %(http://id.loc.gov/vocabulary/preservation/signatureMethod).freeze, %(http://id.loc.gov/vocabulary/preservation/softwareType).freeze, %(http://id.loc.gov/vocabulary/preservation/storageMedium).freeze],
18
- :"owl:versionInfo" => %(version 2.2.1).freeze,
19
- :"rdfs:isDefinedBy" => %(http://www.loc.gov/standards/premis/v2/premis-2-2.pdf).freeze,
20
- :"rdfs:seeAlso" => %(http://multimedialab.elis.ugent.be/users/samcoppe/ontologies/Premis/index.html for the OWL Documentation of the ontology.).freeze,
18
+ "owl:imports": ["http://id.loc.gov/vocabulary/preservation/actionsGranted".freeze, "http://id.loc.gov/vocabulary/preservation/agentType".freeze, "http://id.loc.gov/vocabulary/preservation/contentLocationType".freeze, "http://id.loc.gov/vocabulary/preservation/copyrightStatus".freeze, "http://id.loc.gov/vocabulary/preservation/cryptographicHashFunctions".freeze, "http://id.loc.gov/vocabulary/preservation/environmentCharacteristic".freeze, "http://id.loc.gov/vocabulary/preservation/environmentPurpose".freeze, "http://id.loc.gov/vocabulary/preservation/eventRelatedAgentRole".freeze, "http://id.loc.gov/vocabulary/preservation/eventRelatedObjectRole".freeze, "http://id.loc.gov/vocabulary/preservation/eventType".freeze, "http://id.loc.gov/vocabulary/preservation/formatRegistryRole".freeze, "http://id.loc.gov/vocabulary/preservation/hardwareType".freeze, "http://id.loc.gov/vocabulary/preservation/inhibitorTarget".freeze, "http://id.loc.gov/vocabulary/preservation/inhibitorType".freeze, "http://id.loc.gov/vocabulary/preservation/objectCategory".freeze, "http://id.loc.gov/vocabulary/preservation/preservationLevelRole".freeze, "http://id.loc.gov/vocabulary/preservation/relationshipSubType".freeze, "http://id.loc.gov/vocabulary/preservation/relationshipType".freeze, "http://id.loc.gov/vocabulary/preservation/rightsBasis".freeze, "http://id.loc.gov/vocabulary/preservation/rightsRelatedAgentRole".freeze, "http://id.loc.gov/vocabulary/preservation/signatureEncoding".freeze, "http://id.loc.gov/vocabulary/preservation/signatureMethod".freeze, "http://id.loc.gov/vocabulary/preservation/softwareType".freeze, "http://id.loc.gov/vocabulary/preservation/storageMedium".freeze],
19
+ "owl:versionInfo": "version 2.2.1".freeze,
20
+ "rdfs:seeAlso": "http://multimedialab.elis.ugent.be/users/samcoppe/ontologies/Premis/index.html for the OWL Documentation of the ontology.".freeze,
21
21
  type: "owl:Ontology".freeze
22
22
 
23
23
  # Class definitions
24
24
  term :Agent,
25
25
  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
26
26
  Agent entities.).freeze,
27
- label: "Agent".freeze,
28
- :"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,
27
+ 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,
29
28
  subClassOf: ["dc:Agent".freeze, "foaf:Agent".freeze, "premis:PremisEntity".freeze],
30
29
  type: "owl:Class".freeze,
31
- :"vs:term_status" => %(stable).freeze
30
+ "vs:term_status": "stable".freeze
32
31
  term :ApplicableDates,
33
- label: "ApplicableDates".freeze,
34
- :"skos:definition" => %(Definition: The date range during which the particular rights statement applies or is applied to the content.).freeze,
35
- :"skos:editorialNote" => %(Rationale Specific dates may apply to the particular rights statement.).freeze,
32
+ definition: %(Definition: The date range during which the particular rights statement applies or is applied to the content.).freeze,
33
+ editorialNote: %(Rationale Specific dates may apply to the particular rights statement.).freeze,
34
+ subClassOf: [term(
35
+ onProperty: "premis:hasEndDate".freeze,
36
+ type: "owl:Restriction".freeze,
37
+ maxCardinality: "1".freeze
38
+ ), term(
39
+ onProperty: "premis:hasStartDate".freeze,
40
+ type: "owl:Restriction".freeze,
41
+ maxCardinality: "1".freeze
42
+ )],
36
43
  type: "owl:Class".freeze,
37
- :"vs:term_status" => %(stable).freeze
44
+ "vs:term_status": "stable".freeze
38
45
  term :Bitstream,
39
- label: "Bitstream".freeze,
40
- :"rdfs:seeAlso" => %(Object class definition).freeze,
41
- :"skos:definition" => %(Definition: Contiguous or non-contiguous data within a file that has meaningful properties for preservation purposes.).freeze,
42
- subClassOf: "premis:Object".freeze,
46
+ definition: %(Definition: Contiguous or non-contiguous data within a file that has meaningful properties for preservation purposes.).freeze,
47
+ "rdfs:seeAlso": "Object class definition".freeze,
48
+ subClassOf: ["premis:Object".freeze, term(
49
+ onProperty: "premis:hasObjectCharacteristics".freeze,
50
+ type: "owl:Restriction".freeze,
51
+ minCardinality: "1".freeze
52
+ )],
43
53
  type: "owl:Class".freeze,
44
- :"vs:term_status" => %(stable).freeze
54
+ "vs:term_status": "stable".freeze
45
55
  term :ContentLocation,
46
- label: "ContentLocation".freeze,
47
- :"skos:definition" => %(Definition: Information needed to retrieve a file from the storage system, or to access a bitstream within a file.).freeze,
48
- :"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,
49
- :"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,
56
+ definition: %(Definition: Information needed to retrieve a file from the storage system, or to access a bitstream within a file.).freeze,
57
+ "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,
58
+ "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,
59
+ subClassOf: term(
60
+ type: "owl:Class".freeze,
61
+ intersectionOf: list(term(
62
+ onProperty: "premis:hasContentLocationType".freeze,
63
+ type: "owl:Restriction".freeze,
64
+ cardinality: "1".freeze
65
+ ), term(
66
+ onProperty: "premis:hasContentLocationValue".freeze,
67
+ type: "owl:Restriction".freeze,
68
+ cardinality: "1".freeze
69
+ ))
70
+ ),
50
71
  type: "owl:Class".freeze,
51
- :"vs:term_status" => %(stable).freeze
72
+ "vs:term_status": "stable".freeze
52
73
  term :CopyrightInformation,
53
- label: "CopyrightInformation".freeze,
54
- :"skos:definition" => %(Definition: Information about the copyright status of the object\(s\).).freeze,
55
- :"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,
56
- subClassOf: "premis:RightsStatement".freeze,
74
+ definition: %(Definition: Information about the copyright status of the object\(s\).).freeze,
75
+ "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,
76
+ subClassOf: ["premis:RightsStatement".freeze, term(
77
+ type: "owl:Class".freeze,
78
+ intersectionOf: list(term(
79
+ onProperty: "premis:hasCopyrightStatus".freeze,
80
+ type: "owl:Restriction".freeze,
81
+ cardinality: "1".freeze
82
+ ), term(
83
+ onProperty: "premis:hasCopyrightJurisdiction".freeze,
84
+ type: "owl:Restriction".freeze,
85
+ cardinality: "1".freeze
86
+ ))
87
+ )],
57
88
  type: "owl:Class".freeze,
58
- :"vs:term_status" => %(stable).freeze
89
+ "vs:term_status": "stable".freeze
59
90
  term :CreatingApplication,
60
- label: "CreatingApplication".freeze,
61
- :"skos:definition" => %(Definition: Information about the application that created the object.).freeze,
62
- :"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,
63
- :"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,
64
- :"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,
91
+ definition: %(Definition: Information about the application that created the object.).freeze,
92
+ 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,
93
+ "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,
94
+ "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,
95
+ subClassOf: term(
96
+ unionOf: list(term(
97
+ onProperty: "premis:hasCreatingApplicationName".freeze,
98
+ type: "owl:Restriction".freeze,
99
+ cardinality: "1".freeze
100
+ ), term(
101
+ onProperty: "premis:hasCreatingApplicationVersion".freeze,
102
+ type: "owl:Restriction".freeze,
103
+ maxCardinality: "1".freeze
104
+ ), term(
105
+ onProperty: "premis:hasDateCreatedByApplication".freeze,
106
+ type: "owl:Restriction".freeze,
107
+ maxCardinality: "1".freeze
108
+ )),
109
+ type: "owl:Class".freeze
110
+ ),
65
111
  type: "owl:Class".freeze,
66
- :"vs:term_status" => %(stable).freeze
112
+ "vs:term_status": "stable".freeze
67
113
  term :Dependency,
68
- label: "Dependency".freeze,
69
- :"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,
70
- :"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,
71
- :"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,
114
+ 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,
115
+ "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,
116
+ "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,
117
+ subClassOf: term(
118
+ unionOf: list(term(
119
+ onProperty: "premis:hasIdentifier".freeze,
120
+ type: "owl:Restriction".freeze,
121
+ maxCardinality: "1".freeze
122
+ ), term(
123
+ onProperty: "premis:hasDependencyName".freeze,
124
+ type: "owl:Restriction".freeze,
125
+ minCardinality: "1".freeze
126
+ )),
127
+ type: "owl:Class".freeze
128
+ ),
72
129
  type: "owl:Class".freeze,
73
- :"vs:term_status" => %(stable).freeze
130
+ "vs:term_status": "stable".freeze
74
131
  term :Environment,
75
- label: "Environment".freeze,
76
- :"skos:definition" => %(Definition: Hardware/software combinations supporting use of the object.).freeze,
77
- :"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,
78
- :"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,
79
- :"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,
132
+ definition: %(Definition: Hardware/software combinations supporting use of the object.).freeze,
133
+ 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,
134
+ "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,
135
+ "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,
136
+ subClassOf: term(
137
+ onProperty: "premis:hasEnvironmentCharacteristic".freeze,
138
+ type: "owl:Restriction".freeze,
139
+ maxCardinality: "1".freeze
140
+ ),
80
141
  type: "owl:Class".freeze,
81
- :"vs:term_status" => %(stable).freeze
142
+ "vs:term_status": "stable".freeze
82
143
  term :Event,
83
144
  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.
84
145
  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
85
146
  an Event entity.
86
147
  Mandatory semantic units are: eventIdentifier, eventType, and eventDateTime.).freeze,
87
- label: "Event".freeze,
88
- :"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,
89
- subClassOf: "premis:PremisEntity".freeze,
148
+ 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,
149
+ subClassOf: ["premis:PremisEntity".freeze, term(
150
+ type: "owl:Class".freeze,
151
+ intersectionOf: list(term(
152
+ onProperty: "premis:hasEventType".freeze,
153
+ type: "owl:Restriction".freeze,
154
+ cardinality: "1".freeze
155
+ ), term(
156
+ onProperty: "premis:hasIdentifier".freeze,
157
+ type: "owl:Restriction".freeze,
158
+ maxCardinality: "1".freeze
159
+ ), term(
160
+ onProperty: "premis:hasEventDateTime".freeze,
161
+ type: "owl:Restriction".freeze,
162
+ cardinality: "1".freeze
163
+ ))
164
+ )],
90
165
  type: "owl:Class".freeze,
91
- :"vs:term_status" => %(stable).freeze
166
+ "vs:term_status": "stable".freeze
92
167
  term :EventOutcomeDetail,
93
- label: "EventOutcomeDetail".freeze,
94
- :"skos:definition" => %(Definition: A detailed description of the result or product of the event.).freeze,
95
- :"skos:editorialNote" => %(Rationale: An event outcome may be sufficiently complex that a coded description is not adequate to document it.).freeze,
96
- :"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,
168
+ definition: %(Definition: A detailed description of the result or product of the event.).freeze,
169
+ editorialNote: %(Rationale: An event outcome may be sufficiently complex that a coded description is not adequate to document it.).freeze,
170
+ "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,
171
+ subClassOf: term(
172
+ onProperty: "premis:hasEventOutcomeDetailNote".freeze,
173
+ type: "owl:Restriction".freeze,
174
+ maxCardinality: "1".freeze
175
+ ),
97
176
  type: "owl:Class".freeze,
98
- :"vs:term_status" => %(stable).freeze
177
+ "vs:term_status": "stable".freeze
99
178
  term :EventOutcomeInformation,
100
- label: "EventOutcomeInformation".freeze,
101
- :"skos:definition" => %(Definition: Information about the outcome of an event.).freeze,
102
- :"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,
179
+ definition: %(Definition: Information about the outcome of an event.).freeze,
180
+ "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,
181
+ subClassOf: term(
182
+ onProperty: "premis:hasEventOutcome".freeze,
183
+ type: "owl:Restriction".freeze,
184
+ maxCardinality: "1".freeze
185
+ ),
103
186
  type: "owl:Class".freeze,
104
- :"vs:term_status" => %(stable).freeze
187
+ "vs:term_status": "stable".freeze
105
188
  term :File,
106
- label: "File".freeze,
107
- :"rdfs:seeAlso" => %(Object class definition).freeze,
108
- :"skos:definition" => %(Definition: A named and ordered sequence of bytes that is known to an operating system.).freeze,
109
- subClassOf: "premis:Object".freeze,
189
+ definition: %(Definition: A named and ordered sequence of bytes that is known to an operating system.).freeze,
190
+ "rdfs:seeAlso": "Object class definition".freeze,
191
+ subClassOf: ["premis:Object".freeze, term(
192
+ onProperty: "premis:hasObjectCharacteristics".freeze,
193
+ type: "owl:Restriction".freeze,
194
+ minCardinality: "1".freeze
195
+ )],
110
196
  type: "owl:Class".freeze,
111
- :"vs:term_status" => %(stable).freeze
197
+ "vs:term_status": "stable".freeze
112
198
  term :Fixity,
113
- label: "Fixity".freeze,
114
- :"skos:definition" => %(Definition: Information used to verify whether an object has been altered in an undocumented or unauthorized way.).freeze,
115
- :"skos:historyNote" => %(Creation / Maintenance Notes: Automatically calculated and recorded by repository.).freeze,
116
- :"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,
199
+ definition: %(Definition: Information used to verify whether an object has been altered in an undocumented or unauthorized way.).freeze,
200
+ "skos:historyNote": "Creation / Maintenance Notes: Automatically calculated and recorded by repository.".freeze,
201
+ "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,
202
+ subClassOf: term(
203
+ type: "owl:Class".freeze,
204
+ intersectionOf: list(term(
205
+ onProperty: "premis:hasMessageDigestAlgorithm".freeze,
206
+ type: "owl:Restriction".freeze,
207
+ cardinality: "1".freeze
208
+ ), term(
209
+ onProperty: "premis:hasMessageDigest".freeze,
210
+ type: "owl:Restriction".freeze,
211
+ cardinality: "1".freeze
212
+ ))
213
+ ),
117
214
  type: "owl:Class".freeze,
118
- :"vs:term_status" => %(stable).freeze
215
+ "vs:term_status": "stable".freeze
119
216
  term :Format,
120
- label: "Format".freeze,
121
- :"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,
122
- :"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,
123
- :"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,
124
- :"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,
217
+ definition: %(Definition: Identification of the format of a file or bitstream where format is the organization of digital information according to preset specifications.).freeze,
218
+ 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,
219
+ "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,
220
+ "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,
221
+ subClassOf: term(
222
+ unionOf: list(term(
223
+ onProperty: "premis:hasFormatDesignation".freeze,
224
+ type: "owl:Restriction".freeze,
225
+ maxCardinality: "1".freeze
226
+ ), term(
227
+ onProperty: "premis:hasFormatRegistry".freeze,
228
+ type: "owl:Restriction".freeze,
229
+ maxCardinality: "1".freeze
230
+ )),
231
+ type: "owl:Class".freeze
232
+ ),
125
233
  type: "owl:Class".freeze,
126
- :"vs:term_status" => %(stable).freeze
234
+ "vs:term_status": "stable".freeze
127
235
  term :FormatDesignation,
128
- label: "FormatDesignation".freeze,
129
- :"skos:definition" => %(Definition: An identification of the format of the object.).freeze,
130
- :"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,
236
+ definition: %(Definition: An identification of the format of the object.).freeze,
237
+ "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,
238
+ subClassOf: term(
239
+ onProperty: "premis:hasFormatName".freeze,
240
+ type: "owl:Restriction".freeze,
241
+ cardinality: "1".freeze
242
+ ),
131
243
  type: "owl:Class".freeze,
132
- :"vs:term_status" => %(stable).freeze
244
+ "vs:term_status": "stable".freeze
133
245
  term :FormatRegistry,
134
- label: "FormatRegistry".freeze,
135
- :"skos:definition" => %(Definition: Identifies and/or gives further information about the format by reference to an entry in a format registry.).freeze,
136
- :"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,
137
- :"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,
246
+ definition: %(Definition: Identifies and/or gives further information about the format by reference to an entry in a format registry.).freeze,
247
+ editorialNote: %(Rationale: If central format registries are available to the preservation repository, they may provide an excellent way of referencing detailed format information.).freeze,
248
+ "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,
249
+ subClassOf: [term(
250
+ onProperty: "premis:hasFormatRegistryKey".freeze,
251
+ type: "owl:Restriction".freeze,
252
+ cardinality: "1".freeze
253
+ ), term(
254
+ onProperty: "premis:hasFormatRegistryName".freeze,
255
+ type: "owl:Restriction".freeze,
256
+ cardinality: "1".freeze
257
+ )],
138
258
  type: "owl:Class".freeze,
139
- :"vs:term_status" => %(stable).freeze
259
+ "vs:term_status": "stable".freeze
140
260
  term :Hardware,
141
- label: "Hardware".freeze,
142
- :"skos:definition" => %(Definition: Hardware components needed by the software referenced in swName or the human user of the referenced software.).freeze,
143
- :"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,
261
+ definition: %(Definition: Hardware components needed by the software referenced in swName or the human user of the referenced software.).freeze,
262
+ "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,
263
+ subClassOf: term(
264
+ type: "owl:Class".freeze,
265
+ intersectionOf: list(term(
266
+ onProperty: "premis:hasHardwareType".freeze,
267
+ type: "owl:Restriction".freeze,
268
+ cardinality: "1".freeze
269
+ ), term(
270
+ onProperty: "premis:hasHardwareName".freeze,
271
+ type: "owl:Restriction".freeze,
272
+ cardinality: "1".freeze
273
+ ))
274
+ ),
144
275
  type: "owl:Class".freeze,
145
- :"vs:term_status" => %(stable).freeze
276
+ "vs:term_status": "stable".freeze
146
277
  term :Identifier,
147
278
  comment: %(This class is used in PREMIS OWL to describe identifiers if the identifiers are not http URIs.).freeze,
148
- label: "Identifier".freeze,
279
+ subClassOf: [term(
280
+ onProperty: "premis:hasIdentifierType".freeze,
281
+ type: "owl:Restriction".freeze,
282
+ cardinality: "1".freeze
283
+ ), term(
284
+ onProperty: "premis:hasIdentifierValue".freeze,
285
+ type: "owl:Restriction".freeze,
286
+ cardinality: "1".freeze
287
+ )],
149
288
  type: "owl:Class".freeze,
150
- :"vs:term_status" => %(stable).freeze
289
+ "vs:term_status": "stable".freeze
151
290
  term :Inhibitors,
152
- label: "Inhibitors".freeze,
153
- :"skos:definition" => %(Definition: Features of the object intended to inhibit access, use, or migration.).freeze,
154
- :"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,
155
- :"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,
156
- :"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,
291
+ definition: %(Definition: Features of the object intended to inhibit access, use, or migration.).freeze,
292
+ 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,
293
+ "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,
294
+ "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,
295
+ subClassOf: term(
296
+ onProperty: "premis:hasInhibitorType".freeze,
297
+ type: "owl:Restriction".freeze,
298
+ cardinality: "1".freeze
299
+ ),
157
300
  type: "owl:Class".freeze,
158
- :"vs:term_status" => %(stable).freeze
301
+ "vs:term_status": "stable".freeze
159
302
  term :IntellectualEntity,
160
303
  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,
161
- label: "IntellectualEntity".freeze,
162
- :"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,
304
+ 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,
163
305
  subClassOf: "premis:PremisEntity".freeze,
164
306
  type: "owl:Class".freeze,
165
- :"vs:term_status" => %(stable).freeze
307
+ "vs:term_status": "stable".freeze
166
308
  term :LicenseInformation,
167
- label: "LicenseInformation".freeze,
168
- :"skos:definition" => %(Definition: Information about a license or other agreement granting permissions related to an object.).freeze,
169
- :"skos:scopeNote" => %(Usage Note: When rights basis is a license, licenseInformation should be provided.).freeze,
170
- subClassOf: "premis:RightsStatement".freeze,
309
+ definition: %(Definition: Information about a license or other agreement granting permissions related to an object.).freeze,
310
+ "skos:scopeNote": "Usage Note: When rights basis is a license, licenseInformation should be provided.".freeze,
311
+ subClassOf: ["premis:RightsStatement".freeze, term(
312
+ onProperty: "premis:hasLicenseTerms".freeze,
313
+ type: "owl:Restriction".freeze,
314
+ maxCardinality: "1".freeze
315
+ )],
171
316
  type: "owl:Class".freeze,
172
- :"vs:term_status" => %(stable).freeze
317
+ "vs:term_status": "stable".freeze
173
318
  term :Object,
174
319
  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.
175
320
  The object class has three subclasses: Representation, File, and Bitstream.).freeze,
176
- label: "Object".freeze,
177
- :"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],
321
+ 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],
178
322
  subClassOf: "premis:PremisEntity".freeze,
179
323
  type: "owl:Class".freeze,
180
- :"vs:term_status" => %(stable).freeze
324
+ "vs:term_status": "stable".freeze
181
325
  term :ObjectCharacteristics,
182
- label: "ObjectCharacteristics".freeze,
183
- :"skos:definition" => %(Definition: Technical properties of a file or bitstream that are applicable to all or most formats.).freeze,
184
- :"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,
185
- :"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,
326
+ definition: %(Definition: Technical properties of a file or bitstream that are applicable to all or most formats.).freeze,
327
+ 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,
328
+ "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,
329
+ subClassOf: [term(
330
+ onProperty: "premis:hasCompositionLevel".freeze,
331
+ type: "owl:Restriction".freeze,
332
+ cardinality: "1".freeze
333
+ ), term(
334
+ onProperty: "premis:hasFormat".freeze,
335
+ type: "owl:Restriction".freeze,
336
+ minCardinality: "1".freeze
337
+ )],
186
338
  type: "owl:Class".freeze,
187
- :"vs:term_status" => %(stable).freeze
339
+ "vs:term_status": "stable".freeze
188
340
  term :PremisEntity,
189
- label: "PremisEntity".freeze,
190
- :"owl:versionInfo" => %(PREMIS 2.2 Owl v2).freeze,
191
- :"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,
341
+ 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,
342
+ "owl:versionInfo": "PREMIS 2.2 Owl v2".freeze,
192
343
  subClassOf: "owl:Thing".freeze,
193
344
  type: "owl:Class".freeze,
194
- :"vs:term_status" => %(stable).freeze
345
+ "vs:term_status": "stable".freeze
195
346
  term :PreservationLevel,
196
- label: "PreservationLevel".freeze,
197
- :"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,
198
- :"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,
199
- :"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,
200
- :"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,
347
+ 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,
348
+ 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,
349
+ "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,
350
+ "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,
351
+ subClassOf: [term(
352
+ onProperty: "premis:hasPreservationLevelRole".freeze,
353
+ type: "owl:Restriction".freeze,
354
+ maxCardinality: "1".freeze
355
+ ), term(
356
+ onProperty: "premis:hasPreservationLevelValue".freeze,
357
+ type: "owl:Restriction".freeze,
358
+ cardinality: "1".freeze
359
+ )],
201
360
  type: "owl:Class".freeze,
202
- :"vs:term_status" => %(stable).freeze
361
+ "vs:term_status": "stable".freeze
203
362
  term :RelatedObjectIdentification,
204
- label: "RelatedObjectIdentification".freeze,
205
- :"skos:definition" => %(Definition: The identifier and sequential context of the related resource).freeze,
206
- :"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,
363
+ definition: %(Definition: The identifier and sequential context of the related resource).freeze,
364
+ "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,
365
+ subClassOf: term(
366
+ type: "owl:Class".freeze,
367
+ intersectionOf: list(term(
368
+ onProperty: "premis:hasRelatedObject".freeze,
369
+ type: "owl:Restriction".freeze,
370
+ cardinality: "1".freeze
371
+ ), term(
372
+ onProperty: "premis:hasRelatedObjectSequence".freeze,
373
+ type: "owl:Restriction".freeze,
374
+ cardinality: "1".freeze
375
+ ))
376
+ ),
207
377
  type: "owl:Class".freeze,
208
- :"vs:term_status" => %(stable).freeze
378
+ "vs:term_status": "stable".freeze
209
379
  term :Representation,
210
- label: "Representation".freeze,
211
- :"rdfs:seeAlso" => %(Object class definition).freeze,
212
- :"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,
380
+ 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,
381
+ "rdfs:seeAlso": "Object class definition".freeze,
213
382
  subClassOf: "premis:Object".freeze,
214
383
  type: "owl:Class".freeze,
215
- :"vs:term_status" => %(stable).freeze
384
+ "vs:term_status": "stable".freeze
216
385
  term :RightsDocumentation,
217
- label: "RightsDocumentation".freeze,
218
- :"skos:definition" => %(Definition: A designation used to uniquely identify documentation supporting the specified rights within the repository system.).freeze,
386
+ definition: %(Definition: A designation used to uniquely identify documentation supporting the specified rights within the repository system.).freeze,
387
+ subClassOf: term(
388
+ onProperty: "premis:hasRightsDocumentationRole".freeze,
389
+ type: "owl:Restriction".freeze,
390
+ maxCardinality: "1".freeze
391
+ ),
219
392
  type: "owl:Class".freeze,
220
- :"vs:term_status" => %(stable).freeze
393
+ "vs:term_status": "stable".freeze
221
394
  term :RightsGranted,
222
- label: "RightsGranted".freeze,
223
- :"skos:definition" => %(Definition: The action\(s\) that the granting agency has allowed the repository.).freeze,
395
+ definition: %(Definition: The action\(s\) that the granting agency has allowed the repository.).freeze,
396
+ subClassOf: [term(
397
+ onProperty: "premis:hasTermOfRestriction".freeze,
398
+ type: "owl:Restriction".freeze,
399
+ maxCardinality: "1".freeze
400
+ ), term(
401
+ type: "owl:Class".freeze,
402
+ intersectionOf: list(term(
403
+ onProperty: "premis:hasAct".freeze,
404
+ type: "owl:Restriction".freeze,
405
+ cardinality: "1".freeze
406
+ ), term(
407
+ onProperty: "premis:hasTermOfGrant".freeze,
408
+ type: "owl:Restriction".freeze,
409
+ maxCardinality: "1".freeze
410
+ ))
411
+ )],
224
412
  type: "owl:Class".freeze,
225
- :"vs:term_status" => %(stable).freeze
413
+ "vs:term_status": "stable".freeze
226
414
  term :RightsStatement,
227
415
  comment: %(Extensions: In OWL one can define its own subclasses to the the RightsStatement class to denote OtherRightsInformation of the PREMIS data dictionary.).freeze,
228
- label: "RightsStatement".freeze,
229
- :"skos:definition" => %(Definition: Documentation of the repository's right to perform one or more acts.).freeze,
230
- :"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,
231
- subClassOf: ["dc:RightsStatement".freeze, "premis:PremisEntity".freeze],
416
+ definition: %(Definition: Documentation of the repository's right to perform one or more acts.).freeze,
417
+ "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,
418
+ subClassOf: ["dc:RightsStatement".freeze, "premis:PremisEntity".freeze, term(
419
+ onProperty: "premis:hasApplicableDates".freeze,
420
+ type: "owl:Restriction".freeze,
421
+ maxCardinality: "1".freeze
422
+ ), term(
423
+ onProperty: "premis:hasIdentifier".freeze,
424
+ type: "owl:Restriction".freeze,
425
+ maxCardinality: "1".freeze
426
+ )],
232
427
  type: "owl:Class".freeze,
233
- :"vs:term_status" => %(stable).freeze
428
+ "vs:term_status": "stable".freeze
234
429
  term :Signature,
235
- label: "Signature".freeze,
236
- :"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,
237
- :"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,
238
- :"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,
430
+ 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,
431
+ 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,
432
+ "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,
433
+ subClassOf: term(
434
+ type: "owl:Class".freeze,
435
+ intersectionOf: list(term(
436
+ onProperty: "premis:hasSignatureEncoding".freeze,
437
+ type: "owl:Restriction".freeze,
438
+ cardinality: "1".freeze
439
+ ), term(
440
+ onProperty: "premis:hasSignatureMethod".freeze,
441
+ type: "owl:Restriction".freeze,
442
+ cardinality: "1".freeze
443
+ ), term(
444
+ onProperty: "premis:hasSignatureValidationRules".freeze,
445
+ type: "owl:Restriction".freeze,
446
+ cardinality: "1".freeze
447
+ ), term(
448
+ onProperty: "premis:hasSignatureValue".freeze,
449
+ type: "owl:Restriction".freeze,
450
+ cardinality: "1".freeze
451
+ ))
452
+ ),
239
453
  type: "owl:Class".freeze,
240
- :"vs:term_status" => %(stable).freeze
454
+ "vs:term_status": "stable".freeze
241
455
  term :SignificantProperties,
242
- label: "SignificantProperties".freeze,
243
- :"skos:definition" => %(Definition: Characteristics of a particular object subjectively determined to be important to maintain through preservation actions.).freeze,
244
- :"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,
245
- :"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,
246
- :"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,
456
+ definition: %(Definition: Characteristics of a particular object subjectively determined to be important to maintain through preservation actions.).freeze,
457
+ 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,
458
+ "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,
459
+ "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,
247
460
  type: "owl:Class".freeze,
248
- :"vs:term_status" => %(stable).freeze
461
+ "vs:term_status": "stable".freeze
249
462
  term :Software,
250
- label: "Software".freeze,
251
- :"skos:definition" => %(Definition: Software required to render or use the object.).freeze,
252
- :"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,
463
+ definition: %(Definition: Software required to render or use the object.).freeze,
464
+ "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,
465
+ subClassOf: term(
466
+ type: "owl:Class".freeze,
467
+ intersectionOf: list(term(
468
+ onProperty: "premis:hasSoftwareType".freeze,
469
+ type: "owl:Restriction".freeze,
470
+ cardinality: "1".freeze
471
+ ), term(
472
+ onProperty: "premis:hasSoftwareName".freeze,
473
+ type: "owl:Restriction".freeze,
474
+ cardinality: "1".freeze
475
+ ))
476
+ ),
253
477
  type: "owl:Class".freeze,
254
- :"vs:term_status" => %(stable).freeze
478
+ "vs:term_status": "stable".freeze
255
479
  term :StatuteInformation,
256
- label: "StatuteInformation".freeze,
257
- :"skos:definition" => %(Definition: Information about the statute allowing use of the object.).freeze,
258
- :"skos:scopeNote" => %(Usage Notes: When rights basis is a statute, statuteInformation should be provided.).freeze,
259
- subClassOf: "premis:RightsStatement".freeze,
480
+ definition: %(Definition: Information about the statute allowing use of the object.).freeze,
481
+ "skos:scopeNote": "Usage Notes: When rights basis is a statute, statuteInformation should be provided.".freeze,
482
+ subClassOf: ["premis:RightsStatement".freeze, term(
483
+ type: "owl:Class".freeze,
484
+ intersectionOf: list(term(
485
+ onProperty: "premis:hasStatuteCitation".freeze,
486
+ type: "owl:Restriction".freeze,
487
+ cardinality: "1".freeze
488
+ ), term(
489
+ onProperty: "premis:hasStatuteJurisdiction".freeze,
490
+ type: "owl:Restriction".freeze,
491
+ cardinality: "1".freeze
492
+ ))
493
+ )],
260
494
  type: "owl:Class".freeze,
261
- :"vs:term_status" => %(stable).freeze
495
+ "vs:term_status": "stable".freeze
262
496
  term :Storage,
263
- label: "Storage".freeze,
264
- :"skos:definition" => %(Definition: Information about how and where a file is stored in the storage system.).freeze,
265
- :"skos:editorialNote" => %(Rationale: It is necessary for a repository to associate the contentLocation with the storageMedium.).freeze,
266
- :"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,
497
+ definition: %(Definition: Information about how and where a file is stored in the storage system.).freeze,
498
+ editorialNote: %(Rationale: It is necessary for a repository to associate the contentLocation with the storageMedium.).freeze,
499
+ "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,
500
+ subClassOf: term(
501
+ unionOf: list(term(
502
+ onProperty: "premis:hasContentLocation".freeze,
503
+ type: "owl:Restriction".freeze,
504
+ maxCardinality: "1".freeze
505
+ ), term(
506
+ onProperty: "premis:hasStorageMedium".freeze,
507
+ type: "owl:Restriction".freeze,
508
+ maxCardinality: "1".freeze
509
+ )),
510
+ type: "owl:Class".freeze
511
+ ),
267
512
  type: "owl:Class".freeze,
268
- :"vs:term_status" => %(stable).freeze
513
+ "vs:term_status": "stable".freeze
269
514
  term :TermOfGrant,
270
- label: "TermOfGrant".freeze,
271
- :"skos:definition" => %(Definition: The time period for the permissions granted.).freeze,
272
- :"skos:editorialNote" => %(Rationale: The permission to preserve may be time bounded.).freeze,
273
- subClassOf: "premis:ApplicableDates".freeze,
515
+ definition: %(Definition: The time period for the permissions granted.).freeze,
516
+ editorialNote: %(Rationale: The permission to preserve may be time bounded.).freeze,
517
+ subClassOf: ["premis:ApplicableDates".freeze, term(
518
+ onProperty: "premis:hasStartDate".freeze,
519
+ type: "owl:Restriction".freeze,
520
+ cardinality: "1".freeze
521
+ )],
274
522
  type: "owl:Class".freeze,
275
- :"vs:term_status" => %(stable).freeze
523
+ "vs:term_status": "stable".freeze
276
524
  term :TermOfRestriction,
277
- label: "TermOfRestriction".freeze,
278
- :"skos:definition" => %(Definition: The time period for the restriction granted.).freeze,
279
- :"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,
280
- subClassOf: "premis:ApplicableDates".freeze,
525
+ definition: %(Definition: The time period for the restriction granted.).freeze,
526
+ 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,
527
+ subClassOf: ["premis:ApplicableDates".freeze, term(
528
+ onProperty: "premis:hasStartDate".freeze,
529
+ type: "owl:Restriction".freeze,
530
+ cardinality: "1".freeze
531
+ )],
281
532
  type: "owl:Class".freeze,
282
- :"vs:term_status" => %(stable).freeze
533
+ "vs:term_status": "stable".freeze
283
534
 
284
535
  # Property definitions
285
536
  property :hasAct,
286
537
  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],
538
+ definition: %(Definition: The action the preservation repository is allowed to take.).freeze,
287
539
  domain: "premis:RightsGranted".freeze,
288
- label: "hasAct".freeze,
289
- :"skos:definition" => %(Definition: The action the preservation repository is allowed to take.).freeze,
540
+ range: term(
541
+ onProperty: "skos:inScheme".freeze,
542
+ "owl:hasValue": "http://id.loc.gov/vocabulary/preservation/actionsGranted".freeze,
543
+ type: "owl:Restriction".freeze
544
+ ),
290
545
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
291
- :"vs:term_status" => %(stable).freeze
546
+ "vs:term_status": "stable".freeze
292
547
  property :hasAgent,
293
- label: "hasAgent".freeze,
548
+ definition: %(Definition: link to the associated Agent.).freeze,
549
+ domain: term(
550
+ unionOf: list("premis:Event".freeze, "premis:RightsStatement".freeze),
551
+ type: "owl:Class".freeze
552
+ ),
553
+ 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,
294
554
  range: "premis:Agent".freeze,
295
- :"rdfs:seeAlso" => %(Agent class definition).freeze,
296
- :"skos:definition" => %(Definition: link to the associated Agent.).freeze,
297
- :"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,
555
+ "rdfs:seeAlso": "Agent class definition".freeze,
298
556
  type: "owl:ObjectProperty".freeze,
299
- :"vs:term_status" => %(testing).freeze
557
+ "vs:term_status": "testing".freeze
300
558
  property :hasAgentName,
301
559
  comment: %(Examples: Erik Owens, Pc).freeze,
560
+ definition: %(Definition: A text string which could be used in addition to agentIdentifier to identify an agent.).freeze,
302
561
  domain: "premis:Agent".freeze,
303
- label: "hasAgentName".freeze,
562
+ editorialNote: %(Rationale: This semantic unit provides a more reader-friendly version of the agent identified by the agentIdentifier.).freeze,
304
563
  range: "xsd:string".freeze,
305
- :"skos:definition" => %(Definition: A text string which could be used in addition to agentIdentifier to identify an agent.).freeze,
306
- :"skos:editorialNote" => %(Rationale: This semantic unit provides a more reader-friendly version of the agent identified by the agentIdentifier.).freeze,
307
- :"skos:scopeNote" => %(Usage Note: The value is not necessarily unique.).freeze,
564
+ "skos:scopeNote": "Usage Note: The value is not necessarily unique.".freeze,
308
565
  type: "owl:DatatypeProperty".freeze,
309
- :"vs:term_status" => %(stable).freeze
566
+ "vs:term_status": "stable".freeze
310
567
  property :hasAgentNote,
568
+ definition: %(Definition: Additional information about the agent.).freeze,
311
569
  domain: "premis:Agent".freeze,
312
- label: "hasAgentNote".freeze,
570
+ editorialNote: %(Rationale: Additional information may be needed to describe or disambiguate the agent.).freeze,
313
571
  range: "xsd:string".freeze,
314
- :"skos:definition" => %(Definition: Additional information about the agent.).freeze,
315
- :"skos:editorialNote" => %(Rationale: Additional information may be needed to describe or disambiguate the agent.).freeze,
316
572
  type: "owl:DatatypeProperty".freeze,
317
- :"vs:term_status" => %(stable).freeze
573
+ "vs:term_status": "stable".freeze
318
574
  property :hasAgentType,
319
575
  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],
576
+ definition: %(Definition: A high-level characterization of the type of agent.).freeze,
320
577
  domain: "premis:Agent".freeze,
321
- label: "hasAgentType".freeze,
322
- :"skos:definition" => %(Definition: A high-level characterization of the type of agent.).freeze,
578
+ range: term(
579
+ onProperty: "skos:inScheme".freeze,
580
+ "owl:hasValue": "http://id.loc.gov/vocabulary/preservation/agentType".freeze,
581
+ type: "owl:Restriction".freeze
582
+ ),
323
583
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
324
- :"vs:term_status" => %(stable).freeze
584
+ "vs:term_status": "stable".freeze
325
585
  property :hasApplicableDates,
326
586
  domain: "premis:RightsStatement".freeze,
327
- label: "hasApplicableDates".freeze,
328
587
  range: "premis:ApplicableDates".freeze,
329
- :"rdfs:seeAlso" => %(ApplicableDates class definition).freeze,
588
+ "rdfs:seeAlso": "ApplicableDates class definition".freeze,
330
589
  type: "owl:ObjectProperty".freeze,
331
- :"vs:term_status" => %(stable).freeze
590
+ "vs:term_status": "stable".freeze
332
591
  property :hasCompositionLevel,
333
592
  comment: [%(Data Constraints: Non-negative integers.).freeze, %(Examples: 0, 1, 2).freeze],
593
+ definition: %(Definition: An indication of whether the object is subject to one or more processes of decoding or unbundling.).freeze,
334
594
  domain: "premis:ObjectCharacteristics".freeze,
335
- label: "hasCompositionLevel".freeze,
595
+ 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,
336
596
  range: "xsd:int".freeze,
337
- :"skos:definition" => %(Definition: An indication of whether the object is subject to one or more processes of decoding or unbundling.).freeze,
338
- :"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,
339
- :"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,
340
- :"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,
597
+ "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,
598
+ "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,
341
599
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
342
- :"vs:term_status" => %(stable).freeze
600
+ "vs:term_status": "stable".freeze
343
601
  property :hasContentLocation,
344
602
  domain: "premis:Storage".freeze,
345
- label: "hasContentLocation".freeze,
346
603
  range: "premis:ContentLocation".freeze,
347
- :"rdfs:seeAlso" => %(Storage class definition and ContentLocation class definition).freeze,
604
+ "rdfs:seeAlso": "Storage class definition and ContentLocation class definition".freeze,
348
605
  type: ["owl:FunctionalProperty".freeze, "owl:InverseFunctionalProperty".freeze, "owl:ObjectProperty".freeze],
349
- :"vs:term_status" => %(stable).freeze
606
+ "vs:term_status": "stable".freeze
350
607
  property :hasContentLocationType,
351
608
  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],
609
+ definition: %(Definition: The means of referencing the location of the content.).freeze,
352
610
  domain: "premis:ContentLocation".freeze,
353
- label: "hasContentLocationType".freeze,
354
- :"skos:definition" => %(Definition: The means of referencing the location of the content.).freeze,
355
- :"skos:editorialNote" => %(Rationale: To understand the meaning of the value it is necessary to know what location scheme is used.).freeze,
611
+ editorialNote: %(Rationale: To understand the meaning of the value it is necessary to know what location scheme is used.).freeze,
612
+ range: term(
613
+ onProperty: "skos:inScheme".freeze,
614
+ "owl:hasValue": "http://id.loc.gov/vocabulary/preservation/contentLocationType".freeze,
615
+ type: "owl:Restriction".freeze
616
+ ),
356
617
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
357
- :"vs:term_status" => %(stable).freeze
618
+ "vs:term_status": "stable".freeze
358
619
  property :hasContentLocationValue,
359
620
  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,
621
+ definition: %(Definition: The reference to the location of the content used by the storage system.).freeze,
360
622
  domain: "premis:ContentLocation".freeze,
361
- label: "hasContentLocationValue".freeze,
362
623
  range: "xsd:string".freeze,
363
- :"skos:definition" => %(Definition: The reference to the location of the content used by the storage system.).freeze,
364
- :"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,
624
+ "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,
365
625
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
366
- :"vs:term_status" => %(stable).freeze
626
+ "vs:term_status": "stable".freeze
367
627
  property :hasCopyrightJurisdiction,
368
628
  comment: [%(Data Constraint: Values should be taken from ISO 3166.).freeze, %(Examples: us, de, be).freeze],
629
+ definition: %(Definition: The country whose copyright laws apply.).freeze,
369
630
  domain: "premis:CopyrightInformation".freeze,
370
- label: "hasCopyrightJurisdiction".freeze,
631
+ editorialNote: %(Rationale: Copyright law can vary from country to country.).freeze,
371
632
  range: "xsd:string".freeze,
372
- :"skos:definition" => %(Definition: The country whose copyright laws apply.).freeze,
373
- :"skos:editorialNote" => %(Rationale: Copyright law can vary from country to country.).freeze,
374
633
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
375
- :"vs:term_status" => %(stable).freeze
634
+ "vs:term_status": "stable".freeze
376
635
  property :hasCopyrightStatus,
377
636
  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],
637
+ definition: %(Definition: A coded designation for the copyright status of the object at the time the rights statement is recorded.).freeze,
378
638
  domain: "premis:CopyrightInformation".freeze,
379
- label: "hasCopyrightStatus".freeze,
380
- :"skos:definition" => %(Definition: A coded designation for the copyright status of the object at the time the rights statement is recorded.).freeze,
639
+ range: term(
640
+ onProperty: "skos:inScheme".freeze,
641
+ "owl:hasValue": "http://id.loc.gov/vocabulary/preservation/copyrightStatus".freeze,
642
+ type: "owl:Restriction".freeze
643
+ ),
381
644
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
382
- :"vs:term_status" => %(stable).freeze
645
+ "vs:term_status": "stable".freeze
383
646
  property :hasCopyrightStatusDeterminationDate,
384
647
  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],
648
+ definition: %(Definition: The date that the copyright status recorded in copyrightStatus was determined.).freeze,
385
649
  domain: "premis:CopyrightInformation".freeze,
386
- label: "hasCopyrightStatusDeterminationDate".freeze,
387
650
  range: "xsd:dateTime".freeze,
388
- :"skos:definition" => %(Definition: The date that the copyright status recorded in copyrightStatus was determined.).freeze,
389
651
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
390
- :"vs:term_status" => %(stable).freeze
652
+ "vs:term_status": "stable".freeze
391
653
  property :hasCreatingApplication,
392
654
  domain: "premis:ObjectCharacteristics".freeze,
393
- label: "hasCreatingApplication".freeze,
394
655
  range: "premis:CreatingApplication".freeze,
395
- :"rdfs:seeAlso" => %(ObjectCharacteristics class definition and CreatingApplication class definition).freeze,
656
+ "rdfs:seeAlso": "ObjectCharacteristics class definition and CreatingApplication class definition".freeze,
396
657
  type: "owl:ObjectProperty".freeze,
397
- :"vs:term_status" => %(stable).freeze
658
+ "vs:term_status": "stable".freeze
398
659
  property :hasCreatingApplicationName,
399
660
  comment: %(Example: MSWord).freeze,
661
+ definition: %(Definition: A designation for the name of the software program that created the object.).freeze,
400
662
  domain: "premis:CreatingApplication".freeze,
401
- label: "hasCreatingApplicationName".freeze,
402
663
  range: "xsd:string".freeze,
403
- :"skos:definition" => %(Definition: A designation for the name of the software program that created the object.).freeze,
404
- :"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,
664
+ "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,
405
665
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
406
- :"vs:term_status" => %(stable).freeze
666
+ "vs:term_status": "stable".freeze
407
667
  property :hasCreatingApplicationVersion,
408
668
  comment: %(Example: 2000).freeze,
669
+ definition: %(Definition: The version of the software program that created the object.).freeze,
409
670
  domain: "premis:CreatingApplication".freeze,
410
- label: "hasCreatingApplicationVersion".freeze,
411
671
  range: "xsd:string".freeze,
412
- :"skos:definition" => %(Definition: The version of the software program that created the object.).freeze,
413
672
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
414
- :"vs:term_status" => %(stable).freeze
673
+ "vs:term_status": "stable".freeze
415
674
  property :hasDateCreatedByApplication,
416
675
  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],
676
+ definition: %(Definition: The actual or approximate date and time the object was created.).freeze,
417
677
  domain: "premis:CreatingApplication".freeze,
418
- label: "hasDateCreatedByApplication".freeze,
419
678
  range: "xsd:dateTime".freeze,
420
- :"skos:definition" => %(Definition: The actual or approximate date and time the object was created.).freeze,
421
- :"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,
679
+ "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,
422
680
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
423
- :"vs:term_status" => %(stable).freeze
681
+ "vs:term_status": "stable".freeze
424
682
  property :hasDependency,
425
683
  domain: "premis:Environment".freeze,
426
- label: "hasDependency".freeze,
427
684
  range: "premis:Dependency".freeze,
428
- :"rdfs:seeAlso" => %(Environment class definition and Dependency class definition).freeze,
685
+ "rdfs:seeAlso": "Environment class definition and Dependency class definition".freeze,
429
686
  type: "owl:ObjectProperty".freeze,
430
- :"vs:term_status" => %(stable).freeze
687
+ "vs:term_status": "stable".freeze
431
688
  property :hasDependencyName,
432
689
  comment: %(Example: Additional Element Set for Language Corpora).freeze,
690
+ definition: %(Definition: A designation for a component or associated file needed by the representation or file.).freeze,
433
691
  domain: "premis:Dependency".freeze,
434
- label: "hasDependencyName".freeze,
692
+ editorialNote: %(Rationale: It may not be self-evident from the dependencyIdentifier what the name of the object actually is.).freeze,
435
693
  range: "xsd:string".freeze,
436
- :"skos:definition" => %(Definition: A designation for a component or associated file needed by the representation or file.).freeze,
437
- :"skos:editorialNote" => %(Rationale: It may not be self-evident from the dependencyIdentifier what the name of the object actually is.).freeze,
438
694
  type: "owl:DatatypeProperty".freeze,
439
- :"vs:term_status" => %(stable).freeze
695
+ "vs:term_status": "stable".freeze
440
696
  property :hasEndDate,
441
697
  comment: %(Data Constraint: To aid machine processing, value should use a structured form: xsd:dateTime).freeze,
698
+ definition: %(Definition: The ending date of the permission granted.).freeze,
442
699
  domain: "premis:ApplicableDates".freeze,
443
- label: "hasEndDate".freeze,
444
700
  range: "xsd:dateTime".freeze,
445
- :"skos:definition" => %(Definition: The ending date of the permission granted.).freeze,
446
- :"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,
701
+ "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,
447
702
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
448
- :"vs:term_status" => %(stable).freeze
703
+ "vs:term_status": "stable".freeze
449
704
  property :hasEnvironment,
450
705
  domain: "premis:Object".freeze,
451
- label: "hasEnvironment".freeze,
452
706
  range: "premis:Environment".freeze,
453
- :"rdfs:seeAlso" => %(Object class definition and Environment class definition).freeze,
707
+ "rdfs:seeAlso": "Object class definition and Environment class definition".freeze,
454
708
  type: "owl:ObjectProperty".freeze,
455
- :"vs:term_status" => %(stable).freeze
709
+ "vs:term_status": "stable".freeze
456
710
  property :hasEnvironmentCharacteristic,
457
711
  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],
712
+ definition: %(Definition: An assessment of the extent to which the described environment supports its purpose.).freeze,
458
713
  domain: "premis:Environment".freeze,
459
- label: "hasEnvironmentCharacteristic".freeze,
460
- :"skos:definition" => %(Definition: An assessment of the extent to which the described environment supports its purpose.).freeze,
461
- :"skos:editorialNote" => %(Rationale: If multiple environments are described, this element can help to distinguish among them.).freeze,
714
+ editorialNote: %(Rationale: If multiple environments are described, this element can help to distinguish among them.).freeze,
715
+ range: term(
716
+ onProperty: "skos:inScheme".freeze,
717
+ "owl:hasValue": "http://id.loc.gov/vocabulary/preservation/environmentCharacteristic".freeze,
718
+ type: "owl:Restriction".freeze
719
+ ),
462
720
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
463
- :"vs:term_status" => %(stable).freeze
721
+ "vs:term_status": "stable".freeze
464
722
  property :hasEnvironmentNote,
465
723
  comment: %(Example: This environment assumes that the PDF will be stored locally
466
724
  and used with a standalone PDF reader.).freeze,
725
+ definition: %(Definition: Additional information about the environment.).freeze,
467
726
  domain: "premis:Environment".freeze,
468
- label: "hasEnvironmentNote".freeze,
727
+ editorialNote: %(Rationale: There may be a need to give a textual description of the environment for additional explanation.).freeze,
469
728
  range: "xsd:string".freeze,
470
- :"skos:definition" => %(Definition: Additional information about the environment.).freeze,
471
- :"skos:editorialNote" => %(Rationale: There may be a need to give a textual description of the environment for additional explanation.).freeze,
472
- :"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,
729
+ "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,
473
730
  type: "owl:DatatypeProperty".freeze,
474
- :"vs:term_status" => %(stable).freeze
731
+ "vs:term_status": "stable".freeze
475
732
  property :hasEnvironmentPurpose,
476
733
  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],
734
+ definition: %(Definition: The use\(s\) supported by the specified environment.).freeze,
477
735
  domain: "premis:Environment".freeze,
478
- label: "hasEnvironmentPurpose".freeze,
479
- :"skos:definition" => %(Definition: The use\(s\) supported by the specified environment.).freeze,
480
- :"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,
736
+ 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,
737
+ range: term(
738
+ onProperty: "skos:inScheme".freeze,
739
+ "owl:hasValue": "http://id.loc.gov/vocabulary/preservation/environmentPurpose".freeze,
740
+ type: "owl:Restriction".freeze
741
+ ),
481
742
  type: "owl:ObjectProperty".freeze,
482
- :"vs:term_status" => %(stable).freeze
743
+ "vs:term_status": "stable".freeze
483
744
  property :hasEvent,
484
- label: "hasEvent".freeze,
745
+ definition: %(Definition: The event associated with the object or an agent.).freeze,
746
+ domain: term(
747
+ unionOf: list("premis:Agent".freeze, "premis:Object".freeze),
748
+ type: "owl:Class".freeze
749
+ ),
485
750
  range: "premis:Event".freeze,
486
- :"rdfs:seeAlso" => %(Object class definition, the Agent class Definition and Event class definition).freeze,
487
- :"skos:definition" => %(Definition: The event associated with the object or an agent.).freeze,
488
- :"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,
751
+ "rdfs:seeAlso": "Object class definition, the Agent class Definition and Event class definition".freeze,
752
+ "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,
489
753
  type: "owl:ObjectProperty".freeze,
490
- :"vs:term_status" => %(stable).freeze
754
+ "vs:term_status": "stable".freeze
491
755
  property :hasEventDateTime,
492
756
  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],
757
+ definition: %(Definition: The single date and time, or date and time range, at or during which the event occurred.).freeze,
493
758
  domain: "premis:Event".freeze,
494
- label: "hasEventDateTime".freeze,
495
759
  range: "xsd:dateTime".freeze,
496
- :"skos:definition" => %(Definition: The single date and time, or date and time range, at or during which the event occurred.).freeze,
497
- :"skos:scopeNote" => %(Usage Notes: Recommended practice is to record the most specific time possible and to designate the time zone.).freeze,
760
+ "skos:scopeNote": "Usage Notes: Recommended practice is to record the most specific time possible and to designate the time zone.".freeze,
498
761
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
499
- :"vs:term_status" => %(stable).freeze
762
+ "vs:term_status": "stable".freeze
500
763
  property :hasEventDetail,
501
764
  comment: %(Examples: Object permanently withdrawn by request of Caroline Hunt,
502
765
  Program=“MIGJP2JP2K”; version=“2.2”).freeze,
766
+ definition: %(Definition: Additional information about the event.).freeze,
503
767
  domain: "premis:Event".freeze,
504
- label: "hasEventDetail".freeze,
505
768
  range: "xsd:string".freeze,
506
- :"skos:definition" => %(Definition: Additional information about the event.).freeze,
507
- :"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,
769
+ "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,
508
770
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
509
- :"vs:term_status" => %(stable).freeze
771
+ "vs:term_status": "stable".freeze
510
772
  property :hasEventOutcome,
511
773
  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],
774
+ definition: %(Definition: A categorization of the overall result of the event in terms of success, partial success, or failure.).freeze,
512
775
  domain: "premis:EventOutcomeInformation".freeze,
513
- label: "hasEventOutcome".freeze,
776
+ 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,
514
777
  range: "xsd:string".freeze,
515
- :"skos:definition" => %(Definition: A categorization of the overall result of the event in terms of success, partial success, or failure.).freeze,
516
- :"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,
517
- :"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,
778
+ "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,
518
779
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
519
- :"vs:term_status" => %(stable).freeze
780
+ "vs:term_status": "stable".freeze
520
781
  property :hasEventOutcomeDetail,
521
782
  domain: "premis:EventOutcomeInformation".freeze,
522
- label: "hasEventOutcomeDetail".freeze,
523
783
  range: "premis:EventOutcomeDetail".freeze,
524
- :"rdfs:seeAlso" => %(EventOutcomeInformation class definition and EventOutcomeDetail class definition).freeze,
784
+ "rdfs:seeAlso": "EventOutcomeInformation class definition and EventOutcomeDetail class definition".freeze,
525
785
  type: "owl:ObjectProperty".freeze,
526
- :"vs:term_status" => %(stable).freeze
786
+ "vs:term_status": "stable".freeze
527
787
  property :hasEventOutcomeDetailNote,
528
788
  comment: %(Examples: LZW compressed file, Non-standard tags found in header).freeze,
789
+ definition: %(Definition: A detailed description of the result or product of the event in textual form.).freeze,
529
790
  domain: "premis:EventOutcomeDetail".freeze,
530
- label: "hasEventOutcomeDetailNote".freeze,
791
+ editorialNote: %(Rationale: Additional information in textual form may be needed about the outcome of the event.).freeze,
531
792
  range: "xsd:string".freeze,
532
- :"skos:definition" => %(Definition: A detailed description of the result or product of the event in textual form.).freeze,
533
- :"skos:editorialNote" => %(Rationale: Additional information in textual form may be needed about the outcome of the event.).freeze,
534
793
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
535
- :"vs:term_status" => %(stable).freeze
794
+ "vs:term_status": "stable".freeze
536
795
  property :hasEventOutcomeInformation,
537
796
  domain: "premis:Event".freeze,
538
- label: "hasEventOutcomeInformation".freeze,
539
797
  range: "premis:EventOutcomeInformation".freeze,
540
- :"rdfs:seeAlso" => %(Event class definition and EventOutcomeInformation class definition).freeze,
798
+ "rdfs:seeAlso": "Event class definition and EventOutcomeInformation class definition".freeze,
541
799
  type: "owl:ObjectProperty".freeze,
542
- :"vs:term_status" => %(stable).freeze
800
+ "vs:term_status": "stable".freeze
543
801
  property :hasEventRelatedAgent,
544
802
  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],
545
803
  domain: "premis:Event".freeze,
546
- label: "hasEventRelatedAgent".freeze,
547
804
  range: "premis:Agent".freeze,
548
- :"rdfs:seeAlso" => %(http://id.loc.gov/vocabulary/preservation/eventRelatedAgentRole).freeze,
805
+ "rdfs:seeAlso": "http://id.loc.gov/vocabulary/preservation/eventRelatedAgentRole".freeze,
549
806
  subPropertyOf: "premis:hasAgent".freeze,
550
807
  type: "owl:ObjectProperty".freeze,
551
- :"vs:term_status" => %(unstable).freeze
808
+ "vs:term_status": "unstable".freeze
552
809
  property :hasEventRelatedObject,
553
810
  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,
811
+ definition: %(Definition: Information about an object associated with an event.).freeze,
554
812
  domain: "premis:Event".freeze,
555
- label: "hasEventRelatedObject".freeze,
813
+ editorialNote: %(Rationale: Digital provenance often requires that relationships between objects and events are documented.).freeze,
556
814
  range: "premis:Object".freeze,
557
- :"rdfs:seeAlso" => [%(Event class definition and Object class definition).freeze, %(http://id.loc.gov/vocabulary/preservation/eventRelatedObjectRole).freeze],
558
- :"skos:definition" => %(Definition: Information about an object associated with an event.).freeze,
559
- :"skos:editorialNote" => %(Rationale: Digital provenance often requires that relationships between objects and events are documented.).freeze,
815
+ "rdfs:seeAlso": ["Event class definition and Object class definition".freeze, "http://id.loc.gov/vocabulary/preservation/eventRelatedObjectRole".freeze],
560
816
  subPropertyOf: "premis:hasObject".freeze,
561
817
  type: "owl:ObjectProperty".freeze,
562
- :"vs:term_status" => %(stable).freeze
818
+ "vs:term_status": "stable".freeze
563
819
  property :hasEventType,
564
820
  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],
821
+ definition: %(Definition: A categorization of the nature of the event.).freeze,
565
822
  domain: "premis:Event".freeze,
566
- label: "hasEventType".freeze,
567
- :"skos:definition" => %(Definition: A categorization of the nature of the event.).freeze,
568
- :"skos:editorialNote" => %(Rationale: Categorizing events will aid the preservation repository in machine processing of event information, particularly in reporting.).freeze,
823
+ editorialNote: %(Rationale: Categorizing events will aid the preservation repository in machine processing of event information, particularly in reporting.).freeze,
824
+ range: term(
825
+ onProperty: "skos:inScheme".freeze,
826
+ "owl:hasValue": "http://id.loc.gov/vocabulary/preservation/eventType".freeze,
827
+ type: "owl:Restriction".freeze
828
+ ),
569
829
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
570
- :"vs:term_status" => %(testing).freeze
830
+ "vs:term_status": "testing".freeze
571
831
  property :hasFixity,
572
832
  domain: "premis:ObjectCharacteristics".freeze,
573
- label: "hasFixity".freeze,
574
833
  range: "premis:Fixity".freeze,
575
- :"rdfs:seeAlso" => %(ObjectCharacteristics class definition and Fixity class definition).freeze,
834
+ "rdfs:seeAlso": "ObjectCharacteristics class definition and Fixity class definition".freeze,
576
835
  type: ["owl:InverseFunctionalProperty".freeze, "owl:ObjectProperty".freeze],
577
- :"vs:term_status" => %(stable).freeze
836
+ "vs:term_status": "stable".freeze
578
837
  property :hasFormat,
579
838
  domain: "premis:ObjectCharacteristics".freeze,
580
- label: "hasFormat".freeze,
581
- :"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,
839
+ range: term(
840
+ unionOf: list("premis:Format".freeze, "http://reference.data.gov.uk/technical-registry/file-format".freeze, "http://www.udfr.org/onto#AbstractFormat".freeze),
841
+ type: "owl:Class".freeze
842
+ ),
843
+ "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,
582
844
  type: "owl:ObjectProperty".freeze,
583
- :"vs:term_status" => %(stable).freeze
845
+ "vs:term_status": "stable".freeze
584
846
  property :hasFormatDesignation,
585
847
  domain: "premis:Format".freeze,
586
- label: "hasFormatDesignation".freeze,
587
848
  range: "premis:FormatDesignation".freeze,
588
- :"rdfs:seeAlso" => %(Format class definition and FormatDesignation class definition).freeze,
849
+ "rdfs:seeAlso": "Format class definition and FormatDesignation class definition".freeze,
589
850
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
590
- :"vs:term_status" => %(stable).freeze
851
+ "vs:term_status": "stable".freeze
591
852
  property :hasFormatName,
592
853
  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],
854
+ definition: %(Definition: A designation of the format of the file or bitstream.).freeze,
593
855
  domain: "premis:FormatDesignation".freeze,
594
- label: "hasFormatName".freeze,
595
856
  range: "xsd:string".freeze,
596
- :"skos:definition" => %(Definition: A designation of the format of the file or bitstream.).freeze,
597
- :"skos:scopeNote" => %(Usage Notes: For unidentified formats, formatName may be recorded as “unknown”.).freeze,
857
+ "skos:scopeNote": "Usage Notes: For unidentified formats, formatName may be recorded as “unknown”.".freeze,
598
858
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
599
- :"vs:term_status" => %(stable).freeze
859
+ "vs:term_status": "stable".freeze
600
860
  property :hasFormatNote,
601
861
  comment: %(Examples: tentative identification, disjunction, multiple format identifications found).freeze,
862
+ definition: %(Definition: Additional information about format.).freeze,
602
863
  domain: "premis:Format".freeze,
603
- label: "hasFormatNote".freeze,
864
+ editorialNote: %(Rationale: Qualifying information may be needed to supplement format designation and registry information or record a status for identification.).freeze,
604
865
  range: "xsd:string".freeze,
605
- :"skos:definition" => %(Definition: Additional information about format.).freeze,
606
- :"skos:editorialNote" => %(Rationale: Qualifying information may be needed to supplement format designation and registry information or record a status for identification.).freeze,
607
- :"skos:scopeNote" => %(Usage Notes: The formatNote may contain free text, a reference pointer, or a value from a controlled list.).freeze,
866
+ "skos:scopeNote": "Usage Notes: The formatNote may contain free text, a reference pointer, or a value from a controlled list.".freeze,
608
867
  type: "owl:DatatypeProperty".freeze,
609
- :"vs:term_status" => %(stable).freeze
868
+ "vs:term_status": "stable".freeze
610
869
  property :hasFormatRegistry,
611
870
  domain: "premis:Format".freeze,
612
- label: "hasFormatRegistry".freeze,
613
871
  range: "premis:FormatRegistry".freeze,
614
- :"rdfs:seeAlso" => %(Format class definition and FormatRegistry class definition).freeze,
872
+ "rdfs:seeAlso": "Format class definition and FormatRegistry class definition".freeze,
615
873
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
616
- :"vs:term_status" => %(stable).freeze
874
+ "vs:term_status": "stable".freeze
617
875
  property :hasFormatRegistryKey,
618
876
  comment: %(Examples: info:gdfr/fred/f/tiff, TIFF/6.0).freeze,
877
+ definition: %(Definition: The unique key used to reference an entry for this format in a format registry.).freeze,
619
878
  domain: "premis:FormatRegistry".freeze,
620
- label: "hasFormatRegistryKey".freeze,
621
- :"skos:definition" => %(Definition: The unique key used to reference an entry for this format in a format registry.).freeze,
622
879
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
623
- :"vs:term_status" => %(stable).freeze
880
+ "vs:term_status": "stable".freeze
624
881
  property :hasFormatRegistryName,
625
882
  comment: %(Examples: PRONOM, www.nationalarchives.gov.uk/pronom, Representation Information Registry Repository, FRED: A format registry demonstration, release 0.07).freeze,
883
+ definition: %(Definition: A designation identifying the referenced format registry.).freeze,
626
884
  domain: "premis:FormatRegistry".freeze,
627
- label: "hasFormatRegistryName".freeze,
628
885
  range: "xsd:string".freeze,
629
- :"skos:definition" => %(Definition: A designation identifying the referenced format registry.).freeze,
630
- :"skos:scopeNote" => %(Usage Notes: This can be a formal name, internally used name, or URI.).freeze,
886
+ "skos:scopeNote": "Usage Notes: This can be a formal name, internally used name, or URI.".freeze,
631
887
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
632
- :"vs:term_status" => %(stable).freeze
888
+ "vs:term_status": "stable".freeze
633
889
  property :hasFormatRegistryRole,
634
890
  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],
891
+ definition: %(Definition: The purpose or expected use of the registry.).freeze,
635
892
  domain: "premis:FormatRegistry".freeze,
636
- label: "hasFormatRegistryRole".freeze,
637
- :"skos:definition" => %(Definition: The purpose or expected use of the registry.).freeze,
638
- :"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,
893
+ 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,
894
+ range: term(
895
+ onProperty: "skos:inScheme".freeze,
896
+ "owl:hasValue": "http://id.loc.gov/vocabulary/preservation/formatRegistryRole".freeze,
897
+ type: "owl:Restriction".freeze
898
+ ),
639
899
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
640
- :"vs:term_status" => %(stable).freeze
900
+ "vs:term_status": "stable".freeze
641
901
  property :hasFormatVersion,
642
902
  comment: %(Examples: 6.0, 2003).freeze,
903
+ definition: %(Definition: The version of the format named in formatName.).freeze,
643
904
  domain: "premis:FormatDesignation".freeze,
644
- label: "hasFormatVersion".freeze,
905
+ editorialNote: %(Rationale: Many authority lists of format names are not granular enough to indicate version, for example, MIME Media types.).freeze,
645
906
  range: "xsd:string".freeze,
646
- :"skos:definition" => %(Definition: The version of the format named in formatName.).freeze,
647
- :"skos:editorialNote" => %(Rationale: Many authority lists of format names are not granular enough to indicate version, for example, MIME Media types.).freeze,
648
- :"skos:scopeNote" => %(Usage Notes: If the format is versioned, formatVersion should be recorded. It can be either a numeric or chronological designation.).freeze,
907
+ "skos:scopeNote": "Usage Notes: If the format is versioned, formatVersion should be recorded. It can be either a numeric or chronological designation.".freeze,
649
908
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
650
- :"vs:term_status" => %(stable).freeze
909
+ "vs:term_status": "stable".freeze
651
910
  property :hasHardware,
652
911
  domain: "premis:Environment".freeze,
653
- label: "hasHardware".freeze,
654
912
  range: "premis:Hardware".freeze,
655
- :"rdfs:seeAlso" => %(Environment class definition and Hardware class definition).freeze,
913
+ "rdfs:seeAlso": "Environment class definition and Hardware class definition".freeze,
656
914
  type: "owl:ObjectProperty".freeze,
657
- :"vs:term_status" => %(stable).freeze
915
+ "vs:term_status": "stable".freeze
658
916
  property :hasHardwareName,
659
917
  comment: %(Examples: Intel Pentium III, 1 GB DRAM, Windows XPcompatible joystick).freeze,
918
+ definition: %(Definition: Manufacturer, model, and version \(if applicable\) of the hardware.).freeze,
660
919
  domain: "premis:Hardware".freeze,
661
- label: "hasHardwareName".freeze,
662
920
  range: "xsd:string".freeze,
663
- :"skos:definition" => %(Definition: Manufacturer, model, and version \(if applicable\) of the hardware.).freeze,
664
- :"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,
921
+ "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,
665
922
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
666
- :"vs:term_status" => %(stable).freeze
923
+ "vs:term_status": "stable".freeze
667
924
  property :hasHardwareOtherInformation,
668
925
  comment: %(Examples: 32MB minimum, Required RAM for Apache is unknown).freeze,
926
+ definition: %(Definition: Additional requirements or instructions related to the hardware referenced in hwName.).freeze,
669
927
  domain: "premis:Hardware".freeze,
670
- label: "hasHardwareOtherInformation".freeze,
928
+ 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,
671
929
  range: "xsd:string".freeze,
672
- :"skos:definition" => %(Definition: Additional requirements or instructions related to the hardware referenced in hwName.).freeze,
673
- :"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,
674
- :"skos:scopeNote" => %(Usage Notes: This could be an identifier or URI used to point to hardware documentation.).freeze,
930
+ "skos:scopeNote": "Usage Notes: This could be an identifier or URI used to point to hardware documentation.".freeze,
675
931
  type: "owl:DatatypeProperty".freeze,
676
- :"vs:term_status" => %(stable).freeze
932
+ "vs:term_status": "stable".freeze
677
933
  property :hasHardwareType,
678
934
  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],
935
+ definition: %(Definition: Class or category of the hardware.).freeze,
679
936
  domain: "premis:Hardware".freeze,
680
- label: "hasHardwareType".freeze,
681
- :"skos:definition" => %(Definition: Class or category of the hardware.).freeze,
937
+ range: term(
938
+ onProperty: "skos:inScheme".freeze,
939
+ "owl:hasValue": "http://id.loc.gov/vocabulary/preservation/hardwareType".freeze,
940
+ type: "owl:Restriction".freeze
941
+ ),
682
942
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
683
- :"vs:term_status" => %(stable).freeze
943
+ "vs:term_status": "stable".freeze
684
944
  property :hasIdentifier,
685
- label: "hasIdentifier".freeze,
686
- :"rdfs:seeAlso" => %(Identifier class definition).freeze,
945
+ domain: term(
946
+ unionOf: list("premis:Agent".freeze, "premis:Dependency".freeze, "premis:Event".freeze, "premis:LicenseInformation".freeze, "premis:Object".freeze, "premis:RightsDocumentation".freeze, "premis:RightsStatement".freeze),
947
+ type: "owl:Class".freeze
948
+ ),
949
+ "rdfs:seeAlso": "Identifier class definition".freeze,
687
950
  type: ["owl:InverseFunctionalProperty".freeze, "owl:ObjectProperty".freeze],
688
- :"vs:term_status" => %(stable).freeze
951
+ "vs:term_status": "stable".freeze
689
952
  property :hasIdentifierType,
690
953
  comment: [%(Data Constraint: Value should be taken from controlled vocabulary.).freeze, %(Examples: DLC, DRS, hdl:4263537).freeze],
954
+ definition: %(Definition: A designation of the domain within which the identifier is unique.).freeze,
691
955
  domain: "premis:Identifier".freeze,
692
- label: "hasIdentifierType".freeze,
956
+ editorialNote: %(Rationale: Identifier values cannot be assumed to be unique across domains. The combination of identifierType and identifierValue should ensure uniqueness.).freeze,
693
957
  range: "xsd:string".freeze,
694
- :"skos:definition" => %(Definition: A designation of the domain within which the identifier is unique.).freeze,
695
- :"skos:editorialNote" => %(Rationale: Identifier values cannot be assumed to be unique across domains. The combination of identifierType and identifierValue should ensure uniqueness.).freeze,
696
- :"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,
958
+ "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,
697
959
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
698
- :"vs:term_status" => %(stable).freeze
960
+ "vs:term_status": "stable".freeze
699
961
  property :hasIdentifierValue,
700
962
  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],
701
963
  domain: "premis:Identifier".freeze,
702
- label: "hasIdentifierValue".freeze,
703
964
  range: "xsd:string".freeze,
704
965
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
705
- :"vs:term_status" => %(stable).freeze
966
+ "vs:term_status": "stable".freeze
706
967
  property :hasInhibitorKey,
707
968
  comment: %(Example: [DES decryption key]).freeze,
969
+ definition: %(Definition: The decryption key or password.).freeze,
708
970
  domain: "premis:Inhibitors".freeze,
709
- label: "hasInhibitorKey".freeze,
710
971
  range: "xsd:string".freeze,
711
- :"skos:definition" => %(Definition: The decryption key or password.).freeze,
712
- :"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,
972
+ "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,
713
973
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
714
- :"vs:term_status" => %(stable).freeze
974
+ "vs:term_status": "stable".freeze
715
975
  property :hasInhibitorTarget,
716
976
  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],
977
+ definition: %(Definition: The content or function protected by the inhibitor.).freeze,
717
978
  domain: "premis:Inhibitors".freeze,
718
- label: "hasInhibitorTarget".freeze,
719
- :"skos:definition" => %(Definition: The content or function protected by the inhibitor.).freeze,
979
+ range: term(
980
+ onProperty: "skos:inScheme".freeze,
981
+ "owl:hasValue": "http://id.loc.gov/vocabulary/preservation/inhibitorTarget".freeze,
982
+ type: "owl:Restriction".freeze
983
+ ),
720
984
  type: "owl:ObjectProperty".freeze,
721
- :"vs:term_status" => %(stable).freeze
985
+ "vs:term_status": "stable".freeze
722
986
  property :hasInhibitorType,
723
987
  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],
988
+ definition: %(Definition: The inhibitor method employed.).freeze,
724
989
  domain: "premis:Inhibitors".freeze,
725
- label: "hasInhibitorType".freeze,
726
- :"skos:definition" => %(Definition: The inhibitor method employed.).freeze,
990
+ range: term(
991
+ onProperty: "skos:inScheme".freeze,
992
+ "owl:hasValue": "http://id.loc.gov/vocabulary/preservation/inhibitorType".freeze,
993
+ type: "owl:Restriction".freeze
994
+ ),
727
995
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
728
- :"vs:term_status" => %(stable).freeze
996
+ "vs:term_status": "stable".freeze
729
997
  property :hasInhibitors,
730
998
  domain: "premis:ObjectCharacteristics".freeze,
731
- label: "hasInhibitors".freeze,
732
999
  range: "premis:Inhibitors".freeze,
733
- :"rdfs:seeAlso" => %(ObjectCharacteristics class definition and Inhibitors class definition).freeze,
1000
+ "rdfs:seeAlso": "ObjectCharacteristics class definition and Inhibitors class definition".freeze,
734
1001
  type: "owl:ObjectProperty".freeze,
735
- :"vs:term_status" => %(stable).freeze
1002
+ "vs:term_status": "stable".freeze
736
1003
  property :hasIntellectualEntity,
1004
+ definition: %(Definition: An intellectual entity associated with the object.).freeze,
737
1005
  domain: "premis:Object".freeze,
738
- label: "hasIntellectualEntity".freeze,
739
1006
  range: "premis:IntellectualEntity".freeze,
740
- :"skos:definition" => %(Definition: An intellectual entity associated with the object.).freeze,
741
- :"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,
1007
+ "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,
742
1008
  type: "owl:ObjectProperty".freeze,
743
- :"vs:term_status" => %(stable).freeze
1009
+ "vs:term_status": "stable".freeze
744
1010
  property :hasKeyInformation,
745
1011
  domain: "premis:Signature".freeze,
746
- label: "hasKeyInformation".freeze,
747
- :"rdfs:seeAlso" => %(Signature class definition and KeyInformation class definition).freeze,
1012
+ "rdfs:seeAlso": "Signature class definition and KeyInformation class definition".freeze,
748
1013
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
749
- :"vs:term_status" => %(unstable).freeze
1014
+ "vs:term_status": "unstable".freeze
750
1015
  property :hasLicenseTerms,
1016
+ definition: %(Definition: Text describing the license or agreement by which permission was granted.).freeze,
751
1017
  domain: "premis:LicenseInformation".freeze,
752
- label: "hasLicenseTerms".freeze,
753
1018
  range: "xsd:string".freeze,
754
- :"skos:definition" => %(Definition: Text describing the license or agreement by which permission was granted.).freeze,
755
- :"skos:scopeNote" => %(Usage Notes: This could contain the actual text of the license or agreement or a paraphrase or summary.).freeze,
1019
+ "skos:scopeNote": "Usage Notes: This could contain the actual text of the license or agreement or a paraphrase or summary.".freeze,
756
1020
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
757
- :"vs:term_status" => %(stable).freeze
1021
+ "vs:term_status": "stable".freeze
758
1022
  property :hasMessageDigest,
759
1023
  comment: %(Example: 7c9b35da4f2ebd436f1cf88e5a39b3a257edf4a22be3c955ac49da2e2107b67a1924419563).freeze,
1024
+ definition: %(Definition: The output of the message digest algorithm.).freeze,
760
1025
  domain: "premis:Fixity".freeze,
761
- label: "hasMessageDigest".freeze,
1026
+ editorialNote: %(Rationale: This must be stored so that it can be compared in future fixity checks.).freeze,
762
1027
  range: "xsd:string".freeze,
763
- :"skos:definition" => %(Definition: The output of the message digest algorithm.).freeze,
764
- :"skos:editorialNote" => %(Rationale: This must be stored so that it can be compared in future fixity checks.).freeze,
765
1028
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
766
- :"vs:term_status" => %(stable).freeze
1029
+ "vs:term_status": "stable".freeze
767
1030
  property :hasMessageDigestAlgorithm,
768
1031
  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],
1032
+ definition: %(Definition: The specific algorithm used to construct the message digest for the digital object.).freeze,
769
1033
  domain: "premis:Fixity".freeze,
770
- label: "hasMessageDigestAlgorithm".freeze,
771
- :"skos:definition" => %(Definition: The specific algorithm used to construct the message digest for the digital object.).freeze,
1034
+ range: term(
1035
+ onProperty: "skos:inScheme".freeze,
1036
+ "owl:hasValue": "http://id.loc.gov/vocabulary/preservation/cryptographicHashFunctions".freeze,
1037
+ type: "owl:Restriction".freeze
1038
+ ),
772
1039
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
773
- :"vs:term_status" => %(stable).freeze
1040
+ "vs:term_status": "stable".freeze
774
1041
  property :hasMessageDigestOriginator,
775
1042
  comment: %(Examples: DRS, A0000978).freeze,
1043
+ definition: %(Definition: The agent that created the original message digest that is compared in a fixity check.).freeze,
776
1044
  domain: "premis:Fixity".freeze,
777
- label: "hasMessageDigestOriginator".freeze,
1045
+ 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,
778
1046
  range: "xsd:string".freeze,
779
- :"skos:definition" => %(Definition: The agent that created the original message digest that is compared in a fixity check.).freeze,
780
- :"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,
781
- :"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,
782
- :"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,
1047
+ "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,
1048
+ "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,
783
1049
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
784
- :"vs:term_status" => %(stable).freeze
1050
+ "vs:term_status": "stable".freeze
785
1051
  property :hasObject,
786
1052
  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,
787
- label: "hasObject".freeze,
1053
+ definition: %(Definition: Information about an object associated with an event or rightsstatement.).freeze,
1054
+ domain: term(
1055
+ unionOf: list("premis:Event".freeze, "premis:RightsStatement".freeze),
1056
+ type: "owl:Class".freeze
1057
+ ),
1058
+ 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,
788
1059
  range: "premis:Object".freeze,
789
- :"rdfs:seeAlso" => [%(Event and RightsStatement class definition and Object class definition).freeze, %(http://id.loc.gov/vocabulary/preservation/eventRelatedObjectRole).freeze],
790
- :"skos:definition" => %(Definition: Information about an object associated with an event or rightsstatement.).freeze,
791
- :"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,
1060
+ "rdfs:seeAlso": ["Event and RightsStatement class definition and Object class definition".freeze, "http://id.loc.gov/vocabulary/preservation/eventRelatedObjectRole".freeze],
792
1061
  type: "owl:ObjectProperty".freeze,
793
- :"vs:term_status" => %(stable).freeze
1062
+ "vs:term_status": "stable".freeze
794
1063
  property :hasObjectCharacteristics,
795
- label: "hasObjectCharacteristics".freeze,
1064
+ domain: term(
1065
+ unionOf: list("premis:Bitstream".freeze, "premis:File".freeze),
1066
+ type: "owl:Class".freeze
1067
+ ),
796
1068
  range: "premis:ObjectCharacteristics".freeze,
797
- :"rdfs:seeAlso" => %(Object class definition and ObjectCharacteristics class definition).freeze,
1069
+ "rdfs:seeAlso": "Object class definition and ObjectCharacteristics class definition".freeze,
798
1070
  type: ["owl:InverseFunctionalProperty".freeze, "owl:ObjectProperty".freeze],
799
- :"vs:term_status" => %(stable).freeze
1071
+ "vs:term_status": "stable".freeze
800
1072
  property :hasOriginalName,
801
1073
  comment: %(Example: N419.pdf).freeze,
802
- label: "hasOriginalName".freeze,
1074
+ definition: %(Definition: The name of the object as submitted to or harvested by the repository, before any renaming by the repository.).freeze,
1075
+ domain: term(
1076
+ unionOf: list("premis:File".freeze, "premis:Representation".freeze),
1077
+ type: "owl:Class".freeze
1078
+ ),
1079
+ 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,
803
1080
  range: "xsd:string".freeze,
804
- :"skos:definition" => %(Definition: The name of the object as submitted to or harvested by the repository, before any renaming by the repository.).freeze,
805
- :"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,
806
- :"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,
807
- :"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,
1081
+ "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,
1082
+ "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,
808
1083
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
809
- :"vs:term_status" => %(stable).freeze
1084
+ "vs:term_status": "stable".freeze
810
1085
  property :hasPreservationLevel,
811
- label: "hasPreservationLevel".freeze,
1086
+ domain: term(
1087
+ unionOf: list("premis:File".freeze, "premis:Representation".freeze),
1088
+ type: "owl:Class".freeze
1089
+ ),
812
1090
  range: "premis:PreservationLevel".freeze,
813
- :"rdfs:seeAlso" => %(Object class definition and PreservationLevel class definition).freeze,
1091
+ "rdfs:seeAlso": "Object class definition and PreservationLevel class definition".freeze,
814
1092
  type: "owl:ObjectProperty".freeze,
815
- :"vs:term_status" => %(stable).freeze
1093
+ "vs:term_status": "stable".freeze
816
1094
  property :hasPreservationLevelDateAssigned,
817
1095
  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],
1096
+ definition: %(Definition: The date, or date and time, when a particular preservationLevelValue was assigned to the object.).freeze,
818
1097
  domain: "premis:PreservationLevel".freeze,
819
- label: "hasPreservationLevelDateAssigned".freeze,
1098
+ 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,
820
1099
  range: "xsd:dateTime".freeze,
821
- :"skos:definition" => %(Definition: The date, or date and time, when a particular preservationLevelValue was assigned to the object.).freeze,
822
- :"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,
823
1100
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
824
- :"vs:term_status" => %(stable).freeze
1101
+ "vs:term_status": "stable".freeze
825
1102
  property :hasPreservationLevelRationale,
826
1103
  comment: %(Examples: user pays, legislation, defective file, bit-level preservation only available for this format).freeze,
1104
+ definition: %(Definition: The reason a particular preservationLevelValue was applied to the object.).freeze,
827
1105
  domain: "premis:PreservationLevel".freeze,
828
- label: "hasPreservationLevelRationale".freeze,
1106
+ editorialNote: %(Rationale: Application of a particular preservationLevelValue may require justification, especially if it differs from that usually applied according to repository policy.).freeze,
829
1107
  range: "xsd:string".freeze,
830
- :"skos:definition" => %(Definition: The reason a particular preservationLevelValue was applied to the object.).freeze,
831
- :"skos:editorialNote" => %(Rationale: Application of a particular preservationLevelValue may require justification, especially if it differs from that usually applied according to repository policy.).freeze,
832
- :"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,
1108
+ "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,
833
1109
  type: "owl:DatatypeProperty".freeze,
834
- :"vs:term_status" => %(stable).freeze
1110
+ "vs:term_status": "stable".freeze
835
1111
  property :hasPreservationLevelRole,
836
1112
  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],
1113
+ definition: %(Definition: A value indicating the context in which a set of preservation options is applicable.).freeze,
837
1114
  domain: "premis:PreservationLevel".freeze,
838
- label: "hasPreservationLevelRole".freeze,
839
- :"skos:definition" => %(Definition: A value indicating the context in which a set of preservation options is applicable.).freeze,
840
- :"skos:editorialNote" => %(Rationale: Repositories may assign preservationLevelValues in different contexts which must be differentiated, and may need to record more than one context.).freeze,
1115
+ editorialNote: %(Rationale: Repositories may assign preservationLevelValues in different contexts which must be differentiated, and may need to record more than one context.).freeze,
1116
+ range: term(
1117
+ onProperty: "skos:inScheme".freeze,
1118
+ "owl:hasValue": "http://id.loc.gov/vocabulary/preservation/preservationLevelRole".freeze,
1119
+ type: "owl:Restriction".freeze
1120
+ ),
841
1121
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
842
- :"vs:term_status" => %(stable).freeze
1122
+ "vs:term_status": "stable".freeze
843
1123
  property :hasPreservationLevelValue,
844
1124
  comment: [%(Data Constraint: Value should be taken from a controlled vocabulary.).freeze, %(Examples: bit-level, full, fully supported with future migrations \(File\), 0).freeze],
1125
+ definition: %(Definition: A value indicating the set of preservation functions expected to be applied to the object.).freeze,
845
1126
  domain: "premis:PreservationLevel".freeze,
846
- label: "hasPreservationLevelValue".freeze,
1127
+ 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,
847
1128
  range: "xsd:string".freeze,
848
- :"skos:definition" => %(Definition: A value indicating the set of preservation functions expected to be applied to the object.).freeze,
849
- :"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,
850
- :"skos:historyNote" => %(Creation / Maintenance Notes: The preservation level may be assigned by the repository or requested by the depositor and submitted as metadata.).freeze,
851
- :"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,
1129
+ "skos:historyNote": "Creation / Maintenance Notes: The preservation level may be assigned by the repository or requested by the depositor and submitted as metadata.".freeze,
1130
+ "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,
852
1131
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
853
- :"vs:term_status" => %(stable).freeze
1132
+ "vs:term_status": "stable".freeze
854
1133
  property :hasRelatedObject,
1134
+ definition: %(Definition: This property related to all object belonging to a RelatedObjectIdentification to describe the related objects as an aggregation.).freeze,
855
1135
  domain: "premis:RelatedObjectIdentification".freeze,
856
- label: "hasRelatedObject".freeze,
857
1136
  range: "premis:Object".freeze,
858
- :"skos:definition" => %(Definition: This property related to all object belonging to a RelatedObjectIdentification to describe the related objects as an aggregation.).freeze,
859
1137
  type: "owl:ObjectProperty".freeze,
860
- :"vs:term_status" => %(stable).freeze
1138
+ "vs:term_status": "stable".freeze
861
1139
  property :hasRelatedObjectSequence,
1140
+ definition: %(Definition: The order of the related object relative to other objects with the same type of relationship.).freeze,
862
1141
  domain: "premis:RelatedObjectIdentification".freeze,
863
- label: "hasRelatedObjectSequence".freeze,
1142
+ 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,
864
1143
  range: "xsd:string".freeze,
865
- :"skos:definition" => %(Definition: The order of the related object relative to other objects with the same type of relationship.).freeze,
866
- :"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,
867
1144
  type: "owl:DatatypeProperty".freeze,
868
- :"vs:term_status" => %(stable).freeze
1145
+ "vs:term_status": "stable".freeze
869
1146
  property :hasRelatedStatuteInformation,
1147
+ 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,
870
1148
  domain: "premis:StatuteInformation".freeze,
871
- label: "hasRelatedStatuteInformation".freeze,
872
1149
  range: "premis:StatuteInformation".freeze,
873
- :"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,
874
1150
  type: "owl:ObjectProperty".freeze,
875
- :"vs:term_status" => %(stable).freeze
1151
+ "vs:term_status": "stable".freeze
876
1152
  property :hasRelationship,
877
1153
  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],
1154
+ definition: %(Definition: This property links one object to one or more other objects.).freeze,
878
1155
  domain: "premis:Object".freeze,
879
- label: "hasRelationship".freeze,
880
- :"rdfs:seeAlso" => [%(http://id.loc.gov/vocabulary/preservation/relationshipSubType).freeze, %(http://id.loc.gov/vocabulary/preservation/relationshipType).freeze],
881
- :"skos:definition" => %(Definition: This property links one object to one or more other objects.).freeze,
1156
+ range: term(
1157
+ unionOf: list("premis:Object".freeze, "premis:RelatedObjectIdentification".freeze),
1158
+ type: "owl:Class".freeze
1159
+ ),
1160
+ "rdfs:seeAlso": ["http://id.loc.gov/vocabulary/preservation/relationshipSubType".freeze, "http://id.loc.gov/vocabulary/preservation/relationshipType".freeze],
882
1161
  type: "owl:ObjectProperty".freeze,
883
- :"vs:term_status" => %(testing).freeze
1162
+ "vs:term_status": "testing".freeze
884
1163
  property :hasRestriction,
885
1164
  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,
1165
+ definition: %(Definition: A condition or limitation on the act.).freeze,
886
1166
  domain: "premis:RightsGranted".freeze,
887
- label: "hasRestriction".freeze,
888
1167
  range: "xsd:string".freeze,
889
- :"skos:definition" => %(Definition: A condition or limitation on the act.).freeze,
890
1168
  type: "owl:DatatypeProperty".freeze,
891
- :"vs:term_status" => %(stable).freeze
1169
+ "vs:term_status": "stable".freeze
892
1170
  property :hasRightsDocumentation,
893
1171
  domain: "premis:RightsStatement".freeze,
894
- label: "hasRightsDocumentation".freeze,
895
1172
  range: "premis:RightsDocumentation".freeze,
896
- :"rdfs:seeAlso" => %(RiightsDocumentation class definition).freeze,
1173
+ "rdfs:seeAlso": "RiightsDocumentation class definition".freeze,
897
1174
  type: "owl:ObjectProperty".freeze,
898
- :"vs:term_status" => %(stable).freeze
1175
+ "vs:term_status": "stable".freeze
899
1176
  property :hasRightsDocumentationRole,
1177
+ 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,
900
1178
  domain: "premis:RightsDocumentation".freeze,
901
- label: "hasRightsDocumentationRole".freeze,
1179
+ editorialNote: %(Rationale: This information distinguishes the purpose of the supporting documentation especially when there are multiple documentation identifiers.).freeze,
902
1180
  range: "skos:Concept".freeze,
903
- :"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,
904
- :"skos:editorialNote" => %(Rationale: This information distinguishes the purpose of the supporting documentation especially when there are multiple documentation identifiers.).freeze,
905
1181
  type: "owl:ObjectProperty".freeze,
906
- :"vs:term_status" => %(stable).freeze
1182
+ "vs:term_status": "stable".freeze
907
1183
  property :hasRightsGranted,
908
1184
  domain: "premis:RightsStatement".freeze,
909
- label: "hasRightsGranted".freeze,
910
1185
  range: "premis:RightsGranted".freeze,
911
- :"rdfs:seeAlso" => %(RightsStatement class definition and RightsGranted class definition).freeze,
1186
+ "rdfs:seeAlso": "RightsStatement class definition and RightsGranted class definition".freeze,
912
1187
  type: "owl:ObjectProperty".freeze,
913
- :"vs:term_status" => %(stable).freeze
1188
+ "vs:term_status": "stable".freeze
914
1189
  property :hasRightsGrantedNote,
1190
+ definition: %(Definition: Additional information about the rights granted.).freeze,
915
1191
  domain: "premis:RightsGranted".freeze,
916
- label: "hasRightsGrantedNote".freeze,
1192
+ editorialNote: %(Rationale: A textual description of the rights granted may be needed for additional explanation.).freeze,
917
1193
  range: "xsd:string".freeze,
918
- :"skos:definition" => %(Definition: Additional information about the rights granted.).freeze,
919
- :"skos:editorialNote" => %(Rationale: A textual description of the rights granted may be needed for additional explanation.).freeze,
920
- :"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,
1194
+ "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,
921
1195
  type: "owl:DatatypeProperty".freeze,
922
- :"vs:term_status" => %(stable).freeze
1196
+ "vs:term_status": "stable".freeze
923
1197
  property :hasRightsRelatedAgent,
924
1198
  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],
925
1199
  domain: "premis:RightsStatement".freeze,
926
- label: "hasRightsRelatedAgent".freeze,
927
1200
  range: "premis:Agent".freeze,
928
- :"rdfs:seeAlso" => %(http://id.loc.gov/vocabulary/preservation/rightsRelatedAgentRole).freeze,
1201
+ "rdfs:seeAlso": "http://id.loc.gov/vocabulary/preservation/rightsRelatedAgentRole".freeze,
929
1202
  subPropertyOf: "premis:hasAgent".freeze,
930
1203
  type: "owl:ObjectProperty".freeze,
931
- :"vs:term_status" => %(unstable).freeze
1204
+ "vs:term_status": "unstable".freeze
932
1205
  property :hasRightsStatement,
933
- label: "hasRightsStatement".freeze,
1206
+ definition: %(Definition: A rights statement associated with the object.).freeze,
1207
+ domain: term(
1208
+ unionOf: list("premis:Agent".freeze, "premis:Object".freeze),
1209
+ type: "owl:Class".freeze
1210
+ ),
1211
+ 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,
934
1212
  range: "premis:RightsStatement".freeze,
935
- :"rdfs:seeAlso" => %(RightsStatement class definition).freeze,
936
- :"skos:definition" => %(Definition: A rights statement associated with the object.).freeze,
937
- :"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,
1213
+ "rdfs:seeAlso": "RightsStatement class definition".freeze,
938
1214
  type: "owl:ObjectProperty".freeze,
939
- :"vs:term_status" => %(stable).freeze
1215
+ "vs:term_status": "stable".freeze
940
1216
  property :hasRightsStatementNote,
941
1217
  comment: %(Examples: Copyright expiration expected in 2010 unless renewed.
942
1218
  License is embedded in XMP block in file header.).freeze,
1219
+ definition: %(Definition: Additional information about the RightsStatement of an object.).freeze,
943
1220
  domain: "premis:RightsStatement".freeze,
944
- label: "hasRightsStatementNote".freeze,
945
1221
  range: "xsd:string".freeze,
946
- :"skos:definition" => %(Definition: Additional information about the RightsStatement of an object.).freeze,
947
1222
  type: "owl:DatatypeProperty".freeze,
948
- :"vs:term_status" => %(stable).freeze
1223
+ "vs:term_status": "stable".freeze
949
1224
  property :hasSignature,
950
- label: "hasSignature".freeze,
1225
+ domain: term(
1226
+ unionOf: list("premis:Bitstream".freeze, "premis:File".freeze),
1227
+ type: "owl:Class".freeze
1228
+ ),
951
1229
  range: "premis:Signature".freeze,
952
- :"rdfs:seeAlso" => %(Signature class definition).freeze,
1230
+ "rdfs:seeAlso": "Signature class definition".freeze,
953
1231
  type: "owl:ObjectProperty".freeze,
954
- :"vs:term_status" => %(stable).freeze
1232
+ "vs:term_status": "stable".freeze
955
1233
  property :hasSignatureEncoding,
956
1234
  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],
1235
+ definition: %(Definition: The encoding used for the values of signatureValue, keyInformation.).freeze,
957
1236
  domain: "premis:Signature".freeze,
958
- label: "hasSignatureEncoding".freeze,
959
- :"skos:definition" => %(Definition: The encoding used for the values of signatureValue, keyInformation.).freeze,
960
- :"skos:editorialNote" => %(Rationale: These values cannot be interpreted correctly if the encoding is unknown.).freeze,
1237
+ editorialNote: %(Rationale: These values cannot be interpreted correctly if the encoding is unknown.).freeze,
1238
+ range: term(
1239
+ onProperty: "skos:inScheme".freeze,
1240
+ "owl:hasValue": "http://id.loc.gov/vocabulary/preservation/signatureEncoding".freeze,
1241
+ type: "owl:Restriction".freeze
1242
+ ),
961
1243
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
962
- :"vs:term_status" => %(stable).freeze
1244
+ "vs:term_status": "stable".freeze
963
1245
  property :hasSignatureMethod,
964
1246
  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],
1247
+ definition: %(Definition: A designation for the encryption and hash algorithms used for signature generation.).freeze,
965
1248
  domain: "premis:Signature".freeze,
966
- label: "hasSignatureMethod".freeze,
1249
+ editorialNote: %(Rationale: The same algorithms must be used for signature validation.).freeze,
967
1250
  range: "skos:Concept".freeze,
968
- :"skos:definition" => %(Definition: A designation for the encryption and hash algorithms used for signature generation.).freeze,
969
- :"skos:editorialNote" => %(Rationale: The same algorithms must be used for signature validation.).freeze,
970
1251
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
971
- :"vs:term_status" => %(stable).freeze
1252
+ "vs:term_status": "stable".freeze
972
1253
  property :hasSignatureProperties,
1254
+ definition: %(Definition: Additional information about the generation of the signature.).freeze,
973
1255
  domain: "premis:Signature".freeze,
974
- label: "hasSignatureProperties".freeze,
975
1256
  range: "xsd:string".freeze,
976
- :"skos:definition" => %(Definition: Additional information about the generation of the signature.).freeze,
977
- :"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,
1257
+ "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,
978
1258
  type: "owl:DatatypeProperty".freeze,
979
- :"vs:term_status" => %(stable).freeze
1259
+ "vs:term_status": "stable".freeze
980
1260
  property :hasSignatureValidationRules,
1261
+ definition: %(Definition: The operations to be performed in order to validate the digital signature.).freeze,
981
1262
  domain: "premis:Signature".freeze,
982
- label: "hasSignatureValidationRules".freeze,
1263
+ 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,
983
1264
  range: "xsd:string".freeze,
984
- :"skos:definition" => %(Definition: The operations to be performed in order to validate the digital signature.).freeze,
985
- :"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,
986
- :"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,
1265
+ "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,
987
1266
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
988
- :"vs:term_status" => %(stable).freeze
1267
+ "vs:term_status": "stable".freeze
989
1268
  property :hasSignatureValue,
990
1269
  comment: %(Example: juS5RhJ884qoFR8flVXd/rbrSDVGn40CapgB7qeQiT+rr0NekEQ6BHhUA8dT3+BCTBUQI0dBjlml9lwzENXvS83zRECjzXbMRTUtVZiPZG2pqKPnL2YU3A9645UCjTXU+jgFumv7k78hieAGDzNci+PQ9KRmm//icT7JaYztgt4=).freeze,
1270
+ definition: %(Definition: The digital signature; a value generated from the application of a private key to a message digest.).freeze,
991
1271
  domain: "premis:Signature".freeze,
992
- label: "hasSignatureValue".freeze,
993
1272
  range: "xsd:string".freeze,
994
- :"skos:definition" => %(Definition: The digital signature; a value generated from the application of a private key to a message digest.).freeze,
995
1273
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
996
- :"vs:term_status" => %(stable).freeze
1274
+ "vs:term_status": "stable".freeze
997
1275
  property :hasSigner,
1276
+ definition: %(Definition: The individual, institution, or authority responsible for generating the signature.).freeze,
998
1277
  domain: "premis:Signature".freeze,
999
- label: "hasSigner".freeze,
1278
+ editorialNote: %(Rationale: The signer might also be carried in the keyInformation, but it can be accessed more conveniently if recorded here.).freeze,
1000
1279
  range: ["premis:Agent".freeze, "xsd:string".freeze],
1001
- :"skos:definition" => %(Definition: The individual, institution, or authority responsible for generating the signature.).freeze,
1002
- :"skos:editorialNote" => %(Rationale: The signer might also be carried in the keyInformation, but it can be accessed more conveniently if recorded here.).freeze,
1003
- :"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,
1280
+ "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,
1004
1281
  type: "owl:AnnotationProperty".freeze,
1005
- :"vs:term_status" => %(stable).freeze
1282
+ "vs:term_status": "stable".freeze
1006
1283
  property :hasSignificantProperties,
1007
1284
  domain: "premis:Object".freeze,
1008
- label: "hasSignificantProperties".freeze,
1009
1285
  range: "premis:SignificantProperties".freeze,
1010
- :"rdfs:seeAlso" => %(Object class definition and SignificantProperties class definition).freeze,
1286
+ "rdfs:seeAlso": "Object class definition and SignificantProperties class definition".freeze,
1011
1287
  type: "owl:ObjectProperty".freeze,
1012
- :"vs:term_status" => %(stable).freeze
1288
+ "vs:term_status": "stable".freeze
1013
1289
  property :hasSignificantPropertiesType,
1014
1290
  comment: %(Examples: content, structure, behavior, page count, page width, typeface, hyperlinks \(representation\), image count \(representation\), color space [for an embedded image] \(bitstream\)).freeze,
1291
+ definition: %(Definition: The aspect, facet, or attribute of an object about which significant properties are being described.).freeze,
1015
1292
  domain: "premis:SignificantProperties".freeze,
1016
- label: "hasSignificantPropertiesType".freeze,
1293
+ editorialNote: %(Rationale: Repositories may choose to describe significant properties based on a particular aspect or attribute of an object.).freeze,
1017
1294
  range: "xsd:string".freeze,
1018
- :"skos:definition" => %(Definition: The aspect, facet, or attribute of an object about which significant properties are being described.).freeze,
1019
- :"skos:editorialNote" => %(Rationale: Repositories may choose to describe significant properties based on a particular aspect or attribute of an object.).freeze,
1020
- :"skos:scopeNote" => %(Usage Notes: This semantic unit is optional and may be used as part of a facet:detail pair with significantPropertiesValue.).freeze,
1295
+ "skos:scopeNote": "Usage Notes: This semantic unit is optional and may be used as part of a facet:detail pair with significantPropertiesValue.".freeze,
1021
1296
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
1022
- :"vs:term_status" => %(stable).freeze
1297
+ "vs:term_status": "stable".freeze
1023
1298
  property :hasSignificantPropertiesValue,
1024
1299
  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,
1300
+ definition: %(Definition: Description of the characteristics of a particular object subjectively determined to be important to maintain through preservation actions.).freeze,
1025
1301
  domain: "premis:SignificantProperties".freeze,
1026
- label: "hasSignificantPropertiesValue".freeze,
1302
+ editorialNote: %(Rationale: Repositories may choose to describe significant properties based on a particular aspect or attribute of an object.).freeze,
1027
1303
  range: "xsd:string".freeze,
1028
- :"skos:definition" => %(Definition: Description of the characteristics of a particular object subjectively determined to be important to maintain through preservation actions.).freeze,
1029
- :"skos:editorialNote" => %(Rationale: Repositories may choose to describe significant properties based on a particular aspect or attribute of an object.).freeze,
1030
- :"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,
1304
+ "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,
1031
1305
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
1032
- :"vs:term_status" => %(stable).freeze
1306
+ "vs:term_status": "stable".freeze
1033
1307
  property :hasSize,
1034
1308
  comment: %(Example: 2038937).freeze,
1309
+ definition: %(Definition: The size in bytes of the file or bitstream stored in the repository.).freeze,
1035
1310
  domain: "premis:ObjectCharacteristics".freeze,
1036
- label: "hasSize".freeze,
1311
+ 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,
1037
1312
  range: "xsd:long".freeze,
1038
- :"skos:definition" => %(Definition: The size in bytes of the file or bitstream stored in the repository.).freeze,
1039
- :"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,
1040
- :"skos:historyNote" => %(Creation / Maintenance Notes: Automatically obtained by the repository.).freeze,
1041
- :"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,
1313
+ "skos:historyNote": "Creation / Maintenance Notes: Automatically obtained by the repository.".freeze,
1314
+ "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,
1042
1315
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
1043
- :"vs:term_status" => %(stable).freeze
1316
+ "vs:term_status": "stable".freeze
1044
1317
  property :hasSoftware,
1045
1318
  domain: "premis:Environment".freeze,
1046
- label: "hasSoftware".freeze,
1047
1319
  range: "premis:Software".freeze,
1048
- :"rdfs:seeAlso" => %(Environment class definition and Software class definition).freeze,
1320
+ "rdfs:seeAlso": "Environment class definition and Software class definition".freeze,
1049
1321
  type: "owl:ObjectProperty".freeze,
1050
- :"vs:term_status" => %(stable).freeze
1322
+ "vs:term_status": "stable".freeze
1051
1323
  property :hasSoftwareDependency,
1052
1324
  comment: %(Example: GNU gcc >=2.7.2).freeze,
1325
+ 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,
1053
1326
  domain: "premis:Software".freeze,
1054
- label: "hasSoftwareDependency".freeze,
1055
1327
  range: "xsd:string".freeze,
1056
- :"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,
1057
- :"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,
1328
+ "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,
1058
1329
  type: "owl:DatatypeProperty".freeze,
1059
- :"vs:term_status" => %(stable).freeze
1330
+ "vs:term_status": "stable".freeze
1060
1331
  property :hasSoftwareName,
1061
1332
  comment: %(Examples: Adobe Photoshop, Adobe Acrobat Reader).freeze,
1333
+ definition: %(Definition: Manufacturer and title of the software application.).freeze,
1062
1334
  domain: "premis:Software".freeze,
1063
- label: "hasSoftwareName".freeze,
1064
1335
  range: "xsd:string".freeze,
1065
- :"skos:definition" => %(Definition: Manufacturer and title of the software application.).freeze,
1066
- :"skos:scopeNote" => %(Usage Notes: Include manufacturer when this helps to identify or disambiguate the product, for example, use “Adobe Photoshop” rather than “Photoshop.”).freeze,
1336
+ "skos:scopeNote": "Usage Notes: Include manufacturer when this helps to identify or disambiguate the product, for example, use “Adobe Photoshop” rather than “Photoshop.”".freeze,
1067
1337
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
1068
- :"vs:term_status" => %(stable).freeze
1338
+ "vs:term_status": "stable".freeze
1069
1339
  property :hasSoftwareOtherInformation,
1070
1340
  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,
1341
+ definition: %(Definition: Additional requirements or instructions related to the software referenced in swName.).freeze,
1071
1342
  domain: "premis:Software".freeze,
1072
- label: "hasSoftwareOtherInformation".freeze,
1073
1343
  range: "xsd:string".freeze,
1074
- :"skos:definition" => %(Definition: Additional requirements or instructions related to the software referenced in swName.).freeze,
1075
- :"skos:scopeNote" => %(Usage Notes: This could be a reliable persistent identifier or URI pointing to software documentation within or outside the repository.).freeze,
1344
+ "skos:scopeNote": "Usage Notes: This could be a reliable persistent identifier or URI pointing to software documentation within or outside the repository.".freeze,
1076
1345
  type: "owl:DatatypeProperty".freeze,
1077
- :"vs:term_status" => %(stable).freeze
1346
+ "vs:term_status": "stable".freeze
1078
1347
  property :hasSoftwareType,
1079
1348
  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],
1349
+ definition: %(Definition: Class or category of software.).freeze,
1080
1350
  domain: "premis:Software".freeze,
1081
- label: "hasSoftwareType".freeze,
1082
- :"skos:definition" => %(Definition: Class or category of software.).freeze,
1083
- :"skos:editorialNote" => %(Rationale: Several different layers of software can be required to support an object.).freeze,
1351
+ editorialNote: %(Rationale: Several different layers of software can be required to support an object.).freeze,
1352
+ range: term(
1353
+ onProperty: "skos:inScheme".freeze,
1354
+ "owl:hasValue": "http://id.loc.gov/vocabulary/preservation/softwareType".freeze,
1355
+ type: "owl:Restriction".freeze
1356
+ ),
1084
1357
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
1085
- :"vs:term_status" => %(stable).freeze
1358
+ "vs:term_status": "stable".freeze
1086
1359
  property :hasSoftwareVersion,
1087
1360
  comment: %(Examples: >=2.2.0, 6.0, 2003).freeze,
1361
+ definition: %(Definition: The version or versions of the software referenced in swName.).freeze,
1088
1362
  domain: "premis:Software".freeze,
1089
- label: "hasSoftwareVersion".freeze,
1090
1363
  range: "xsd:string".freeze,
1091
- :"skos:definition" => %(Definition: The version or versions of the software referenced in swName.).freeze,
1092
- :"skos:scopeNote" => %(Usage Notes: If there is no formal version, the date of issuance can be used.).freeze,
1364
+ "skos:scopeNote": "Usage Notes: If there is no formal version, the date of issuance can be used.".freeze,
1093
1365
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
1094
- :"vs:term_status" => %(stable).freeze
1366
+ "vs:term_status": "stable".freeze
1095
1367
  property :hasStartDate,
1096
1368
  comment: %(Data Constraint: To aid machine processing, value should use a structured form: xsd:dateTime).freeze,
1369
+ definition: %(Definition: The beginning date of the permission granted.).freeze,
1097
1370
  domain: "premis:ApplicableDates".freeze,
1098
- label: "hasStartDate".freeze,
1099
1371
  range: "xsd:dateTime".freeze,
1100
- :"skos:definition" => %(Definition: The beginning date of the permission granted.).freeze,
1101
1372
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
1102
- :"vs:term_status" => %(stable).freeze
1373
+ "vs:term_status": "stable".freeze
1103
1374
  property :hasStatuteCitation,
1104
1375
  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,
1376
+ definition: %(Definition: An identifying designation for the statute.).freeze,
1105
1377
  domain: "premis:StatuteInformation".freeze,
1106
- label: "hasStatuteCitation".freeze,
1107
1378
  range: "xsd:string".freeze,
1108
- :"skos:definition" => %(Definition: An identifying designation for the statute.).freeze,
1109
- :"skos:scopeNote" => %(Usage Notes: Use standard citation form when applicable.).freeze,
1379
+ "skos:scopeNote": "Usage Notes: Use standard citation form when applicable.".freeze,
1110
1380
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
1111
- :"vs:term_status" => %(stable).freeze
1381
+ "vs:term_status": "stable".freeze
1112
1382
  property :hasStatuteInformationDeterminationDate,
1113
1383
  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],
1384
+ definition: %(Definition: The date that the determination was made that the statute authorized the permission\(s\) noted.).freeze,
1114
1385
  domain: "premis:StatuteInformation".freeze,
1115
- label: "hasStatuteInformationDeterminationDate".freeze,
1386
+ 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,
1116
1387
  range: "xsd:dateTime".freeze,
1117
- :"skos:definition" => %(Definition: The date that the determination was made that the statute authorized the permission\(s\) noted.).freeze,
1118
- :"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,
1119
1388
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
1120
- :"vs:term_status" => %(stable).freeze
1389
+ "vs:term_status": "stable".freeze
1121
1390
  property :hasStatuteJurisdiction,
1122
1391
  comment: [%(Data Constraint: Values should be taken from a controlled vocabulary.).freeze, %(Examples: us, de, be).freeze],
1392
+ definition: %(Definition: The country or other political body enacting the statute.).freeze,
1123
1393
  domain: "premis:StatuteInformation".freeze,
1124
- label: "hasStatuteJurisdiction".freeze,
1394
+ editorialNote: %(Rationale: The connection between the object and the rights granted is based on jurisdiction.).freeze,
1125
1395
  range: "xsd:string".freeze,
1126
- :"skos:definition" => %(Definition: The country or other political body enacting the statute.).freeze,
1127
- :"skos:editorialNote" => %(Rationale: The connection between the object and the rights granted is based on jurisdiction.).freeze,
1128
1396
  type: ["owl:DatatypeProperty".freeze, "owl:FunctionalProperty".freeze],
1129
- :"vs:term_status" => %(stable).freeze
1397
+ "vs:term_status": "stable".freeze
1130
1398
  property :hasStorage,
1131
- label: "hasStorage".freeze,
1399
+ domain: term(
1400
+ unionOf: list("premis:Bitstream".freeze, "premis:File".freeze),
1401
+ type: "owl:Class".freeze
1402
+ ),
1132
1403
  range: "premis:Storage".freeze,
1133
- :"rdfs:seeAlso" => %(Object class definition and Storage class definition).freeze,
1404
+ "rdfs:seeAlso": "Object class definition and Storage class definition".freeze,
1134
1405
  type: "owl:ObjectProperty".freeze,
1135
- :"vs:term_status" => %(stable).freeze
1406
+ "vs:term_status": "stable".freeze
1136
1407
  property :hasStorageMedium,
1137
1408
  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],
1409
+ definition: %(Definition: The physical medium on which the object is stored \(e.g., magnetic tape, hard disk, CD-ROM, DVD\).).freeze,
1138
1410
  domain: "premis:Storage".freeze,
1139
- label: "hasStorageMedium".freeze,
1140
- :"skos:definition" => %(Definition: The physical medium on which the object is stored \(e.g., magnetic tape, hard disk, CD-ROM, DVD\).).freeze,
1141
- :"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,
1411
+ 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,
1412
+ range: term(
1413
+ onProperty: "skos:inScheme".freeze,
1414
+ "owl:hasValue": "http://id.loc.gov/vocabulary/preservation/storageMedium".freeze,
1415
+ type: "owl:Restriction".freeze
1416
+ ),
1142
1417
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
1143
- :"vs:term_status" => %(stable).freeze
1418
+ "vs:term_status": "stable".freeze
1144
1419
  property :hasTermOfGrant,
1145
1420
  domain: "premis:RightsGranted".freeze,
1146
- label: "hasTermOfGrant".freeze,
1147
1421
  range: "premis:TermOfGrant".freeze,
1148
- :"rdfs:seeAlso" => %(RightsGranted class definition and TermOfGrant class definition).freeze,
1422
+ "rdfs:seeAlso": "RightsGranted class definition and TermOfGrant class definition".freeze,
1149
1423
  type: ["owl:FunctionalProperty".freeze, "owl:ObjectProperty".freeze],
1150
- :"vs:term_status" => %(stable).freeze
1424
+ "vs:term_status": "stable".freeze
1151
1425
  property :hasTermOfRestriction,
1152
1426
  domain: "premis:RightsGranted".freeze,
1153
- label: "hasTermOfRestriction".freeze,
1154
1427
  range: "premis:TermOfRestriction".freeze,
1155
- :"rdfs:seeAlso" => %(RightsGranted and TermOfRestriction class definitions).freeze,
1428
+ "rdfs:seeAlso": "RightsGranted and TermOfRestriction class definitions".freeze,
1156
1429
  type: "owl:ObjectProperty".freeze,
1157
- :"vs:term_status" => %(stable).freeze
1430
+ "vs:term_status": "stable".freeze
1158
1431
  end
1159
1432
  end