Geotech icon indicating copy to clipboard operation
Geotech copied to clipboard

[Test description] SPT

Open mbeaufils opened this issue 2 years ago • 4 comments

This issue is for the provision of examples of SPT declarations as Sensor instance in STA.

{ "@iot.id": 1, "sensorType": "Ideally an entry of a controlled vocabulary to identify the type of test that is performed.", "name": "A name given to the test that was performed. Most of the time the code / name that is used to mentionned the test", "description": "Free text you can write to describe the test that was performed", "metadata": "A link to a resource that propose extra information about the test", "encodingType": "Type of encoding that is used for the metadata", "properties": {

"Hammer serial number from manufacturer" : "AB1234", "Energy ratio of the hammer (%)" : "60", "Self-weight penetration (mm)" : "25", "SPT carried out in soft rock" : "No", "Accrediting body and reference number (when appropriate)" : "UKAS 0000", "Test status" : "Checked", "Associated file reference (e.g. test result sheets)"

} }

mbeaufils avatar Aug 03 '23 15:08 mbeaufils

{ "@iot.id": 1, "sensorType": "https://data.geoscience.fr/ncl/Proc/91", "name": "SPT Test XXX", "description": "If I had some comments to provide about this test I would have written them here.", "encodingType": "application/pdf", "metadata": "https://URItoTheReport/doc.pdf", "properties": { "Hammer serial number from manufacturer" : "AB1234", "Energy ratio of the hammer (%)" : "60", "Self-weight penetration (mm)" : "25", "SPT carried out in soft rock" : "No", "Accrediting body and reference number (when appropriate)" : "UKAS 0000", "Test status" : "Checked", "Associated file reference (e.g. test result sheets) : "FS11" } }

mbeaufils avatar Aug 03 '23 15:08 mbeaufils

Alternatives to address values / units :

option 1: separated properties "properties": { "energyRatio": 60, "energyRatioUnit":"%" }

option 2: value and unit together "properties": { "energyRatio": {"value":60, "unit":"%"} }

option 3: reference to a doc that specify the unit "properties":{ "energyRatio": 60, "conformsTo":"BestPracticeUrl" }

mbeaufils avatar Sep 07 '23 13:09 mbeaufils

I would suggest that option 2 above is the cleanest way to handle measurement values where there may be a unit, and wheer applicable, a reason for a null value, using the following object:

{"value": "...","uom": "...","nilreason": "..."}, where ... indicates the inserted value.

I would also like to propose an "other": property, an object to hold values for properties not ore-defined iwithin another object - it would look something like the following:

{"propertyName": "...","value": "...","uom": "..."}

I also think that where there is a logical organization of properties (eg. info about equipment or the standard used) that these be combined into objects.

Question: Does JSON allow repeated properties of the same name? (eg. cardinality > 1). This should be the case for the "other": object where there may be more than one additional property added.

See below an example for SPT that includes test proceure properties also extracted from DIGGS:


"@iot.id": 1, "sensorType": "Ideally an entry of a controlled vocabulary to identify the type of test that is performed.", "name": "A name given to the test that was performed. Most of the time the code / name that is used to mentionned the test", "description": "Free text you can write to describe the test that was performed", "metadata": "A link to a resource that propose extra information about the test", "encodingType": "Type of encoding that is used for the metadata", "properties": {

"testStatus" : "...",
"testInSoftRock: "...",

"TestStandard": {
	"name": "...",
	"description": "...",
	"accreditingBody": "...",
	"clause": "...",
	"part": "...",
	"referenceNumber": "...",
	"version": "...",
	"other": {"propertyName": "...","value": "...","uom": "..."}	
 },

"Hammer": {
	"type": "...",
	"model": "...",
	"serialNumber": ".,,",
	"mass": {"value": "...","uom": "...","nilreason": "..."},
	"dropHeight": {"value": "...","uom": "...","nilreason": "..."},
	"energyRatio": {"value": "...","uom": "...","nilreason": "..."},
	"other": {"propertyName": "...","value": "...","uom": "..."}
},

"Sampler": {
	"length": {"value": "...","uom": "...","nilreason": "..."},
	"internalDiameter": {"value": "...","uom": "...","nilreason": "..."},
	"linerDescription": ",,,",
	"retainerDescription": "...",
	"other": {"propertyName": "...","value": "...","uom": "..."}	
},

"Rod": (
	"type": "...",
	"externalDiameter: {"value": "...","uom": "...","nilreason": "..."},
	"sectionLength": {"value": "...","uom": "...","nilreason": "..."},
	"rodWeightPerUnitLength": {"value": "...","uom": "...","nilreason": "..."},
	"other": {"propertyName": "...","value": "...","uom": "..."}
)

"selfWeightPenetration": {"value": "...","uom": "...","nilreason": "..."},
"casingDepth": {"value": "...","uom": "...","nilreason": "..."},
"depthToWater": {"value": "...","uom": "...","nilreason": "..."},
"other": {"propertyName": "...","value": "...","uom": "..."}		

} }

dponti avatar Sep 13 '23 23:09 dponti

Question: Does JSON allow repeated properties of the same name? (eg. cardinality > 1).

No and Yes. In an Object ({}) each key is only allowed to appear once, but the value can be an array. In this array you can then have multiple items of any type.

But in the case of this "other" property, the sub-properties in this won't have duplicate names, so the better way of modeling this is:

{
  "other": {
    "property1": {"value": "...","uom": "..."},
    "property2": {"value": "...","uom": "..."}
  }
}

hylkevds avatar Sep 14 '23 06:09 hylkevds