pid4cat-model 0.3.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pid4cat_model/__init__.py +5 -0
- pid4cat_model/_version.py +8 -0
- pid4cat_model/datamodel/__init__.py +6 -0
- pid4cat_model/datamodel/pid4cat_model.py +2816 -0
- pid4cat_model/datamodel/pid4cat_model_pydantic.py +2753 -0
- pid4cat_model/handle_api.py +123 -0
- pid4cat_model/schema/README.md +3 -0
- pid4cat_model/schema/media_types.yaml +2247 -0
- pid4cat_model/schema/pid4cat_model.yaml +977 -0
- pid4cat_model-0.3.0.dist-info/METADATA +52 -0
- pid4cat_model-0.3.0.dist-info/RECORD +13 -0
- pid4cat_model-0.3.0.dist-info/WHEEL +4 -0
- pid4cat_model-0.3.0.dist-info/licenses/LICENSE +22 -0
|
@@ -0,0 +1,2816 @@
|
|
|
1
|
+
# Auto generated from pid4cat_model.yaml by pythongen.py version: 0.0.1
|
|
2
|
+
# Generation date: 2025-04-03T15:59:22
|
|
3
|
+
# Schema: pid4cat-model
|
|
4
|
+
#
|
|
5
|
+
# id: https://w3id.org/nfdi4cat/pid4cat-model
|
|
6
|
+
# description: A LinkML model for persistent identifiers for resources in catalysis (pid4cat). pid4cat are handle based persistent identifiers (PIDs) for digital or physical resources used in the catalysis research process. PID-related metadata besides the obligatory landing page URL are stored directly in the handle records.
|
|
7
|
+
# The model describes metadata for the PID itself and how to access the identified resource. It does not describe the resource itself with the exception of the resource category, which is a high-level description of what is identified by the pid4cat handle, e.g. a sample or a device.
|
|
8
|
+
# license: MIT
|
|
9
|
+
|
|
10
|
+
import dataclasses
|
|
11
|
+
import re
|
|
12
|
+
from dataclasses import dataclass
|
|
13
|
+
from typing import Any, ClassVar, Dict, List, Optional, Union
|
|
14
|
+
|
|
15
|
+
from jsonasobj2 import as_dict
|
|
16
|
+
from linkml_runtime.linkml_model.meta import EnumDefinition, PermissibleValue
|
|
17
|
+
from linkml_runtime.utils.curienamespace import CurieNamespace
|
|
18
|
+
from linkml_runtime.utils.dataclass_extensions_376 import (
|
|
19
|
+
dataclasses_init_fn_with_kwargs,
|
|
20
|
+
)
|
|
21
|
+
from linkml_runtime.utils.enumerations import EnumDefinitionImpl
|
|
22
|
+
from linkml_runtime.utils.metamodelcore import empty_dict, empty_list
|
|
23
|
+
from linkml_runtime.utils.slot import Slot
|
|
24
|
+
from linkml_runtime.utils.yamlutils import YAMLRoot, extended_str
|
|
25
|
+
from rdflib import URIRef
|
|
26
|
+
|
|
27
|
+
from linkml_runtime.utils.metamodelcore import URI, XSDDateTime
|
|
28
|
+
|
|
29
|
+
metamodel_version = "1.7.0"
|
|
30
|
+
version = "0.0.0"
|
|
31
|
+
|
|
32
|
+
# Overwrite dataclasses _init_fn to add **kwargs in __init__
|
|
33
|
+
dataclasses._init_fn = dataclasses_init_fn_with_kwargs
|
|
34
|
+
|
|
35
|
+
# Namespaces
|
|
36
|
+
DATACITE = CurieNamespace("DataCite", "https://purl.org/spar/datacite/")
|
|
37
|
+
DCAT = CurieNamespace("dcat", "https://www.w3.org/ns/dcat#")
|
|
38
|
+
DCTERMS = CurieNamespace("dcterms", "https://purl.org/dc/terms/")
|
|
39
|
+
LINKML = CurieNamespace("linkml", "https://w3id.org/linkml/")
|
|
40
|
+
MEDIATYPE = CurieNamespace("mediatype", "https://www.iana.org/assignments/media-types/")
|
|
41
|
+
PID4CAT_MODEL = CurieNamespace(
|
|
42
|
+
"pid4cat_model", "https://w3id.org/nfdi4cat/pid4cat-model/"
|
|
43
|
+
)
|
|
44
|
+
PROV = CurieNamespace("prov", "https://www.w3.org/ns/prov#")
|
|
45
|
+
VOC4CAT = CurieNamespace("voc4cat", "https://w3id.org/nfdi4cat/voc4cat_")
|
|
46
|
+
DEFAULT_ = PID4CAT_MODEL
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
# Types
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
# Class references
|
|
53
|
+
class HandleAPIRecordHandle(extended_str):
|
|
54
|
+
pass
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
@dataclass(repr=False)
|
|
58
|
+
class HandleAPIRecord(YAMLRoot):
|
|
59
|
+
"""
|
|
60
|
+
A class representing a handle record query response of the REST (json) API of a handle server.
|
|
61
|
+
"""
|
|
62
|
+
|
|
63
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
64
|
+
|
|
65
|
+
class_class_uri: ClassVar[URIRef] = PID4CAT_MODEL["HandleAPIRecord"]
|
|
66
|
+
class_class_curie: ClassVar[str] = "pid4cat_model:HandleAPIRecord"
|
|
67
|
+
class_name: ClassVar[str] = "HandleAPIRecord"
|
|
68
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.HandleAPIRecord
|
|
69
|
+
|
|
70
|
+
handle: Union[str, HandleAPIRecordHandle] = None
|
|
71
|
+
values: Union[Union[dict, "HandleRecord"], List[Union[dict, "HandleRecord"]]] = None
|
|
72
|
+
responseCode: Optional[int] = None
|
|
73
|
+
|
|
74
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
75
|
+
if self._is_empty(self.handle):
|
|
76
|
+
self.MissingRequiredField("handle")
|
|
77
|
+
if not isinstance(self.handle, HandleAPIRecordHandle):
|
|
78
|
+
self.handle = HandleAPIRecordHandle(self.handle)
|
|
79
|
+
|
|
80
|
+
if self._is_empty(self.values):
|
|
81
|
+
self.MissingRequiredField("values")
|
|
82
|
+
self._normalize_inlined_as_dict(
|
|
83
|
+
slot_name="values",
|
|
84
|
+
slot_type=HandleRecord,
|
|
85
|
+
key_name="timestamp",
|
|
86
|
+
keyed=False,
|
|
87
|
+
)
|
|
88
|
+
|
|
89
|
+
if self.responseCode is not None and not isinstance(self.responseCode, int):
|
|
90
|
+
self.responseCode = int(self.responseCode)
|
|
91
|
+
|
|
92
|
+
super().__post_init__(**kwargs)
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
@dataclass(repr=False)
|
|
96
|
+
class HandleRecord(YAMLRoot):
|
|
97
|
+
"""
|
|
98
|
+
A base class for handle-data classes that represent a handle record in the same way as in the REST (json) API of a
|
|
99
|
+
handle server.
|
|
100
|
+
"""
|
|
101
|
+
|
|
102
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
103
|
+
|
|
104
|
+
class_class_uri: ClassVar[URIRef] = PID4CAT_MODEL["HandleRecord"]
|
|
105
|
+
class_class_curie: ClassVar[str] = "pid4cat_model:HandleRecord"
|
|
106
|
+
class_name: ClassVar[str] = "HandleRecord"
|
|
107
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.HandleRecord
|
|
108
|
+
|
|
109
|
+
timestamp: Union[str, XSDDateTime] = None
|
|
110
|
+
type: str = None
|
|
111
|
+
ttl: Optional[int] = 86400
|
|
112
|
+
|
|
113
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
114
|
+
if self._is_empty(self.timestamp):
|
|
115
|
+
self.MissingRequiredField("timestamp")
|
|
116
|
+
if not isinstance(self.timestamp, XSDDateTime):
|
|
117
|
+
self.timestamp = XSDDateTime(self.timestamp)
|
|
118
|
+
|
|
119
|
+
if self._is_empty(self.type):
|
|
120
|
+
self.MissingRequiredField("type")
|
|
121
|
+
self.type = str(self.class_name)
|
|
122
|
+
|
|
123
|
+
if self.ttl is not None and not isinstance(self.ttl, int):
|
|
124
|
+
self.ttl = int(self.ttl)
|
|
125
|
+
|
|
126
|
+
super().__post_init__(**kwargs)
|
|
127
|
+
if self._is_empty(self.type):
|
|
128
|
+
self.MissingRequiredField("type")
|
|
129
|
+
self.type = str(self.class_name)
|
|
130
|
+
|
|
131
|
+
def __new__(cls, *args, **kwargs):
|
|
132
|
+
type_designator = "type"
|
|
133
|
+
if type_designator not in kwargs:
|
|
134
|
+
return super().__new__(cls, *args, **kwargs)
|
|
135
|
+
else:
|
|
136
|
+
type_designator_value = kwargs[type_designator]
|
|
137
|
+
target_cls = cls._class_for("class_name", type_designator_value)
|
|
138
|
+
|
|
139
|
+
if target_cls is None:
|
|
140
|
+
raise ValueError(
|
|
141
|
+
f"Wrong type designator value: class {cls.__name__} "
|
|
142
|
+
f"has no subclass with ['class_name']='{kwargs[type_designator]}'"
|
|
143
|
+
)
|
|
144
|
+
return super().__new__(target_cls, *args, **kwargs)
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
@dataclass(repr=False)
|
|
148
|
+
class URL(HandleRecord):
|
|
149
|
+
"""
|
|
150
|
+
The data element in the handle API for the landing page URL.
|
|
151
|
+
"""
|
|
152
|
+
|
|
153
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
154
|
+
|
|
155
|
+
class_class_uri: ClassVar[URIRef] = PID4CAT_MODEL["URL"]
|
|
156
|
+
class_class_curie: ClassVar[str] = "pid4cat_model:URL"
|
|
157
|
+
class_name: ClassVar[str] = "URL"
|
|
158
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.URL
|
|
159
|
+
|
|
160
|
+
timestamp: Union[str, XSDDateTime] = None
|
|
161
|
+
type: str = None
|
|
162
|
+
index: int = None
|
|
163
|
+
data: Union[dict, "HdlDataUrl"] = None
|
|
164
|
+
|
|
165
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
166
|
+
if self._is_empty(self.index):
|
|
167
|
+
self.MissingRequiredField("index")
|
|
168
|
+
if not isinstance(self.index, int):
|
|
169
|
+
self.index = int(self.index)
|
|
170
|
+
|
|
171
|
+
if self._is_empty(self.data):
|
|
172
|
+
self.MissingRequiredField("data")
|
|
173
|
+
if not isinstance(self.data, HdlDataUrl):
|
|
174
|
+
self.data = HdlDataUrl(**as_dict(self.data))
|
|
175
|
+
|
|
176
|
+
super().__post_init__(**kwargs)
|
|
177
|
+
if self._is_empty(self.type):
|
|
178
|
+
self.MissingRequiredField("type")
|
|
179
|
+
self.type = str(self.class_name)
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
@dataclass(repr=False)
|
|
183
|
+
class HdlDataUrl(YAMLRoot):
|
|
184
|
+
"""
|
|
185
|
+
The data class for the redirect url.
|
|
186
|
+
"""
|
|
187
|
+
|
|
188
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
189
|
+
|
|
190
|
+
class_class_uri: ClassVar[URIRef] = PID4CAT_MODEL["HdlDataUrl"]
|
|
191
|
+
class_class_curie: ClassVar[str] = "pid4cat_model:HdlDataUrl"
|
|
192
|
+
class_name: ClassVar[str] = "HdlDataUrl"
|
|
193
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.HdlDataUrl
|
|
194
|
+
|
|
195
|
+
value: str = None
|
|
196
|
+
format: Optional[str] = "string"
|
|
197
|
+
|
|
198
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
199
|
+
if self._is_empty(self.value):
|
|
200
|
+
self.MissingRequiredField("value")
|
|
201
|
+
if not isinstance(self.value, str):
|
|
202
|
+
self.value = str(self.value)
|
|
203
|
+
|
|
204
|
+
if self.format is not None and not isinstance(self.format, str):
|
|
205
|
+
self.format = str(self.format)
|
|
206
|
+
|
|
207
|
+
super().__post_init__(**kwargs)
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
@dataclass(repr=False)
|
|
211
|
+
class EMAIL(HandleRecord):
|
|
212
|
+
"""
|
|
213
|
+
The data element in the handle API for the contact email.
|
|
214
|
+
"""
|
|
215
|
+
|
|
216
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
217
|
+
|
|
218
|
+
class_class_uri: ClassVar[URIRef] = PID4CAT_MODEL["EMAIL"]
|
|
219
|
+
class_class_curie: ClassVar[str] = "pid4cat_model:EMAIL"
|
|
220
|
+
class_name: ClassVar[str] = "EMAIL"
|
|
221
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.EMAIL
|
|
222
|
+
|
|
223
|
+
timestamp: Union[str, XSDDateTime] = None
|
|
224
|
+
type: str = None
|
|
225
|
+
index: int = None
|
|
226
|
+
data: Union[dict, "HdlDataContact"] = None
|
|
227
|
+
|
|
228
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
229
|
+
if self._is_empty(self.index):
|
|
230
|
+
self.MissingRequiredField("index")
|
|
231
|
+
if not isinstance(self.index, int):
|
|
232
|
+
self.index = int(self.index)
|
|
233
|
+
|
|
234
|
+
if self._is_empty(self.data):
|
|
235
|
+
self.MissingRequiredField("data")
|
|
236
|
+
if not isinstance(self.data, HdlDataContact):
|
|
237
|
+
self.data = HdlDataContact(**as_dict(self.data))
|
|
238
|
+
|
|
239
|
+
super().__post_init__(**kwargs)
|
|
240
|
+
if self._is_empty(self.type):
|
|
241
|
+
self.MissingRequiredField("type")
|
|
242
|
+
self.type = str(self.class_name)
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
@dataclass(repr=False)
|
|
246
|
+
class HdlDataContact(YAMLRoot):
|
|
247
|
+
"""
|
|
248
|
+
The data class for the handle-record contact email.
|
|
249
|
+
"""
|
|
250
|
+
|
|
251
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
252
|
+
|
|
253
|
+
class_class_uri: ClassVar[URIRef] = PID4CAT_MODEL["HdlDataContact"]
|
|
254
|
+
class_class_curie: ClassVar[str] = "pid4cat_model:HdlDataContact"
|
|
255
|
+
class_name: ClassVar[str] = "HdlDataContact"
|
|
256
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.HdlDataContact
|
|
257
|
+
|
|
258
|
+
value: str = None
|
|
259
|
+
format: Optional[str] = "string"
|
|
260
|
+
|
|
261
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
262
|
+
if self._is_empty(self.value):
|
|
263
|
+
self.MissingRequiredField("value")
|
|
264
|
+
if not isinstance(self.value, str):
|
|
265
|
+
self.value = str(self.value)
|
|
266
|
+
|
|
267
|
+
if self.format is not None and not isinstance(self.format, str):
|
|
268
|
+
self.format = str(self.format)
|
|
269
|
+
|
|
270
|
+
super().__post_init__(**kwargs)
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
@dataclass(repr=False)
|
|
274
|
+
class STATUS(HandleRecord):
|
|
275
|
+
"""
|
|
276
|
+
The data element in the handle API for the PID status information.
|
|
277
|
+
"""
|
|
278
|
+
|
|
279
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
280
|
+
|
|
281
|
+
class_class_uri: ClassVar[URIRef] = PID4CAT_MODEL["STATUS"]
|
|
282
|
+
class_class_curie: ClassVar[str] = "pid4cat_model:STATUS"
|
|
283
|
+
class_name: ClassVar[str] = "STATUS"
|
|
284
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.STATUS
|
|
285
|
+
|
|
286
|
+
timestamp: Union[str, XSDDateTime] = None
|
|
287
|
+
type: str = None
|
|
288
|
+
index: int = None
|
|
289
|
+
data: Union[dict, "HdlDataStatus"] = None
|
|
290
|
+
|
|
291
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
292
|
+
if self._is_empty(self.index):
|
|
293
|
+
self.MissingRequiredField("index")
|
|
294
|
+
if not isinstance(self.index, int):
|
|
295
|
+
self.index = int(self.index)
|
|
296
|
+
|
|
297
|
+
if self._is_empty(self.data):
|
|
298
|
+
self.MissingRequiredField("data")
|
|
299
|
+
if not isinstance(self.data, HdlDataStatus):
|
|
300
|
+
self.data = HdlDataStatus(**as_dict(self.data))
|
|
301
|
+
|
|
302
|
+
super().__post_init__(**kwargs)
|
|
303
|
+
if self._is_empty(self.type):
|
|
304
|
+
self.MissingRequiredField("type")
|
|
305
|
+
self.type = str(self.class_name)
|
|
306
|
+
|
|
307
|
+
|
|
308
|
+
@dataclass(repr=False)
|
|
309
|
+
class HdlDataStatus(YAMLRoot):
|
|
310
|
+
"""
|
|
311
|
+
The data class for the PID status information.
|
|
312
|
+
"""
|
|
313
|
+
|
|
314
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
315
|
+
|
|
316
|
+
class_class_uri: ClassVar[URIRef] = PID4CAT_MODEL["HdlDataStatus"]
|
|
317
|
+
class_class_curie: ClassVar[str] = "pid4cat_model:HdlDataStatus"
|
|
318
|
+
class_name: ClassVar[str] = "HdlDataStatus"
|
|
319
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.HdlDataStatus
|
|
320
|
+
|
|
321
|
+
value: Union[str, "Pid4CatStatus"] = None
|
|
322
|
+
format: Optional[str] = "string"
|
|
323
|
+
|
|
324
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
325
|
+
if self._is_empty(self.value):
|
|
326
|
+
self.MissingRequiredField("value")
|
|
327
|
+
if not isinstance(self.value, Pid4CatStatus):
|
|
328
|
+
self.value = Pid4CatStatus(self.value)
|
|
329
|
+
|
|
330
|
+
if self.format is not None and not isinstance(self.format, str):
|
|
331
|
+
self.format = str(self.format)
|
|
332
|
+
|
|
333
|
+
super().__post_init__(**kwargs)
|
|
334
|
+
|
|
335
|
+
|
|
336
|
+
@dataclass(repr=False)
|
|
337
|
+
class SCHEMAVER(HandleRecord):
|
|
338
|
+
"""
|
|
339
|
+
The data element in the handle API for the schema version.
|
|
340
|
+
"""
|
|
341
|
+
|
|
342
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
343
|
+
|
|
344
|
+
class_class_uri: ClassVar[URIRef] = PID4CAT_MODEL["SCHEMAVER"]
|
|
345
|
+
class_class_curie: ClassVar[str] = "pid4cat_model:SCHEMAVER"
|
|
346
|
+
class_name: ClassVar[str] = "SCHEMA_VER"
|
|
347
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.SCHEMAVER
|
|
348
|
+
|
|
349
|
+
timestamp: Union[str, XSDDateTime] = None
|
|
350
|
+
type: str = None
|
|
351
|
+
index: int = None
|
|
352
|
+
data: Union[dict, "HdlDataSchemaVer"] = None
|
|
353
|
+
|
|
354
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
355
|
+
if self._is_empty(self.index):
|
|
356
|
+
self.MissingRequiredField("index")
|
|
357
|
+
if not isinstance(self.index, int):
|
|
358
|
+
self.index = int(self.index)
|
|
359
|
+
|
|
360
|
+
if self._is_empty(self.data):
|
|
361
|
+
self.MissingRequiredField("data")
|
|
362
|
+
if not isinstance(self.data, HdlDataSchemaVer):
|
|
363
|
+
self.data = HdlDataSchemaVer(**as_dict(self.data))
|
|
364
|
+
|
|
365
|
+
super().__post_init__(**kwargs)
|
|
366
|
+
if self._is_empty(self.type):
|
|
367
|
+
self.MissingRequiredField("type")
|
|
368
|
+
self.type = str(self.class_name)
|
|
369
|
+
|
|
370
|
+
|
|
371
|
+
@dataclass(repr=False)
|
|
372
|
+
class HdlDataSchemaVer(YAMLRoot):
|
|
373
|
+
"""
|
|
374
|
+
The data class for the schema version.
|
|
375
|
+
"""
|
|
376
|
+
|
|
377
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
378
|
+
|
|
379
|
+
class_class_uri: ClassVar[URIRef] = PID4CAT_MODEL["HdlDataSchemaVer"]
|
|
380
|
+
class_class_curie: ClassVar[str] = "pid4cat_model:HdlDataSchemaVer"
|
|
381
|
+
class_name: ClassVar[str] = "HdlDataSchemaVer"
|
|
382
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.HdlDataSchemaVer
|
|
383
|
+
|
|
384
|
+
value: str = None
|
|
385
|
+
format: Optional[str] = "string"
|
|
386
|
+
|
|
387
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
388
|
+
if self._is_empty(self.value):
|
|
389
|
+
self.MissingRequiredField("value")
|
|
390
|
+
if not isinstance(self.value, str):
|
|
391
|
+
self.value = str(self.value)
|
|
392
|
+
|
|
393
|
+
if self.format is not None and not isinstance(self.format, str):
|
|
394
|
+
self.format = str(self.format)
|
|
395
|
+
|
|
396
|
+
super().__post_init__(**kwargs)
|
|
397
|
+
|
|
398
|
+
|
|
399
|
+
@dataclass(repr=False)
|
|
400
|
+
class METADATALICENSE(HandleRecord):
|
|
401
|
+
"""
|
|
402
|
+
The data element in the handle API for the PID metadata license.
|
|
403
|
+
"""
|
|
404
|
+
|
|
405
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
406
|
+
|
|
407
|
+
class_class_uri: ClassVar[URIRef] = PID4CAT_MODEL["METADATALICENSE"]
|
|
408
|
+
class_class_curie: ClassVar[str] = "pid4cat_model:METADATALICENSE"
|
|
409
|
+
class_name: ClassVar[str] = "METADATA_LICENSE"
|
|
410
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.METADATALICENSE
|
|
411
|
+
|
|
412
|
+
timestamp: Union[str, XSDDateTime] = None
|
|
413
|
+
type: str = None
|
|
414
|
+
index: int = None
|
|
415
|
+
data: Union[dict, "HdlDataLicense"] = None
|
|
416
|
+
|
|
417
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
418
|
+
if self._is_empty(self.index):
|
|
419
|
+
self.MissingRequiredField("index")
|
|
420
|
+
if not isinstance(self.index, int):
|
|
421
|
+
self.index = int(self.index)
|
|
422
|
+
|
|
423
|
+
if self._is_empty(self.data):
|
|
424
|
+
self.MissingRequiredField("data")
|
|
425
|
+
if not isinstance(self.data, HdlDataLicense):
|
|
426
|
+
self.data = HdlDataLicense(**as_dict(self.data))
|
|
427
|
+
|
|
428
|
+
super().__post_init__(**kwargs)
|
|
429
|
+
if self._is_empty(self.type):
|
|
430
|
+
self.MissingRequiredField("type")
|
|
431
|
+
self.type = str(self.class_name)
|
|
432
|
+
|
|
433
|
+
|
|
434
|
+
@dataclass(repr=False)
|
|
435
|
+
class HdlDataLicense(YAMLRoot):
|
|
436
|
+
"""
|
|
437
|
+
The data class for the PID metadata license.
|
|
438
|
+
"""
|
|
439
|
+
|
|
440
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
441
|
+
|
|
442
|
+
class_class_uri: ClassVar[URIRef] = PID4CAT_MODEL["HdlDataLicense"]
|
|
443
|
+
class_class_curie: ClassVar[str] = "pid4cat_model:HdlDataLicense"
|
|
444
|
+
class_name: ClassVar[str] = "HdlDataLicense"
|
|
445
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.HdlDataLicense
|
|
446
|
+
|
|
447
|
+
value: str = None
|
|
448
|
+
format: Optional[str] = "string"
|
|
449
|
+
|
|
450
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
451
|
+
if self._is_empty(self.value):
|
|
452
|
+
self.MissingRequiredField("value")
|
|
453
|
+
if not isinstance(self.value, str):
|
|
454
|
+
self.value = str(self.value)
|
|
455
|
+
|
|
456
|
+
if self.format is not None and not isinstance(self.format, str):
|
|
457
|
+
self.format = str(self.format)
|
|
458
|
+
|
|
459
|
+
super().__post_init__(**kwargs)
|
|
460
|
+
|
|
461
|
+
|
|
462
|
+
@dataclass(repr=False)
|
|
463
|
+
class RESOURCE(HandleRecord):
|
|
464
|
+
"""
|
|
465
|
+
The data element in the handle API for the resource info.
|
|
466
|
+
"""
|
|
467
|
+
|
|
468
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
469
|
+
|
|
470
|
+
class_class_uri: ClassVar[URIRef] = PID4CAT_MODEL["RESOURCE"]
|
|
471
|
+
class_class_curie: ClassVar[str] = "pid4cat_model:RESOURCE"
|
|
472
|
+
class_name: ClassVar[str] = "RESOURCE"
|
|
473
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.RESOURCE
|
|
474
|
+
|
|
475
|
+
timestamp: Union[str, XSDDateTime] = None
|
|
476
|
+
type: str = None
|
|
477
|
+
index: int = None
|
|
478
|
+
data: Union[dict, "HdlDataResourceInfo"] = None
|
|
479
|
+
|
|
480
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
481
|
+
if self._is_empty(self.index):
|
|
482
|
+
self.MissingRequiredField("index")
|
|
483
|
+
if not isinstance(self.index, int):
|
|
484
|
+
self.index = int(self.index)
|
|
485
|
+
|
|
486
|
+
if self._is_empty(self.data):
|
|
487
|
+
self.MissingRequiredField("data")
|
|
488
|
+
if not isinstance(self.data, HdlDataResourceInfo):
|
|
489
|
+
self.data = HdlDataResourceInfo(**as_dict(self.data))
|
|
490
|
+
|
|
491
|
+
super().__post_init__(**kwargs)
|
|
492
|
+
if self._is_empty(self.type):
|
|
493
|
+
self.MissingRequiredField("type")
|
|
494
|
+
self.type = str(self.class_name)
|
|
495
|
+
|
|
496
|
+
|
|
497
|
+
@dataclass(repr=False)
|
|
498
|
+
class HdlDataResourceInfo(YAMLRoot):
|
|
499
|
+
"""
|
|
500
|
+
The data class for the resource info.
|
|
501
|
+
"""
|
|
502
|
+
|
|
503
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
504
|
+
|
|
505
|
+
class_class_uri: ClassVar[URIRef] = PID4CAT_MODEL["HdlDataResourceInfo"]
|
|
506
|
+
class_class_curie: ClassVar[str] = "pid4cat_model:HdlDataResourceInfo"
|
|
507
|
+
class_name: ClassVar[str] = "HdlDataResourceInfo"
|
|
508
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.HdlDataResourceInfo
|
|
509
|
+
|
|
510
|
+
value: Union[dict, "ResourceInfo"] = None
|
|
511
|
+
format: Optional[str] = "string"
|
|
512
|
+
|
|
513
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
514
|
+
if self._is_empty(self.value):
|
|
515
|
+
self.MissingRequiredField("value")
|
|
516
|
+
if not isinstance(self.value, ResourceInfo):
|
|
517
|
+
self.value = ResourceInfo(**as_dict(self.value))
|
|
518
|
+
|
|
519
|
+
if self.format is not None and not isinstance(self.format, str):
|
|
520
|
+
self.format = str(self.format)
|
|
521
|
+
|
|
522
|
+
super().__post_init__(**kwargs)
|
|
523
|
+
|
|
524
|
+
|
|
525
|
+
@dataclass(repr=False)
|
|
526
|
+
class RELATED(HandleRecord):
|
|
527
|
+
"""
|
|
528
|
+
The data element in the handle API for related identifiers.
|
|
529
|
+
"""
|
|
530
|
+
|
|
531
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
532
|
+
|
|
533
|
+
class_class_uri: ClassVar[URIRef] = PID4CAT_MODEL["RELATED"]
|
|
534
|
+
class_class_curie: ClassVar[str] = "pid4cat_model:RELATED"
|
|
535
|
+
class_name: ClassVar[str] = "RELATED"
|
|
536
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.RELATED
|
|
537
|
+
|
|
538
|
+
timestamp: Union[str, XSDDateTime] = None
|
|
539
|
+
type: str = None
|
|
540
|
+
index: int = None
|
|
541
|
+
data: Union[dict, "HdlDataRelated"] = None
|
|
542
|
+
|
|
543
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
544
|
+
if self._is_empty(self.index):
|
|
545
|
+
self.MissingRequiredField("index")
|
|
546
|
+
if not isinstance(self.index, int):
|
|
547
|
+
self.index = int(self.index)
|
|
548
|
+
|
|
549
|
+
if self._is_empty(self.data):
|
|
550
|
+
self.MissingRequiredField("data")
|
|
551
|
+
if not isinstance(self.data, HdlDataRelated):
|
|
552
|
+
self.data = HdlDataRelated(**as_dict(self.data))
|
|
553
|
+
|
|
554
|
+
super().__post_init__(**kwargs)
|
|
555
|
+
if self._is_empty(self.type):
|
|
556
|
+
self.MissingRequiredField("type")
|
|
557
|
+
self.type = str(self.class_name)
|
|
558
|
+
|
|
559
|
+
|
|
560
|
+
@dataclass(repr=False)
|
|
561
|
+
class HdlDataRelated(YAMLRoot):
|
|
562
|
+
"""
|
|
563
|
+
The data class for related identifiers.
|
|
564
|
+
"""
|
|
565
|
+
|
|
566
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
567
|
+
|
|
568
|
+
class_class_uri: ClassVar[URIRef] = PID4CAT_MODEL["HdlDataRelated"]
|
|
569
|
+
class_class_curie: ClassVar[str] = "pid4cat_model:HdlDataRelated"
|
|
570
|
+
class_name: ClassVar[str] = "HdlDataRelated"
|
|
571
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.HdlDataRelated
|
|
572
|
+
|
|
573
|
+
format: Optional[str] = "string"
|
|
574
|
+
value: Optional[
|
|
575
|
+
Union[Union[dict, "Pid4CatRelation"], List[Union[dict, "Pid4CatRelation"]]]
|
|
576
|
+
] = empty_list()
|
|
577
|
+
|
|
578
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
579
|
+
if self.format is not None and not isinstance(self.format, str):
|
|
580
|
+
self.format = str(self.format)
|
|
581
|
+
|
|
582
|
+
if not isinstance(self.value, list):
|
|
583
|
+
self.value = [self.value] if self.value is not None else []
|
|
584
|
+
self.value = [
|
|
585
|
+
v if isinstance(v, Pid4CatRelation) else Pid4CatRelation(**as_dict(v))
|
|
586
|
+
for v in self.value
|
|
587
|
+
]
|
|
588
|
+
|
|
589
|
+
super().__post_init__(**kwargs)
|
|
590
|
+
|
|
591
|
+
|
|
592
|
+
@dataclass(repr=False)
|
|
593
|
+
class CHANGES(HandleRecord):
|
|
594
|
+
"""
|
|
595
|
+
The data element in the handle API for the change log.
|
|
596
|
+
"""
|
|
597
|
+
|
|
598
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
599
|
+
|
|
600
|
+
class_class_uri: ClassVar[URIRef] = PID4CAT_MODEL["CHANGES"]
|
|
601
|
+
class_class_curie: ClassVar[str] = "pid4cat_model:CHANGES"
|
|
602
|
+
class_name: ClassVar[str] = "CHANGES"
|
|
603
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.CHANGES
|
|
604
|
+
|
|
605
|
+
timestamp: Union[str, XSDDateTime] = None
|
|
606
|
+
type: str = None
|
|
607
|
+
index: int = None
|
|
608
|
+
data: Union[dict, "HdlDataLog"] = None
|
|
609
|
+
|
|
610
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
611
|
+
if self._is_empty(self.index):
|
|
612
|
+
self.MissingRequiredField("index")
|
|
613
|
+
if not isinstance(self.index, int):
|
|
614
|
+
self.index = int(self.index)
|
|
615
|
+
|
|
616
|
+
if self._is_empty(self.data):
|
|
617
|
+
self.MissingRequiredField("data")
|
|
618
|
+
if not isinstance(self.data, HdlDataLog):
|
|
619
|
+
self.data = HdlDataLog(**as_dict(self.data))
|
|
620
|
+
|
|
621
|
+
super().__post_init__(**kwargs)
|
|
622
|
+
if self._is_empty(self.type):
|
|
623
|
+
self.MissingRequiredField("type")
|
|
624
|
+
self.type = str(self.class_name)
|
|
625
|
+
|
|
626
|
+
|
|
627
|
+
@dataclass(repr=False)
|
|
628
|
+
class HdlDataLog(YAMLRoot):
|
|
629
|
+
"""
|
|
630
|
+
The data class for the change log.
|
|
631
|
+
"""
|
|
632
|
+
|
|
633
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
634
|
+
|
|
635
|
+
class_class_uri: ClassVar[URIRef] = PID4CAT_MODEL["HdlDataLog"]
|
|
636
|
+
class_class_curie: ClassVar[str] = "pid4cat_model:HdlDataLog"
|
|
637
|
+
class_name: ClassVar[str] = "HdlDataLog"
|
|
638
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.HdlDataLog
|
|
639
|
+
|
|
640
|
+
value: Union[Union[dict, "LogRecord"], List[Union[dict, "LogRecord"]]] = None
|
|
641
|
+
format: Optional[str] = "string"
|
|
642
|
+
|
|
643
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
644
|
+
if self._is_empty(self.value):
|
|
645
|
+
self.MissingRequiredField("value")
|
|
646
|
+
self._normalize_inlined_as_dict(
|
|
647
|
+
slot_name="value", slot_type=LogRecord, key_name="datetime_log", keyed=False
|
|
648
|
+
)
|
|
649
|
+
|
|
650
|
+
if self.format is not None and not isinstance(self.format, str):
|
|
651
|
+
self.format = str(self.format)
|
|
652
|
+
|
|
653
|
+
super().__post_init__(**kwargs)
|
|
654
|
+
|
|
655
|
+
|
|
656
|
+
@dataclass(repr=False)
|
|
657
|
+
class HandleRecordContainer(YAMLRoot):
|
|
658
|
+
"""
|
|
659
|
+
A container for all HandleRecords.
|
|
660
|
+
"""
|
|
661
|
+
|
|
662
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
663
|
+
|
|
664
|
+
class_class_uri: ClassVar[URIRef] = PID4CAT_MODEL["HandleRecordContainer"]
|
|
665
|
+
class_class_curie: ClassVar[str] = "pid4cat_model:HandleRecordContainer"
|
|
666
|
+
class_name: ClassVar[str] = "HandleRecordContainer"
|
|
667
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.HandleRecordContainer
|
|
668
|
+
|
|
669
|
+
contains_pids: Optional[
|
|
670
|
+
Union[
|
|
671
|
+
Dict[Union[str, HandleAPIRecordHandle], Union[dict, HandleAPIRecord]],
|
|
672
|
+
List[Union[dict, HandleAPIRecord]],
|
|
673
|
+
]
|
|
674
|
+
] = empty_dict()
|
|
675
|
+
|
|
676
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
677
|
+
self._normalize_inlined_as_list(
|
|
678
|
+
slot_name="contains_pids",
|
|
679
|
+
slot_type=HandleAPIRecord,
|
|
680
|
+
key_name="handle",
|
|
681
|
+
keyed=True,
|
|
682
|
+
)
|
|
683
|
+
|
|
684
|
+
super().__post_init__(**kwargs)
|
|
685
|
+
|
|
686
|
+
|
|
687
|
+
@dataclass(repr=False)
|
|
688
|
+
class Pid4CatRelation(YAMLRoot):
|
|
689
|
+
"""
|
|
690
|
+
Data class for a relation to another resource identified by a pid4cat handle or another PID type.
|
|
691
|
+
"""
|
|
692
|
+
|
|
693
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
694
|
+
|
|
695
|
+
class_class_uri: ClassVar[URIRef] = PID4CAT_MODEL["Pid4CatRelation"]
|
|
696
|
+
class_class_curie: ClassVar[str] = "pid4cat_model:Pid4CatRelation"
|
|
697
|
+
class_name: ClassVar[str] = "Pid4CatRelation"
|
|
698
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.Pid4CatRelation
|
|
699
|
+
|
|
700
|
+
relation_type: Optional[Union[str, "RelationType"]] = None
|
|
701
|
+
related_identifier: Optional[Union[dict, "RelatedIdentifier"]] = None
|
|
702
|
+
datetime_log: Optional[Union[str, XSDDateTime]] = None
|
|
703
|
+
|
|
704
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
705
|
+
if self.relation_type is not None and not isinstance(
|
|
706
|
+
self.relation_type, RelationType
|
|
707
|
+
):
|
|
708
|
+
self.relation_type = RelationType(self.relation_type)
|
|
709
|
+
|
|
710
|
+
if self.related_identifier is not None and not isinstance(
|
|
711
|
+
self.related_identifier, RelatedIdentifier
|
|
712
|
+
):
|
|
713
|
+
self.related_identifier = RelatedIdentifier(
|
|
714
|
+
**as_dict(self.related_identifier)
|
|
715
|
+
)
|
|
716
|
+
|
|
717
|
+
if self.datetime_log is not None and not isinstance(
|
|
718
|
+
self.datetime_log, XSDDateTime
|
|
719
|
+
):
|
|
720
|
+
self.datetime_log = XSDDateTime(self.datetime_log)
|
|
721
|
+
|
|
722
|
+
super().__post_init__(**kwargs)
|
|
723
|
+
|
|
724
|
+
|
|
725
|
+
@dataclass(repr=False)
|
|
726
|
+
class ResourceInfo(YAMLRoot):
|
|
727
|
+
"""
|
|
728
|
+
Data class to hold information about the resource and its representation.
|
|
729
|
+
"""
|
|
730
|
+
|
|
731
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
732
|
+
|
|
733
|
+
class_class_uri: ClassVar[URIRef] = PID4CAT_MODEL["ResourceInfo"]
|
|
734
|
+
class_class_curie: ClassVar[str] = "pid4cat_model:ResourceInfo"
|
|
735
|
+
class_name: ClassVar[str] = "ResourceInfo"
|
|
736
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.ResourceInfo
|
|
737
|
+
|
|
738
|
+
resource_category: Union[str, "ResourceCategory"] = None
|
|
739
|
+
representation_variants: Union[
|
|
740
|
+
Union[dict, "RepresentationVariant"], List[Union[dict, "RepresentationVariant"]]
|
|
741
|
+
] = None
|
|
742
|
+
label: Optional[str] = None
|
|
743
|
+
description: Optional[str] = None
|
|
744
|
+
|
|
745
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
746
|
+
if self._is_empty(self.resource_category):
|
|
747
|
+
self.MissingRequiredField("resource_category")
|
|
748
|
+
if not isinstance(self.resource_category, ResourceCategory):
|
|
749
|
+
self.resource_category = ResourceCategory(self.resource_category)
|
|
750
|
+
|
|
751
|
+
if self._is_empty(self.representation_variants):
|
|
752
|
+
self.MissingRequiredField("representation_variants")
|
|
753
|
+
if not isinstance(self.representation_variants, list):
|
|
754
|
+
self.representation_variants = (
|
|
755
|
+
[self.representation_variants]
|
|
756
|
+
if self.representation_variants is not None
|
|
757
|
+
else []
|
|
758
|
+
)
|
|
759
|
+
self.representation_variants = [
|
|
760
|
+
v
|
|
761
|
+
if isinstance(v, RepresentationVariant)
|
|
762
|
+
else RepresentationVariant(**as_dict(v))
|
|
763
|
+
for v in self.representation_variants
|
|
764
|
+
]
|
|
765
|
+
|
|
766
|
+
if self.label is not None and not isinstance(self.label, str):
|
|
767
|
+
self.label = str(self.label)
|
|
768
|
+
|
|
769
|
+
if self.description is not None and not isinstance(self.description, str):
|
|
770
|
+
self.description = str(self.description)
|
|
771
|
+
|
|
772
|
+
super().__post_init__(**kwargs)
|
|
773
|
+
|
|
774
|
+
|
|
775
|
+
@dataclass(repr=False)
|
|
776
|
+
class LogRecord(YAMLRoot):
|
|
777
|
+
"""
|
|
778
|
+
Data class for a change log of modification made on a pid4cat handle record starting from its registration.
|
|
779
|
+
"""
|
|
780
|
+
|
|
781
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
782
|
+
|
|
783
|
+
class_class_uri: ClassVar[URIRef] = PID4CAT_MODEL["LogRecord"]
|
|
784
|
+
class_class_curie: ClassVar[str] = "pid4cat_model:LogRecord"
|
|
785
|
+
class_name: ClassVar[str] = "LogRecord"
|
|
786
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.LogRecord
|
|
787
|
+
|
|
788
|
+
datetime_log: Union[str, XSDDateTime] = None
|
|
789
|
+
has_agent: Union[dict, "Agent"] = None
|
|
790
|
+
changed_field: Union[str, "ChangeLogField"] = None
|
|
791
|
+
description: Optional[str] = None
|
|
792
|
+
|
|
793
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
794
|
+
if self._is_empty(self.datetime_log):
|
|
795
|
+
self.MissingRequiredField("datetime_log")
|
|
796
|
+
if not isinstance(self.datetime_log, XSDDateTime):
|
|
797
|
+
self.datetime_log = XSDDateTime(self.datetime_log)
|
|
798
|
+
|
|
799
|
+
if self._is_empty(self.has_agent):
|
|
800
|
+
self.MissingRequiredField("has_agent")
|
|
801
|
+
if not isinstance(self.has_agent, Agent):
|
|
802
|
+
self.has_agent = Agent(**as_dict(self.has_agent))
|
|
803
|
+
|
|
804
|
+
if self._is_empty(self.changed_field):
|
|
805
|
+
self.MissingRequiredField("changed_field")
|
|
806
|
+
if not isinstance(self.changed_field, ChangeLogField):
|
|
807
|
+
self.changed_field = ChangeLogField(self.changed_field)
|
|
808
|
+
|
|
809
|
+
if self.description is not None and not isinstance(self.description, str):
|
|
810
|
+
self.description = str(self.description)
|
|
811
|
+
|
|
812
|
+
super().__post_init__(**kwargs)
|
|
813
|
+
|
|
814
|
+
|
|
815
|
+
@dataclass(repr=False)
|
|
816
|
+
class Agent(YAMLRoot):
|
|
817
|
+
"""
|
|
818
|
+
Data class for a person who plays a role relative to PID creation or curation.
|
|
819
|
+
"""
|
|
820
|
+
|
|
821
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
822
|
+
|
|
823
|
+
class_class_uri: ClassVar[URIRef] = PROV["Agent"]
|
|
824
|
+
class_class_curie: ClassVar[str] = "prov:Agent"
|
|
825
|
+
class_name: ClassVar[str] = "Agent"
|
|
826
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.Agent
|
|
827
|
+
|
|
828
|
+
name: str = None
|
|
829
|
+
email_address: str = None
|
|
830
|
+
role: Union[str, "Pid4CatAgentRole"] = None
|
|
831
|
+
orcid: Optional[str] = None
|
|
832
|
+
affiliation_ror: Optional[Union[str, URI]] = None
|
|
833
|
+
|
|
834
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
835
|
+
if self._is_empty(self.name):
|
|
836
|
+
self.MissingRequiredField("name")
|
|
837
|
+
if not isinstance(self.name, str):
|
|
838
|
+
self.name = str(self.name)
|
|
839
|
+
|
|
840
|
+
if self._is_empty(self.email_address):
|
|
841
|
+
self.MissingRequiredField("email_address")
|
|
842
|
+
if not isinstance(self.email_address, str):
|
|
843
|
+
self.email_address = str(self.email_address)
|
|
844
|
+
|
|
845
|
+
if self._is_empty(self.role):
|
|
846
|
+
self.MissingRequiredField("role")
|
|
847
|
+
if not isinstance(self.role, Pid4CatAgentRole):
|
|
848
|
+
self.role = Pid4CatAgentRole(self.role)
|
|
849
|
+
|
|
850
|
+
if self.orcid is not None and not isinstance(self.orcid, str):
|
|
851
|
+
self.orcid = str(self.orcid)
|
|
852
|
+
|
|
853
|
+
if self.affiliation_ror is not None and not isinstance(
|
|
854
|
+
self.affiliation_ror, URI
|
|
855
|
+
):
|
|
856
|
+
self.affiliation_ror = URI(self.affiliation_ror)
|
|
857
|
+
|
|
858
|
+
super().__post_init__(**kwargs)
|
|
859
|
+
|
|
860
|
+
|
|
861
|
+
@dataclass(repr=False)
|
|
862
|
+
class RepresentationVariant(YAMLRoot):
|
|
863
|
+
"""
|
|
864
|
+
Data class for representations of the resource in other media types than text/html which is the default for
|
|
865
|
+
landing_page_url.
|
|
866
|
+
"""
|
|
867
|
+
|
|
868
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
869
|
+
|
|
870
|
+
class_class_uri: ClassVar[URIRef] = PID4CAT_MODEL["RepresentationVariant"]
|
|
871
|
+
class_class_curie: ClassVar[str] = "pid4cat_model:RepresentationVariant"
|
|
872
|
+
class_name: ClassVar[str] = "RepresentationVariant"
|
|
873
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.RepresentationVariant
|
|
874
|
+
|
|
875
|
+
variant_url: Optional[Union[str, URI]] = None
|
|
876
|
+
media_type: Optional[Union[str, "MediaTypesEnum"]] = None
|
|
877
|
+
encoding_format: Optional[str] = None
|
|
878
|
+
size: Optional[int] = None
|
|
879
|
+
|
|
880
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
881
|
+
if self.variant_url is not None and not isinstance(self.variant_url, URI):
|
|
882
|
+
self.variant_url = URI(self.variant_url)
|
|
883
|
+
|
|
884
|
+
if self.media_type is not None and not isinstance(
|
|
885
|
+
self.media_type, MediaTypesEnum
|
|
886
|
+
):
|
|
887
|
+
self.media_type = MediaTypesEnum(self.media_type)
|
|
888
|
+
|
|
889
|
+
if self.encoding_format is not None and not isinstance(
|
|
890
|
+
self.encoding_format, str
|
|
891
|
+
):
|
|
892
|
+
self.encoding_format = str(self.encoding_format)
|
|
893
|
+
|
|
894
|
+
if self.size is not None and not isinstance(self.size, int):
|
|
895
|
+
self.size = int(self.size)
|
|
896
|
+
|
|
897
|
+
super().__post_init__(**kwargs)
|
|
898
|
+
|
|
899
|
+
|
|
900
|
+
@dataclass(repr=False)
|
|
901
|
+
class RelatedIdentifier(YAMLRoot):
|
|
902
|
+
"""
|
|
903
|
+
A base class for all types of related identifiers.
|
|
904
|
+
"""
|
|
905
|
+
|
|
906
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
907
|
+
|
|
908
|
+
class_class_uri: ClassVar[URIRef] = PID4CAT_MODEL["RelatedIdentifier"]
|
|
909
|
+
class_class_curie: ClassVar[str] = "pid4cat_model:RelatedIdentifier"
|
|
910
|
+
class_name: ClassVar[str] = "RelatedIdentifier"
|
|
911
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.RelatedIdentifier
|
|
912
|
+
|
|
913
|
+
type: str = None
|
|
914
|
+
|
|
915
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
916
|
+
if self._is_empty(self.type):
|
|
917
|
+
self.MissingRequiredField("type")
|
|
918
|
+
self.type = str(self.class_name)
|
|
919
|
+
|
|
920
|
+
super().__post_init__(**kwargs)
|
|
921
|
+
if self._is_empty(self.type):
|
|
922
|
+
self.MissingRequiredField("type")
|
|
923
|
+
self.type = str(self.class_name)
|
|
924
|
+
|
|
925
|
+
def __new__(cls, *args, **kwargs):
|
|
926
|
+
type_designator = "type"
|
|
927
|
+
if type_designator not in kwargs:
|
|
928
|
+
return super().__new__(cls, *args, **kwargs)
|
|
929
|
+
else:
|
|
930
|
+
type_designator_value = kwargs[type_designator]
|
|
931
|
+
target_cls = cls._class_for("class_name", type_designator_value)
|
|
932
|
+
|
|
933
|
+
if target_cls is None:
|
|
934
|
+
raise ValueError(
|
|
935
|
+
f"Wrong type designator value: class {cls.__name__} "
|
|
936
|
+
f"has no subclass with ['class_name']='{kwargs[type_designator]}'"
|
|
937
|
+
)
|
|
938
|
+
return super().__new__(target_cls, *args, **kwargs)
|
|
939
|
+
|
|
940
|
+
|
|
941
|
+
@dataclass(repr=False)
|
|
942
|
+
class PurlIdentifier(RelatedIdentifier):
|
|
943
|
+
"""
|
|
944
|
+
A PURL (permanent uniform resource locator).
|
|
945
|
+
"""
|
|
946
|
+
|
|
947
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
948
|
+
|
|
949
|
+
class_class_uri: ClassVar[URIRef] = PID4CAT_MODEL["PurlIdentifier"]
|
|
950
|
+
class_class_curie: ClassVar[str] = "pid4cat_model:PurlIdentifier"
|
|
951
|
+
class_name: ClassVar[str] = "PurlIdentifier"
|
|
952
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.PurlIdentifier
|
|
953
|
+
|
|
954
|
+
type: str = None
|
|
955
|
+
resolving_url: Union[str, URI] = None
|
|
956
|
+
|
|
957
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
958
|
+
if self._is_empty(self.resolving_url):
|
|
959
|
+
self.MissingRequiredField("resolving_url")
|
|
960
|
+
if not isinstance(self.resolving_url, URI):
|
|
961
|
+
self.resolving_url = URI(self.resolving_url)
|
|
962
|
+
|
|
963
|
+
super().__post_init__(**kwargs)
|
|
964
|
+
if self._is_empty(self.type):
|
|
965
|
+
self.MissingRequiredField("type")
|
|
966
|
+
self.type = str(self.class_name)
|
|
967
|
+
|
|
968
|
+
|
|
969
|
+
@dataclass(repr=False)
|
|
970
|
+
class DoiIdentifier(RelatedIdentifier):
|
|
971
|
+
"""
|
|
972
|
+
A digital object identifier (DOI).
|
|
973
|
+
"""
|
|
974
|
+
|
|
975
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
976
|
+
|
|
977
|
+
class_class_uri: ClassVar[URIRef] = PID4CAT_MODEL["DoiIdentifier"]
|
|
978
|
+
class_class_curie: ClassVar[str] = "pid4cat_model:DoiIdentifier"
|
|
979
|
+
class_name: ClassVar[str] = "DoiIdentifier"
|
|
980
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.DoiIdentifier
|
|
981
|
+
|
|
982
|
+
type: str = None
|
|
983
|
+
resolving_url: Union[str, URI] = None
|
|
984
|
+
identifier: Optional[str] = None
|
|
985
|
+
|
|
986
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
987
|
+
if self._is_empty(self.resolving_url):
|
|
988
|
+
self.MissingRequiredField("resolving_url")
|
|
989
|
+
if not isinstance(self.resolving_url, URI):
|
|
990
|
+
self.resolving_url = URI(self.resolving_url)
|
|
991
|
+
|
|
992
|
+
if self.identifier is not None and not isinstance(self.identifier, str):
|
|
993
|
+
self.identifier = str(self.identifier)
|
|
994
|
+
|
|
995
|
+
super().__post_init__(**kwargs)
|
|
996
|
+
if self._is_empty(self.type):
|
|
997
|
+
self.MissingRequiredField("type")
|
|
998
|
+
self.type = str(self.class_name)
|
|
999
|
+
|
|
1000
|
+
|
|
1001
|
+
@dataclass(repr=False)
|
|
1002
|
+
class HandleIdentifier(RelatedIdentifier):
|
|
1003
|
+
"""
|
|
1004
|
+
A handle identifier.
|
|
1005
|
+
"""
|
|
1006
|
+
|
|
1007
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
1008
|
+
|
|
1009
|
+
class_class_uri: ClassVar[URIRef] = PID4CAT_MODEL["HandleIdentifier"]
|
|
1010
|
+
class_class_curie: ClassVar[str] = "pid4cat_model:HandleIdentifier"
|
|
1011
|
+
class_name: ClassVar[str] = "HandleIdentifier"
|
|
1012
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.HandleIdentifier
|
|
1013
|
+
|
|
1014
|
+
type: str = None
|
|
1015
|
+
resolving_url: Union[str, URI] = None
|
|
1016
|
+
identifier: Optional[str] = None
|
|
1017
|
+
|
|
1018
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
1019
|
+
if self._is_empty(self.resolving_url):
|
|
1020
|
+
self.MissingRequiredField("resolving_url")
|
|
1021
|
+
if not isinstance(self.resolving_url, URI):
|
|
1022
|
+
self.resolving_url = URI(self.resolving_url)
|
|
1023
|
+
|
|
1024
|
+
if self.identifier is not None and not isinstance(self.identifier, str):
|
|
1025
|
+
self.identifier = str(self.identifier)
|
|
1026
|
+
|
|
1027
|
+
super().__post_init__(**kwargs)
|
|
1028
|
+
if self._is_empty(self.type):
|
|
1029
|
+
self.MissingRequiredField("type")
|
|
1030
|
+
self.type = str(self.class_name)
|
|
1031
|
+
|
|
1032
|
+
|
|
1033
|
+
@dataclass(repr=False)
|
|
1034
|
+
class ArkIdentifier(RelatedIdentifier):
|
|
1035
|
+
"""
|
|
1036
|
+
An ARK (Archival Resource Key).
|
|
1037
|
+
"""
|
|
1038
|
+
|
|
1039
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
1040
|
+
|
|
1041
|
+
class_class_uri: ClassVar[URIRef] = PID4CAT_MODEL["ArkIdentifier"]
|
|
1042
|
+
class_class_curie: ClassVar[str] = "pid4cat_model:ArkIdentifier"
|
|
1043
|
+
class_name: ClassVar[str] = "ArkIdentifier"
|
|
1044
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.ArkIdentifier
|
|
1045
|
+
|
|
1046
|
+
type: str = None
|
|
1047
|
+
resolving_url: Union[str, URI] = None
|
|
1048
|
+
identifier: Optional[str] = None
|
|
1049
|
+
|
|
1050
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
1051
|
+
if self._is_empty(self.resolving_url):
|
|
1052
|
+
self.MissingRequiredField("resolving_url")
|
|
1053
|
+
if not isinstance(self.resolving_url, URI):
|
|
1054
|
+
self.resolving_url = URI(self.resolving_url)
|
|
1055
|
+
|
|
1056
|
+
if self.identifier is not None and not isinstance(self.identifier, str):
|
|
1057
|
+
self.identifier = str(self.identifier)
|
|
1058
|
+
|
|
1059
|
+
super().__post_init__(**kwargs)
|
|
1060
|
+
if self._is_empty(self.type):
|
|
1061
|
+
self.MissingRequiredField("type")
|
|
1062
|
+
self.type = str(self.class_name)
|
|
1063
|
+
|
|
1064
|
+
|
|
1065
|
+
@dataclass(repr=False)
|
|
1066
|
+
class UrnIdentifier(RelatedIdentifier):
|
|
1067
|
+
"""
|
|
1068
|
+
A URN (Uniform Resource Name).
|
|
1069
|
+
"""
|
|
1070
|
+
|
|
1071
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
1072
|
+
|
|
1073
|
+
class_class_uri: ClassVar[URIRef] = PID4CAT_MODEL["UrnIdentifier"]
|
|
1074
|
+
class_class_curie: ClassVar[str] = "pid4cat_model:UrnIdentifier"
|
|
1075
|
+
class_name: ClassVar[str] = "UrnIdentifier"
|
|
1076
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.UrnIdentifier
|
|
1077
|
+
|
|
1078
|
+
type: str = None
|
|
1079
|
+
identifier: str = None
|
|
1080
|
+
|
|
1081
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
1082
|
+
if self._is_empty(self.identifier):
|
|
1083
|
+
self.MissingRequiredField("identifier")
|
|
1084
|
+
if not isinstance(self.identifier, str):
|
|
1085
|
+
self.identifier = str(self.identifier)
|
|
1086
|
+
|
|
1087
|
+
super().__post_init__(**kwargs)
|
|
1088
|
+
if self._is_empty(self.type):
|
|
1089
|
+
self.MissingRequiredField("type")
|
|
1090
|
+
self.type = str(self.class_name)
|
|
1091
|
+
|
|
1092
|
+
|
|
1093
|
+
@dataclass(repr=False)
|
|
1094
|
+
class GtinIdentifier(RelatedIdentifier):
|
|
1095
|
+
"""
|
|
1096
|
+
A Global Trade Item Number (GTIN) previously called European Article Number (EAN) often encoded as EAN13 barcode.
|
|
1097
|
+
The identifier is used to identify products. GTINs don't have a resolvable URL.
|
|
1098
|
+
"""
|
|
1099
|
+
|
|
1100
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
1101
|
+
|
|
1102
|
+
class_class_uri: ClassVar[URIRef] = PID4CAT_MODEL["GtinIdentifier"]
|
|
1103
|
+
class_class_curie: ClassVar[str] = "pid4cat_model:GtinIdentifier"
|
|
1104
|
+
class_name: ClassVar[str] = "GtinIdentifier"
|
|
1105
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.GtinIdentifier
|
|
1106
|
+
|
|
1107
|
+
type: str = None
|
|
1108
|
+
identifier: str = None
|
|
1109
|
+
|
|
1110
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
1111
|
+
if self._is_empty(self.identifier):
|
|
1112
|
+
self.MissingRequiredField("identifier")
|
|
1113
|
+
if not isinstance(self.identifier, str):
|
|
1114
|
+
self.identifier = str(self.identifier)
|
|
1115
|
+
|
|
1116
|
+
super().__post_init__(**kwargs)
|
|
1117
|
+
if self._is_empty(self.type):
|
|
1118
|
+
self.MissingRequiredField("type")
|
|
1119
|
+
self.type = str(self.class_name)
|
|
1120
|
+
|
|
1121
|
+
|
|
1122
|
+
@dataclass(repr=False)
|
|
1123
|
+
class ExampleIdentifier(RelatedIdentifier):
|
|
1124
|
+
"""
|
|
1125
|
+
An example.org test identifier.
|
|
1126
|
+
"""
|
|
1127
|
+
|
|
1128
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
1129
|
+
|
|
1130
|
+
class_class_uri: ClassVar[URIRef] = PID4CAT_MODEL["ExampleIdentifier"]
|
|
1131
|
+
class_class_curie: ClassVar[str] = "pid4cat_model:ExampleIdentifier"
|
|
1132
|
+
class_name: ClassVar[str] = "ExampleIdentifier"
|
|
1133
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.ExampleIdentifier
|
|
1134
|
+
|
|
1135
|
+
type: str = None
|
|
1136
|
+
identifier: Optional[str] = None
|
|
1137
|
+
resolving_url: Optional[Union[str, URI]] = None
|
|
1138
|
+
|
|
1139
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
1140
|
+
if self.identifier is not None and not isinstance(self.identifier, str):
|
|
1141
|
+
self.identifier = str(self.identifier)
|
|
1142
|
+
|
|
1143
|
+
if self.resolving_url is not None and not isinstance(self.resolving_url, URI):
|
|
1144
|
+
self.resolving_url = URI(self.resolving_url)
|
|
1145
|
+
|
|
1146
|
+
super().__post_init__(**kwargs)
|
|
1147
|
+
if self._is_empty(self.type):
|
|
1148
|
+
self.MissingRequiredField("type")
|
|
1149
|
+
self.type = str(self.class_name)
|
|
1150
|
+
|
|
1151
|
+
|
|
1152
|
+
@dataclass(repr=False)
|
|
1153
|
+
class Pid4CatRecord(YAMLRoot):
|
|
1154
|
+
"""
|
|
1155
|
+
A class representing pid4cat identifiers with its metadata as objects. This is a neutral object-oriented
|
|
1156
|
+
representation that does not mirror the record structure of the handle system but is provided as representation
|
|
1157
|
+
that is more convenient to use in programming languages.
|
|
1158
|
+
"""
|
|
1159
|
+
|
|
1160
|
+
_inherited_slots: ClassVar[List[str]] = []
|
|
1161
|
+
|
|
1162
|
+
class_class_uri: ClassVar[URIRef] = PID4CAT_MODEL["Pid4CatRecord"]
|
|
1163
|
+
class_class_curie: ClassVar[str] = "pid4cat_model:Pid4CatRecord"
|
|
1164
|
+
class_name: ClassVar[str] = "Pid4CatRecord"
|
|
1165
|
+
class_model_uri: ClassVar[URIRef] = PID4CAT_MODEL.Pid4CatRecord
|
|
1166
|
+
|
|
1167
|
+
landing_page_url: str = None
|
|
1168
|
+
status: Union[str, "Pid4CatStatus"] = None
|
|
1169
|
+
schema_version: str = None
|
|
1170
|
+
metadata_license: str = None
|
|
1171
|
+
curation_contact: str = None
|
|
1172
|
+
resource_info: Union[dict, ResourceInfo] = None
|
|
1173
|
+
change_log: Union[Union[dict, LogRecord], List[Union[dict, LogRecord]]] = None
|
|
1174
|
+
related_identifiers: Optional[
|
|
1175
|
+
Union[Union[dict, Pid4CatRelation], List[Union[dict, Pid4CatRelation]]]
|
|
1176
|
+
] = empty_list()
|
|
1177
|
+
|
|
1178
|
+
def __post_init__(self, *_: List[str], **kwargs: Dict[str, Any]):
|
|
1179
|
+
if self._is_empty(self.landing_page_url):
|
|
1180
|
+
self.MissingRequiredField("landing_page_url")
|
|
1181
|
+
if not isinstance(self.landing_page_url, str):
|
|
1182
|
+
self.landing_page_url = str(self.landing_page_url)
|
|
1183
|
+
|
|
1184
|
+
if self._is_empty(self.status):
|
|
1185
|
+
self.MissingRequiredField("status")
|
|
1186
|
+
if not isinstance(self.status, Pid4CatStatus):
|
|
1187
|
+
self.status = Pid4CatStatus(self.status)
|
|
1188
|
+
|
|
1189
|
+
if self._is_empty(self.schema_version):
|
|
1190
|
+
self.MissingRequiredField("schema_version")
|
|
1191
|
+
if not isinstance(self.schema_version, str):
|
|
1192
|
+
self.schema_version = str(self.schema_version)
|
|
1193
|
+
|
|
1194
|
+
if self._is_empty(self.metadata_license):
|
|
1195
|
+
self.MissingRequiredField("metadata_license")
|
|
1196
|
+
if not isinstance(self.metadata_license, str):
|
|
1197
|
+
self.metadata_license = str(self.metadata_license)
|
|
1198
|
+
|
|
1199
|
+
if self._is_empty(self.curation_contact):
|
|
1200
|
+
self.MissingRequiredField("curation_contact")
|
|
1201
|
+
if not isinstance(self.curation_contact, str):
|
|
1202
|
+
self.curation_contact = str(self.curation_contact)
|
|
1203
|
+
|
|
1204
|
+
if self._is_empty(self.resource_info):
|
|
1205
|
+
self.MissingRequiredField("resource_info")
|
|
1206
|
+
if not isinstance(self.resource_info, ResourceInfo):
|
|
1207
|
+
self.resource_info = ResourceInfo(**as_dict(self.resource_info))
|
|
1208
|
+
|
|
1209
|
+
if self._is_empty(self.change_log):
|
|
1210
|
+
self.MissingRequiredField("change_log")
|
|
1211
|
+
self._normalize_inlined_as_dict(
|
|
1212
|
+
slot_name="change_log",
|
|
1213
|
+
slot_type=LogRecord,
|
|
1214
|
+
key_name="datetime_log",
|
|
1215
|
+
keyed=False,
|
|
1216
|
+
)
|
|
1217
|
+
|
|
1218
|
+
if not isinstance(self.related_identifiers, list):
|
|
1219
|
+
self.related_identifiers = (
|
|
1220
|
+
[self.related_identifiers]
|
|
1221
|
+
if self.related_identifiers is not None
|
|
1222
|
+
else []
|
|
1223
|
+
)
|
|
1224
|
+
self.related_identifiers = [
|
|
1225
|
+
v if isinstance(v, Pid4CatRelation) else Pid4CatRelation(**as_dict(v))
|
|
1226
|
+
for v in self.related_identifiers
|
|
1227
|
+
]
|
|
1228
|
+
|
|
1229
|
+
super().__post_init__(**kwargs)
|
|
1230
|
+
|
|
1231
|
+
|
|
1232
|
+
# Enumerations
|
|
1233
|
+
class ResourceCategory(EnumDefinitionImpl):
|
|
1234
|
+
"""
|
|
1235
|
+
The ResourceCategory expresses for which type of resource the PID is used, e.g. if the PID is for a sample or a
|
|
1236
|
+
device.
|
|
1237
|
+
"""
|
|
1238
|
+
|
|
1239
|
+
COLLECTION = PermissibleValue(
|
|
1240
|
+
text="COLLECTION",
|
|
1241
|
+
description="A collection is a group of resources and/or other collections.",
|
|
1242
|
+
meaning=VOC4CAT["0005012"],
|
|
1243
|
+
)
|
|
1244
|
+
SAMPLE = PermissibleValue(
|
|
1245
|
+
text="SAMPLE",
|
|
1246
|
+
description="A representative part of a material of interest on which observations are made.",
|
|
1247
|
+
meaning=VOC4CAT["0005013"],
|
|
1248
|
+
)
|
|
1249
|
+
MATERIAL = PermissibleValue(
|
|
1250
|
+
text="MATERIAL",
|
|
1251
|
+
description="A material used in the research process (except samples).",
|
|
1252
|
+
meaning=VOC4CAT["0005014"],
|
|
1253
|
+
)
|
|
1254
|
+
DEVICE = PermissibleValue(
|
|
1255
|
+
text="DEVICE",
|
|
1256
|
+
description="A physical device used in a research or manufacturing process.",
|
|
1257
|
+
meaning=VOC4CAT["0005015"],
|
|
1258
|
+
)
|
|
1259
|
+
DATA_OBJECT = PermissibleValue(
|
|
1260
|
+
text="DATA_OBJECT",
|
|
1261
|
+
description="""A collection of data available for access or download. A data object might be a data file, a data set, a data collection.""",
|
|
1262
|
+
meaning=VOC4CAT["0005016"],
|
|
1263
|
+
)
|
|
1264
|
+
DATA_SERVICE = PermissibleValue(
|
|
1265
|
+
text="DATA_SERVICE",
|
|
1266
|
+
description="""An organized system of operations that provide data processing functions or access to datasets.""",
|
|
1267
|
+
meaning=VOC4CAT["0005017"],
|
|
1268
|
+
)
|
|
1269
|
+
|
|
1270
|
+
_defn = EnumDefinition(
|
|
1271
|
+
name="ResourceCategory",
|
|
1272
|
+
description="""The ResourceCategory expresses for which type of resource the PID is used, e.g. if the PID is for a sample or a device.""",
|
|
1273
|
+
)
|
|
1274
|
+
|
|
1275
|
+
|
|
1276
|
+
class RelationType(EnumDefinitionImpl):
|
|
1277
|
+
"""
|
|
1278
|
+
The type of relation between two resources referenced by their PIDs.
|
|
1279
|
+
"""
|
|
1280
|
+
|
|
1281
|
+
IS_CITED_BY = PermissibleValue(
|
|
1282
|
+
text="IS_CITED_BY",
|
|
1283
|
+
description="The resource is cited by another resource.",
|
|
1284
|
+
meaning=VOC4CAT["0005019"],
|
|
1285
|
+
)
|
|
1286
|
+
CITES = PermissibleValue(
|
|
1287
|
+
text="CITES",
|
|
1288
|
+
description="The resource cites another resource.",
|
|
1289
|
+
meaning=VOC4CAT["0005020"],
|
|
1290
|
+
)
|
|
1291
|
+
IS_SUPPLEMENT_TO = PermissibleValue(
|
|
1292
|
+
text="IS_SUPPLEMENT_TO",
|
|
1293
|
+
description="The resource is supplemented by another resource.",
|
|
1294
|
+
meaning=VOC4CAT["0005021"],
|
|
1295
|
+
)
|
|
1296
|
+
IS_SUPPLEMENTED_BY = PermissibleValue(
|
|
1297
|
+
text="IS_SUPPLEMENTED_BY",
|
|
1298
|
+
description="The resource supplements another resource.",
|
|
1299
|
+
meaning=VOC4CAT["0005022"],
|
|
1300
|
+
)
|
|
1301
|
+
IS_CONTINUED_BY = PermissibleValue(
|
|
1302
|
+
text="IS_CONTINUED_BY",
|
|
1303
|
+
description="The resource is continued by another resource.",
|
|
1304
|
+
meaning=VOC4CAT["0005023"],
|
|
1305
|
+
)
|
|
1306
|
+
CONTINUES = PermissibleValue(
|
|
1307
|
+
text="CONTINUES",
|
|
1308
|
+
description="The resource continues another resource.",
|
|
1309
|
+
meaning=VOC4CAT["0005024"],
|
|
1310
|
+
)
|
|
1311
|
+
HAS_METADATA = PermissibleValue(
|
|
1312
|
+
text="HAS_METADATA",
|
|
1313
|
+
description="The resource has metadata in another resource.",
|
|
1314
|
+
meaning=VOC4CAT["0005025"],
|
|
1315
|
+
)
|
|
1316
|
+
IS_METADATA_FOR = PermissibleValue(
|
|
1317
|
+
text="IS_METADATA_FOR",
|
|
1318
|
+
description="The resource is metadata for another resource.",
|
|
1319
|
+
meaning=VOC4CAT["0005026"],
|
|
1320
|
+
)
|
|
1321
|
+
HAS_VERSION = PermissibleValue(
|
|
1322
|
+
text="HAS_VERSION",
|
|
1323
|
+
description="The resource has a version.",
|
|
1324
|
+
meaning=VOC4CAT["0005027"],
|
|
1325
|
+
)
|
|
1326
|
+
IS_VERSION_OF = PermissibleValue(
|
|
1327
|
+
text="IS_VERSION_OF",
|
|
1328
|
+
description="""The resource is a version of another resource. This is useful to refer to an abstract resource that has different versions, for example, \"Python 3.12 is a version of Python\".""",
|
|
1329
|
+
meaning=VOC4CAT["0005028"],
|
|
1330
|
+
)
|
|
1331
|
+
IS_NEW_VERSION_OF = PermissibleValue(
|
|
1332
|
+
text="IS_NEW_VERSION_OF",
|
|
1333
|
+
description="The resource is a new version of another resource.",
|
|
1334
|
+
meaning=VOC4CAT["0005029"],
|
|
1335
|
+
)
|
|
1336
|
+
IS_PREVIOUS_VERSION_OF = PermissibleValue(
|
|
1337
|
+
text="IS_PREVIOUS_VERSION_OF",
|
|
1338
|
+
description="The resource is a previous version of another resource.",
|
|
1339
|
+
meaning=VOC4CAT["0005030"],
|
|
1340
|
+
)
|
|
1341
|
+
IS_PART_OF = PermissibleValue(
|
|
1342
|
+
text="IS_PART_OF",
|
|
1343
|
+
description="The resource is part of another resource.",
|
|
1344
|
+
meaning=VOC4CAT["0005031"],
|
|
1345
|
+
)
|
|
1346
|
+
HAS_PART = PermissibleValue(
|
|
1347
|
+
text="HAS_PART",
|
|
1348
|
+
description="The resource has part another resource.",
|
|
1349
|
+
meaning=VOC4CAT["0005032"],
|
|
1350
|
+
)
|
|
1351
|
+
IS_PUBLISHED_IN = PermissibleValue(
|
|
1352
|
+
text="IS_PUBLISHED_IN",
|
|
1353
|
+
description="The resource is published in another resource.",
|
|
1354
|
+
meaning=VOC4CAT["0005033"],
|
|
1355
|
+
)
|
|
1356
|
+
IS_REFERENCED_BY = PermissibleValue(
|
|
1357
|
+
text="IS_REFERENCED_BY",
|
|
1358
|
+
description="The resource is referenced by another resource.",
|
|
1359
|
+
meaning=VOC4CAT["0005034"],
|
|
1360
|
+
)
|
|
1361
|
+
REFERENCES = PermissibleValue(
|
|
1362
|
+
text="REFERENCES",
|
|
1363
|
+
description="The resource references another resource.",
|
|
1364
|
+
meaning=VOC4CAT["0005035"],
|
|
1365
|
+
)
|
|
1366
|
+
IS_DOCUMENTED_BY = PermissibleValue(
|
|
1367
|
+
text="IS_DOCUMENTED_BY",
|
|
1368
|
+
description="The resource is documented by another resource.",
|
|
1369
|
+
meaning=VOC4CAT["0005036"],
|
|
1370
|
+
)
|
|
1371
|
+
DOCUMENTS = PermissibleValue(
|
|
1372
|
+
text="DOCUMENTS",
|
|
1373
|
+
description="The resource documents another resource.",
|
|
1374
|
+
meaning=VOC4CAT["0005037"],
|
|
1375
|
+
)
|
|
1376
|
+
IS_COMPILED_BY = PermissibleValue(
|
|
1377
|
+
text="IS_COMPILED_BY",
|
|
1378
|
+
description="The resource is compiled by another resource.",
|
|
1379
|
+
meaning=VOC4CAT["0005038"],
|
|
1380
|
+
)
|
|
1381
|
+
COMPILES = PermissibleValue(
|
|
1382
|
+
text="COMPILES",
|
|
1383
|
+
description="The resource compiles another resource.",
|
|
1384
|
+
meaning=VOC4CAT["0005039"],
|
|
1385
|
+
)
|
|
1386
|
+
IS_VARIANT_FORM_OF = PermissibleValue(
|
|
1387
|
+
text="IS_VARIANT_FORM_OF",
|
|
1388
|
+
description="The resource is variant form of another resource.",
|
|
1389
|
+
meaning=VOC4CAT["0005040"],
|
|
1390
|
+
)
|
|
1391
|
+
IS_ORIGINAL_FORM_OF = PermissibleValue(
|
|
1392
|
+
text="IS_ORIGINAL_FORM_OF",
|
|
1393
|
+
description="The resource is original form of another resource.",
|
|
1394
|
+
meaning=VOC4CAT["0005041"],
|
|
1395
|
+
)
|
|
1396
|
+
IS_IDENTICAL_TO = PermissibleValue(
|
|
1397
|
+
text="IS_IDENTICAL_TO",
|
|
1398
|
+
description="The resource is identical to another resource.",
|
|
1399
|
+
meaning=VOC4CAT["0005042"],
|
|
1400
|
+
)
|
|
1401
|
+
IS_DERIVED_FROM = PermissibleValue(
|
|
1402
|
+
text="IS_DERIVED_FROM",
|
|
1403
|
+
description="The resource is derived from another resource.",
|
|
1404
|
+
meaning=VOC4CAT["0005043"],
|
|
1405
|
+
)
|
|
1406
|
+
IS_SOURCE_OF = PermissibleValue(
|
|
1407
|
+
text="IS_SOURCE_OF",
|
|
1408
|
+
description="The resource is source of another resource.",
|
|
1409
|
+
meaning=VOC4CAT["0005044"],
|
|
1410
|
+
)
|
|
1411
|
+
IS_COLLECTED_BY = PermissibleValue(
|
|
1412
|
+
text="IS_COLLECTED_BY",
|
|
1413
|
+
description="The resource is collected by another resource.",
|
|
1414
|
+
meaning=VOC4CAT["0005045"],
|
|
1415
|
+
)
|
|
1416
|
+
COLLECTS = PermissibleValue(
|
|
1417
|
+
text="COLLECTS",
|
|
1418
|
+
description="The resource collects another resource.",
|
|
1419
|
+
meaning=VOC4CAT["0005046"],
|
|
1420
|
+
)
|
|
1421
|
+
IS_REQUIRED_BY = PermissibleValue(
|
|
1422
|
+
text="IS_REQUIRED_BY",
|
|
1423
|
+
description="The resource is required by another resource.",
|
|
1424
|
+
meaning=VOC4CAT["0005047"],
|
|
1425
|
+
)
|
|
1426
|
+
REQUIRES = PermissibleValue(
|
|
1427
|
+
text="REQUIRES",
|
|
1428
|
+
description="The resource requires another resource.",
|
|
1429
|
+
meaning=VOC4CAT["0005048"],
|
|
1430
|
+
)
|
|
1431
|
+
IS_OBSOLETED_BY = PermissibleValue(
|
|
1432
|
+
text="IS_OBSOLETED_BY",
|
|
1433
|
+
description="The resource is obsoleted by another resource.",
|
|
1434
|
+
meaning=VOC4CAT["0005049"],
|
|
1435
|
+
)
|
|
1436
|
+
OBSOLETES = PermissibleValue(
|
|
1437
|
+
text="OBSOLETES",
|
|
1438
|
+
description="The resource obsoletes another resource.",
|
|
1439
|
+
meaning=VOC4CAT["0005050"],
|
|
1440
|
+
)
|
|
1441
|
+
|
|
1442
|
+
_defn = EnumDefinition(
|
|
1443
|
+
name="RelationType",
|
|
1444
|
+
description="The type of relation between two resources referenced by their PIDs.",
|
|
1445
|
+
)
|
|
1446
|
+
|
|
1447
|
+
|
|
1448
|
+
class Pid4CatStatus(EnumDefinitionImpl):
|
|
1449
|
+
"""
|
|
1450
|
+
The usage status of the pid4cat record.
|
|
1451
|
+
"""
|
|
1452
|
+
|
|
1453
|
+
SUBMITTED = PermissibleValue(
|
|
1454
|
+
text="SUBMITTED",
|
|
1455
|
+
description="The pid4cat handle is reserved but the resource is not yet linked.",
|
|
1456
|
+
meaning=VOC4CAT["0005052"],
|
|
1457
|
+
)
|
|
1458
|
+
REGISTERED = PermissibleValue(
|
|
1459
|
+
text="REGISTERED",
|
|
1460
|
+
description="The pid4cat handle is linked to a concrete resource.",
|
|
1461
|
+
meaning=VOC4CAT["0005053"],
|
|
1462
|
+
)
|
|
1463
|
+
OBSOLETED = PermissibleValue(
|
|
1464
|
+
text="OBSOLETED",
|
|
1465
|
+
description="The pid4cat handle is obsolete, e.g. because the resource is referenced by another pid4cat.",
|
|
1466
|
+
meaning=VOC4CAT["0005054"],
|
|
1467
|
+
)
|
|
1468
|
+
DEPRECATED = PermissibleValue(
|
|
1469
|
+
text="DEPRECATED",
|
|
1470
|
+
description="The pid4cat record is deprecated, e.g. because the resource can no longer be found.",
|
|
1471
|
+
meaning=VOC4CAT["0005055"],
|
|
1472
|
+
)
|
|
1473
|
+
|
|
1474
|
+
_defn = EnumDefinition(
|
|
1475
|
+
name="Pid4CatStatus",
|
|
1476
|
+
description="The usage status of the pid4cat record.",
|
|
1477
|
+
)
|
|
1478
|
+
|
|
1479
|
+
|
|
1480
|
+
class Pid4CatAgentRole(EnumDefinitionImpl):
|
|
1481
|
+
"""
|
|
1482
|
+
The role of an agent relative to the resource.
|
|
1483
|
+
"""
|
|
1484
|
+
|
|
1485
|
+
TRUSTEE = PermissibleValue(
|
|
1486
|
+
text="TRUSTEE", description="The agent is the trustee of the resource."
|
|
1487
|
+
)
|
|
1488
|
+
OWNER = PermissibleValue(
|
|
1489
|
+
text="OWNER", description="The agent is the owner of the resource."
|
|
1490
|
+
)
|
|
1491
|
+
|
|
1492
|
+
_defn = EnumDefinition(
|
|
1493
|
+
name="Pid4CatAgentRole",
|
|
1494
|
+
description="The role of an agent relative to the resource.",
|
|
1495
|
+
)
|
|
1496
|
+
|
|
1497
|
+
|
|
1498
|
+
class ChangeLogField(EnumDefinitionImpl):
|
|
1499
|
+
"""
|
|
1500
|
+
The field of the pid4cat record that was changed.
|
|
1501
|
+
"""
|
|
1502
|
+
|
|
1503
|
+
STATUS = PermissibleValue(
|
|
1504
|
+
text="STATUS", description="The status of the pid4cat record was changed."
|
|
1505
|
+
)
|
|
1506
|
+
LANDING_PAGE = PermissibleValue(
|
|
1507
|
+
text="LANDING_PAGE",
|
|
1508
|
+
description="The URL of the landing page in the pid4cat record was changed.",
|
|
1509
|
+
)
|
|
1510
|
+
RESOURCE_INFO = PermissibleValue(
|
|
1511
|
+
text="RESOURCE_INFO",
|
|
1512
|
+
description="The resource info of the pid4cat record was changed.",
|
|
1513
|
+
)
|
|
1514
|
+
RELATED_IDS = PermissibleValue(
|
|
1515
|
+
text="RELATED_IDS",
|
|
1516
|
+
description="The related identifiers of the pid4cat record were changed.",
|
|
1517
|
+
)
|
|
1518
|
+
CONTACT = PermissibleValue(
|
|
1519
|
+
text="CONTACT",
|
|
1520
|
+
description="The contact information of the pid4cat record was changed.",
|
|
1521
|
+
)
|
|
1522
|
+
LICENSE = PermissibleValue(
|
|
1523
|
+
text="LICENSE", description="The license of the pid4cat record was changed."
|
|
1524
|
+
)
|
|
1525
|
+
SCHEMA_VER = PermissibleValue(
|
|
1526
|
+
text="SCHEMA_VER",
|
|
1527
|
+
description="The pid4cat-model version of the pid4cat record was changed.",
|
|
1528
|
+
)
|
|
1529
|
+
|
|
1530
|
+
_defn = EnumDefinition(
|
|
1531
|
+
name="ChangeLogField",
|
|
1532
|
+
description="The field of the pid4cat record that was changed.",
|
|
1533
|
+
)
|
|
1534
|
+
|
|
1535
|
+
|
|
1536
|
+
class MediaTypesEnum(EnumDefinitionImpl):
|
|
1537
|
+
"""
|
|
1538
|
+
IANA media types are used to specify the type of data.
|
|
1539
|
+
"""
|
|
1540
|
+
|
|
1541
|
+
_defn = EnumDefinition(
|
|
1542
|
+
name="MediaTypesEnum",
|
|
1543
|
+
description="IANA media types are used to specify the type of data.",
|
|
1544
|
+
)
|
|
1545
|
+
|
|
1546
|
+
@classmethod
|
|
1547
|
+
def _addvals(cls):
|
|
1548
|
+
setattr(
|
|
1549
|
+
cls,
|
|
1550
|
+
"application/epub+zip",
|
|
1551
|
+
PermissibleValue(
|
|
1552
|
+
text="application/epub+zip",
|
|
1553
|
+
description="For data in Electronic Publication Format (EPUB).",
|
|
1554
|
+
meaning=MEDIATYPE["application/epub+zip"],
|
|
1555
|
+
),
|
|
1556
|
+
)
|
|
1557
|
+
setattr(
|
|
1558
|
+
cls,
|
|
1559
|
+
"application/json",
|
|
1560
|
+
PermissibleValue(
|
|
1561
|
+
text="application/json",
|
|
1562
|
+
description="For data in JavaScript Object Notation (JSON).",
|
|
1563
|
+
meaning=MEDIATYPE["application/json"],
|
|
1564
|
+
),
|
|
1565
|
+
)
|
|
1566
|
+
setattr(
|
|
1567
|
+
cls,
|
|
1568
|
+
"application/ld+json",
|
|
1569
|
+
PermissibleValue(
|
|
1570
|
+
text="application/ld+json",
|
|
1571
|
+
description="For data in Linked Data json (JSON-LD).",
|
|
1572
|
+
meaning=MEDIATYPE["application/ld+json"],
|
|
1573
|
+
),
|
|
1574
|
+
)
|
|
1575
|
+
setattr(
|
|
1576
|
+
cls,
|
|
1577
|
+
"application/octet-stream",
|
|
1578
|
+
PermissibleValue(
|
|
1579
|
+
text="application/octet-stream",
|
|
1580
|
+
description="For binary data.",
|
|
1581
|
+
meaning=MEDIATYPE["application/octet-stream"],
|
|
1582
|
+
),
|
|
1583
|
+
)
|
|
1584
|
+
setattr(
|
|
1585
|
+
cls,
|
|
1586
|
+
"application/pdf",
|
|
1587
|
+
PermissibleValue(
|
|
1588
|
+
text="application/pdf",
|
|
1589
|
+
description="For data in Portable Document Format (PDF).",
|
|
1590
|
+
meaning=MEDIATYPE["application/pdf"],
|
|
1591
|
+
),
|
|
1592
|
+
)
|
|
1593
|
+
setattr(
|
|
1594
|
+
cls,
|
|
1595
|
+
"application/vnd.eln+zip",
|
|
1596
|
+
PermissibleValue(
|
|
1597
|
+
text="application/vnd.eln+zip",
|
|
1598
|
+
description="For data in ELN ZIP format.",
|
|
1599
|
+
meaning=MEDIATYPE["application/vnd.eln+zip"],
|
|
1600
|
+
),
|
|
1601
|
+
)
|
|
1602
|
+
setattr(
|
|
1603
|
+
cls,
|
|
1604
|
+
"application/vnd.openxmlformats-officedocument.presentationml.presentation",
|
|
1605
|
+
PermissibleValue(
|
|
1606
|
+
text="application/vnd.openxmlformats-officedocument.presentationml.presentation",
|
|
1607
|
+
description="For data in PowerPoint pptx format.",
|
|
1608
|
+
meaning=MEDIATYPE[
|
|
1609
|
+
"application/vnd.openxmlformats-officedocument.presentationml.presentation"
|
|
1610
|
+
],
|
|
1611
|
+
),
|
|
1612
|
+
)
|
|
1613
|
+
setattr(
|
|
1614
|
+
cls,
|
|
1615
|
+
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
|
1616
|
+
PermissibleValue(
|
|
1617
|
+
text="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
|
1618
|
+
description="For data in Excel xlsx format.",
|
|
1619
|
+
meaning=MEDIATYPE[
|
|
1620
|
+
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
|
|
1621
|
+
],
|
|
1622
|
+
),
|
|
1623
|
+
)
|
|
1624
|
+
setattr(
|
|
1625
|
+
cls,
|
|
1626
|
+
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
|
1627
|
+
PermissibleValue(
|
|
1628
|
+
text="application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
|
1629
|
+
description="For data in Word docx format.",
|
|
1630
|
+
meaning=MEDIATYPE[
|
|
1631
|
+
"application/vnd.openxmlformats-officedocument.wordprocessingml.document"
|
|
1632
|
+
],
|
|
1633
|
+
),
|
|
1634
|
+
)
|
|
1635
|
+
setattr(
|
|
1636
|
+
cls,
|
|
1637
|
+
"application/xml",
|
|
1638
|
+
PermissibleValue(
|
|
1639
|
+
text="application/xml",
|
|
1640
|
+
description="For generic XML data.",
|
|
1641
|
+
meaning=MEDIATYPE["application/xml"],
|
|
1642
|
+
),
|
|
1643
|
+
)
|
|
1644
|
+
setattr(
|
|
1645
|
+
cls,
|
|
1646
|
+
"application/yaml",
|
|
1647
|
+
PermissibleValue(
|
|
1648
|
+
text="application/yaml",
|
|
1649
|
+
description="For YAML data.",
|
|
1650
|
+
meaning=MEDIATYPE["application/yaml"],
|
|
1651
|
+
),
|
|
1652
|
+
)
|
|
1653
|
+
setattr(
|
|
1654
|
+
cls,
|
|
1655
|
+
"application/zip",
|
|
1656
|
+
PermissibleValue(
|
|
1657
|
+
text="application/zip",
|
|
1658
|
+
description="For zip archives.",
|
|
1659
|
+
meaning=MEDIATYPE["application/zip"],
|
|
1660
|
+
),
|
|
1661
|
+
)
|
|
1662
|
+
setattr(
|
|
1663
|
+
cls,
|
|
1664
|
+
"image/gif",
|
|
1665
|
+
PermissibleValue(
|
|
1666
|
+
text="image/gif",
|
|
1667
|
+
description="For GIF images.",
|
|
1668
|
+
meaning=MEDIATYPE["image/gif"],
|
|
1669
|
+
),
|
|
1670
|
+
)
|
|
1671
|
+
setattr(
|
|
1672
|
+
cls,
|
|
1673
|
+
"image/jpeg",
|
|
1674
|
+
PermissibleValue(
|
|
1675
|
+
text="image/jpeg",
|
|
1676
|
+
description="For JPEG images.",
|
|
1677
|
+
meaning=MEDIATYPE["image/jpeg"],
|
|
1678
|
+
),
|
|
1679
|
+
)
|
|
1680
|
+
setattr(
|
|
1681
|
+
cls,
|
|
1682
|
+
"image/png",
|
|
1683
|
+
PermissibleValue(
|
|
1684
|
+
text="image/png",
|
|
1685
|
+
description="For PNG images.",
|
|
1686
|
+
meaning=MEDIATYPE["image/png"],
|
|
1687
|
+
),
|
|
1688
|
+
)
|
|
1689
|
+
setattr(
|
|
1690
|
+
cls,
|
|
1691
|
+
"image/svg+xml",
|
|
1692
|
+
PermissibleValue(
|
|
1693
|
+
text="image/svg+xml",
|
|
1694
|
+
description="For SVG images.",
|
|
1695
|
+
meaning=MEDIATYPE["image/svg+xml"],
|
|
1696
|
+
),
|
|
1697
|
+
)
|
|
1698
|
+
setattr(
|
|
1699
|
+
cls,
|
|
1700
|
+
"image/tiff",
|
|
1701
|
+
PermissibleValue(
|
|
1702
|
+
text="image/tiff",
|
|
1703
|
+
description="For TIFF images.",
|
|
1704
|
+
meaning=MEDIATYPE["image/tiff"],
|
|
1705
|
+
),
|
|
1706
|
+
)
|
|
1707
|
+
setattr(
|
|
1708
|
+
cls,
|
|
1709
|
+
"image/webp",
|
|
1710
|
+
PermissibleValue(
|
|
1711
|
+
text="image/webp",
|
|
1712
|
+
description="For WebP images.",
|
|
1713
|
+
meaning=MEDIATYPE["image/webp"],
|
|
1714
|
+
),
|
|
1715
|
+
)
|
|
1716
|
+
setattr(
|
|
1717
|
+
cls,
|
|
1718
|
+
"text/csv",
|
|
1719
|
+
PermissibleValue(
|
|
1720
|
+
text="text/csv",
|
|
1721
|
+
description="For data in comma-separated values (CSV) format.",
|
|
1722
|
+
meaning=MEDIATYPE["text/csv"],
|
|
1723
|
+
),
|
|
1724
|
+
)
|
|
1725
|
+
setattr(
|
|
1726
|
+
cls,
|
|
1727
|
+
"text/html",
|
|
1728
|
+
PermissibleValue(
|
|
1729
|
+
text="text/html",
|
|
1730
|
+
description="For html web pages.",
|
|
1731
|
+
meaning=MEDIATYPE["text/html"],
|
|
1732
|
+
),
|
|
1733
|
+
)
|
|
1734
|
+
setattr(
|
|
1735
|
+
cls,
|
|
1736
|
+
"text/javascript",
|
|
1737
|
+
PermissibleValue(
|
|
1738
|
+
text="text/javascript",
|
|
1739
|
+
description="For JavaScript code.",
|
|
1740
|
+
meaning=MEDIATYPE["text/javascript"],
|
|
1741
|
+
),
|
|
1742
|
+
)
|
|
1743
|
+
setattr(
|
|
1744
|
+
cls,
|
|
1745
|
+
"text/markdown",
|
|
1746
|
+
PermissibleValue(
|
|
1747
|
+
text="text/markdown",
|
|
1748
|
+
description="For data in markdown text format.",
|
|
1749
|
+
meaning=MEDIATYPE["text/markdown"],
|
|
1750
|
+
),
|
|
1751
|
+
)
|
|
1752
|
+
setattr(
|
|
1753
|
+
cls,
|
|
1754
|
+
"text/plain",
|
|
1755
|
+
PermissibleValue(
|
|
1756
|
+
text="text/plain",
|
|
1757
|
+
description="For plain text data (default text media type).",
|
|
1758
|
+
meaning=MEDIATYPE["text/plain"],
|
|
1759
|
+
),
|
|
1760
|
+
)
|
|
1761
|
+
setattr(
|
|
1762
|
+
cls,
|
|
1763
|
+
"text/tab-separated-values",
|
|
1764
|
+
PermissibleValue(
|
|
1765
|
+
text="text/tab-separated-values",
|
|
1766
|
+
description="For data in tab-separated values (TSV) format.",
|
|
1767
|
+
meaning=MEDIATYPE["text/tab-separated-values"],
|
|
1768
|
+
),
|
|
1769
|
+
)
|
|
1770
|
+
setattr(
|
|
1771
|
+
cls,
|
|
1772
|
+
"text/turtle",
|
|
1773
|
+
PermissibleValue(
|
|
1774
|
+
text="text/turtle",
|
|
1775
|
+
description="For data in turtle format.",
|
|
1776
|
+
meaning=MEDIATYPE["text/turtle"],
|
|
1777
|
+
),
|
|
1778
|
+
)
|
|
1779
|
+
setattr(
|
|
1780
|
+
cls,
|
|
1781
|
+
"text/xml",
|
|
1782
|
+
PermissibleValue(
|
|
1783
|
+
text="text/xml",
|
|
1784
|
+
description="For XML data.",
|
|
1785
|
+
meaning=MEDIATYPE["text/xml"],
|
|
1786
|
+
),
|
|
1787
|
+
)
|
|
1788
|
+
setattr(
|
|
1789
|
+
cls,
|
|
1790
|
+
"video/mp4",
|
|
1791
|
+
PermissibleValue(
|
|
1792
|
+
text="video/mp4",
|
|
1793
|
+
description="For mp4 video files.",
|
|
1794
|
+
meaning=MEDIATYPE["video/mp4"],
|
|
1795
|
+
),
|
|
1796
|
+
)
|
|
1797
|
+
setattr(
|
|
1798
|
+
cls,
|
|
1799
|
+
"video/webm",
|
|
1800
|
+
PermissibleValue(text="video/webm", description="For webm video files."),
|
|
1801
|
+
)
|
|
1802
|
+
|
|
1803
|
+
|
|
1804
|
+
# Slots
|
|
1805
|
+
class slots:
|
|
1806
|
+
pass
|
|
1807
|
+
|
|
1808
|
+
|
|
1809
|
+
slots.responseCode = Slot(
|
|
1810
|
+
uri=PID4CAT_MODEL.responseCode,
|
|
1811
|
+
name="responseCode",
|
|
1812
|
+
curie=PID4CAT_MODEL.curie("responseCode"),
|
|
1813
|
+
model_uri=PID4CAT_MODEL.responseCode,
|
|
1814
|
+
domain=None,
|
|
1815
|
+
range=Optional[int],
|
|
1816
|
+
)
|
|
1817
|
+
|
|
1818
|
+
slots.handle = Slot(
|
|
1819
|
+
uri=PID4CAT_MODEL.handle,
|
|
1820
|
+
name="handle",
|
|
1821
|
+
curie=PID4CAT_MODEL.curie("handle"),
|
|
1822
|
+
model_uri=PID4CAT_MODEL.handle,
|
|
1823
|
+
domain=None,
|
|
1824
|
+
range=URIRef,
|
|
1825
|
+
)
|
|
1826
|
+
|
|
1827
|
+
slots.values = Slot(
|
|
1828
|
+
uri=PID4CAT_MODEL.values,
|
|
1829
|
+
name="values",
|
|
1830
|
+
curie=PID4CAT_MODEL.curie("values"),
|
|
1831
|
+
model_uri=PID4CAT_MODEL.values,
|
|
1832
|
+
domain=None,
|
|
1833
|
+
range=Optional[Union[Union[dict, HandleRecord], List[Union[dict, HandleRecord]]]],
|
|
1834
|
+
)
|
|
1835
|
+
|
|
1836
|
+
slots.timestamp = Slot(
|
|
1837
|
+
uri=PID4CAT_MODEL.timestamp,
|
|
1838
|
+
name="timestamp",
|
|
1839
|
+
curie=PID4CAT_MODEL.curie("timestamp"),
|
|
1840
|
+
model_uri=PID4CAT_MODEL.timestamp,
|
|
1841
|
+
domain=None,
|
|
1842
|
+
range=Optional[Union[str, XSDDateTime]],
|
|
1843
|
+
)
|
|
1844
|
+
|
|
1845
|
+
slots.ttl = Slot(
|
|
1846
|
+
uri=PID4CAT_MODEL.ttl,
|
|
1847
|
+
name="ttl",
|
|
1848
|
+
curie=PID4CAT_MODEL.curie("ttl"),
|
|
1849
|
+
model_uri=PID4CAT_MODEL.ttl,
|
|
1850
|
+
domain=None,
|
|
1851
|
+
range=Optional[int],
|
|
1852
|
+
)
|
|
1853
|
+
|
|
1854
|
+
slots.type = Slot(
|
|
1855
|
+
uri=PID4CAT_MODEL.type,
|
|
1856
|
+
name="type",
|
|
1857
|
+
curie=PID4CAT_MODEL.curie("type"),
|
|
1858
|
+
model_uri=PID4CAT_MODEL.type,
|
|
1859
|
+
domain=None,
|
|
1860
|
+
range=Optional[str],
|
|
1861
|
+
)
|
|
1862
|
+
|
|
1863
|
+
slots.index = Slot(
|
|
1864
|
+
uri=PID4CAT_MODEL.index,
|
|
1865
|
+
name="index",
|
|
1866
|
+
curie=PID4CAT_MODEL.curie("index"),
|
|
1867
|
+
model_uri=PID4CAT_MODEL.index,
|
|
1868
|
+
domain=None,
|
|
1869
|
+
range=Optional[int],
|
|
1870
|
+
)
|
|
1871
|
+
|
|
1872
|
+
slots.data = Slot(
|
|
1873
|
+
uri=PID4CAT_MODEL.data,
|
|
1874
|
+
name="data",
|
|
1875
|
+
curie=PID4CAT_MODEL.curie("data"),
|
|
1876
|
+
model_uri=PID4CAT_MODEL.data,
|
|
1877
|
+
domain=None,
|
|
1878
|
+
range=Optional[str],
|
|
1879
|
+
)
|
|
1880
|
+
|
|
1881
|
+
slots.format = Slot(
|
|
1882
|
+
uri=PID4CAT_MODEL.format,
|
|
1883
|
+
name="format",
|
|
1884
|
+
curie=PID4CAT_MODEL.curie("format"),
|
|
1885
|
+
model_uri=PID4CAT_MODEL.format,
|
|
1886
|
+
domain=None,
|
|
1887
|
+
range=Optional[str],
|
|
1888
|
+
)
|
|
1889
|
+
|
|
1890
|
+
slots.value = Slot(
|
|
1891
|
+
uri=PID4CAT_MODEL.value,
|
|
1892
|
+
name="value",
|
|
1893
|
+
curie=PID4CAT_MODEL.curie("value"),
|
|
1894
|
+
model_uri=PID4CAT_MODEL.value,
|
|
1895
|
+
domain=None,
|
|
1896
|
+
range=Optional[str],
|
|
1897
|
+
)
|
|
1898
|
+
|
|
1899
|
+
slots.relation_type = Slot(
|
|
1900
|
+
uri=PID4CAT_MODEL.relation_type,
|
|
1901
|
+
name="relation_type",
|
|
1902
|
+
curie=PID4CAT_MODEL.curie("relation_type"),
|
|
1903
|
+
model_uri=PID4CAT_MODEL.relation_type,
|
|
1904
|
+
domain=None,
|
|
1905
|
+
range=Optional[Union[str, "RelationType"]],
|
|
1906
|
+
)
|
|
1907
|
+
|
|
1908
|
+
slots.related_identifier = Slot(
|
|
1909
|
+
uri=PID4CAT_MODEL.related_identifier,
|
|
1910
|
+
name="related_identifier",
|
|
1911
|
+
curie=PID4CAT_MODEL.curie("related_identifier"),
|
|
1912
|
+
model_uri=PID4CAT_MODEL.related_identifier,
|
|
1913
|
+
domain=None,
|
|
1914
|
+
range=Optional[Union[dict, RelatedIdentifier]],
|
|
1915
|
+
)
|
|
1916
|
+
|
|
1917
|
+
slots.datetime_log = Slot(
|
|
1918
|
+
uri=PID4CAT_MODEL.datetime_log,
|
|
1919
|
+
name="datetime_log",
|
|
1920
|
+
curie=PID4CAT_MODEL.curie("datetime_log"),
|
|
1921
|
+
model_uri=PID4CAT_MODEL.datetime_log,
|
|
1922
|
+
domain=None,
|
|
1923
|
+
range=Optional[Union[str, XSDDateTime]],
|
|
1924
|
+
)
|
|
1925
|
+
|
|
1926
|
+
slots.label = Slot(
|
|
1927
|
+
uri=PID4CAT_MODEL.label,
|
|
1928
|
+
name="label",
|
|
1929
|
+
curie=PID4CAT_MODEL.curie("label"),
|
|
1930
|
+
model_uri=PID4CAT_MODEL.label,
|
|
1931
|
+
domain=None,
|
|
1932
|
+
range=Optional[str],
|
|
1933
|
+
)
|
|
1934
|
+
|
|
1935
|
+
slots.description = Slot(
|
|
1936
|
+
uri=PID4CAT_MODEL.description,
|
|
1937
|
+
name="description",
|
|
1938
|
+
curie=PID4CAT_MODEL.curie("description"),
|
|
1939
|
+
model_uri=PID4CAT_MODEL.description,
|
|
1940
|
+
domain=None,
|
|
1941
|
+
range=Optional[str],
|
|
1942
|
+
)
|
|
1943
|
+
|
|
1944
|
+
slots.resource_category = Slot(
|
|
1945
|
+
uri=PID4CAT_MODEL.resource_category,
|
|
1946
|
+
name="resource_category",
|
|
1947
|
+
curie=PID4CAT_MODEL.curie("resource_category"),
|
|
1948
|
+
model_uri=PID4CAT_MODEL.resource_category,
|
|
1949
|
+
domain=None,
|
|
1950
|
+
range=Optional[Union[str, "ResourceCategory"]],
|
|
1951
|
+
)
|
|
1952
|
+
|
|
1953
|
+
slots.representation_variants = Slot(
|
|
1954
|
+
uri=PID4CAT_MODEL.representation_variants,
|
|
1955
|
+
name="representation_variants",
|
|
1956
|
+
curie=PID4CAT_MODEL.curie("representation_variants"),
|
|
1957
|
+
model_uri=PID4CAT_MODEL.representation_variants,
|
|
1958
|
+
domain=None,
|
|
1959
|
+
range=Optional[
|
|
1960
|
+
Union[
|
|
1961
|
+
Union[dict, RepresentationVariant], List[Union[dict, RepresentationVariant]]
|
|
1962
|
+
]
|
|
1963
|
+
],
|
|
1964
|
+
)
|
|
1965
|
+
|
|
1966
|
+
slots.changed_field = Slot(
|
|
1967
|
+
uri=PID4CAT_MODEL.changed_field,
|
|
1968
|
+
name="changed_field",
|
|
1969
|
+
curie=PID4CAT_MODEL.curie("changed_field"),
|
|
1970
|
+
model_uri=PID4CAT_MODEL.changed_field,
|
|
1971
|
+
domain=None,
|
|
1972
|
+
range=Optional[Union[str, "ChangeLogField"]],
|
|
1973
|
+
)
|
|
1974
|
+
|
|
1975
|
+
slots.has_agent = Slot(
|
|
1976
|
+
uri=PID4CAT_MODEL.has_agent,
|
|
1977
|
+
name="has_agent",
|
|
1978
|
+
curie=PID4CAT_MODEL.curie("has_agent"),
|
|
1979
|
+
model_uri=PID4CAT_MODEL.has_agent,
|
|
1980
|
+
domain=None,
|
|
1981
|
+
range=Optional[Union[dict, Agent]],
|
|
1982
|
+
)
|
|
1983
|
+
|
|
1984
|
+
slots.name = Slot(
|
|
1985
|
+
uri=PID4CAT_MODEL.name,
|
|
1986
|
+
name="name",
|
|
1987
|
+
curie=PID4CAT_MODEL.curie("name"),
|
|
1988
|
+
model_uri=PID4CAT_MODEL.name,
|
|
1989
|
+
domain=None,
|
|
1990
|
+
range=Optional[str],
|
|
1991
|
+
)
|
|
1992
|
+
|
|
1993
|
+
slots.email_address = Slot(
|
|
1994
|
+
uri=PID4CAT_MODEL.email_address,
|
|
1995
|
+
name="email_address",
|
|
1996
|
+
curie=PID4CAT_MODEL.curie("email_address"),
|
|
1997
|
+
model_uri=PID4CAT_MODEL.email_address,
|
|
1998
|
+
domain=None,
|
|
1999
|
+
range=Optional[str],
|
|
2000
|
+
)
|
|
2001
|
+
|
|
2002
|
+
slots.orcid = Slot(
|
|
2003
|
+
uri=PID4CAT_MODEL.orcid,
|
|
2004
|
+
name="orcid",
|
|
2005
|
+
curie=PID4CAT_MODEL.curie("orcid"),
|
|
2006
|
+
model_uri=PID4CAT_MODEL.orcid,
|
|
2007
|
+
domain=None,
|
|
2008
|
+
range=Optional[str],
|
|
2009
|
+
)
|
|
2010
|
+
|
|
2011
|
+
slots.affiliation_ror = Slot(
|
|
2012
|
+
uri=PID4CAT_MODEL.affiliation_ror,
|
|
2013
|
+
name="affiliation_ror",
|
|
2014
|
+
curie=PID4CAT_MODEL.curie("affiliation_ror"),
|
|
2015
|
+
model_uri=PID4CAT_MODEL.affiliation_ror,
|
|
2016
|
+
domain=None,
|
|
2017
|
+
range=Optional[Union[str, URI]],
|
|
2018
|
+
)
|
|
2019
|
+
|
|
2020
|
+
slots.role = Slot(
|
|
2021
|
+
uri=PID4CAT_MODEL.role,
|
|
2022
|
+
name="role",
|
|
2023
|
+
curie=PID4CAT_MODEL.curie("role"),
|
|
2024
|
+
model_uri=PID4CAT_MODEL.role,
|
|
2025
|
+
domain=None,
|
|
2026
|
+
range=Optional[Union[str, "Pid4CatAgentRole"]],
|
|
2027
|
+
)
|
|
2028
|
+
|
|
2029
|
+
slots.media_type = Slot(
|
|
2030
|
+
uri=PID4CAT_MODEL.media_type,
|
|
2031
|
+
name="media_type",
|
|
2032
|
+
curie=PID4CAT_MODEL.curie("media_type"),
|
|
2033
|
+
model_uri=PID4CAT_MODEL.media_type,
|
|
2034
|
+
domain=None,
|
|
2035
|
+
range=Optional[Union[str, "MediaTypesEnum"]],
|
|
2036
|
+
)
|
|
2037
|
+
|
|
2038
|
+
slots.encoding_format = Slot(
|
|
2039
|
+
uri=PID4CAT_MODEL.encoding_format,
|
|
2040
|
+
name="encoding_format",
|
|
2041
|
+
curie=PID4CAT_MODEL.curie("encoding_format"),
|
|
2042
|
+
model_uri=PID4CAT_MODEL.encoding_format,
|
|
2043
|
+
domain=None,
|
|
2044
|
+
range=Optional[str],
|
|
2045
|
+
)
|
|
2046
|
+
|
|
2047
|
+
slots.size = Slot(
|
|
2048
|
+
uri=PID4CAT_MODEL.size,
|
|
2049
|
+
name="size",
|
|
2050
|
+
curie=PID4CAT_MODEL.curie("size"),
|
|
2051
|
+
model_uri=PID4CAT_MODEL.size,
|
|
2052
|
+
domain=None,
|
|
2053
|
+
range=Optional[int],
|
|
2054
|
+
)
|
|
2055
|
+
|
|
2056
|
+
slots.variant_url = Slot(
|
|
2057
|
+
uri=PID4CAT_MODEL.variant_url,
|
|
2058
|
+
name="variant_url",
|
|
2059
|
+
curie=PID4CAT_MODEL.curie("variant_url"),
|
|
2060
|
+
model_uri=PID4CAT_MODEL.variant_url,
|
|
2061
|
+
domain=None,
|
|
2062
|
+
range=Optional[Union[str, URI]],
|
|
2063
|
+
)
|
|
2064
|
+
|
|
2065
|
+
slots.resolving_url = Slot(
|
|
2066
|
+
uri=PID4CAT_MODEL.resolving_url,
|
|
2067
|
+
name="resolving_url",
|
|
2068
|
+
curie=PID4CAT_MODEL.curie("resolving_url"),
|
|
2069
|
+
model_uri=PID4CAT_MODEL.resolving_url,
|
|
2070
|
+
domain=None,
|
|
2071
|
+
range=Optional[Union[str, URI]],
|
|
2072
|
+
)
|
|
2073
|
+
|
|
2074
|
+
slots.identifier = Slot(
|
|
2075
|
+
uri=PID4CAT_MODEL.identifier,
|
|
2076
|
+
name="identifier",
|
|
2077
|
+
curie=PID4CAT_MODEL.curie("identifier"),
|
|
2078
|
+
model_uri=PID4CAT_MODEL.identifier,
|
|
2079
|
+
domain=None,
|
|
2080
|
+
range=Optional[str],
|
|
2081
|
+
)
|
|
2082
|
+
|
|
2083
|
+
slots.landing_page_url = Slot(
|
|
2084
|
+
uri=PID4CAT_MODEL.landing_page_url,
|
|
2085
|
+
name="landing_page_url",
|
|
2086
|
+
curie=PID4CAT_MODEL.curie("landing_page_url"),
|
|
2087
|
+
model_uri=PID4CAT_MODEL.landing_page_url,
|
|
2088
|
+
domain=None,
|
|
2089
|
+
range=Optional[str],
|
|
2090
|
+
)
|
|
2091
|
+
|
|
2092
|
+
slots.status = Slot(
|
|
2093
|
+
uri=PID4CAT_MODEL.status,
|
|
2094
|
+
name="status",
|
|
2095
|
+
curie=PID4CAT_MODEL.curie("status"),
|
|
2096
|
+
model_uri=PID4CAT_MODEL.status,
|
|
2097
|
+
domain=None,
|
|
2098
|
+
range=Optional[Union[str, "Pid4CatStatus"]],
|
|
2099
|
+
)
|
|
2100
|
+
|
|
2101
|
+
slots.schema_version = Slot(
|
|
2102
|
+
uri=PID4CAT_MODEL.schema_version,
|
|
2103
|
+
name="schema_version",
|
|
2104
|
+
curie=PID4CAT_MODEL.curie("schema_version"),
|
|
2105
|
+
model_uri=PID4CAT_MODEL.schema_version,
|
|
2106
|
+
domain=None,
|
|
2107
|
+
range=Optional[str],
|
|
2108
|
+
)
|
|
2109
|
+
|
|
2110
|
+
slots.metadata_license = Slot(
|
|
2111
|
+
uri=PID4CAT_MODEL.metadata_license,
|
|
2112
|
+
name="metadata_license",
|
|
2113
|
+
curie=PID4CAT_MODEL.curie("metadata_license"),
|
|
2114
|
+
model_uri=PID4CAT_MODEL.metadata_license,
|
|
2115
|
+
domain=None,
|
|
2116
|
+
range=Optional[str],
|
|
2117
|
+
)
|
|
2118
|
+
|
|
2119
|
+
slots.curation_contact = Slot(
|
|
2120
|
+
uri=PID4CAT_MODEL.curation_contact,
|
|
2121
|
+
name="curation_contact",
|
|
2122
|
+
curie=PID4CAT_MODEL.curie("curation_contact"),
|
|
2123
|
+
model_uri=PID4CAT_MODEL.curation_contact,
|
|
2124
|
+
domain=None,
|
|
2125
|
+
range=Optional[str],
|
|
2126
|
+
)
|
|
2127
|
+
|
|
2128
|
+
slots.resource_info = Slot(
|
|
2129
|
+
uri=PID4CAT_MODEL.resource_info,
|
|
2130
|
+
name="resource_info",
|
|
2131
|
+
curie=PID4CAT_MODEL.curie("resource_info"),
|
|
2132
|
+
model_uri=PID4CAT_MODEL.resource_info,
|
|
2133
|
+
domain=None,
|
|
2134
|
+
range=Optional[Union[dict, ResourceInfo]],
|
|
2135
|
+
)
|
|
2136
|
+
|
|
2137
|
+
slots.related_identifiers = Slot(
|
|
2138
|
+
uri=PID4CAT_MODEL.related_identifiers,
|
|
2139
|
+
name="related_identifiers",
|
|
2140
|
+
curie=PID4CAT_MODEL.curie("related_identifiers"),
|
|
2141
|
+
model_uri=PID4CAT_MODEL.related_identifiers,
|
|
2142
|
+
domain=None,
|
|
2143
|
+
range=Optional[
|
|
2144
|
+
Union[Union[dict, Pid4CatRelation], List[Union[dict, Pid4CatRelation]]]
|
|
2145
|
+
],
|
|
2146
|
+
)
|
|
2147
|
+
|
|
2148
|
+
slots.change_log = Slot(
|
|
2149
|
+
uri=PID4CAT_MODEL.change_log,
|
|
2150
|
+
name="change_log",
|
|
2151
|
+
curie=PID4CAT_MODEL.curie("change_log"),
|
|
2152
|
+
model_uri=PID4CAT_MODEL.change_log,
|
|
2153
|
+
domain=None,
|
|
2154
|
+
range=Optional[Union[dict, LogRecord]],
|
|
2155
|
+
)
|
|
2156
|
+
|
|
2157
|
+
slots.handleRecordContainer__contains_pids = Slot(
|
|
2158
|
+
uri=PID4CAT_MODEL.contains_pids,
|
|
2159
|
+
name="handleRecordContainer__contains_pids",
|
|
2160
|
+
curie=PID4CAT_MODEL.curie("contains_pids"),
|
|
2161
|
+
model_uri=PID4CAT_MODEL.handleRecordContainer__contains_pids,
|
|
2162
|
+
domain=None,
|
|
2163
|
+
range=Optional[
|
|
2164
|
+
Union[
|
|
2165
|
+
Dict[Union[str, HandleAPIRecordHandle], Union[dict, HandleAPIRecord]],
|
|
2166
|
+
List[Union[dict, HandleAPIRecord]],
|
|
2167
|
+
]
|
|
2168
|
+
],
|
|
2169
|
+
)
|
|
2170
|
+
|
|
2171
|
+
slots.relatedIdentifier__type = Slot(
|
|
2172
|
+
uri=PID4CAT_MODEL.type,
|
|
2173
|
+
name="relatedIdentifier__type",
|
|
2174
|
+
curie=PID4CAT_MODEL.curie("type"),
|
|
2175
|
+
model_uri=PID4CAT_MODEL.relatedIdentifier__type,
|
|
2176
|
+
domain=None,
|
|
2177
|
+
range=str,
|
|
2178
|
+
)
|
|
2179
|
+
|
|
2180
|
+
slots.HandleAPIRecord_handle = Slot(
|
|
2181
|
+
uri=PID4CAT_MODEL.handle,
|
|
2182
|
+
name="HandleAPIRecord_handle",
|
|
2183
|
+
curie=PID4CAT_MODEL.curie("handle"),
|
|
2184
|
+
model_uri=PID4CAT_MODEL.HandleAPIRecord_handle,
|
|
2185
|
+
domain=HandleAPIRecord,
|
|
2186
|
+
range=Union[str, HandleAPIRecordHandle],
|
|
2187
|
+
pattern=re.compile(r"^\d{2}\.T?\d{4,}\/.*$"),
|
|
2188
|
+
)
|
|
2189
|
+
|
|
2190
|
+
slots.HandleAPIRecord_values = Slot(
|
|
2191
|
+
uri=PID4CAT_MODEL.values,
|
|
2192
|
+
name="HandleAPIRecord_values",
|
|
2193
|
+
curie=PID4CAT_MODEL.curie("values"),
|
|
2194
|
+
model_uri=PID4CAT_MODEL.HandleAPIRecord_values,
|
|
2195
|
+
domain=HandleAPIRecord,
|
|
2196
|
+
range=Union[Union[dict, "HandleRecord"], List[Union[dict, "HandleRecord"]]],
|
|
2197
|
+
)
|
|
2198
|
+
|
|
2199
|
+
slots.HandleRecord_timestamp = Slot(
|
|
2200
|
+
uri=PID4CAT_MODEL.timestamp,
|
|
2201
|
+
name="HandleRecord_timestamp",
|
|
2202
|
+
curie=PID4CAT_MODEL.curie("timestamp"),
|
|
2203
|
+
model_uri=PID4CAT_MODEL.HandleRecord_timestamp,
|
|
2204
|
+
domain=HandleRecord,
|
|
2205
|
+
range=Union[str, XSDDateTime],
|
|
2206
|
+
)
|
|
2207
|
+
|
|
2208
|
+
slots.HandleRecord_ttl = Slot(
|
|
2209
|
+
uri=PID4CAT_MODEL.ttl,
|
|
2210
|
+
name="HandleRecord_ttl",
|
|
2211
|
+
curie=PID4CAT_MODEL.curie("ttl"),
|
|
2212
|
+
model_uri=PID4CAT_MODEL.HandleRecord_ttl,
|
|
2213
|
+
domain=HandleRecord,
|
|
2214
|
+
range=Optional[int],
|
|
2215
|
+
)
|
|
2216
|
+
|
|
2217
|
+
slots.HandleRecord_type = Slot(
|
|
2218
|
+
uri=PID4CAT_MODEL.type,
|
|
2219
|
+
name="HandleRecord_type",
|
|
2220
|
+
curie=PID4CAT_MODEL.curie("type"),
|
|
2221
|
+
model_uri=PID4CAT_MODEL.HandleRecord_type,
|
|
2222
|
+
domain=HandleRecord,
|
|
2223
|
+
range=str,
|
|
2224
|
+
)
|
|
2225
|
+
|
|
2226
|
+
slots.URL_index = Slot(
|
|
2227
|
+
uri=PID4CAT_MODEL.index,
|
|
2228
|
+
name="URL_index",
|
|
2229
|
+
curie=PID4CAT_MODEL.curie("index"),
|
|
2230
|
+
model_uri=PID4CAT_MODEL.URL_index,
|
|
2231
|
+
domain=URL,
|
|
2232
|
+
range=int,
|
|
2233
|
+
)
|
|
2234
|
+
|
|
2235
|
+
slots.URL_data = Slot(
|
|
2236
|
+
uri=PID4CAT_MODEL.data,
|
|
2237
|
+
name="URL_data",
|
|
2238
|
+
curie=PID4CAT_MODEL.curie("data"),
|
|
2239
|
+
model_uri=PID4CAT_MODEL.URL_data,
|
|
2240
|
+
domain=URL,
|
|
2241
|
+
range=Union[dict, "HdlDataUrl"],
|
|
2242
|
+
)
|
|
2243
|
+
|
|
2244
|
+
slots.HdlDataUrl_format = Slot(
|
|
2245
|
+
uri=PID4CAT_MODEL.format,
|
|
2246
|
+
name="HdlDataUrl_format",
|
|
2247
|
+
curie=PID4CAT_MODEL.curie("format"),
|
|
2248
|
+
model_uri=PID4CAT_MODEL.HdlDataUrl_format,
|
|
2249
|
+
domain=HdlDataUrl,
|
|
2250
|
+
range=Optional[str],
|
|
2251
|
+
)
|
|
2252
|
+
|
|
2253
|
+
slots.HdlDataUrl_value = Slot(
|
|
2254
|
+
uri=PID4CAT_MODEL.value,
|
|
2255
|
+
name="HdlDataUrl_value",
|
|
2256
|
+
curie=PID4CAT_MODEL.curie("value"),
|
|
2257
|
+
model_uri=PID4CAT_MODEL.HdlDataUrl_value,
|
|
2258
|
+
domain=HdlDataUrl,
|
|
2259
|
+
range=str,
|
|
2260
|
+
pattern=re.compile(r"^https?:\/\/.*$"),
|
|
2261
|
+
)
|
|
2262
|
+
|
|
2263
|
+
slots.EMAIL_index = Slot(
|
|
2264
|
+
uri=PID4CAT_MODEL.index,
|
|
2265
|
+
name="EMAIL_index",
|
|
2266
|
+
curie=PID4CAT_MODEL.curie("index"),
|
|
2267
|
+
model_uri=PID4CAT_MODEL.EMAIL_index,
|
|
2268
|
+
domain=EMAIL,
|
|
2269
|
+
range=int,
|
|
2270
|
+
)
|
|
2271
|
+
|
|
2272
|
+
slots.EMAIL_data = Slot(
|
|
2273
|
+
uri=PID4CAT_MODEL.data,
|
|
2274
|
+
name="EMAIL_data",
|
|
2275
|
+
curie=PID4CAT_MODEL.curie("data"),
|
|
2276
|
+
model_uri=PID4CAT_MODEL.EMAIL_data,
|
|
2277
|
+
domain=EMAIL,
|
|
2278
|
+
range=Union[dict, "HdlDataContact"],
|
|
2279
|
+
)
|
|
2280
|
+
|
|
2281
|
+
slots.HdlDataContact_format = Slot(
|
|
2282
|
+
uri=PID4CAT_MODEL.format,
|
|
2283
|
+
name="HdlDataContact_format",
|
|
2284
|
+
curie=PID4CAT_MODEL.curie("format"),
|
|
2285
|
+
model_uri=PID4CAT_MODEL.HdlDataContact_format,
|
|
2286
|
+
domain=HdlDataContact,
|
|
2287
|
+
range=Optional[str],
|
|
2288
|
+
)
|
|
2289
|
+
|
|
2290
|
+
slots.HdlDataContact_value = Slot(
|
|
2291
|
+
uri=PID4CAT_MODEL.value,
|
|
2292
|
+
name="HdlDataContact_value",
|
|
2293
|
+
curie=PID4CAT_MODEL.curie("value"),
|
|
2294
|
+
model_uri=PID4CAT_MODEL.HdlDataContact_value,
|
|
2295
|
+
domain=HdlDataContact,
|
|
2296
|
+
range=str,
|
|
2297
|
+
pattern=re.compile(r"^\S+@[\S+\.]+\S+"),
|
|
2298
|
+
)
|
|
2299
|
+
|
|
2300
|
+
slots.STATUS_index = Slot(
|
|
2301
|
+
uri=PID4CAT_MODEL.index,
|
|
2302
|
+
name="STATUS_index",
|
|
2303
|
+
curie=PID4CAT_MODEL.curie("index"),
|
|
2304
|
+
model_uri=PID4CAT_MODEL.STATUS_index,
|
|
2305
|
+
domain=STATUS,
|
|
2306
|
+
range=int,
|
|
2307
|
+
)
|
|
2308
|
+
|
|
2309
|
+
slots.STATUS_data = Slot(
|
|
2310
|
+
uri=PID4CAT_MODEL.data,
|
|
2311
|
+
name="STATUS_data",
|
|
2312
|
+
curie=PID4CAT_MODEL.curie("data"),
|
|
2313
|
+
model_uri=PID4CAT_MODEL.STATUS_data,
|
|
2314
|
+
domain=STATUS,
|
|
2315
|
+
range=Union[dict, "HdlDataStatus"],
|
|
2316
|
+
)
|
|
2317
|
+
|
|
2318
|
+
slots.HdlDataStatus_format = Slot(
|
|
2319
|
+
uri=PID4CAT_MODEL.format,
|
|
2320
|
+
name="HdlDataStatus_format",
|
|
2321
|
+
curie=PID4CAT_MODEL.curie("format"),
|
|
2322
|
+
model_uri=PID4CAT_MODEL.HdlDataStatus_format,
|
|
2323
|
+
domain=HdlDataStatus,
|
|
2324
|
+
range=Optional[str],
|
|
2325
|
+
)
|
|
2326
|
+
|
|
2327
|
+
slots.HdlDataStatus_value = Slot(
|
|
2328
|
+
uri=PID4CAT_MODEL.value,
|
|
2329
|
+
name="HdlDataStatus_value",
|
|
2330
|
+
curie=PID4CAT_MODEL.curie("value"),
|
|
2331
|
+
model_uri=PID4CAT_MODEL.HdlDataStatus_value,
|
|
2332
|
+
domain=HdlDataStatus,
|
|
2333
|
+
range=Union[str, "Pid4CatStatus"],
|
|
2334
|
+
)
|
|
2335
|
+
|
|
2336
|
+
slots.SCHEMA_VER_index = Slot(
|
|
2337
|
+
uri=PID4CAT_MODEL.index,
|
|
2338
|
+
name="SCHEMA_VER_index",
|
|
2339
|
+
curie=PID4CAT_MODEL.curie("index"),
|
|
2340
|
+
model_uri=PID4CAT_MODEL.SCHEMA_VER_index,
|
|
2341
|
+
domain=SCHEMAVER,
|
|
2342
|
+
range=int,
|
|
2343
|
+
)
|
|
2344
|
+
|
|
2345
|
+
slots.SCHEMA_VER_data = Slot(
|
|
2346
|
+
uri=PID4CAT_MODEL.data,
|
|
2347
|
+
name="SCHEMA_VER_data",
|
|
2348
|
+
curie=PID4CAT_MODEL.curie("data"),
|
|
2349
|
+
model_uri=PID4CAT_MODEL.SCHEMA_VER_data,
|
|
2350
|
+
domain=SCHEMAVER,
|
|
2351
|
+
range=Union[dict, "HdlDataSchemaVer"],
|
|
2352
|
+
)
|
|
2353
|
+
|
|
2354
|
+
slots.HdlDataSchemaVer_format = Slot(
|
|
2355
|
+
uri=PID4CAT_MODEL.format,
|
|
2356
|
+
name="HdlDataSchemaVer_format",
|
|
2357
|
+
curie=PID4CAT_MODEL.curie("format"),
|
|
2358
|
+
model_uri=PID4CAT_MODEL.HdlDataSchemaVer_format,
|
|
2359
|
+
domain=HdlDataSchemaVer,
|
|
2360
|
+
range=Optional[str],
|
|
2361
|
+
)
|
|
2362
|
+
|
|
2363
|
+
slots.HdlDataSchemaVer_value = Slot(
|
|
2364
|
+
uri=PID4CAT_MODEL.value,
|
|
2365
|
+
name="HdlDataSchemaVer_value",
|
|
2366
|
+
curie=PID4CAT_MODEL.curie("value"),
|
|
2367
|
+
model_uri=PID4CAT_MODEL.HdlDataSchemaVer_value,
|
|
2368
|
+
domain=HdlDataSchemaVer,
|
|
2369
|
+
range=str,
|
|
2370
|
+
pattern=re.compile(r"^v\d+\.\d+\.\d+$"),
|
|
2371
|
+
)
|
|
2372
|
+
|
|
2373
|
+
slots.METADATA_LICENSE_index = Slot(
|
|
2374
|
+
uri=PID4CAT_MODEL.index,
|
|
2375
|
+
name="METADATA_LICENSE_index",
|
|
2376
|
+
curie=PID4CAT_MODEL.curie("index"),
|
|
2377
|
+
model_uri=PID4CAT_MODEL.METADATA_LICENSE_index,
|
|
2378
|
+
domain=METADATALICENSE,
|
|
2379
|
+
range=int,
|
|
2380
|
+
)
|
|
2381
|
+
|
|
2382
|
+
slots.METADATA_LICENSE_data = Slot(
|
|
2383
|
+
uri=PID4CAT_MODEL.data,
|
|
2384
|
+
name="METADATA_LICENSE_data",
|
|
2385
|
+
curie=PID4CAT_MODEL.curie("data"),
|
|
2386
|
+
model_uri=PID4CAT_MODEL.METADATA_LICENSE_data,
|
|
2387
|
+
domain=METADATALICENSE,
|
|
2388
|
+
range=Union[dict, "HdlDataLicense"],
|
|
2389
|
+
)
|
|
2390
|
+
|
|
2391
|
+
slots.HdlDataLicense_format = Slot(
|
|
2392
|
+
uri=PID4CAT_MODEL.format,
|
|
2393
|
+
name="HdlDataLicense_format",
|
|
2394
|
+
curie=PID4CAT_MODEL.curie("format"),
|
|
2395
|
+
model_uri=PID4CAT_MODEL.HdlDataLicense_format,
|
|
2396
|
+
domain=HdlDataLicense,
|
|
2397
|
+
range=Optional[str],
|
|
2398
|
+
)
|
|
2399
|
+
|
|
2400
|
+
slots.HdlDataLicense_value = Slot(
|
|
2401
|
+
uri=PID4CAT_MODEL.value,
|
|
2402
|
+
name="HdlDataLicense_value",
|
|
2403
|
+
curie=PID4CAT_MODEL.curie("value"),
|
|
2404
|
+
model_uri=PID4CAT_MODEL.HdlDataLicense_value,
|
|
2405
|
+
domain=HdlDataLicense,
|
|
2406
|
+
range=str,
|
|
2407
|
+
)
|
|
2408
|
+
|
|
2409
|
+
slots.RESOURCE_index = Slot(
|
|
2410
|
+
uri=PID4CAT_MODEL.index,
|
|
2411
|
+
name="RESOURCE_index",
|
|
2412
|
+
curie=PID4CAT_MODEL.curie("index"),
|
|
2413
|
+
model_uri=PID4CAT_MODEL.RESOURCE_index,
|
|
2414
|
+
domain=RESOURCE,
|
|
2415
|
+
range=int,
|
|
2416
|
+
)
|
|
2417
|
+
|
|
2418
|
+
slots.RESOURCE_data = Slot(
|
|
2419
|
+
uri=PID4CAT_MODEL.data,
|
|
2420
|
+
name="RESOURCE_data",
|
|
2421
|
+
curie=PID4CAT_MODEL.curie("data"),
|
|
2422
|
+
model_uri=PID4CAT_MODEL.RESOURCE_data,
|
|
2423
|
+
domain=RESOURCE,
|
|
2424
|
+
range=Union[dict, "HdlDataResourceInfo"],
|
|
2425
|
+
)
|
|
2426
|
+
|
|
2427
|
+
slots.HdlDataResourceInfo_format = Slot(
|
|
2428
|
+
uri=PID4CAT_MODEL.format,
|
|
2429
|
+
name="HdlDataResourceInfo_format",
|
|
2430
|
+
curie=PID4CAT_MODEL.curie("format"),
|
|
2431
|
+
model_uri=PID4CAT_MODEL.HdlDataResourceInfo_format,
|
|
2432
|
+
domain=HdlDataResourceInfo,
|
|
2433
|
+
range=Optional[str],
|
|
2434
|
+
)
|
|
2435
|
+
|
|
2436
|
+
slots.HdlDataResourceInfo_value = Slot(
|
|
2437
|
+
uri=PID4CAT_MODEL.value,
|
|
2438
|
+
name="HdlDataResourceInfo_value",
|
|
2439
|
+
curie=PID4CAT_MODEL.curie("value"),
|
|
2440
|
+
model_uri=PID4CAT_MODEL.HdlDataResourceInfo_value,
|
|
2441
|
+
domain=HdlDataResourceInfo,
|
|
2442
|
+
range=Union[dict, "ResourceInfo"],
|
|
2443
|
+
)
|
|
2444
|
+
|
|
2445
|
+
slots.RELATED_index = Slot(
|
|
2446
|
+
uri=PID4CAT_MODEL.index,
|
|
2447
|
+
name="RELATED_index",
|
|
2448
|
+
curie=PID4CAT_MODEL.curie("index"),
|
|
2449
|
+
model_uri=PID4CAT_MODEL.RELATED_index,
|
|
2450
|
+
domain=RELATED,
|
|
2451
|
+
range=int,
|
|
2452
|
+
)
|
|
2453
|
+
|
|
2454
|
+
slots.RELATED_data = Slot(
|
|
2455
|
+
uri=PID4CAT_MODEL.data,
|
|
2456
|
+
name="RELATED_data",
|
|
2457
|
+
curie=PID4CAT_MODEL.curie("data"),
|
|
2458
|
+
model_uri=PID4CAT_MODEL.RELATED_data,
|
|
2459
|
+
domain=RELATED,
|
|
2460
|
+
range=Union[dict, "HdlDataRelated"],
|
|
2461
|
+
)
|
|
2462
|
+
|
|
2463
|
+
slots.HdlDataRelated_format = Slot(
|
|
2464
|
+
uri=PID4CAT_MODEL.format,
|
|
2465
|
+
name="HdlDataRelated_format",
|
|
2466
|
+
curie=PID4CAT_MODEL.curie("format"),
|
|
2467
|
+
model_uri=PID4CAT_MODEL.HdlDataRelated_format,
|
|
2468
|
+
domain=HdlDataRelated,
|
|
2469
|
+
range=Optional[str],
|
|
2470
|
+
)
|
|
2471
|
+
|
|
2472
|
+
slots.HdlDataRelated_value = Slot(
|
|
2473
|
+
uri=PID4CAT_MODEL.value,
|
|
2474
|
+
name="HdlDataRelated_value",
|
|
2475
|
+
curie=PID4CAT_MODEL.curie("value"),
|
|
2476
|
+
model_uri=PID4CAT_MODEL.HdlDataRelated_value,
|
|
2477
|
+
domain=HdlDataRelated,
|
|
2478
|
+
range=Optional[
|
|
2479
|
+
Union[Union[dict, "Pid4CatRelation"], List[Union[dict, "Pid4CatRelation"]]]
|
|
2480
|
+
],
|
|
2481
|
+
)
|
|
2482
|
+
|
|
2483
|
+
slots.CHANGES_index = Slot(
|
|
2484
|
+
uri=PID4CAT_MODEL.index,
|
|
2485
|
+
name="CHANGES_index",
|
|
2486
|
+
curie=PID4CAT_MODEL.curie("index"),
|
|
2487
|
+
model_uri=PID4CAT_MODEL.CHANGES_index,
|
|
2488
|
+
domain=CHANGES,
|
|
2489
|
+
range=int,
|
|
2490
|
+
)
|
|
2491
|
+
|
|
2492
|
+
slots.CHANGES_data = Slot(
|
|
2493
|
+
uri=PID4CAT_MODEL.data,
|
|
2494
|
+
name="CHANGES_data",
|
|
2495
|
+
curie=PID4CAT_MODEL.curie("data"),
|
|
2496
|
+
model_uri=PID4CAT_MODEL.CHANGES_data,
|
|
2497
|
+
domain=CHANGES,
|
|
2498
|
+
range=Union[dict, "HdlDataLog"],
|
|
2499
|
+
)
|
|
2500
|
+
|
|
2501
|
+
slots.HdlDataLog_format = Slot(
|
|
2502
|
+
uri=PID4CAT_MODEL.format,
|
|
2503
|
+
name="HdlDataLog_format",
|
|
2504
|
+
curie=PID4CAT_MODEL.curie("format"),
|
|
2505
|
+
model_uri=PID4CAT_MODEL.HdlDataLog_format,
|
|
2506
|
+
domain=HdlDataLog,
|
|
2507
|
+
range=Optional[str],
|
|
2508
|
+
)
|
|
2509
|
+
|
|
2510
|
+
slots.HdlDataLog_value = Slot(
|
|
2511
|
+
uri=PID4CAT_MODEL.value,
|
|
2512
|
+
name="HdlDataLog_value",
|
|
2513
|
+
curie=PID4CAT_MODEL.curie("value"),
|
|
2514
|
+
model_uri=PID4CAT_MODEL.HdlDataLog_value,
|
|
2515
|
+
domain=HdlDataLog,
|
|
2516
|
+
range=Union[Union[dict, "LogRecord"], List[Union[dict, "LogRecord"]]],
|
|
2517
|
+
)
|
|
2518
|
+
|
|
2519
|
+
slots.ResourceInfo_resource_category = Slot(
|
|
2520
|
+
uri=PID4CAT_MODEL.resource_category,
|
|
2521
|
+
name="ResourceInfo_resource_category",
|
|
2522
|
+
curie=PID4CAT_MODEL.curie("resource_category"),
|
|
2523
|
+
model_uri=PID4CAT_MODEL.ResourceInfo_resource_category,
|
|
2524
|
+
domain=ResourceInfo,
|
|
2525
|
+
range=Union[str, "ResourceCategory"],
|
|
2526
|
+
)
|
|
2527
|
+
|
|
2528
|
+
slots.ResourceInfo_representation_variants = Slot(
|
|
2529
|
+
uri=PID4CAT_MODEL.representation_variants,
|
|
2530
|
+
name="ResourceInfo_representation_variants",
|
|
2531
|
+
curie=PID4CAT_MODEL.curie("representation_variants"),
|
|
2532
|
+
model_uri=PID4CAT_MODEL.ResourceInfo_representation_variants,
|
|
2533
|
+
domain=ResourceInfo,
|
|
2534
|
+
range=Union[
|
|
2535
|
+
Union[dict, "RepresentationVariant"], List[Union[dict, "RepresentationVariant"]]
|
|
2536
|
+
],
|
|
2537
|
+
)
|
|
2538
|
+
|
|
2539
|
+
slots.LogRecord_datetime_log = Slot(
|
|
2540
|
+
uri=PID4CAT_MODEL.datetime_log,
|
|
2541
|
+
name="LogRecord_datetime_log",
|
|
2542
|
+
curie=PID4CAT_MODEL.curie("datetime_log"),
|
|
2543
|
+
model_uri=PID4CAT_MODEL.LogRecord_datetime_log,
|
|
2544
|
+
domain=LogRecord,
|
|
2545
|
+
range=Union[str, XSDDateTime],
|
|
2546
|
+
)
|
|
2547
|
+
|
|
2548
|
+
slots.LogRecord_has_agent = Slot(
|
|
2549
|
+
uri=PID4CAT_MODEL.has_agent,
|
|
2550
|
+
name="LogRecord_has_agent",
|
|
2551
|
+
curie=PID4CAT_MODEL.curie("has_agent"),
|
|
2552
|
+
model_uri=PID4CAT_MODEL.LogRecord_has_agent,
|
|
2553
|
+
domain=LogRecord,
|
|
2554
|
+
range=Union[dict, "Agent"],
|
|
2555
|
+
)
|
|
2556
|
+
|
|
2557
|
+
slots.LogRecord_changed_field = Slot(
|
|
2558
|
+
uri=PID4CAT_MODEL.changed_field,
|
|
2559
|
+
name="LogRecord_changed_field",
|
|
2560
|
+
curie=PID4CAT_MODEL.curie("changed_field"),
|
|
2561
|
+
model_uri=PID4CAT_MODEL.LogRecord_changed_field,
|
|
2562
|
+
domain=LogRecord,
|
|
2563
|
+
range=Union[str, "ChangeLogField"],
|
|
2564
|
+
)
|
|
2565
|
+
|
|
2566
|
+
slots.LogRecord_description = Slot(
|
|
2567
|
+
uri=PID4CAT_MODEL.description,
|
|
2568
|
+
name="LogRecord_description",
|
|
2569
|
+
curie=PID4CAT_MODEL.curie("description"),
|
|
2570
|
+
model_uri=PID4CAT_MODEL.LogRecord_description,
|
|
2571
|
+
domain=LogRecord,
|
|
2572
|
+
range=Optional[str],
|
|
2573
|
+
)
|
|
2574
|
+
|
|
2575
|
+
slots.Agent_name = Slot(
|
|
2576
|
+
uri=PID4CAT_MODEL.name,
|
|
2577
|
+
name="Agent_name",
|
|
2578
|
+
curie=PID4CAT_MODEL.curie("name"),
|
|
2579
|
+
model_uri=PID4CAT_MODEL.Agent_name,
|
|
2580
|
+
domain=Agent,
|
|
2581
|
+
range=str,
|
|
2582
|
+
)
|
|
2583
|
+
|
|
2584
|
+
slots.Agent_email_address = Slot(
|
|
2585
|
+
uri=PID4CAT_MODEL.email_address,
|
|
2586
|
+
name="Agent_email_address",
|
|
2587
|
+
curie=PID4CAT_MODEL.curie("email_address"),
|
|
2588
|
+
model_uri=PID4CAT_MODEL.Agent_email_address,
|
|
2589
|
+
domain=Agent,
|
|
2590
|
+
range=str,
|
|
2591
|
+
pattern=re.compile(r"^\S+@[\S+\.]+\S+"),
|
|
2592
|
+
)
|
|
2593
|
+
|
|
2594
|
+
slots.Agent_orcid = Slot(
|
|
2595
|
+
uri=PID4CAT_MODEL.orcid,
|
|
2596
|
+
name="Agent_orcid",
|
|
2597
|
+
curie=PID4CAT_MODEL.curie("orcid"),
|
|
2598
|
+
model_uri=PID4CAT_MODEL.Agent_orcid,
|
|
2599
|
+
domain=Agent,
|
|
2600
|
+
range=Optional[str],
|
|
2601
|
+
pattern=re.compile(r"^\d{4}-\d{4}-\d{4}-\d{3}[0-9X]$"),
|
|
2602
|
+
)
|
|
2603
|
+
|
|
2604
|
+
slots.Agent_affiliation_ror = Slot(
|
|
2605
|
+
uri=PID4CAT_MODEL.affiliation_ror,
|
|
2606
|
+
name="Agent_affiliation_ror",
|
|
2607
|
+
curie=PID4CAT_MODEL.curie("affiliation_ror"),
|
|
2608
|
+
model_uri=PID4CAT_MODEL.Agent_affiliation_ror,
|
|
2609
|
+
domain=Agent,
|
|
2610
|
+
range=Optional[Union[str, URI]],
|
|
2611
|
+
pattern=re.compile(r"^https:\/\/ror\.org\/0[a-hj-km-np-tv-z|0-9]{6}[0-9]{2}$"),
|
|
2612
|
+
)
|
|
2613
|
+
|
|
2614
|
+
slots.Agent_role = Slot(
|
|
2615
|
+
uri=PID4CAT_MODEL.role,
|
|
2616
|
+
name="Agent_role",
|
|
2617
|
+
curie=PID4CAT_MODEL.curie("role"),
|
|
2618
|
+
model_uri=PID4CAT_MODEL.Agent_role,
|
|
2619
|
+
domain=Agent,
|
|
2620
|
+
range=Union[str, "Pid4CatAgentRole"],
|
|
2621
|
+
)
|
|
2622
|
+
|
|
2623
|
+
slots.RepresentationVariant_media_type = Slot(
|
|
2624
|
+
uri=PID4CAT_MODEL.media_type,
|
|
2625
|
+
name="RepresentationVariant_media_type",
|
|
2626
|
+
curie=PID4CAT_MODEL.curie("media_type"),
|
|
2627
|
+
model_uri=PID4CAT_MODEL.RepresentationVariant_media_type,
|
|
2628
|
+
domain=RepresentationVariant,
|
|
2629
|
+
range=Optional[Union[str, "MediaTypesEnum"]],
|
|
2630
|
+
)
|
|
2631
|
+
|
|
2632
|
+
slots.PurlIdentifier_resolving_url = Slot(
|
|
2633
|
+
uri=PID4CAT_MODEL.resolving_url,
|
|
2634
|
+
name="PurlIdentifier_resolving_url",
|
|
2635
|
+
curie=PID4CAT_MODEL.curie("resolving_url"),
|
|
2636
|
+
model_uri=PID4CAT_MODEL.PurlIdentifier_resolving_url,
|
|
2637
|
+
domain=PurlIdentifier,
|
|
2638
|
+
range=Union[str, URI],
|
|
2639
|
+
pattern=re.compile(r"^https:\/\/(purl|pida|w3id)\.org\/.*$"),
|
|
2640
|
+
)
|
|
2641
|
+
|
|
2642
|
+
slots.DoiIdentifier_identifier = Slot(
|
|
2643
|
+
uri=PID4CAT_MODEL.identifier,
|
|
2644
|
+
name="DoiIdentifier_identifier",
|
|
2645
|
+
curie=PID4CAT_MODEL.curie("identifier"),
|
|
2646
|
+
model_uri=PID4CAT_MODEL.DoiIdentifier_identifier,
|
|
2647
|
+
domain=DoiIdentifier,
|
|
2648
|
+
range=Optional[str],
|
|
2649
|
+
pattern=re.compile(r"^10\.\d{4,}\/.*$"),
|
|
2650
|
+
)
|
|
2651
|
+
|
|
2652
|
+
slots.DoiIdentifier_resolving_url = Slot(
|
|
2653
|
+
uri=PID4CAT_MODEL.resolving_url,
|
|
2654
|
+
name="DoiIdentifier_resolving_url",
|
|
2655
|
+
curie=PID4CAT_MODEL.curie("resolving_url"),
|
|
2656
|
+
model_uri=PID4CAT_MODEL.DoiIdentifier_resolving_url,
|
|
2657
|
+
domain=DoiIdentifier,
|
|
2658
|
+
range=Union[str, URI],
|
|
2659
|
+
pattern=re.compile(r"^https:\/\/doi\.org\/10.*$"),
|
|
2660
|
+
)
|
|
2661
|
+
|
|
2662
|
+
slots.HandleIdentifier_identifier = Slot(
|
|
2663
|
+
uri=PID4CAT_MODEL.identifier,
|
|
2664
|
+
name="HandleIdentifier_identifier",
|
|
2665
|
+
curie=PID4CAT_MODEL.curie("identifier"),
|
|
2666
|
+
model_uri=PID4CAT_MODEL.HandleIdentifier_identifier,
|
|
2667
|
+
domain=HandleIdentifier,
|
|
2668
|
+
range=Optional[str],
|
|
2669
|
+
pattern=re.compile(r"^\d{2}\.T?\d{4,}\/.*$"),
|
|
2670
|
+
)
|
|
2671
|
+
|
|
2672
|
+
slots.HandleIdentifier_resolving_url = Slot(
|
|
2673
|
+
uri=PID4CAT_MODEL.resolving_url,
|
|
2674
|
+
name="HandleIdentifier_resolving_url",
|
|
2675
|
+
curie=PID4CAT_MODEL.curie("resolving_url"),
|
|
2676
|
+
model_uri=PID4CAT_MODEL.HandleIdentifier_resolving_url,
|
|
2677
|
+
domain=HandleIdentifier,
|
|
2678
|
+
range=Union[str, URI],
|
|
2679
|
+
pattern=re.compile(r"^https:\/\/hdl\.handle\.net\/\d{2}\.T?\d{4,}\/.*$"),
|
|
2680
|
+
)
|
|
2681
|
+
|
|
2682
|
+
slots.ArkIdentifier_identifier = Slot(
|
|
2683
|
+
uri=PID4CAT_MODEL.identifier,
|
|
2684
|
+
name="ArkIdentifier_identifier",
|
|
2685
|
+
curie=PID4CAT_MODEL.curie("identifier"),
|
|
2686
|
+
model_uri=PID4CAT_MODEL.ArkIdentifier_identifier,
|
|
2687
|
+
domain=ArkIdentifier,
|
|
2688
|
+
range=Optional[str],
|
|
2689
|
+
pattern=re.compile(r"^ark:\/\d{5}/.*$"),
|
|
2690
|
+
)
|
|
2691
|
+
|
|
2692
|
+
slots.ArkIdentifier_resolving_url = Slot(
|
|
2693
|
+
uri=PID4CAT_MODEL.resolving_url,
|
|
2694
|
+
name="ArkIdentifier_resolving_url",
|
|
2695
|
+
curie=PID4CAT_MODEL.curie("resolving_url"),
|
|
2696
|
+
model_uri=PID4CAT_MODEL.ArkIdentifier_resolving_url,
|
|
2697
|
+
domain=ArkIdentifier,
|
|
2698
|
+
range=Union[str, URI],
|
|
2699
|
+
pattern=re.compile(r"^https?:\/\/.*\/ark:\/\d{5}/.*$"),
|
|
2700
|
+
)
|
|
2701
|
+
|
|
2702
|
+
slots.UrnIdentifier_identifier = Slot(
|
|
2703
|
+
uri=PID4CAT_MODEL.identifier,
|
|
2704
|
+
name="UrnIdentifier_identifier",
|
|
2705
|
+
curie=PID4CAT_MODEL.curie("identifier"),
|
|
2706
|
+
model_uri=PID4CAT_MODEL.UrnIdentifier_identifier,
|
|
2707
|
+
domain=UrnIdentifier,
|
|
2708
|
+
range=str,
|
|
2709
|
+
pattern=re.compile(r"^urn:[a-zA-Z0-9][a-zA-Z0-9-]{0,31}:[^\s]*$"),
|
|
2710
|
+
)
|
|
2711
|
+
|
|
2712
|
+
slots.GtinIdentifier_identifier = Slot(
|
|
2713
|
+
uri=PID4CAT_MODEL.identifier,
|
|
2714
|
+
name="GtinIdentifier_identifier",
|
|
2715
|
+
curie=PID4CAT_MODEL.curie("identifier"),
|
|
2716
|
+
model_uri=PID4CAT_MODEL.GtinIdentifier_identifier,
|
|
2717
|
+
domain=GtinIdentifier,
|
|
2718
|
+
range=str,
|
|
2719
|
+
pattern=re.compile(r"^\d{13}$"),
|
|
2720
|
+
)
|
|
2721
|
+
|
|
2722
|
+
slots.ExampleIdentifier_identifier = Slot(
|
|
2723
|
+
uri=PID4CAT_MODEL.identifier,
|
|
2724
|
+
name="ExampleIdentifier_identifier",
|
|
2725
|
+
curie=PID4CAT_MODEL.curie("identifier"),
|
|
2726
|
+
model_uri=PID4CAT_MODEL.ExampleIdentifier_identifier,
|
|
2727
|
+
domain=ExampleIdentifier,
|
|
2728
|
+
range=Optional[str],
|
|
2729
|
+
pattern=re.compile(r"^ex:.*$"),
|
|
2730
|
+
)
|
|
2731
|
+
|
|
2732
|
+
slots.ExampleIdentifier_resolving_url = Slot(
|
|
2733
|
+
uri=PID4CAT_MODEL.resolving_url,
|
|
2734
|
+
name="ExampleIdentifier_resolving_url",
|
|
2735
|
+
curie=PID4CAT_MODEL.curie("resolving_url"),
|
|
2736
|
+
model_uri=PID4CAT_MODEL.ExampleIdentifier_resolving_url,
|
|
2737
|
+
domain=ExampleIdentifier,
|
|
2738
|
+
range=Optional[Union[str, URI]],
|
|
2739
|
+
pattern=re.compile(r"^https?:\/\/(.+\.)?example.(org|com)\/.*$"),
|
|
2740
|
+
)
|
|
2741
|
+
|
|
2742
|
+
slots.Pid4CatRecord_landing_page_url = Slot(
|
|
2743
|
+
uri=PID4CAT_MODEL.landing_page_url,
|
|
2744
|
+
name="Pid4CatRecord_landing_page_url",
|
|
2745
|
+
curie=PID4CAT_MODEL.curie("landing_page_url"),
|
|
2746
|
+
model_uri=PID4CAT_MODEL.Pid4CatRecord_landing_page_url,
|
|
2747
|
+
domain=Pid4CatRecord,
|
|
2748
|
+
range=str,
|
|
2749
|
+
pattern=re.compile(r"^https?:\/\/.*$"),
|
|
2750
|
+
)
|
|
2751
|
+
|
|
2752
|
+
slots.Pid4CatRecord_status = Slot(
|
|
2753
|
+
uri=PID4CAT_MODEL.status,
|
|
2754
|
+
name="Pid4CatRecord_status",
|
|
2755
|
+
curie=PID4CAT_MODEL.curie("status"),
|
|
2756
|
+
model_uri=PID4CAT_MODEL.Pid4CatRecord_status,
|
|
2757
|
+
domain=Pid4CatRecord,
|
|
2758
|
+
range=Union[str, "Pid4CatStatus"],
|
|
2759
|
+
)
|
|
2760
|
+
|
|
2761
|
+
slots.Pid4CatRecord_schema_version = Slot(
|
|
2762
|
+
uri=PID4CAT_MODEL.schema_version,
|
|
2763
|
+
name="Pid4CatRecord_schema_version",
|
|
2764
|
+
curie=PID4CAT_MODEL.curie("schema_version"),
|
|
2765
|
+
model_uri=PID4CAT_MODEL.Pid4CatRecord_schema_version,
|
|
2766
|
+
domain=Pid4CatRecord,
|
|
2767
|
+
range=str,
|
|
2768
|
+
)
|
|
2769
|
+
|
|
2770
|
+
slots.Pid4CatRecord_metadata_license = Slot(
|
|
2771
|
+
uri=PID4CAT_MODEL.metadata_license,
|
|
2772
|
+
name="Pid4CatRecord_metadata_license",
|
|
2773
|
+
curie=PID4CAT_MODEL.curie("metadata_license"),
|
|
2774
|
+
model_uri=PID4CAT_MODEL.Pid4CatRecord_metadata_license,
|
|
2775
|
+
domain=Pid4CatRecord,
|
|
2776
|
+
range=str,
|
|
2777
|
+
)
|
|
2778
|
+
|
|
2779
|
+
slots.Pid4CatRecord_curation_contact = Slot(
|
|
2780
|
+
uri=PID4CAT_MODEL.curation_contact,
|
|
2781
|
+
name="Pid4CatRecord_curation_contact",
|
|
2782
|
+
curie=PID4CAT_MODEL.curie("curation_contact"),
|
|
2783
|
+
model_uri=PID4CAT_MODEL.Pid4CatRecord_curation_contact,
|
|
2784
|
+
domain=Pid4CatRecord,
|
|
2785
|
+
range=str,
|
|
2786
|
+
pattern=re.compile(r"^\S+@[\S+\.]+\S+"),
|
|
2787
|
+
)
|
|
2788
|
+
|
|
2789
|
+
slots.Pid4CatRecord_resource_info = Slot(
|
|
2790
|
+
uri=PID4CAT_MODEL.resource_info,
|
|
2791
|
+
name="Pid4CatRecord_resource_info",
|
|
2792
|
+
curie=PID4CAT_MODEL.curie("resource_info"),
|
|
2793
|
+
model_uri=PID4CAT_MODEL.Pid4CatRecord_resource_info,
|
|
2794
|
+
domain=Pid4CatRecord,
|
|
2795
|
+
range=Union[dict, ResourceInfo],
|
|
2796
|
+
)
|
|
2797
|
+
|
|
2798
|
+
slots.Pid4CatRecord_related_identifiers = Slot(
|
|
2799
|
+
uri=PID4CAT_MODEL.related_identifiers,
|
|
2800
|
+
name="Pid4CatRecord_related_identifiers",
|
|
2801
|
+
curie=PID4CAT_MODEL.curie("related_identifiers"),
|
|
2802
|
+
model_uri=PID4CAT_MODEL.Pid4CatRecord_related_identifiers,
|
|
2803
|
+
domain=Pid4CatRecord,
|
|
2804
|
+
range=Optional[
|
|
2805
|
+
Union[Union[dict, Pid4CatRelation], List[Union[dict, Pid4CatRelation]]]
|
|
2806
|
+
],
|
|
2807
|
+
)
|
|
2808
|
+
|
|
2809
|
+
slots.Pid4CatRecord_change_log = Slot(
|
|
2810
|
+
uri=PID4CAT_MODEL.change_log,
|
|
2811
|
+
name="Pid4CatRecord_change_log",
|
|
2812
|
+
curie=PID4CAT_MODEL.curie("change_log"),
|
|
2813
|
+
model_uri=PID4CAT_MODEL.Pid4CatRecord_change_log,
|
|
2814
|
+
domain=Pid4CatRecord,
|
|
2815
|
+
range=Union[Union[dict, LogRecord], List[Union[dict, LogRecord]]],
|
|
2816
|
+
)
|