Asset Annotation Service

The Asset Annotation Service (AS) allows experimenters, site managers and users of the OrganiCity facility to add annotations on top of all assets of the platform. The annotation process follows the tagging scheme used in many social networks to indicate the characteristics of the assets identified. To do this, users can use either one of the available web interfaces available in the context of OrganiCity or the API of the service. The annotations added to all assets of OrganiCity are available through the API of the service for experimenters to use and through the interfaces of OrganiCity for the users to browse.

Aiming at enhancing the urban data sources with useful information, OrganiCity developed this service to enable collaborative data annotation in the smart city context. The utilized data model and annotation services are flexible enough to enable various types of labels from online resources on the Web, social media and references to rich multimedia content online (images, video, etc.) to free-text labels or numeric values. A set of methods has been created for maintaining dynamic label categories, labels, and labeling of data.

Since the UDO is the main view of OrganiCity it provides a starting point for exploration of urban data across different city environments based on their Annotations and a perfect starting point for the generation of knowledge from the raw data streams.

Accessing data stored in the AS can be limited to the OrganiCity Experiment level if needed. Additionally, OrganiCity Experimenters can access the generated annotations that are part of their experiment or all the data stored in the OrganiCity facility.

References to the specification of the AS:

Data Model

In the rest of this section, we are going to present and describe the models used for annotating Assets in the context of OrganiCity.

The entities that are in involved in the creation of annotations are the following:

Annotation Model

The above image shows how 2 Assets of the OrganiCity facility are annotated with 2 Tags of a single TagDomain describing traffic in an OrganiCity site.

Experiment Model

Similarly, this image shows how a single Experiment uses a TagDomain provided by the OrganiCity facility that provides a simple and generic 3 level categorization high,medium and low.

Tag Domain Model

Finally, this image shows how a single TagDomain is used by two Sites in their basic Annotation Services (Patras and London). The TagDomain presented has 3 Tags to describe the sun light levels in the city.

Based on the roles of users in the OrganiCity facility a set of restrictions on accessing and using the AS apply and can be summed up in the following list:

Entity Descriptions

The parameters of the entities described above are presented in the following subsections:

Tag

{
    "id": 0,
    "name": "string",
    "urn": "string"
}

Example:

{
    id: 106,
    urn: "urn:tag:faulty",
    name: "faulty reading"
}

TagDomain

{
"description": "string",
"id": 0,
"urn": "string",
"services": [
    {
        "description": "string",
        "id": 0,
        "urn": "string",
              "user":"string"
    }
 ],
 "tags": [
    {
    "id": 0,
       "name": "string",
       "urn": "string"
    }
 ]
}

Example:

  {
  id: 104,
  urn: "urn:tagDomain:faultyReadings",
  description: "This is tag domain to classify readings into faulty or normal",
  tags: [
      {
          id: 106,
          urn: "urn:tag:faulty",
          name: faulty reading
      },
      {
          id: 105,
          urn: "urn:tag:normal",
          name: "normal reading"
      }
   ],
  services: [
      {
          id: 107,
          urn: "urn:service:environmentalMonitoring",
          description: "environmental monitoring",
          user:"372f3a46-0596-41cf-a038-a2845f06eb24"
      }
   ]
  }

Service

{
    "description": "string",
    "id": 0,
    "urn": "string",
    "user":"string"
}

Example:

{
    id: 107,
    urn: "urn:service:environmentalMonitoring",
    description: "environmental monitoring",
    user:"372f3a46-0596-41cf-a038-a2845f06eb24"
}

Experiment

{
    "description": "string",
    "id": 0,
    "tagDomains": [
        {
          "description": "string",
          "id": 0,
          "services": [
            {
              "description": "string",
              "id": 0,
              "urn": "string",
              "user": "string"
            }
          ],
          "tags": [
            {
              "id": 0,
              "name": "string",
              "urn": "string",
              "user": "string"
            }
          ],
          "urn": "string",
          "user": "string"
        }
      ],
    "urn": "string",
    "user": "string"
}

Annotation

{
    "annotationId": 0,
    "application": "string",
    "assetUrn": "string",
    "datetime": "string",
    "numericValue": 0,
    "tagUrn": "string",
    "textValue": "string",
    "user": "string"
}

Example:

{
    "annotationId": 0,
    "application": "57eab2c2ad0302ad0b5c92c6",
    "assetUrn": "urn:oc:entity:london:enableiot:fixed:98-4F-EE-00-0F-76",
    "datetime": "2016-10-21 09:01:12:123",
    "numericValue": 0,
    "tagUrn": "urn:tag:faulty",
    "textValue": "string",
    "user": "86d7edce-5092-44c0-bed8-da4beaa3fbc6"
}

Tutorials

For more information about how to interact with the Asset Annotation Service you can check out the following tutorials: