Back to the[[http://www.omgwiki.org/OMGSysML/doku.php?id=sysml-roadmap:systems_engineering_concept_model_workgroup| Systems Engineering Concept Model (SECM) Working Group Wiki]] ====== Property & Expression Modeling Focus Team ====== ===== Team ===== Roger Burkhart, Harald Eisenmann, Manas Bajaj, Ilya Tolchinsky, Nerijus Jankevicius, Hans Peter de Koning Status: Draft concepts and requirements available for review ===== Objectives ===== The objective of the team is to establish the set of requirements for a comprehensive concept model of **system property** as defined in the SEBoK: > "Any named, measurable or observable attribute, quality or characteristic of a system or system element. (OMG 2003)" see http://sebokwiki.org/wiki/System_Property_%28glossary%29 . This activity is a precursor to developing the full set of concept model requirements. The concept of **system property** is tackled first, as it is a central concept in any system model. In SysML v1.4, these concepts are modeled as: * **ValueType** and **ValueProperty** * Annex E.5, Model Library for Quantities, Units, Dimensions, and Values (QUDV) ===== Limitations of SysML v1 ===== * Limited support for compound value properties: e.g. computer data record, vector, matrix, nth-order tensor, array, quaternion, ... * No support for value property collections: a variable-length list (or sequence), set, bag, ordered set of a particular value type * Too simplistic support for measurement scales other than ratio scale (in QUDV) * The inability to easily restrict a valid range of values for a value property. One can do this with constraints, but it should be very simple to do. For example, one may wish to restrict the valid range of values for water temperature to 0 – 100 degrees Celsius or 32 – 212 degrees Fahrenheit. * Complex meta-model (including QUDV) leads to implementation inefficiencies for tool vendors and usability issues for end-users * A (numerical) value type defines (and fixes) a selected measurement unit, but the actual measure scale in use (rather than unit) for a value property of a given value type should be selectable from a set of permissible measurement scales * Ideally SysML implementations would be capable of doing automated scale conversion of numerical property values, but the meta-model (including QUDV) has insufficient information to do so in all cases * Limited support for tabular (discretely sampled) data like time series, frequency spectra, temperature (pressure, enthalpy, ...) dependent material properties, etc. * Limited support for uncertainties and probability distributions / density functions ===== SE Needs for Properties & Expressions ===== * {{sysml-roadmap:secm_-_property_thoughts_r5.docx|Property Thoughts R5}} * {{sysml-roadmap:sysml_v2_rfp_properties_comments_b4_20151207.xlsx|Property Comment Spreadsheet}} * Draft high level class diagram:\\ {{sysml-roadmap:properties_diagram_v4.jpg}} ===== Glossary of Terms ===== * **compound property**: **property** that comprises other (possibly nested) **scalar** or **compound properties**, and has as many values as it has (nested) **properties**. \\ Note: A **compound property** is a generalization of a structured, multi-component property such as a vector, matrix, higher order tensor or computer data record. \\ Examples: 3D Cartesian coordinate, velocity vector, complex number, quaternion, rotation matrix, elasticity tensor, time-stamped diagnostic message. * **physical dimension**: synonym of **quantity dimension** * **precision**: maximum number p of significant digits that can be represented in a format, or the number of digits to that a result is rounded. \\ Source: IEEE-Std-754-2008. \\ Note: In this definition the kind of 'digit' depends on the selected format: in a 'binary format' is it a 'binary digit', in a 'decimal format' it is a 'decimal digit'. * **property**: attribute, quality, or characteristic of something \\ Source: [[http://www.oxforddictionaries.com/definition/english/property|Oxford English Dictionary]] * **quantity**: property of a phenomenon, body, or substance, where the property has a magnitude that can be expressed as a number and a reference \\ Source: [[http://jcgm.bipm.org/vim/en/1.1.html|VIM]] * **quantity dimension**: expression of the dependence of a **quantity** on the base quantities of a system of quantities as a product of powers of factors corresponding to the base quantities, omitting any numerical factor \\ Source: [[http://jcgm.bipm.org/vim/en/1.7.html|VIM]] * **scalar property**: **property** with a single value * **system**: combination of interacting elements organized to achieve one or more stated purposes \\ Note 1: A system may be considered as a product or as the services it provides. \\ Note 2: In practice, the interpretation of its meaning is frequently clarified by the use of an associative noun, e.g., aircraft system. Alternatively, the word “system” may be substituted simply by a context-dependent synonym, e.g., aircraft, though this may then obscure a system principles perspective.\\ Source: ISO 15288:2008 * **system element**: member of a set of elements that constitutes a **system** \\ Note: A system element is a discrete part of a system that can be implemented to fulfil specified requirements. A system element can be hardware, software, data, humans, processes (e.g., processes for providing service to users), procedures (e.g., operator instructions), facilities, materials, and naturally occurring entities (e.g., water, organisms, minerals), or any combination. \\ Source: ISO 15288:2008 * **system property**: named observable characteristic of a **system** or **system element** \\ simplification of "any named, measurable or observable attribute, quality or characteristic of a system or system element": "observable" includes "measurable", "characteristic" includes "attribute" and "quality" \\ Source: [[http://sebokwiki.org/wiki/System_Property_%28glossary%29|SEBoK]], derived from [[http://syseng.omg.org/SE_Conceptual%20Model/Draft%2012/Concept%20Model%20Semantic%20Dictionary%2012th%20Draft%20Partitioned%203_27_03.xls|SE Conceptual Model Semantic Dictionary (Draft #12, 2003-03-27)]] * **value**: particular magnitude or designation for a given observable characteristic \\ Examples: (1) the value //1540.5// expressed in //kilogram// for the "mass" property of "my car", (2) the value //red// for the "color" variable, (3) the default value //true// for the "isEncrypted" boolean formal parameter of operation "sendData", (4) the value //299792458// expressed in //m/s// for the "speed of light in vacuum" physical constant. * **value type**: named definition of the essential semantics and structure of the set of possible values of an observable characteristic, without the **value** itself ===== Driving Requirements ===== The requirements for Properties, Values Expressions (status 26 April 2017) are provided hereafter in an Excel file. Currently the requirements are transferred to the SECM Team Cloud Server model. *{{ :sysml-roadmap:requirements_on_properties_values_and_expressions-2017-04-26.xlsx |}} Older versions of the requirements specification are kept below: *{{ :sysml-roadmap:sysml-v2-rfp-reqs-values-and-expressions-draft5.docx |}} *{{ :sysml-roadmap:secm-properties-and-expressions-draft_requirements-2016-12-08.pdf |SECM-Properties & Expressions-Draft Requirements Presentation at Coronado Meeting-2016-12-08}} ===== Requirements Analysis ===== A first analysis iteration to help elaborate and validate the requirements has been performed. Two different data modeling approaches have been used: - UML object-oriented class diagram at meta-model level, - RDF/RDFS/OWL ontology style semantic data model, including some example instantiation (RDF/OWL 'individuals'). ==== UML Object-Oriented Data Model ==== {{ :sysml-roadmap:secm-valuetype-overview.png |Figure 1 - ValueType Overview}} {{ :sysml-roadmap:secm-valuetype-other-uses-than-property.png |Figure 2 - Other ValueTypes than Property}} {{ :sysml-roadmap:secm-collectionvaluetype.png |Figure 3 - Collection ValueTypes}} {{ :sysml-roadmap:secm-sampledfunctionvaluetype.png |Figure 4 - Discretely Sampled Function ValueType}} {{ :sysml-roadmap:secm-core-concepts-system-element-with-properties.png |Figure 5 - Integration of Property with Core System Elements}} ==== MOF and RDF/OWL Modeling Stacks ==== {{sysml-roadmap:secm-comparison-model-stacks-mof-vs-owl.png|Figure 4 - Comparison of modeling stacks in MOF and OWL}} ==== RDF/OWL Experimental Ontology ==== As an experiment an OWL equivalent of the UML class model was created, including a very simple instantiation of an HSUV car with 4 wheels, where each wheel has a diameter of 17 inch. The following 4 ontologies are in the stack: * secm-core (Upper Ontology) * secm-iso-iec-80000 (Middle Ontology - Example of a normative model library) * secm-us-customary (Lower Ontology - Example of a user-defined model library) * secm-hsuv-test01 (Lower Ontology - Example of a user-defined system model) As tool [[http://protege.stanford.edu/download/protege/4.3/|Protege v4.3]] is used. All files are encoded in [[https://www.w3.org/TR/owl2-manchester-syntax/|Manchester OWL Syntax]] for easiest human readability. {{sysml-roadmap:secm-owl-core-v1.png|Figure 5 - First attempt at OWL ontology}} {{sysml-roadmap:secm-owl-hsuv-elementdefinition.png|}} {{sysml-roadmap:secm-owl-hsuv-diameter_wheel_valueexpression.png|}} {{sysml-roadmap:secm-owl-hsuv-diameter_wheel_valueexpression_17_inch.png|}} ===== Open Issues ===== - Include and merge generic "value type" concept. - Can we replace "system property" with just "property" and include it to represent properties of environment / some global context? - Further explore possibility of dual object-oriented and ontology conceptual data model approach - useful? - More detailed requirements and prototyping on expressions and constraints. ===== References ===== ==== Conceptual Data Modeling Methodologies ==== * //Ontology Definition Metamodel (ODM)//, v1.1, OMG, 2014-09-02, see http://www.omg.org/spec/ODM/1.1/ \\ In particular the explanation in section 8.5 "Why Common Logic over OCL?" as well as the overview and mapping of Common Logic in chapter 12. * ISO/IEC 24707, //Information technology — Common Logic (CL): a framework for a family of logic based languages//, First edition, 2007-10-01 \\ Free download from ISO: [[http://standards.iso.org/ittf/PubliclyAvailableStandards/c039175_ISO_IEC_24707_2007%28E%29.zip|ISO_IEC_24707.zip]] \\ For a brief overview see also https://en.wikipedia.org/wiki/Common_Logic * //Overview of W3C Data Activity, Semantic Web, Linked Data, etc.//, see https://www.w3.org/2013/data/ * //Resource Framework Description (RDF)//, v1.1, 2014, W3C, see https://www.w3.org/RDF/ * //Resource Framework Description Schema (RDFS)//, v1.1, 2014, W3C, see https://www.w3.org/TR/2014/REC-rdf-schema-20140225/ * //Web Ontology Language (OWL)//, see overview and tools at https://www.w3.org/2001/sw/wiki/OWL * //MetaModelica//, see https://openmodelica.org/svn/OpenModelica/tags/OPENMODELICA_1_9_0_BETA_3/doc/OpenModelicaMetaProgramming.pdf ==== Quantities, Measurement Units and Scales, Quantity Dimensions, Physical Constants, Metrology ==== * //International Vocabulary of Metrology (VIM)//, BIPM, JCGM 200:2012, see http://www.bipm.org/en/publications/guides/vim.html * ISO/IEC 80000, //Quantities and units//, Parts 1 to 14, paid PDFs at http://www.iso.org/iso/home/search.htm?qt=80000&sort=rel&type=simple&published=on \\ For a brief overview see also https://en.wikipedia.org/wiki/ISO/IEC_80000 \\ For a thorough introduction see //BIPM SI Brochure// at http://www.bipm.org/en/publications/si-brochure/ * NIST, //The NIST Guide for the use of the International System of Units//, SP 811, web version 3.2, July 2008, see http://www.nist.gov/pml/pubs/sp811/ \\ In particular [[http://www.nist.gov/pml/pubs/sp811/appenb.cfm|Annex B Conversion Factors]] that defines the official conversion factor values for US Customary Units * CODATA - International Council for Science : Committee on Data for Science and Technology, see http://www.codata.org/ \\ In particular the //CODATA Recommended Values of the Fundamental Physical Constants// available from http://physics.nist.gov/cuu/Constants/index.html * IEEE-Std-754-2008 - IEEE Standard for Floating-Point Arithmetic, IEEE, 2008, see [[http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=4610935&queryText=ieee-std-754&refinements=4294965216|IEEExplore]] ==== Prototypes and Applications ====