Giter Site home page Giter Site logo

pubid-itu'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-itu's People

Contributors

camobap avatar mico avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pubid-itu's Issues

Need contribution identifiers

One further identifier type has emerged this year, while I have been waiting on #39:

Pubid::Itu::Identifier.create(**{type: :contribution, 
  group: "SG7", number: 1000}) == "SG7-C1000"

Internationalisation for ITU identifiers

You have not implemented internationalisation. I refer you again to: #39 (comment), and https://www.itu.int/pub/T-SP-OB.1283-2024 : go to the annex for each language, and see the footer for the desired abbreviated form.

You have:

let(:params) { { type: :annex, base: Identifier.create(sector: "T", series: "OB", number: 1) } }

          it "renders annex to identifier" do
            expect(subject.to_s).to eq("Annex to ITU-T OB.1")
          end

I would like to be able to do the following:

Given an additional parameter i18n-lang, which defaults to "en"

Pubid::Itu::Identifier.create(**{type: :annex, 
  base: Pubid::Itu::Identifier.create(sector: "T", series: "OB", number: 1283)}) == 
  "Annex to ITU OB 1283-E"

Pubid::Itu::Identifier.create(**{type: :annex, i18n-lang: "en",
  base: Pubid::Itu::Identifier.create(sector: "T", series: "OB", number: 1283)}) == 
  "Annex to ITU OB 1283-E "

Pubid::Itu::Identifier.create(**{type: :annex, i18n-lang: "fr",
  base: Pubid::Itu::Identifier.create(sector: "T", series: "OB", number: 1283)}) == 
  "Annexe au BE de l'UIT 1000"

Pubid::Itu::Identifier.create(**{type: :annex, i18n-lang: "zh-Hans",
  base: Pubid::Itu::Identifier.create(sector: "T", series: "OB", number: 1283)}) == 
  "国际电联第1283期《操作公报》附件"

Pubid::Itu::Identifier.create(**{type: :annex, i18n-lang: "ar",
  base: Pubid::Itu::Identifier.create(sector: "T", series: "OB", number: 1283)}) == 
  "ملحق ابلنشرة التشغيلية رقم 1283"

Pubid::Itu::Identifier.create(**{type: :annex, i18n-lang: "es",
  base: Pubid::Itu::Identifier.create(sector: "T", series: "OB", number: 1283)}) == 
  "Anexo al BE de la UIT N.º 1283"

Pubid::Itu::Identifier.create(**{type: :annex, i18n-lang: "ru",
  base: Pubid::Itu::Identifier.create(sector: "T", series: "OB", number: 1283)}) == 
  "Приложение к ОБ 1283 МСЭ"

I do not have confidence that you will implement this, so I will defer this requirement unless @ronaldtse says otherwise.

Originally posted by @opoudjis in #39 (comment)

Parse annexes

ITU-T Z.100 Annex F2 (06/2021)
ITU-T G.729 Annex A (11/1996) (https://www.itu.int/ITU-T/recommendations/rec.aspx?rec=3819)
ITU-T Z.100 Annex C2 (10/1984) (https://www.itu.int/ITU-T/recommendations/rec.aspx?rec=6667&lang=en)
ITU-T Z.100 Annex B (10/1984) (https://www.itu.int/ITU-T/recommendations/rec.aspx?rec=6665&lang=en)
ITU-T G.722.2 Annex D (01/2002)
ITU-T G.729 Annex C+ (02/2000) (https://www.itu.int/ITU-T/recommendations/rec.aspx?rec=4920&lang=en)
ITU-T G.729 Annex E (1998) Cor. 1 (02/2000) (https://www.itu.int/ITU-T/recommendations/rec.aspx?rec=5708&lang=en)

Remove "." from Operational Bulletin identifiers

#41 (comment)

In original task #4 short identifiers looks like:
ITU OB 1096

Looking at footers of OB documents it represented as something like:
Annex to ITU OB No. 1096

Do we ever should use long representation, like ITU-T Operational Bulletin No. 1096? In which case?

Add language as parameter

The current implementation is missing an optional language parameter, which is needed for the ITU-T documents we generate:

ITULANG = { "en" => "E", "fr" => "F", "ar" => "A", "es" => "S",
                  "zh" => "C", "ru" => "R" }.freeze

 def itu_id1(node, lang)
        ...
        id + (lang ? "-#{ITULANG[@lang]}" : "")
end

Operational Bulletin parsing

From https://github.com/relaton/relaton-itu/blob/main/spec/relaton_itu/pubid_spec.rb we have identifier to parse: ITU-T OB.1096 - 15.III.2016

From: relaton/relaton-itu#17

We have proposed syntax:

Syntax:

  • ITU Operational Bulletin No. {issue-number}
    • e.g. ITU Operational Bulletin No. 1096
  • ITU Operational Bulletin No. {issue-number} - {issue-date}
    • e.g. ITU Operational Bulletin No. 1096 - 15.III.2016
    • The date is not important, we just need to support the syntax but it does not help locating the link.
  • ITU OB {issue-number}
    • e.g. ITU OB 1096
    • (Users may add the date at the end)

But sector "ITU-T" is missing there. Should it be:

  • ITU-T Operational Bulletin No. {issue-number}
  • ITU-T OB {issue-number}

instead?

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.