Code Monkey home page Code Monkey logo

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

Contributors

camobap avatar mico avatar ronaldtse avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pubid-core's Issues

Name of pubid-core is incorrect and actually misleading

This gem is intended to share code between the pubid-iso and pubid-iec implementations. It is NOT the core of any other PubID parsers. It should be called "pubid-isoiec" instead. Maybe we should just combine the pubid-iso and pubid-iec gems.

Compare PubIDs: provide method to ignore year in comparison

We use references without a year to search all years publications of a document. But reference IDs withot year doesn't match to document's PubId with year. We need a way to drop year when compare PubIds.
I suggest to implement an "asymmetric" compare solution. If left operand has year then it's used, otherwise year is ignored.

# false because left operand has year, but right doesn't have or have different year.
pubid_with_year === pubid_without_year
=> false
pubid_with_year1 === pubid_with_year2
=> false

# true because left operand doesn't have year so right operand can have any year or no year at all
pubid_without_year === pubid_with_year
=> true

It blocks relaton/relaton-bsi#24 and relaton/relaton-jis#2

Incorrect rendering of part and subpart number order

After update this gem to v 1.8.6 we have:

> id = Pubid::Iso::Identifier.parse("ISO/IEC TR 29110-5-1-3:2017") # the part number is "5-1-3"
#<Pubid::Iso::Identifier::TechnicalReport:0x0000000105ad1190 @publisher="ISO", @number="29110"@11, @copublisher="IEC", @year=2017, @part=["5"@17, "1"@19, "3"@21]>

> id.to_s
"ISO/IEC TR 29110-3-1-5:2017" # the part number bcomes "3-1-5"

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.