metanorma / obp-access

Data access on ISO OBP
1 stars 3 forks source link

Add obp2sts command and related code to convert OBP HTML to STS XML #6

Open ronaldtse opened 7 months ago

ronaldtse commented 7 months ago

Add obp2sts command and related code to convert OBP HTML to STS XML.

WIP.

Fixes #7.

ronaldtse commented 6 months ago

The goal is to build a proper STS XML content for the sts gem to parse. This is done inside the sts_html.rb file through the usage of Nokogiri.

Here are the items missing.

Missing header

STS generated by this gem:

<standard xmlns="http://www.w3.org/1999/xhtml" xmlns:tbx="urn:iso:std:iso:30042:ed-1">
  <sec id="toc_iso_std_iso_5598_ed-3_v1_en_sec_foreword">
    <title>Foreword</title>
<!--...-->
  <sec id="toc_iso_std_iso_5598_ed-3_v1_en_sec_intro">
    <title>Introduction</title>
<!--...-->

Proper STS:

<standard xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:tbx="urn:iso:std:iso:30042:ed-1" xmlns:xlink="http://www.w3.org/1999/xlink" id="e1d18be9" xml:lang="en">
  <front>
    <std-meta id="profile.int">
      <title-wrap xml:lang="en">
        <intro>Safety of machinery</intro>
        <main>Safety-related parts of control systems</main>
        <compl>Part 1: General principles for design</compl>
        <full>Safety of machinery — Safety-related parts of control systems — Part 1: General principles for design</full>
      </title-wrap>
      <title-wrap xml:lang="fr">
        <intro>Sécurité des machines</intro>
        <main>Parties des systèmes de commande relatives à la sécurité</main>
        <compl>Partie 1: Principes généraux de conception</compl>
        <full>Sécurité des machines — Parties des systèmes de commande relatives à la sécurité — Partie 1: Principes
          généraux de conception</full>
      </title-wrap>
      <release-version>n</release-version>
      <std-ident>
        <originator>ISO</originator>
        <doc-type>st</doc-type>
        <doc-number>13849</doc-number>
        <part-number>1</part-number>
        <edition></edition>
        <version></version>
      </std-ident>
      <content-language>en</content-language>
      <std-ref type="undated">ISO 13849-1</std-ref>
      <std-ref type="dated">ISO 13849-1:2006-11</std-ref>
      <doc-ref>ISO 13849-1</doc-ref>
      <release-date>2006-11</release-date>
      <comm-ref></comm-ref>
      <secretariat></secretariat>
      <permissions>
        <copyright-statement>© 2006 ISO International Organization for Standardization.</copyright-statement>
        <copyright-year>2006</copyright-year>
        <copyright-holder>ISO</copyright-holder>
      </permissions>
    </std-meta>
    <sec id="introduction.int" sec-type="intro" specific-use="introduction.int">
<!--...-->

List

Generated:

      <list style="list-style-type: none" list-type="bullet">
        <list-item>
          <p><label>&#x2014;</label> to provide pertinent terms having a specific meaning in fluid power technology,</p>
        </list-item>

Proper STS:

<list list-type="alpha-lower">
          <list-item>
            <label>a</label>
            <p>Type-A standards (basis standards) give basic concepts, principles for design and general aspects that can be
              applied to machinery.</p>
          </list-item>

Missing body wrapping

Generated:

  <sec id="toc_iso_std_iso_5598_ed-3_v1_en_sec_1">
    <title>1&#xA0;&#xA0;&#xA0;Scope</title>
    <p>This document establishes the vocabulary, in English, French and German, for all fluid power systems and components, excluding aerospace applications and compressed air supply installations.</p>

Proper STS

  </front>
  <body>
    <sec id="sub-1" sec-type="scope">
      <label>1</label>
      <title>Scope</title>
      <p id="par-1-1">This part of ISO 13849 provides safety requirements and guidance on the principles for the design and
        integration of safety-related parts of control systems (SRP/CS), including the design of software. For these parts
        of SRP/CS, it specifies characteristics that include the performance level required for carrying out safety
        functions. It applies to SRP/CS, regardless of the type of technology and energy used (electrical, hydraulic,
        pneumatic, mechanical, etc.), for all kinds of machinery.</p>

Encoding of normative references

Generated:

  <sec id="toc_iso_std_iso_5598_ed-3_v1_en_sec_2">
    <title>2&#xA0;&#xA0;&#xA0;Normative references</title>
    <p>There are no normative references in this document.</p>    
  </sec>

Proper STS:

    <sec id="sub-2" sec-type="norm-refs">
      <label>2</label>
      <title>Normative references</title>
      <p id="par-2-1">The following referenced documents are indispensable for the application of this document. For dated
        references, only the edition cited applies. For undated references, the latest edition of the referenced document
        (including any amendments) applies.</p>
      <ref-list content-type="non-numbered" specific-use="list.of.documents">
        <ref content-type="standard" id="nor-2-1">
          <std>
            <std-id-group>
              <std-id std-id-link-type="internal-pub-id" std-id-type="dated">e1d167f5</std-id>
              <std-id std-id-link-type="fpi" std-id-type="dated">+//ISO 9070/RA::A00007::GE::DIN German Institute for
                Standardization::Standards//DOCUMENT ISO 12100-1:2003-11-00//EN</std-id>
            </std-id-group>
            <std-ref type="dated">ISO 12100-1:2003</std-ref>, <title>Safety of machinery — Basic concepts, general
              principles for design — Part 1: Basic terminology, methodology</title>
          </std>
        </ref>

Encoding of terms and definitions

Generated:

  <sec id="toc_iso_std_iso_5598_ed-3_v1_en_sec_3">
    <title>3&#xA0;&#xA0;&#xA0;Terms and definitions</title>
    <p>For the purposes of this document, the following terms and definitions apply.</p>
    <p>ISO&#xA0;and IEC&#xA0;maintain terminological databases for use in standardization at the following addresses:</p>

      <list style="list-style-type: none" list-type="bullet">
        <list-item>
          <p><label>&#x2014;</label> ISO&#xA0;Online browsing platform: available at <a target="_blank" href="https://www.iso.org/obp/ui" id="d4893572e447">https://www.iso.org/obp/ui</a></p>
        </list-item>
        <list-item>
          <p><label>&#x2014;</label> IEC&#xA0;Electropedia: available at <a target="_blank" href="http://www.electropedia.org/" id="d4893572e455">http://www.electropedia.org/</a></p>
        </list-item>
      </list>

    <sec id="toc_iso_std_iso_5598_ed-3_v1_en_sec_3.1">
      <title>3.1&#xA0;&#xA0;&#xA0;Terms related to key adjectives and nouns frequently used in this document</title>
      <sec class="sts-tbx-sec" id="iso_std_iso_5598_ed-3_v1_en_term_3.1.1">
        <label>3.1.1</label>
        <tbx:term>actual<b>,</b><b>adj.</b></tbx:term>
        <tbx:definition>obtained from physical measurements taken at a given time and a particular point</tbx:definition>
      </sec>

Proper STS:

    <sec id="sub-3" sec-type="terms">
      <label>3</label>
      <title>Terms, definitions, symbols and abbreviated terms</title>
      <sec id="sub-3.1" sec-type="concept">
        <label>3.1</label>
        <title>Terms and definitions</title>
        <p id="par-3.1-1">For the purposes of this document, the terms and definitions given in <std><std-id-group>
              <std-id std-id-link-type="internal-pub-id" std-id-type="undated">x1d167f5</std-id>
              <std-id std-id-link-type="fpi" std-id-type="undated">+//ISO 9070/RA::A00007::GE::DIN German Institute for
                Standardization::Standards//DOCUMENT ISO 12100-1//EN</std-id>
            </std-id-group>ISO 12100-1</std> and <std><std-id-group>
              <std-id std-id-link-type="internal-pub-id" std-id-type="undated">x120a689</std-id>
              <std-id std-id-link-type="fpi" std-id-type="undated">+//ISO 9070/RA::A00007::GE::DIN German Institute for
                Standardization::Standards//DOCUMENT IEC 60050-191//EN</std-id>
            </std-id-group>IEC 60050-191</std> and the following apply.</p>
        <term-sec id="sub-3.1.1" sec-type="concept">
          <label>3.1.1</label>
          <tbx:termEntry id="term_3.1.1">
            <tbx:langSet xml:lang="en">
              <tbx:definition>part of a control system that responds to safety-related input signals and generates
                safety-related output signals</tbx:definition>
              <tbx:note id="not_3.1.1_1">NOTE 1 The combined safety-related parts of a control system start at the point
                where the safety-related input signals are initiated (including, for example, the actuating cam and the
                roller of the position switch) and end at the output of the power control elements (including, for example,
                the main contacts of a contactor).</tbx:note>
              <tbx:note id="not_3.1.1_2">NOTE 2 If monitoring systems are used for diagnostics, they are also considered as
                SRP/CS.</tbx:note>
              <tbx:tig>
                <tbx:term>safety-related part of a control system</tbx:term>
                <tbx:partOfSpeech value="noun"></tbx:partOfSpeech>
                <tbx:normativeAuthorization value="preferredTerm"></tbx:normativeAuthorization>
              </tbx:tig>
              <tbx:tig>
                <tbx:term>SRP/CS</tbx:term>
                <tbx:partOfSpeech value="noun"></tbx:partOfSpeech>
                <tbx:normativeAuthorization value="admittedTerm"></tbx:normativeAuthorization>
                <tbx:termType value="abbreviation"></tbx:termType>
              </tbx:tig>
            </tbx:langSet>
          </tbx:termEntry>
        </term-sec>

Normal clauses

Proper STS:

    <sec id="sub-4" sec-type="clause">
      <label>4</label>
      <title>Design considerations</title>
      <sec id="sub-4.1" sec-type="clause">
        <label>4.1</label>
        <title>Safety objectives in design</title>
...

Bibliography

Generated:

  <sec class="sts-ref-list" id="toc_iso_std_iso_5598_ed-3_v1_en_sec_bibl">
    <title>Bibliography</title>
    <ref-list>
      <tbody>
        <tr>
          <label>
            <a name="iso:std:iso:5598:ed-3:v1:en:ref:1" id="iso_std_iso_5598_ed-3_v1_en_ref_1"/>
          </label>
          <td>[1]   ISO&#xA0;554, <i>Standard atmospheres for conditioning and/or testing&#xA0;&#x2014; Specifications</i></td>
        </tr>
        <tr>
          <label>
            <a name="iso:std:iso:5598:ed-3:v1:en:ref:2" id="iso_std_iso_5598_ed-3_v1_en_ref_2"/>
          </label>
          <td>[2]   ISO&#xA0;611, <i>Road vehicles&#xA0;&#x2014; Braking of automotive vehicles and their trailers&#xA0;&#x2014; Vocabulary</i></td>
        </tr>

Proper STS:

  <back>
    <app-group>
    <ref-list content-type="bibl" id="sec_bibl">
      <title>Bibliography</title>
      <ref content-type="standard" id="ref_1">
        <label>[1]</label>
        <std std-id="iso:std:iso-iec:646:en" type="undated"><std-ref>ISO/IEC 646</std-ref>, <title>Information
          technology — ISO 7-bit coded character set for information interchange </title></std>
      </ref>
      <ref content-type="standard" id="ref_2">
        <label>[2]</label>
        <std><std-ref>ISO 8601-2:—</std-ref>, <title>Date and time — Representations for information
          interchange — Part 2: Extensions</title></std>
      </ref>
      <ref content-type="standard" id="ref_3">
        <label>[3]</label>
        <std><std-ref>ISO 80000-1</std-ref><xref ref-type="fn" rid="fn_1">
            <sup>1</sup>
          </xref><fn id="fn_1">
            <label>
              <sup>1</sup>
            </label>
            <p> Under preparation.</p>
          </fn>, <title>Quantities and units — Part 1: General</title></std>
      </ref>
      <ref content-type="standard" id="ref_4">
        <label>[4]</label>
        <std><std-ref>ISO 80000-3</std-ref><xref ref-type="fn" rid="fn_2">
            <sup>2</sup>
          </xref><fn id="fn_2">
            <label>
              <sup>2</sup>
            </label>
            <p> Under preparation.</p>
          </fn>, <title>Quantities and units — Part 3: Space
          and time</title></std>
      </ref>
ronaldtse commented 5 months ago

I have changed the approach here. Instead of doing a one step conversion into STS XML, we do 2 passes:

  1. Temporary artifact that simplifies the HTML into a simple STS XML, it does not provide the full structure, but a similar enough structure to work with using Nokogiri.
  2. Building the document using the sts gem declaratively by reading the temporary artifact.

Right now we already have a properly structured document, but just doesn't fully handle all the cases and especially not the "mixed content" XML yet. Once the "mixed content" elements are handled, the task is done.

HassanAkbar commented 5 months ago

@ronaldtse There are 2 issues here

HassanAkbar commented 5 months ago

@ronaldtse After adding the above mentioned changes I got the following output in index.html.sts.xml file

<standard xml:lang="en">
  <front>
    <iso-meta>
      <content-language>en</content-language>
      <doc-ref>ISO 5598</doc-ref>
      <permissions>
        <copyright-statement>&#xA9;&#xA0;2019&#xA0;ISO &#x2014; All rights reserved</copyright-statement>
        <copyright-year>2019</copyright-year>
        <copyright-holder>ISO</copyright-holder>
      </permissions>
      <std-ident>
        <originator>ISO</originator>
        <doc-type>is</doc-type>
        <doc-number>5598</doc-number>
        <edition>3</edition>
        <version/>
      </std-ident>
      <std-ref type="undated">ISO 5598</std-ref>
      <std-ref type="dated">ISO 5598:2019</std-ref>
      <title-wrap xml:lang="en">
        <intro>Fluid power systems and components</intro>
        <main>Vocabulary</main>
        <full>Fluid power systems and components &#x2014; Vocabulary</full>
      </title-wrap>
    </iso-meta>
    <sec id="sec_foreword" sec-type="foreword">
      <label/>
      <title>Foreword</title>
      <p>ISO (the International Organization for Standardization) is a worldwide federation of national standards bodies (ISO member bodies). The work of preparing International Standards is normally carried out through ISO technical committees. Each member body interested in a subject for which a technical committee has been established has the right to be represented on that committee. International organizations, governmental and non-governmental, in liaison with ISO, also take part in the work. ISO collaborates closely with the International Electrotechnical Commission (IEC) on all matters of electrotechnical standardization. </p>
      <p>The procedures used to develop this document and those intended for its further maintenance are described in the ISO/IEC Directives, Part&#xA0;1. In particular, the different approval criteria needed for the different types of ISO documents should be noted. This document was drafted in accordance with the editorial rules of the ISO/IEC Directives, Part&#xA0;2 (see ).</p>
      <p>Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. ISO shall not be held responsible for identifying any or all such patent rights. Details of any patent rights identified during the development of the document will be in the Introduction and/or on the ISO list of patent declarations received (see ).</p>
      <p>Any trade name used in this document is information given for the convenience of users and does not constitute an endorsement. </p>
      <p>For an explanation of the voluntary nature of standards, the meaning of ISO specific terms and expressions related to conformity assessment, as well as information about ISO's adherence to the World Trade Organization (WTO) principles in the Technical Barriers to Trade (TBT) see .</p>
      <p>This document was prepared by Technical Committee ISO/TC&#xA0;131, , Subcommittee SC&#xA0;1, .</p>
      <p>This third edition cancels and replaces the second edition (ISO&#xA0;5598:2008), which has been technically revised.</p>
      <p>In addition to text written in the official ISO&#xA0;languages (English, French or Russian), this document gives text in German. This text is published under the responsibility of the member body/National Committee for Germany and is given for information only. Only the text given in the official languages can be considered as ISO&#xA0;text.</p>
      <p>Any feedback or questions on this document should be directed to the user&#x2019;s national standards body. A complete listing of these bodies can be found at .</p>
    </sec>
    <sec id="sec_intro" sec-type="intro" specific-use="introduction.int">
      <label/>
      <title>Introduction</title>
      <p>In fluid power systems, power is transmitted and controlled through a fluid (liquid or gas) under pressure within a circuit.</p>
      <p>The purpose of this vocabulary is</p>
      <p>This document conforms to the requirements of ISO&#xA0;10241-1 on the preparation and layout of international terminology standards.</p>
      <p>The following conventions are used:</p>
      <p>The Bibliography contains the titles of related standards.</p>
      <p>,  and  are referenced throughout the document and can be found at the end of .</p>
    </sec>
  </front>
  <body>
    <sec sec-type="clause">
      <label>1</label>
      <title>[#&lt;Sts::NisoSts::Title:0x0000000108a96358 @inline_formula=[], @content="Scope"&gt;]</title>
      <p>This document establishes the vocabulary, in English, French and German, for all fluid power systems and components, excluding aerospace applications and compressed air supply installations.</p>
    </sec>
    <sec sec-type="clause">
      <label>2</label>
      <title>[#&lt;Sts::NisoSts::Title:0x0000000108a948c8 @inline_formula=[], @content="Normative references"&gt;]</title>
      <p>There are no normative references in this document.</p>
    </sec>
    <sec sec-type="clause">
      <label>3</label>
      <title>[#&lt;Sts::NisoSts::Title:0x0000000108a8ef18 @inline_formula=[], @content="Terms and definitions"&gt;]</title>
      <p>For the purposes of this document, the following terms and definitions apply.</p>
      <p>ISO&#xA0;and IEC&#xA0;maintain terminological databases for use in standardization at the following addresses:</p>
    </sec>
  </body>
  <back>
    <app-group>
      <app id="sec_bibl" content-type="bibl">
        <annex-type>(informative)</annex-type>
        <title>Bibliography</title>
        <ref-list>
          <ref>
            <label>1</label>
            <std type="standard">
              <std-ref>ISO&#xA0;554</std-ref>
              <title>Standard atmospheres for conditioning and/or testing&#xA0;&#x2014; Specifications</title>
            </std>
          </ref>
          <ref>
            <label>2</label>
            <std type="standard">
              <std-ref>ISO&#xA0;611</std-ref>
              <title>Road vehicles&#xA0;&#x2014; Braking of automotive vehicles and their trailers&#xA0;&#x2014; Vocabulary</title>
            </std>
          </ref>
          <ref>
            <label>3</label>
            <std type="standard">
              <std-ref>ISO&#xA0;1219&#x2011;1</std-ref>
              <title>Fluid power systems and components&#xA0;&#x2014; Graphical symbols and circuit diagrams&#xA0;&#x2014; Part&#xA0;1: Graphical symbols for conventional use and data-processing applications</title>
            </std>
          </ref>
          <ref>
            <label>4</label>
            <std type="standard">
              <std-ref>ISO&#xA0;1219&#x2011;2</std-ref>
              <title>Fluid power systems and components&#xA0;&#x2014; Graphical symbols and circuit diagrams&#xA0;&#x2014; Part&#xA0;2: Circuit diagrams</title>
            </std>
          </ref>
          <ref>
            <label>5</label>
            <std type="standard">
              <std-ref>ISO&#xA0;1998&#x2011;1</std-ref>
              <title>Petroleum industry&#xA0;&#x2014; Terminology&#xA0;&#x2014; Part&#xA0;1: Raw materials and products</title>
            </std>
          </ref>
          <ref>
            <label>6</label>
            <std type="standard">
              <std-ref>ISO&#xA0;1998&#x2011;2</std-ref>
              <title>Petroleum industry&#xA0;&#x2014; Terminology&#xA0;&#x2014; Part&#xA0;2: Properties and tests</title>
            </std>
          </ref>
          <ref>
            <label>7</label>
            <std type="standard">
              <std-ref>ISO&#xA0;1998&#x2011;6</std-ref>
              <title>Petroleum industry&#xA0;&#x2014; Terminology&#xA0;&#x2014; Part&#xA0;6: Measurement</title>
            </std>
          </ref>
          <ref>
            <label>8</label>
            <std type="standard">
              <std-ref>ISO&#xA0;1998&#x2011;7</std-ref>
              <title>Petroleum industry&#xA0;&#x2014; Terminology&#xA0;&#x2014; Part&#xA0;7: Miscellaneous terms</title>
            </std>
          </ref>
          <ref>
            <label>9</label>
            <std type="standard">
              <std-ref>ISO&#xA0;1998&#x2011;99</std-ref>
              <title>Petroleum industry&#xA0;&#x2014; Terminology&#xA0;&#x2014; Part&#xA0;99: General and index</title>
            </std>
          </ref>
          <ref>
            <label>10</label>
            <std type="standard">
              <std-ref>ISO&#xA0;2944</std-ref>
              <title>Fluid power systems and components&#xA0;&#x2014; Nominal pressures</title>
            </std>
          </ref>
          <ref>
            <label>11</label>
            <std type="standard">
              <std-ref>ISO&#xA0;3529&#x2011;1</std-ref>
              <title>Vacuum technology&#xA0;&#x2014; Vocabulary&#xA0;&#x2014; Part&#xA0;1: General terms</title>
            </std>
          </ref>
          <ref>
            <label>12</label>
            <std type="standard">
              <std-ref>ISO&#xA0;3529&#x2011;2</std-ref>
              <title>Vacuum technology&#xA0;&#x2014; Vocabulary&#xA0;&#x2014; Part&#xA0;2: Vacuum pumps and related terms</title>
            </std>
          </ref>
          <ref>
            <label>13</label>
            <std type="standard">
              <std-ref>ISO&#xA0;3529&#x2011;3</std-ref>
              <title>Vacuum technology&#xA0;&#x2014; Vocabulary&#xA0;&#x2014; Part&#xA0;3: Total and partial pressure vacuum gauges</title>
            </std>
          </ref>
          <ref>
            <label>14</label>
            <std type="standard">
              <std-ref>ISO&#xA0;3857&#x2011;1</std-ref>
              <title>Compressors, pneumatic tools and machines&#xA0;&#x2014; Vocabulary&#xA0;&#x2014; Part&#xA0;1: General</title>
            </std>
          </ref>
          <ref>
            <label>15</label>
            <std type="standard">
              <std-ref>ISO&#xA0;3857&#x2011;2</std-ref>
              <title>Compressors, pneumatic tools and machines&#xA0;&#x2014; Vocabulary&#xA0;&#x2014; Part&#xA0;2: Compressors</title>
            </std>
          </ref>
          <ref>
            <label>16</label>
            <std type="standard">
              <std-ref>ISO&#xA0;4006</std-ref>
              <title>Measurement of fluid flow in closed conduits&#xA0;&#x2014; Vocabulary and symbols</title>
            </std>
          </ref>
          <ref>
            <label>17</label>
            <std type="standard">
              <std-ref>ISO&#xA0;4391</std-ref>
              <title>Hydraulic fluid power&#xA0;&#x2014; Pumps, motors and integral transmissions&#xA0;&#x2014; Parameter definitions and letter symbols</title>
            </std>
          </ref>
          <ref>
            <label>18</label>
            <std type="standard">
              <std-ref>ISO&#xA0;4406</std-ref>
              <title>Hydraulic fluid power&#xA0;&#x2014; Fluids&#xA0;&#x2014; Method for coding the level of contamination by solid particles</title>
            </std>
          </ref>
          <ref>
            <label>19</label>
            <std type="standard">
              <std-ref>ISO&#xA0;4413</std-ref>
              <title>Hydraulic fluid power&#xA0;&#x2014; General rules and safety requirements for systems and their components</title>
            </std>
          </ref>
          <ref>
            <label>20</label>
            <std type="standard">
              <std-ref>ISO&#xA0;4414</std-ref>
              <title>Pneumatic fluid power&#xA0;&#x2014; General rules and safety requirements for systems and their components</title>
            </std>
          </ref>
          <ref>
            <label>21</label>
            <std type="standard">
              <std-ref>ISO&#xA0;6708</std-ref>
              <title>Pipework components&#xA0;&#x2014; Definition and selection of DN (nominal size)</title>
            </std>
          </ref>
          <ref>
            <label>22</label>
            <std type="standard">
              <std-ref>ISO&#xA0;8330</std-ref>
              <title>Rubber and plastics hoses and hose assemblies&#xA0;&#x2014; Vocabulary</title>
            </std>
          </ref>
          <ref>
            <label>23</label>
            <std type="standard">
              <std-ref>ISO&#xA0;8625&#x2011;1</std-ref>
              <title>Aerospace&#xA0;&#x2014; Fluid systems&#xA0;&#x2014; Vocabulary&#xA0;&#x2014; Part&#xA0;1: General terms and definitions related to pressure</title>
            </std>
          </ref>
          <ref>
            <label>24</label>
            <std type="standard">
              <std-ref>ISO&#xA0;8625&#x2011;2</std-ref>
              <title>Aerospace&#xA0;&#x2014; Fluid systems&#xA0;&#x2014; Vocabulary&#xA0;&#x2014; Part&#xA0;2: General terms and definitions relating to flow</title>
            </std>
          </ref>
          <ref>
            <label>25</label>
            <std type="standard">
              <std-ref>ISO&#xA0;8625&#x2011;3</std-ref>
              <title>Aerospace&#xA0;&#x2014; Fluid systems&#xA0;&#x2014; Vocabulary&#xA0;&#x2014; Part&#xA0;3: General terms and definitions relating to temperature</title>
            </std>
          </ref>
          <ref>
            <label>26</label>
            <std type="standard">
              <std-ref>ISO&#xA0;8778</std-ref>
              <title>Pneumatic fluid power&#xA0;&#x2014; Standard reference atmosphere</title>
            </std>
          </ref>
          <ref>
            <label>27</label>
            <std type="standard">
              <std-ref>ISO&#xA0;9000</std-ref>
              <title>Quality management systems&#xA0;&#x2014; Fundamentals and vocabulary</title>
            </std>
          </ref>
          <ref>
            <label>28</label>
            <std type="standard">
              <std-ref>ISO&#xA0;9245</std-ref>
              <title>Earth-moving machinery&#xA0;&#x2014; Machine productivity&#xA0;&#x2014; Vocabulary, symbols and units</title>
            </std>
          </ref>
          <ref>
            <label>29</label>
            <std type="standard">
              <std-ref>ISO&#xA0;10241-1</std-ref>
              <title>Terminological entries in standards&#xA0;&#x2014; Part 1: General requirements and examples of presentation</title>
            </std>
          </ref>
          <ref>
            <label>30</label>
            <std type="standard">
              <std-ref>ISO&#xA0;11171</std-ref>
              <title>Hydraulic fluid power&#xA0;&#x2014; Calibration of automatic particle counters for liquids</title>
            </std>
          </ref>
          <ref>
            <label>31</label>
            <std type="standard">
              <std-ref>ISO&#xA0;12100</std-ref>
              <title>Safety of machinery&#xA0;&#x2014; General principles for design&#xA0;&#x2014; Risk assessment and risk reduction</title>
            </std>
          </ref>
          <ref>
            <label>32</label>
            <std type="standard">
              <std-ref>ISO&#xA0;12238:2001</std-ref>
              <title>Pneumatic fluid power&#xA0;&#x2014; Directional control valves&#xA0;&#x2014; Measurement of shifting time</title>
            </std>
          </ref>
          <ref>
            <label>33</label>
            <std type="standard">
              <std-ref>ISO&#xA0;14050</std-ref>
              <title>Environmental management&#xA0;&#x2014; Vocabulary</title>
            </std>
          </ref>
          <ref>
            <label>34</label>
            <std type="standard">
              <std-ref>ISO&#xA0;16889</std-ref>
              <title>Hydraulic fluid power&#xA0;&#x2014; Filters&#xA0;&#x2014; Multi-pass method for evaluating filtration performance of a filter element</title>
            </std>
          </ref>
          <ref>
            <label>35</label>
            <std type="standard">
              <std-ref>ISO&#xA0;21018&#x2011;1:2008</std-ref>
              <title>Hydraulic fluid power&#xA0;&#x2014; Monitoring the level of particulate contamination of the fluid&#xA0;&#x2014; Part&#xA0;1: General principles</title>
            </std>
          </ref>
          <ref>
            <label>36</label>
            <std type="standard">
              <title>International Electrotechnical Vocabulary &#x2014; Part&#xA0;351: Control technology</title>
            </std>
          </ref>
          <ref>
            <label>37</label>
            <std type="standard">
              <std-ref>International Electrotechnical Vocabulary&#xA0;&#x2014; Part&#xA0;581</std-ref>
              <title>Electromechanical components for electronic equipment</title>
            </std>
          </ref>
        </ref-list>
      </app>
    </app-group>
  </back>
</standard>
ronaldtse commented 5 months ago

@ronaldtse There are 2 issues here

  • The Sts::Mapper class that we have in sts-ruby only works for xml read through the from_xml method. We should either use the lutaml/shale or wait for the lutaml-model gem and use that instead of the mapper class in sts-ruby. What do you suggest here?
  • The other issue is related to the structure of the xml content, I've update the code so now it should work once we change the sts-ruby mapper class

@HassanAkbar In this case we should just wait for lutaml-model since the lutaml/shale fork is hard to manage.

In any case, we're waiting for you 😉

HassanAkbar commented 5 months ago

@ronaldtse Got it, I'm working on it as quickly as possible.

ronaldtse commented 4 months ago

@HassanAkbar Is this the most reasonable roadmap?

  1. Update lutaml-model to handle sts-ruby
  2. Update sts-ruby to work
  3. Update the obp-access gem to work with sts-ruby

?

HassanAkbar commented 3 months ago

@ronaldtse The roadmap seems ok to me.

  1. Update lutaml-model to handle sts-ruby

Completed

  1. Update sts-ruby to work

PR opened here -> https://github.com/metanorma/sts-ruby/pull/16

  1. Update the obp-access gem to work with sts-ruby

will start working on it once the PR is finalized and merged for 2

ronaldtse commented 3 months ago

@HassanAkbar 2 is merged. Thanks!

Let's move onto 3.

ronaldtse commented 2 weeks ago

This task is to be tested against 3 documents:

The documents are given at an increasing level of complication: 34000 (simple), 5843-6 (multilingual) and 5598 (complex terms).

HassanAkbar commented 2 weeks ago

@ronaldtse I'm working on the conversion for ISO 34000 (https://www.iso.org/obp/ui/en/#iso:std:iso:34000:ed-1:v1:en) and have a few questions related to it. I have posted my questions here -> https://github.com/metanorma/obp-access/issues/7#issuecomment-2476523630

@ronaldtse I have a few questions related to this

  1. There is no mapping for the tag in the sts-ruby gem. Should we map them to ext-link or somewhere else? There are some internal references as well in a tag, where should we map those?
  2. I was unable to find the mapping for entailedTerm-num in sts-ruby gem. Where should we map those?

Is there any guidelines or mapping available for all the HTML classes to sts-ruby classes? Or is there some example documents that I can use as reference related to how the expected output should be for the output/index.html.xml and output/index.html.sts.xml files.