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

2791object.json 6.75 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": [
8
9
        "ieee2791_id",
        "ieee2791_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": {
18
        "ieee2791_id": {
19
            "type": "string",
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
            "examples": [
22
                "https://w3id.org/2791/examples/HCV1a.json"
23
24
25
26
            ]
        },
        "uri": {
            "type": "object",
Charles King's avatar
Charles King committed
27
            "description": "Any of the four Resource Identifers defined at https://json-schema.org/latest/json-schema-validation.html#rfc.section.7.3.5",
28
29
30
31
32
33
34
35
36
37
38
39
40
41
            "additionalProperties": false,
            "required": [
                "uri"
            ],
            "properties": {
                "filename": {
                    "type": "string"
                },
                "uri": {
                    "type": "string",
                    "format": "uri"
                },
                "access_time": {
                    "type": "string",
Charles King's avatar
Charles King committed
42
                    "description": "Time stamp of when the request for this data was submitted",
43
44
                    "format": "date-time"
                },
45
                "sha1_checksum": {
46
                    "type": "string",
Charles King's avatar
Charles King committed
47
                    "description": "output of hash function that produces a message digest",
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
                    "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
65
                        "Charles Darwin"
66
67
68
69
70
71
                    ]
                },
                "affiliation": {
                    "type": "string",
                    "description": "Organization the particular contributor is affiliated with",
                    "examples": [
Charles King's avatar
Charles King committed
72
                        "HMS Beagle"
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
                    ]
                },
                "email": {
                    "type": "string",
                    "description": "electronic means for identification and communication purposes",
                    "examples": [
                        "hadley_king@gwu.edu"
                    ],
                    "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
110
                        "http://orcid.org/0000-0002-1825-0097"
111
112
113
114
115
116
117
118
                    ],
                    "format": "uri"
                }
            }
        }
    },
    "additionalProperties": false,
    "properties": {
Charles King's avatar
Charles King committed
119
        "object_id": {
120
            "$ref": "#/definitions/ieee2791_id",
121
122
            "readOnly": true
        },
Charles King's avatar
Charles King committed
123
        "spec_version": {
124
            "type": "string",
125
            "description": "Version of the IEEE-2791 specification used to define this document",
126
            "examples": [
Charles King's avatar
Charles King committed
127
                "https://w3id.org/2791/"
128
129
130
131
            ],
            "readOnly": true,
            "format": "uri"
        },
Charles King's avatar
Charles King committed
132
        "e-tag": {
133
            "type": "string",
Charles King's avatar
Charles King committed
134
            "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).",
135
136
137
138
139
140
141
142
143
144
145
146
147
            "examples": [
                "5986B05969341343E77A95B4023600FC8FEF48B7E79F355E58B0B404A4F50995"
            ],
            "readOnly": true,
            "pattern": "^([A-Za-z0-9]+)$"
        },
        "provenance_domain": {
            "$ref": "provenance_domain.json"
        },
        "usability_domain": {
            "$ref": "usability_domain.json"
        },
        "extension_domain": {
148
            "type": "array",
Charles King's avatar
Charles King committed
149
            "description": "An optional domain that contains user-defined fields.",
150
151
152
153
154
155
156
157
158
159
160
161
162
163
            "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"
                    }
                }
            }
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
        },
        "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"
        }
    }
181
}