SensorThingsAPI – 2/4: IoT Data Modeling with Open Standars (1/2)

Tiếp tục chuỗi bài giới thiệu về SensorThings API, bài này sẽ tập trung trình bày về IoT Modeling with Open Standards. Nội dung về chủ đề được thể hiên ở hình vẽ sau:

Hình 1: Sơ đồ hình dư liệu IoT được áp dụng cho SensorThings API

  • Thing –  là một đối tượng của thế giới vật chất (vật chất) hoặc thế giới thông tin  có khả năng được xác định và tích hợp vào các mạng truyền thông
Thuộc tính Định nghĩa Kiểu dữ liệu Yêu cầu, số lượng
name Thuộc tính cung cấp  nhãn cho thực thể Thing, thường là một cái tên mô tả. CharacterString Bắt buộc – 1
description Một mô tả ngắn gọn về thực thể Thing tương ứng. CharacterString Bắt buộc – 1
properties Đối tượng JSON chứa các thuộc tính được chú thích bởi người dùng sử dung cặp key-value. JSON Object Có thể có hoặc không

Bảng 1: Thuộc tính của thực thể Thing

  • Location của Thing được định nghĩa là vị trí cuối cùng được biết đến của Thing.  Trong bối cảnh của IoT, vị trí quan trọng được quan tâm thường gắn liền với vị trí của Thing, đặc biệt đối với các ứng dụng cảm ứng tại chỗ.Tuy nhiên, vị trí cuối cùng của sự quan tâm của Thing không phải lúc nào cũng là vị trí của Thing (ví dụ, trong trường hợp viễn thám).

 

Tên Định nghĩa Kiểu dữ liệu Yêu cầu, số lượng
name Thuộc tính cung cấp  nhãn cho thực thể Location, thường là một cái tên mô tả. CharacterString bắt buộc , 1
description Mô tả về Vị trí. CharacterString bắt buộc, 1
encodingType Loại mã hóa của thuộc tính Location. Giá trị của nó là một trong các Enumeration ValueCode ValueCode bắt buộc , 1
location Loại vị trí được xác định bằng encodingType bắt buộc,1

 

Bảng 2: Thuộc tính của thực thể Location

Ví dụ về Location Entity:

{   @iot.id”: 1,

@iot.selfLink”: “http://example.org/v1.0/Locations(1)”,

“Things@iot.navigationLink”: “Locations(1)/Things”,

“HistoricalLocations@iot.navigationLink”: “Locations(1)/HistoricalLocations”,

“encodingType”: “application/vnd.geo+json”,   “name”: “CCIT”,

“description”: “Calgary Center for Innvative Technologies”,

“location”: {     “type”: “Feature”,     “geometry”:{       “type”: “Point”,       “coordinates”: [-114.06,51.05]     }   } }

  • HistoricalLocation  cung cấp thời gian về vị trí hiện tại (tức là, được biết lần cuối) và vị trí trước đây của Thing.
Thuộc tính Định nghĩa Kiểu dữ liệu Yêu cầu, số lượng
time Thời điểm khi Thing được biết đến tại Location. TM_Instant (ISO-8601 Time String) Bắt buộc, 1

 

Bảng 3: Thuộc tính của thực thể HistoricalLocation

Ví dụ  về HistoricalLocation Entity

{

@iot.id“: 1,

@iot.selfLink“: “http://example.org/v1.0/HistoricalLocations(1)”,

[email protected]“: “HistoricalLocations(1)/Locations”,

[email protected]“: “HistoricalLocations(1)/Thing”,

time“: “2015-01-25T12:00:00-07:00”    

}

Một Datastream nhóm một bộ sưu tập Các quan sát đo cùng một ObservedProperty và được sản xuất bởi cùng một Sensor.

Thuộc tính Định nghĩa Kiểu dữ liệu Yêu cầu , số lượng
name Thuộc tính cung cấp nhãn cho đối tượng Datastream, thường là một tên mô tả. CharacterString Bắt buộc, 1
description Mô tả của thực thể Datastream. CharacterString Bắt buộc, 1
unitOfMeasurement Các giá trị của các thuộc tính này NÊN theo Bộ quy tắc Thống nhất cho Đơn vị Đo lường (UCUM). JSON Object Bắt buộc, 1

Lưu ý: Khi Datastream không có đơn vị đo lường (ví dụ: một loại OM_TruthObservation), thì các thuộc tính tương ứng của Tài sản Tự động có giá trị rỗng.

observationType Loại Quan sát (với loại kết quả duy nhất), được sử dụng bởi dịch vụ để mã hoá các quan sát. ValueCode

Xem bảng 5

bắt buộc, 1
observedArea Vùng giới hạn không gian trong phạm vi không gian của tất cả FeatureofInterest t liên quan đến Datastream này. GM_Envelope (GeoJSON Polygon) không bắt buộc, tối đa 1
phenomenonTime Khoảng thời gian tại thời điểm hiện tại của tất cả các quan sát TM_Period (ISO 8601 Time Interval) không bắt buộc, tối đa 1
resultTime Khoảng thời gian tại mà lúc kết quả được trả về TM_Period (ISO 8601 Time Interval) không bắt buộc, tối đa 1

Bảng 4: Thuộc tính của thực thể Datastream

O&M 2.0 Value Code Value (observationType names) Content of result
OM_CategoryObservation http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_CategoryObservation URI
OM_CountObservation http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_CountObservation integer
OM_Measurement http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_Measurement double
OM_Observation http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_Observation Any
OM_TruthObservation http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_TruthObservation boolean

Bảng 5: Danh sách một số giá trị mã được dùng để xác định các loại được định nghĩa trong mô hình O&M (OGC 10-004r3 và ISO 19156: 2011 khoản 8.2.2)

Ví dụ về Datastream:

{   @iot.id”: 1,

@iot.selfLink”: “http://example.org/v1.0/Datastreams(1)”,

“Thing@iot.navigationLink”: “HistoricalLocations(1)/Thing”,

“Sensor@iot.navigationLink”: “Datastreams(1)/Sensor”,

“ObservedProperty@iot.navigationLink”: “Datastreams(1)/ObservedProperty”,   “Observations@iot.navigationLink”: “Datastreams(1)/Observations”,

“name”: “oven temperature”,

“description”: “This is a datastream measuring the air temperature in an oven.”,

“unitOfMeasurement”: {     “name”: “degree Celsius”,     “symbol”: “°C”,     “definition”: “http://unitsofmeasure.org/ucum.html#para-30”   },   “observationType”: “http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_Measurement”,   “observedArea”: {     “type”: “Polygon”,     “coordinates”: [[[100,0],[101,0],[101,1],[100,1],[100,0]]]   },

“phenomenonTime”: “2014-03-01T13:00:00Z/2015-05-11T15:30:00Z”,

“resultTime”: “2014-03-01T13:00:00Z/2015-05-11T15:30:00Z”

}

Nội dung về  “IoT Data Modeling with Open Standars ” sẽ tiếp tục được trình bày trong các bài viết sau.

Tài liệu tham khảo: http://docs.opengeospatial.org/is/15-078r6/15-078r6.html#27