Re: [T2TRG] [One Data Model Group] [Asdf] Representation issues and protocol bindings

"Wouter van der Beek (wovander)" <wovander@cisco.com> Thu, 03 September 2020 15:48 UTC

Return-Path: <wovander@cisco.com>
X-Original-To: t2trg@ietfa.amsl.com
Delivered-To: t2trg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 75E213A0F56 for <t2trg@ietfa.amsl.com>; Thu, 3 Sep 2020 08:48:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.597
X-Spam-Level:
X-Spam-Status: No, score=-9.597 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com header.b=jDMJABKv; dkim=pass (1024-bit key) header.d=cisco.onmicrosoft.com header.b=P0llKNkE
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id AL1UPGPGqG-P for <t2trg@ietfa.amsl.com>; Thu, 3 Sep 2020 08:48:41 -0700 (PDT)
Received: from rcdn-iport-6.cisco.com (rcdn-iport-6.cisco.com [173.37.86.77]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 364E93A0F52 for <t2trg@irtf.org>; Thu, 3 Sep 2020 08:48:41 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=43968; q=dns/txt; s=iport; t=1599148121; x=1600357721; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=p/mo8l4kACNA00/cAsSIvVUleVsrFGalUcby5C/n3B0=; b=jDMJABKvJk6K46hGfRO+fjG6lx/8sjLVStMqmxBLnlmFE3t4mV18KeGM YVcyzFaiPNmbd+Mngx+MmLWVPf2m9zgfLGgDfuopWL84wxBCxAza4RjgQ D+2WmWTbti0EFJ1sEmvPHQ713OI/NQAAuF8/DEFG1gfHnQYlUKuW8hFm5 M=;
IronPort-PHdr: 9a23:z7fmPBTuVxg3Wz2gtggtpeL3iNpsv++ubAcI9poqja5Pea2//pPkeVbS/uhpkESQBN2J7/hAzeXRrfOoVW8B5MOHt3YPONxJWgQegMob1wonHIaeCEL9IfKrCk5yHMlLWFJ/uX3uN09TFZX6bVmUrXqsvnYeHxzlPl9zIeL4UofZk8Ww0bW0/JveKwVFjTawe/V8NhKz+A7QrcIRx4BlL/U8
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0CfBQDQD1Ff/5tdJa1VBwMcAQEBAQEBBwEBEgEBBAQBAYIKgSMvKSgHcFgvLAqELoNGA415mHGBQoERA1ULAQEBDAEBGxICBAEBhEsCF4IUAiQ4EwIDAQELAQEFAQEBAgEGBG2FXAyFcgEBAQEDEhEEBhMBASkOAQ8CAQYCDgMEAQEhAQYDAgICMBQJCAIEAQkEBQgagwUqAYFTTQMuAZYDkGgCgTmIYXZ/M4MBAQEFhT8YghAJgTiCcYNnhlAbggCBVIIfLj6ECAEHBAcBAyAVChUICYJQM4Itj1orKIJuhmomi0ePdIEICoJliGiHEIpbhDCcJh2SNJ9XAgQCBAUCDgEBBYFBKiNncHAVO4JpCUcXAg2OHwwXg06Bf4hXdDcCBgEJAQEDCXyNVYE1AYEQAQE
X-IronPort-AV: E=Sophos;i="5.76,387,1592870400"; d="scan'208,217";a="822737791"
Received: from rcdn-core-4.cisco.com ([173.37.93.155]) by rcdn-iport-6.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA; 03 Sep 2020 15:48:39 +0000
Received: from XCH-ALN-004.cisco.com (xch-aln-004.cisco.com [173.36.7.14]) by rcdn-core-4.cisco.com (8.15.2/8.15.2) with ESMTPS id 083Fmd9o015716 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Thu, 3 Sep 2020 15:48:39 GMT
Received: from xhs-rtp-003.cisco.com (64.101.210.230) by XCH-ALN-004.cisco.com (173.36.7.14) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 3 Sep 2020 10:48:39 -0500
Received: from xhs-rtp-001.cisco.com (64.101.210.228) by xhs-rtp-003.cisco.com (64.101.210.230) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 3 Sep 2020 11:48:37 -0400
Received: from NAM11-CO1-obe.outbound.protection.outlook.com (64.101.32.56) by xhs-rtp-001.cisco.com (64.101.210.228) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Thu, 3 Sep 2020 11:48:37 -0400
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Q10CJyosMvesTDNmTFIxjbLq+HQbsoBDM4vRVyrt40FrUPOXWIrPnzVM/uSJDdPAQzWW8zaOtLX773nUu0J8vAYVX3ebflGpOLKQ6flwejk7IaiSu1UYOwFc4nhy1cQPxK2jsslWLRqQzYXZ34i2F3h+A8EjN/zvvvwjxwZZc9dbVqlJ4BfdbQlqu4NRy7p1ricjaddsFFzG83dSBZLZ8NWc+Nevs+4jM9sW/LO+vdZQsxTpvG1O9oMFOnR/uy6sINPRZnyKdl1S6Q/3yQpKALCzYHBayb8TZNrG+olM418nEFnZ7y4eKa+QYrT8kfljI1v2JmAYBrVvXMcreKYLtg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=p/mo8l4kACNA00/cAsSIvVUleVsrFGalUcby5C/n3B0=; b=MmkYarTZ3s7uy2bgJr3d0hHuPT4ibuKl9TUpdShIbsGO/FwpeHUalFgI3FDjWLKxo+A4Qr542C7+L1Urfmdqi4lu5+aKYMPva00o1fdNHJJ1BY6zcjXKCF3YZ6nvXUcE3dSyFOzbISOZKWMwgwjAtJBlM9SOypN0rqyycGFk8qRgVGLcfAX06TaC6QrPs5DCWwUGM6CUughr9uGVfpPpleb1s0FjAbz/vH/fTxGrKyQETOHmupVakRQqq39zBc/ChyaSaYl9b+N3Qmd74IhocX8sFmixTQTj7Iroxp9fvy1G11fbRubKynmb37ALDABBTNR7BlDLOoU0JAB4QDByzQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cisco.com; dmarc=pass action=none header.from=cisco.com; dkim=pass header.d=cisco.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cisco.onmicrosoft.com; s=selector2-cisco-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=p/mo8l4kACNA00/cAsSIvVUleVsrFGalUcby5C/n3B0=; b=P0llKNkEkIgVV/4X8rfRzcFJTiNOmOL8R/mmB2lIiapnHTryKky+b3MJWDTE6/m2+6JjJb3GW/EDz0M8Xt3k5YiDoyCdnSS2RLsZDzPs1myLGOoKASzJPeQ2JJiPBq82rkCh5iW65jLlzu6TmmI6INmLtMVASve02OKwt+sB7DA=
Received: from MWHPR11MB1838.namprd11.prod.outlook.com (2603:10b6:300:10c::11) by MWHPR1101MB2224.namprd11.prod.outlook.com (2603:10b6:301:52::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3348.16; Thu, 3 Sep 2020 15:48:36 +0000
Received: from MWHPR11MB1838.namprd11.prod.outlook.com ([fe80::34c5:6550:a098:209f]) by MWHPR11MB1838.namprd11.prod.outlook.com ([fe80::34c5:6550:a098:209f%12]) with mapi id 15.20.3348.016; Thu, 3 Sep 2020 15:48:36 +0000
From: "Wouter van der Beek (wovander)" <wovander@cisco.com>
To: Bruce Nordman <bnordman@lbl.gov>, One Data Model Group <onedm@iotliaison.org>
CC: "t2trg@irtf.org" <t2trg@irtf.org>, "asdf@ietf.org" <asdf@ietf.org>
Thread-Topic: [One Data Model Group] [Asdf] Representation issues and protocol bindings
Thread-Index: AQHWf6Ks9vEN6ZlkEUeOqyooH12kt6lSSQVwgAAM0ICAABMfgIAAP62AgAEg/YCAACj+AIADHiUA
Date: Thu, 03 Sep 2020 15:48:36 +0000
Message-ID: <MWHPR11MB18382565C35FFB0927BC4BA9D22C0@MWHPR11MB1838.namprd11.prod.outlook.com>
References: <2ED86F4F-2926-4FBB-91A7-39F32FE7A970@tzi.org> <MWHPR11MB1838A7BB2F9D868DBF59B962D2510@MWHPR11MB1838.namprd11.prod.outlook.com> <BYAPR18MB2536E401A07C0F5DFF3376B6CE510@BYAPR18MB2536.namprd18.prod.outlook.com> <CAE5tNmoYSNPjndwo12O+RE+BdYG2bpadM1L6fAb+KKgairxkcw@mail.gmail.com> <A4218763-14BE-44DF-BB13-C248911CE84C@tzi.org> <CAE5tNmqJ=h2WvBf9Y8Z91as18_mtgO1crQG7S2+dgnigUSURbQ@mail.gmail.com> <CAK+eDP85v9ubv_RBG-CWOq_F7f5LvPFbSotxEfDL1x4uu2YpJw@mail.gmail.com>
In-Reply-To: <CAK+eDP85v9ubv_RBG-CWOq_F7f5LvPFbSotxEfDL1x4uu2YpJw@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: lbl.gov; dkim=none (message not signed) header.d=none;lbl.gov; dmarc=none action=none header.from=cisco.com;
x-originating-ip: [173.38.220.61]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: b5e88c2d-3580-4423-37c8-08d85020d20d
x-ms-traffictypediagnostic: MWHPR1101MB2224:
x-microsoft-antispam-prvs: <MWHPR1101MB222423248A8491F8E3DBEC5FD22C0@MWHPR1101MB2224.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:8882;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 1nqICIrbe5kh5d7Ug8E7wb+KNGoOaBpXXNwiSvHsT3cm/T3i3B1+dGsgRE4hnv5JXUuUjM5T+AUGN5Q4fgYQ3ApemDFtzVA2F4VF6E5ZU4YggEDDK3oUjoO5jqEHe9Gy4Mfbsb4m5fW3ggocLAhboSTx7ooCTuVc6Qq36d6rUnP72tqCSxItHIlrcOgxKsiqAMjPqPvjMwytpfc6qNKj+qyff+I8xZArVSWWQHZmoqK1zRcFkG7tltbJZ0vfLyC+zzLptnqzJUzv4/OGKEjIpvfqVIggbrx9j4/n90mMlKy+fPSZzqZdbv7JkeyY3EYYu7CV1jQBAYbydjO0qNsGko//9QGkFMpd6xHSYeF7nkgYg00k7YOqA6BCR6luxyiQh909akXnK7uUyurzLIrFDQ==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MWHPR11MB1838.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(396003)(136003)(366004)(376002)(346002)(39860400002)(26005)(53546011)(6506007)(186003)(2906002)(33656002)(7696005)(86362001)(55016002)(66946007)(9686003)(52536014)(66446008)(66476007)(66556008)(64756008)(76116006)(5660300002)(8676002)(71200400001)(8936002)(83080400001)(316002)(4326008)(110136005)(83380400001)(166002)(54906003)(478600001); DIR:OUT; SFP:1101;
x-ms-exchange-antispam-messagedata: kEY2n9BatgXR/GV+jboLY/n+SBkdHNctM6QEde1K0nDB+rggtHu/9Jg4BYYQQhq74OnpH8Dp0duR3zUT+k8FBCiwaQwUzeVChHwQyFZlx+NwzqW6y2XTg1q80bAR9okHfRG6GP8K45Ae+38vQz7YANKuH0MCM1utXEl/Wyy73womty/4zKwNaAL8yBLofumzG/Cg+mEfEUhbiCCLwM3a2Ww9EqpsQMYsimas8HOVMLHew3gGTOKGYi6a4QsOAojEiX82P6YmeClAq5JOk6wYMV0XDyJfcIlPKUCo3obLUNhcmNxO6WCOgmpX4y3zteZYEwJoMU2TN2h3UlGJzprIzI6sJQHOm88PSePCXil6KzPB3dklVCzbxQ/TkcFZ78Qua1Nl81B4/350OzpG213WZkuMLl7nq/Xf7Yv4QxzsDiUbKq9k7Sq25/eEE8GTU5rjCNCSi5W+AnkZKMgo668rfPWiVpG4+s7F6KOlX9yjmRBYXU/F4oYldH0Wq75JGUilBIJX4QksmJKshh9LZufBF8NM/b/s/j74OKFOeHM+2lUdPQ0f4yFHVvShJx7h8UrfdejiOVXUk0gA/5kiXoU8kPTpR4JWZmWlCDiNdEsigWMvmHz3KKQRMXwav2ao+QlxuQuXqgiLy0ltPtM8DaH8Cg==
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_MWHPR11MB18382565C35FFB0927BC4BA9D22C0MWHPR11MB1838namp_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MWHPR11MB1838.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b5e88c2d-3580-4423-37c8-08d85020d20d
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Sep 2020 15:48:36.4862 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5ae1af62-9505-4097-a69a-c1553ef7840e
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: ylIjt/LLWpEuNZJ02T2cmzLDH+HC8bNN/yh7mSnVftKjEi0pTe3dm24wqnyOtXI1R8YEPIGtJJnAGuEjaO3tdA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR1101MB2224
X-OriginatorOrg: cisco.com
X-Outbound-SMTP-Client: 173.36.7.14, xch-aln-004.cisco.com
X-Outbound-Node: rcdn-core-4.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/t2trg/F6ZRK6o5nJU8NOGSx5xWez_uSMA>
Subject: Re: [T2TRG] [One Data Model Group] [Asdf] Representation issues and protocol bindings
X-BeenThere: t2trg@irtf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: IRTF Thing-to-Thing Research Group <t2trg.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/t2trg>, <mailto:t2trg-request@irtf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/t2trg/>
List-Post: <mailto:t2trg@irtf.org>
List-Help: <mailto:t2trg-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/t2trg>, <mailto:t2trg-request@irtf.org?subject=subscribe>
X-List-Received-Date: Thu, 03 Sep 2020 15:48:45 -0000

Hi Bruce

3 different things here.

  1.  Standardize the units that is being measured/actuated.
     *   Everyone knows the Arianne rocket disaster, e.g. 2 pieces of code using different units
     *   Avoid this by not having the units on the wire, but have the units standardized per model
     *   By design use indeed SI..
  2.  Temperature sensor/actuator can be used in various conditions
     *   Design it only once
     *   Use it in all settings

                                                               i.      It needs justification to do something else

     *   Infrastructure, e.g. who is using the model can have additional data to describe how the sensor/actuator is being used.

                                                               i.      Such mechanism could be described with SDF as well

     *   Examples of OCF: fridge/freezer is a single device, but has for each zone a temperature sensor and a temperature set point.. how to distinguish these: semantic tags, e.g. extra data to say which one is which, but they all function the same..
  1.  Time series, composable things
     *   This can be achieved by creating lists/arrays with additional info of measurements of sensors
     *   Additional info

                                                               i.      Time

                                                             ii.      Semantic tags from above

                                                           iii.      ..

     *   This also starts with having the “most simple” sensor/actuator

I think 2 and 3 are topics when we have the first set of sensors/actuators have been done.
e.g. do the simple stuff first to get the journey started.

Kind Regards,
Wouter

From: One Data Model Group <onedm@iotliaison.org> On Behalf Of Bruce Nordman
Sent: Tuesday, September 1, 2020 5:00 PM
To: One Data Model Group <onedm@iotliaison.org>
Cc: t2trg@irtf.org; asdf@ietf.org
Subject: Re: [One Data Model Group] [Asdf] Representation issues and protocol bindings

I am all in favor of using SI units, and existing good mechanisms for encoding them (I assume SenML is a good choice), but once we have established the name and meaning of a characteristic, we are almost done.  I think the bigger problem is when there are divergent structures for describing a device or its capabilities, with different meanings and namings (or worse, same name but different meanings).

This particularly comes up with devices that are similar but different.  Consider an electric resistance water heater that has a capacity value.  It has just one as all electricity consumption is converted to heat in the water. If another protocol addresses heat pump water heaters, then the input and output capacities are different, and both (and the efficiency) vary with both the water and air temperature.

In other cases, the interaction model is different. For example, I have worked for a long time on the topic of 'energy reporting' - individual devices tracking and reporting on their own energy use. Some models for this have the end-use device keep track of time-series data, which requires the ability of central devices to configure the timing of such data collection. Another interaction model is that the central device is responsible for the time-series data, so that the only interaction with the end-use device is requests from the central device for their data. Thus the information to be passed is dependent on the interaction model.

I'm sure there are many such instances in network technology of this.  I remember years ago using uucp email addresses that did source routing of the email, which is fundamentally different from the DNS based email we use today.

The number of such problem domains is large, some may be intractable, and others will take years for domain experts to solve. However, I think there are a good number of ones that are addressable and can provide great value to standardize and are worth addressing.  Some of these are domain-specific to a particular device type, but others are 'horizontal' across many or all (e.g. energy reporting, device types).  Creating a list of possible topics to address, and prioritizing it to identify a small number to address initially, seems worth doing. This to be a modest side-project, not to distract from the current central flow of ODM work, but possibly growing once other work is more complete.

Thanks,

--Bruce

On Tue, Sep 1, 2020 at 6:33 AM One Data Model Group <onedm@iotliaison.org<mailto:onedm@iotliaison.org>> wrote:


On Mon, Aug 31, 2020 at 4:19 PM Carsten Bormann <cabo@tzi.org<mailto:cabo@tzi.org>> wrote:
I think it is already relatively easy to find the right level of abstraction for information that can be expressed in SI units.
(Units can be specified in SDF 1.0.)

SenML (RFC 8428) got that right, so I think we can follow that example in SDF.
We did have to make a little bit of a compromise (adding scaling prefixes in RFC 8798) in areas where the natural units are habitually scaled (there aren’t many electricity meters indicating J — it’s always kWh), but even here it should be easy to agree on a natural unit between domain experts.

 SenML's primary units and secondary (scaled) units did get that right, with nomenclature and values that make sense to subject matter experts:



{"u":"%RH", "v":20},

{"u":"lon", "v":24.30621},

{"u":"lat", "v":60.07965},

{"n":"temperature","u":"Cel","v":25.2},

{"n":"EGT", "u":"Fahr", "v":1374}



(I made the last one up - the U.S. should have gone metric back in the 1970's, but it didn't.  In this backward part of the world subject matter experts

might appreciate a familiar secondary unit of temperature.  "F" was already taken for farad, so ...)

But the problem remains how the ecosystem specifications can relate to the converged model if that had to abstract some more.  And that’s where the binding comes in.  To make ecosystem experts feel at home, we probably need to make this rather accessible.
For information that is a ratio to a reference value (e.g., a lamp an undefined metric of which can be set to a value between 0 to 100 %), SenML has “/”  (the dimensionless unit).  So we would normally not use percentages (or permille, or ppm, …), but a number that is typically clamped between 0 and 1.  Of course, most ecosystems will scale this to get an integer representation, and that is probably the largest source of variation (*).

Are there separate problems to be solved?
1) Devices that could but for some reason don't send/receive data in meaningful units (e.g., uint8 values from 0 .. 255 or 0..100) instead of 38 %RH?
2) Devices for which it is impossible to use absolute units (3.7 volts on a 10v dimmer circuit -> uint8 37 on a scale of 0-100 -> 0,37 dimensionless -> some level of room illumination that architects and occupational health people need to measure but consumers don't care about and the controller can't know)
3) Devices for which meaningful units haven't been defined?

Also, RFC 8798 is limited to linear scales (scale/offset).  For sound and RF power levels we can cheat with dB.  For lighting, the models are more complicated (which led to gamma and all that).  If different ecosystems use different models here, there may be no straightforward way to do the conversions.  So we have to be prepared to express these anyway.

A parametric model might be useful for problems 1 and 2.  Linear scales define min and max values for data (transmitted bits) and information (subject-meaningful values):

-128  ->  -40.0 Cel
 127 -> 300.0 Cel

or
  0 -> -40.0 Cel
65,536 -> 300.0 Cel

But for SDF that could be generalized to allow calibration points, the way gradients in an image editor specify at least start and end colors, but may also add intermediate values.  The domain of the transfer function is scalar and integer or real, but the range is always real and could be non-linear and multi-dimensional:

0 -> (0.4, 0.8, 0.25)           min domain value
25 -> (0.5, 0.8, 0.9)           intermediate control point(s)
100 -> (0.0, 0.0, 0.1)         max domain value

After doing linear interpolation to get the range values between control points, an output function selected from a list could be applied.  The initial list of output functions might be quite small - I can't think of any good examples other than linear and log:

1: linear: y = x
2: exponential: y = e^x
The parametric model of a mapping table followed by an optional output curve might cover 95% of use cases instead of 80%.  Is it simple enough for an SDF description?

Regards,
Dave



--
Bruce Nordman
Lawrence Berkeley National Laboratory
nordman.lbl.gov<http://nordman.lbl.gov>
BNordman@LBL.gov<mailto:BNordman@LBL.gov>
510-486-7089; m: 510-501-7943
m: 510-501-7943