IEEE.org     |     IEEE Xplore Digital Library     |     IEEE Standards     |     IEEE Spectrum     |     More Sites

2791object.json 6.64 KB
Newer Older
Stian Soiland-Reyes's avatar
Stian Soiland-Reyes committed
1
{
2
    "$schema": "http://json-schema.org/draft-07/schema#",
Charles King's avatar
Charles King committed
3
    "$id": "https://w3id.org/2791/2791object.json",
4
    "type": "object",
5
6
    "title": "Base type for all IEEE-2791 Objects",
    "description": "All IEEE-2791 object types must adhear to this type in order to be compliant with IEEE-2791 standard",
7
    "required": [
Charles King's avatar
Charles King committed
8
9
        "object_id",
        "spec_version",
Charles King's avatar
ETag    
Charles King committed
10
        "etag",
11
12
13
14
        "provenance_domain",
        "usability_domain",
        "description_domain",
        "execution_domain",
15
        "io_domain"
16
17
    ],
    "definitions": {
Charles King's avatar
Charles King committed
18
        "object_id": {
19
            "type": "string",
Charles King's avatar
Charles King committed
20
            "description": "A unique identifier that should be applied to each IEEE-2791 Object instance, generated and assigned by a IEEE-2791 database engine. IDs should never be reused"
21
22
23
        },
        "uri": {
            "type": "object",
Charles King's avatar
Charles King committed
24
            "description": "Any of the four Resource Identifers defined at https://json-schema.org/latest/json-schema-validation.html#rfc.section.7.3.5",
25
26
27
28
29
30
31
32
33
34
35
36
37
38
            "additionalProperties": false,
            "required": [
                "uri"
            ],
            "properties": {
                "filename": {
                    "type": "string"
                },
                "uri": {
                    "type": "string",
                    "format": "uri"
                },
                "access_time": {
                    "type": "string",
Charles King's avatar
Charles King committed
39
                    "description": "Time stamp of when the request for this data was submitted",
40
41
                    "format": "date-time"
                },
42
                "sha1_checksum": {
43
                    "type": "string",
Charles King's avatar
Charles King committed
44
                    "description": "output of hash function that produces a message digest",
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
                    "pattern": "[A-Za-z0-9]+"
                }
            }
        }, 
        "contributor": {
            "type": "object",
            "description": "Contributor identifier and type of contribution (determined according to PAV ontology) is required",
            "required": [
                "contribution",
                "name"
            ],
            "additionalProperties": false,
            "properties": {
                "name": {
                    "type": "string",
                    "description": "Name of contributor",
                    "examples": [
Charles King's avatar
Charles King committed
62
                        "Charles Darwin"
63
64
65
66
67
68
                    ]
                },
                "affiliation": {
                    "type": "string",
                    "description": "Organization the particular contributor is affiliated with",
                    "examples": [
Charles King's avatar
Charles King committed
69
                        "HMS Beagle"
70
71
72
73
74
75
                    ]
                },
                "email": {
                    "type": "string",
                    "description": "electronic means for identification and communication purposes",
                    "examples": [
Charles King's avatar
Charles King committed
76
                        "name@example.edu"
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
                    ],
                    "format": "email"
                },
                "contribution": {
                    "type": "array",
                    "description": "type of contribution determined according to PAV ontology",
                    "reference": "https://doi.org/10.1186/2041-1480-4-37",
                    "items": {
                        "type": "string",
                        "enum": [
                            "authoredBy",
                            "contributedBy",
                            "createdAt",
                            "createdBy",
                            "createdWith",
                            "curatedBy",
                            "derivedFrom",
                            "importedBy",
                            "importedFrom",
                            "providedBy",
                            "retrievedBy",
                            "retrievedFrom",
                            "sourceAccessedBy"
                        ]
                    }
                },
                "orcid": {
                    "type": "string",
                    "description": "Field to record author information. ORCID identifiers allow for the author to curate their information after submission. ORCID identifiers must be valid and must have the prefix ‘https://orcid.org/’",
                    "examples": [
Charles King's avatar
Charles King committed
107
                        "http://orcid.org/0000-0002-1825-0097"
108
109
110
111
112
113
114
115
                    ],
                    "format": "uri"
                }
            }
        }
    },
    "additionalProperties": false,
    "properties": {
Charles King's avatar
Charles King committed
116
        "object_id": {
Charles King's avatar
Charles King committed
117
            "$ref": "#/definitions/object_id",
118
119
            "readOnly": true
        },
Charles King's avatar
Charles King committed
120
        "spec_version": {
121
            "type": "string",
122
            "description": "Version of the IEEE-2791 specification used to define this document",
123
            "examples": [
Charles King's avatar
Charles King committed
124
                "https://w3id.org/2791/"
125
126
127
128
            ],
            "readOnly": true,
            "format": "uri"
        },
Charles King's avatar
Charles King committed
129
        "etag": {
130
            "type": "string",
Charles King's avatar
Charles King committed
131
            "description": "See https://tools.ietf.org/html/rfc7232#section-2.1 for full description. It is recommended that the ETag be deleted or updated if the object file is changed (except in cases using weak ETags in which the entirety of the change comprises a simple re-writing of the JSON).",
132
133
134
135
136
137
138
139
140
141
142
143
144
            "examples": [
                "5986B05969341343E77A95B4023600FC8FEF48B7E79F355E58B0B404A4F50995"
            ],
            "readOnly": true,
            "pattern": "^([A-Za-z0-9]+)$"
        },
        "provenance_domain": {
            "$ref": "provenance_domain.json"
        },
        "usability_domain": {
            "$ref": "usability_domain.json"
        },
        "extension_domain": {
145
            "type": "array",
Charles King's avatar
Charles King committed
146
            "description": "An optional domain that contains user-defined fields.",
147
148
149
150
151
152
153
154
155
156
157
158
159
160
            "items":{
                "required":[
                    "extension_schema"
                ],
                "additionalProperties": true,
                "properties": {
                    "extension_schema":{
                        "title": "Extension Schema",
                        "description": "resolving this URI should provide this extension's JSON Schema",
                        "type": "string",
                        "format": "uri"
                    }
                }
            }
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
        },
        "description_domain": {
            "$ref": "description_domain.json"
        },
        "execution_domain": {
            "$ref": "execution_domain.json"
        },
        "parametric_domain": {
            "$ref": "parametric_domain.json"
        },
        "io_domain": {
            "$ref": "io_domain.json"
        },
        "error_domain": {
            "$ref": "error_domain.json"
        }
    }
178
}