DISIT Lab A Knowledge Model to describe a smart city, that interconnect data from infomobility service, Open Data and other sources DISIT Lab, University of Florence, Italy, http://www.disit.org The Unified Knowledge Model of Snap4City - is available under Creative Commons Attribution-ShareAlike 3.0 Unported license s4c http://model.snap4city.org/s4c/ The unified knowledge model of snap4city enables the description of enties and relations of the snap4city platform. Snap4City Unified Knowledge Model This property is used to state that a Process consume a DataSource. Most probably a failure in the data source access or acquisition will result in a failure on the process. consume This property is used to state that a data source is used by some component. dataUsedBy This property is used to state that something depends on something else. In general A dependsOn B mean that if B is malfunctioning also A may have some malfunctioning. dependsOn This property is used to state that an IotApplication uses the services provided by a DataAnalytic application. A failure of the data analytic will probably result in a failure in the IoTApplication. exploit This property is used to state that a Process exposes a MicroService. expose This property is used to state that the values of a widget are generated by an IotApplication. A failure of the IoTApplication will probably results with problems with the widget. generatedBy This property is used to state that a IotApp generates values for a widget. generates This property is used to state that an Administrative component (e.g. a User, a Group or an Organization) has a conteinerized application. hasApp This property is used to state that an IoT device has an IotDeviceAttribute. hasAttribute This property is used to state that an Administration component (e.g. Group or Organization) has a Dashboard. Meaning that the component owns the dashboard. hasDashboard This property is used to state that an Administration component (e.g. Group or Organization) has a Data. Meaning that the component owns the data. hasData This property is used to state that an organization has a group of data elements. hasGroup This property is used to state that an Administration component (e.g. Group or Organization) has a Iot Application. Meaning that the component owns the Iot Application. hasIotApp This property is used to state that a user group or an organization has a user belonging to it. hasUser This property is used to state that an organization has a group of users. hasUseGroup This property is used to state that a Dashboard has a Widget. hasWidget This property is used to state that a conteinerized application belong to an administrative thing like a user or an organization. isAppOf This property is used to state that an IotDeviceAttribute is an attribute of an IotDevice. isAttributeOf This property is used to state that a DataSource is consumed by a Process. isConsumedBy This property is used to state that a dashboard is owned by a specific administrative entity. isDashboardOf This property is used to state that a data asset is owned by a specific administrative entity. isDataOf isDependencyOf This property is used to state that services provided by a DataAnalytic application are exploited by an IotApplication. isExploitedBy This property is used to state that a MicroService is exposed by a Process. isExposedBy This property is used to state that a group belong to an organization or to an user. isGroupOf This property is used to state that a Widget is in a Dashboard. Since a widget can be only in a dashboard this property is Functional. isInDashboard This property is used to state that an IotApp belong to an administrative thing like a User. isIotAppOf This property is used to state that a DataGather is produced by a Process. isProducedBy This property is used to state that an IotDevice is registered with an IotBroker. Since the platform will receive device updates via the broker a malfunction of the broker will probabily result in a malfunction with the interaction with the device. isRegisteredTo This property is used to state that a UserGroup belong to a specific Organization. isUserGroupOf isUserOf This property is used to state that a Process is visualized by an UserInterface. isVisualizedBy This property is used to state that a Process produce a DataGather. produce This property is used to state that an IotBroker registers an IotDevice. register This property is used to state that a Widget or an IotApplication use some data available on the platform (e.g. a Sensor). If the data is malfunctioning probably will result in a mulfunction on the widget or the IotApplication that use it. useData This property is used to state that a dashboard use the services from a node-red Iot Application. For example when there is at least a widget of the dashboard that is controlled by the IotApplication. This means that there is a dependency from the dashboard with the IotApp. useIotApp This property is used to state that a Data is used by an IotApp. usedByIotApp This property is used to state that a Data is used by a widget. usedByWidget This property is used to state that an IotApplication is used from a Dashboard. usedInDashboard This property is used to state that an UserInterface visualizes a Process. visualize This data property is used to state if an IoT Device is certified or not. Certification can be performed for example using a blockchain. certified represents a general datamodel data property dataModel This data property is used to state the "data type" of a snap4city element (e.g. a KPI). dataType This data property is used to state the description of a snap4city element (e.g. a KPI). description This data property is used to state the "healthiness" of a snap4city element (e.g. a sensor). healthiness This data property is used to state the high level type of the snap4city element. highLevelType This data property is used to associate an image to a snap4city element. image This data property is used to state the date and time when the status of a snap4city element (e.g. a sensor, a KPI) was checked. lastCheck This data property is used to provide the last date for a sensor attribute. lastDate This data property is used to provide the last value for a sensor attribute. lastValue This data property is used to state some license information of the snap4city element (e.g. DataSource). licensing This data property is used to provide the number of monthly clicks of a snap4city UserInterface element. monthlyClicks This data property is used to provide monthly usage information of a snap4city UserInterface (e.g Dashboard). monthlyUsage This data property is used to provide the number of minutes a snap4city UserInterface element was viewed in the month. monthlyViewedMinutes This data property is used to state the "nature" of a snap4city element (e.g. a sensor, a KPI). nature This data property is used to provide the process information of a snap4city element. process represent a general realtime data property realTime represents a general semantic data property semantic represents a general status data property status This data property is used to state the "sub nature" of a snap4city element (e.g. a sensor, a KPI). subNature This data property is used to state the subtitle of a snap4city element (e.g. a dashboard). subtitle represents a general technical data property technicalData This data property is used to state the title of a snap4city element (e.g. a dashboard). title This data property is used to state the "title_w" of a snap4city element (e.g. a widget). title_w This data property is used to state the "type" of a snap4city element. type This data property is used to state the "value name" of a snap4city element (e.g. a sensor). valueName This data property is used to state the "value type" of a snap4city element (e.g. a sensor, a KPI). valueType This data property is used to state the "value unit" of a snap4city element (e.g. a sensor, a KPI). valueUnit This data property is used to state the "visibility" of a snap4city element (e.g. a sensor, a KPI). visibility This class represents the IoT Devices that are used to actuate one or more behaviours on a system. Actuator This class represents any snap4city administration facility used to group entities as dashboards, IoT applications or other data sources. AdministrativeThing AreaManagerUser This class represents any container-based application running on snap4city ContainerizedApp 1 This class represents any dashboard available on the platform. Dashboard This class represents any data managed by the snap4city platform. Data This class represents any data analytic process that user may define. DataAnalytic This class represents entities providing data outside the snap4city platform. DataProviding This class represents any source of data that can be used in the snap4city platform. DataSource This class represents a data table uploaded on the snap4city platform. DataTable This class represents any external service that is made available to snap4city platform users, allowing them to embed this service in a widget of a dashboard. ExternalService This class represents a group of data (cannot have applications or dashboards) Group This class represents any heatmap uploaded on the snap4city platform. Heatmap This class represents the IoT Applications available on the Snap5City platform. These applications are running node-red which allows a low-code approach to the development of data ingestion and simple data processing. IoTApp This class represents any IoT broker used to access a set of IoT Devices. IoTBroker 1 This class represents any IoT device available on the platform. IotDevice This class is used to describe each single device attribute of an IoTDevice in terms of dataType (e.g. integer), valueName (e.g. air_temperature), valueUnit (e.g. celsius degrees) and valueType (e.g. temperature). IotDeviceAttribute This class represents any IoT device model that are defined on the snap4city platform and used by IotDevices as a template. IotModel This class represents any KPI (Key Performance Indicator) that is generally available on the snap4city platform. KPI ManagerUser This class represents any micro service exposed by snap4city. MicroService This class represents any personal KPI that a user defined on the platform. MyKPI This class represents any Point of Interest defined by a user on the platform. MyPOI This class represents any personal data that the user defined on the platform. MyPersonalData This class represents an organization within a snap4city platform. Organization This class represents an origin destination matrix that has been uploaded/generated on the platform. OriginDestinationMatrix This class represents any Point of Interest available on the platform. POI This class represents a table with Points of Interests uploaded on the snap4city POITable This class represents any data analytic process implemented using R and exposing its functionalities using plumber. PlumberDataAnalytic This class represents any instance of the Portia web crawler running on the snap4city platform. PortiaCrawler This class represents any kind of processing element ProcessingThing This class represents any data analytic process implemented using python and exposing its functionalities using flask. PythonDataAnalytic RootAdminUser This class represents any sensor device which provides data to be shown in widgets. Sensor This class represents any storage facility. Storage This class represents a synoptic showing some data. Synoptic ToolAdminUser This class represents a traffic flow map uploaded on the platform. TrafficFlow This class represents a set of trajectories uploaded on the platform. Trajectories This class represents a typical time trend associated with a sensor value (e.g air temperature). TypicalTimeTrend This class represents any user registered on the snap4city platform User This class represents a group of users. UserGroup This class represents any process providing an interactive user interface. UserInterface This class represents a Web Feature Service exposed from a geoserver that can be used on the platform. WFS 1 This class represents any widget that is present in a dashboard. The widget can belong to only one dashboard. Widget This class represent any thing that is managed by the snap4city platform. s4cThing