building-envelope-data / api

API specification to exchange data about building envelopes
MIT License
3 stars 1 forks source link

Make the data less verbose #194

Closed christoph-maurer closed 3 years ago

christoph-maurer commented 3 years ago

Based on the recommendations of @RDmitchell and @StephenCzarnecki , we want to restructure numbersWithUncertainty in order to make the data less verbose.

taoning commented 3 years ago

Sorry if this has already been discussed. I have a similar concern on verbosity regarding BSDF data format, specifically on 'dataPoints.' This BSDF JSON format is ~60x in file size comparing to an equivalent .XML format. https://github.com/ise621/building-envelope-data/blob/2dc137dfc32aec917991b9b32e8a627533f1d45a/examples/dbe/optical/bsdf.json#L14 I don't know if file-size is of concern, nor do I know the advantage of having the format this way. (to support various query capabilities?)

christoph-maurer commented 3 years ago

@taoning opticalData.json has been designed according to the design goals to enable representation of all optical and calorimetric data which is currently relevant for building performance simulation. The meaning of a valid data set needs to be unambiguous. Therefore, the JSON data is larger than an equivalent XML format which is specialized to BSDF data.

The advantage of a general format is that existing formats can be converted into the general format and from the general format. It is therefore easier than to implement and maintain conversions between all relevant existing formats.

But the API should also enable efficient data exchange. Therefore, we allow to exchange BSDF data as resources in any defined format.

For large BSDF data, JSON according to opticalData.json could be used for example as an intermediate format to convert BSDF data from one format to another on one computer.

taoning commented 3 years ago

Thanks, @christoph-maurer for your explanation. I think I understand the logic behind this design choice.

christoph-maurer commented 3 years ago

I have added the question of @taoning to our FAQ section.

christoph-maurer commented 3 years ago

With #195, we have redefined numbers with uncertainty to make the JSON data less verbose. "uncertainValue" is now only used for values which have a defined "uncertainty" and "confidenceInterval". A mere number means that the uncertainty is unknown.

I close this issue. If you have additional ideas how to combine design goals with less verbose JSON data, please reopen this issue!