Code Monkey home page Code Monkey logo

pubid-iso's Introduction

Metanorma: the standard for standards

Gem Version Build Status Code Climate Pull Requests Commits since latest

Metanorma is dedicated to harmonizing standard documents produced by different standard-setting bodies in a manner that maintains correct semantics while allowing each standard publisher to define appropriate semantic extensions.

Simply put, it allows standards bodies or any other organization to create their own standard or specification document in a best practices manner.

Metanorma is composed of a number of specifications and software implementations. The Metanorma document model is based on the SecureDoc document model.

For more on Metanorma and who uses it, refer to https://www.metanorma.org

Installation on supported platforms

Installing individual components

The Metanorma workflow can be utilized via the metanorma-cli Ruby gem.

gem install metanorma-cli

Usage

Threaded execution

Metanorma has threaded execution, to generate output documents from the same Presentation XML input more quickly. Similar to relaton, the METANORMA_PARALLEL environment variable can be used to override the default number of parallel fetches used.

Origin of name

Meta- is a prefix of Greek origin ("μετα") for “with” “after”. In English, it has ended up meaning "about (its own category)"; e.g. meta-discussion (a discussion about discussion). (For the roundabout way it ended up with that meaning, see https://en.wikipedia.org/wiki/Meta#Etymology.)

Norma is Latin for “rule” and “standard”; hence English norm, but also German Norm "standard".

The Metanorma project is for setting a standard for standard documents created by standards-setting organizations (which is a meta thing to do); hence this name.

Metanorma seeks to embrace all standards documents standards, but not possess any: it can give rise to many "standard" standards, but not limit the extension of any of those standards.

The motto of the project is Aequitate verum, "Truth through equity". Dealing with all standards fairly (aequitate), we seek not an abstract virtue (veritas), but a practical reality on the ground (verum), that can be used by stakeholders of multiple standards.

pubid-iso's People

Contributors

camobap avatar hassanakbar avatar mico avatar ronaldtse avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pubid-iso's Issues

Iteration number should be supported in Amd or Cor

irb(main):026:0> Pubid::Iso::Identifier.new(number: 17301, part: 1, publisher: "ISO", language: "en", year: 2016, amendments: [{number: 1, stage:"WD", 
iteration:2}]).to_s
gems/3.1.0/gems/pubid-core-0.2.2/lib/pubid/core/supplement.rb:6:in `initialize': unknown keyword: :iteration (ArgumentError)                                                                                                                                

The correct output is "ISO 17301-1:2016/WD Amd 1.2"

Handle IWA identifiers (and its draft stages)

We need to handle the IWA draft stages.

AWI IWA 36
AWI IWA 39
AWI IWA 41
AWI IWA 42
CD IWA 37
CD IWA 37-1
CD IWA 37-2
CD IWA 37-3
CD IWA 40
CD IWA 42
ISO/IWA 32:2019(en)
ISO/WD IWA 19
IWA 14-1:2013
IWA 19:2017
IWA 2 N3
IWA 24:2016
IWA 26:2017
IWA 31:2020
IWA 32:2019
IWA 34:2021
IWA 34:2021(en)
IWA 35:2020
IWA 37-1:2022
IWA 37-2:2022
IWA 37-3:2022
IWA 40:2022(en)
IWA 42
IWA 8:2009
NP IWA 30-2
NP IWA 32
NP IWA 33
PRF IWA 36
PRF IWA 37-1
PRF IWA 37-3
PRF IWA 40
PRF IWA 42
WD IWA 19

We need to parse items like:

ISO/IWA 32:2019(en)
ISO/WD IWA 19

But the correct forms are:

IWA 32:2019(en)
WD IWA 19

(Updated list)

"IS" stage identifiers do not allow iterations

We should throw an error when given an iteration number in "IS" stage:

irb(main):025:0> Pubid::Iso::Identifier.new(number: 17301, part: 1, publisher: "ISO", language: "en", year: 2016, stage: "IS", iteration: 2).to_s
=> "ISO/IS 17301-1.2:2016(en)"

The correct output is a raised error.

Handle legacy TS and TR PubIDs

Previously the "CD" stage for "TR" and "TS" is called "PDTR" and "PDTS":

ISO/IEC PDTR 20943-5
ISO/IEC PDTR 23844
ISO/IEC PDTR 24718
ISO/IEC PDTS 19583-24
ISO/IEC PDTS 27035-3
ISO/IEC PDTS 27008:—

Add tests for "AWI Amd"

These are not in the current test suite, even though they are properly parsed.

ISO 11311:2011/AWI Amd 1
ISO 11855-2:2021/AWI Amd 1
ISO 11855-5:2021/AWI Amd 1
ISO 20038:2017/AWI Amd 1
ISO 25862:2019/AWI Amd 1
ISO/IEC 21122-2:2019/AWI Amd 1

Support parsing old ISO Cor/Amd style "Amd. N" and "Cor. N" e.g. `ISO 6709:2008/Cor. 1:2009`

pubid-iso fails to parse this valid identifier: ISO 6709:2008/Cor. 1:2009.

$ relaton fetch 'ISO 6709:2008/Cor. 1:2009'
.../gems/pubid-core-0.2.2/lib/pubid/core/identifier.rb:93:in `rescue in parse': Failed to match sequence (stage:'Fpr'? 'WD/'? (type:GUIDE_PREFIX SPACE)? (stage:STAGE SPACE)? ORIGINATOR (SPACE / '/') (TC_DOCUMENT_BODY / STD_DOCUMENT_BODY / DIR_DOCUMENT_BODY (' + ' joint_document:(ORIGINATOR SPACE DIR_DOCUMENT_BODY))?)) at line 1 char 5. (Pubid::Core::Errors::ParseError)
cause: Failed to match sequence (stage:'Fpr'? 'WD/'? (type:GUIDE_PREFIX SPACE)? (stage:STAGE SPACE)? ORIGINATOR (SPACE / '/') (TC_DOCUMENT_BODY / STD_DOCUMENT_BODY / DIR_DOCUMENT_BODY (' + ' joint_document:(ORIGINATOR SPACE DIR_DOCUMENT_BODY))?)) at line 1 char 5.
`- Expected one of [TC_DOCUMENT_BODY, STD_DOCUMENT_BODY, DIR_DOCUMENT_BODY (' + ' joint_document:(ORIGINATOR SPACE DIR_DOCUMENT_BODY))?] at line 1 char 5.
   |- Failed to match sequence ((tctype:TCTYPE '/'?){0, } SPACE tcnumber:DIGITS ('/' ((sctype:SCTYPE SPACE scnumber:DIGITS '/')? wgtype:WGTYPE SPACE wgnumber:DIGITS / sctype:SCTYPE (SPACE / '/' wgtype:WGTYPE SPACE) scnumber:DIGITS))? SPACE 'N' SPACE? number:DIGITS) at line 1 char 5.
   |  `- Expected " ", but got "6" at line 1 char 5.
   |- Failed to match sequence ((TYPE / stage:STAGE)? SPACE? ((stage:STAGE / TYPE) SPACE)? number:DIGITS ('|' joint_document:('IDF' SPACE DIGITS))? PART? ITERATION? (SPACE? ':' YEAR)? (AMENDMENT CORRIGENDUM? / CORRIGENDUM)? EDITION? LANGUAGE?) at line 1 char 14.
   |  `- Extra input after last repetition at line 1 char 14.
   |     `- Failed to match sequence ('(' language:(([a-z]{1, } ','? / ('E' / 'F' / 'A' / 'R') '/'?){0, }) ')') at line 1 char 14.
   |        `- Expected "(", but got "/" at line 1 char 14.
   `- Failed to match sequence (DIR_DOCUMENT_BODY (' + ' joint_document:(ORIGINATOR SPACE DIR_DOCUMENT_BODY))?) at line 1 char 14.
      `- Extra input after last repetition at line 1 char 14.
         `- Failed to match sequence (' + ' joint_document:(ORIGINATOR SPACE DIR_DOCUMENT_BODY)) at line 1 char 14.
            `- Expected " + ", but got "/Co" at line 1 char 14.

Originally posted by @andrew2net in relaton/relaton-iso#109 (comment)

Generate two types of PubIDs: "Reference number" vs "PubID" (with or without language)

https://www.iso.org/obp/ui#iso:std:iso-iec:14496:-10:dis:ed-8:v1:amd:1:v1:en
https://www.iso.org/obp/ui#iso:std:iso:12164:-6:dis:ed-1:v1:fr
https://www.iso.org/obp/ui#iso:std:iso-iec:27006:ed-3:v1:ar
https://www.iso.org/obp/ui#iso:std:iso:4618:ed-2:v1:ru
https://www.iso.org/obp/ui/#iso:std:iso:14021:ed-1:v1:es

PubID

Document cover:
Screenshot 2022-03-07 at 12 16 23 AM
Screenshot 2022-03-07 at 12 20 40 AM
Screenshot 2022-03-07 at 12 39 34 AM
Screenshot 2022-03-07 at 12 28 09 AM
Screenshot 2022-03-07 at 12 29 54 AM

Page header:
Screenshot 2022-03-07 at 12 16 37 AM
Screenshot 2022-03-07 at 12 20 50 AM
Screenshot 2022-03-07 at 12 39 52 AM
Screenshot 2022-03-07 at 12 28 15 AM
Screenshot 2022-03-07 at 12 29 37 AM

PubID with language code

Screenshot 2022-03-07 at 12 17 36 AM

Screenshot 2022-03-07 at 12 21 14 AM

Screenshot 2022-03-07 at 12 40 05 AM

Screenshot 2022-03-07 at 12 28 22 AM

Screenshot 2022-03-07 at 12 29 45 AM

Note that the language code is a ISO 3166 code (2-chars).

Reference number

Screenshot 2022-03-07 at 12 17 00 AM

Screenshot 2022-03-07 at 12 21 04 AM

Screenshot 2022-03-07 at 12 39 42 AM

Screenshot 2022-03-07 at 12 27 52 AM

Screenshot 2022-03-07 at 12 29 19 AM

Note that the language code is a single character:

  • E for English
  • F for French
  • A for Arabic
  • R for Russian
  • There are Spanish and German translations but they don't seem to use a code. We could use S for Spanish and D for German.

Handle draft Amd and Cor stages

Amendments:

  • FDAmd or FDAM => FDIS Amd
  • {PWI,NP,AWI,WD,CD,PRF} Amd => {stage} Amd
  • DAmd => DIS Amd
  • PDAM => (Proposed Draft Amendment) == CD Amd
  • DAM or FPDAM => (Final Proposed Draft Amendment) == DIS Amd

Corregendum:

  • {PWI,NP,AWI,WD,CD,PRF} Amd => {stage} Amd
  • pDCOR => CD Cor
  • DCOR => DIS Cor
  • FDCor => FDIS Cor

Amd:

ISO 10791-6:2014/PWI Amd 1
ISO 11137-2:2013/FDAmd 1
ISO 11855-1:2021/WD Amd 1
ISO 15002:2008/DAmd 2(fr)
ISO 15002:2008/DAM 2:2020(F)
ISO 15614-1:2017/FDAmd 2
ISO 15874-3:2013/DAM 2
ISO 15874-3:2013/DAM 2:2020(E)
ISO 15874-2:2013/FDAmd 2
ISO 18362:2016/PRF Amd 1
ISO 19110:2005/FDAM 1
ISO 19115:2003/PWI Amd 1
ISO 20138-2:2019/WD Amd 1
ISO 21940-11:2016/PRF Amd 1
ISO 21940-14:2012/PRF Amd 1
ISO 21978:2021/WD Amd 1
ISO 23591:2021/PWI Amd 1
ISO 27608:2010/DAM 1(en)
ISO 30401:2018/PRF Amd 1
ISO 3164:2013/FDAmd 1
ISO 3245:2015/FDAmd 1
ISO 4254-1:2005/FDAM 1:2007
ISO 5149-1:2014/DAM 2:2019(F)
ISO 5149-1:2014/DAmd 2(fr)
ISO 668:2013/DAM 1(en)
ISO 668:2020/FDAmd 1
ISO 7207-2:2011/DAM 2:2019(F)
ISO 8124-3:2020/PWI Amd 1
ISO 8727:1997/DAM 1(en)
ISO 9022-4:2014/WD Amd 1
ISO/IEC 10646:2020/CD Amd 1
ISO/IEC 13818-1:2019/CD Amd 4
ISO/IEC 14496-10:2014/FPDAM 1(en)
ISO/IEC 14496-10:2020/CD Amd 1
ISO/IEC 14496-12/PDAM 4
ISO/IEC 14496-15:2019/DAM 2:2020(E)
ISO/IEC 14496-30:2018/FDAmd 1
ISO/IEC 18013-2:2020/CD Amd 1
ISO/IEC 19566-5:2019/WD Amd 2
ISO/IEC 19788-2:2011/FPDAM 1(en)
ISO/IEC 19944:2017/PDAM 1
ISO/IEC 23001-8:2013/FPDAM 2(en)
ISO/IEC 23001-9:2014/FPDAM 1(en)
ISO/IEC 23002-7:2021/CD Amd 1
ISO/IEC 23003-4:2020/PRF Amd 1
ISO/IEC 23008-1:2014/FPDAM 2(en)
ISO/IEC 23008-2:2020/CD Amd 2
ISO/IEC 23008-8/PDAM 1
ISO/IEC 23009-1:2019/CD Amd 2
ISO/IEC 23090-2:2021/CD Amd 1
ISO/IEC 23091-3:2018/PRF Amd 1
ISO/IEC 23092-4:2020/CD Amd 1
ISO/IEC 24760-1:2019/CD Amd 1
ISO/IEC 27006:2015/PDAM 1
ISO/IEC 39794-4:2019/WD Amd 1
ISO/IEC DIS 23008-1/DAM 2:2021(E)
ISO/IEC DIS 23008-1/DAmd 2(en)
ISO/IEC DIS 23008-1/WD Amd 1
ISO/IEC DIS 23090-18/WD Amd 1
ISO/IEC DIS 23090-7/WD Amd 1
ISO/IEC FDIS 23009-1/WD Amd 2
ISO/IEC/IEEE 8802-3:2021/FDAmd 10
ISO/IEC/IEEE 8802-3:2021/FDAmd 11

Cor:

ISO 10303-111:2007/NP Cor 2
ISO 10414-2:2011/NP Cor 1
ISO 12128:1995/CD Cor 1
ISO 13431:1999/AWI Cor 1
ISO 13431:1999/WD Cor 1
ISO 3822-3:1997/PWI Cor 1
ISO 3864-2:2004/CD Cor 1
ISO 9606-1:2012/Cor.2:2013(F)
ISO 9606-1:2012/Cor 2:2013(fr)
ISO/IEC 10646-1:1993/pDCOR.2
ISO/IEC 14496-12/DCOR 1
ISO/IEC 15408-2:1999/CD Cor 1
ISO/IEC 15938-7:2003/Amd 5:2010/CD Cor 1
ISO/IEC 19794-7:2014/Amd 1:2015/CD Cor 1
ISO/IEC 21122-3:2019/CD Cor 1
ISO/IEC 23009-5:2017/CD Cor 1
ISO/IEC 24824-3:2008/CD Cor 1
ISO/IEC 26300:2006/DCOR 2
ISO/IEC 27019:2017/CD Cor 1
ISO/IEC 29120-1:2015/CD Cor 1
ISO/IEC 29134:2017/CD Cor 1
ISO/IEC 8825-1/DCOR 3
ISO/IEC 8825-5:2015/CD Cor 1
ISO/IEC 9075-10:2016/CD Cor 1
ISO/IEC 9075-13:2016/CD Cor 2
ISO/IEC 9075-14:2016/CD Cor 2
ISO/IEC 9075-15:2019/CD Cor 1
ISO/IEC 9075-1:2011/NP Cor 2
ISO/IEC 9075-1:2016/CD Cor 1
ISO/IEC 9075-2:2016/CD Cor 2
ISO/IEC 9075-3:2016/CD Cor 1
ISO/IEC 9594-8:2017/CD Cor 1
ISO/IEC ISP 10611-4:1997/CD Cor 2
ISO/TR 23455:2019/FDCor 1

Implement PubID parsing for ISO

Document identifier parsing is currently implemented in https://github.com/relaton/relaton-iso

ISO document identifiers look like this:

International standards:

  • "ISO 9001" (undated identifier)
  • "ISO 9001:2015" (dated identifier)
  • "ISO/{WD, CD, DIS, FDIS} 9001:2015" (identifier for draft document)

Technical report ("TR") or Technical specification ("TS"):

  • "ISO/TR 9001" (undated identifier)
  • "ISO/TR 9001:2015" (dated identifier)
  • "ISO/TR {WD, CD, DIS, FDIS} 9001:2015" (identifier for draft document)

ISO/IEC co-published international standards:

  • "ISO/IEC 27001" (undated)
  • "ISO/IEC 27001:2013" (dated)
  • "ISO/IEC TR 27001:2013"

ISO Amendments:

  • "ISO 8601:2019/Amd 1" (undated)
  • "ISO 8601:2019/Amd 1:2022" (dated)
  • "ISO 8601:2019/DAmd 1" (DIS stage)
  • "ISO 8601:2019/FDAmd 1" (FDIS stage)

There is another issue that contains the full description but I have to find it.

Internationalized PubIDs: Russian

ISO provides PubIDs in Russian:

  • ISO is ИСО
  • ISO/IEC is ИСО/МЭК
  • TR is ТО
  • TS is ТС
  • DIS is ПМС
  • FDIS is ОПМС
  • "ISO Guide" is "Руководства ИСО"
  • "ISO/IEC Guide" is "Руководство ИСО/МЭК"

NOTE: More information can be found here: https://ru.delta-engineering.be/iso

All the following identifiers come from official ISO information, mostly from the website.

ИСО 10335
ИСО 1126
ИСО 124
ИСО 127
ИСО 1304
ИСО 1431-1
ИСО 1435
ИСО 15105
ИСО 18064
ИСО 2321
ИСО 289-1
ИСО 289-2
ИСО 289-3
ИСО 2930
ИСО 35
ИСО 37001
ИСО 3858
ИСО 4223-1
ИСО 4223-2
ИСО 45000
ИСО 4649
ИСО 4660
ИСО 472
ИСО 48
ИСО 506
ИСО 5435
ИСО 6107-6
ИСО 6107-6:1996
ИСО 6194-2
ИСО 8330
ИСО 8511
ИСО 8942
ИСО 9001:2015
ИСО 9026
ИСО/МЭК 76:2008
ИСО/МЭК ТО 19791:2008 # This is ISO/IEC
ИСО/ОПМС 26000:2010(R) # ОПМС is FDIS
ИСО/ОПМС 9000:2000
ИСО/ПМС 1956/2 # ПМС is DIS
ИСО/ТК
ИСО/ТО 8517 # This means ISO/TR 8517
ИСО/ТС 18625 # This means ISO/TS 18625
Руководства ИСО 2
Руководства ИСО 82
Руководство ИСО/МЭК 76

Handle language code in ISO PubID

There are two types of language codes.

Reference number

As seen in #7, the Reference number ends with "(XX)" where "XX" is an ISO 3166 2-character language code.

We've seen the following

  • en for English
  • fr for French
  • ar for Arabic
  • ru for Russian
  • es for Spanish
  • de for German

PubID

As seen in #7, the PubID ends with "(X)" where "X" is a single character code:

  • E for English
  • F for French
  • A for Arabic
  • R for Russian
  • Spanish and German documents exist, but they are not assigned a PubID language code. Maybe we should use "S" and "D" for them respectively, for now.

Pattern

Notice there are some interesting patterns:

  • (en,fr)
  • (en,fr,ru,es)
  • (en,fr,ru,other)
  • (E/F)
  • (E/F/R)

Samples

The samples (mix of both types) are provided now in:

ISO 11783-2:2012/Cor.1:2012(fr)
ISO 11890-1:2007(ru)
ISO 14040:2006(ar)
ISO 1436:2009/Cor.1:2010(ru)
ISO 14451-1:2013(en,fr,other)
ISO 17225-1:2014(R)
ISO 17225-1:2014(ru)
ISO 17301-1:2016/Amd.1:2017(F)
ISO 1891-2:2014(en,fr,ru,other)
ISO 19109:2005(E)
ISO 19901-3:2014(ru)
ISO 1998-2:1976(en,fr,ru)
ISO 20251:2016(F)
ISO 20805:2011(ru)
ISO 21542:2011(F)
ISO 21542:2011(fr)
ISO 21809-2:2014(ru)
ISO 26000:2010(es)
ISO 31000:2009(ar)
ISO 3166-1:2013(en,fr)
ISO 3183:2012/DAmd 1(fr)
ISO 4618:2014(de)
ISO 4618:2014(ru)
ISO 5053-1:2015(en,fr)
ISO 5492:2008/Amd.1:2016(de)
ISO 5492:2008/Amd.1:2016(es)
ISO 5492:2008/Amd.1:2016(fr)
ISO 5492:2008/Amd.1:2016(ru)
ISO 55000:2014(es)
ISO 6091:2010(ru)
ISO 8081:2021(fr)
ISO 8637:2010/Amd.1:2013(ru)
ISO/ASTM DIS 52920(fr)
ISO/CEI 17025:2005/Cor.1:2006(F)
ISO/DIS 12625-1(en,fr)
ISO/DIS 16228:2015(F)
ISO/DIS 18218-2(fr)
ISO/DIS 22964(fr)
ISO/DIS 24478(fr)
ISO/DIS 30415(fr)
ISO/DIS 6789-2:2014(F)
ISO/DIS 6789-2.2(fr)
ISO/DIS 80000-1(fr)
ISO/DIS 8566-5:2016(F)
ISO/IEC 17050-1:2004(ar)
ISO/IEC 17050-1:2004(es)
ISO/IEC 2382-36:2019(E/F)
ISO/IEC 2382-37:2012(ru)
ISO/IEC GUIDE 2:2004(E/F/R)
ISO/IEC Guide 99:2007(ru)
ISO/IEC/IEEE 24765:2017(en)
ISO/PAS 23263:2019(en)
ISO/PAS 45005:2020(en)
ISO/TR 10013:2001(ar)
ISO/TR 18130:2016(F)
ISO/TS 80004-3:2010(F)
ISO/TS 80004-3:2010(fr)
ISO/TTA 1:1994(en)
ISO/TTA 2:1997(en)
ISO/TTA 3:2001(en)

Handle ISO TC N-document numbers

Interestingly, it embeds the "iso committee identifier" inside

The pattern is {committee / working group} N{number}

The general pattern for committee can be:

  • "{org}/{tc-type}{/}{sc-number}..."
  • "{org}/{tc-type} {tc-number}"
  • "{org}/{tc-type} {tc-number}/{wg-type} {wg-number}"
  • "{org}/{tc-type} {tc-number}/{sc-type} {sc-number}"

e.g. "ISO/IEC JTC 1/SC 32 N1001".

  • tc-type can be TC, JTC, PC (this list is not exhaustive)
  • sc-type can be SC, etc.
  • wg-type can be AG, AHG, AhG, WG, JWG (this list is not exhaustive)

Samples of ISO/TC 184/SC 4 N-documents are available here:
https://github.com/relaton/relaton-data-iso/tree/main/data

This is a long list of representative committees:

ISO/CAB - Council Anonymized Ballots
ISO/CASCO - Committee on conformity assessment
ISO/COPOLCO - Committee on consumer policy
ISO/COUNCIL - Council
ISO/CPSG - Commercial Policy Steering Group (CPSG)
ISO/CS - ISO Central Secretariat
ISO/DEVCO - Committee on developing country matters
ISO/GA - General Assembly
ISO/GAAB - General Assembly Anonymized Ballots
ISO/GA meeting ballots - General Assembly meeting ballots
ISO/IEC JPC 2 - Joint Project Committee - Energy efficiency and renewable energy sources - Common terminology
ISO/IEC JTC 1 - Information technology
ISO/IEC JTC 2 - Joint Project Committee - Energy efficiency and renewable energy sources - Common terminology
ISO/IEC/JTC 2 - Joint Project Committee - Energy efficiency and renewable energy sources - Common terminology
ISO/INFCO - Committee on information
ISO/ISO/CS - ISO Central Secretariat
ISO/ISOlutions - ISOlutions Group
ISO/IT - IT Project Groups
ISO/IT eCommittees replacement - ISO eCommittees replacement - user group
ISO/IT eCommittees replacement - architecture revi - ISO eCommittees replacement - architecture review
ISO/ITN - ISO Information Technology Network
ISO/PC 240 - Project Committee: Product recall
ISO/PC 243 - Project Committee: Consumer product safety
ISO/PC 245 - Project Committee: Cross-border trade of second-hand goods
ISO/PC 248 - Project committee: Sustainability criteria for bioenergy
ISO/PC 251 - Project committee: Asset management
ISO/PC 252 - Project committee: Natural gas fuelling stations for vehicles
ISO/PC 253 - Project committee: Treated wastewater re-use for irrigation
ISO/PC 259 - Project committee: Outsourcing
ISO/PC 271 - Compliance programs
ISO/PC 272 - Forensic sciences
ISO/PC 273 - Customer contact centres
ISO/PC 277 - Sustainable purchasing
ISO/PC 278 - Anti-bribery management systems
ISO/PC 280 - Management Consultancy
ISO/PC 283 - Occupational health and safety management systems - Requirements
ISO/PC 284 - Management system for quality of private security company (PSC) operations - Requirements with guidance
ISO/PC 286 - Collaborative business relationship management -- Framework
ISO/PC 287 - Chain of custody of forest-based products - Requirements (Provisional)
ISO/PC 288 - Educational organizations management systems - Requirements with guidance for use
ISO/PC 294 - Guidance on unit pricing
ISO/PC 295 - Audit data collection
ISO/PC 302 - Guidelines for auditing management systems
ISO/PC 303 - Guidelines on consumer warranties and guarantees
ISO/PC 305 - Sustainable non-sewered sanitation systems
ISO/PC 308 - Chain of custody - General terminology and models
ISO/PC 310 - Wheeled child conveyances
ISO/PC 311 - Vulnerable consumers
ISO/PC 315 - Cold chain logistics
ISO/PC 316 - Water efficient products - Rating
ISO/PC 317 - Consumer protection: privacy by design for consumer goods and services
ISO/PC 318 - Community scale resource oriented sanitation treatment systems
ISO/PC 320 - Tableware, giftware, jewellery and luminaries, made of glass - Glass clarity - Classification and test method
ISO/PC 325 - Sex toys - Design and safety requirements for products in direct contact with genitalia, the anus, or both
ISO/PC 329 - Consumer incident investigation guideline
ISO/PC 335 - Guidelines for organizations to increase consumer understanding of online terms and conditions
ISO/PC 337 - Guidelines for the promotion and implementation of gender equality
ISO/President's committee - President's committee
ISO/REMCO - Committee on reference materials
ISO/TA - ISO Technical Assistance Programmes
ISO/TC 1 - Screw threads
ISO/TC 10 - Technical product documentation
ISO/TC 100 - Chains and chain sprockets for power transmission and conveyors
ISO/TC 101 - Continuous mechanical handling equipment
ISO/TC 102 - Iron ore and direct reduced iron
ISO/TC 104 - Freight containers
ISO/TC 105 - Steel wire ropes
ISO/TC 106 - Dentistry
ISO/TC 107 - Metallic and other inorganic coatings
ISO/TC 108 - Mechanical vibration, shock and condition monitoring
ISO/TC 109 - Oil and gas burners
ISO/TC 11 - Boilers and pressure vessels
ISO/TC 110 - Industrial trucks
ISO/TC 111 - Round steel link chains, chain slings, components and accessories
ISO/TC 112 - Vacuum technology
ISO/TC 113 - Hydrometry
ISO/TC 114 - Horology
ISO/TC 115 - Pumps
ISO/TC 116 - Space heating appliances
ISO/TC 117 - Fans
ISO/TC 118 - Compressors and pneumatic tools, machines and equipment
ISO/TC 119 - Powder metallurgy
ISO/TC 12 - Quantities and units
ISO/TC 120 - Leather
ISO/TC 121 - Anaesthetic and respiratory equipment
ISO/TC 122 - Packaging
ISO/TC 123 - Plain bearings
ISO/TC 125 - Enclosures and conditions for testing -- STAND-BY
ISO/TC 126 - Tobacco and tobacco products
ISO/TC 127 - Earth-moving machinery
ISO/TC 128 - Glass plant, pipeline and fittings -- STAND-BY
ISO/TC 129 - Aluminium ores
ISO/TC 130 - Graphic technology
ISO/TC 131 - Fluid power systems
ISO/TC 132 - Ferroalloys
ISO/TC 133 - Clothing sizing systems - size designation, size measurement methods and digital fittings
ISO/TC 134 - Fertilizers, soil conditioners and beneficial substances
ISO/TC 135 - Non-destructive testing
ISO/TC 136 - Furniture
ISO/TC 137 - Footwear sizing designations and marking systems
ISO/TC 138 - Plastics pipes, fittings and valves for the transport of fluids
ISO/TC 14 - Shafts for machinery and accessories
ISO/TC 142 - Cleaning equipment for air and other gases
ISO/TC 144 - Air distribution and air diffusion -- STAND-BY
ISO/TC 145 - Graphical symbols
ISO/TC 146 - Air quality
ISO/TC 147 - Water quality
ISO/TC 148 - Sewing machines
ISO/TC 149 - Cycles
ISO/TC 150 - Implants for surgery
ISO/TC 152 - Gypgum, gypsum plasters and gypsum products
ISO/TC 153 - Valves
ISO/TC 154 - Processes, data elements and documents in commerce, industry and administration
ISO/TC 155 - Nickel and nickel alloys
ISO/TC 156 - Corrosion of metals and alloys
ISO/TC 157 - Non-systemic contraceptives and STI barrier prophylactics
ISO/TC 158 - Analysis of gases
ISO/TC 159 - Ergonomics
ISO/TC 160 - Glass in building
ISO/TC 161 - Controls and protective devices for gas and/or oil
ISO/TC 162 - Doors, windows and curtain walling
ISO/TC 163 - Thermal performance and energy use in the built environment
ISO/TC 164 - Mechanical testing of metals
ISO/TC 165 - Timber structures
ISO/TC 166 - Ceramic ware, glassware and glass ceramic ware in contact with food
ISO/TC 167 - Steel and aluminium structures
ISO/TC 168 - Prosthetics and orthotics
ISO/TC 17 - Steel
ISO/TC 170 - Surgical instruments
ISO/TC 171 - Document management applications
ISO/TC 172 - Optics and photonics
ISO/TC 173 - Assistive products
ISO/TC 174 - Jewellery and precious metals
ISO/TC 175 - Fluorspar
ISO/TC 176 - Quality management and quality assurance
ISO/TC 177 - Caravans
ISO/TC 178 - Lifts, escalators and moving walks
ISO/TC 179 - Masonry
ISO/TC 18 - Zinc and zinc alloys
ISO/TC 180 - Solar energy
ISO/TC 181 - Safety of toys
ISO/TC 182 - Geotechnics
ISO/TC 183 - Copper, lead, zinc and nickel ores and concentrates
ISO/TC 184 - Automation systems and integration
ISO/TC 185 - Safety devices for protection against excessive pressure
ISO/TC 186 - Cutlery and table and decorative metal hollow-ware
ISO/TC 188 - Small craft
ISO/TC 189 - Ceramic tile
ISO/TC 19 - Preferred numbers
ISO/TC 190 - Soil quality
ISO/TC 191 - Animal (mammal) traps
ISO/TC 192 - Gas turbines
ISO/TC 193 - Natural gas
ISO/TC 194 - Biological and clinical evaluation of medical devices
ISO/TC 195 - Building construction machinery and equipment
ISO/TC 197 - Hydrogen technologies
ISO/TC 198 - Sterilization of health care products
ISO/TC 199 - Safety of machinery
ISO/TC 2 - Fasteners
ISO/TC 20 - Aircraft and space vehicles
ISO/TC 200 - Solid wastes
ISO/TC 201 - Surface chemical analysis
ISO/TC 202 - Microbeam analysis
ISO/TC 203 - Technical energy systems
ISO/TC 204 - Intelligent transport systems
ISO/TC 205 - Building environment design
ISO/TC 206 - Fine ceramics
ISO/TC 207 - Environmental management
ISO/TC 208 - Thermal turbines for industrial application (steam turbines, gas expansion turbines)
ISO/TC 209 - Cleanrooms and associated controlled environments
ISO/TC 21 - Equipment for fire protection and fire fighting
ISO/TC 210 - Quality management and corresponding general aspects for medical devices
ISO/TC 211 - Geographic information/Geomatics
ISO/TC 212 - Clinical laboratory testing and in vitro diagnostic test systems
ISO/TC 213 - Dimensional and geometrical product specifications and verification
ISO/TC 214 - Elevating work platforms
ISO/TC 215 - Health informatics
ISO/TC 216 - Footwear
ISO/TC 217 - Cosmetics
ISO/TC 218 - Timber
ISO/TC 219 - Floor coverings
ISO/TC 22 - Road vehicles
ISO/TC 220 - Cryogenic vessels
ISO/TC 221 - Geosynthetics
ISO/TC 222 - Personal financial planning
ISO/TC 223 - Societal Security
ISO/TC 224 - Drinking water, wastewater and stormwater systems and services
ISO/TC 225 - Market, opinion and social research
ISO/TC 226 - Materials for the production of primary aluminium
ISO/TC 227 - Springs
ISO/TC 228 - Tourism and related services
ISO/TC 229 - Nanotechnologies
ISO/TC 23 - Tractors and machinery for agriculture and forestry
ISO/TC 230 - Project Committee: Psychological assessment
ISO/TC 231 - Project Committee: Brand valuation
ISO/TC 232 - Education and learning services
ISO/TC 233 - Project Committee: Cleaning services
ISO/TC 234 - Fisheries and aquaculture
ISO/TC 235 - Project Committee: Rating services
ISO/TC 236 - Project Commitee : Project Management
ISO/TC 237 - Project committee: Exhibition terminology
ISO/TC 238 - Solid biofuels
ISO/TC 239 - Project Committee: Network services billing
ISO/TC 24 - Particle characterization including sieving
ISO/TC 240 - Project Committee: Product recall
ISO/TC 241 - Road traffic safety management systems
ISO/TC 242 - Project Committee: Energy Management
ISO/TC 243 - Project Committee: Consumer product safety
ISO/TC 244 - Industrial furnaces and associated processing equipment
ISO/TC 245 - Project Committee: Cross-border trade of second-hand goods
ISO/TC 246 - Project committee: Anti-counterfeiting tools
ISO/TC 247 - Fraud countermeasures and controls
ISO/TC 248 - Sustainability criteria for bioenergy
ISO/TC 249 - Traditional Chinese medicine
ISO/TC 25 - Cast irons and pig irons
ISO/TC 250 - Project committee: Sustainability in event management
ISO/TC 251 - Asset management
ISO/TC 252 - Project committee: Natural gas fuelling stations for vehicles
ISO/TC 253 - Project committee: Treated wastewater re-use for irrigation
ISO/TC 254 - Safety of amusement rides and amusement devices
ISO/TC 255 - Biogas
ISO/TC 256 - Pigments, dyestuffs and extenders
ISO/TC 257 - General technical rules for determination of energy savings in renovation projects, industrial enterprises and regions
ISO/TC 258 - Project, programme and portfolio management
ISO/TC 259 - Project committee: Outsourcing
ISO/TC 26 - Copper and copper alloys
ISO/TC 260 - Human resource management
ISO/TC 261 - Additive manufacturing
ISO/TC 262 - Risk management
ISO/TC 263 - Coalbed methane (CBM)
ISO/TC 264 - Fireworks
ISO/TC 265 - Carbon dioxide capture, transportation, and geological storage
ISO/TC 266 - Biomimetics
ISO/TC 267 - Facility management
ISO/TC 268 - Sustainable cities and communities
ISO/TC 269 - Railway applications
ISO/TC 27 - Coal and coke
ISO/TC 270 - Plastics and rubber machines
ISO/TC 271 - Compliance programs
ISO/TC 272 - Forensic sciences
ISO/TC 273 - Project Committee: Customer contact centres
ISO/TC 274 - Light and lighting
ISO/TC 275 - Sludge recovery, recycling, treatment and disposal
ISO/TC 276 - Biotechnology
ISO/TC 279 - Innovation management
ISO/TC 28 - Petroleum and related products, fuels and lubricants from natural or synthetic sources
ISO/TC 281 - Fine bubble technology
ISO/TC 282 - Water reuse
ISO/TC 283 - Occupational health and safety management
ISO/TC 285 - Clean cookstoves and clean cooking solutions
ISO/TC 286 - Collaborative business relationship management
ISO/TC 287 - Sustainable processes for wood and wood-based products
ISO/TC 289 - Brand evaluation
ISO/TC 29 - Small tools
ISO/TC 290 - Online reputation
ISO/TC 291 - Domestic gas cooking appliances
ISO/TC 292 - Security and resilience
ISO/TC 293 - Feed machinery
ISO/TC 295 - Audit data services
ISO/TC 296 - Bamboo and rattan
ISO/TC 297 - Waste collection and transportation management
ISO/TC 298 - Rare earth
ISO/TC 299 - Robotics
ISO/TC 30 - Measurement of fluid flow in closed conduits
ISO/TC 300 - Solid recovered materials, including solid recovered fuels
ISO/TC 301 - Energy management and energy savings
ISO/TC 304 - Healthcare organization management
ISO/TC 306 - Foundry machinery
ISO/TC 307 - Blockchain and distributed ledger technologies
ISO/TC 308 - Chain of custody
ISO/TC 309 - Governance of organizations
ISO/TC 31 - Tyres, rims and valves
ISO/TC 310 - Child care articles
ISO/TC 312 - Excellence in service
ISO/TC 313 - Packaging machinery
ISO/TC 314 - Ageing societies
ISO/TC 315 - Cold chain logistics
ISO/TC 319 - Karst
ISO/TC 321 - Transaction assurance in E-commerce
ISO/TC 322 - Sustainable finance
ISO/TC 323 - Circular economy
ISO/TC 324 - Sharing economy
ISO/TC 326 - Machinery intended for use with foodstuffs
ISO/TC 327 - Natural stones
ISO/TC 328 - Engineered stones
ISO/TC 33 - Refractories
ISO/TC 330 - Surfaces with biocidal and antimicrobial properties
ISO/TC 331 - Biodiversity
ISO/TC 332 - Security equipment for financial institutions and commercial organizations
ISO/TC 333 - Lithium
ISO/TC 334 - Reference materials
ISO/TC 336 - Laboratory design
ISO/TC 34 - Food products
ISO/TC 35 - Paints and varnishes
ISO/TC 36 - Cinematography
ISO/TC 37 - Language and terminology
ISO/TC 38 - Textiles
ISO/TC 39 - Machine tools
ISO/TC 4 - Rolling bearings
ISO/TC 41 - Pulleys and belts (including veebelts)
ISO/TC 42 - Photography
ISO/TC 43 - Acoustics
ISO/TC 44 - Welding and allied processes
ISO/TC 45 - Rubber and rubber products
ISO/TC 46 - Information and documentation
ISO/TC 47 - Chemistry
ISO/TC 48 - Laboratory equipment
ISO/TC 5 - Ferrous metal pipes and metallic fittings
ISO/TC 50 - Lac -- STAND-BY
ISO/TC 51 - Pallets for unit load method of materials handling
ISO/TC 52 - Light gauge metal containers
ISO/TC 54 - Essential oils
ISO/TC 55 - Sawn timber and sawlogs
ISO/TC 56 - Mica -- STAND-BY
ISO/TC 58 - Gas cylinders
ISO/TC 59 - Buildings and civil engineering works
ISO/TC 6 - Paper, board and pulps
ISO/TC 60 - Gears
ISO/TC 61 - Plastics
ISO/TC 63 - Glass containers
ISO/TC 65 - Manganese and chromium ores
ISO/TC 67 - Materials, equipment and offshore structures for petroleum, petrochemical and natural gas industries
ISO/TC 68 - Financial services
ISO/TC 69 - Applications of statistical methods
ISO/TC 70 - Internal combustion engines
ISO/TC 71 - Concrete, reinforced concrete and pre-stressed concrete
ISO/TC 72 - Textile machinery and accessories
ISO/TC 74 - Cement and lime
ISO/TC 76 - Transfusion, infusion and injection, and blood processing equipment for medical and pharmaceutical use
ISO/TC 77 - Products in fibre reinforced cement
ISO/TC 79 - Light metals and their alloys
ISO/TC 8 - Ships and marine technology
ISO/TC 81 - Common names for pesticides and other agrochemicals
ISO/TC 82 - Mining
ISO/TC 83 - Sports and other recreational facilities and equipment
ISO/TC 84 - Devices for administration of medicinal products and catheters
ISO/TC 85 - Nuclear energy, nuclear technologies, and radiological protection
ISO/TC 86 - Refrigeration and air-conditioning
ISO/TC 87 - Cork
ISO/TC 89 - Wood-based panels
ISO/TC 91 - Surface active agents
ISO/TC 92 - Fire safety
ISO/TC 93 - Starch (including derivatives and by-products)
ISO/TC 94 - Personal safety -- Personal protective equipment
ISO/TC 96 - Cranes
ISO/TC 98 - Bases for design of structures
ISO/TC 99 - Semi-manufactures of timber
ISO/TMB - Technical Management Board
ISO/TMBG - Technical Management Board - groups
ISO/WMO - World Meteorogical Organization

ISO/TMB/DMT - Directives Maintenance Team
ISO/TMB/JCG - ISO/CEN Joint Coordination Group of the Technical (Management) Boards
ISO/TMB/SGPM - Steering group on Project management
ISO/TMB/TF 2 - Task force on management system standards
ISO/TMB/WG SGDG - Technical Management Board/SGDG
ISO/TMB/WG SR - Technical Management Board/Social responsibility

ISO/TMBG/ATMG - Arab translation management group
ISO/TMBG/CCCC - Climate Change Coordination Committee (CCCC)
ISO/TMBG/CCCC-TG 1 - Internal Coordination and Engagement
ISO/TMBG/CCCC-TG 2 - Climate Change Training and Promotion – Guide 84
ISO/TMBG/CCCC-TG 3 - COP26 Preparation and External Engagement
ISO/TMBG/CCCC-TG 4 - ISO Positioning and Consultation Responses
ISO/TMBG/JDMT - ISO/IEC Joint Directives Maintenance Team
ISO/TMBG/JSAG - ISO/IEC Joint Strategic Advisory Group (JSAG) on Gender responsive standards
ISO/TMBG/JSCTF-TF 19 - ISO, IEC and ITU Joint Smart Cities Task Force
ISO/TMBG/JTCG - Joint technical Coordination Group on MSS
ISO/TMBG/JTCG-TF 12 - Communication for MSS
ISO/TMBG/JTCG-TF 13 - Meta Analytics for HLS MSS
ISO/TMBG/JTCG-TF 14 - Revision of the High Level Structure for MSS
ISO/TMBG/JTCG-TF 15 - Future direction of ISO MSS
ISO/TMBG/JTCG-TF 4 - Guidance to help standard writers use Annex SL Appendix 2 and 3
ISO/TMBG/JWG Guide 59 - JWG Revision of ISO/IEC Guide 59
ISO/TMBG/SAG_ Acc - Strategic advisory group on accessibility
ISO/TMBG/SAG_CRMI - ISO Strategic Advisory Group on Critical minerals
ISO/TMBG/SAG_CRMI_CG - Consultative Group- ISO Strategic Advisory Group on Critical minerals
ISO/TMBG/SAG_ESG - Strategic Advisory Group on Environmental, social, governance (ESG) ecosystem
ISO/TMBG/SAG_ESG_CG - Consultative Group
ISO/TMBG/SAG_MRS - Strategic advisory group on machine readable standards
ISO/TMBG/SAG SF - Smart Farming
ISO/TMBG/SAG SF_CG - Consultative Group- ISO Strategic Advisory Group on Smart Farming
ISO/TMBG/SMCC - ISO Smart Manufacturing Coordinating Committee (SMCC)
ISO/TMBG/STMG - Spanish translation management group
ISO/TMBG/TF 11 - Implementation of project management in ISO standards development
ISO/TMBG/TF 14 - ISO virtual standards development process
ISO/TMBG/TF 18 - Task Force on Foundational Standards
ISO/TMBG/TF 7 - Task Force on Climate Change Coordination (CCC TF)
ISO/TMBG/WG Guide 82 - WG Revision of ISO Guide 82


ISO/IEC JTC 1/AG 1 - Advisory Group on Communications
ISO/IEC JTC 1/AG 10 - Outreach
ISO/IEC JTC 1/AG 11 - Digital Twin
ISO/IEC JTC 1/AG 12 - Technical Corrigenda
ISO/IEC JTC 1/AG 13 - VR/AR/MR based ICT Integration Systems
ISO/IEC JTC 1/AG 14 - Systems Integration Facilitation (SIF)
ISO/IEC JTC 1/AG 15 - Standards and Regulations
ISO/IEC JTC 1/AG 16 - Brain-computer interface
ISO/IEC JTC 1/AG 17 - Meeting guidelines - SD 19
ISO/IEC JTC 1/AG 18 - Vocabulary
ISO/IEC JTC 1/AG 19 - Coordination with ISO TC 20/SC 16 on Unmanned Aircraft Systems (UAS)
ISO/IEC JTC 1/AG 2 - Advisory Group on JTC 1 Emerging Technology and Innovation (JETI)
ISO/IEC JTC 1/AG 3 - Open Source Software
ISO/IEC JTC 1/AG 4 - Quantum Computing
ISO/IEC JTC 1/AG 6 - Autonomous and Data Rich Vehicles
ISO/IEC JTC 1/AG 7 - Trustworthiness
ISO/IEC JTC 1/AG 8 - Meta Reference Architecture and Reference Architecture for Systems Integration
ISO/IEC JTC 1/AG 9 - Data Usage
ISO/IEC JTC 1/AHG 4 - Collaboration across domains
ISO/IEC JTC 1/AHG 5 - JTC 1 Standards Made Freely Available
ISO/IEC JTC 1/JAG - JTC 1 Advisory Group
ISO/IEC JTC 1/SC 17 - Cards and security devices for personal identification
ISO/IEC JTC 1/SC 2 - Coded character sets
ISO/IEC JTC 1/SC 22 - Programming languages, their environments and system software interfaces
ISO/IEC JTC 1/SC 23 - Digitally recorded media for information interchange and storage
ISO/IEC JTC 1/SC 24 - Computer graphics, image processing and environmental data representation
ISO/IEC JTC 1/SC 25 - Interconnection of information technology equipment
ISO/IEC JTC 1/SC 27 - Information security, cybersecurity and privacy protection
ISO/IEC JTC 1/SC 28 - Office equipment
ISO/IEC JTC 1/SC 29 - Coding of audio, picture, multimedia and hypermedia information
ISO/IEC JTC 1/SC 31 - Automatic identification and data capture techniques
ISO/IEC JTC 1/SC 32 - Data management and interchange
ISO/IEC JTC 1/SC 34 - Document description and processing languages
ISO/IEC JTC 1/SC 35 - User interfaces
ISO/IEC JTC 1/SC 36 - Information technology for learning, education and training
ISO/IEC JTC 1/SC 37 - Biometrics
ISO/IEC JTC 1/SC 38 - Cloud computing and distributed platforms
ISO/IEC JTC 1/SC 39 - Sustainability, IT and data centres
ISO/IEC JTC 1/SC 40 - IT service management and IT governance
ISO/IEC JTC 1/SC 41 - Internet of things and digital twin
ISO/IEC JTC 1/SC 42 - Artificial intelligence
ISO/IEC JTC 1/SC 6 - Telecommunications and information exchange between systems
ISO/IEC JTC 1/SC 7 - Software and systems engineering
ISO/IEC JTC 1/WG 10 - Internet of Things
ISO/IEC JTC 1/WG 11 - Smart cities
ISO/IEC JTC 1/WG 12 - 3D Printing and scanning
ISO/IEC JTC 1/WG 13 - Trustworthiness
ISO/IEC JTC 1/WG 14 - Quantum Computing
ISO/IEC JTC 1/WG 7 - Sensor networks
ISO/IEC JTC 1/WG 8 - Governance of IT
ISO/IEC JTC 1/WG 9 - Big Data

ISO/CASCO/CPC - Chairman's Policy and Coordination Group
ISO/CASCO/IAF - IAF-ILAC-ISO Joint Strategic Group
ISO/CASCO/INetQI - Hosted ISO/CASCO INetQI group
ISO/CASCO/JWG 40 - Joint ISO/CASCO - ISO/TC 223 WG: Competence requirements for auditing and certification of business continuity management systems
ISO/CASCO/JWG 41 - Joint ISO/CASCO - ISO/TC 241 WG: Competence requirements for auditing and certification of RTS (Road Traffic Safety) management systems
ISO/CASCO/JWG 43 - Joint ISO/CASCO - ISO/REMCO: Revision of Guide 34
ISO/CASCO/JWG 48 - ISO/IEC TS 17021-10 Competence requirements for auditing and certification of occupational health & safety MS
ISO/CASCO/JWG 50 - Joint ISO/CASCO -ISO/ TC268 WG: ISO/IEC 17021-8 Competence requirements for auditing and certification of management systems of Sustainable development of cities and communities
ISO/CASCO/JWG 51 - Joint ISO/CASCO – ISO/TC267 WG – ISO/IEC 17021-11 Competence requirements for auditing and certification of Facility Management Systems
ISO/CASCO/JWG 54 - Development of ISO/IEC 17021-12 – Collaborative business management systems
ISO/CASCO/JWG 58 - Joint ISO/CASCO - ISO/TC232 WG: ISO 21030 Requirements for bodies providing audit and certification of educational organizations management systems
ISO/CASCO/JWG 59 - Joint ISO/CASCO - ISO/TC 309 WG: Development of ISO/TS 17021-13
ISO/CASCO/JWG 60 - Joint ISO/CASCO - ISO/TC 46/SC 11 WG: Development of ISO/IEC TS 17021-14
ISO/CASCO/STAR - Strategic Alliance and Regulatory group
ISO/CASCO/STTF - Spanish translation task force
ISO/CASCO/TIG - Technical Interface Group
ISO/CASCO/WG 21 - Management system certification
ISO/CASCO/WG 23 - Common elements in ISO/IEC Standards for conformity assessment activities
ISO/CASCO/WG 32 - Fundamentals of product certification
ISO/CASCO/WG 34 - Joint ISO/CASCO - ISO/TC 207/SC 2: Third-party EMS certification
ISO/CASCO/WG 35 - Requirements for third party certification auditing of quality management systems -- Competence requirements
ISO/CASCO/WG 36 - Joint WG ISO/CASCO - ISO/TC 34/SC 17; revision of ISO/TS 22003
ISO/CASCO/WG 37 - Principles and Guidelines for Determining Audit Time in Management System Certification
ISO/CASCO/WG 38 - Event sustainability management
ISO/CASCO/WG 42 - General requirements for accreditation bodies
ISO/CASCO/WG 45 - Example of a certification scheme for services
ISO/CASCO/WG 46 - Validation and verification
ISO/CASCO/WG 49 - Revision of ISO/IEC 17000 - Conformity assessment - Vocabulary and general principles
ISO/CASCO/WG 55 - Revision of ISO/IEC 17030 third-party marks of conformity
ISO/CASCO/WG 56 - Conformity Assessment - Code of good practice
ISO/CASCO/WG 57 - Conformity assessment — General requirements for proficiency testing
ISO/CASCO/WG 58 - Joint ISO/CASCO - ISO/TC232 WG: ISO 21030 Requirements for bodies providing audit and certification of educational organizations management systems


ISO/DEVCO/CAG - Chair's advisory group
ISO/DEVCO/TG 1 - Task group on submission support
ISO/DEVCO/TG 2 - Task group on integration support
ISO/DEVCO/WG 1 - Standardization areas of primary interest to developing countries
ISO/DEVCO/WG 2 - Resources to enhance NSB capabilities in standards development and use

ISO/CPSG/WG 1 - Pricing and subscription models
ISO/CPSG/WG 2 - Commercial distributors
ISO/CPSG/WG 3 - Standards in the legislation

ISO/COUNCIL/CPAG - Commercial Policy Advisory Group
ISO/COUNCIL/CSC - Council Standard Committee
ISO/COUNCIL/ITSAG - Information Technology Strategy Advisory Group (ITSAG)

ISO/COUNCIL/CSC/FIN - Council Standing Committee on Finance (CSC/FIN)
ISO/COUNCIL/CSC/NOM - Council Standing Committee for Review of Nominations
ISO/COUNCIL/CSC/OVE - Council Standing Committee on Oversight
ISO/COUNCIL/CSC/SP - Council Standing Committee on Strategy and Policy
ISO/COUNCIL/CSC/FIN/AHG 1 - Ad Hoc Advisory Group on Donor relations

ISO/COPOLCO/TG 3 - Value proposition of COPOLCO
ISO/COPOLCO/TG 6 - COPOLCO Governance
ISO/COPOLCO/TG 7 - Review of COPOLCO working groups task group
ISO/COPOLCO/TG 8 - COPOLCO Procedures
ISO/COPOLCO/WG 1 - Chair's Advisory Group
ISO/COPOLCO/WG 11 - Revision of Guide 74
ISO/COPOLCO/WG 16 - Revision of ISO/IEC Guide 41
ISO/COPOLCO/WG 18 - Consumer issues in services
ISO/COPOLCO/WG 2 - Key areas for consumers
ISO/COPOLCO/WG 20 - Communication and outreach working group
ISO/COPOLCO/WG 3 - Consumer participation and training
ISO/COPOLCO/WG 4 - Product safety
ISO/COPOLCO/WG 5 - Consumer protection in the global market place
ISO/COPOLCO/WG 9 - Key areas group Key persons


ISO/IT/WG 10 - Online collaborative authoring user group
ISO/IT/WG 5 - XML Project
ISO/IT/WG 8 - Single Sign-on Federation
ISO/IT/WG 9 - seamless eCommittees maintenance


ISO/REMCO/AHG 4 - Purity RMs for small organic molecules
ISO/REMCO/CAG - Chairman Advisory Group
ISO/REMCO/WG 10 - Definitions, including review of ISO Guide 30
ISO/REMCO/WG 13 - RMs for qualitative analysis - Testing of nominal properties
ISO/REMCO/WG 14 - Revision of ISO Guide 31
ISO/REMCO/WG 15 - Metrological traceability
ISO/REMCO/WG 16 - Revision of Guide 35
ISO/REMCO/WG 17 - Liaison coordination
ISO/REMCO/WG 18 - Organic purity reference materials
ISO/REMCO/WG 19 - Purity RMs for inorganic materials
ISO/REMCO/WG 3 - Categories of certified reference materials
ISO/REMCO/WG 4 - Transportation
ISO/REMCO/WG 6 - information services
ISO/REMCO/WG 8 - Guide on quality control materials
ISO/REMCO/WG 9 - Revision of Guide 33


ISO/TA/MENA STAR - Strengthen institutional infrastructure on standards & regulations

ISO/IEC JTC 1/JAG - JTC 1 ADVISORY GROUP


ISO/IEC JTC 1/SC 40/AHG 1 - Review of ISO/IEC 38500 family
ISO/IEC JTC 1/SC 40/CAG 1 - Chairman Advisory Group
ISO/IEC JTC 1/SC 40/WG 1 - Governance of InformationTechnology
ISO/IEC JTC 1/SC 40/WG 2 - Service management – Information technology
ISO/IEC JTC 1/SC 40/WG 3 - IT-enabled services / Business process outsourcing
ISO/IEC JTC 1/SC 40/WG 4 - IT Service management of infrastructure


ISO/TC 154/CAG - Co-ordination Advisory Group
ISO/TC 154/JWG 1 - Joint syntax working group (with UN/ECE)
ISO/TC 154/JWG 8 - Joint logistic data contents and process working group (with UN/ECE)
ISO/TC 154/WG 4 - e-document
ISO/TC 154/WG 5 - Representation of dates and times
ISO/TC 154/WG 6 - Trusted eCommunications
ISO/TC 154/WG 7 - Digital business


ISO/TC 211/AG 1 - Outreach advisory group
ISO/TC 211/AG 10 - XML maintenance group (XMG)
ISO/TC 211/AG 11 - Advisory group to support UN-GGIM and other related UN activities
ISO/TC 211/AG 12 - Control body for the ISO geodetic register
ISO/TC 211/AG 13 - Land cover and land use
ISO/TC 211/AG 2 - Advisory group on strategy
ISO/TC 211/AG 3 - Programme maintenance group (PMG)
ISO/TC 211/AG 4 - Joint advisory group (JAG) ISO/TC 211 – OGC
ISO/TC 211/AG 5 - Harmonized model maintenance group (HMMG)
ISO/TC 211/AG 6 - Group for Ontology Maintenance (GOM)
ISO/TC 211/AG 7 - Terminology maintenance group (TMG)
ISO/TC 211/AHG 3 - Non-relational database technologies
ISO/TC 211/AHG 5 - Automated documentation
ISO/TC 211/AHG 6 - Digital transformation of public administration (e-Government)
ISO/TC 211/AHG 7 - Establishing and maintaining ISO registers
ISO/TC 211/AHG 8 - Smart cities
ISO/TC 211/AHG 9 - Representing time
ISO/TC 211/CAG 1 - Chair’s advisory group
ISO/TC 211/JWG 11 - Joint ISO/TC 211 - ISO/TC 204 WG: GIS-ITS
ISO/TC 211/WG 1 - Framework and reference model
ISO/TC 211/WG 10 - Ubiquitous public access
ISO/TC 211/WG 4 - Geospatial services
ISO/TC 211/WG 6 - Imagery
ISO/TC 211/WG 7 - Information communities
ISO/TC 211/WG 8 - Location based services
ISO/TC 211/WG 9 - Information management

ISO/IEC JTC 1/SC 27/AG 1 - Management Advisory Group
ISO/IEC JTC 1/SC 27/AG 2 - Trustworthiness
ISO/IEC JTC 1/SC 27/AG 3 - Concepts and Terminology
ISO/IEC JTC 1/SC 27/AG 4 - Data security
ISO/IEC JTC 1/SC 27/AG 5 - Strategy
ISO/IEC JTC 1/SC 27/AG 6 - Operations
ISO/IEC JTC 1/SC 27/AG 7 - Communication and Outreach (AG-CO)
ISO/IEC JTC 1/SC 27/CAG - Chair’s Advisory Group
ISO/IEC JTC 1/SC 27/JWG 6 - Joint ISO/IEC JTC1/SC 27 - ISO/TC 22/SC 32 WG : Cybersecurity requirements and evaluation activities for connected vehicle devices
ISO/IEC JTC 1/SC 27/WG 1 - Information security management systems
ISO/IEC JTC 1/SC 27/WG 2 - Cryptography and security mechanisms
ISO/IEC JTC 1/SC 27/WG 3 - Security evaluation, testing and specification
ISO/IEC JTC 1/SC 27/WG 4 - Security controls and services
ISO/IEC JTC 1/SC 27/WG 5 - Identity management and privacy technologies

ISO/IEC JTC 1/SC 32/WG 1 - eBusiness
ISO/IEC JTC 1/SC 32/WG 2 - MetaData
ISO/IEC JTC 1/SC 32/WG 3 - Database language
ISO/IEC JTC 1/SC 32/WG 4 - SQL/Multimedia and application packages
ISO/IEC JTC 1/SC 32/WG 6 - Data usage


ISO/TC 184/SC 4/AG 0 - Change management advisory group
ISO/TC 184/SC 4/AG 2 - Implementation Forum
ISO/TC 184/SC 4/AG 3 - Core terminology for industrial data
ISO/TC 184/SC 4/AHG 1 - Core Industrial data set of terms
ISO/TC 184/SC 4/AHG 2 - Nuclear digital ecosystem specification
ISO/TC 184/SC 4/AHG 3 - UUID management for industrial data
ISO/TC 184/SC 4/JWG 16 - Joint ISO/TC 184/SC 4 - ISO/IEC JTC 1/SC 24 - ISO/TC 171/SC 2 WG: Formats for visualization and other derived forms of product data
ISO/TC 184/SC 4/JWG 24 - Joint ISO/TC 184/SC 4 - IEC SC3D WG: Use of IEC CDD for ISO data dictionaries and ontologies
ISO/TC 184/SC 4/PPC - Policy and planning committee
ISO/TC 184/SC 4/QC - Quality committee
ISO/TC 184/SC 4/TF 1 - ISO 10303 SMRL architecture innovation
ISO/TC 184/SC 4/TF 2 - SC 4 reference model for industrial data
ISO/TC 184/SC 4/WG 11 - Implementation methods and conformance methods
ISO/TC 184/SC 4/WG 12 - STEP product modelling and resources
ISO/TC 184/SC 4/WG 13 - Industrial Data Quality
ISO/TC 184/SC 4/WG 15 - Digital manufacturing
ISO/TC 184/SC 4/WG 16 - Formats for visualization and other derived forms of product data
ISO/TC 184/SC 4/WG 2 - Standard for the neutral representation of standard parts
ISO/TC 184/SC 4/WG 21 - SMRL Validation Team
ISO/TC 184/SC 4/WG 22 - Reference data validation team
ISO/TC 184/SC 4/WG 23 - Vocabulary validation team
ISO/TC 184/SC 4/WG 3 - Oil, Gas, Process and Power
ISO/TC 184/SC 4/WG 8 - Joint SC 4 - SC 5 WG : Manufacturing process and management information

Amendment/Corrigendum number cannot be rendered with a colon

irb(main):011:0> Pubid::Iso::Identifier.new(number: 17301, part: 1, publisher: "ISO", language: "en", year: 2016, amendments: [{number: 1, stage: "NP"}]).to_s
=> "ISO 17301-1:2016/NP Amd :1(en)"

The output is wrong, it should be: "ISO 17301-1:2016/NP Amd 1(en)"

Extract Committee Document Identifiers (N-documents) into a separate Identifier subclass

Perhaps we should parse N-documents separately from the standard deliverables like IS, TS, TR, etc. Can we have a different class for them?

The types of standard deliverables are the ones we usually parse. Thanks.

e.g.

Pubid::Iso.parse("ISO/TC 184/SC 4 N1000").class
# => Pubid::Iso::Identifier::CommitteeDocument
Pubid::Iso.parse("ISO 10001").class
# => Pubid::Iso::Identifier::Deliverable
Pubid::Iso.parse("ISO 10001").kind
# => :international_standard

Originally posted by @ronaldtse in #46 (comment)

TR, TS, PAS types with DIS or FDIS stages need to use abbreviations

irb(main):031:0> Pubid::Iso::Identifier.new(number: 17301, part: "1-1", publisher: "ISO", language: "en", year: 2016, type: "TS", stage: "DIS", copubli
sher: ["IEC","IEEE"]).to_s
=> "ISO/IEC/IEEE TS DIS 17301-1-1:2016(en)"

This should have been "ISO/IEC/IEEE DTS 17301-1-1:2016(en)" (instead of "TS DIS", it is "DTS").

The same applies to:

  • TS DIS => DTS
  • TS FDIS => FDTS
  • TR DIS => DTR
  • TR FDIS => FDTR
  • PAS DIS => DPAS
  • PAS FDIS => FDPAS

Add documentation on how to use gem and how PubID works

  • Basic pattern of ISO PubID
  • Explain the elements: originator, copublishers, document types, stages, standard number (and part number)
  • Dated vs undated PubID
  • PubID with language code or not. 2 types of language codes (single letter vs 3166).
  • 3 languages of PubID (English, French, Russian)
  • URN according to RFC 5141

Option to render language in "1-letter language code" vs "2-letter ISO 639-1 language code"

ISO identifiers can have a language suffix under certain circumstances. I am not seeing this supported in the gem currently.

https://github.com/metanorma/metanorma-iso/blob/main/lib/metanorma/iso/front_id.rb

def id_langsuffix(docnum, node)
        lang = node.attr("language") || "en"
        suffix = case lang
                 when "en" then "(E)"
                 when "fr" then "(F)"
                 when "ru" then "(R)"
                 else
                   "(X)"
                 end
        "#{docnum}#{suffix}"
      end

So I expect to be able to pass to a "language" parameter of initialisation the ISO language codes "en", "fr", "ru", and if the parameter is present, that "(E)", "(F)", "(R)" be appended to the identifier.

Support "NWIP" as an alias for "NP" stage

From relaton/relaton-iso#124

The identifier is:

ISO/NWIP 19144-4

Which technically should have been:

ISO/NP 19144-4

Loading the former presents this error:

[relaton] ERROR: ISO/NWIP 19144-4 -- Failed to match sequence (stage:'Fpr'? 'WD/'? (type:GUIDE_PREFIX SPACE)? (stage:STAGE SPACE)? ORIGINATOR (SPACE / '/') (TC_DOCUMENT_BODY / STD_DOCUMENT_BODY)) at line 1 char 5.
cause: Failed to match sequence (stage:'Fpr'? 'WD/'? (type:GUIDE_PREFIX SPACE)? (stage:STAGE SPACE)? ORIGINATOR (SPACE / '/') (TC_DOCUMENT_BODY / STD_DOCUMENT_BODY)) at line 1 char 5.
`- Expected one of [TC_DOCUMENT_BODY, STD_DOCUMENT_BODY] at line 1 char 5.
   |- Failed to match sequence ((tctype:TCTYPE '/'?){0, } SPACE tcnumber:DIGITS ('/' ((sctype:SCTYPE SPACE scnumber:DIGITS '/')? wgtype:WGTYPE SPACE wgnumber:DIGITS / sctype:SCTYPE (SPACE / '/' wgtype:WGTYPE SPACE) scnumber:DIGITS))? ' N' SPACE? number:DIGITS) at line 1 char 5.
   |  `- Expected " ", but got "N" at line 1 char 5.
   `- Failed to match sequence ((TYPE / stage:STAGE)? SPACE? ((stage:STAGE / TYPE) SPACE)? number:DIGITS ('|' joint_document:('IDF' SPACE DIGITS))? PART? ITERATION? (SPACE? ':' YEAR)? (AMENDMENT CORRIGENDUM? / CORRIGENDUM)? EDITION? LANGUAGE?) at line 1 char 5.
      `- Expected at least 1 of \\d at line 1 char 5.
         `- Failed to match \\d at line 1 char 5.

This is probably a pubid-iso issue. When receiving "ISO/NWIP xxx" it should normalise to "ISO/NP xxx".

Support parsing "ISO 8601-1:2019/FDAM 1:2022(E)" identifier

It is rather strange that ISO uses both "FDAM 1" and "FDAmd 1" abbreviations.

The project page uses "FDAmd 1":
Screen Shot 2022-08-15 at 2 09 04 AM

The filename is also "FDAmd 1":
Screen Shot 2022-08-15 at 2 09 20 AM

But the document uses "FDAM 1".

We probably should distinguish this as one more ISO identifier rendering option (choosing between "FDAmd" and "FDAM"; "DAmd" and "DAM").

PubIDs to parse and generate:

  • ISO 8601-1:2019/FDAM 1:2022(E)
  • ISO 8601-1:2019/FDAM 1:2022
  • ISO 8601-1:2019/FDAM 1
  • ISO 8601-1:2019/DAM 1:2022(E)
  • ISO 8601-1:2019/DAM 1:2022
  • ISO 8601-1:2019/DAM 1

Originally posted by @ronaldtse in metanorma/metanorma-iso#758 (comment)

Must accept year for Amendments and Corrigendum

irb(main):012:0> Pubid::Iso::Identifier.new(number: 17301, part: 1, publisher: "ISO", language: "en", year: 2016, amendments: [{number: 1, stage: "NP",
 year: 2017}]).to_s
gems/pubid-core-0.2.2/lib/pubid/core/supplement.rb:6:in `initialize': unknown keyword: :year (ArgumentError)                                                                                                                                     
        from gems/pubid-iso-0.1.10/lib/pubid/iso/supplement.rb:6:in `initialize'          
        from gems/pubid-core-0.2.2/lib/pubid/core/identifier.rb:11:in `new'               
        from gems/pubid-core-0.2.2/lib/pubid/core/identifier.rb:11:in `block in initialize'                                                                                                                                                      
        from gems/pubid-core-0.2.2/lib/pubid/core/identifier.rb:10:in `map'
        from gems/pubid-core-0.2.2/lib/pubid/core/identifier.rb:10:in `initialize'
	from gems/pubid-iso-0.1.10/lib/pubid/iso/identifier.rb:10:in `initialize'

The output should be: "ISO 17301-1:2016/NP Amd 1:2017"

(URGENT) Add setter method `pubid.year=` for PubID

There is a document without a year in hit[:title] but we cite it by a reference with year relaton/relaton-iso#118

However the document has a year in its metadata hit.hit[:year]. So in case a reference contains year, and a document has no year in hit[:title], and a year from hit.hit[:year] match to the year in the reference we need to add year to pubid. Perhaps we need pubid.year= method.

Provide letter stage code mapping/linking to/from stage numbers (and URN stages)

I found a problem with pubid-iso, I can't update stage using number for Pubid::Iso::Identifier.

pubid = Pubid::Iso::Identifier.parse("ISO/IEC 17025:2005")
pubid.stage = "50.00"

pubid.to_s will return error because it's expecting one of stages abbreviation (like FDIS or CD)

It's ok, until I want to generate URN with stage number like "90.93", with current implementation it's impossible.

Add additional samples that include "ISO/CD" and "ISO/CD2" prefixes

Somehow we only have very few "CD" stage PubIDs.

More samples to add:

IEC/CD 80000-15
ISO/CD 20200
ISO/CD 20404
ISO/CD 21219-17
ISO/CD 22102
ISO/CD 22342
ISO/CD 23237
ISO/CD 23698
ISO/CD 24013
ISO/CD 24212.2
ISO/CD 24384
ISO/CD 29585
ISO/CD 30416
ISO/CD 33401
ISO/CD 37173
ISO/CD 45001.2
ISO/CD 4631
ISO/CD 4865
ISO/CD 5114-1
ISO/CD 5476
ISO/CD 8060
ISO/CD 9241-221
ISO/CD2 14065:2018
ISO/IEC 29187-1:2013
ISO/IEC AWI 5339
ISO/IEC AWI TR 24030
ISO/IEC CD 11404
ISO/IEC CD 17021-CD2
ISO/IEC CD 17366
ISO/IEC CD 18004
ISO/IEC CD 19788-1
ISO/IEC CD 20009-3
ISO/IEC CD 23008-7
ISO/IEC CD 23264-2.2
ISO/IEC CD 24741
ISO/IEC CD 24789-1.4
ISO/IEC CD 27032.3
ISO/IEC CD 27071.2
ISO/IEC CD 30108-2
ISO/IEC CD 3532-2
ISO/IEC CD 42001.2
ISO/IEC CD 4922-2
ISO/IEC CD 5392
ISO/IEC CD 9075-14
ISO/IEC CD 9075-16.2
ISO/IEC CD 9075-4
ISO/IEC WD 17823
ISO/IEC WD 18584
ISO/IEC WD 23773-1
ISO/IEC WD 24759.2
ISO/IEC WD 29187-1
ISO/IEC WD 4983
ISO/IEC WD 9868
ISO/IEC WD 9899
ISO/PWI 18183-3
ISO/PWI 19171

Amd/Cor stage rendering should be kept separate from base document PubID

Now we place stage for documents with amendments/corrigendum and documents without in different places.
For "ISO/IEC 14496-12/CD Amd 4" we have stage after number, but for "ISO/IEC TR CD 20943-5" it's placed before document number.
Should we generate something like "ISO/IEC CD 14496-12/Amd 4"?
Or "ISO/IEC TR 20943-5/CD" instead of "ISO/IEC TR CD 20943-5"?

Provide generator usable by metanorma-iso

The constructor with documentation provided remains inadequate for the needs of metanorma-iso. I cannot work out how to generate the identifiers I need to, and I do not have the time to reimplement them. I need this gem to generate identifiers given the information I provide.

So, I will provide the following information. I require you to provide me with code to convert that into the constructor you expect, or else implement fields to deal with them. I have no desire to hunt down the definition of Pubid::Core::Supplement, to work out how to create Corrigenda. It is your responsibility to convey to me as a user how to do so.

The parameters I can supply are:

number
part: I DO NOT SEE WHERE TO PROVIDE THIS
amendment_number: YOU NEED TO PROVIDE THE CODE FOR HOW TO GENERATE THIS
corrigendum_number: DITTO
language: I DO NOT SEE WHERE TO PROVIDE THIS
urn_stage
stage: I HAVE ALREADY ARGUED I SHOULD NOT BE REQUIRED TO LOOK THIS UP OUTSIDE OF THIS GEM
type: I DO NOT SEE WHERE TO PROVIDE THIS. The gem seems to only support DIR and not TR TS in class initialisation. That makes it unusable
year: I DO NOT SEE WHERE TO PROVIDE THIS
copublisher: for joint publications

Errors in ID generation

I think there is a clear misunderstanding in how this gem is to be used.

The tests for this gem round trip from parsing ISO IDs, to constructing IDs based on the parse.

The correct way of testing this gem is to construct identifier class instances from parameters, and then compare the results to the defined exemplars.

The reason the current tests are flawed are:

  • There are several attribute values that are not rendered, e.g. "IS"; they are not parsed from ISO IDs, but are present when an identifier is generated from a constructor
  • There are several attribute values that are transformed for rendering; e.g. language values
  • Users are being given no guidance in how to use constructors, which is an acute problem given that the documentation is so sparse.

I have attempted to use this gem with the identifiers generated by metanorma-iso in its testing. None of them are correct. These must be fixed.

Pubid::Iso::Identifier.new() parameters, expected value, generated value:

ISO. 17301-1. 2016. AMENDMENT 1. 2017.

irb(main):005:0> Pubid::Iso::Identifier.new(number: 17301, part: 1).to_s
=> " 17301-1"
irb(main):011:0> Pubid::Iso::Identifier.new(number: 17301, part: 1, publisher: "ISO", language: "en", year: 2016, amendments: [{number: 1, stage: "NP"}]).to_s
=> "ISO 17301-1:2016/NP Amd :1(en)"
irb(main):012:0> Pubid::Iso::Identifier.new(number: 17301, part: 1, publisher: "ISO", language: "en", year: 2016, amendments: [{number: 1, stage: "NP",
 year: 2017}]).to_s
gems/pubid-core-0.2.2/lib/pubid/core/supplement.rb:6:in `initialize': unknown keyword: :year (ArgumentError)                                                                                                                                     
        from gems/pubid-iso-0.1.10/lib/pubid/iso/supplement.rb:6:in `initialize'          
        from gems/pubid-core-0.2.2/lib/pubid/core/identifier.rb:11:in `new'               
        from gems/pubid-core-0.2.2/lib/pubid/core/identifier.rb:11:in `block in initialize'                                                                                                                                                      
        from gems/pubid-core-0.2.2/lib/pubid/core/identifier.rb:10:in `map'
        from gems/pubid-core-0.2.2/lib/pubid/core/identifier.rb:10:in `initialize'
	from gems/pubid-iso-0.1.10/lib/pubid/iso/identifier.rb:10:in `initialize'
	from (irb):12:in `new'
	from (irb):12:in `<main>'
	from gems/irb-1.4.1/exe/irb:11:in `<top (required)>'
  • #78
  • #79
  • #69 (Must allow rendering language differently between "E" and "en")
  • #48 (Should not have to look up the state abbreviation based on the urn_stage, that should be the gem's job)
  • #80

ISO 17301-1 Amd 1 DIS

irb(main):007:0> Pubid::Iso::Identifier.new(number: 17301, part: 1, publisher: "ISO", language: "en", year: 2016, amendments: [{number: 1, stage: "DIS"
}]).to_s
=> "ISO 17301-1:2016/DIS Amd :1(en)"

This is wrong. The correct output is (depending on rendering options of #69):

  • "ISO 17301-1:2016/DAmd 1(en)" (again, (en) or (E) depends on rendering options, the latter should be default)
  • "ISO 17301-1:2016/DAM 1(en)"

ISO 17301-1 Amd 1 (stage = published)

irb(main):017:0> Pubid::Iso::Identifier.new(number: 17301, part: 1, publisher: "ISO", language: "en", year: 2016, amendments: [{number: 1, stage: "IS"}
]).to_s
=> "ISO 17301-1:2016/IS Amd :1(en)"
irb(main):018:0> Pubid::Iso::Identifier.new(number: 17301, part: 1, publisher: "ISO", language: "en", year: 2016, amendments: [{number: 1, stage: "IS"}
]).urn
=> "urn:iso:std:iso:17301:-1:stage-60.00:amd:1:v:en"
irb(main):019:0> Pubid::Iso::Identifier.new(number: 17301, part: 1, publisher: "ISO", language: "en", year: 2016, amendments: [{number: 1}]).to_s
=> "ISO 17301-1:2016/Amd :1(en)"
irb(main):020:0> Pubid::Iso::Identifier.new(number: 17301, part: 1, publisher: "ISO", language: "en", year: 2016, amendments: [{number: 1}]).urn
=> "urn:iso:std:iso:17301:-1:amd:1:v:en"

Notice that the Identifier object differentiates the "no-stage" vs "IS stage" (published) in the URN, the rendering of the "IS stage" identifier is wrong.

When the stage is "IS", the output should be "ISO 17301-1:2016/Amd 1(en)", not "ISO 17301-1:2016/IS Amd :1(en)".

This behavior also applies to "Cor".

ISO 17301-1/CD Cor 3

Generated: "ISO 17301-1/CD Cor :3"
Correct: "ISO 17301-1/CD Cor 3"

ISO 17301-1, FDIS stage, Cor 3 => "ISO 17301-1/FD Cor 3"

Generated: "ISO 17301-1/FD Cor :3"
Correct: "ISO 17301-1/FDCor 3"

Stage iteration identifiers in Amd or Cor

Stage iteration is supported in the normal pubid.

irb(main):024:0> Pubid::Iso::Identifier.new(number: 17301, part: 1, publisher: "ISO", language: "en", year: 2016, stage: "WD", iteration: 2).to_s
=> "ISO/WD 17301-1.2:2016(en)"
  1. But we should throw an error when given an iteration number in "IS" stage:
irb(main):025:0> Pubid::Iso::Identifier.new(number: 17301, part: 1, publisher: "ISO", language: "en", year: 2016, stage: "IS", iteration: 2).to_s
=> "ISO/IS 17301-1.2:2016(en)"

This is filed in #82.

  1. The iteration number is also not supported in Amd or Cor.
irb(main):026:0> Pubid::Iso::Identifier.new(number: 17301, part: 1, publisher: "ISO", language: "en", year: 2016, amendments: [{number: 1, stage:"WD", 
iteration:2}]).urn
gems/3.1.0/gems/pubid-core-0.2.2/lib/pubid/core/supplement.rb:6:in `initialize': unknown keyword: :iteration (ArgumentError)                                                                                                                                

TR and TS documents with subparts

irb(main):030:0> Pubid::Iso::Identifier.new(number: 17301, part: "1-1", publisher: "ISO", language: "en", year: 2016, type: "TS", copublisher: ["IEC","IEEE"]).to_s
=> "ISO/IEC/IEEE TS 17301-1-1:2016(en)"

This output is correct.

TR and TS documents with DIS or FDIS stages

irb(main):031:0> Pubid::Iso::Identifier.new(number: 17301, part: "1-1", publisher: "ISO", language: "en", year: 2016, type: "TS", stage: "DIS", copubli
sher: ["IEC","IEEE"]).to_s
=> "ISO/IEC/IEEE TS DIS 17301-1-1:2016(en)"

This should have been "ISO/IEC/IEEE DTS 17301-1-1:2016(en)" (instead of "TS DIS", it is "DTS").

irb(main):032:0> Pubid::Iso::Identifier.new(number: 17301, part: "1-1", publisher: "ISO", language: "en", year: 2016, type: "TS", stage: "FDIS", copublisher: ["IEC","IEEE"]).to_s
=> "ISO/IEC/IEEE TS FDIS 17301-1-1:2016(en)"

This should have been "ISO/IEC/IEEE FDTS 17301-1-1:2016(en)" (instead of "TS FDIS", it is "FDTS").

The same applies to type: "TR".

ISO Directives

Right now:

irb(main):040:0> Pubid::Iso::Identifier.parse("ISO DIR 1").type
=> nil
irb(main):041:0> Pubid::Iso::Identifier.parse("ISO DIR 1").dir
=> "DIR"

Why don't we use the type attribute to hold DIR, but a new dir attribute?

Pre-defined option (`to_s(...)`) of rendering document identifier vs website

The document identifiers used on the ISO website, vs those used in the document, are different.

Example: ISO 8601-1:2019/DAmd 1

The website uses “ISO 8601-1:2019/DAmd 1(en)"
ISO OBP
Screen Shot 2022-08-28 at 12 11 51 PM

The document uses “ISO 8601-1:2019/DAM 1"
https://github.com/CalConnect/iso-8601-1-amd1/tree/main/submission/20210727-damd-proof
Screen Shot 2022-08-28 at 12 18 14 PM

The document states the “Reference number” as “ISO 8601-1:2019/DAM 1:2021(E)”.
Screen Shot 2022-08-28 at 12 18 50 PM

Similarly, for FDIS:

Website for undated:
https://sd.iso.org/projects/project/81801/overview
Screen Shot 2022-08-28 at 12 20 06 PM

Document for undated:
https://github.com/CalConnect/iso-8601-1-amd1/tree/main/submission/20220726-fdam-proof
Screen Shot 2022-08-28 at 12 20 17 PM

Document for dated:
Screen Shot 2022-08-28 at 12 20 33 PM

It seems that there are at least 4 types of identifiers here:

  1. Website undated, no language: ISO 8601-1:2019/DAmd 1 (seen on the ISO Projects site)
  2. Website dated, with language: ISO 8601-1:2019/DAmd 1:2021(en) (seen on the ISO OBP)
  3. Document undated, no language: ISO 8601-1:2019/DAM 1 (document cover top)
  4. Document dated, with language: ISO 8601-1:2019/DAM 1:2021(E) (document cover bottom, header and footer)

And in the bibliographic references, these are used:
5. Document undated, without language: ISO 8601-1:2019/DAM 1
6. Document dated, without language: ISO 8601-1:2019/DAM 1:2021

i.e.

  • "Undated" identifiers seem to never have language
  • "Dated" identifiers can clearly have language (as in the document reference) and no language.

This means that we need to have these options for rendering:

  • "no language code" vs "1 letter code" vs "2 letter code" #69
  • Short form vs long form "stage+type": DAM vs DAmd (this ticket)
  • Dated vs undated: whether there is edition year rendered
  • "edition" is always not rendered

We can conclude that we need the following types of predefined formats:

  • instance reference number: 1 letter language code + short form (DAM) + dated
  • instance reference number long: 2 letter language code + long form (DAmd) + dated
  • reference dated: no language code + short form (DAM) + dated
  • reference dated long: no language code + short form (DAM) + dated
  • reference undated: no language code + short form (DAM) + undated
  • reference undated long: 1 letter language code + long form (DAmd) + undated

One way to realize these predefined formats are:

> pubid = Pubid::Iso::Identifier.new(
  number: "8601", 
  part: "1", 
  year: 2019, 
  edition: 1, 
  amendment: {number: "1", year: "2021", stage: "DIS"}
)
> pubid.to_s(:ref_num_short)
=> "ISO 8601-1:2019/DAM 1:2021(E)"
> pubid.to_s(:ref_num_long)
=> "ISO 8601-1:2019/DAmd 1:2021(en)"
> pubid.to_s(:ref_dated)
=> "ISO 8601-1:2019/DAM 1:2021"
> pubid.to_s(:ref_dated_long)
=> "ISO 8601-1:2019/DAmd 1:2021"
> pubid.to_s(:ref_undated)
=> "ISO 8601-1:2019/DAM 1"
> pubid.to_s(:ref_undated_long)
=> "ISO 8601-1:2019/DAmd 1"

Edition and PubID

If a document has edition number the URN should contain it. For example urn:iso:std:iso:19115:-2:stage-60.60:ed-2.
But if a Pubid::Iso::Identifier instance has edition attribute it also produces PubID with edition ISO 19115-2:2019 ED2.
I discussed it with @opoudjis and he assure me that edition shouldn't present in primary PubID identifier.
It seems we need to implement rendering PubID without edition even when edition presents.
CC @ronaldtse

When Amd/Cor stage is IS, the output should not include "IS"

irb(main):017:0> Pubid::Iso::Identifier.new(number: 17301, part: 1, publisher: "ISO", language: "en", year: 2016, amendments: [{number: 1, stage: "IS"}
]).to_s
=> "ISO 17301-1:2016/IS Amd :1(en)"

When the stage is "IS", the output should be "ISO 17301-1:2016/Amd 1(en)", not "ISO 17301-1:2016/IS Amd :1(en)".

This behavior applies to both "Amd" and "Cor".

Provide part without dash

Pubid::Iso::Identifier#part instance method returns part with dash -1. We need part number without dash to create RelatonIsoBib::StructuredIdentifier object.

Render edition version for URN identifiers

Amendment without year has number "1" before version. Edition has a version (ed-2:v1).

Yes we should do this.

RFC 5141 also has version for edition:

   o  Docversion handling:

      urn:iso:std:iso:9999:-1:ed-1:v2:en
      refers to the corrected English version of the 1st edition of ISO
      9999-1

      urn:iso:std:iso:9999:-1:ed-1:v1-amd1:en
      refers to the version comprising the 1st edition of ISO 9999-1,
      incorporating the latest version of Amendment 1, in English

      urn:iso:std:iso:9999:-1:ed-1:v1:en,fr:amd:1:v2:en
      refers to the 2nd version of Amendment 1, in English, which amends
      the 1st version of edition 1 of ISO 9999-1, in English/French
      (bilingual document)

      urn:iso:std:iso:9999:-1:ed-1:v1-amd1.v1:en,fr:amd:2:v2:en
      (isoversion scheme)
      refers to the corrected version of Amendment 2, in English, which
      amends the document comprising the 1st version of edition 1 of ISO
      9999-1 incorporating the 1st version of Amendment 1, in English/
      French (bilingual document)

      urn:iso:std:iso:5817:ed-2:v2:en:cor:1:en
      refers to the 1st version of Technical Corrigendum 1, in English,
      which amends the corrected version of edition 2 of ISO 5817, in
      English

It describes docversion:

   docversion    = "v" (simpleversion / isoversion)

   simpleversion = DIGITS

      <docversion> designates the version number of a document's
      <edition>.  It is altered by correction (corrected version;
      Technical Corrigendum) or amendment (Amendment; Addendum) and is
      distinct from a revision, which changes the edition number.

      In the <simpleversion>, the first version published is 1, and each
      subsequent correction or amendment increases the version number by
      1.

      If no <docversion> is specified, the reference is to the highest
      version number available for the denoted <edition>.

      Current values of <simpleversion>:

         1 - first version published

         2 - corrected version published

   isoversion    = baseversion *includedsuppl

   baseversion   = DIGITS

Originally posted by @ronaldtse in #7 (comment)

Internationalized PubIDs: French

ISO provides French PubIDs, with these following changes:

  • "ISO Guide NNN" => "Guide ISO NNN"
  • "ISO/IEC" => "ISO/CEI"
  • "Cor N" => "Cor.N"
  • "Amd N" => "Amd.N"
GUIDE ISO/CEI 71:2001(F)
Guide ISO 34:2009
Guide ISO/CEI 37:1995
Guide ISO/CEI 50:
Guide ISO/CEI 51:1999
Guide ISO/IEC 59:1994
ISO 1247:1974/Amd.1:1982(fr)
ISO 13017:2012/Amd.1:2015(fr)
ISO 14687-1:1999/Cor.1:2001(fr)
ISO 178:2010/Amd.1:2013(fr)
ISO 5167-5:2016(fr)
ISO 8624:2011/Amd.1:2015(fr)
ISO Guide 73:2009(fr)
ISO/CEI 10164-5:1993/Amd.1:1995/Cor.1:1996(fr)
ISO/CEI 17021-3:2017(fr)
ISO/CEI 17024:2012(fr)
ISO/CEI 17025:2005/Cor.1:2006(F)
ISO/CEI 27000:2016(fr)
ISO/CEI DIS 29500
ISO/CEI DIS 80079-20-2(fr)
ISO/CEI FDIS 15408-1
ISO/IEC 17025:2005/Cor.1:2006(fr)
ISO/IEC 26300:2006/Amd.1:2012 
ISO/IEEE 11073-30200:2004(F)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.