Open Geospatial Consortium |
Submission Date: 2019-03-05 |
Approval Date: 2019-06-25 |
Publication Date: 2019-08-07 |
External identifier of this OGC® document: http://www.opengis.net/doc/is/pipelineml/1.0 |
Internal reference number of this OGC® document: 18-073r2 |
Version: 1.0 |
Category: OGC® Implementation Standard |
Editor: John Tisdale |
OGC PipelineML Conceptual and Encoding Model Standard |
Copyright notice |
Copyright © 2019 Open Geospatial Consortium |
To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ |
Warning |
This document is an OGC Member approved international standard. This document is available on a royalty free, non-discriminatory basis.
Recipients of this document are invited to submit, with their comments, notification of any relevant patent rights of which they are aware and to provide supporting documentation.
Document type: OGC® Standard |
Document subtype: PipelineML Tech Spec |
Document stage: Approved for public release |
Document language: English |
License Agreement
Permission is hereby granted by the Open Geospatial Consortium, ("Licensor"), free of charge and subject to the terms set forth below, to any person obtaining a copy of this Intellectual Property and any associated documentation, to deal in the Intellectual Property without restriction (except as set forth below), including without limitation the rights to implement, use, copy, modify, merge, publish, distribute, and/or sublicense copies of the Intellectual Property, and to permit persons to whom the Intellectual Property is furnished to do so, provided that all copyright notices on the intellectual property are retained intact and that each person to whom the Intellectual Property is furnished agrees to the terms of this Agreement.
If you modify the Intellectual Property, all copies of the modified Intellectual Property must include, in addition to the above copyright notice, a notice that the Intellectual Property includes modifications that have not been approved or adopted by LICENSOR.
THIS LICENSE IS A COPYRIGHT LICENSE ONLY, AND DOES NOT CONVEY ANY RIGHTS UNDER ANY PATENTS THAT MAY BE IN FORCE ANYWHERE IN THE WORLD.
THE INTELLECTUAL PROPERTY IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE DO NOT WARRANT THAT THE FUNCTIONS CONTAINED IN THE INTELLECTUAL PROPERTY WILL MEET YOUR REQUIREMENTS OR THAT THE OPERATION OF THE INTELLECTUAL PROPERTY WILL BE UNINTERRUPTED OR ERROR FREE. ANY USE OF THE INTELLECTUAL PROPERTY SHALL BE MADE ENTIRELY AT THE USER’S OWN RISK. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR ANY CONTRIBUTOR OF INTELLECTUAL PROPERTY RIGHTS TO THE INTELLECTUAL PROPERTY BE LIABLE FOR ANY CLAIM, OR ANY DIRECT, SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM ANY ALLEGED INFRINGEMENT OR ANY LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR UNDER ANY OTHER LEGAL THEORY, ARISING OUT OF OR IN CONNECTION WITH THE IMPLEMENTATION, USE, COMMERCIALIZATION OR PERFORMANCE OF THIS INTELLECTUAL PROPERTY.
This license is effective until terminated. You may terminate it at any time by destroying the Intellectual Property together with all copies in any form. The license will also terminate if you fail to comply with any term or condition of this Agreement. Except as provided in the following sentence, no such termination of this license shall require the termination of any third party end-user sublicense to the Intellectual Property which is in force as of the date of notice of such termination. In addition, should the Intellectual Property, or the operation of the Intellectual Property, infringe, or in LICENSOR’s sole opinion be likely to infringe, any patent, copyright, trademark or other right of a third party, you agree that LICENSOR, in its sole discretion, may terminate this license without any compensation or liability to you, your licensees or any other party. You agree upon termination of any kind to destroy or cause to be destroyed the Intellectual Property together with all copies in any form, whether held by you or by any third party.
Except as contained in this notice, the name of LICENSOR or of any other holder of a copyright in all or part of the Intellectual Property shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Intellectual Property without prior written authorization of LICENSOR or such copyright holder. LICENSOR is and shall at all times be the sole entity that may authorize you or any third party to use certification marks, trademarks or other special designations to indicate compliance with any LICENSOR standards or specifications. This Agreement is governed by the laws of the Commonwealth of Massachusetts. The application to this Agreement of the United Nations Convention on Contracts for the International Sale of Goods is hereby expressly excluded. In the event any provision of this Agreement shall be deemed unenforceable, void or invalid, such provision shall be modified so as to make it valid and enforceable, and as so modified the entire Agreement shall remain in full force and effect. No decision, action or inaction by LICENSOR shall be construed to be a waiver of any rights or remedies available to it.
- 1. Scope
- 2. Conformance
- 3. References
- 4. Terms and definitions
- 4.1. appurtenant component
- 4.2. assembly
- 4.3. classifier
- 4.4. component
- 4.5. conceptual model
- 4.6. conformance class
- 4.7. connector
- 4.8. coterminous component
- 4.9. dataset
- 4.10. domain feature
- 4.11. element <XML>
- 4.12. feature
- 4.13. GML application schema
- 4.14. GML document
- 4.15. GML schema
- 4.16. measurement
- 4.17. observation
- 4.18. observation procedure
- 4.19. observation result
- 4.20. pipeline
- 4.21. property <General Feature Model>
- 4.22. sampled feature
- 4.23. sampling feature
- 4.24. schema <XML Schema>
- 5. Conventions
- 6. Clauses not Containing Normative Material
- 7. PipelineML Conceptual Model (Normative)
- 8. XML Encoding Requirement Class (Normative)
- 9. Media Types for any data encoding(s)
- Appendix A: Conformance Class Abstract Test Suite (Normative)
- A.1. PipelineML Conceptual Conformance Class
- A.2. PipelineML Abstract Conformance Class
- A.3. PipelineML Linked Open Data Conformance Class
- A.4. PipelineML Encoding Conformance Class
- A.5. PMLComponent Class Conformance Class
- A.6. Pipeline Class Conformance Class
- A.7. Assembly Class Conformance Class
- A.8. Collection Class Conformance Class
- A.9. Component Class Conformance Class
- A.10. Cap Class Conformance Class
- A.11. Compressor Class Conformance Class
- A.12. Elbow Class Requirements Class (Normative)
- A.13. Flange Class Requirements Class (Normative)
- A.14. Launcherreceiver Class Requirements Class (Normative)
- A.15. Linepipe Class Requirements Class (Normative)
- A.16. Meter Class Requirements Class (Normative)
- A.17. Pump Class Requirements Class (Normative)
- A.18. Reducer Class Requirements Class (Normative)
- A.19. Tap Class Requirements Class (Normative)
- A.20. Tee Class Requirements Class (Normative)
- A.21. Valve Class Requirements Class (Normative)
- A.22. Casing Class Requirements Class (Normative)
- A.23. Coating Class Requirements Class (Normative)
- A.24. Sleeve Class Requirements Class (Normative)
- A.25. PipelineML Core XML Abstract Requirements Class (Normative)
- Appendix B: Revision History
i. Abstract
The OGC PipelineML Conceptual and Encoding Model Standard defines concepts supporting the interoperable interchange of data pertaining to oil and gas pipeline systems. PipelineML supports the common exchange of oil and gas pipeline information. This initial release of the PipelineML Core addresses two critical business use cases that are specific to the pipeline industry: new construction surveys and pipeline rehabilitation. This standard defines the individual pipeline components with support for lightweight aggregation. Additional aggregation requirements such as right-of-way and land management will utilize the OGC LandInfra standards with utility extensions in the future. Future extensions to PipelineML Core will include (non-limitative): cathodic protection, facility and safety. PipelineML was advanced by an international team of contributors from the US, Canada, Belgium, Norway, Netherlands, UK, Germany, Australia, Brazil, and Korea.
This standard assumes the reader has a basic understanding of oil and gas pipeline industry concepts.
ii. Keywords
The following are keywords to be used by search engines and document catalogues.
ogcdoc, OGC document, gml, PipelineML, pml, pipeline, oil and gas, energy, utility, underground, components
iii. Preface
This document is a deliverable of the Open Geospatial Consortium (OGC) PipelineML Standards Working Group (SWG).
Version 1.0 of the PipelineML standard defined in this document solely focuses on addressing two critical business use cases within this grouping of component use cases: new construction as-built survey, and component rehabilitation surveys. This specification defines a minimal requirement for component groupings or aggregation.
The early work of the PipelineML SWG focused on defining pipeline industry use cases. We concluded these diverse set of use cases fall into three broad groups, as illustrated in the diagram below, starting with the highest level of aggregation and working toward increased specificity and granularity. The most common group of use cases are concerned with pipeline centerline or right of way. This includes such use cases as right of way management, foreign line crossings, regulatory reporting, land division, emergency response, high consequences areas (HCA) management, public awareness, and one call (call before you dig). We concluded these use cases should leverage the collaborative work of the LandInfra DWG and SWG. We expect this pending work will involve a utility-based update/extension to LandInfra that will service of the centerline/right of way needs of the pipeline industry.
The second group of use cases is specific to the pipeline industry as they pertain to the management of individual pipeline component attributes required to assess and mitigate the risks of running highly volatile product through underground systems under high pressure. This includes such use cases as new construction as-built surveys, component rehabilitation surveys, component data management, and risk assessments.
The third group of use cases identify anomalies located on an individual pipeline component (subcomponent attributes). This includes such use cases as inline inspection (ILI) tool runs and remediation prioritization. These use cases shall be resolved at some point in the future as part of a modularized application schema of PipelineML that are specific to the pipeline industry.
Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. The Open Geospatial Consortium shall not be held responsible for identifying any or all such patent rights.
Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the standard set forth in this document, and to provide supporting documentation.
iv. Security considerations
No security considerations have been made for this standard.
v. Submitting organizations
The following organizations submitted this Document to the Open Geospatial Consortium (OGC):
-
Enterprise Products LLP, Houston, Texas, United States of America
-
Merkator NV/SA, Brussels, Belgium
-
Enghouse Systems Ltd, Ontario, Canada
-
BSD Consulting, Inc., Houston, Texas, United States of America
vi. Scope limitation
The current version of PipelineML only considers pipeline transportation (midstream) for oil and natural gas. The pipeline and componentry attribution is focused on overland transport, not on overseas transport.
The descriptions in PML are limited to componentry that is part of a pipeline system or appurtenances directly attached to it. Safety equipment, cathodic protection and other appurtenances are not included in this version of the standard.
Componentry that is most frequently used in installations (such as gas stations) is not fully supported yet.
The current PML description is focused on the physical and material attributes of pipeline systems. Any operational attributes such as operation date, operational state or actual pressure or material are excluded.
vii. Submitters
All questions regarding this submission should be directed to the editor or the submitters:
Name |
Affiliation |
John Tisdale |
Enterprise Products LLP |
Jan Stuckens |
Merkator NV/SA |
1. Scope
This OGC Standard defines a conceptual model and GML encoding rules pertaining to the data interchange needs of the oil and gas pipeline industry. Efforts have been made to minimize the footprint of this standard to avoid overlap with other standards pertaining to utility infrastructure. PipelineML specifies a single, modular, extensible application schema focused on defining pipeline components and their attributes with limited grouping or aggregation features.
2. Conformance
This standard defines concepts for oil and gas pipeline systems. This includes a conceptual model and an XML encoding which conform to the OGC GML encoding rules. Requirements for three standardization target types are considered:
-
Conceptual Model
-
Encoding
-
Data Instance
This version of the Standard supports an XML encoding that is GML-compliant. Future versions of the standard may support additional encodings such as JSON/GeoJSON, but such extensions are not envisaged in the current version.
Conformance with this standard shall be checked using all the relevant tests specified in Annex A (normative) of this document. The framework, concepts, and methodology for testing, and the criteria to be achieved to claim conformance are specified in the OGC Compliance Testing Policies and Procedures and the OGC Compliance Testing web site [1].
In order to conform to this OGC™ interface standard, a software implementation SHALL implement all requirements-classes and conformance-classes described in this document.
3. References
The following normative documents contain provisions that, through reference in this text, constitute provisions of this document. For dated references, subsequent amendments to, or revisions of, any of these publications do not apply. For undated references, the latest edition of the normative document referred to applies.
-
ISO: ISO 19101-1:2014, Geographic information — Reference model — Part 1: Fundamentals, International Organization for Standardization (2005)
-
ISO: ISO 19103:2005, Geographic information — Conceptual Schema Language, International Organization for Standardization (2005)
-
ISO: ISO 19107:2003, Geographic information — Spatial Schema, International Organization for Standardization (2003)
-
ISO: ISO 19109:2015, Geographic information — Rules for application schema, International Organization for Standardization (2015)
-
OGC: OGC 18-005r4, OGC Abstract Specification Topic 2: Referencing by coordinates, ISO 19111:2019, Open Geospatial Consortium (2019)
-
ISO: ISO 19115:2014, Geographic information — Metadata_, OGC Abstract Specification Topic 11: Metadata_, Open Geospatial Consortium (2014)
-
OGC: OGC 07-036r1, OpenGIS® Geography Markup Language (GML) Encoding Standard, Open Geospatial Consortium (2016)
-
IETF: RFC 3986, Uniform Resource Identifier (URI): Generic Syntax, Internet Engineering Task Force (2005)
-
OMG: Unified Modeling Language (UML). Version 2.3, Object Management Group (2010)
-
W3C: Extensible Markup Language (XML) - Version 1.0 (Fourth Edition), World Wide Web Consortium (2006)
-
W3C: XML Schema - Version 1.0 (Second Edition), World Wide Web Consortium (2004)
4. Terms and definitions
This document uses the terms defined in Sub-clause 5.3 of [OGC06-121r9], which is based on the ISO/IEC Directives, Part 2, Rules for the structure and drafting of International Standards. In particular, the word “shall” (not “must”) is the verb form used to indicate a requirement to be strictly followed to conform to this standard.
For the purposes of this document, the following additional terms and definitions apply.
4.1. appurtenant component
A pipeline component that is applied to a coterminous component, such as a coating, casing, or sleeve.
4.2. assembly
A set of functionally related components physically attached to each other that collectively support one or more functions as part of a pressurized pipeline system.
(ISO 6707-1:2014)
4.3. classifier
A classifier is an abstract UML metaclass which describes (classifies) a set of instances having common features (not to be confused with the “Feature” stereotype from the OGC Feature Model). A feature declares a structural or behavioral characteristic of instances of classifiers. (http://www.uml-diagrams.org/classifier.html). Classes, Interfaces, Association, and Types are kinds of classifiers.
4.4. component
A physical pipeline component that is or was part of a pipeline system constructed to be pressurized.
4.5. conceptual model
A model that defines concepts of a universe of discourse.
(ISO 19103, 4.11, 4.23)
4.6. conformance class
A set of conformance test modules that must be applied to receive a single certificate of conformance.
(OGC 08-131r3)
4.7. connector
The connection of two components together such that they function cohesively together as members of a pressurized pipeline system. Connectors can be physical (welded joint) or abstract (connection that are known to exist but the exact components that are connected is not known). In case of a flange, the physical flanges are coterminous components, while the connection made by the two flanges is a connector. Connectors describe the connectivity between coterminous components. Connectors do not add length (of any significance) to the pipeline, whereas components do. For example, a weld does not add length to a pipeline, whereas a flange does.
4.8. coterminous component
A physical pipeline component that is connected (welded, threaded, or bolted) into a series of connected components that collectively comprise a pressurized pipeline system. Coterminous components add physical length to pipelines whereas connectors and appurtenances do not.
4.10. domain feature
Feature of a type defined within a particular application domain.
|
Note
|
This may be contrasted with observations and sampling features, which are features of types defined for cross-domain purposes. |
(ISO 19156, definition 4.4)
4.11. element <XML>
Basic information item of an XML document containing child elements, attributes and character data.
|
Note
|
From the XML Information Set ― each XML document contains one or more elements, the boundaries of which are either delimited by start-tags and end-tags, or, for empty elements, by an empty-element tag. Each element has a type, identified by name, sometimes called its ‘generic identifier’ (GI), and may have a set of attribute specifications. Each attribute specification has a name and a value. |
(ISO 19136:2007)
4.13. GML application schema
Application schema written in XML Schema in accordance with the rules specified in OGC GML 3.3.
(ISO 19136:2007)
4.14. GML document
XML document with a root element that is one of the elements AbstractFeature, Dictionary or TopoComplex, specified in the GML schema or any element of a substitution group of any of these elements.
(ISO 19136:2007)
4.15. GML schema
Schema components in the XML namespace ― as specified in OGC GML 3.3.
(ISO 19136:2007)
4.16. measurement
Set of operations having the objective of determining the value of a quantity.
(ISO/TS 19101-2:2008, definition 4.20)
4.17. observation
Act of observing a property.
NOTE: The goal of an observation may be to measure or otherwise determine the value of a property.
(ISO 19156:2011 definition 4.10)
4.18. observation procedure
Method, algorithm or instrument, or system which may be used in making an observation.
(ISO19156, definition 4.11)
4.19. observation result
Estimate of the value of a property determined through a known procedure.
(ISO 19156:2011)
4.20. pipeline
A continuous connected set of components, including ancillary components, used for transporting liquids or gases as part of a pressurized system.
(ISO 6707-1:2014)
4.21. property <General Feature Model>
Facet or attribute of an object referenced by a name.
EXAMPLE: Abby’s car has the color red, where “color red” is a property of the car instance.
4.22. sampled feature
The real-world domain feature of interest, such as a geological unit or structure which is observed.
(ISO 19156:2011)
4.23. sampling feature
Feature, such as a station, outcrop, borehole, section or specimen, which is involved in making observations of a domain feature.
|
Note
|
A sampling feature is purely an artifact of the observational strategy, and has no significance independent of the observational campaign. |
(ISO 19156:2011, definition 4.16)
4.24. schema <XML Schema>
XML document containing a collection of schema component definitions and declarations within the same target namespace.
Example Schema components of W3C XML Schema are types, elements, attributes, groups, etc.
|
Note
|
The W3C XML Schema provides an XML interchange format for schema information. A single schema document provides descriptions of components associated with a single XML namespace, but several documents may describe components in the same schema, i.e. the same target namespace. |
(ISO 19136:2007)
5. Conventions
This section provides details and examples for any conventions used in the document. Examples of conventions are symbols, abbreviations, use of XML schema, or special notes regarding how to read the document.
All UML diagrams in this document follow the guidance as documented in OGC OWS Common 2.0 section 5.2.
5.1. Requirement Class
Each normative statement (requirement or recommendation) in this specification is a member of a requirements class. Each requirements class is described in a discrete clause or sub-clause, and summarized using the following template:
Requirements Class |
|
/req/{classM} |
|
Target type |
[artefact or technology type] |
Name |
[identifier] |
Dependency |
[identifier for another requirements class] |
Requirement |
/req/{classM}/{reqN} |
Recommendation |
/req/{classM}/{recO} |
Requirement |
/req/{classM}/{reqP} |
Requirement/ Recommendation |
[repeat as necessary] |
All requirements in a requirements class must be satisfied. Hence, the requirements class is the unit of re-use and dependency, and the value of a dependency requirement is another requirements class. All requirements in a dependency must also be satisfied by a conforming implementation. A requirements class may consist only of dependencies and introduce no new requirements.
5.2. Requirement and Recommendation
All requirements and recommendations are normative, and each is presented using the following template:
Requirement [N] |
/req/{classM}/[reqN]
|
{Normative statement} |
The identifier /req/{classM}/[reqN] defines the requirement or recommendation. The use of this layout convention allows the normative provisions of this specification to be easily located by implementers.
5.3. Conformance Class
Conformance to this specification is possible at a number of levels, specified by conformance classes (Annex A). Each conformance class is summarized using the following template:
Conformance Class |
|
/conf/{classM} |
|
Dependency |
[identifier for another conformance class] |
Requirements |
/req/{classA} |
Tests |
[reference to clauses(s) containing tests] |
All tests in a class must be passed. Each conformance class tests conformance to a set of requirements packaged in a requirements class.
5.4. Identifiers
The normative provisions in this specification are denoted by the URI
All requirements and conformance tests that appear in this document are denoted by partial URIs which are relative to this base. The identifier supports cross-referencing of class membership, dependencies, and links from each conformance test to the requirements tested. In this specification identifiers are expressed as partial URIs or paths, which can be appended to a base URI that identifies the specification as a whole in order to construct a complete URI for identification in an external context.
The URI for each requirements class has the form:
The URI for each requirement or recommendation has the form:
The URI for each conformance class has the form:
The URI for each conformance test has the form:
5.5. Classifiers
This document contains a large number of references to classifiers that might sometimes be ambiguous. Classes and packages are simply referred by their name formed using “camelCase” name in mono space type. Duplicate names do exist and the scope (the package of a class or the class a property belongs to) must be made explicit.
OCL syntax will be used to identify a conceptual model classifier from the UML model.
Package::{…}Package::Classifier::Property:Type
Package names are not formal in UML and can change from one implementation to another. The reference model used by PipelineML, and several other domain models, is HollowWorld. For example, a complete path for a SF_SamplingPoint in HollowWorld (from HollowWorld root) is
ISO TC211::ISO 19156 All::ISO 19156:2011 Observations and Measurements::Sampling Features::samplingPoint::SF_SamplingPoint
For the sake of readability, and also because some HollowWorld package names do not have OCL friendly names (e.g. some package names contain ‘:’, as shown in the previous example), this document will use shortcuts to identify packages. For example, for OM::SF_SamplingPoint, OM acts as a shortcut for (ISO TC211::ISO 19156 All::ISO 19156:2011 Observations and Measurements::*) that includes all classifiers in all sub packages and avoids creating a shortcut for all sub packages. The list of shortcuts is provided in Section 8.1.2. PipelineML also uses the recently published ISO19115-3 model which has numerous classifier name overlaps with ISO19115 from HollowWorld.
W3C XPath will be used in XML instances. XML entities will be identified using their full qualified name (namespace, identified by its prefix, and entity name).
6. Clauses not Containing Normative Material
ISO 19101:2014 defines a universe of discourse to be a view of the real or hypothetical world that includes everything of interest. That standard then defines a conceptual model to be a model that defines concepts of a universe of discourse.
The scope of this PipelineML Standard establishes the limits of the universe of discourse for this Standard. The next task is to discover and standardize the concepts within this scope. Because PipelineML attempts to avoid areas of discourse that contain clear overlap with other utility infrastructure concepts, it focuses on a subset of use cases specific to the pipeline industry to eliminate overlap and redundancy within the OGC community. Additionally, this limited scope of specialized use cases is designed to address a lack of application interoperability (in terms of data interchange) within the pipeline industry. These overarching design requirements directed the development of PipelineML toward structured rigidity over flexibility in coding patterns as well as detailed specificity.
The PipelineML conceptual model is defined in UML and follows the agreed upon OGC and TC211 conventions for using UML. Concepts were modeled in UML via Sparx Enterprise Architect and taken through a managed lifecycle development process. The UML was transformed into GML 3.3-compliant application schemas using ShapeChange. Sample PipelineML encoded files were then validated against the resulting schemas. Delta points (i.e., warnings and errors) between the sample encodings and the generated schemas were noted and the next round of refinements were made to the UML conceptual model and the sample files. The process repeated until all delta points were resolved and the UML conceptual model produced expected and agreed encoding results. These results provided a foundation for proposing a joint conceptual model and a GML-compliant encoding standard into a unified PipelineML Standard.
7. PipelineML Conceptual Model (Normative)
The PipelineML Conceptual Model is a mostly rigid framework for modeling oil and gas pipeline components. Oil and gas pipelines carry highly volatile product under pressure and mostly underground. These characteristics require precise and detailed information to assess and mitigate risks using such methods as computational fluid dynamics, aerial dispersion (for gas product), and spill flow simulation based on available elevation data (for liquid product).
To maximize application interoperability, the current version of the PipelineML Standard does not provide any mechanism for extensibility. A future revision may consider adding an extensibility framework provided that it does not negatively impact interoperability.
Creating a conceptual model that mimics the connectivity and detailed attributes of physical components is crucial to the design because the model should support well-known use cases, as well as provide a foundation for those yet to be defined. Providing a framework for future use case support is potentially achievable by closely matching the model to the physical components, connectivity, and properties.
Requirements Class |
|
/req/pipelineml-conceptual |
|
Target type |
Encoding |
Name |
PipelineML Conceptual Model |
Dependency |
ISO19101:2002 Reference Model Clause 7 |
Dependency |
ISO19103 2015 Conceptual Model Language |
Dependency |
ISO19104:2008 |
Dependency |
Unified Modeling Language (UML). Version 2.3. May 2010 |
Requirement 1 |
/req/pipelineml-conceptual/similarity |
Target encodings that are compliant with the conceptual model shall implement components of the conceptual model respecting their semantics, i.e. their definition and intent. In other words, the encoding must be highly semantically similar to components of the conceptual model. Semantic similarity can be tested in multiple ways, including but not limited to: (i) direct comparison of UML components, (ii) comparison after mapping components to a common expressive knowledge representation language, such as first order logic or common logic, or (iii) comparison after mapping components to a reference ontology.
Requirement 1 |
/req/pipelineml-conceptual/similarity
|
An encoding, when claiming compliance with this conceptual model, SHALL implement its components (classes, attributes, relationships) respecting the conceptual model definitions and intent, such that high semantic similarity is obtained between the encoding and conceptual model components. |
The target implementation of the conceptual model is generally an encoding specification or a schema (which could use technologies like XSD, for example) and not a data instance. The conceptual model, expressed using UML, provides naming, structure and cardinality for any physical implementation. The UML model is a normative artifact as the official representation of PipelineML. Rules that can be unambiguously inferred from the UML model will not be documented as explicit requirements. Specific encoding idiosyncrasies shall be addressed in the requirement clauses pertaining to that encoding.
7.1. UML Model Requirement Class
The UML model provides name, structure and cardinality for data elements composing various potential physical implementations of PipelineML. There are formal mappings between UML and GML (ISO-19136). Although it is assumed that UML is technologically neutral, in reality UML models actually address some of the encoding specification details. The current PipelineML UML model has been designed as a GML application according to ISO 19109 and borrows some of artifacts of GML. Several design decisions were guided by limitations of UML (e.g. single inheritance) and XSD (package dependencies artefacts). However, the UML model is detailed enough to constrain the main elements of any encoding; the names of entities and the cardinality of properties, the associations between entities and to some extent property types.
This section defines the minimum UML mapping requirements that shall be met by any target claiming compliance to this specification.
7.1.1. Structural Overview of Requirement Classes
The Requirement Classes for this standard are structured as UML Packages in Figure 2. Below is a brief summary of the function of each of these Requirements Classes.
7.1.1.1. PMLComponent
PMLComponent is the core Requirements Class. This class contains information about the PipelineML dataset that can contain information about pipeline component classes, their attributes, and associations. PMLComponent also contains the definition of types such as data types and external reference code lists.
7.1.1.2. PMLAnomaly
PMLAnomaly is a potential future Requirements Class that may be implemented as part of a modular schema design in a future update to this Standard. This class contains information about anomalies observed and measured as spatial voids (corrosion), dents, scars, gouges, etc. in surfaces of pipeline components. This information is tracked in terms of geospatial location, percentage of wall depth loss, circumferential orientation, proximity to welds, and temporal changes of anomaly area/volume to assess risk and determine remediation prioritization. No additional information is provided for this class as it is simply noted for future potential use.
Figure 2 also shows (external) OGC and ISO standards as Packages on which Requirements Classes in this Standard depend. Below is a brief summary of the function of each of these Standards.
7.1.1.3. ISO-19103-CoreDataTypes
Provides the core data types (e.g., CharacterString, Integer, Date) used in this Standard.
7.1.1.4. OGC-ASTopic1-FeatureGeometry
Provides most of the geometry types (e.g., Point, LineString, Polygon) used for spatial representations in this Standard.
7.1.1.6. ISO-19109-ApplicationSchema
Defines the General Feature Model upon which this Standard is based.
7.1.1.7. Property Cardinality
All properties that could feasibly be made optional are optional in PipelineML. Structural rigidity is used to ensure consistency, application interoperability, and to streamline application development. Some degree of flexibility is provided through the omission of optional properties. This allow data packages to be as concise as possible. Also, this supports the ability for a package to contain only coterminous components, only pipelines, or only connectors/welds based on various needs.
7.2. PipelineML Abstract Requirements Class (Normative)
Abstract Requirements Class |
|
/req/pipelineml-abstract |
|
Target type |
Encoding |
Name |
PipelineML Abstract Requirements Class |
Dependency |
ISO19103 2015 Conceptual Model Language |
Dependency |
ISO19107:2003 Spatial Schema |
Dependency |
ISO19109:2015 Rules for application schemas |
Dependency |
RFC 3986 Uniform Resource Identifier (URI): Generic Syntax |
Dependency |
ISO19115-3 Metadata |
Requirement 2 |
/req/pipelineml-abstract/uml-entity-name |
Requirement 3 |
/req/pipelineml-abstract/uml-cardinality |
Requirement 4 |
/req/pipelineml-abstract/uml-abstract |
Requirement 5 |
/req/pipelineml-abstract/uml-polymorphism |
Requirement 6 |
/req/pipelineml-abstract/quantities-uom |
Requirement 7 |
/req/pipelineml-abstract/codelist |
This section presents requirements to which all target encodings must conform in to order to claim compliance to PipelineML.
7.2.1. Naming of entities
Requirement 2 |
/req/pipelineml-abstract/uml-entity-name
|
When the target implementation allows it, the exact name of the classifier SHALL be used. |
If a target implementation is capable of encoding all the artefacts (classes and properties) using the same names used in UML, it shall do so.
7.2.2. Cardinality
Requirement 3 |
/req/pipelineml-abstract/uml-cardinality
|
If the target implementation allows it, it SHALL implement the same cardinality of properties and associations as defined in the UML. |
Cardinality shall be the same as defined in UML model. Since essentially all properties are optional, this clause addresses the upper bounds of cardinality: “1” or “many” in almost all cases. Therefore, if the UML model limits a property’s maximum cardinality to “1”, then the target implementation cardinality cannot be “many”.
7.2.3. Abstract Classes
Requirement 4 |
/req/pipelineml-abstract/uml-asbstract
|
Abstract classes SHALL NOT be materialised. |
Not all physical implementations support the concept of an abstract class, or even inheritance and polymorphism. XSD does support that concept and all its implications, but JSON does not – although JavaScript can somewhat. This requirement specifies that the encoding specification shall not allow materialization of an instance of a class stereotyped as abstract. In the UML diagram shown in Figure 3, abstract classes are shown with yellow backgrounds while concrete classes are displayed with blue backgrounds.
7.2.4. Polymorphism
Requirement 5 |
/req/pipelineml-abstract/uml-polymorphism
|
A target implementation SHALL implement type substitutions inferred from the UML model. |
The type hierarchy of the UML model implies type substitutions for property values. Many property types are abstract types and only a concrete subtype may be materialised (as per /req/pipelineml-abstrac/uml-abstract). A target implementation shall consider type substitutions using mechanisms available for this implementation.
7.2.5. Quantities
Requirement 6 |
/req/pipelineml-abstract/quantities-uom
|
Quantities and measurements SHALL have explicit units of measure from a governed ontology. |
The quantities and measurements units of measure SHALL be taken from the PipelineML UOM class. This is an externally managed controlled vocabulary.
7.2.6. Code List
Requirement 7 |
/req/pipelineml-abstract/codelist
|
Classes with stereotype |
All properties that require formal vocabularies are modelled in UML as classes having the stereotype CodeList. All codelist classes in PipelineML define a restricted vocabulary with a prescribed URI (RFC 3986) containing authoritative codes and definitions defined as a GML 3.3 dictionary. Compliance to the PipelineML Standard includes compliance with the prescribed authoritative data. A mechanism is defined within the PipelineML Standard for identification of substandard data.
7.3. Linked Open Data Requirements Class (Normative)
Abstract Requirements Class |
|
/req/pipelineml-lod |
|
Target type |
Encoding |
Name |
Linked Open Data Requirements Class |
Dependency |
URI |
Dependency |
HTTP |
Requirement 8 |
/req/pipelineml-lod/codelistURI |
Recommendation 9 |
/req/pipelineml-lod/codelistURIexception |
Requirement 10 |
/req/pipelineml-lod/identifier |
Requirement 11 |
/req/pipelineml-lod/byref |
Although OGC standards are not restricted to a web environment, they are strongly influenced by this environment. PipelineML was originally developed specifically for XML (due to its robust, mature capabilities as an ecosystem capable of supporting the weight of a data interchange standard), but many other encodings are suitable hypermedia formats (RDF/XML, JSON-LD, HTML). This requirements class describes extra rules that shall be implemented to turn PipelineML data instances into hypermedia compatible with Linked Open Data principles.
Linked Open Data is a method to publish structured data on the web. It leverages existing web technologies such as HTTP (transfer protocol) and URI (addressing over the web) to connect structured resources. The principle is similar to interconnected web pages through hyperlinks, except that pages are replace with structured information that can be processed by machines.
7.3.1. Code List URI
Requirement 8 |
/req/pipelineml-lod/codelistURI
|
All URIs used for reference code lists SHALL conform to the official URI governed by the OGC PipelineML Standards Working Group (SWG) or an officially designated governing body granted responsibility for managing PipelineML reference code lists, codes, terms, definitions, and associated attributes (PipelineML Authoritative Data Governance Body). |
All reference code lists that conform to the codelistURI construct SHALL conform to the official URI governed by the OGC PipelineML Standards Working Group (SWG) or an officially designated governing body granted responsibility for managing PipelineML reference code lists, codes, terms, definitions, and associated attributes (PipelineML Authoritative Data Governance Body). A URI used for vocabulary terms that utilizes PipelineML authoritative code values SHALL be dereferenceable to one or more representations of the vocabulary term.
Requirement 9 |
/req/pipelineml-lod/codelistURIexception
|
[Recommendation] Certain PipelineML codelists are considered to be immature as the codes have not been fully developed and vetted across pipeline industry experts. As such, these codelists are designated to permit the use of non-authoritative codes. In these designated code lists, if a value needs to be represented that is not contained in the PipelineML authoritative code list, an alternative code value MAY be used as a temporary solution, so long as it complies with the following 5 guidelines:
|
7.3.2. Identifier
Requirement 10 |
/req/pipelineml-lod/identifier
|
HTTP URI used as entity identifiers SHALL be to one or more representations of that entity. |
This requirement demands that the target ensures that a data instance exposes a URI as a unique identifier for this feature and this identifier SHALL be dereferenceable to one or more representations of that feature.
7.3.3. ByReference Associations
Requirement 11 |
/req/pipelineml-lod/byref
|
External references to an entity conforming to [/req/gsml4-lod/identifier] shall be expressed using this entity identifier. |
Serialization of a dataset will often omit the full description of a feature and replace the property value with an external reference. A reference to this feature is formed by the dereferenceable identifier described in clause 8.3.3. A client ingesting the dataset can use this reference to extract a feature representation if need be. Over the web, this reference shall be a HTTP URI that can be dereferenced to one or more representations of that feature.
7.4. PipelineML Encoding Requirements Class (Normative)
Requirements Class |
|
/req/pipelineml-encoding |
|
Target type |
Encoding |
Name |
PipelineML Encoding Model |
Dependency |
/req/pipelineml-conceptual |
Dependency |
ISO19101:2002 Reference Model Clause 7 |
Dependency |
ISO19103 2015 Conceptual Model Language |
Dependency |
ISO19104:2008 |
Dependency |
Unified Modeling Language (UML). Version 2.3. May 2010 |
Requirement 12 |
/req/pipelineml-encoding/similarity |
Target encodings that are compliant with the conceptual model shall implement components of the conceptual model respecting their semantics, i.e. their definition and intent. In other words, encodings must be highly semantically similar to components of the conceptual model. Semantic similarity can be tested in multiple ways, including but not limited to: (i) direct comparison of UML components, (ii) comparison after mapping components to a common expressive knowledge representation language, such as first order logic or common logic, or (iii) comparison after mapping components to a reference ontology.
Requirement 12 |
/req/pipelineml-encoding/similarity
|
A target encoding, when claiming compliance with this conceptual model, SHALL implement its components (classes, attributes, relationships) respecting the conceptual model definitions and intent, such that high semantic similarity is obtained between the encoding and conceptual model components. |
7.5. PMLComponent Class Requirements Class (Normative)
Requirements Class |
|
/req/pmlcomponent |
|
Target type |
Encoding of conceptual model |
Name |
PMLComponent |
Dependency |
/req/pipelineml-conceptual |
Dependency |
urn:iso:is:iso:19103:clause:7 |
Dependency |
|
Dependency |
urn:iso:is:iso:19109:req:uml:feature |
Dependency |
|
Requirement 13 |
/req/pmlcomponent/dataset |
Requirement 14 |
/req/pmlcomponent/classes |
Requirement 15 |
/req/pmlcomponent/crs |
Requirement 16 |
/req/pmlcomponent/19103 |
Requirement 17 |
/req/pmlcomponent/topic-1 |
Requirement 18 |
/req/pmlcomponent/19109 |
Requirement 19 |
/req/pmlcomponent/boundtypes |
Although PipelineML is designed to support a modular framework, the initial release of the standard contains only a single GML application schema by the name of PMLComponent(.xsd). This small footprint schema is designed to address some specific use cases within the pipeline industry. PMLComponent is the core requirements class, as shown in Figure 3. The root class, PMLComponent, specifies the PMLDataset and all classes contained within this requirement class.
Requirement 13 |
/req/pmlcomponent/dataset
|
A PipelineML encoding shall specify a PMLDataset class in whatever format that is appropriate to that encoding (e.g., an XML document for GML encoding). |
The dataset may contain any number of occurrences of each of the following classes: pipeline, assembly, collection, component, pipeconnector, virtualconnector, cap, compressor, elbow, flange, launcherreceiver, linepipe, meter, pump, reducer, tap, tee, valve, casing, coating, and sleeve.
Requirement 14 |
/req/pmlcomponent/classes
|
The PMLComponent Requirements Class Classes (shown in blue in Figure 3) SHALL be provided by the encoding in a manner consistent with the encoding. |
Requirement 15 |
/req/pmlcomponent/crs
|
A PipelineML encoding SHALL support coordinate reference systems in accordance with OGC Abstract Specification Topic 2, Spatial Referencing by Coordinates. |
Requirement 16 |
/req/pmlcomponent/19103
|
A PipelineML encoding SHALL support the core data types specified in ISO 19103 that are appropriate to the supported subject area(s). |
Requirement 17 |
/req/pmlcomponent/topic-1
|
A PipelineML encoding SHALL support the geometry types specified in the OGC Abstract Specification Topic 1, Feature Geometry that are appropriate to the supported subject area(s). Additional geometry types, not found in Topic 1, but required by a specific requirements class, are specified in that requirements class. |
Requirement 18 |
/req/pmlcomponent/19109
|
A PipelineML encoding SHALL support the uml:feature requirement(s) in ISO 19109:2015 that are appropriate to the supported subject area(s). Each instance of FeatureType shall be implemented by the encoding’s equivalent of a UML Class having a generalization association with AnyFeature and with a stereotype of |
Requirement 19 |
/req/pmlcomponent/boundtypes
|
A PipelineML encoding SHALL support the use of bound data constructsThese constructs support a combination of attributes that are tightly bound together for the purpose of defining valid combinations of attributes using a single attribute valueA bound data type is dereferencable to a concatenated string of attributes separated by semicolonsThe utilization of bound data types is considered a best practice over the use of unbound data types, when available, as it represents the highest level of data pedigree. |
7.5.1. PMLDataset Class Requirements Class (Normative)
The PMLDataset Class is a concrete class and therefore may be encoded into a PipelineML dataset. Figure 4 shows the key class relationships related to the PMLDataset class (note that the abstract and concrete classes that inherit from the Component class are not shown in this diagram for readability). The PMLDataset class contains header information (metadata) about the PipelineML dataset and relationships to other classes:
datasetID: A required machine-readable globally unique instance identifier for this feature. This identifier is unique within a PipelineML data package and is retained for the same piece of componentry throughout all subsequent PipelineML versions being distributed.
code: An optional human-readable string that is unique within the context of this entity (component) type, but not globally unique across all entity types
name: An optional call name by which the classes grouped in this class can commonly be references
comment: An optional comment pertaining to the dataset
dateTime: The required date and time that the dataset was created and therefore the point-in-time for which the data is valid
datasetVersion: The optional version number of the dataset
application: The optional software application (including version) used to generate the dataset
author: The optional person or organization or organizational department which created this dataset
pmlVersion: The required version number of the PipelineML encoding standard used to generate this dataset
language: The optional language used in the dataset to specify the default human language used for the data. It is specified in the xml:lang datatype. The default value is English.
defaultCRS: The required default coordinate reference system which is used for all spatial representations within the dataset except where overridden by the coordinate reference system defined for an individual pipeline component
pipeline: any number of Pipelines
assembly: any number of Assemblies
collection: any number of Collections
collectionMember: any number of CollectionMembers
component: The Component Class is an abstract class and SHALL NOT be encoded.
connectorComponent: The ConnectorComponent Class is an abstract class and SHALL NOT be encoded.
coterminousComponent: The CoterminousComponent Class is an abstract class and SHALL NOT be encoded.
appurtenantComponent: The AppurtenantComponent Class is an abstract class and SHALL NOT be encoded.
pipeconnector: any number of PipeConnectors
virtualconnector: any number of VirtualConnectors
cap: any number of Caps
compressor: any number of Compressors
elbow: any number of Elbows
flange: any number of Flanges
launcherreceiver: any number of Launcherreceivers
linepipe: any number of Linepipes
meter: any number of Meters
pump: any number of Pumps
reducer: any number of Reducers
tap: any number of Taps
tee: any number of Tees
valve: any number of Valves
casing: any number of Casing
coating: any number of Coatings
sleeve: any number of Sleeves
7.5.1.1. Pipeline Class Requirements Class (Normative)
Requirements Class |
|
/req/pipeline |
|
Target type |
Encoding of conceptual model |
Name |
PMLComponent Pipeline |
Dependency |
/req/pmlcomponent |
Requirement 20 |
/req/pipeline/pipelineboundtype-boundtype |
Requirement 21 |
/req/pipeline/pipelineboundtype-codelistURI |
Requirement 22 |
/req/pipeline/pipelineboundtype-exclusivity |
Requirement 23 |
/req/pipeline/pipelineclassification-codelistURI |
Requirement 24 |
/req/pipeline/pipelineclassification-exclusivity |
Requirement 25 |
/req/pipeline/pipelinetype-codelistURI |
Requirement 26 |
/req/pipeline/pipelinetype-exclusivity |
Requirement 27 |
/req/pipeline/pipelinesubtype-codelistURI |
Requirement 28 |
/req/pipeline/pipelinesubtype-exclusivity |
The Pipeline Class is a concrete class and therefore MAY be encoded into a PipelineML dataset. This class is an aggregation of features designed to represent a comprehensive set of pipeline components that collectively define a pressurized pipeline system capable of carrying product. This class contains classes and attributes as shown in Figure 8.
The Pipeline Class is rigidly modeled after the physical connectivity of pipeline components. If a Pipeline feature is defined, it SHALL contain one or more Assembly Classes. An Assembly Class defines a segment of pipeline components that perform a single primary function (e.g. mainline assembly, launcherreceiver assembly, storage tank assembly, etc.).
The Pipeline Requirements Class contains attributes and relationships to other classes:
pipelineID: A required machine-readable globally unique instance identifier for this feature. This identifier is unique within a PipelineML data package and is retained for the same piece of componentry throughout all subsequent PipelineML versions being distributed.
code: An optional string that is unique within the context of this entity (component) type, but not globally unique across all entity types
name: An optional name of the Pipeline
comment: An optional string that allows for text comment to be provided pertaining to a specific instance of an assembly
pipelineBoundType: An optional value that, if populated, SHALL be dereferenceable to define a bound combination of attributes as a concatenated string with each attribute being separated by semicolons (;). An alternate method is provided (below) for defining each of these attributes in unbound form. Only the bound type or unbound types may be populated, but NOT BOTH. This bound form of attributes represents the highest pedigree of data standardization and is considered best practice, as it provides a mechanism for identifying valid combinations of attributes. This bound set of values includes the following attributes: pipelineClassification; pipelineType; pipelineSubType.
Requirement 20 |
/req/pipeline/pipelineboundtype-boundtype
|
This optional bound attribute pipelineBoundType SHALL utilize the PipelineML boundType constructThis construct support a combination of attributes that are tightly bound together for the purpose of defining valid combinations of attributes using a single attribute valueA bound data type SHALL be dereferencable to a concatenated string of attributes separated by semicolons. |
Requirement 21 |
/req/pipeline/pipelineboundtype-codelistURI
|
This optional bound attribute pipelineBoundType SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/pipelineboundtype . This value SHALL be dereferencable to a set of strongly bound string attributes separated by semicolons. |
Requirement 22 |
/req/pipeline/pipelineboundtype-exclusivity
|
This optional bound attribute pipelineBoundType MAY be populated, or its corresponding set of unbound attributes (pipelineClassification, pipelineType, and pipelineSubType) MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
pipelineClassification: An optional value that, if populated, SHALL be dereferenceable to a string value is used to define the classification of the pipeline. The classification describes the medium intended to be transported through this pipeline. This attribute SHALL NOT be provided if the attribute pipelineBoundType is populated for reasons of disambiguation.
Requirement 23 |
/req/pipeline/pipelineclassification-codelistURI
|
This optional unbound attribute pipelineClassification SHALL utilize the PipelineML codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/pipelineclassification . This value SHALL be dereferencable to a string attribute. |
Requirement 24 |
/req/pipeline/pipelineclassification-exclusivity
|
This optional unbound attribute pipelineClassification MAY be populated, or its corresponding bound attribute pipelineBoundType MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
pipelineType: An optional value is used to define the type of the pipeline. This attribute SHALL NOT be provided if the attribute pipelineBoundType is populated for reasons of disambiguation. This includes such values as "distribution", "gathering", "transmission" and "utility".
Requirement 25 |
/req/pipeline/pipelinetype-codelistURI
|
This optional unbound attribute pipelineType SHALL utilize the PipelineML codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/pipelinetype . This value SHALL be dereferencable to a string attribute. |
Requirement 26 |
/req/pipeline/pipelinetype-exclusivity
|
This optional unbound attribute pipelineType MAY be populated, or its corresponding bound attribute pipelineBoundType MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
pipelineSubType: An optional value is used to define the subtype of the pipeline. This attribute SHALL NOT be provided if the attribute pipelineBoundType is populated for reasons of disambiguation.
Requirement 27 |
/req/pipeline/pipelinesubtype-codelistURI
|
This optional unbound attribute pipelineSubType SHALL utilize the PipelineML codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/pipelinesubtype . This value SHALL be dereferencable to a string attribute. |
Requirement 28 |
/req/pipeline/pipelinesubtype-exclusivity
|
The optional unbound attribute pipelineSubType MAY be populated, or its corresponding bound attribute pipelineBoundType MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
assembly: any number of Assemblies
7.5.1.2. Assembly Class Requirements Class (Normative)
Requirements Class |
|
/req/assembly |
|
Target type |
Encoding of conceptual model |
Name |
PMLComponent Assembly |
Dependency |
/req/pmlcomponent |
Requirement 29 |
/req/assembly/componentexclusivity |
Requirement 30 |
/req/assembly/assemblyboundtype-boundtype |
Requirement 31 |
/req/assembly/assemblyboundtype-codelistURI |
Requirement 32 |
/req/assembly/assemblyboundtype-exclusivity |
Requirement 33 |
/req/assembly/assemblyclassification-codelistURI |
Requirement 34 |
/req/assembly/assemblyclassification-exclusivity |
Requirement 35 |
/req/assembly/assemblytype-codelistURI |
Requirement 36 |
/req/assembly/assemblytype-exclusivity |
Requirement 37 |
/req/assembly/assemblysubtype-codelistURI |
Requirement 38 |
/req/assembly/assemblysubtype-exclusivity |
The Assembly Class is a concrete class and therefore may be encoded into a PipelineML dataset. This class is an aggregation of features designed to provide a single primary function (e.g. mainline assembly, launcherreceiver assembly, storage tank assembly, etc.). This class contains classes and attributes as shown in Figure 9. This diagram does not include concrete classes that inherit from the ConnectorComponent, Component, and AppurtenantComponent class as these classes are shown on previous diagrams.
Requirement 29 |
/req/assembly/componentexclusivity
|
Components SHALL be exclusive to a single assembly; that is, no component may exist in more than one assembly (as defined by the component identity attribute). |
The Assembly Class contains attributes and relationships to other classes:
assemblyID: A required machine-readable globally unique instance identifier for this feature. This identifier is unique within a PipelineML data package and is retained for the same piece of componentry throughout all subsequent PipelineML versions being distributed.
code: An optional human-readable string that is unique within the context of this entity (component) type, but not globally unique across all entity types
name: An optional call name by which the classes grouped in this class can commonly be references
comment: An optional human-readable comment pertaining to this class
length: An optional total in-line (gas flow) length of the assembly
startEngineeringStation: An optional surveyed engineering station value at the start of the object. This static attribute is designed to support legacy business use cases but is not part of a dynamic linear reference system. This is a placeholder for operators who are using legacy systems that are based on linear references. This attribute may be removed at some point in the future if no linear reference support is adopted or replaced with a comprehensive linear referencing system.
endEngineeringStation: An optional surveyed engineering station value at the end of the object. This static attribute is designed to support legacy business use cases but is not part of a dynamic linear reference system. This is a placeholder for operators who are using legacy systems that are based on linear references. This attribute may be removed at some point in the future if no linear reference support is adopted or replaced with a comprehensive linear referencing system.
assemblyBoundType: An optional value that, if populated, SHALL be dereferenceable to define a bound combination of attributes as a concatenated string with each attribute being separated by semicolons (;). An alternate method is provided (below) for defining each of these attributes in unbound form. Only the bound type or unbound types may be populated, but NOT BOTH. This bound form of attributes represents the highest pedigree of data standardization and is considered best practice, as it provides a mechanism for identifying valid combinations of attributes. This bound set of values includes the following attributes: assemblyClassification; assemblyType; assemblySubType.
Requirement 30 |
/req/assembly/assemblyboundtype-boundtype
|
This optional bound attribute assemblyBoundType SHALL utilize the PipelineML boundType constructThis construct support a combination of attributes that are tightly bound together for the purpose of defining valid combinations of attributes using a single attribute valueA bound data type SHALL be dereferencable to a concatenated string of attributes separated by semicolons. |
Requirement 31 |
/req/assembly/assemblyboundtype-codelistURI
|
This optional bound attribute assemblyBoundType SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/assemblyboundtype . This value shall be dereferencable to a set of strongly bound string attributes separated by semicolons. |
Requirement 32 |
/req/assembly/assemblyboundtype-exclusivity
|
This optional bound attribute assemblyBoundType MAY be populated, or its corresponding set of unbound attributes (assemblyClassification, assemblyType, and assemblySubType) MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
assemblyClassification: A value that, if populated, SHALL be dereferenceable to a string value and is used to define the classification of the assembly. This attribute SHALL NOT be provided if the attribute assemblyBoundType is populated for reasons of disambiguation.
Requirement 33 |
/req/assembly/assemblyclassification-codelistURI
|
This optional unbound attribute assemblyClassification SHALL utilize the PipelineML codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/assemblyclassification . This value SHALL be dereferencable to a string attribute. |
Requirement 34 |
/req/assembly/assemblyclassification-exclusivity
|
This optional unbound attribute assemblyClassification MAY be populated, or its corresponding bound attribute assemblyBoundType MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
assemblyType: An optional value is used to define the type of the pipeline. This attribute SHALL NOT be provided if the attribute assemblyBoundType is populated for reasons of disambiguation.
Requirement 35 |
/req/assembly/assemblytype-codelistURI
|
This optional unbound attribute assemblyType SHALL utilize the PipelineML codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/assemblytype . This value SHALL be dereferencable to a string attribute. |
Requirement 36 |
/req/assembly/assemblytype-exclusivity
|
This optional unbound attribute assemblyType MAY be populated, or its corresponding bound attribute assemblyBoundType MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
assemblySubType: An optional value is used to define the subtype of the pipeline. This attribute SHALL NOT be provided if the attribute assemblyBoundType is populated for reasons of disambiguation.
Requirement 37 |
/req/assembly/assemblysubtype-codelistURI
|
This optional unbound attribute assemblySubType SHALL utilize the PipelineML codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/assemblysubtype . This value SHALL be dereferencable to a string attribute. |
Requirement 38 |
/req/assembly/assemblysubtype-exclusivity
|
This optional unbound attribute assemblySubType MAY be populated, or its corresponding bound attribute assemblyBoundType MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
component: The Component Class is an abstract class and SHALL NOT be encoded.
connectorComponent: The ConnectorComponent Class is an abstract class and SHALL NOT be encoded.
coterminousComponent: The CoterminousComponent Class is an abstract class and SHALL NOT be encoded.
appurtenantComponent: The AppurtenantComponent Class is an abstract class and SHALL NOT be encoded.
pipeconnector: any number of PipeConnectors
virtualconnector: any number of VirtualConnectors
cap: any number of Caps
compressor: any number of Compressors
elbow: any number of Elbows
flange: any number of Flanges
launcherreceiver: any number of Launcherreceivers
linepipe: any number of Linepipes
meter: any number of Meters
pump: any number of Pumps
reducer: any number of Reducers
tap: any number of Taps
tee: any number of Tees
valve: any number of Valves
casing: any number of Casing
coating: any number of Coatings
sleeve: any number of Sleeves
7.5.1.3. Collection Class Requirements Class (Normative)
Requirements Class |
|
/req/collection |
|
Target type |
Encoding of conceptual model |
Name |
PMLComponent Collection |
Dependency |
/req/pmlcomponent |
Requirement 39 |
/req/collection/collectionboundtype-boundtype |
Requirement 40 |
/req/collection/collectionboundtype-codelistURI |
Requirement 41 |
/req/collection/collectionboundtype-exclusivity |
Requirement 42 |
/req/collection/collectionclassification-codelistURI |
Requirement 43 |
/req/collection/collectionclassification-exclusivity |
Requirement 44 |
/req/collection/collectiontype-codelistURI |
Requirement 45 |
/req/collection/collectiontype-exclusivity |
Requirement 46 |
/req/collection/collectionsubtype-codelistURI |
Requirement 47 |
/req/collection/collectionsubtype-exclusivity |
The Collection Class is a concrete class and therefore may be encoded into a PipelineML dataset. Whereas the Pipeline and Assembly Classes are rigidly designed to mimic the connectivity of physical pipeline components, the Collection Class provides flexible aggregation of components to support a variety of business needs. This class contains classes and attributes as shown in Figure 10.
The Collection Class contains attributes and relationships to other classes:
collectionID: A required machine-readable globally unique instance identifier for this feature. This identifier is unique within a PipelineML data package and is retained for the same piece of componentry throughout all subsequent PipelineML versions being distributed.
code: An optional human-readable string that is unique within the context of this entity (component) type, but not globally unique across all entity types
name: An optional call name by which the classes grouped in this class can commonly be references
comment: An optional human-readable comment pertaining to this class
collectionBoundType: An optional value that, if populated, SHALL be dereferenceable to define a bound combination of attributes as a concatenated string with each attribute being separated by semicolons (;). An alternate method is provided (below) for defining each of these attributes in unbound form. Only the bound type or unbound types may be populated, but NOT BOTH. This bound form of attributes represents the highest pedigree of data standardization and is considered best practice, as it provides a mechanism for identifying valid combinations of attributes. This bound set of values includes the following attributes: collectionClassification; collectionType; collectionSubType.
Requirement 39 |
/req/collection/collectionboundtype-boundtype
|
This optional bound attribute collectionBoundType SHALL utilize the PipelineML boundType constructThis construct support a combination of attributes that are tightly bound together for the purpose of defining valid combinations of attributes using a single attribute valueA bound data type SHALL be dereferencable to a concatenated string of attributes separated by semicolons. |
Requirement 40 |
/req/collection/collectionboundtype-codelistURI
|
This optional bound attribute collectionBoundType SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/collectionboundtype . This value shall be dereferencable to a set of strongly bound string attributes separated by semicolons. |
Requirement 41 |
/req/collection/collectionboundtype-exclusivity
|
This optional bound attribute collectionBoundType MAY be populated, or its corresponding bound set of attributes (collectionClassification, collectionType, and collectionSubType) MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
collectionClassification: An optional value that, if populated, SHALL be dereferenceable to a string value is used to define the classification of the pipeline. This attribute SHALL NOT be provided if the attribute collectionBoundType is populated for reasons of disambiguation.
Requirement 42 |
/req/collection/collectionclassification-codelistURI
|
This optional unbound attribute collectionClassification SHALL utilize the PipelineML codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/collectionclassification . This value SHALL be dereferencable to a string attribute. |
Requirement 43 |
/req/collection/collectionclassification-exclusivity
|
This optional unbound attribute collectionClassification MAY be populated, or its corresponding bound attribute collectionBoundType MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
collectionType: An optional value that, if populated, SHALL be dereferenceable to define a string value containing the type of collection. This attribute SHALL NOT be provided if the attribute collectionBoundType is populated for reasons of disambiguation.
Requirement 44 |
/req/collection/collectiontype-codelistURI
|
This optional unbound attribute collectionType SHALL utilize the PipelineML codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/collectiontype . This value SHALL be dereferencable to a string attribute. |
Requirement 45 |
/req/collection/collectiontype-exclusivity
|
This optional unbound attribute collectionType MAY be populated, or its corresponding bound attribute collectionBoundType MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
collectionSubType: An optional value that, if populated, SHALL be dereferenceable to define a string value containing the subtype of collection. This attribute SHALL NOT be provided if the attribute collectionBoundType is populated for reasons of disambiguation.
Requirement 46 |
/req/collection/collectionsubtype-codelistURI
|
This optional unbound attribute collectionSubType SHALL utilize the PipelineML codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/collectionsubtype . This value SHALL be dereferencable to a string attribute. |
Requirement 47 |
/req/collection/collectionsubtype-exclusivity
|
This optional unbound attribute collectionSubType MAY be populated, or its corresponding bound attribute collectionBoundType MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
collectionMember: Any number of CollectionMembers. A CollectionMember Class is a concrete class that has a one-to-one relationship with the abstract Component Class. It contains a list of component ID’s of which the collection is built up.
7.5.1.4. Component Class Requirements Class (Normative)
The Component Class is an abstract class and SHALL NOT be encoded into a PipelineML dataset. This abstract class provides an inheritance mechanism for passing attributes on to other classes that inherit from it. This class also establishes relationships with other classes in the model. This class contains classes and attributes as shown in Figure 11 (the concrete classes generalized from the ConnectorComponent, CoterminousComponent, and AppurtenantComponent classes are not shown as they are shown in other diagrams in this document).
The Component Class contains attributes and relationships to other classes:
abandonDate: An optional date when the component was abandoned from service
code: An optional human-readable string that is unique within the context of this entity (component) type, but not globally unique across all entity types
comment: An optional human-readable comment pertaining to this class
manufacturerDate: An optional date when the component was manufactured
installDate: An optional date when the component was installed on the pipeline system
removeDate: An optional date when the assembly was removed from the pipeline system
length: An optional total length of the assembly
location: One or more optional geospatial coordinates (x, y; x, y, z,; x, y, z, m) based on a specified Coordinate Reference System (CRS) in 0 (point), 1 (linestring), or 2 (polygonal) spatial dimensions, derived from the GML GM_Object class. The spatial dimensions refer to the representation of the described feature.
startEngineeringStation: An optional surveyed engineering station value at the start of the object. This static attribute is designed to support legacy business use cases but is not part of a dynamic linear reference system.
endEngineeringStation: An optional surveyed engineering station value at the end of the object. This static attribute is designed to support legacy business use cases but is not part of a dynamic linear reference system.
connectorComponent: The ConnectorComponent Class is an abstract class and SHALL NOT be encoded.
coterminousComponent: The CoterminousComponent Class is an abstract class and SHALL NOT be encoded.
appurtenantComponent: The AppurtenantComponent Class is an abstract class and SHALL NOT be encoded.
pipeconnector: any number of PipeConnectors
virtualconnector: any number of VirtualConnectors
cap: any number of Caps
compressor: any number of Compressors
elbow: any number of Elbows
flange: any number of Flanges
launcherreceiver: any number of Launcherreceivers
linepipe: any number of Linepipes
meter: any number of Meters
pump: any number of Pumps
reducer: any number of Reducers
tap: any number of Taps
tee: any number of Tees
valve: any number of Valves
casing: any number of Casing
coating: any number of Coatings
sleeve: any number of Sleeves
7.5.1.5. ConnectorComponent Class Requirements Class (Normative)
The ConnectorComponents Class is abstract and SHALL NOT be encoded into a PipelineML dataset. This abstract class provides an inheritance mechanism for passing attributes on to other classes that inherit from it. This class also establishes relationships with other classes in the model. What differentiates ConnectorComponents from CoterminousComponents and AppurtinentComponents is that connectors join coterminous components that are involved in a pipeline system. CoterminousComponents and ConnectorsComponents are pressurizable whereas AppurtenantComponents are affixed around/over coterminous and connector components. Connectors do not add physical length (of any significance) to the pipeline. Connectors are not applicable to AppurtenantComponents because appurtenances do not have connections but are directly applied to or around coterminous components. This class contains classes and attributes as shown in Figure 12.
The ConnectorComponent Class contains attributes and relationships to other classes:
componentID1: A required unique identifier for the first component that this connector connects
componentID2: An optional unique identifier for the second component that this connector connects. This attribute is optional to support applications that only identify a single component with a connection.
pipeconnector: The ConnectorComponent abstract class can be instantiated as a concrete Pipeconnector class/encoding
virtualconnector: The ConnectorComponent abstract class can be instantiated as a concrete Virtualconnector class/encoding
7.5.1.6. Pipeconnector Class Requirements Class (Normative)
Requirements Class |
|
/req/pipeconnector |
|
Target type |
Encoding of conceptual model |
Name |
PMLComponent Pipeconnector |
Dependency |
/req/pmlcomponent |
Requirement 48 |
/req/pipeconnector/pipeconnectormanufacturer-codelistURIexception |
Requirement 49 |
/req/pipeconnector/pipeconnectortype-codelistURI |
Requirement 50 |
/req/pipeconnector/pipeconnectortype-exclusivity |
Requirement 51 |
/req/pipeconnector/pipeconnectormaterial-codelistURI |
Requirement 52 |
/req/pipeconnector/pipeconnectorboundtype-boundtype |
Requirement 53 |
/req/pipeconnector/pipeconnectorboundtype-codelistURI |
Requirement 54 |
/req/pipeconnector/pipeconnectorboundtype-exclusivity |
Requirement 55 |
/req/pipeconnector/pipeconnectorsubtype-codelistURI |
Requirement 56 |
/req/pipeconnector/pipeconnectorsubtype-exclusivity |
The Pipeconnector Class is a concrete class and therefore may be encoded into a PipelineML dataset. This class contains classes and attributes as shown in Figure 13.
The Pipeconnector Class contains attributes and relationships to other classes:
pipeconnectorManufacturer: An optional value that, if populated, SHALL be dereferenceable to define a string value containing the name of the company that manufactured the component. In the case of welding rods, this would be the company who manufactured the rods. The use of an external reference code list (controlled vocabulary) is intended to provide authoritative data that enhances application interoperability.
Requirement 48 |
/req/pipeconnector/pipeconnectormanufacturer-codelistURIexception
|
[Recommendation] This optional attribute pipeconnectorManufacturer SHOULD utilize the codelistURIexception constructAny value populated for this attribute SHOULD utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/pipeconnectormanufacturer . This value SHOULD be dereferencable to a string attribute. This attribute supports the use of substandard data by using an alternate source to the PipelineML Authoritative Data Governance Body for the unique code value (machine readable value) and the title (human readable value). If a value needs to be represented that is not contained in the PipelineML authoritative code list, an alternative code value MAY be used as a temporary solution, so long as it complies with the following guidelines:
|
pipeconnectorType: An optional value that, if populated, SHALL be dereferenceable to define a string value containing the type of connector
Requirement 49 |
/req/pipeconnector/pipeconnectortype-codelistURI
|
This optional unbound attribute pipeconnectorType SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/pipeconnectortype . This value SHALL be dereferencable to a string attribute. |
Requirement 50 |
/req/pipeconnector/pipeconnectortype-exclusivity
|
This optional unbound attribute pipeconnectorType MAY be populated, or its corresponding bound attribute pipeconnetorBoundType MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
pipeconnectorMaterial: An optional value that, if populated, SHALL be dereferenceable to define a string value containing the material used in the connection
Requirement 51 |
/req/pipeconnector/pipeconnectormaterial-codelistURI
|
This optional attribute pipeconnectorMaterial SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/pipeconnectormaterial . This value SHALL be dereferencable to a string attribute. |
pipeconnectorNumber: An optional value that, if populated, SHALL be dereferenceable to define a string value containing the number assigned to this connection
pipeconnectorBoundType: An optional value that, if populated, SHALL be dereferenceable to define a bound combination of attributes as a concatenated string with each attribute being separated by semicolons (;). An alternate method is provided (below) for defining each of these attributes in unbound form. Only the bound type or unbound types may be populated, but NOT BOTH. This bound form of attributes represents the highest pedigree of data standardization and is considered best practice, as it provides a mechanism for identifying valid combinations of attributes. This bound set of values includes the following attributes: pipeconnectorType; pipeconnectorSubType.
Requirement 52 |
/req/pipeconnector/pipeconnectorboundtype-boundtype
|
This optional bound attribute pipeconnectorBoundType SHALL utilize the PipelineML boundType constructThis construct support a combination of attributes that are tightly bound together for the purpose of defining valid combinations of attributes using a single attribute valueA bound data type SHALL be dereferencable to a concatenated string of attributes separated by semicolons. |
Requirement 53 |
/req/pipeconnector/pipeconnectorboundtype-codelistURI
|
This optional bound attribute pipeconnectorBoundType SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/pipeconnectorboundtype . This value shall be dereferencable to a set of strongly bound string attributes separated by semicolons. |
Requirement 54 |
/req/pipeconnector/pipeconnectorboundtype-exclusivity
|
This optional bound attribute pipeconnectorBoundType MAY be populated, or its corresponding set of unbound attributes (pipeconnectorType, and pipeconnectorSubType) MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
pipeconnectorSubType: An optional value that, if populated, SHALL be dereferenceable to define a string value containing the subtype of connector
Requirement 55 |
/req/pipeconnector/pipeconnectorsubtype-codelistURI
|
This optional unbound attribute pipeconnectorSubType SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/pipeconnectorsubtype . This value shall be dereferencable to a set of strongly bound string attributes separated by semicolons. |
Requirement 56 |
/req/pipeconnector/pipeconnectorsubtype-exclusivity
|
This optional unbound attribute pipeconnectorType MAY be populated, or its corresponding bound attribute pipeconnectorBoundType MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
7.5.1.7. Virtualconnector Class Requirements Class
The Virtualconnector Class is a concrete class and therefore may be encoded into a PipelineML dataset. This class contains classes and attributes as shown in Figure 14.
The Virtualconnector Class contains attributes and relationships to other classes:
virtualconnectorType: An optional value that, if populated, SHALL be dereferenceable to define a string value containing the type of virtual connector
7.5.1.8. CoterminousComponent Class Requirements Class
The CoterminousComponent Class is an abstract class and therefore SHALL NOT be encoded into a PipelineML dataset. This class provides an inheritance mechanism for passing attributes on to other classes that inherit from it. This class also establishes relationships with other classes in the model. This class contains classes and attributes as shown in Figure 15.
The CoterminousComponent Class contains attributes and relationships to other classes:
assemblyID: A required machine-readable globally unique instance identifier for this feature. This identifier is unique within a PipelineML data package and is retained for the same piece of componentry throughout all subsequent PipelineML versions being distributed.
pressureRating: An optional integer value is used to define the pressure rating of the pipeline component. This is not an operational pressure rating but a maximum pressure rating as established by the component manufacturer. This measurement SHALL include a units of measure reference.
cap: any number of Caps
compressor: any number of Compressors
elbow: any number of Elbows
flange: any number of Flanges
launcherreceiver: any number of Launcherreceivers
linepipe: any number of Linepipes
meter: any number of Meters
pump: any number of Pumps
reducer: any number of Reducers
tap: any number of Taps
tee: any number of Tees
valve: any number of Valves
7.5.1.9. Cap Class Requirements Class (Normative)
Requirements Class |
|
/req/cap |
|
Target type |
Encoding of conceptual model |
Name |
PMLComponent Cap |
Dependency |
/req/pmlcomponent |
Requirement 57 |
/req/cap/capmanufacturer-codelistURIexception |
Requirement 58 |
/req/cap/captype-codelistURI |
Requirement 59 |
/req/cap/captype-exclusivity |
Requirement 60 |
/req/cap/capmaterial-codelistURI |
Requirement 61 |
/req/cap/capboundspecification-boundtype |
Requirement 62 |
/req/cap/capboundspecification-codelistURI |
Requirement 63 |
/req/cap/capboundspecification-exclusivity |
Requirement 64 |
/req/cap/capspecification-codelistURI |
Requirement 65 |
/req/cap/capspecification-exclusivity |
Requirement 66 |
/req/cap/capweight-codelistURI |
Requirement 67 |
/req/cap/capweight-exclusivity |
Requirement 68 |
/req/cap/capbounddimension-boundtype |
Requirement 69 |
/req/cap/capbounddimension-codelistURI |
Requirement 70 |
/req/cap/capbounddimension-exclusivity |
Requirement 71 |
/req/cap/capnominalpipesize-codelistURI |
Requirement 72 |
/req/cap/capnominalpipesize-exclusivity |
Requirement 73 |
/req/cap/capoutsidediameter-codelistURI |
Requirement 74 |
/req/cap/capoutsidediameter-exclusivity |
Requirement 75 |
/req/cap/capwallthickness-codelistURI |
Requirement 76 |
/req/cap/capwallthickness-exclusivity |
The Cap Class is a concrete class and therefore may be encoded into a PipelineML dataset. This class contains classes and attributes as shown in Figure 16.
The Cap Class contains attributes and relationships to other classes:
capManufacturer: An optional attribute that, if populated, SHALL be dereferenceable to a string value containing the name of the company that manufactured the component. The use of an external controlled vocabulary is intended to provide authoritative data that enhances application interoperability. This attribute supports the use of substandard (non-authoritative) data as defined in the othervalue requirement.
Requirement 57 |
/req/cap/capmanufacturer-codelistURIexception
|
[Recommendation] This optional attribute capManufacturer SHOULD utilize the codelistURIexception constructAny value populated for this attribute SHOULD utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/capmanufacturer . This value SHOULD be dereferencable to a string attribute. This attribute supports the use of substandard data by using an alternate source to the PipelineML Authoritative Data Governance Body for the unique code value (machine readable value) and the title (human readable value). If a value needs to be represented that is not contained in the PipelineML authoritative code list, an alternative code value MAY be used as a temporary solution, so long as it complies with the following guidelines:
|
capType: An optional unbound attribute that, if populated, SHALL be dereferenceable to define a string value containing the type of cap component
Requirement 58 |
/req/cap/captype-codelistURI
|
This optional unbound attribute capType SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/captype . This value SHALL be dereferencable to a string attribute. |
Requirement 59 |
/req/cap/captype-exclusivity
|
This optional unbound attribute capType MAY be populated, or its corresponding bound attribute capBoundSpecification MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
capMaterial: An optional attribute that, if populated, SHALL be dereferenceable to define a string value containing the type of material used to manufacture the component
Requirement 60 |
/req/cap/capmaterial-codelistURI
|
This optional attribute capMaterial SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/capmaterial . This value SHALL be dereferencable to a string attribute. |
capBoundSpecification: An optional bound attribute that, if populated, SHALL be dereferenceable to define a bound combination of attributes as a concatenated string with each attribute being separated by semicolons (;). An alternate method is provided (below) for defining each of these attributes in unbound form. Only the bound type or unbound types may be populated, but NOT BOTH. This bound form of attributes represents the highest pedigree of data standardization and is considered best practice, as it provides a mechanism for identifying valid combinations of attributes. This bound set of values includes the following attributes: capSpecification; capWeight.
Requirement 61 |
/req/cap/capboundspecification-boundtype
|
This optional bound attribute capBoundSpecification SHALL utilize the PipelineML boundType constructThis construct support a combination of attributes that are tightly bound together for the purpose of defining valid combinations of attributes using a single attribute valueA bound data type SHALL be dereferencable to a concatenated string of attributes separated by semicolons. |
Requirement 62 |
/req/cap/capboundspecification-codelistURI
|
This optional bound attribute capBoundSpecification SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/capboundspecification . This value shall be dereferencable to a set of strongly bound string attributes separated by semicolons. |
Requirement 63 |
/req/cap/capboundspecification-exclusivity
|
This optional bound attribute capBoundSpecification MAY be populated, or its corresponding set of unbound attributes (capSpecification, and capWeight) MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
capSpecification: An optional unbound attribute that, if populated, SHALL be dereferenceable to a string value used to define the specification and specification date/version of the component. This attribute SHALL NOT be provided if the attribute capBoundSpecification is populated for reasons of disambiguation.
Requirement 64 |
/req/cap/capspecification-codelistURI
|
This optional unbound attribute capSpecification SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/capspecification . This value SHALL be dereferencable to a string attribute. |
Requirement 65 |
/req/cap/capspecification-exclusivity
|
This optional unbound attribute capSpecification MAY be populated, or its corresponding bound attribute capBoundSpecification MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
capWeight: An optional unbound attribute that, if populated, SHALL be dereferenceable to define a string value containing the weight characteristics (i.e. Schedule 40, Schedule 80, etc.) of the component. The weight is a number that defines the grade applicable to this component. This attribute SHALL NOT be provided if the attribute capBoundSpecification is populated for reasons of disambiguation.
Requirement 66 |
/req/cap/capweight-codelistURI
|
This optional unbound attribute capWeight SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/capweight . This value SHALL be dereferencable to a string attribute. |
Requirement 67 |
/req/cap/capweight-exclusivity
|
This optional unbound attribute capWeight MAY be populated, or its corresponding bound attribute capBoundSpecification MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
capBoundDimension: An optional bound attribute that, if populated, SHALL be dereferenceable to define a bound combination of attributes as a concatenated string with each attribute being separated by semicolons (;). An alternate method is provided (below) for defining each of these attributes in unbound form. Only the bound type or unbound types may be populated, but NOT BOTH. This bound form of attributes represents the highest pedigree of data standardization and is considered best practice, as it provides a mechanism for identifying valid combinations of attributes. This bound set of values includes the following attributes: capNominalPipeSize; capOutsideDiameter; capWallThickness.
Requirement 68 |
/req/cap/capbounddimension-boundtype
|
This optional bound attribute capBoundDimension SHALL utilize the PipelineML boundType constructThis construct support a combination of attributes that are tightly bound together for the purpose of defining valid combinations of attributes using a single attribute valueA bound data type SHALL be dereferencable to a concatenated string of attributes separated by semicolons. |
Requirement 69 |
/req/cap/capbounddimension-codelistURI
|
This optional bound attribute capBoundDimension SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/capbounddimension . This value shall be dereferencable to a set of strongly bound string attributes separated by semicolons. |
Requirement 70 |
/req/cap/capbounddimension-exclusivity
|
This optional bound attribute capBoundDimension MAY be populated, or its corresponding set of unbound attributes (capNominalPipeSize, capOutsideDiameter, capWallThickness, and capLength) MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
capNominalPipeSize: An optional unbound attribute that, if populated, SHALL be dereferenceable to define a string value containing the nominal pipe size of the component. This attribute SHALL NOT be provided if the attribute capBoundDimension is populated for reasons of disambiguation.
Requirement 71 |
/req/cap/capnominalpipesize-codelistURI
|
This optional unbound attribute capNominalPipeSize SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/capnominalpipesize . This value SHALL be dereferencable to a string attribute. |
Requirement 72 |
/req/cap/capnominalpipesize-exclusivity
|
This optional unbound attribute capNominalPipeSize MAY be populated, or its corresponding bound attribute capBoundDimension MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
capOutsideDiameter: An optional unbound attribute that, if populated, SHALL be dereferenceable to define a string value containing the outside diameter of the component. This attribute SHALL NOT be provided if the attribute capBoundDimension is populated for reasons of disambiguation.
Requirement 73 |
/req/cap/capoutsidediameter-codelistURI
|
This optional unbound attribute capOutsideDiameter SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/capoutsidediameter . This value SHALL be dereferencable to a string attribute. |
Requirement 74 |
/req/cap/ capoutsidediameter-exclusivity
|
This optional unbound attribute cap capOutsideDiameter MAY be populated, or its corresponding bound attribute capBoundDimension MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
capWallThickness: An optional unbound attribute that, if populated, SHALL be dereferenceable to define a string value containing the wall thickness of the component. This attribute SHALL NOT be provided if the attribute capBoundDimension is populated for reasons of disambiguation.
Requirement 75 |
/req/cap/capwallthickness-codelistURI
|
This optional unbound attribute capWallThickness SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/capwallthickness . This value SHALL be dereferencable to a string attribute. |
Requirement 76 |
/req/cap/capwallthickness-exclusivity
|
This optional unbound attribute cap capWallThickness MAY be populated, or its corresponding bound attribute capBoundDimension MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
7.5.1.10. Compressor Class Requirements Class (Normative)
Requirements Class |
|
/req/compressor |
|
Target type |
Encoding of conceptual model |
Name |
PMLComponent Compressor |
Dependency |
/req/pmlcomponent |
Requirement 77 |
/req/compressor/compressormanufacturer-codelistURIexception |
Requirement 78 |
/req/compressor/compressormanufacturer-exclusivity |
Requirement 79 |
/req/compressor/compressortype-codelistURI |
Requirement 80 |
/req/compressor/compressortype-exclusivity |
Requirement 81 |
/req/compressor/compressorboundtype-boundtype |
Requirement 82 |
/req/compressor/compressorboundtype-codelistURI |
Requirement 83 |
/req/compressor/compressorboundtype-exclusivity |
Requirement 84 |
/req/compressor/compressorstage-codelistURI |
Requirement 85 |
/req/compressor/compressorstage-exclusivity |
Requirement 86 |
/req/compressor/compressorthrow-codelistURI |
Requirement 87 |
/req/compressor/compressorthrow-exclusivity |
Requirement 88 |
/req/compressor/compressorstroke-codelistURI |
Requirement 89 |
/req/compressor/compressorstroke-exclusivity |
Requirement 90 |
/req/compressor/compressornominalpipesize-codelistURI |
Requirement 91 |
/req/compressor/compressorboundmanufacturer-boundtype |
Requirement 92 |
/req/compressor/compressorboundmanufacturer-codelistURI |
Requirement 93 |
/req/compressor/compressorboundmanufacturer-exclusivity |
Requirement 94 |
/req/compressor/compressorproductname-codelistURIexception |
Requirement 95 |
/req/compressor/compressorproductname-exclusivity |
Requirement 96 |
/req/compressor/compressormodelnumber-codelistURIexception |
Requirement 97 |
/req/compressor/compressormodelnumber-exclusivity |
Requirement 98 |
/req/compressor/compressorfueltype-codelistURI |
Requirement 99 |
/req/compressor/compressorpowerrating-uom |
Requirement 100 |
/req/compressor/compressorratedflow-uom |
Requirement 101 |
/req/compressor/compressorpressuresuction-uom |
Requirement 102 |
/req/compressor/compressorpressuredischarge-uom |
The Compressor Class is a concrete class and therefore may be encoded into a PipelineML dataset. This class contains classes and attributes as shown in Figure 17.
The Compressor Class contains attributes and relationships to other classes:
compressorManufacturer: An optional unbound attribute that, if populated, SHALL be dereferenceable to a string value containing the name of the company that manufactured the component. The use of an external reference code list (controlled vocabulary) is intended to provide authoritative data that enhances application interoperability. This attribute supports the use of substandard (non-authoritative) data as defined in the othervalue requirement.
Requirement 77 |
/req/compressor/compressormanufacturer-codelistURIexception
|
[Recommendation] This optional attribute compressorManufacturer SHOULD utilize the codelistURIexception constructAny value populated for this attribute SHOULD utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/compressormanufacturer . This value SHOULD be dereferencable to a string attribute. This attribute supports the use of substandard data by using an alternate source to the PipelineML Authoritative Data Governance Body for the unique code value (machine readable value) and the title (human readable value). If a value needs to be represented that is not contained in the PipelineML authoritative code list, an alternative code value MAY be used as a temporary solution, so long as it complies with the following guidelines:
|
Requirement 78 |
/req/compressor/compressormanufacturer-exclusivity
|
This optional unbound attribute compressorManufacturer MAY be populated, or its corresponding bound attribute compressorBoundManufacturer MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
compressorType: An optional unbound attribute that, if populated, SHALL be dereferenceable to define a string value containing the type of compressor component
Requirement 79 |
/req/compressor/compressortype-codelistURI
|
This optional unbound attribute compressorType SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/compressortype . This value SHALL be dereferencable to a string attribute. |
Requirement 80 |
/req/compressor/compressortype-exclusivity
|
This optional unbound attribute compressorType MAY be populated, or its corresponding bound attribute compressorBoundType MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
compressorBoundType: An optional bound attribute that, if populated, SHALL be dereferenceable to define a bound combination of attributes as a concatenated string with each attribute being separated by semicolons (;). An alternate method is provided (below) for defining each of these attributes in unbound form. Only the bound type or unbound types may be populated, but NOT BOTH. This bound form of attributes represents the highest pedigree of data standardization and is considered best practice, as it provides a mechanism for identifying valid combinations of attributes. This bound set of values includes the following attributes: compressorType; compressorStage; compressorThrow; compressorStroke.
Requirement 81 |
/req/compressor/compressorboundtype-boundtype
|
This optional bound attribute compressorBoundType SHALL utilize the PipelineML boundType constructThis construct support a combination of attributes that are tightly bound together for the purpose of defining valid combinations of attributes using a single attribute valueA bound data type SHALL be dereferencable to a concatenated string of attributes separated by semicolons. |
Requirement 82 |
/req/compressor/compressorboundtype-codelistURI
|
This optional bound attribute compressorBoundType SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/compressorboundtype . This value shall be dereferencable to a set of strongly bound string attributes separated by semicolons. |
Requirement 83 |
/req/compressor/compressorboundtype-exclusivity
|
This optional bound attribute compressorBoundType MAY be populated, or its corresponding set of unbound attributes (compressorType, compressorStage, compressorThrow, and compressorStroke) MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
compressorStage: An optional unbound attribute that, if populated, SHALL be dereferenceable to a string value used to define the number of stages in use by the component. This attribute SHALL NOT be provided if the attribute compressorBoundType is populated for reasons of disambiguation.
Requirement 84 |
/req/compressor/compressorstage-codelistURI
|
This optional unbound attribute compressorStage SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/compressorstage . This value SHALL be dereferencable to a string attribute. |
Requirement 85 |
/req/compressor/compressorstage-exclusivity
|
This optional unbound attribute compressorStage MAY be populated, or its corresponding bound attribute compressorBoundType MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
compressorThrow: An optional unbound attribute that, if populated, SHALL be dereferenceable to a string value used to define the throw of the component. This attribute SHALL NOT be provided if the attribute compressorBoundType is populated for reasons of disambiguation.
Requirement 86 |
/req/compressor/compressorthrow-codelistURI
|
This optional unbound attribute compressorThrow SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/compressorthrow . This value SHALL be dereferencable to a string attribute. |
Requirement 87 |
/req/compressor/compressorthrow-exclusivity
|
This optional unbound attribute compressorThrow MAY be populated, or its corresponding bound attribute compressorBoundType MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
compressorStroke: An optional unbound attribute that, if populated, SHALL be dereferenceable to a string value used to define the stroke type of the component. This attribute SHALL NOT be provided if the attribute compressorBoundType is populated for reasons of disambiguation.
Requirement 88 |
/req/compressor/compressorstroke-codelistURI
|
This optional unbound attribute compressorStroke SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/compressorstroke . This value SHALL be dereferencable to a string attribute. |
Requirement 89 |
/req/compressor/compressorstroke-exclusivity
|
This optional unbound attribute compressorStroke MAY be populated, or its corresponding bound attribute compressorBoundType MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
compressorNominalPipeSize: An optional attribute that, if populated, SHALL be dereferenceable to define a string value containing the nominal pipe size of the component
Requirement 90 |
/req/compressor/compressornominalpipesize-codelistURI
|
This optional attribute compressorNominalPipeSize SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/compressornominalpipesize . This value SHALL be dereferencable to a string attribute. |
compressorBoundManufacturer: An optional bound attribute that, if populated, SHALL be dereferenceable to define a bound combination of attributes as a concatenated string with each attribute being separated by semicolons (;). An alternate method is provided (below) for defining each of these attributes in unbound form. Only the bound type or unbound types may be populated, but NOT BOTH. This bound form of attributes represents the highest pedigree of data standardization and is considered best practice, as it provides a mechanism for identifying valid combinations of attributes. This bound set of values includes the following attributes: compressorManufacturer; compressorProductName; compressorModelNumber.
Requirement 91 |
/req/compressor/compressorboundmanufacturer-boundtype
|
This optional bound attribute compressorBoundManufacturer SHALL utilize the PipelineML boundType constructThis construct support a combination of attributes that are tightly bound together for the purpose of defining valid combinations of attributes using a single attribute valueA bound data type SHALL be dereferencable to a concatenated string of attributes separated by semicolons. |
Requirement 92 |
/req/compressor/compressorboundmanufacturer-codelistURI
|
This optional bound attribute compressorBoundManufacturer SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/compressorboundmanufacturer . This value shall be dereferencable to a set of strongly bound string attributes separated by semicolons. |
Requirement 93 |
/req/compressor/compressorboundmanufacturer-exclusivity
|
This optional bound attribute compressorBoundManufacturer MAY be populated, or its corresponding set of unbound attributes (compressorManufacturer, compressorProductName, and compressorModelNumber) MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
compressorProductName: An optional unbound attribute that, if populated, SHALL be dereferenceable to define a string value containing the product name of the component. This attribute SHALL NOT be provided if the attribute compressorBoundManufacturer is populated for reasons of disambiguation. This attribute supports the use of substandard (non-authoritative) data as defined in the othervalue requirement.
Requirement 94 |
/req/compressor/compressorproductname-codelistURIexception
|
[Recommendation] This optional attribute compressorProductName SHOULD utilize the codelistURIexception constructAny value populated for this attribute SHOULD utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/compressorproductname . This value SHOULD be dereferencable to a string attribute. This attribute supports the use of substandard data by using an alternate source to the PipelineML Authoritative Data Governance Body for the unique code value (machine readable value) and the title (human readable value). If a value needs to be represented that is not contained in the PipelineML authoritative code list, an alternative code value MAY be used as a temporary solution, so long as it complies with the following guidelines:
|
Requirement 95 |
/req/compressor/compressorproductname-exclusivity
|
This optional unbound attribute compressorProductName MAY be populated, or its corresponding bound attribute compressorBoundManufacturer MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
compressorModelNumber: An optional unbound attribute that, if populated, SHALL be dereferenceable to define a string value containing the model number of the component. This attribute SHALL NOT be provided if the attribute compressorBoundManufacturer is populated for reasons of disambiguation. This attribute supports the use of substandard (non-authoritative) data as defined in the othervalue requirement.
Requirement 96 |
/req/compressor/compressormodelnumber-codelistURIexception
|
[Recommendation] This optional attribute compressorModelNumber SHOULD utilize the codelistURIexception constructAny value populated for this attribute SHOULD utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/compressormodelnumber . This value SHOULD be dereferencable to a string attribute. This attribute supports the use of substandard data by using an alternate source to the PipelineML Authoritative Data Governance Body for the unique code value (machine readable value) and the title (human readable value). If a value needs to be represented that is not contained in the PipelineML authoritative code list, an alternative code value MAY be used as a temporary solution, so long as it complies with the following guidelines:
|
Requirement 97 |
/req/compressor/compressormodelnumber-exclusivity
|
This optional unbound attribute compressorModelNumber MAY be populated, or its corresponding bound attribute compressorBoundManufacturer MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
compressorSerialNumber: An optional string value that defines a unique identification number established by the component manufacturer
compressorFuelType: An optional value that, if populated, SHALL be dereferenceable to define a string value describing the type of fuel used to operate the component.
Requirement 98 |
/req/compressor/compressorfueltype-codelistURI
|
This optional attribute compressorFuelType SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/compressorfueltype . This value SHALL be dereferencable to a string attribute. |
compressorPowerRating: An optional measurement made by the manufacturer that defines the amount of power the compressor is rated to produce. If this attribute is populated with a value, a units-of-measure sub-attribute SHALL also be provided.
Requirement 99 |
/req/compressor/compressorpowerrating-uom
|
If this optional attribute compressorPowerRating is provided, a units-of-measure sub-attribute (uom) SHALL be provided that indicates the appropriate units of measure used for the provided value. |
compressorRatedFlow: An optional measurement made by the manufacturer that defines the rate of product flow the compressor is rated to produce. If populated is populated with a value, a units-of-measure sub-attribute SHALL also be provided.
Requirement 100 |
/req/compressor/compressorratedflow-uom
|
If this optional attribute compressorRatedFlow is provided, a units-of-measure sub-attribute (uom) SHALL be provided that indicates the appropriate units of measure used for the provided value. |
compressorPressureSuction: An optional measurement made by the manufacturer that defines the amount of suction the compressor is rated to produce. If populated is populated with a value, a units-of-measure sub-attribute SHALL also be provided.
Requirement 101 |
/req/compressor/compressorpressuresuction-uom
|
If this optional attribute compressorPressureSuction is provided, a units-of-measure sub-attribute (uom) SHALL be provided that indicates the appropriate units of measure used for the provided value. |
compressorPressureDischarge: An optional measurement made by the manufacturer that defines the amount of pressure the compressor is rated to discharge. If populated is populated with a value, a units-of-measure sub-attribute SHALL also be provided.
Requirement 102 |
/req/compressor/compressorpressuredischarge-uom
|
If this optional attribute compressorPressureDischarge is provided, a units-of-measure sub-attribute (uom) SHALL be provided that indicates the appropriate units of measure used for the provided value. |
7.5.1.11. Elbow Class Requirements Class (Normative)
Requirements Class |
|
/req/elbow |
|
Target type |
Encoding of conceptual model |
Name |
PMLComponent Elbow |
Dependency |
/req/pmlcomponent |
Requirement 103 |
/req/elbow/elbowmanufacturer-codelistURIexception |
Requirement 104 |
/req/elbow/elbowtype-codelistURI |
Requirement 105 |
/req/elbow/elbowmaterial-codelistURI |
Requirement 106 |
/req/elbow/elbowboundspecification-boundtype |
Requirement 107 |
/req/elbow/elbowboundspecification-codelistURI |
Requirement 108 |
/req/elbow/elbowboundspecification-exclusivity |
Requirement 109 |
/req/elbow/elbowspecification-codelistURI |
Requirement 110 |
/req/elbow/elbowspecification-exclusivity |
Requirement 111 |
/req/elbow/elbowweight-codelistURI |
Requirement 112 |
/req/elbow/elbowweight-exclusivity |
Requirement 113 |
/req/elbow/elbowbounddimension-boundtype |
Requirement 114 |
/req/elbow/elbowbounddimension-codelistURI |
Requirement 115 |
/req/elbow/elbowbounddimension-exclusivity |
Requirement 116 |
/req/elbow/elbowangle-codelistURI |
Requirement 117 |
/req/elbow/elbowangle-exclusivity |
Requirement 118 |
/req/elbow/elbownominalpipesize-codelistURI |
Requirement 119 |
/req/elbow/elbownominalpipesize-exclusivity |
Requirement 120 |
/req/elbow/elbowoutsidediameter-codelistURI |
Requirement 121 |
/req/elbow/elbowoutsidediameter-exclusivity |
Requirement 122 |
/req/elbow/elbowwallthickness-codelistURI |
Requirement 123 |
/req/elbow/elbowwallthickness-exclusivity |
The Elbow Class is a concrete class and therefore may be encoded into a PipelineML dataset. This class contains classes and attributes as shown in Figure 18.
The Elbow Class contains attributes and relationships to other classes:
elbowManufacturer: An optional attribute that, if populated, SHALL be dereferenceable to a string value containing the name of the company that manufactured the component. The use of an external reference code list (controlled vocabulary) is intended to provide authoritative data that enhances application interoperability. This attribute supports the use of substandard (non-authoritative) data as defined in the othervalue requirement.
Requirement 103 |
/req/elbow/elbowmanufacturer-codelistURIexception
|
[Recommendation] This optional attribute elbowManufacturer SHOULD utilize the codelistURIexception constructAny value populated for this attribute SHOULD utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/elbowmanufacturer . This value SHOULD be dereferencable to a string attribute. This attribute supports the use of substandard data by using an alternate source to the PipelineML Authoritative Data Governance Body for the unique code value (machine readable value) and the title (human readable value). If a value needs to be represented that is not contained in the PipelineML authoritative code list, an alternative code value MAY be used as a temporary solution, so long as it complies with the following guidelines:
|
elbowType: An optional attribute that, if populated, SHALL be dereferenceable to define a string value containing the type of elbow component
Requirement 104 |
/req/elbow/elbowtype-codelistURI
|
This optional attribute elbowType SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/elbowtype . This value SHALL be dereferencable to a string attribute. |
elbowMaterial: An optional attribute that, if populated, SHALL be dereferenceable to define a string value containing the type of material use in the manufacture of the component
Requirement 105 |
/req/elbow/elbowmaterial-codelistURI
|
This optional attribute elbowMaterial SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/elbowmaterial . This value SHALL be dereferencable to a string attribute. |
elbowBoundSpecification: An optional bound attribute that, if populated, SHALL be dereferenceable to define a bound combination of attributes as a concatenated string with each attribute being separated by semicolons (;). An alternate method is provided (below) for defining each of these attributes in unbound form. Only the bound type or unbound types may be populated, but NOT BOTH. This bound form of attributes represents the highest pedigree of data standardization and is considered best practice, as it provides a mechanism for identifying valid combinations of attributes. This bound set of values includes the following attributes: elbowSpecification; elbowWeight.
Requirement 106 |
/req/elbow/elbowboundspecification-boundtype
|
This optional bound attribute elbowBoundSpecification SHALL utilize the PipelineML boundType constructThis construct support a combination of attributes that are tightly bound together for the purpose of defining valid combinations of attributes using a single attribute valueA bound data type SHALL be dereferencable to a concatenated string of attributes separated by semicolons. |
Requirement 107 |
/req/elbow/elbowboundspecification-codelistURI
|
This optional bound attribute elbowBoundSpecification SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/elbowboundspecification . This value shall be dereferencable to a set of strongly bound string attributes separated by semicolons. |
Requirement 108 |
/req/elbow/elbowboundspecification-exclusivity
|
This optional bound attribute elbowBoundSpecification MAY be populated, or its corresponding set of unbound attributes (elbowSpecification, and elbowWeight) MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
elbowSpecification: An optional unbound attribute that, if populated, SHALL be dereferenceable to a string value used to define the specification and specification date/version of the component. This attribute SHALL NOT be provided if the attribute elbowBoundSpecification is populated for reasons of disambiguation.
Requirement 109 |
/req/elbow/elbowspecification-codelistURI
|
This optional unbound attribute elbowSpecification SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/elbowspecification . This value SHALL be dereferencable to a string attribute. |
Requirement 110 |
/req/elbow/elbowspecification-exclusivity
|
This optional unbound attribute elbowSpecification MAY be populated, or its corresponding bound attribute elbowBoundSpecification MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
elbowWeight: An optional unbound attribute that, if populated, SHALL be dereferenceable to define a string value containing the weight characteristics of the component. This attribute SHALL NOT be provided if the attribute elbowBoundSpecification is populated for reasons of disambiguation.
Requirement 111 |
/req/elbow/elbowweight-codelistURI
|
This optional unbound attribute elbowWeight SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/elbowweight . This value SHALL be dereferencable to a string attribute. |
Requirement 112 |
/req/elbow/elbowweight-exclusivity
|
This optional unbound attribute elbowWeight MAY be populated, or its corresponding bound attribute elbowBoundSpecification MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
elbowBoundDimension: An optional bound attribute that, if populated, SHALL be dereferenceable to define a bound combination of attributes as a concatenated string with each attribute being separated by semicolons (;). An alternate method is provided (below) for defining each of these attributes in unbound form. Only the bound type or unbound types may be populated, but NOT BOTH. This bound form of attributes represents the highest pedigree of data standardization and is considered best practice, as it provides a mechanism for identifying valid combinations of attributes. This bound set of values includes the following attributes: elbowAngle; elbowNominalPipeSize; elbowOutsideDiameter; elbowWallThickness.
Requirement 113 |
/req/elbow/elbowbounddimension-boundtype
|
This optional bound attribute elbowBoundDimension SHALL utilize the PipelineML boundType constructThis construct support a combination of attributes that are tightly bound together for the purpose of defining valid combinations of attributes using a single attribute valueA bound data type SHALL be dereferencable to a concatenated string of attributes separated by semicolons. |
Requirement 114 |
/req/elbow/elbowbounddimension-codelistURI
|
This optional bound attribute elbowBoundDimension SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/elbowbounddimension . This value shall be dereferencable to a set of strongly bound string attributes separated by semicolons. |
Requirement 115 |
/req/elbow/elbowbounddimension-exclusivity
|
This optional bound attribute elbowBoundDimension MAY be populated, or its corresponding set of unbound attributes (elbowAngle, elbowNominalPipeSize, elbowOutsideDiameter, and elbowWallThickness) MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
elbowAngle: An optional unbound attribute that, if populated, SHALL be dereferenceable to define a string value containing the angle of the bend in the component. This attribute SHALL NOT be provided if the attribute elbowBoundDimension is populated for reasons of disambiguation.
Requirement 116 |
/req/elbow/elbowangle-codelistURI
|
This optional unbound attribute elbowAngle SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/elbowangle . This value SHALL be dereferencable to a string attribute. |
Requirement 117 |
/req/elbow/elbowangle-exclusivity
|
This optional unbound attribute elbowAngle MAY be populated, or its corresponding bound attribute elbowBoundDimension MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
elbowNominalPipeSize: An optional unbound attribute that, if populated, SHALL be dereferenceable to define a string value containing the nominal pipe size of the component. This attribute SHALL NOT be provided if the attribute elbowBoundDimension is populated for reasons of disambiguation.
Requirement 118 |
/req/elbow/elbownominalpipesize-codelistURI
|
This optional unbound attribute elbowNominalPipeSize SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/elbownominalpipesize . This value SHALL be dereferencable to a string attribute. |
Requirement 119 |
/req/elbow/elbownominalpipesize-exclusivity
|
This optional unbound attribute elbowNominalPipeSize MAY be populated, or its corresponding bound attribute elbowBoundDimension MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
elbowOutsideDiameter: An optional unbound attribute that, if populated, SHALL be dereferenceable to define a string value containing the outside diameter of the component. This attribute SHALL NOT be provided if the attribute elbowBoundDimension is populated for reasons of disambiguation.
Requirement 120 |
/req/elbow/elbowoutsidediameter-codelistURI
|
This optional unbound attribute elbowOutsideDiameter SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/elbowoutsidediameter . This value SHALL be dereferencable to a string attribute. |
Requirement 121 |
/req/elbow/elbowoutsidediameter-exclusivity
|
This optional unbound attribute elbowOutsideDiameter MAY be populated, or its corresponding bound attribute elbowBoundDimension MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
elbowWallThickness: An optional unbound attribute that, if populated, SHALL be dereferenceable to define a string value containing the wall thickness of the component. This attribute SHALL NOT be provided if the attribute elbowBoundDimension is populated for reasons of disambiguation.
Requirement 122 |
/req/elbow/elbowwallthickness-codelistURI
|
This optional unbound attribute elbowWallThickness SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/elbowwallthickness . This value SHALL be dereferencable to a string attribute. |
Requirement 123 |
/req/elbow/elbowwallthickness-exclusivity
|
This optional unbound attribute elbowWallThickness MAY be populated, or its corresponding bound attribute elbowBoundDimension MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
7.5.1.12. Flange Class Requirements Class (Normative)
Requirements Class |
|
/req/flange |
|
Target type |
Encoding of conceptual model |
Name |
PMLComponent Flange |
Dependency |
/req/pmlcomponent |
Requirement 124 |
/req/flange/flangemanufacturer-codelistURIexception |
Requirement 125 |
/req/flange/flangetype-codelistURI |
Requirement 126 |
/req/flange/flangetype-exclusivity |
Requirement 127 |
/req/flange/flangematerial-codelistURI |
Requirement 128 |
/req/flange/flangeboundspecification-boundtype |
Requirement 129 |
/req/flange/flangeboundspecification-codelistURI |
Requirement 130 |
/req/flange/flangeboundspecification-exclusivity |
Requirement 131 |
/req/flange/flangespecification-codelistURI |
Requirement 132 |
/req/flange/flangespecification-exclusivity |
Requirement 133 |
/req/flange/flangeclass-codelistURI |
Requirement 134 |
/req/flange/flangeclass-exclusivity |
Requirement 135 |
/req/flange/flangenominalpipesize-codelistURI |
Requirement 136 |
/req/flange/flangeinsulationtype-codelistURI |
The Flange Class is a concrete class and therefore may be encoded into a PipelineML dataset. This class contains classes and attributes as shown in Figure 19.
The Flange Class contains attributes and relationships to other classes:
flangeManufacturer: An optional attribute that, if populated, SHALL be dereferenceable to a string value containing the name of the company that manufactured the component. The use of an external reference code list (controlled vocabulary) is intended to provide authoritative data that enhances application interoperability. This attribute supports the use of substandard (non-authoritative) data as defined in the othervalue requirement.
Requirement 124 |
/req/flange/flangemanufacturer-codelistURIexception
|
[Recommendation] This optional attribute flangeManufacturer SHOULD utilize the codelistURIexception constructAny value populated for this attribute SHOULD utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/flangemanufacturer . This value SHOULD be dereferencable to a string attribute. This attribute supports the use of substandard data by using an alternate source to the PipelineML Authoritative Data Governance Body for the unique code value (machine readable value) and the title (human readable value). If a value needs to be represented that is not contained in the PipelineML authoritative code list, an alternative code value MAY be used as a temporary solution, so long as it complies with the following guidelines:
|
flangeType: An optional unbound attribute that, if populated, SHALL be dereferenceable to define a string value containing the type of flange component
Requirement 125 |
/req/flange/flangetype-codelistURI
|
This optional unbound attribute flangeType SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/flangetype . This value SHALL be dereferencable to a string attribute. |
Requirement 126 |
/req/flange/flangetype-exclusivity
|
This optional unbound attribute flangeType MAY be populated, or its corresponding bound attribute flangeBoundSpecification MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
flangeMaterial: An optional attribute that, if populated, SHALL be dereferenceable to define a string value containing the type of material use in the manufacture of the component
Requirement 127 |
/req/flange/flangematerial-codelistURI
|
This optional attribute flangeMaterial SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/flangematerial . This value SHALL be dereferencable to a string attribute. |
flangeBoundSpecification: An optional bound attribute that, if populated, SHALL be dereferenceable to define a bound combination of attributes as a concatenated string with each attribute being separated by semicolons (;). An alternate method is provided (below) for defining each of these attributes in unbound form. Only the bound type or unbound types may be populated, but NOT BOTH. This bound form of attributes represents the highest pedigree of data standardization and is considered best practice, as it provides a mechanism for identifying valid combinations of attributes. This bound set of values includes the following attributes: flangeType; flangeSpecification; flangeClass.
Requirement 128 |
/req/flange/flangeboundspecification-boundtype
|
This optional bound attribute flangeBoundSpecification SHALL utilize the PipelineML boundType constructThis construct support a combination of attributes that are tightly bound together for the purpose of defining valid combinations of attributes using a single attribute valueA bound data type SHALL be dereferencable to a concatenated string of attributes separated by semicolons. |
Requirement 129 |
/req/flange/flangeboundspecification-codelistURI
|
This optional bound attribute flangeBoundSpecification SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/flangeboundspecification . This value shall be dereferencable to a set of strongly bound string attributes separated by semicolons. |
Requirement 130 |
/req/flange/flangeboundspecification-exclusivity
|
This optional bound attribute flangeBoundSpecification MAY be populated, or its corresponding set of unbound attributes (flangeType, flangeSpecification, and flangeClass) MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
flangeSpecification: An optional unbound attribute that, if populated, SHALL be dereferenceable to a string value used to define the specification and specification date/version of the component. This attribute SHALL NOT be provided if the attribute flangeBoundSpecification is populated for reasons of disambiguation.
Requirement 131 |
/req/flange/flangespecification-codelistURI
|
This optional unbound attribute flangeSpecification SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/flangespecification . This value SHALL be dereferencable to a string attribute. |
Requirement 132 |
/req/flange/flangespecification-exclusivity
|
This optional unbound attribute flangeSpecification MAY be populated, or its corresponding bound attribute flangeBoundSpecification MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
flangeClass: An optional unbound attribute that, if populated, SHALL be dereferenceable to define a string value containing the class of the flange component. This attribute SHALL NOT be provided if the attribute flangeBoundSpecification is populated for reasons of disambiguation.
Requirement 133 |
/req/flange/flangeclass-codelistURI
|
This optional unbound attribute flangeClass SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/flangeclass . This value SHALL be dereferencable to a string attribute. |
Requirement 134 |
/req/flange/flangeclass-exclusivity
|
This optional unbound attribute flangeClass MAY be populated, or its corresponding bound attribute flangeBoundSpecification MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
flangeNominalPipeSize: An optional attribute that, if populated, SHALL be dereferenceable to define a string value containing the nominal pipe size of the component
Requirement 135 |
/req/flange/flangenominalpipesize-codelistURI
|
This optional attribute flangeNominalPipeSize SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/flangenominalpipesize . This value SHALL be dereferencable to a string attribute. |
flangeInsulationType: An optional attribute that, if populated, SHALL be dereferenceable to define a string value containing the type of insulation used in the component
Requirement 136 |
/req/flange/flangeinsulationtype-codelistURI
|
This optional attribute flangeInsulationType SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/flangeinsulationtype . This value SHALL be dereferencable to a string attribute. |
7.5.1.13. Launcherreceiver Class Requirements Class (Normative)
Requirements Class |
|
/req/launcherreceiver |
|
Target type |
Encoding of conceptual model |
Name |
PMLComponent Launcherreceiver |
Dependency |
/req/pmlcomponent |
Requirement 137 |
/req/launcherreceiver/launcherreceivermanufacturer-codelistURIexception |
Requirement 138 |
/req/launcherreceiver/launcherreceivermanufacturer-exclusivity |
Requirement 139 |
/req/launcherreceiver/launcherreceivertype-codelistURI |
Requirement 140 |
/req/launcherreceiver/launcherreceiverboundmanufacturer-boundtype |
Requirement 141 |
/req/launcherreceiver/launcherreceiverboundmanufacturer-codelistURI |
Requirement 142 |
/req/launcherreceiver/launcherreceiverboundmanufacturer-exclusivity |
Requirement 143 |
/req/launcherreceiver/launcherreceiverproductname-codelistURIexception |
Requirement 144 |
/req/launcherreceiver/launcherreceiverproductname-exclusivity |
Requirement 145 |
/req/launcherreceiver/launcherreceivermodelnumber-codelistURIexception |
Requirement 146 |
/req/launcherreceiver/launcherreceivermodelnumber-exclusivity |
Requirement 147 |
/req/launcherreceiver/launcherreceiverclass-codelistURI |
The Launcherreceiver Class is a concrete class and therefore may be encoded into a PipelineML dataset. This class contains classes and attributes as shown in Figure 20.
The Launcherreceiver Class contains attributes and relationships to other classes:
launcherreceiverManufacturer: An optional unbound attribute that, if populated, SHALL be dereferenceable to a string value containing the name of the company that manufactured the component. The use of an external reference code list (controlled vocabulary) is intended to provide authoritative data that enhances application interoperability. This attribute supports the use of substandard (non-authoritative) data as defined in the othervalue requirement.
Requirement 137 |
/req/launcherreceiver/launcherreceivermanufacturer-codelistURIexception
|
[Recommendation] This optional attribute launcherreceiverManufacturer SHOULD utilize the codelistURIexception constructAny value populated for this attribute SHOULD utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/launcherreceivermanufacturer . This value SHOULD be dereferencable to a string attribute. This attribute supports the use of substandard data by using an alternate source to the PipelineML Authoritative Data Governance Body for the unique code value (machine readable value) and the title (human readable value). If a value needs to be represented that is not contained in the PipelineML authoritative code list, an alternative code value MAY be used as a temporary solution, so long as it complies with the following guidelines:
|
Requirement 138 |
/req/launcherreceiver/launcherreceivermanufacturer-exclusivity
|
This optional unbound attribute launcherreceiverManufacturer MAY be populated, or its corresponding bound attribute launcherreceiverBoundManufacturer MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
launcherreceiverType: An optional attribute that, if populated, SHALL be dereferenceable to define a string value containing the type of launcherreceiver component
Requirement 139 |
/req/launcherreceiver/launcherreceivertype-codelistURI
|
This optional attribute launcherreceiverType SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/launcherreceivertype . This value SHALL be dereferencable to a string attribute. |
launcherreceiverBoundManufacturer: An optional bound attribute that, if populated, SHALL be dereferenceable to define a bound combination of attributes as a concatenated string with each attribute being separated by semicolons (;). An alternate method is provided (below) for defining each of these attributes in unbound form. Only the bound type or unbound types may be populated, but NOT BOTH. This bound form of attributes represents the highest pedigree of data standardization and is considered best practice, as it provides a mechanism for identifying valid combinations of attributes. This bound set of values includes the following attributes: launcherreceiverManufacturer; launcherreceiverProductName; launcherreceiverModelNumber.
Requirement 140 |
/req/launcherreceiver/launcherreceiverboundmanufacturer-boundtype
|
This optional bound attribute launcherreceiverBoundMnaufacturer SHALL utilize the PipelineML boundType constructThis construct support a combination of attributes that are tightly bound together for the purpose of defining valid combinations of attributes using a single attribute valueA bound data type SHALL be dereferencable to a concatenated string of attributes separated by semicolons. |
Requirement 141 |
/req/launcherreceiver/launcherreceiverboundmanufacturer-codelistURI
|
This optional bound attribute launcherreceiverBoundManufacturer SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/launcherreceiverboundmanufacturer . This value shall be dereferencable to a set of strongly bound string attributes separated by semicolons. |
Requirement 142 |
/req/launcherreceiver/launcherreceiverboundmanufacturer-exclusivity
|
This optional bound attribute launcherreceiverBoundManufacturer MAY be populated, or its corresponding set of unbound attributes (launcherreceiverManufacturer, launcherreceiverProductName, and launcherreceiverModelNumber) MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
launcherreceiverProductName: An optional unbound attribute that, if populated, SHALL be dereferenceable to define a string value containing the product name of the component. This attribute SHALL NOT be provided if the attribute launcherreceiverBoundManufacturer is populated for reasons of disambiguation. This attribute supports the use of substandard (non-authoritative) data as defined in the othervalue requirement.
Requirement 143 |
/req/launcherreceiver/launcherreceiverproductname-codelistURIexception
|
[Recommendation] This optional attribute launcherreceiverProductName SHOULD utilize the codelistURIexception constructAny value populated for this attribute SHOULD utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/launcherreceiverproductname . This value SHOULD be dereferencable to a string attribute. This attribute supports the use of substandard data by using an alternate source to the PipelineML Authoritative Data Governance Body for the unique code value (machine readable value) and the title (human readable value). If a value needs to be represented that is not contained in the PipelineML authoritative code list, an alternative code value MAY be used as a temporary solution, so long as it complies with the following guidelines:
|
Requirement 144 |
/req/launcherreceiver/launcherreceiverproductname-exclusivity
|
This optional unbound attribute launcherreceiverProductName MAY be populated, or its corresponding bound attribute launcherreceiverBoundManufacturer MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
launcherreceiverModelNumber: An optional unbound attribute that, if populated, SHALL be dereferenceable to define a string value containing the model number of the component. This attribute SHALL NOT be provided if the attribute launcherreceiverBoundManufacturer is populated for reasons of disambiguation. This attribute supports the use of substandard (non-authoritative) data as defined in the othervalue requirement.
Requirement 145 |
/req/launcherreceiver/launcherreceivermodelnumber-codelistURIexception
|
[Recommendation] This optional attribute launcherreceiverModelNumber SHOULD utilize the codelistURIexception constructAny value populated for this attribute SHOULD utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/launcherreceivermodelnumber . This value SHOULD be dereferencable to a string attribute. This attribute supports the use of substandard data by using an alternate source to the PipelineML Authoritative Data Governance Body for the unique code value (machine readable value) and the title (human readable value). If a value needs to be represented that is not contained in the PipelineML authoritative code list, an alternative code value MAY be used as a temporary solution, so long as it complies with the following guidelines:
|
Requirement 146 |
/req/launcherreceiver/launcherreceivermodelnumber-exclusivity
|
This optional unbound attribute launcherreceiverModelNumber MAY be populated, or its corresponding bound attribute launcherreceiverBoundManufacturer MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
launcherreceiverSerialNumber: An optional string attribute that defines a unique identification number established by the component manufacturer
launcherreceiverName: An optional string attribute that defines a unique identification number established by the component manufacturer
launcherreceiverClass: An optional attribute that, if populated, SHALL be dereferenceable to define a string value containing the class of the launcherreceiver component
Requirement 147 |
/req/launcherreceiver/launcherreceiverclass-codelistURI
|
This optional attribute launcherreceiverClass SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/launcherreceiverclass . This value SHALL be dereferencable to a string attribute. |
7.5.1.14. Linepipe Class Requirements Class (Normative)
Requirements Class |
|
/req/linepipe |
|
Target type |
Encoding of conceptual model |
Name |
PMLComponent Linepipe |
Dependency |
/req/pmlcomponent |
Requirement 148 |
/req/linepipe/linepipemanufacturer-codelistURIexception |
Requirement 149 |
/req/linepipe/linepipetype-codelistURI |
Requirement 150 |
/req/linepipe/linepipematerial-codelistURI |
Requirement 151 |
/req/linepipe/linepipeboundspecification-boundtype |
Requirement 152 |
/req/linepipe/linepipeboundspecification-codelistURI |
Requirement 153 |
/req/linepipe/linepipeboundspecification-exclusivity |
Requirement 154 |
/req/linepipe/linepipespecification-codelistURI |
Requirement 155 |
/req/linepipe/linepipespecification-exclusivity |
Requirement 156 |
/req/linepipe/linepipeyieldstrength-codelistURI |
Requirement 157 |
/req/linepipe/linepipeyieldstrength-exclusivity |
Requirement 158 |
/req/linepipe/linepipegrade-codelistURI |
Requirement 159 |
/req/linepipe/linepipegrade-exclusivity |
Requirement 160 |
/req/linepipe/linepipebounddimension-boundtype |
Requirement 161 |
/req/linepipe/linepipebounddimension-codelistURI |
Requirement 162 |
/req/linepipe/linepipebounddimension-exclusivity |
Requirement 163 |
/req/linepipe/linepipenominalpipesize-codelistURI |
Requirement 164 |
/req/linepipe/linepipeoutsidediameter-codelistURI |
Requirement 165 |
/req/linepipe/linepipeoutsidediameter-exclusivity |
Requirement 166 |
/req/linepipe/linepipewallthickness-codelistURI |
Requirement 167 |
/req/linepipe/linepipewallthickness-exclusivity |
Requirement 168 |
/req/linepipe/linepipebendtype-codelistURI |
Requirement 169 |
/req/linepipe/linepipeseamweldtype-codelistURI |
Requirement 170 |
/req/linepipe/linepipeseamweldorientation-codelistURI |
Requirement 171 |
/req/linepipe/linepipeseamweldorientation-componentmeasuredfrom |
Requirement 172 |
/req/linepipe/linepipepositionvertical-codelistURI |
Requirement 173 |
/req/linepipe/linepipecoverdepthminimum-uom |
The Linepipe Class is a concrete class and therefore may be encoded into a PipelineML dataset. This class contains classes and attributes as shown in Figure 21.
The Linepipe Class contains attributes and relationships to other classes:
linepipeManufacturer: An optional attribute that, if populated, SHALL be dereferenceable to a string value containing the name of the company that manufactured the component. The use of an external reference code list (controlled vocabulary) is intended to provide authoritative data that enhances application interoperability. This attribute supports the use of substandard (non-authoritative) data as defined in the othervalue requirement.
Requirement 148 |
/req/linepipe/linepipemanufacturer-codelistURIexception
|
[Recommendation] This optional attribute linepipeManufacturer SHOULD utilize the codelistURIexception constructAny value populated for this attribute SHOULD utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/linepipemanufacturer . This value SHOULD be dereferencable to a string attribute. This attribute supports the use of substandard data by using an alternate source to the PipelineML Authoritative Data Governance Body for the unique code value (machine readable value) and the title (human readable value). If a value needs to be represented that is not contained in the PipelineML authoritative code list, an alternative code value MAY be used as a temporary solution, so long as it complies with the following guidelines:
|
linepipeType: An optional attribute that, if populated, SHALL be dereferenceable to define a string value containing the type of linepipe component
Requirement 149 |
/req/linepipe/linepipetype-codelistURI
|
This optional attribute linepipeType SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/linepipetype . This value SHALL be dereferencable to a string attribute. |
linepipeMaterial: An optional attribute that, if populated, SHALL be dereferenceable to define a string value containing the type of material use in the manufacture of the component
Requirement 150 |
/req/linepipe/linepipematerial-codelistURI
|
This optional attribute linepipeMaterial SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/linepipematerial . This value SHALL be dereferencable to a string attribute. |
linepipeBoundSpecification: An optional bound attribute that, if populated, SHALL be dereferenceable to define a bound combination of attributes as a concatenated string with each attribute being separated by semicolons (;). An alternate method is provided (below) for defining each of these attributes in unbound form. Only the bound type or unbound types may be populated, but NOT BOTH. This bound form of attributes represents the highest pedigree of data standardization and is considered best practice, as it provides a mechanism for identifying valid combinations of attributes. This bound set of values includes the following attributes: linepipeSpecification; linepipeYieldStrength; linepipeGrade.
Requirement 151 |
/req/linepipe/linepipeboundspecification-boundtype
|
This optional bound attribute linepipeBoundSpecification SHALL utilize the PipelineML boundType constructThis construct support a combination of attributes that are tightly bound together for the purpose of defining valid combinations of attributes using a single attribute valueA bound data type SHALL be dereferencable to a concatenated string of attributes separated by semicolons. |
Requirement 152 |
/req/linepipe/linepipeboundspecification-codelistURI
|
This optional bound attribute linepipeBoundSpecification SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/linepipeboundspecification . This value shall be dereferencable to a set of strongly bound string attributes separated by semicolons. |
Requirement 153 |
/req/linepipe/linepipeboundspecification-exclusivity
|
This optional bound attribute linepipeBoundSpecification MAY be populated, or its corresponding set of unbound attributes (linepipeSpecification, linepipeYieldStrength, and linepipeGrade) MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
linepipeSpecification: An optional unbound attribute that, if populated, SHALL be dereferenceable to a string value used to define the specification and specification date/version of the component. This attribute SHALL NOT be provided if the attribute linepipeBoundSpecification is populated for reasons of disambiguation.
Requirement 154 |
/req/linepipe/linepipespecification-codelistURI
|
This optional unbound attribute linepipeSpecification SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/linepipespecification . This value SHALL be dereferencable to a string attribute. |
Requirement 155 |
/req/linepipe/linepipespecification-exclusivity
|
This optional unbound attribute linepipeSpecification MAY be populated, or its corresponding bound attribute linepipeBoundSpecification MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
linepipeYieldStrength: An optional unbound attribute that, if populated, SHALL be dereferenceable to a string value that defines the rated yield strength of the component. This attribute SHALL NOT be provided if the attribute linepipeBoundSpecification is populated for reasons of disambiguation.
Requirement 156 |
/req/linepipe/linepipeyieldstrength-codelistURI
|
This optional unbound attribute linepipeYieldStrength SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/linepipeyieldstrength . This value SHALL be dereferencable to a string attribute. |
Requirement 157 |
/req/linepipe/linepipeyieldstrength-exclusivity
|
This optional unbound attribute linepipeYieldStrength MAY be populated, or its corresponding bound attribute linepipeBoundSpecification MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
linepipeGrade: An optional unbound attribute that, if populated, SHALL be dereferenceable to a string value that defines the grade specification of the component. This attribute SHALL NOT be provided if the attribute linepipeBoundSpecification is populated for reasons of disambiguation.
Requirement 158 |
/req/linepipe/linepipegrade-codelistURI
|
This optional unbound attribute linepipeGrade SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/linepipegrade . This value SHALL be dereferencable to a string attribute. |
Requirement 159 |
/req/linepipe/linepipegrade-exclusivity
|
This optional unbound attribute linepipeGrade MAY be populated, or its corresponding bound attribute linepipeBoundSpecification MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
linepipeBoundDimension: An optional bound attribute that, if populated, SHALL be dereferenceable to define a bound combination of attributes as a concatenated string with each attribute being separated by semicolons (;). An alternate method is provided (below) for defining each of these attributes in unbound form. Only the bound type or unbound types may be populated, but NOT BOTH. This bound form of attributes represents the highest pedigree of data standardization and is considered best practice, as it provides a mechanism for identifying valid combinations of attributes. This bound set of values includes the following attributes: linepipeNominalPipeSize; linepipeOutsideDiameter; linepipeWallThickness.
Requirement 160 |
/req/linepipe/linepipebounddimension-boundtype
|
This optional bound attribute linepipeBoundDimension SHALL utilize the PipelineML boundType constructThis construct support a combination of attributes that are tightly bound together for the purpose of defining valid combinations of attributes using a single attribute valueA bound data type SHALL be dereferencable to a concatenated string of attributes separated by semicolons. |
Requirement 161 |
/req/linepipe/linepipebounddimension-codelistURI
|
This optional bound attribute linepipeBoundDimension SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/linepipebounddimension . This value shall be dereferencable to a set of strongly bound string attributes separated by semicolons. |
Requirement 162 |
/req/linepipe/linepipebounddimension-exclusivity
|
This optional bound attribute linepipeBoundDimension MAY be populated, or its corresponding set of unbound attributes (linepipeNominalPipeSize, linepipeOutsideDiameter, and linepipeWallThickness) MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
linepipeNominalPipeSize: An optional unbound attribute that, if populated, SHALL be dereferenceable to define a string value containing the nominal pipe size of the component. This attribute SHALL NOT be provided if the attribute linepipeBoundDimension is populated for reasons of disambiguation.
Requirement 163 |
/req/linepipe/linepipenominalpipesize-codelistURI
|
This optional unbound attribute linepipeNominalPipeSize SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/linepipenominalpipesize . This value SHALL be dereferencable to a string attribute. |
linepipeOutsideDiameter: An optional unbound attribute that, if populated, SHALL be dereferenceable to define a string value containing the outside diameter of the component. This attribute SHALL NOT be provided if the attribute linepipeBoundDimension is populated for reasons of disambiguation.
Requirement 164 |
/req/linepipe/linepipeoutsidediameter-codelistURI
|
This optional unbound attribute linepipeOutsideDiameter SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/linepipeoutsidediameter . This value SHALL be dereferencable to a string attribute. |
Requirement 165 |
/req/linepipe/linepipeoutsidediameter-exclusivity
|
This optional unbound attribute linepipeOutsideDiameter MAY be populated, or its corresponding bound attribute linepipeBoundDimension MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
linepipeWallThickness: An optional unbound attribute that, if populated, SHALL be dereferenceable to define a string value containing the wall thickness of the component. This attribute SHALL NOT be provided if the attribute linepipeBoundDimension is populated for reasons of disambiguation.
Requirement 166 |
/req/linepipe/linepipewallthickness-codelistURI
|
This optional unbound attribute linepipeWallThickness SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/linepipewallthickness . This value SHALL be dereferencable to a string attribute. |
Requirement 167 |
/req/linepipe/linepipewallthickness-exclusivity
|
This optional unbound attribute linepipeWallThickness MAY be populated, or its corresponding bound attribute linepipeBoundDimension MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
linepipeBendType: An optional value that, if populated, SHALL be dereferenceable to define a string value containing the type of bend (if any) in the component
Requirement 168 |
/req/linepipe/linepipebendtype-codelistURI
|
This optional attribute linepipeBendType SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/linepipebendtype . This value SHALL be dereferencable to a string attribute. |
linepipeSeamWeldType: An optional attribute that, if populated, SHALL be dereferenceable to define a string value containing the type of seam weld used in the manufacturer of the component. This defines the girth weld that was made along the length of the linepipe during its construction from a flat piece of sheet metal.
Requirement 169 |
/req/linepipe/linepipeseamweldtype-codelistURI
|
This optional unbound attribute linepipeSeamWeldType SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/linepipeseamweldtype . This value SHALL be dereferencable to a string attribute. |
linepipeSeamWeldOrientation: An optional attribute that, if populated, SHALL be dereferenceable to define a string value containing the orientation angle of seam weld of the component when installed. If this attribute is populated, it shall provide a ComponentMeasuredFrom value that contains the unique identification of the component whose vantage point is used as a reference to indicate the direction of the orientation angle.
Requirement 170 |
/req/linepipe/linepipeseamweldorientation-codelistURI
|
This optional attribute linepipeSeamWeldOrientation SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/linepipeseamweldorientation . This value SHALL be dereferencable to a string attribute. |
Requirement 171 |
/req/linepipe/linepipeseamweldorientation-componentmeasuredfrom
|
This optional attribute utilizes a complex data type that supports the inclusion of an “componentmeasuredfrom” sub-attribute value that contains the unique identification of the component whose vantage point is used as a reference point to indicate the direction of the orientation angleIf this attribute is populated, it SHALL also populate the ComponentMeasuredFrom sub-attribute. |
linepipePositionVertical: An optional attribute that, if populated, SHALL be dereferenceable to a string value containing the vertical position of the component relative to natural ground as it was installed (such as On Ground, Below Surface, and Elevated or Suspended). This attribute provides 3-dimension context to 2-dimensional data to understand the relationship of the component to ground elevation.
Requirement 172 |
/req/linepipe/linepipepositionvertical-codelistURI
|
This optional attribute linepipePositionVertical SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/linepipepositionvertical . This value SHALL be dereferencable to a string attribute. |
linepipeCoverDepthMinimum: An optional attribute that, if populated, SHALL be dereferenceable to define a string value containing the minimum depth of ground cover required by the manufacturer of the component. If this attribute is populated, a units of measure sub-attribute value SHALL also be populated.
Requirement 173 |
/req/linepipe/linepipecoverdepthminimum-uom
|
If this optional attribute linepipeCoverDepthMinimum is provided, a units-of-measure sub-attribute (uom) SHALL be provided that indicates the appropriate units of measure used for the provided value. |
7.5.1.15. Meter Class Requirements Class (Normative)
Requirements Class |
|
/req/meter |
|
Target type |
Encoding of conceptual model |
Name |
PMLComponent Meter |
Dependency |
/req/pmlcomponent |
Requirement 174 |
/req/meter/metermanufacturer-codelistURIexception |
Requirement 175 |
/req/meter/metermanufacturer-exclusivity |
Requirement 176 |
/req/meter/metertype-codelistURI |
Requirement 177 |
/req/meter/meternominalpipesize-codelistURI |
Requirement 178 |
/req/meter/meterboundmanufacturer-boundtype |
Requirement 179 |
/req/meter/meterboundmanufacturer-codelistURI |
Requirement 180 |
/req/meter/meterboundmanufacturer-exclusivity |
Requirement 181 |
/req/meter/meterproductname-codelistURIexception |
Requirement 182 |
/req/meter/meterproductname-exclusivity |
Requirement 183 |
/req/meter/metermodelnumber-codelistURIexception |
Requirement 184 |
/req/meter/metermodelnumber-exclusivity |
Requirement 185 |
/req/meter/meterflowrateminimum-uom |
Requirement 186 |
/req/meter/meterflowratemaximum-uom |
The Meter Class is a concrete class and therefore may be encoded into a PipelineML dataset. This class contains classes and attributes as shown in Figure 22.
The Meter Class contains attributes and relationships to other classes:
meterManufacturer: An optional unbound attribute that, if populated, SHALL be dereferenceable to a string value containing the name of the company that manufactured the component. The use of an external reference code list (controlled vocabulary) is intended to provide authoritative data that enhances application interoperability. This attribute supports the use of substandard (non-authoritative) data as defined in the othervalue requirement.
Requirement 174 |
/req/meter/metermanufacturer-codelistURIexception
|
[Recommendation] This optional attribute meterManufacturer SHOULD utilize the codelistURIexception constructAny value populated for this attribute SHOULD utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/metermanufacturer . This value SHOULD be dereferencable to a string attribute. This attribute supports the use of substandard data by using an alternate source to the PipelineML Authoritative Data Governance Body for the unique code value (machine readable value) and the title (human readable value). If a value needs to be represented that is not contained in the PipelineML authoritative code list, an alternative code value MAY be used as a temporary solution, so long as it complies with the following guidelines:
|
Requirement 175 |
/req/meter/metermanufacturer-exclusivity
|
This optional unbound attribute meterManufacturer MAY be populated, or its corresponding bound attribute meterBoundManufacturer MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
meterType: An optional attribute that, if populated, SHALL be dereferenceable to define a string value containing the type of meter component
Requirement 176 |
/req/meter/metertype-codelistURI
|
This optional unbound attribute meterType SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/metertype . This value SHALL be dereferencable to a string attribute. |
meterNumber: An optional string attribute that defines a unique identification number for the component established by the pipeline operator
meterNominalPipeSize: An optional attribute that, if populated, SHALL be dereferenceable to define a string value containing the nominal pipe size of the component
Requirement 177 |
/req/meter/meternominalpipesize-codelistURI
|
This optional unbound attribute meterNominalPipeSize SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/meternominalpipesize . This value SHALL be dereferencable to a string attribute. |
meterBoundManufacturer: An optional bound attribute that, if populated, SHALL be dereferenceable to define a bound combination of attributes as a concatenated string with each attribute being separated by semicolons (;). An alternate method is provided (below) for defining each of these attributes in unbound form. Only the bound type or unbound types may be populated, but NOT BOTH. This bound form of attributes represents the highest pedigree of data standardization and is considered best practice, as it provides a mechanism for identifying valid combinations of attributes. This bound set of values includes the following attributes: meterManufacturer; meterProductName; meterModelNumber.
Requirement 178 |
/req/meter/meterboundmanufacturer-boundtype
|
This optional bound attribute meterBoundMnaufacturer SHALL utilize the PipelineML boundType constructThis construct support a combination of attributes that are tightly bound together for the purpose of defining valid combinations of attributes using a single attribute valueA bound data type SHALL be dereferencable to a concatenated string of attributes separated by semicolons. |
Requirement 179 |
/req/meter/meterboundmanufacturer-codelistURI
|
This optional bound attribute meterBoundManufacturer SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/meterboundmanufacturer . This value shall be dereferencable to a set of strongly bound string attributes separated by semicolons. |
Requirement 180 |
/req/meter/meterboundmanufacturer-exclusivity
|
This optional bound attribute meterBoundManufacturer MAY be populated, or its corresponding set of unbound attributes (meterManufacturer, meterProductName, and meterModelNumber) MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
meterProductName: An optional unbound attribute that, if populated, SHALL be dereferenceable to define a string value containing the product name of the component. This attribute SHALL NOT be provided if the attribute meterBoundManufacturer is populated for reasons of disambiguation. This attribute supports the use of substandard (non-authoritative) data as defined in the othervalue requirement.
Requirement 181 |
/req/meter/meterproductname-codelistURIexception
|
[Recommendation] This optional attribute meterProductName SHOULD utilize the codelistURIexception constructAny value populated for this attribute SHOULD utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/meterproductname . This value SHOULD be dereferencable to a string attribute. This attribute supports the use of substandard data by using an alternate source to the PipelineML Authoritative Data Governance Body for the unique code value (machine readable value) and the title (human readable value). If a value needs to be represented that is not contained in the PipelineML authoritative code list, an alternative code value MAY be used as a temporary solution, so long as it complies with the following guidelines:
|
Requirement 182 |
/req/meter/meterproductname-exclusivity
|
This optional unbound attribute meterProductName MAY be populated, or its corresponding bound attribute meterBoundManufacturer MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
meterModelNumber: An optional unbound attribute that, if populated, SHALL be dereferenceable to define a string value containing the model number of the component. This attribute SHALL NOT be provided if the attribute meterBoundManufacturer is populated for reasons of disambiguation. This attribute supports the use of substandard (non-authoritative) data as defined in the othervalue requirement.
Requirement 183 |
/req/meter/metermodelnumber-codelistURIexception
|
[Recommendation] This optional attribute meterModelNumber SHOULD utilize the codelistURIexception constructAny value populated for this attribute SHOULD utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/metermodelnumber . This value SHOULD be dereferencable to a string attribute. This attribute supports the use of substandard data by using an alternate source to the PipelineML Authoritative Data Governance Body for the unique code value (machine readable value) and the title (human readable value). If a value needs to be represented that is not contained in the PipelineML authoritative code list, an alternative code value MAY be used as a temporary solution, so long as it complies with the following guidelines:
|
Requirement 184 |
/req/meter/metermodelnumber-exclusivity
|
This optional unbound attribute meterModelNumber MAY be populated, or its corresponding bound attribute meterBoundManufacturer MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
meterSerialNumber: An optional string attribute that defines a unique identification number established by the component manufacturer.
meterFlowRateMinimum: An optional attribute that, if populated, SHALL be dereferenceable to define a string value containing the minimum product flow rate as determined by the manufacturer of the component. If this attribute is populated, a units of measure sub-attribute value SHALL also be populated.
Requirement 185 |
/req/meter/meterflowrateminimum-uom
|
If this optional attribute meterFlowRateMinimum is provided, a units-of-measure sub-attribute (uom) SHALL be provided that indicates the appropriate units of measure used for the provided value. |
meterFlowRateMaximum: An optional attribute that, if populated, SHALL be dereferenceable to define a string value containing the maximum product flow rate as determined by the manufacturer of the component. If this attribute is populated, a units of measure sub-attribute value SHALL also be populated.
Requirement 186 |
/req/meter/meterflowratemaximum-uom
|
If this optional attribute meterFlowRateMaximum is provided, a units-of-measure sub-attribute (uom) SHALL be provided that indicates the appropriate units of measure used for the provided value. |
7.5.1.16. Pump Class Requirements Class (Normative)
Requirements Class |
|
/req/pump |
|
Target type |
Encoding of conceptual model |
Name |
PMLComponent Pump |
Dependency |
/req/pmlcomponent |
Requirement 187 |
/req/pump/pumpmanufacturer-codelistURIexception |
Requirement 188 |
/req/pump/pumpmanufacturer-exclusivity |
Requirement 189 |
/req/pump/pumptype-codelistURI |
Requirement 190 |
/req/pump/pumpbounddimension-boundtype |
Requirement 191 |
/req/pump/pumpbounddimension-codelistURI |
Requirement 192 |
/req/pump/pumpbounddimension-exclusivity |
Requirement 193 |
/req/pump/pumpdiameteroutlet-codelistURI |
Requirement 194 |
/req/pump/pumpdiameteroutlet-exclusivity |
Requirement 195 |
/req/pump/pumpdiameterinlet-codelistURI |
Requirement 196 |
/req/pump/pumpdiameterinlet-exclusivity |
Requirement 197 |
/req/pump/pumpdiameterimpeller-codelistURI |
Requirement 198 |
/req/pump/pumpdiameterimpeller-exclusivity |
Requirement 199 |
/req/pump/pumpboundmanufacturer-boundtype |
Requirement 200 |
/req/pump/pumpboundmanufacturer-codelistURI |
Requirement 201 |
/req/pump/pumpboundmanufacturer-exclusivity |
Requirement 202 |
/req/pump/pumpproductname-codelistURIexception |
Requirement 203 |
/req/pump/pumpproductname-exclusivity |
Requirement 204 |
/req/pump/pumpmodelnumber-codelistURIexception |
Requirement 205 |
/req/pump/pumpmodelnumber-exclusivity |
Requirement 206 |
/req/pump/pumpfueltype-codelistURI |
Requirement 207 |
/req/pump/pumppowerrating-uom |
Requirement 208 |
/req/pump/pumpratedflow-uom |
Requirement 209 |
/req/pump/pumppressuresuction-uom |
Requirement 210 |
/req/pump/pumppressuredischarge-uom |
The Pump Class is a concrete class and therefore may be encoded into a PipelineML dataset. This class contains classes and attributes as shown in Figure 23.
The Pump Class contains attributes and relationships to other classes:
pumpManufacturer: An optional unbound attribute that, if populated, SHALL be dereferenceable to a string value containing the name of the company that manufactured the component. The use of an external reference code list (controlled vocabulary) is intended to provide authoritative data that enhances application interoperability. This attribute supports the use of substandard (non-authoritative) data as defined in the othervalue requirement.
Requirement 187 |
/req/pump/pumpmanufacturer-codelistURIexception
|
[Recommendation] This optional attribute pumpManufacturer SHOULD utilize the codelistURIexception constructAny value populated for this attribute SHOULD utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/pumpmanufacturer . This value SHOULD be dereferencable to a string attribute. This attribute supports the use of substandard data by using an alternate source to the PipelineML Authoritative Data Governance Body for the unique code value (machine readable value) and the title (human readable value). If a value needs to be represented that is not contained in the PipelineML authoritative code list, an alternative code value MAY be used as a temporary solution, so long as it complies with the following guidelines:
|
Requirement 188 |
/req/pump/pumpmanufacturer-exclusivity
|
This optional unbound attribute pumpManufacturer MAY be populated, or its corresponding bound attribute pumpBoundManufacturer MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
pumpType: An optional attribute that, if populated, SHALL be dereferenceable to define a string value containing the type of pump component
Requirement 189 |
/req/pump/pumptype-codelistURI
|
This optional unbound attribute pumpType SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/pumptype . This value SHALL be dereferencable to a string attribute. |
pumpBoundDimension: An optional bound attribute that, if populated, SHALL be dereferenceable to define a bound combination of attributes as a concatenated string with each attribute being separated by semicolons (;). An alternate method is provided (below) for defining each of these attributes in unbound form. Only the bound type or unbound types may be populated, but NOT BOTH. This bound form of attributes represents the highest pedigree of data standardization and is considered best practice, as it provides a mechanism for identifying valid combinations of attributes. This bound set of values includes the following attributes: pumpDiameterOutlet; pumpDiameterInlet; pumpDiameterImpeller.
Requirement 190 |
/req/pump/pumpbounddimension-boundtype
|
This optional bound attribute pumpBoundDimension SHALL utilize the PipelineML boundType constructThis construct support a combination of attributes that are tightly bound together for the purpose of defining valid combinations of attributes using a single attribute valueA bound data type SHALL be dereferencable to a concatenated string of attributes separated by semicolons. |
Requirement 191 |
/req/pump/pumpbounddimension-codelistURI
|
This optional bound attribute pumpBoundDimension SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/pumpbounddimension . This value shall be dereferencable to a set of strongly bound string attributes separated by semicolons. |
Requirement 192 |
/req/pump/pumpbounddimension-exclusivity
|
This optional bound attribute pumpBoundDimension MAY be populated, or its corresponding set of unbound attributes (pumpDiameterOutlet, pumpDiameterInlet, pumpDiameterImpeller) MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
pumpDiameterOutlet: An optional unbound attribute that, if populated, SHALL be dereferenceable to define a string value containing the outlet diameter size of the component. This attribute SHALL NOT be provided if the attribute pumpBoundDimension is populated for reasons of disambiguation.
Requirement 193 |
/req/pump/pumpdiameteroutlet-codelistURI
|
This optional unbound attribute pumpDiameterOutlet SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/pumpdiameteroutlet . This value SHALL be dereferencable to a string attribute. |
Requirement 194 |
/req/pump/pumpdiameteroutlet-exclusivity
|
This optional unbound attribute pumpDiameterOutlet MAY be populated, or its corresponding bound attribute pumpBoundDimension MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
pumpDiameterInlet: An optional unbound attribute that, if populated, SHALL be dereferenceable to define a string value containing the inlet diameter size of the component. This attribute SHALL NOT be provided if the attribute pumpBoundDimension is populated for reasons of disambiguation.
Requirement 195 |
/req/pump/pumpdiameterinlet-codelistURI
|
This optional unbound attribute pumpDiameterInlet SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/pumpdiameterinlet . This value SHALL be dereferencable to a string attribute. |
Requirement 196 |
/req/pump/pumpdiameterinlet-exclusivity
|
This optional unbound attribute pumpDiameterInlet MAY be populated, or its corresponding bound attribute pumpBoundDimension MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
pumpDiameterImpeller: An optional unbound attribute that, if populated, SHALL be dereferenceable to define a string value containing the impeller diameter size of the component. This attribute SHALL NOT be provided if the attribute pumpBoundDimension is populated for reasons of disambiguation..
Requirement 197 |
/req/pump/pumpdiameterimpeller-codelistURI
|
This optional unbound attribute pumpDiameterImpeller SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/pumpdiameterimpeller . This value SHALL be dereferencable to a string attribute. |
Requirement 198 |
/req/pump/pumpdiameterimpeller-exclusivity
|
This optional unbound attribute pumpDiameterImpeller MAY be populated, or its corresponding bound attribute pumpBoundDimension MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
pumpBoundManufacturer: An optional bound attribute that, if populated, SHALL be dereferenceable to define a bound combination of attributes as a concatenated string with each attribute being separated by semicolons (;). An alternate method is provided (below) for defining each of these attributes in unbound form. Only the bound type or unbound types may be populated, but NOT BOTH. This bound form of attributes represents the highest pedigree of data standardization and is considered best practice, as it provides a mechanism for identifying valid combinations of attributes. This bound set of values includes the following attributes: pumpManufacturer; pumpProductName; pumpModelNumber.
Requirement 199 |
/req/pump/pumpboundmanufacturer-boundtype
|
This optional bound attribute pumpBoundManufacturer SHALL utilize the PipelineML boundType constructThis construct support a combination of attributes that are tightly bound together for the purpose of defining valid combinations of attributes using a single attribute valueA bound data type SHALL be dereferencable to a concatenated string of attributes separated by semicolons. |
Requirement 200 |
/req/pump/pumpboundmanufacturer-codelistURI
|
This optional bound attribute pumpBoundManufacturer SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/pumpboundmanufacturer . This value shall be dereferencable to a set of strongly bound string attributes separated by semicolons. |
Requirement 201 |
/req/pump/pumpboundmanufacturer-exclusivity
|
This optional bound attribute pumpBoundManufacturer MAY be populated, or its corresponding set of unbound attributes (pumpManufacturer, pumpProductName, and pumpModelNumber) MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
pumpProductName: An optional unbound attribute that, if populated, SHALL be dereferenceable to define a string value containing the product name of the component. This attribute SHALL NOT be provided if the attribute pumpBoundManufacturer is populated for reasons of disambiguation. This attribute supports the use of substandard (non-authoritative) data as defined in the othervalue requirement.
Requirement 202 |
/req/pump/pumpproductname-codelistURIexception
|
[Recommendation] This optional attribute pumpProductName SHOULD utilize the codelistURIexception constructAny value populated for this attribute SHOULD utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/pumpproductname . This value SHOULD be dereferencable to a string attribute. This attribute supports the use of substandard data by using an alternate source to the PipelineML Authoritative Data Governance Body for the unique code value (machine readable value) and the title (human readable value). If a value needs to be represented that is not contained in the PipelineML authoritative code list, an alternative code value MAY be used as a temporary solution, so long as it complies with the following guidelines:
|
Requirement 203 |
/req/pump/pumpproductname-exclusivity
|
This optional unbound attribute pumpProductName MAY be populated, or its corresponding bound attribute pumpBoundManufacturer MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
pumpModelNumber: An optional unbound attribute that, if populated, SHALL be dereferenceable to define a string value containing the model number of the component. This attribute SHALL NOT be provided if the attribute pumpBoundManufacturer is populated for reasons of disambiguation. This attribute supports the use of substandard (non-authoritative) data as defined in the othervalue requirement.
Requirement 204 |
/req/pump/pumpmodelnumber-codelistURIexception
|
[Recommendation] This optional attribute pumpModelNumber SHOULD utilize the codelistURIexception constructAny value populated for this attribute SHOULD utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/pumpmodelnumber . This value SHOULD be dereferencable to a string attribute. This attribute supports the use of substandard data by using an alternate source to the PipelineML Authoritative Data Governance Body for the unique code value (machine readable value) and the title (human readable value). If a value needs to be represented that is not contained in the PipelineML authoritative code list, an alternative code value MAY be used as a temporary solution, so long as it complies with the following guidelines:
|
Requirement 205 |
/req/pump/pumpmodelnumber-exclusivity
|
This optional unbound attribute pumpModelNumber MAY be populated, or its corresponding bound attribute pumpBoundManufacturer MAY be populated, but NOT BOTH. This exclusivity requirement is intended to promote disambiquity. |
pumpSerialNumber: An optional string attribute that defines a unique identification number established by the component manufacturer
pumpFuelType: An optional attribute that, if populated, SHALL be dereferenceable to define a string value describing the type of fuel used to operate the component
Requirement 206 |
/req/pump/pumpfueltype-codelistURI
|
This optional attribute pumpFuelType SHALL utilize the codelistURI constructAny value populated for this attribute SHALL utilize the controlled vocabulary that represents authoritative data, located at https://www.opengis.net/def/pipelineml/1.0/codelists/pumpfueltype . This value SHALL be dereferencable to a string attribute. |
pumpPowerRating: An optional measurement made by the manufacturer that defines the amount of power the pump is rated to produce. If this attribute is populated with a value, a units-of-measure sub-attribute SHALL also be provided.
Requirement 207 |
/req/pump/pumppowerrating-uom
|
If this optional attribute pumpPowerRating is provided, a units-of-measure sub-attribute (uom) SHALL be provided that indicates the appropriate units of measure used for the provided value. |
pumpRatedFlow: An optional measurement made by the manufacturer that defines the rate of product flow the pump is rated to produce. If populated is populated with a value, a units-of-measure sub-attribute SHALL also be provided.
Requirement 208 |
/req/pump/pumpratedflow-uom
|
If this optional attribute pumpRatedFlow is provided, a units-of-measure sub-attribute (uom) SHALL be provided that indicates the appropriate units of measure used for the provided value. |
pumpPressureSuction: An optional measurement made by the manufacturer that defines the amount of suction the pump is rated to produce. If populated is populated with a value, a units-of-measure sub-attribute SHALL also be provided.
Requirement 209 |
/req/pump/pumppressuresuction-uom
|
If this optional attribute pumpPressureSuction is provided, a units-of-measure sub-attribute (uom) SHALL be provided that indicates the appropriate units of measure used for the provided value. |
pumpPressureDischarge: An optional measurement made by the manufacturer that defines the amount of pressure the pump is rated to discharge. If populated is populated with a value, a units-of-measure sub-attribute SHALL also be provided.
Requirement 210 |
/req/pump/pumppressuredischarge-uom
|
If this optional attribute pumpPressureDischarge is provided, a units-of-measure sub-attribute (uom) SHALL be provided that indicates the appropriate units of measure used for the provided value. |
7.5.1.17. Reducer Class Requirements Class (Normative)
Requirements Class |
|
/req/reducer |
|
Target type |
Encoding of conceptual model |
Name |
PMLComponent Reducer |
Dependency |
/req/pmlcomponent |
Requirement 211 |
/req/reducer/reducermanufacturer-codelistURIexception |
Requirement 212 |
/req/reducer/reducertype-codelistURI |
Requirement 213 |
/req/reducer/reducermaterial-codelistURI |
Requirement 214 |
/req/reducer/reducerboundspecification-boundtype |
Requirement 215 |
/req/reducer/reducerboundspecification-codelistURI |
Requirement 216 |
/req/reducer/reducerboundspecification-exclusivity |
Requirement 217 |
/req/reducer/reducerspecification-codelistURI |
Requirement 218 |
/req/reducer/reducerspecification-exclusivity |
Requirement 219 |
/req/reducer/reducerweight-codelistURI |
Requirement 220 |
/req/reducer/reducerweight-exclusivity |
Requirement 221 |
/req/reducer/reducerbounddimension-boundtype |
Requirement 222 |
/req/reducer/reducerbounddimension-codelistURI |
Requirement 223 |
/req/reducer/reducerbounddimension-exclusivity |
Requirement 224 |
/req/reducer/reducernominalpipesizeinlet-codelistURI |
Requirement 225 |
/req/reducer/reducernominalpipesizeinlet-exclusivity |
Requirement 226 |
/req/reducer/reducernominalpipesizeoutlet-codelistURI |
Requirement 227 |
/req/reducer/reducernominalpipesizeoutlet-exclusivity |
Requirement 228 |
/req/reducer/reduceroutsidediameterinlet-codelistURI |
Requirement 229 |
/req/reducer/reduceroutsidediameterinlet-exclusivity |
Requirement 230 |
/req/reducer/reduceroutsidediameteroutlet-codelistURI |
Requirement 231 |
/req/reducer/reduceroutsidediameteroutlet-exclusivity |
Requirement 232 |
/req/reducer/reducerwallthicknessinlet-codelistURI |
Requirement 233 |
/req/reducer/reducerwallthicknessinlet-exclusivity |
Requirement 234 |
/req/reducer/reducerwallthicknessoutlet-codelistURI |
Requirement 235 |
/req/reducer/reducerwallthicknessoutlet-exclusivity |
The Reducer Class is a concrete class and therefore may be encoded into a PipelineML dataset. This class contains classes and attributes as shown in Figure 24.