-
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathschema.json
More file actions
161 lines (161 loc) · 4.32 KB
/
schema.json
File metadata and controls
161 lines (161 loc) · 4.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://github.com/ecosyste-ms/oss-taxonomy/schema.json",
"title": "OSS Taxonomy Schema",
"description": "Schema for the OSS Taxonomy combined JSON file, defining facets and terms for classifying open source software",
"type": "object",
"properties": {
"domain": {
"type": "array",
"description": "Terms describing the industry or field the software is designed for",
"items": {
"$ref": "#/definitions/term"
}
},
"role": {
"type": "array",
"description": "Terms describing the function or responsibility the software has in a system or workflow",
"items": {
"$ref": "#/definitions/term"
}
},
"technology": {
"type": "array",
"description": "Terms describing specific technologies, languages, or frameworks used or supported by the software",
"items": {
"$ref": "#/definitions/term"
}
},
"audience": {
"type": "array",
"description": "Terms defining who the software is for — the primary users or target audience",
"items": {
"$ref": "#/definitions/term"
}
},
"layer": {
"type": "array",
"description": "Terms describing where in the software stack the project sits or operates",
"items": {
"$ref": "#/definitions/term"
}
},
"function": {
"type": "array",
"description": "Terms describing what the software does — its primary capabilities or use cases",
"items": {
"$ref": "#/definitions/term"
}
}
},
"required": [
"domain",
"role",
"technology",
"audience",
"layer",
"function"
],
"additionalProperties": false,
"definitions": {
"term": {
"type": "object",
"description": "A single taxonomy term within a facet",
"properties": {
"name": {
"type": "string",
"description": "Unique identifier for the term (kebab-case)",
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
"minLength": 1
},
"description": {
"type": "string",
"description": "Human-readable explanation of the term",
"minLength": 1
},
"examples": {
"type": "array",
"description": "Well-known software projects that fit this term",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
"related": {
"type": "array",
"description": "Other taxonomy terms that are conceptually connected",
"items": {
"type": "string",
"minLength": 1
}
},
"aliases": {
"type": "array",
"description": "Synonyms or common alternative names for this term",
"items": {
"type": "string",
"minLength": 1
}
},
"ecosystems": {
"type": "array",
"description": "Related package managers or software ecosystems (from packages.ecosyste.ms)",
"items": {
"type": "string",
"enum": [
"npm",
"go",
"docker",
"nuget",
"pypi",
"maven",
"packagist",
"cargo",
"rubygems",
"cocoapods",
"pub",
"bower",
"cpan",
"alpine",
"actions",
"cran",
"clojars",
"conda",
"hex",
"hackage",
"julia",
"swiftpm",
"spack",
"homebrew",
"puppet",
"openvsx",
"deno",
"elm",
"racket",
"vcpkg",
"bioconductor",
"carthage",
"postmarketos",
"elpa",
"adelie"
]
}
},
"tags": {
"type": "array",
"description": "Freeform tags for searching, filtering, or visualization",
"items": {
"type": "string",
"minLength": 1
}
}
},
"required": [
"name",
"description"
],
"additionalProperties": false
}
}
}