ISO International Classification for Standards (ICS) codes are used amongst international standards for categorization purposes especially in ISO and IEC standards.
While ISO provides them in a PDF form for public usage, they are not available in machine-readable form.
The contents of this repository aims to provide ICS codes in machine-readable form (YAML/YAML-LD and JSON/JSON-LD).
This repository provides the following editions of the ICS codes:
-
Edition 6 (published in 2005)
-
Edition 7 (published in 2015)
Note
|
IEEE SA uses ICS Edition 6, while ISO and IEC use ICS Edition 7. |
The modelling syntax used is YAML-LD which is based on JSON-LD.
The following files are provided in this repository:
yaml/{edition}/*.yaml
-
YAML-LD files for ICS codes.
json/{edition}/*.json
-
JSON-LD files for ICS codes.
The {edition}
value is:
ed6
-
ICS Edition 6
ed7
-
ICS Edition 7
ICS codes are made up of one to three code sections.
-
The first code section represents the “field” (the “field code”)
-
The second is optional, represents the “group” (the “group code”)
-
The third is optional, represents the “subgroup” (the “subgroup code”)
03.100.30
has field code 03
, group code 100
, and subgroup code 30
.
There are 3 types of ICS codes:
-
Field (top-level)
-
Group (second level)
-
Subgroup (third level)
An ICS code represents a data structure that contains:
-
Edition number (mandatory)
-
Field code (mandatory)
-
Group code (optional)
-
Subgroup code (optional)
-
Description (mandatory)
-
Notes (optional), there can be multiple notes.
Note
|
In an ICS subgroup, the JSON representation provides both the description of the subgroup and of the group. |
Note
|
The JSON-LD context is not yet resolvable. |
'@context': https://isoics.org/ics/ns/subgroup.jsonld
code: 03.100.30
description: Management of human resources
descriptionFull: ...
edition: 7
fieldcode: "03"
groupcode: "100"
notes:
- ...
subgroupcode: "30"
Each ICS note contains:
-
A textual portion
-
One or more links to other ICS codes. The position of the linked code is given within the textual portion
Example without link:
text: Including staff training, staff responsibilities, staff qualifications and certification
{
"text": "Including staff training, staff responsibilities,"
"staff qualifications and certification"
}
Example with link:
ics-code: 25.160.01
text: Welding, brazing and soldering in general, see {ics-code}
{
"text": "Welding, brazing and soldering in general, see {ics-code}",
"ics-code": "25.160.01"
}
This is an example of an ICS entry in this repository.
'@context': https://isoics.org/ics/ns/subgroup.jsonld
code: 03.100.30
description: Management of human resources
descriptionFull: Services. Company organization, management and quality. Administration. Transport. Sociology. Company organization and management. Management systems. Management of human resources.
edition: 7
fieldcode: "03"
groupcode: "100"
notes:
- text: Including staff training, staff responsibilities, staff qualifications and certification
- ics-code: 25.160.01
text: Welding, brazing and soldering in general, see {ics-code}
subgroupcode: "30"
This is an example of an ICS entry in this repository.
{
"@context": "https://isoics.org/ics/ns/subgroup.jsonld",
"code": "03.100.30",
"description": "Management of human resources",
"descriptionFull": "Services. Company organization, management and quality. Administration. Transport. Sociology. Company organization and management. Management systems. Management of human resources.",
"edition": 7,
"fieldcode": "03",
"groupcode": "100",
"notes": [
{
"text": "Including staff training, staff responsibilities, staff qualifications and certification"
},
{
"text": "Welding, brazing and soldering in general, see {ics-code}",
"ics-code": "25.160.01"
}
],
"subgroupcode": "30"
}
Files are directly named using the ICS codes in order to enable machine access for the data related to every single ICS code.
For clarity, the “fullstop” symbol is replaced with an underscore in a filename.
For example,
-
01.json
contains data of ICS code01
(field code01
) -
01_020.json
contains data of ICS code01.020
(field code01
, group code020
) -
01_040_01.json
contains data of ICS code01.040.01
(field code01
, group code040
, subgroup code01
)
The following scripts can be used to generate JSON files from YAML (and vice versa).
To generate JSON-LD files from YAML:
for f in $(find yaml -name '*.yaml' | sort); do yq -P -j '.' $f > ${f//yaml/json}; done
To generate YAML-LD files from JSON:
for f in $(find json -name '*.json' | sort); do yq -P '.' $f > ${f//json/yaml}; done
When adding data to the authoritative YAML files under yaml/{edition}
, we
will need to ensure that the YAML files are normalized and also regenerate the
JSON files.
Some make targets are provided to assist the process.
This target depends on normalize.diff
.
make check-normalize
The data source is the 2015 edition of ISO ICS, which are also available from the ISO “Browse by ICS” interface.
These files are created by using scripts located in
iso-ics-codes-scripts
.
This code list is maintained by Ribose Metanorma.
The code here is available under the terms of the MIT License.
The source data belongs to ISO.