Verbesserungsarbeiten nach Gesprächen am 21. und 22. März mit PTB und DKD
1) NaN: Bei Unsicherheitsangaben auch k und p, Regel: entweder alles NaN bei (u,p,k) oder keines NaN in Doku ergänzen
2) QuantityType: Nach langer Diskussion verständigung auf Variante 3 (si:quantityTypeQUDT, auf Basis qudt:quantityKind)
3) Noch prüfen, ob Vorkonstruierte Lösung für quantityType als Spezialfall allgemeine Lösung gefunden werden kann.
4) Prüfen ob Type bei Bezeichnern uncertaintyValue
5) Prüfen ob valueExpandedMU -> valueMUExpanded besser?
6) Verbesserung si:distribution Auslegung: Sollte spezifiziert werden. Wenn nich angegeben, dann keine Annahme Normalverteilung als Default, sondern Dokumentation, dass Verteilung dann nicht bekannt.
7) Signifikante Stellen: Element ok, aber noch Null Wert aussschließen
8) Signifikante Stellen: Nochmal DKD-L 13-1 (DIN 1333), ISO 80000 und ISO/IEC2382:2025(en) auf bessere Definition prüfen.
9) B. Seeger könnte Beispiel für richtiges Runden und Verarbeiten Daten in Python beisteuern.
10) Bezeichnung CoverageInterval behalten und nicht nur Interval
11) Klammer Element "measurementUncertaintyUnivariate" um neu Unsicherheiten in si:real und wo relevant einfügen.
✓
11 of 11 checklist items completed
· Edited
Designs
Child items ...
Show closed items
Linked items 0
Link issues together to show that they're related.
Learn more.
NaN in k-Value und p-Value Elementen ergänzt und Beispiel 800 aktualisiert
Regel bei erw. MU: sobald in einem Element u, p oder k eine Wert anders als NaN steht, müssen überall Werte anders als NaN stehen.
Regel bei coverageInterval: sobal in irgendeinem Element (standard u, min, max, p) etwas anderes als NaN steht, muss überall etwas anderes als NaN stehen.
Die Regeln übertragen sich "spaltenweise" auf XMLList Konstrukte.
Umsetzung Variante 3 unter Berücksichtigung weiterer XML Möglichkeiten
SubstituionGroup
XSD:<xs:elementname="quantityType"type="xs:string"abstract="true"/><xs:elementname="quantityTypeQUDT"substitutionGroup="si:quantityType"type="qudt:quantityKind"/><xs:elementname="quantityTypeIEC"substitutionGroup="si:quantityType"/>Dann im XML möglich:...<si:real><si:quantityTypeQUDT>length</si:quantityTypeQUDT></si:real><si:real><si:quantityTypeIEC>length</si:quantityTypeIEC></si:real>Nicht erlaubt ist: <si:real><si:quantityType>length</si:quantityType></si:real>
Das wäre eine super Lösung in XML. In JSON würde man JSON-LD nutzen müssen, um den Type zu ändern.
Hier ist quantityType der Oberbegriff und die anderen Elemente sind Unterbegriffe.
In si:real kann es mit einem einfachen "ref" im Schema eingebunden werden:
Einbauen Element si:quantityType und Spezialisierung si:quantityTypeQUDT mit Type qudt:quantityKind (Basis Substitution Group)
Verlinken in allen relevanten Elementen (real, complex, Listen,...)
Daniel Hutzschenreutermarked the checklist item 1) NaN: Bei Unsicherheitsangaben auch k und p, Regel: entweder alles NaN bei (u,p,k) oder keines NaN in Doku ergänzen as completed
marked the checklist item 1) NaN: Bei Unsicherheitsangaben auch k und p, Regel: entweder alles NaN bei (u,p,k) oder keines NaN in Doku ergänzen as completed
Daniel Hutzschenreutermarked the checklist item 6) Verbesserung si:distribution Auslegung: Sollte spezifiziert werden. Wenn nich angegeben, dann keine Annahme Normalverteilung als Default, sondern Dokumentation, dass Verteilung dann nicht bekannt. as completed
marked the checklist item 6) Verbesserung si:distribution Auslegung: Sollte spezifiziert werden. Wenn nich angegeben, dann keine Annahme Normalverteilung als Default, sondern Dokumentation, dass Verteilung dann nicht bekannt. as completed
Daniel Hutzschenreutermarked the checklist item 2) QuantityType: Nach langer Diskussion verständigung auf Variante 3 (si:quantityTypeQUDT, auf Basis qudt:quantityKind) as completed
marked the checklist item 2) QuantityType: Nach langer Diskussion verständigung auf Variante 3 (si:quantityTypeQUDT, auf Basis qudt:quantityKind) as completed
Daniel Hutzschenreutermarked the checklist item 3) Noch prüfen, ob Vorkonstruierte Lösung für quantityType als Spezialfall allgemeine Lösung gefunden werden kann. as completed
marked the checklist item 3) Noch prüfen, ob Vorkonstruierte Lösung für quantityType als Spezialfall allgemeine Lösung gefunden werden kann. as completed
<xs:simpleTypename="significantDigitsType"><xs:annotation><xs:documentationxml:lang="en"> Type providing number of significant digitis with separation by blank spaces.</xs:documentation></xs:annotation><xs:restrictionbase="xs:nonNegativeInteger"><xs:minInclusivevalue="1"/></xs:restriction></xs:simpleType>
Daniel Hutzschenreutermarked the checklist item 7) Signifikante Stellen: Element ok, aber noch Null Wert aussschließen as completed
marked the checklist item 7) Signifikante Stellen: Element ok, aber noch Null Wert aussschließen as completed
Daniel Hutzschenreutermarked the checklist item 5) Prüfen ob valueExpandedMU -> valueMUExpanded besser? as completed
marked the checklist item 5) Prüfen ob valueExpandedMU -> valueMUExpanded besser? as completed
Daniel Hutzschenreutermarked the checklist item 10) Bezeichnung CoverageInterval behalten und nicht nur Interval as completed
marked the checklist item 10) Bezeichnung CoverageInterval behalten und nicht nur Interval as completed
Daniel Hutzschenreutermarked the checklist item 11) Klammer Element "measurementUncertaintyUnivariate" um neu Unsicherheiten in si:real und wo relevant einfügen. as completed
marked the checklist item 11) Klammer Element "measurementUncertaintyUnivariate" um neu Unsicherheiten in si:real und wo relevant einfügen. as completed
Informationen aus DKD-L 13-1 (Rundung von Ergebnissen und Messunsicherheiten in Kalibrierscheinen)
Begriff "Stellenpräzision": Anzahl von Ziffern zur approximativen Darstellung einer reellen Zahl als Festkommazahl (eigene Definition)
Keine Unsicherheit unterhalb der Größenordnung der Messunsicherheit eines Messwertes suggerieren. --> Leitfaden fasst daher normative Regeln und Richtlinienvorgaben zusammen und liefert praktikable Strategien und Beispiele als Empfehlung für das richtige Runden. (Basis DIN 1333:199 und ISO 80000 Regeln)
Ausgangspunkt für Rundung sind Daten die zuvor mit maximaler Genauigkeit Gleitkommazahlen dargestellt werden.
Rundung der Messunsicherheit auf zwei "signifikante Stellen" anhand von DKD vorgeschlagener Rundungsregel. - Begriff "Signifikante Stelle": Definition nach DIN 1333: „alle Stellen [...] von der ersten von Null verschiedenen Stelle bis zur Rundestelle“ (== von link nach rechts betrachtet die ersten von Null verschiedenen Stellen einer Zahl)
Begriff "Rundungsstelle": Die letzte durch die gerundete Messunsicherheit bestimmbare Ziffer im Messergebniswert (si:value) auf die der Messergebniswert gerundet wird.
Wichtig: Das Runden ist ausschließlich auf das Messergebnis anzuwenden, um ein mehrfaches
Runden zu vermeiden. Runden ist dabei stets in nur einem Schritt durchzuführen.
Informationen aus ISO/IEC 80000-1:2023, Anhang B
Begriff "rounding range" bzw. "Rundestellenwert": Die Benennung „rounding range“ ist durch die weltweit übliche Benennung „Rundestellenwert“ (en: place value) übersetzt, siehe DIN 1333:1992-02, 10.1.5 Bemerkung.
Beispiel: Rundestellenwert 0.1 bedeutet, dass 12.456 auf 12.5 gerundet wird oder 3.14 auf 3.1 gerundet wird.
Beispiel: Rundestellenwert 10 bedeutet, dass 12.456 auf 10 gerundet wird und 3.14 auf 0 gerundet werden würde.
Hinweis: DKD-L 13 benutzt auch Begriff "Rundestellenwert" in Beispielen.
Forderung Anhang B.6: Der Rundestellenwert sollte stets angegeben werden.
Informationen aus ISO/IEC2382:2015(en)
Begriff "Digit": numeric character character that represents a nonnegative integer OR that represents a natural number
Begriff "digit place": in positional notation, each position that may be occupied by a digit and that is identified by an ordinal number or by an equivalent
Begriff "least significant digit": least significant digit
in positional notation, digit place having the smallest weight used
Begriff "most significant digit": most significant digit
in positional notation, digit place having the largest weight used
Begriff "weight": in positional notation, factor by which the value represented by a digit in a digit place is multiplied to obtain its additive contribution in the representation of a number
Begriff "significantDigit": significant digit
in a numeral, digit that is needed to preserve a given accuracy or a given precision (SO/IEC [ISO/IEC 2382-5:1999])
Hallo Daniel. Ich verstehe nicht, was Du uns hier mitteilen willst. Das Konzept "Runde die Unsicherheit auf zwei signifikante Stellen und runde das Ergebnis auf die gleiche Stelle" ist doch allgemein bekannt und etabliert und es ist auch das einzige Konzept, das in unserem Anwendungsbereich relevant ist (WENN man im Kontext DCC überhaupt über das Runden sprechen will oder muss). Alles andere ist doch uninteressant (oder?).
Worum geht es hier? Was ist das Problem?
(Übrigens, Algorithmen für dieses Rundungskonzept kann ich liefern, in Excel-Notation, aber das sollte man schon in XML übertragen können).
Hallo Christian,
hier ist ein feiner Unterschied drin. Einmal hast du die Anwendungsempfehlung "runde auf 2 signifikante Stellen" der Unsicherheit und auf der anderen Seite, wie es (wenn nötig) in den digitalen Daten gekennzeichnet wird wo die Rundestelle ist. Hier geht es darum einen allgemein gültigen Weg zu finden die Rundestelle erkenntlich zu machen. Dafür braucht man natürlich Einblick zu Anwendungen wie gerundet wird und welche Definitionen es dazu gibt. Daher das ganze Dokumentationswälzen an dieser Stelle. Weiter unten ist jetzt das Ergebnis dokumentiert.
Hallo Daniel, ich habe leider immer noch nicht verstanden, wozu das Ganze im gegebenen Kontext gut sein soll. Aber wenn Du sicher bist, dass es relevant ist, dann möchte ich Dich nicht weiter bremsen.
Es gibt mehrere Kandidaten für die Definition der Stellen auf die gerundet werden sollte:
Bezeichner
Definition
Pro
Contra
Bemerkung
Signifikante Stellen (DKD, DIN)
Integer: Anzahl Stellen von links von 0 verschieden
gebräuchlich in Kommunikation, klare Definition
aufwendige Logik
Rundungsstelle (DKD)
Stelle an der gerundet werden soll
einfach
Definition über signifikante Stellen Unsicherheit
Significant Digit (ISO 2382)
Stelle die für bestimmte Präzision gebraucht wird
ISO/IEC genormt
Definition unspezifisch (offen)
ähnlich Rundungsstelle
Rundestellenwert (ISO 80000)
Dezimal: Zehnerpotenz, die ganzzahligem Vielfachem der Rundungsstelle entspricht
ISO gefordert, klare Definition
aufwendige Logik, Dezimalwert braucht wieder Klärung "sign. Stelle" für Maschine, ungebräuchlich in Kommunikation
Direkt betrachtet erscheint mir keine der Richtlinien auf Anhieb die perfekt passende Definition zu liefern. Bei Betrachtung der Pro Seiten, gibt es aber gute Gründe für folgende Überlegung:
Einführung Feld "Significant Digit" (Singular) mit Bezug auf ISO/IEC 2382.
"Significant" Digit ist ein ganzzahliger Wert (Integer, einfach) als Datentyp
Der Wert ist der Exponent mit dem die 10er Potenz berechnet wird, die den Rundestellenwert liefert (Rückkopplung zu ISO 80000 Forderung und DKD Rundungstelle)
Vorteil von diesem Ansatz wäre neben der Erfüllung der vorgenannten Pro Eigenschaft noch, dass die Logik zur Identifikation der Rundestelle sehr einfach wäre und gegenüber ungewollter Verschiebung der Rundestelle in si:value durch Wechsel des Exponenten in si:value robust ist.
Daniel Hutzschenreutermarked the checklist item 9) B. Seeger könnte Beispiel für richtiges Runden und Verarbeiten Daten in Python beisteuern. as completed
marked the checklist item 9) B. Seeger könnte Beispiel für richtiges Runden und Verarbeiten Daten in Python beisteuern. as completed
Daniel Hutzschenreutermarked the checklist item 8) Signifikante Stellen: Nochmal DKD-L 13-1 (DIN 1333), ISO 80000 und ISO/IEC2382:2025(en) auf bessere Definition prüfen. as completed
marked the checklist item 8) Signifikante Stellen: Nochmal DKD-L 13-1 (DIN 1333), ISO 80000 und ISO/IEC2382:2025(en) auf bessere Definition prüfen. as completed
Weiterhin klare Empfehlung Unsicherheiten aus Rundung auf signifikante Stellen in Messunsicherheit einzubinden (also Verzicht auf explizite Angabe signifikante Stellen)
Wer unbedingt signifikante Stellen angeben muss, bekommt im D-SI die folgende ISO 80000 kompatible Lösung angeboten:
Integer Wert "si:significantDigit", der den Exponenten der 10er Potenz definiert, die den Rundestellenwert nach ISO 80000 bildet. Optionales Element.
Beispiel: Rundestellenwert ist 0.1 = 10^-1, dann si:significantDigit=-1
Beispiel: Rundestellenwert ist 0.001 = 10^-3, dann si:significantDigit=-3
Beispiel: Rundestellenwert ist 100 = 10^2, dann si:significantDigit=2
Vorteil ist, dass diese Definition auch mit der IEC Norm kompatibel ist (also auch in IT definierter Term) und auch bei Werten bei denen alle Stellen "0" sind funktioniert.
Das sauber gerundet wird und wie die Dezimalstellen im D-SI eingegeben werden ist Aufgabe der Anwender. Es wird aber einige Beispiele geben, wie man es sicher mit Middleware machen kann.
Alle weiteren Metainformationen sind nicht mehr Gegenstand D-SI sondern, für Formate höherer Ordnung wie dem DCC, die dann Methoden, Formeln und ähnliches zu definieren erlauben.
@D-H ich würde bei der Benennung etwas anderes wählen da significantDigit sehr leicht mit significant digits/figures verwechselt werden kann.
Und das sind ja die signifikanten Stellen von links an definiert.
1.000053e-8+-1.2e-13 hat nach der Definition aus dem Wiki Artikel 5 Signifikante Stellen.
Nach deiner Berechnung ist die Signifikante Stelle aber 10^-12 si:significantDigit=-12 oder nicht?
daher würde ich das Ganze si:significantDecimalFraction nennen. da gib es bestimmt noch einen besseren namen aber auf die schnell ist mir nichts besseres eingefallen
Danke für die Rückmeldung.
Da ich denke, dass ein anderer Bezeichner zu kompliziert wird und ´significantDigit´ bereits der ISO 2382 (IT Vokabular) genormte passende Begriff ist, habe ich es nicht geändert.
@Seeger :Vielen Dank für Ihren Text, den ich überhaupt nicht verstehe/nicht nachvollziehen kann, was mich aber in meiner Wahrnehmung bestätigt, dass wir in der ganzen Thematik bzw. auch in DIESER Diskussion noch nicht verstanden haben, worum es geht und vor allem, was wir damit tun wollen bzw. welches Requirement wir damit im gegebenen Kontext erfüllen wollen.
Genau. Aber erstens hat die Auflösung eines Instruments (Digits) nichts mit signifikanten Stellen zu tun und zweitens besteht nach meiner Wahrnehmung ein Interpretations-Gap zwischen Seeger und Hutzschenreuter darüber worum es hier eigenltich geht und drittens habe ich immer noch nicht verstanden, was diese Diskussion im D-SI zu suchen hat und wo der Usecase dafür sein könnte.