D2.4 - Final Models and Validation

Page 1

SmartSociety Hybrid and Diversity-Aware Collective Adaptive Systems When People Meet Machines to Build a Smarter Society

Grant Agreement No. 600584

Deliverable D2.4 Working Package WP2

Final Models and Validation Dissemination Level 1 (Confidentiality): Delivery Date in Annex I: Actual Delivery Date Status2 Total Number of pages: Keywords:

1

PU 31/1/2015 January 29, 2016 F 105 Provenance, Reputation, Accountability, Transparency, Scalability, Ride Share Application

PU: Public; RE: Restricted to Group; PP: Restricted to Programme; CO: Consortium Confidential as specified in the Grant Agreeement 2 F: Final; D: Draft; RD: Revised Draft


c SmartSociety Consortium 2013-2017

2 of 105

Deliverable D2.4

http://www.smart-society-project.eu


c SmartSociety Consortium 2013-2017

Deliverable D2.4

Disclaimer This document contains material, which is the copyright of SmartSociety Consortium parties, and no copying or distributing, in any form or by any means, is allowed without the prior written agreement of the owner of the property rights. The commercial use of any information contained in this document may require a license from the proprietor of that information. Neither the SmartSociety Consortium as a whole, nor a certain party of the SmartSocietys Consortium warrant that the information contained in this document is suitable for use, nor that the use of the information is free from risk, and accepts no liability for loss or damage suffered by any person using this information. This document reflects only the authors’ view. The European Community is not liable for any use that may be made of the information contained herein.

Full project title:

Project Acronym: Grant Agreement Number: Number and title of workpackage: Document title: Work-package leader: Deliverable owner: Quality Assessor: c SmartSociety Consortium 2013-2017

SmartSociety: Hybrid and Diversity-Aware Collective Adaptive Systems: When People Meet Machines to Build a Smarter Society SmartSociety 600854 WP2 Modelling Framework Final Models and Validation Luc Moreau, SOTON Michael Rovatsos, UEDIN Simone Fischer-H¨ ubner, KAU 3 of 105


c SmartSociety Consortium 2013-2017

Deliverable D2.4

List of Contributors Partner Acronym UEDIN UoS UoS UoS

4 of 105

Contributor Michael Rovatsos Heather Packer Luc Moreau Darren Richardson

http://www.smart-society-project.eu


Deliverable D2.4

c SmartSociety Consortium 2013-2017

Executive Summary This report summarises the results of work on WP2 tasks. It includes a summary of mechanisms, software and outcomes of preliminary validation experiments. We start by defining a set of requirements for computational modelling in the context of Hybrid and Diversity-Aware Collective Adaptive Systems (HDA-CASs) that take account of the specific, distinguishing properties and features of this class of systems. This is followed by describing the computational modelling methodology for HDA-CASs developed in the work package to fulfil these requirements. This methodology is based on an iterative process of establishing: 1. core vocabularies of concepts; 2. defining interaction models; 3. implementing services in a data-centric; 4. model-compliant way; 5. capturing the run-time of the operation in provenance data that can be mapped onto these models; and 6. adapting the initial design based on insights derived from provenance-based analysis. Subsequently, this methodology is exemplified by the SmartShare case study, where we review how these steps were performed for that particular system, which has already been fully implemented following our methodology, and is currently being deployed among realworld user communities. The remainder of the deliverable focuses on validation experiments that demonstrate the computational benefits of using a provenance-centric approach to modelling systems operation and evolution. It also focuses the ways in which the aggregation and explanation methods we have proposed provide powerful tools for: developers when implementing and analysing HDA-CAS; machine peers to adapt automated decisions to the observed evolution of the system; and for non-expert users to inspect the internal workings of the system in a human-readable way. We conclude with a reflection on achievements of the work package and lessons learnt, where we also comment on possible future improvements to the proposed methods.

c SmartSociety Consortium 2013-2017

5 of 105


c SmartSociety Consortium 2013-2017

Deliverable D2.4

Table of Contents 1 Introduction

7

2 Computational Modelling Methodology

9

3 Computational Modelling Infrastructure

11

3.1

CAS Vocabulary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.2

Scalable Provenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.3

Multiagent Coordination Protocols . . . . . . . . . . . . . . . . . . . . . . . 12

3.4

Explanation Techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.5

Privacy and Provenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

4 Experimental Results

17

4.1

prov template and Scalability in SmartShare . . . . . . . . . . . . . . . . 17

4.2

Patterns of Use in Provenance . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4.3

4.2.1

Identifying Provenance Patterns . . . . . . . . . . . . . . . . . . . . 18

4.2.2

Tool for Development . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Narrative Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

5 Achievements and Lessons Learnt

24

A HDA-CASs Vocabulary

30

B Templates

41

C Generating Narratives from Provenance Chains

84

D PROV-Template Evaluation

90

E URI Narrative Evaluation

95

F A Narrative of an Example PROV Summary

6 of 105

100

http://www.smart-society-project.eu


Deliverable D2.4

1

c SmartSociety Consortium 2013-2017

Introduction

The overall objective of WP 2 is to develop a modelling framework that provides the means to model the operation and dynamics of large-scale hybrid and diversity-aware collective adaptive systems (HDA-CASs). In order to take account of the specific properties of HDACASs in the process of computational modelling, the proof-of-concept models developed by WP 2 in the context of specific SmartSociety systems, as well as the more general methodology it proposes for modelling future HDA-CASs have to address a set of key requirements: 1. They need to respect hybridity, i.e. provide descriptions that are both machine- and human-readable and capable of capturing the entities and operations involved in hybrid social computations. In the work conducted in WP 2, this has been mainly achieved by making use of provenance data as the intermediate language shared by different peers and components in HDA-CASs. Provenance data provides us with a generic and lightweight language with clear semantics that support interoperability, and we have developed explanation and summarisation techniques to translate it to human-readable natural language. 2. They should address diversity, i.e. be flexible enough to support analysis by multiple stakeholders with different perspectives and interpretations. This is achieved by grounding the modelling framework in a data model that is based on a minimal shared ontological vocabulary, and by describing all relevant system operation in terms of this data model. This allows for the use of generic query mechanisms in order to generate different views of the data as required by a diverse set of stakeholders. 3. They should provide scalability in terms of reflecting complex decentralised interaction processes among large numbers of human and machine peers in a lightweight way that also facilitates inspection and analysis. This is supported by the provenance templates and aggregation mechanisms we have developed, and which allow for effective generalisation from large numbers of individual instances of operations observed in the system. 4. They should support transparency and accountability, and provide poly-centric mechanisms that promote shared responsibility, e.g. feedback and reputation. The first two properties are enabled by mapping the architectural and procedural model of c SmartSociety Consortium 2013-2017

7 of 105


c SmartSociety Consortium 2013-2017

Deliverable D2.4

HDA-CASs we have implemented directly onto a corresponding provenance model, so that a full trace of all relevant system operation is captured in provenance data. Feedback and reputation, on the other hand, are additional mechanisms that enable us to include human accounts of events occurring in the system (feedback), and further machine use of information derived from this human input (reputation) to adapt system behaviour.

5. They should support collectives, both in terms of collaborating teams and as units of analysis in terms of types and roles of participants and interaction processes between them;

6. They should support system-level adaptability by accounting for multi-faceted, multistakeholder analysis and linkage mechanisms to support the identification and response to emergent behaviour. This, again, is ensured by flexible analysis and querying mechanisms over provenance data, but also by including feedback and reputation information for further human and machine decision making in the system, which allows peers to take emergent patterns of behaviour into account.

This deliverable summarises the work completed within WP 2, to address the above requirements in the proposed modelling framework. Much of this work was performed within the context of the development of the SmartShare application in order to ensure grounding in a real systems context and realism of conceptual and abstract models, and the individual technical contributions that have been delivered have been previously documented in deliverables D 2.1, D 2.2, and D2.3. Here, we therefore focus on a summary of the main insights, and on validation results. We start by presenting the generalised modelling methodology extracted from designing and implementing the above components in the SmartShare scenario to satisfy the requirements in the list above (Section 2). The computational modelling infrastructure developed in SmartSociety that provides the tools for applying this methodology is presented in 3. Section 4 presents experimental results that serve to validate the proposed techniques against the initial requirements. We conclude with a reflection on lessons learnt (Section 5) from work on WP2, and a discussion of the wider implications of the results of the work package for the SmartSociety project. 8 of 105

http://www.smart-society-project.eu


Deliverable D2.4

2

c SmartSociety Consortium 2013-2017

Computational Modelling Methodology

In this section, we describe the methodology we have developed to support the development of solid engineering principles for HDA-CASs as far as computational modelling is concerned, in terms of design principles (mapping the requirements laid out in the previous section to concrete design elements), operational principles (the affordances of computational models when the system is in operation), and adaptation strategies (in terms of an iterative, observation-based engineering process model reflected in the methodology). At a general level, our methodology consists of the following steps: 1. Develop a specific vocabulary of agents, entities and activities to describe relevant processes in the HDA-CAS: This step defines the conceptual space within which the system will operate, and specifies what processes fall within the boundaries of the system. 2. Design the interaction model(s) underlying the social computations that should be supported by the HDA-CAS: In this step, the “protocols� that will govern collective interactions are specified in terms of communication between interacting peers, control flow of the collective coordination procedure, data access and synchronisation through shared state. 3. Create a data-centric implementation of the orchestration system: The orchestration system will enact the interaction models defined in the previous step, and it is important that its operations are defined in terms of manipulation of information expressed using the vocabulary defined for the HDA-CAS in question. 4. Map the vocabulary and design templates to capture the creation, modification and use of entities: The operations of the orchestration system (and those of any additional services operating on the primary data that drives the HDA-CAS) have to be mapped to a provenance model that will serve as the foundation for computersupported observation and analysis of the HDA-CAS. 5. Define querying and summarization functionalities for different stakeholders: These will produce the analysis facilities the system provides to human and machine peers for its analysis, and have to be adapted to the needs of the stakeholders involved, as well as to their interpretations (e.g. summaries for the platform operator might be different than for end users). c SmartSociety Consortium 2013-2017

9 of 105


c SmartSociety Consortium 2013-2017

Deliverable D2.4

6. Observe and validate HDA-CAS in operation and iterate through the above steps.

The individual steps in this methodology need to be performed in a domain-specific way for each individual CAS, and we have summarised how they were following in the development of the SmartShare application as a concrete use case described in Table 1 below. These steps have been described separately in previous deliverables in more detail, and demonstrate the main contribution of our methodology which is enabling engineers to support their own designs and implementations of systems that provide user-centric integration of data semantics and large-scale distributed interaction in HDA-CASs. EDIN

SOTON

IMAG

1. Core CAS Vocabulary Development a. Design the core vocabulary describing generalised terms applicable to all HDA-CASs 2. Component Design a. Design the interaction model for the social computation

b. Design the reputation service and its API

c. Design the interaction with Orchestrator and Reputation services

d. Add terms specific to the designed interaction models for the reputation, orchestrator and mobile application 3. Implementation a. Implement the orchestration service

b. Implement the reputation service

c. Implement of the SmartShare mobile application

4. Design Templates a. Refine vocabulary based on the implementation step 3. b. Design templates using the vocabulary 5. Define Summarization Functionalities a. Identify core elements used b. Identify core elements used to describe social computations to generate reputation for orchestration d. Define querying and summarization functionalities for different stakeholders, using the core elements identified in 5a., b. and c.

c. Identify core elements used in the UI

6. Iteration a. Observe and validate HDA-CAS in operation and refine the models by iterating through the above steps.

Table 1: Table showing the steps taken to develop the SmartShare application

10 of 105

http://www.smart-society-project.eu


Deliverable D2.4

3

c SmartSociety Consortium 2013-2017

Computational Modelling Infrastructure

This section provides an overview of the models, architectures, and implementations developed in WP 2. Together, these provide a set of scalable, linkable, semantic, distributed computation techniques that provide the scaffolding for the methodology discussed in Section 2. This section highlights that, though exemplified and specifically implemented using the SmartShare scenario in the previous section, the core contributions in terms of computational modelling, and the systems infrastructure to support them are in themselves domain-independent and reusable.

3.1

CAS Vocabulary

The core HDA-CAS vocabulary and its extension describes the core vocabulary and subtypes defining SmartShare specific agents, entities and activities (see Appendix A). Together with the ontologies and formal models it provides semantics for the entities described by this vocabulary. The additional subtypes for SmartShare enable the summarizations and explanations to provide individualised descriptions of SmartShare agents and activities. Specifically, the vocabulary focuses on describing three components: (1) agents within HDA-CASs, including users, peers, and collectives and their properties; (2) activities; and, (3) entities describing plans, tasks and messages.

3.2

Scalable Provenance

prov template3 , built on the prov language, provides scalability benefits and enables adaption for HDA-CASs using provenance information (supporting requirements 3 and 6 in Section 1), which include: 1. The scalability in its engineering, where the logging of values is separate from provenance generation (supporting our scalability Requirement 3 see Section 1). 2. The decoupling of the semantics from the variables’ values allows the values to be expanded by more than one template, which may or may not use all of the variables. This flexibility allows the template to adapt to changes in an HDA-CAS, whose vocabulary or computational model may change over time (supporting our adaptability Requirement 6 see Section 1). 3

prov template https://provenance.ecs.soton.ac.uk/prov-template/

c SmartSociety Consortium 2013-2017

11 of 105


c SmartSociety Consortium 2013-2017

Deliverable D2.4

3. The flexibility to annotate variables in a template using RDF types as extra attributes. This can be used align the provenance element’s types to other vocabularies. It can also be used to annotate variables that might contain private information, where different privacy policies and expansion strategy might be used when handling this variable (supporting our adaptability Requirement 6 see Section 1). 4. The reduction of overhead costs associated with network, storage and access (supporting our scalability Requirement 3 see Section 1). This is evaluated in Section 4.1. A prov template is designed to model a specific activity. The templates designed for the SmartShare application are documented in Appendix B, some of the templates are agnostic to the SmartShare application, however, they are specific to the type of service. For example, the UI templates can be used for other HDA-CASs UIs. Other templates used in SmartShare are application specific. For example, the orchestrator templates that are specific to SmartShare use vocabulary designed for the generation of ride plans and their negotiation.

3.3

Multiagent Coordination Protocols

Another central element of the technical infrastructure that enables our computational modelling methodology has been the definition of a formal framework to enact multiagent coordination protocols in a purely data-driven way, and the implementation of an orchestration system to build scalable and robust CASs. Essentially, this framework allows us to model distributed interactions (implementing the “Play-by-data� paradigm for social orchestration we have proposed) by way of a set of data stores which are modified by individual peers as they interact with each other via the orchestration system, which controls how these data stores are updated and kept consistent with each other (for example, if one peer decides to stop contributing to a joint activity, not only should other participants be made aware of this, but also should this peer no longer be able to effect changes on the shared state of the task she no longer contributes to). This re-interpretation of distributed multi-agent interaction as data is exemplified in figure 1. In deliverable D 2.2, we provided a formal semantics for the general (domain-independent) orchestration model by translating agent protocols to interlinked message stores. 12 of 105

http://www.smart-society-project.eu


c SmartSociety Consortium 2013-2017

Deliverable D2.4

REJECT(p, o, t) REJECT(a3 , o, t2 ) INFORM TASK(o, p, t) INFORM INVALID(o, p, t) REQUEST(p, o, I, G, C) REQUEST(a1 , o, I, G, C1)

INFORM TASK(o, {a1 , a2 }, t1 )

REQUEST(a2 , o, I, G, C2)

AGREE(p, o, t)

REQUEST(a3 , o, I, G, C3) ′

INFORM INVALID(o, a2 , t2 )

INFORM TASK(o, {a2 , a3 }, t2 )

AGREE(a2 , o, t2 )

REQUEST(a4 , o, I , G , C4 ) NO SOLUTIONS(o, p, I, G, C) NO SOLUTIONS(o, a4 , I ′ , G′ , C4 ) NO SOLUTIONS(o, a3 , I, G, C3)

AGREE(a2 , o, t1 ) AGREE(a1 , o, t1 )

Figure 1: Data-centric view of the interaction model underlying the SmartShare application (only the task composition and negotiation stages are shown). Each message type corresponds to a data store (document), where every individual message contributed by a peer is linked to subsequent messages that are causally connected to it. For example, tasks specified in INFORM TASK messages are linked to the task REQUESTs they correspond to. The orchestration service manages dependencies and ensures shared state is always kept consistent. All major operations of this service are stored by the provenance service, so that the provenance store provides a full up-to-date trace of the operation of the HDA-CAS.

In our implementation of SmartShare, these data stores are simply Web documents, and peers interact via a REST API. In this way, we can easily link the operations performed among peers (as mediated by an orchestration platform) to provenance data referring to the original documents. The semantics of the model, based on a distributed sequential state transition model that borrows much from formalisms used in the AI planning systems literature, enable us to translate interaction models expressed in multiagent protocol diagrams (which are similar to UML sequence diagrams) into a set of simple addition and deletion operations on “message stores” that correspond to the message types in the original protocol. This translation procedure underpinned implementation of the SmartShare orchestration system, where the social computation required for the ridesharing application was defined through interaction protocols, and then translated into a set of Web resources that capture, in this specific case, a distributed team formation activity that involves human peers posting requests and offers, a machine peer calculating possible joint tasks, and the participants of each task iteratively agreeing to it or rejecting it, and, where tasks are agreed, later posting feedback on the execution of these tasks. c SmartSociety Consortium 2013-2017

13 of 105


c SmartSociety Consortium 2013-2017

Deliverable D2.4

In terms of our overall modelling methodology, this step involves identifying all relevant agents, the activities they can perform, the constraints that govern dependencies between these activities, and the aspects of the distributed state of the orchestration process that have to be shared among them. In other words, it supplies the (dynamic) operation model for the HDA-CASs on the basis of the (static) conceptual model previously defined in the respective HDA-CAS vocabulary. It is worth pointing out that the techniques for scalable provenance summarised in the previous section are essential to ensure that the provenance models built for the system can be described at a similar level of abstraction as the orchestration model, so that, for example, message templates in our protocols correspond to parametrised provenance templates, and individual bindings for these can be managed in a scalable way, accommodating large numbers of individual instance operations without growing the respective provenance models in themselves. This is of vital importance if we want to make sure that our systems provide the scalability properties expected of realworld HDA-CASs.

3.4

Explanation Techniques

It is often necessary for HDA-CASs that make decisions based on provenance documents to communicate that provenance information to their human users in order to facilitate transparency and accountability. It would be possible to use graphical approaches for this, but, in many cases, it is more natural or appropriate to communicate this data either textually or verbally. In order to support this, systems have to be created that can convert the abstract, graphical representations of provenance into a linear, textual form. During this project, explanation techniques have been developed using the prov types and CAS types of prov elements along with their relationships to generate human-readable descriptions in order to support transparency and accountability (see Requirement 4 in Section 1). These descriptions can be embedded into CASs to show transparently how resources are used and generated by the system. They can also describe user behaviour, which helps increase users’ awareness of others and their actions, thus supporting accountability. As part of the work reported in the paper “Generating Narratives from Provenance Relationship Chains� [1] (see Appendix C), we identified that the biggest problems of utilising the structure and elements in provenance data were: 1. Identifying and presenting interesting facts to support a particular use case. For 14 of 105

http://www.smart-society-project.eu


Deliverable D2.4

c SmartSociety Consortium 2013-2017

example, a user can view an explanation about someone else to aid in their decision to share a ride with them, a narrative can provide evidence of reliability from the provenance based on features such as the number of feedback reports left by a user, or the number of times this user has interacted with SmartShare. 2. How to describe prov elements without referring to long complicated URIs, while exploiting their context and structure in a linguistic manner. It is worth noting that URIs, per the RFCs that define them, formally contain no linguistic information that would facilitate natural language generation. However, many system developers have created systems that mint meaningful URIs, for a number of possible reasons, such as increasing code maintainability. This means that if one were able to understand how this linguistic information is often informally encoded in URIs, then it would be possible to exploit this information for the purposes of natural language generation. The sentence templating and the generation of human-readable URIs approaches used to for explanation generation are described in Appendix C and Section E, they supports diversity by enabling provenance information about reputation to be consumed easily by humans. In extension to this work, we are currently developing sentence templating and human-readable URIs to support both accountability and transparency. We have planned an evaluation which will run in February, it will evaluate explanations from the provenance generated by the reputation service that will enable users to understand (1) how their reputation is generated, which takes into account the decay of feedback reports (supporting both accountability and transparency of the reputation service); (2) recommendations of which subject to choose, which are motivated by whether a subject routinely leaves feedback and whether they rate highly, which contrasts to using just a reputation rating to support decision making (supporting both user and machine accountability and transparency); and (3) how they are perceived by others, which aims to increase their awareness that their actions within an HDA-CAS has consequences (supporting the user’s accountability and the machine’s transparency).

3.5

Privacy and Provenance

During our collaboration with WP1, we identified general cases where the structure of a PROV document can leak sensitive information. This collaboration resulted in a draft paper[2] which was presented at the IFIP Workshop on Open Research Problems in Network Security. We also developed the following example, which exposes sensitive inforc SmartSociety Consortium 2013-2017

15 of 105


c SmartSociety Consortium 2013-2017

Deliverable D2.4

mation, based on theSmartShare scenario. Alice has a SmartShare receipt she wants to claim for, but Bob doesn?t want his destination to be made public. Provenance is published when: Alice tweets that she is traveling to London; Bob’s generates a diary entry exposing that he is traveling with Alice; and the company Alice works for publishes the details of the claim because of their transparency policy (see Figure 2). The combined provenance (see Figure 3) exposes that Bob travelled to London. We will explore how to reduce exposing sensitive information from provenance in WP1.

Figure 2: Bundles showing the provenance published when Alice tweets, Bob’s calendar and Alice’s claim

Figure 3: Combined provenance documents

16 of 105

http://www.smart-society-project.eu


Deliverable D2.4

4

c SmartSociety Consortium 2013-2017

Experimental Results

In this section, we describe lab-based experiments and their results to validate that our methodology supports the design of HDA-CASs and their analysis. In our validation experiments, we use small-scale simulated scenarios with the SmartShare application to demonstrate how the requirements from Section 1 are supported by our methods. Naturally, as large-scale real-world data is not available yet, we will not be able to fully evaluate the scalability-related requirements through experimental evaluation. However, many of these issues have already been validated in simulation experiments and do not rely on having real-world data. A full evaluation will have to be postponed until the real-world SmartShare deployment (which is currently in progress) has produced sufficient data. Specifically, in this document we evaluate the following hypotheses: 1. prov template provides a significant reduction to networking overheads by reducing the number of bytes sent over the network. 2. The Aggregator of Provenance Types (APT) [3] approach enables the evaluation of user behaviour, specifically, it can support the evaluation of splices of the population, such as drivers and commuters, and casual users and daily commuters. 3. The APT approach enables the visual evaluation of resources used in social computations. 4. URIs in provenance data contribute to its illegibility and transforming the information in the URI can provide a suitable substitute in explanations. 5. Explanations generated using our application-independent provenance explanation system provide more readable sentences compared with translating a triple directly into English.

4.1

prov template and Scalability in SmartShare

In this section, we summarise our evaluation (see Appendix D) where we compare the network costs of using prov template against prov documents (see Hypothesis 1). We investigated the sizes of provenance templates, bindings and expansions for the SmartShare application in three different languages used to express provenance. In our investigation, we found that there are three factors which influenced their size: (1) language used to c SmartSociety Consortium 2013-2017

17 of 105


c SmartSociety Consortium 2013-2017

prov APT

Deliverable D2.4

Nodes 259 54

Edges 751 68

Table 2: The number of nodes and edges in the generated provenance and its summarization express it; (2) characteristics of a template; and (3) types of data expressed in the bindings. On average using prov template reduces the number of bytes sent by 26.75% 45.03% 42.96% for TTL, provn, and JSON, respectively.

4.2

Patterns of Use in Provenance

In this section, we present examples of provenance summaries generated from data collected from the SmartShare application. We first discuss the reduction of nodes in a provenance graph and its summary for a two-person ride. We then evaluate Hypotheses 2 and 3, where we aim to show that the APT approach enables the evaluation of user behaviour as well as the visual evaluation of resources used in social computations. The Aggregator of Provenance Types (APT) generates provenance summary reports, which provide an overview of the provenance generated by an application. In the case of the SmartShare application, provenance summaries describe the actions of users and how response objects are used. On average for a two-person ride, the summarization approach reduces the number of nodes and edges by 4.8 and 11.04 times, respectively (see Table 2). This reduction enables users to review the patterns in provenance which can show the frequency of activities and entities in relation to others. A narrative detailing the summary of a two-person ride is given in Appendix F. In the following subsections, we discuss features in the provenance summaries that show the difference between different types of user behaviour and how it can be used a development tool for HDA-CASs (supporting Requirements 2 and 6, respectively, as described in Section 1). 4.2.1

Identifying Provenance Patterns

APT can be used to provide an insight into patterns in provenance, so that these patterns can be used to classify the provenance’s subjects and their actions. Automatic identifications of these patterns would allow CASs to adapt their behaviour. For example, the 18 of 105

http://www.smart-society-project.eu


Deliverable D2.4

c SmartSociety Consortium 2013-2017

orchestrator uses the reputation rating to generate matches, however, if the system observed that the reputation was not frequently used when a user accepts a ride, then the orchestrator could reduce the influence of the reputation when generating future matches. The summaries can be generated to provide an overview of the whole CAS, one or more of its components, and provenance generated by a particular user’s or set of users’ actions. The output of APT can be adapted by specifying which element types can be featured or collapsed together. For example, FeedbackReports and ReputationReports can both be described as Report types and prov entities, and can be collapsed together using the Report or Entity type. Generalising feedback and reputation reports would reduce the number of elements on the summary, which may be useful when looking at other factors. However, if evaluating the use of entities of type ReputationReports then it is useful to use this level of granularity of types. Currently, APT is adaptable through using a SPARQL query which categorises each element in a prov document using its type defined in its extra attributes. The data collected during the three Italian deployments of SmartShare will be used to compare the following: 1. Daily commuters and casual travellers - Daily commuters’ and casual travellers’ behaviour will be evaluated using APT. Differences of behaviours between these types of commuters and casual travellers will be observable in summaries, which will highlight frequencies of user’s actions and their actions’ results. In order to analyse the users’ behaviour, we will focus our analysis to the UI’s provenance because it provides details about the users’ behaviour, where in contrast the orchestrator and reputation services provide details about the generation of resources related to them (ride requests, rides, feedback reports, etc). The UI’s expanded provenance documents will be archived using the ProvBindings service. We then identify all of the users4 that the provenance references using a script, which runs the a SPARQL query used to classify the prov element’s types for each identified user. Each SPARQL query will only summarise provenance about a specific user. In order to analyse a user’s behaviour ground truth provenance summaries are required for daily commuters and one-time travellers. We will compare the similarity of a user’s summary with the ground truth. Identifying whether the patterns for 4

We only store a hash of the users’ name in the provenance.

c SmartSociety Consortium 2013-2017

19 of 105


c SmartSociety Consortium 2013-2017

Deliverable D2.4

daily commuters and one-time travellers are dramatically different could indicate that each type of users could benefit from a UI that supports these two types of users. 2. Drivers and passengers - The behaviours of drivers and passengers will also be observable in summaries. We will analyse differences in their behaviour, summaries for both drivers and passengers will be compared. The summaries will enable us to observe differences in their interactions with the UI, where summary patterns are created when users view pages in a particular order which results in specific types. We will investigate the frequency with which users check whether there are available rides and the frequency of successful requests. In order to analyse the commuters and drivers, we will generate provenance summaries from the UI’s expanded bindings. We focus our analysis on the UI’s provenance because it provides the detail we require to analyse the features described in the above paragraph. The UI’s expanded provenance documents will be archived using the ProvBindings service. The bindings will then be classified using a SPARQL query, which matches whether a provenance document refers to a new offer page or new search. This, in turn, indicates that the user is a driver or commuter, respectively. The differences identified in this analysis could be used to influence the mechanisms specifically for drivers and passengers. For example, if the provenance summary shows that passengers submit more ride requests and after investigating the ride plan resources it reveals that they haven’t been matched to a plan because of their ride preferences, a mechanism to show ride offers to passengers that are a close match to their parameters could increase their success. 3. Viewing reputation vs. not viewing reputation - SmartShare application users have the choice to view reputation before they accept a ride. Provenance summaries show whether reputation has been used and the frequency of its use in relation to the number of times the accept a ride page is viewed. Figure 4 shows an extract from a provenance summary showing provenance generated by the UI, and is focused on the view where they can select which rides to accept. These provenance summaries are generated from a two-person ride where the only difference is that one set of users viewed reputations and the others do not. In more detail: 20 of 105

http://www.smart-society-project.eu


Deliverable D2.4

c SmartSociety Consortium 2013-2017

(a) Nodes 22 and 16 in Figures 4b and 4a, respectively, are the summary nodes for the page where the user can select to view a user’s reputation before agreeing to share a ride with them. (b) Node 18 in Figure 4b contains responses from the reputation and orchestrator which are required when viewing reputation, there is no such node in Figure 4a. The patterns in Figure 4 are general patterns when observing the use of reputation, specifically where a node representing the page to accept a ride is summarised (Nodes 22 and 16 in Figures 4b and 4a, respectively) and this page is derived from a set of responses (Node 18 in Figure 4b) if the user decides to view the reputation of potential ride participants. In order to understand the trends of use of reputation information, the summary will connect the view and response with a weighted edge. If the edge is the same width as the others surrounding it, then this indicates that users typically view reputation. If it is thinner, then they do not. This pattern can be detected in the provenance graph algorithmically by using the APT’s summary output by: (a) Querying whether there is a node n1 of type CAS:Response which was derived from a node n2 with type CAS:ReputationReport, where n1 is connected by the was derived from relationship to node n3 with type CAS:View was generated by a node n4 of type CAS:View. (b) Comparing the weight of both the was generated relationship between n3 and n4 and the was derived from the relationship between n1 and n3 , to analyse trends in the use of reputation reports. 4.2.2

Tool for Development

The APT provides an insight into the workings of an application and can be used to debug and optimise code. During the development phase, inconsistencies and irregularities in the summaries may occur because of problems with the templates and bindings, issues in the code, or unexpected and unindented behaviour. Identifying and investigating these inconsistencies and irregularities in summaries supports debugging and code optimisation. For example, a summary that shows API calls to other services can be used to visually evaluate the frequency of calls made in relation to the other activities and could be used c SmartSociety Consortium 2013-2017

21 of 105


c SmartSociety Consortium 2013-2017

Deliverable D2.4

(a) Without users viewing reputation.

(b) With users viewing reputation.

Figure 4: Extract of provenance summary of users selecting rides to influence caching strategies. Specifically, APT has supported the debugging and code optimisation of SmartShare components to address the following issues: 1. The UI made unnecessary calls to the orchestrator and reputation managers when a user first logs in. This was indicated by the provenance summary in Figure 5, where the reputation manager generates provenance showing that a response is generated and there are no relationships connecting it to entities that the UI or orchestrator are associated with. This indicated that there was an issue, however, it did not indicate which agent was responsible for making the call. Identifying which component was responsible for making the call was determined by examining the sequence of provenance bindings submitted to the provenance store. 2. The reputation values were not being refreshed during negotiation, only when feedback was submitted. This was indicated by the provenance summary in Figure 6, where no calls were made to the reputation manager during the organisation of a ride. The lack of calls made to the reputation manager for one ride may not show that there is a problem because the UI may cache values for optimisation. However, over a period of observation calls for requesting reputation, there was only one which 22 of 105

http://www.smart-society-project.eu


Deliverable D2.4

c SmartSociety Consortium 2013-2017

Figure 5: This provenance graph shows that there is no connection between the response from reputation and the UI that made the call.

happened after feedback submission.

Figure 6: This provenance graph shows that there were no calls to the reputation manager during the organisation of a two-person ride.

3. Unexpanded variables in an expanded template and binding indicate that there may be issues with these unexpanded values submitted in a binding. When a variable is unexpanded, the APT approach throws an exception. An unexpanded variable may be caused when a variable is not passed to the binding correctly, or there was no resource created and hence there is no URI to reference it. This was the case when the orchestrator responded to an API call requesting ride requests that a user is attributed to. Specifically, there was an unexpanded variable in the ride request call for the orchestrator. This occurred because the call did not match the specification in the documentation, and resulted in a change of the specification, where a ride request was not always used to generate a response. c SmartSociety Consortium 2013-2017

23 of 105


c SmartSociety Consortium 2013-2017

Deliverable D2.4

4. Similar to unexpanded variables, empty values may be caused when a variable is not passed to the binding correctly, or there no resource was created and hence there was no URI to reference it. In the case shown in Figure 7, the unexpanded variable highlighted that there was a caching issue, where the reputation value (node T 33(3)) did not capture the resource’s URI or its freshness, so that it could be periodically refreshed.

Figure 7: Node T 33(3) is a reputation report that is not derived from another entity.

4.3

Narrative Evaluation

In this section, we summarise the results from our evaluation (see Appendix E) of the natural language generation which utilises the structure of the URIs in a provenance record to describe that record. This evaluation enabled us to investigate the legibility of URIs used in Provenance (see Hypothesis 4), and the generation of sentences using our applicationindependent provenance explanation system compared against a direct translation of a triple (see Hypothesis 5). Our study showed that our system (which exploits the linguistic information in URIs) performs significantly better across all evaluated dimensions (grammatical correctness, fluency, and ease of understanding), but most prominently in the perceived fluency.

5

Achievements and Lessons Learnt

In this section, we detail our achievements, reflect on lessons learnt and what we would do differently with hindsight. Our motivation for sharing our lessons learnt is to support 24 of 105

http://www.smart-society-project.eu


Deliverable D2.4

c SmartSociety Consortium 2013-2017

future HDA-CASs with developing their own specialised vocabularies and enable them to benefit from the tools we developed. During WP2, we achieved various implementations that support the transparency and accountability, and tools to support scalability of generating, storing, and sending provenance data. Our main achievements include the development of: 1. Tools to summarise provenance types supporting accountability and HDA-CASs development; 2. Approaches to generate narratives based on provenance; 3. A provenance enabled Reputation service; and 4. The ProvBinidngs service to manage a HDA-CASs provenance templates, bindings, and expansions. During the development of these tools, approaches and services, we identified the following lessons and what we would do differently to take advantage or reduce the effect of any issues we encountered: 1. The provenance summaries were surprisingly informative when viewing how resources are used across multiple components in the SmartShare application as a whole. They were used to identified potential issues with missing and redundant API calls and issues related to the derivation of a resource (see Section 4.2.2). Viewing the summaries enabled WP2 to better understand the processes of the SmartShare components and discuss code optimisation with the project’s partners. The APT approach can be used by developers as a tool to verify how resources are used in an application and debugging tool for across provenance enabled services. 2. The current implementation of the Reputation and ProvBindings service could benefit from improvements. During the development of SmartShare, issues occurred using these services when they received JSON objects not containing the correct keys and empty binding variables. These errors should have been dealt with at the API level, where posted data structures should be verified. In the case of the ProvBindings service, this would require a wrapper for each template to verify that a binding contains a binding variable for each of the variables defined in a template, and that these binding variables are the correct type. c SmartSociety Consortium 2013-2017

25 of 105


c SmartSociety Consortium 2013-2017

Deliverable D2.4

3. The URIs used to expose resources within a HDA-CAS are important because they have knock-on effects on the provenance and provenance summaries. Specifically, provenance uses URIs to refer to resources and makes use of prefixes and local names, long local names make the provenance hard for humans to read and parse. In order to support privacy, the URIs should not contain private information such as usernames because this will be exposed by the provenance. For the SmartShare application, the ProvBindings service had to parse bindings and their expansions to anonymise usernames to preserve privacy. This added unnecessary load on the provbinidngs service, because it had to load each binding and identify usernames using a regular expression, and then using another regular expression replace all references to the user in the binding. This approach requires prerequisite knowledge about the structure of the URIs used in order to write bespoke regular expressions, and hence this can not be agnostic for other applications. Heuristics for URIs used in provenance would improve readability and reduce privacy issues. 4. A SPARQL query is used to adapt the output of the APT’s approach for analysis. These queries allow the summaries to be extremely adaptable, however, this level of adaptability may not be necessary for simple tasks. They can be complicated to write and are specific to an application because they are based on its vocabulary. A simple but general approach would be to use a query that classifies all types declared in the provenance, however in some cases this might provide too many nodes in the summary to clearly compare important features. Tools to specify which prov elements should be features would enable this to be more accessible to developers. 5. Better tools to check the well-formed-ness of provenance data would have enabled faster development. In the provenance during the development of the SmartShare application, all of the bindings submitted were valid however, when the bindings were combined there were issues with event ordering, circular derivations and specialisation constraints. Many of these issues were caused by the variables being used as both a request and a response. Tools that identify which nodes might be causing such issues and which bindings they originate from would better support developers. Regarding the overall computational modelling framework, it is important to highlight how our overall methodology follows a principled approach to HDA-CAS development where the formal specification of the system is rigorously mapped onto provenance models that are used for explanation, analysis, and adaptation. Besides the obvious benefits 26 of 105

http://www.smart-society-project.eu


Deliverable D2.4

c SmartSociety Consortium 2013-2017

of this approach for supporting transparency and accountability, and the advantages it offers in terms of defining functionalities that support the “social fabric” for these types of systems (e.g. a reputation service capable of explaining its assessments and decisions in a transparent and human-readable way), our approach pushes the envelope of achieving a modelling approach where the system “is” the model plus the run-time data that can be interpreted in terms of this model. This not only facilitates principled development and adaptation, but also supports the hybridity and diversity aspects of HDA-CASs. It enables stakeholders to inspect all definitions of concepts used in the computational model, analysis of the data produced by the system by exploiting a direct mapping from this data to conceptual models with formal semantics in all stages of processing, using both machine- and human-readable representations. We believe that this approach has the capacity to enable future modalities of poly-centric, participatory co-design and coevolution of HDA-CASs by allowing non-experts to look “under the hood” of a complex HDA-CAS.

c SmartSociety Consortium 2013-2017

27 of 105


c SmartSociety Consortium 2013-2017

Deliverable D2.4

References [1] H. S. Packer and L. Moreau, “Generating narratives from provenance relationship chains,” in Proceedings of the 2015 Workshop on Narrative & Hypertext. ACM, 2015, pp. 37–41. [2] J. Reuben, L. A. Martucci, H. S. Packer, S. Fischer-Hbner, and L. Moreau, “Privacy and provenance: Challenges, requirements and open problems,” IFIP Workshop on Open Research Problems in Network Security. IFIP. Draft Version, 2015. [3] L. Moreau, “Aggregation by provenance types: A technique for summarising provenance graphs,” arXiv preprint arXiv:1504.02616, 2015. [4] A. Ratnaparkhi et al., “A maximum entropy model for part-of-speech tagging,” in Proceedings of the conference on empirical methods in natural language processing, vol. 1.

Philadelphia, USA, 1996, pp. 133–142.

[5] P. Treebank, M. P. Marcus, B. Santorini, and M. A. Marcinkiewicz, “Building a large annotated corpus of english: the penn treebank,” 1993. [6] J. C. Lester and B. W. Porter, “Developing and empirically evaluating robust explanation generators: The knight experiments,” Computational Linguistics, vol. 23, no. 1, pp. 65–101, 1997.

28 of 105

http://www.smart-society-project.eu


Deliverable D2.4

c SmartSociety Consortium 2013-2017

Appendix The following appendices are taken from other documents and are presented to support the material presented in the deliverable.

c SmartSociety Consortium 2013-2017

29 of 105


c SmartSociety Consortium 2013-2017

A

Deliverable D2.4

HDA-CASs Vocabulary

30 of 105

http://www.smart-society-project.eu


c SmartSociety Consortium 2013-2017 cas:ReputationManager

cas:UserInterface

cas:IncentiveManager

cas:CompositionManager

cas:NegotiationManager

cas:OrchestrationManager

cas:Collective

cas:Agent

cas:User

cas:Peer

cas:Record

cas:API

cas:View

cas:ReputationReport

cas:FeedbackReport

cas:Response cas:Request

cas:Message

cas:Protocol

cas:Plan

cas:Task

cas:Call

cas:Acknowledgement

cas:Identity cas:Capability

prov:Agent

prov:Activity

prov:Entity

cas:Activity

cas:SendingResquest

cas:SubmittingRequest

cas:SendingResponse

cas:ChangingView

cas:GeneratingComposition

cas:PostingTaskRequest

cas:NegotiatingTasks

cas:StoringTask

cas:AuthenticatingIdentity

cas:ComposingTasks

cas:GeneratingReputation

cas:StoringFeedback

cas:SubmittingFeedback

Deliverable D2.4 c SmartSociety Consortium 2013-2017

Figure 8: CAS Vocabulary for the SmartShare demonstrator taken from Deliverable 2.2. The yellow nodes denote prov dm terms, the pink nodes with black text are core to HDA-CASs, the dark red nodes denote terms used by the reputation manager, the dark blue nodes denote terms used by the orchestration peer, the green nodes denote terms that are used by the UI, and the pink nodes with white text are terms that are non specific to peers but are not in the core vocabulary.

31 of 105


12/22/2014

The SmartSociety CAS Namespace

The SmartSociety CAS Namespace Unofficial Draft 22 December 2014 Editors: Heather Packer, University of Southampton Luc Moreau, University of Southampton This document is licensed under a Creative Commons Attribution 3.0 License.

Introduction The namespace name http://purl.org/cas/ns# defines terms for the SmartSociety Collective Adaptive Systems (CAS). The index below provides links directly to the definition of the terms within the above specifications.

Index A|C|F|I|K|L|M|O|P|Q|R|S|U|V|W

A Acknowledgement An acknowledgement is a message that is passed between two agents to signify acknowledgement, or receipt of a response, which is part of a communications protocol. cas: Acknowledgement

Activity An activity is the condition in which things are happening or being done. cas: Activity

Agent file:///Users/heatherpacker/cas/landing-page.html

1/9


12/22/2014

The SmartSociety CAS Namespace

An agent is anything that can possibly perform an activity. Alternatively, anything that has capabilities. cas: Agent

API A api is a set of specifications for calls that can be processed by a peer. cas: API

AuthenticatingIdentity Authenticating identity is an activity that authenticates a user. cas: AuthenticatingIdentity

C Call A call is a signal transmitted to a peer over a computer network. cas: Call

Capability A capability is a prospective, though not necessarily planned or agreed, activity. cas: Capability

ChangingView Changing view is an activity that changed the view of a user interface. cas: ChangingView

Collective A collective is an agent that consists of multiple member agents. cas: Collective

ComposingTasks file:///Users/heatherpacker/cas/landing-page.html

2/9


12/22/2014

The SmartSociety CAS Namespace

Composing tasks is an activity that may be comprised of the following activities authenticating identity, computing composition and computinginvalidtasks. cas: ComposingTasks

CompositionManager A Composition Manager A composition manager is a peer which specialises in composing tasks by searching and matching relevant peers and computing plans for a task. cas: CompositionManager

ComputingComposition Computing composition is an activity that computes a set of valid tasks given constraints or negotiation inputs. cas: ComputingComposition

ComputingReputation Computing reputation is an activity that is run by the reputation manager when a feedback report is submitted, it computes a reputation report for all the subjects referred to by the submitted feedback report. cas: ComputingReputation

F FeedbackReport A feedback report is a report about a subject that contains a set of value rating categories. For example, "star rating = 4.3". cas: FeedbackReport

I Identity file:///Users/heatherpacker/cas/landing-page.html

3/9


12/22/2014

The SmartSociety CAS Namespace

Agents, users, peers all have identities. An unauthenticated user gets assigned an identity automatically. cas: Identity

IncentivesManager A incentives manager is a peer that specialises in providing incentives for peers to participate in tasks. cas: IncentivesManager

M Message A message is a piece of information exchanged between agents. cas: Message

N Negotiatingtask Negotiating task is an activity that submits a task which may alter other tasks, it may comprise of an authenticating identity and storing task activities. cas: Negotiatingtask

NegotiationManager cas: NegotiationManager

O file:///Users/heatherpacker/cas/landing-page.html

4/9


12/22/2014

The SmartSociety CAS Namespace

Opinion An opinion is a quantitive value of the estimation of a subjects worth based on feedback categories about it. either an activity, agent, peer, user, or collective, that is being discussed, described, or dealt with in the context of feedback reports and reputation reports. cas: Opinion

OpinionReport An opinion report is a reputation report, which contains a single key value pair and binds an opinion to a value. The value is an aggregation of ratings from a set of reputation topics. cas: OpinionReport

OrchestrationManager An orchestration manager is a peer, which specialises in coordinating the interaction between other peers. cas: OrchestrationManager

P Peer A peer is a software agent in a SmartSociety system that represents another agent. cas: Peer

Plan A plan is a specification for the execution of a task. cas: Plan

PostingTaskRequest Posting task request is an activity that posts a task to orchestration manager. cas: PostingTaskRequest

file:///Users/heatherpacker/cas/landing-page.html

5/9


12/22/2014

The SmartSociety CAS Namespace

Protocol A protocol is a collection of plans that involve communications between peers. cas: Protocol

R ReputationManager A reputation manager is a peer, which specialises in storing feedback about subjects and generating reputation and opinion reports about subjects. A view is an entity pertaining to a view of a user interface. cas: ReputationManager

ReputationReport A reputation report is a report about a subject that contains a set of value rating categories. For example, a subject has been rated with a set of star ratings, and the average of those star ratings are "average star rating = 4.3". cas: ReputationReport

RequestingOpinion Requesting opinion is an activity that requests a opinion report from the reputation manager. cas: RequestingOpinion

Request A request is a call that is used to request information from a service. cas: Request

Respond A respond is an activity that is used to respond to an API call. cas: Respond

Response file:///Users/heatherpacker/cas/landing-page.html

6/9


12/22/2014

The SmartSociety CAS Namespace

A response is an entity that is computed in response to a request. cas: Response

S SendingMessage A sending message is the constituent of a protocol: it involves information exchange. cas: SendingMessage

SendingNegotiationResponse Sending negotiation response is an entity that contains the response to a negotiating tasks. cas: SendingNegotiationResponse

SendingRequest Sending request is an activity that sends a request to peer. cas: SendingRequest

SendingResponse Sending response is an activity that sends a response to peer. cas: SendingResponse

StoringFeedback Storing feedback is an activity used by reputation manager to store a feedback report within it. cas: StoringFeedback

StoringTask Storing task is an activity that stores a task locally. cas: StoringTask file:///Users/heatherpacker/cas/landing-page.html

7/9


12/22/2014

The SmartSociety CAS Namespace

SubmittingTaskRequest Submitting task request is an activity that submits a task, it may comprise of an authenticating identity and storing task activities. cas: SubmittingTaskRequest

SubmittingFeedback Submitting feedback is an activity that submits a feedback report to the reputation manager. cas: SubmittingFeedback

Subject A subject is either an activity, agent, peer, user, or collective, that is being discussed, described, or dealt with in the context of feedback reports and reputation reports. cas: Subject

T Task A task is a potential activity that involves capabilities, potentially contributed by several agents. cas: Task

TaskRequest A task request is a request for a potential activity that involves capabilities, potentially contributed by several agents. cas: TaskRequest

U file:///Users/heatherpacker/cas/landing-page.html

8/9


12/22/2014

The SmartSociety CAS Namespace

User A user is a person who is using a SmartSociety system. cas: User

UserInterface A user interface is a software component that allows a user to view information in a peer and interact with it through API calls. cas: UserInterface email address here $Revision: 1.1 $ of $Date: 2013/04/29$


Deliverable D2.4

B

c SmartSociety Consortium 2013-2017

Templates

c SmartSociety Consortium 2013-2017

41 of 105


Ride Share Templates

April 23, 2015


Contents 1 Templates and Bindings 1.1 Basic Template and Binding Example . . . 1.1.1 Template . . . . . . . . . . . . . . . 1.1.2 Binding . . . . . . . . . . . . . . . . 1.2 Namespaces . . . . . . . . . . . . . . . . . . 1.3 Considerations for Namespaces and Prefixes

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

2 2 2 2 3 3

2 Orchestrator 2.1 Submitting Task and Task Requests . . . . . . . . . 2.1.1 Submitting Task Template . . . . . . . . . . 2.1.2 Submitting Task Request Template . . . . . . 2.2 Composing Tasks . . . . . . . . . . . . . . . . . . . . 2.2.1 Composing Task Template . . . . . . . . . . 2.2.2 Composing Task Template without Opinions 2.3 Task Negotiation . . . . . . . . . . . . . . . . . . . . 2.3.1 Task Negotiation Template . . . . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

5 5 5 9 13 13 18 21 21

1

. . . . .

. . . . .

. . . . .

. . . . .


Chapter 1

Templates and Bindings This Chapter introduces how to use PROV Template1 for Ride Sharing scenarios.

1.1

Basic Template and Binding Example

1.1.1

Template

The following template contains two var:composition_manager and var:task, the template is written in the provn format. document prefix ex <http://example.org/> prefix var <http://openprovenance.org/var#> bundle ex:b agent(var:composition_manager) entity(var:task) wasAttributedTo(var:task, var:composition_manager) endBundle endDocument

1.1.2

Binding

The following provenance binding defines variables for var:composition_manager and var:task. The binding is written in turtle2 which will be the format used to submit bindings for ride share. @prefix @prefix @prefix @prefix @prefix @prefix

prov: <http://www.w3.org/ns/prov#> . orchestrator: <http://www.rideshare-orchestrator.com/> . rp: <http://www.rideshare-orchestrator.com/ridePlans/> . tmpl: <http://openprovenance.org/tmpl#> . var: <http://openprovenance.org/var#> . xsd: <http://www.w3.org/2001/XMLSchema#> .

var:composition_manager a prov:Entity ; tmpl:value_0 orchestrator:comp . 1 PROV 2 Turtle

Template: https://provenance.ecs.soton.ac.uk/prov-template/#namespaces http://www.w3.org/TR/turtle/

2


var:task a prov:Entity ; tmpl:value_0 rp:203 ; tmpl:value_1 rp:122 .

The black text will remain the same for all bindings for the example template. The dark red text refers to the namespaces introduced in the bindings which are not present in the template. Specifically, @prefix orchestrator: <http://www.rideshare-orchestrator.com/> . @prefix rp: <http://www.rideshare-orchestrator.com/ridePlans/> .. The namespace’s prefixes are used before the variables. The blue text are the values assigned to the variables defined in the template, comp is assigned to var:composition_manager where the namespace is orchestrator, and 122 and 203 is assigned to var:task where the namespace is rp. It is worth noting that it you can create more than on instance of a variable, which is indicated with green font. This may occur when an activity produces more than one entity, for example a composition activity might generate two plans.

1.2

Namespaces

The namespaces presented in Table 1.1 are used in this document: Prefix cas prov tmpl var xsd rideserver rideservice view orchestrator rr rp reputation feedback op

URI http://smartsociety-project.github.io/cas/# http://www.w3.org/ns/prov# http://openprovenance.org/tmpl# http://openprovenance.org/var# <http://www.w3.org/2001/XMLSchema# http://rideshares.info http://rideshares.info/OpenRideServer-RS/ http://rideshares.info/OpenRideServerRS/view/ http://168.144.202.152:3000/ http://www.rideshareorchestrator.com/rideRequests/ http://www.rideshareorchestrator.com/ridePlans/ http://pat.ecs.soton.ac.uk/ http://pat.ecs.soton.ac.uk/application/ 1/feedback/ http://www.pat.ecs.soton.ac.uk/rs/ application/1/reputation/

Namespace Description The cas vocabulary. Prov Provenance templates Provenance variables XSD The UI. The UI’s service. The UI’s views. The orchestration peer. Ride requests. Ride plans. The reputation manager. Feedback reports. Reputation.

Table 1.1: Namespaces used in the Ride Share demonstrator. These namespaces are used as examples in the templates and bindings, and the namespaces will need to be altered in the bindings submitted by different components and deployments so that they are correct.

1.3

Considerations for Namespaces and Prefixes

1. The URI namespace you choose for your vocabulary should be a Web address. 2. Keep prefixes short and consistent. For example, this document uses op as a prefix to http://www.pat.ecs.soton.ac.uk/rs/ application/1/reputation/ 3


for conciseness. However, in deployment we will need to op1 as a prefix to http://www.pat.ecs.soton.ac.uk/rs/application/1/reputation/, and op2 as a prefix to http://www.pat.ecs.soton.ac.uk/rs/application/2/reputation/, to denote the dierent applications.

4


Chapter 2

Orchestrator 2.1

Submitting Task and Task Requests

A submission of task occurs when a task is submitted to the orchestrator.

2.1.1

Submitting Task Template

This template describes when the orchestration peer receives a ride task.

5


Figure 2.1: Template for posting ride tasks.

6


Submitting Task Template Variable var:orchestration _manager

Type cas:OrchestrationManager

var:submitted_request

cas:Task

var:task

cas:Task

var:receiving_task_request

cas:SubmittingTaskRequest

var:sending_response

cas:SendingResponse

var:acknowledgement

cas:Acknowledgement

var:acknowledgement_code

cas:Acknowledgement

var:rp_version

cas:task_version

var:rp_id

cas:task_id

var:rp_comments

cas:task_comments

var:rp_route

cas:task_route

var:rp_priceRange

cas:task_priceRange

var:rp_desDateTimeWindowHigh

cas:task_desDateTimeWindowHigh

var:rp_desDateTimeWindowLow

cas:task_desDateTimeWindowLow

var:rp_depDateTimeWindowHigh

cas:task_depDateTimeWindowHigh

7

Description A URI of the orchestrator manager’s API. For example, https://bitbucket.org/ rovatsos/smartsocietyinternal/wiki/SmartSharing/API.md The original URI of the submitted task. For example, https://client.ss1.u.hopper.com/ ridePlans/1/v/0.0 The URI of the task stored by the orchestrator. For example, http://client.ss1.u.hopper.com/ ridePlans/1/v/0.1 The URI of the activity that handled the submission of a task request, this URI needs to be unique for each submission. For example, http://client.ss1.u.hopper.com/ receivingTask/1/. The activity that sends a response from the submission of a task. For example, http://client.ss1.u.hopper.com/ sendingResponse/1/. The acknowledgement entity that was after a sending response. For example, http://client.ss1.u.hopper.com/ acknowledgement/1/. The status code returned by the acknowledgement. For example, 200 String representation of the version of the submitted task String representation of the request id of the submitted task String representation of the comments of the submitted task String representation of the route of the submitted task String representation of the price range of the suhbmitted task String representation of the destination’s datetime maximum value route of the task String representation of the destination’s datetime minimum value route of the task String representation of the departure’s datetime maximum value route of the task


var:rp_depDateTimeWindowLow

cas:task_depDateTimeWindowLow

String representation of the departure’s datetime minimum value route of the task var:rp_destination_location cas:task_destination_location String representation of the destination’s location var:rp_departure_location cas:task_departure_location String representation of the departure’s location var:rp_smoking cas:task_smoking String representation of the user’s smoking preference var:rp_pets cas:task_pets String representation of the user’s pet preference var:rp_currency cas:task_currency String representation of the ride’s currency var:rp_rejectedCommuters cas:task_rejectedCommuters String representation of the ride’s rejected commuters var:rp_agreedCommuters cas:task_agreedCommuters String representation of the ride’s agreed commuters var:rp_potentiallyAgreedCommuters cas:task_potentiallyAgreedCommuters String representation of the ride’s potentially agreed commuters var:rp_rejectedDriver cas:task_rejectedDrivers String representation of the ride’s rejected driver var:rp_agreedDriver cas:task_agreedDriver String representation of the ride’s agreed driver var:rp_potentiallyAgreedDriver cas:task_potentiallyAgreedDriver String representation of the ride’s potentially agreed driver var:rp_potentiallyDriver cas:task_potentiallyDriver String representation of the ride’s potential driver var:rp_commuterOpinions cas:task_commuterOpinions String representation of the commuter opinions var:rp_driverOpinions cas:task_driverOpinions String representation of the driver opinions var:rp_revision cas:task_revision String representation of the task request’s revision var:rp_index cas:task_index String representation of the task request’s index Table 2.1: Variables defined in the Submitting Task template

8


2.1.2

Submitting Task Request Template

This template describes when the orchestration peer receives a ride request.

Figure 2.2: Template for posting ride requests.

9


Submitting Task Request Template Variable Type var:orchestration_manager cas:OrchestrationManager

var:submitted_request

cas:Task

var:task_request

cas:TaskRequest

var:receiving_task_request

cas:SubmittingTaskRequest

var:sending_response

cas:SendingResponse

var:acknowledgement

cas:Acknowledgement

var:acknowledgement_code

cas:Acknowledgement

var:rr_version

cas:request_version

var:rr_id

cas:request_id

var:rr_managedBy

cas:request_manageBy

var:rr_comments

cas:request_comments

var:rr_route

cas:request_route

var:rr_priceBound

cas:request_priceBound

10

Description A URI of the orchestrator manager’s API. For example, https://bitbucket.org/ rovatsos/smartsocietyinternal/wiki/SmartSharing/API.md The original URI of the submitted task request. For example, https://client.ss1.u.hopper.com/ ridePlans/1/v/0.0 The URI of the task request stored by the orchestrator. For example, http://client.ss1.u.hopper.com/ ridePlans/1/v/0.1 The URI of the activity that handled the submission of a task request, this URI needs to be unique for each submission. For example, http://client.ss1.u.hopper.com/ receivingTask/1/. The activity that sends a response from the submission of a task request, this URI needs to be unique for each submission. For example, http://client.ss1.u.hopper.com/ sendingResponse/1/. The acknowledgement entity that was after a sending response. For example, http://client.ss1.u.hopper.com/ acknowledgement/1/. The status code returned by the acknowledgement. For example, 200 String representation of the version of the task request. For example, 1. String representation of the task request id. For example 1. String representation of who the ride request is managed by. For example, owner String representation of the comments of the ride request. For example, Comments for agent with username ... String representation of the route of the ride request. For example, Route description for agent with username. String representation of the price bounds of the ride request. For example, 10


var:rr_desDateTimeWindowHigh

var:rr_desDateTimeWindowLow

var:rr_depDateTimeWindowHigh

var:rr_depDateTimeWindowLow

var:rr_destination_location

var:rr_departure_location

var:rr_capacity var:rr_rideQualityThreshold var:rr_smoking var:rr_pets var:rr_currency var:rr_mode var:rr_invalidRidePlans var:rr_agreedRidePlan var:rr_driverAgreedRidePlans

cas:request_desDateTimeWindowHighString representation of the destination’s datetime maximum value route of the ride request. For example, 1423778400000 cas:request_desDateTimeWindowLow String representation of the destination’s datetime minimum value route of the ride request. For example, 1423695600000 cas:request_depDateTimeWindowHighString representation of the departure’s datetime maximum value route of the ride request. For example, 1423778400000 cas:request_depDateTimeWindowLowString representation of the departure’s datetime minimum value route of the ride request. For example, 1423695600000 cas:request_destination_location String representation of the ride request’s destination location. For example "radius":5,"lat":41.90278,"lon":12.49637 cas:request_departure_location String representation of the ride request’s departure location. For example "radius":5,"lat":41.90278,"lon":12.49637 cas:request_capacity String representation of the capacity of the ride request. For example, 1. cas:request_rideQualityThreshold String representation of the ride request’s quality threshold. For example, 0 cas:request_smoking String representation of the smoking preference in the ride request. For example, no. cas:request_pets String representation of the pet preference in the ride request. For example, no. cas:request_currency String representation of the currency used in the ride request. For example, euro. cas:request_mode String representation of the mode of the user in the ride request. For example, driver. cas:request_invalidRidePlans String representation of the ride request’s invalidRidePlans. For example, [] cas:request_agreedRidePlan String representation of the ride request’s agreedRidePlans. For example, http://abacus.imaginary:3000/ridePlans/29. cas:request_driverAgreedRidePlans String representation of the ride request’s driver agreed ride plans. For example, [].

11


var:rr_potentialRidePlans var:rr_user var:rr_revision var:rr_index

cas:request_potentialRidePlans

String representation of the ride request’s potential ride plans.For example, []. cas:request_user String representation of user submitting the ride request. For example, agent1. cas:request_revision String representation of the ride request’s revision. For example, 3. cas:request_index String representation of the ride request’s index. For example, 101. Table 2.2: Variables defined in the Submitting Task Request template

12


2.2

Composing Tasks

The composition of tasks occurs after the submission of a task request to the orchestrator.

2.2.1

Composing Task Template

This template describes the composition of a ride plan.

13


Figure 2.3: Template for generating compositions for ride matches.

14


Task Composition Template Variable var:composition_manager

Type cas:CompositionManager

var:task_request

cas:Task

var:task

cas:Task

var:opinion_report

cas:ReputationReport

var:opinion_request

cas:Request

var:local_opinion_report

cas:ReputationReport

var:computing_composition

cas:ComputingComposition

var:requesting_opinion

cas:RequestingOpinion

15

Description A URI of the composition manager’s API. For example, https://bitbucket.org/ rovatsos/smartsocietyinternal/wiki/SmartSharing/API.md A URI of a task request that was used in computing a task compositions. For example, http://client.ss1.u.hopper.com/ rideRequests/1/v/0.1. A URI of the task that is created by computing compositions. For example, http://client.ss1.u.hopper.com/ ridePlans/1/v/0.1. A URI of the opinion report which is returned by the reputation service, this URI is returned in the response header by the reputation service, as the anchor in the Link header. For example, https://smartshare.ecs.soton.ac.uk/rs/ response/1/. A URI of the request used to request an opinion report. For example, http://client.ss1.u.hopper.com/ requesting_opinion/1/ A URL of an opinion report used by the composition manager, the content of the report is the same as the opinion_report sent by the reputation, however it is a dierent version because the opinion_report refers to the entity stored by the reputation service. For example, http://client.ss1.u.hopper.com/ opinionReport/1/. The URI for the activity that computed the composition of tasks. For example, http://client.ss1.u.hopper.com/ computeComposition/1/. The URI of the activity that requested an opinion report from the reputation service, this URI is returned in the response header by the reputation service in the Link header. For example, https://smartshare.ecs.soton.ac.uk/rs/ request/1/.


var:receiving_opinion

cas:ReceivingOpinion

var:receiving_task_request

cas:SubmittingTaskRequest

var:rp_version

cas:task_version

var:rp_id

cas:task_id

var:rp_comments

cas:task_comments

var:rp_route

cas:task_route

var:rp_priceRange

cas:task_priceRange

var:rp_desDateTimeWindowHigh

cas:task_desDateTimeWindowHigh

var:rp_desDateTimeWindowLow

cas:task_desDateTimeWindowLow

var:rp_depDateTimeWindowHigh

cas:task_depDateTimeWindowHigh

var:rp_depDateTimeWindowLow

cas:task_depDateTimeWindowLow

var:rp_destination_location

cas:task_destination_location

var:rp_departure_location

cas:task_departure_location

var:rp_smoking

cas:task_smoking

var:rp_pets

cas:task_pets

var:rp_currency

cas:task_currency

16

The URI of the activity that received an opinion report from the reputation service. For example, http://orchestrator/receiving_opinion/1/ The URI of the activity that handled the submission of a task request, this URI needs to be unique for each submission. For example, http://client.ss1.u.hopper.com/ receivingTask/1/. String representation of the version of the task plan. For example, 1. String representation of the task plan id. For example 1. String representation of the comments of the ride plan. For example, Comments for agent with username ... String representation of the route of the ride plan. For example, Route description for agent with username. String representation of the price range of the ride plan. For example, 10-20 String representation of the destination’s datetime maximum value route of the ride plan. For example, 1423778400000 String representation of the destination’s datetime minimum value route of the ride plan. For example, 1423695600000 String representation of the departure’s datetime maximum value route of the ride plan. For example, 1423778400000 String representation of the departure’s datetime minimum value route of the ride plan. For example, 1423695600000 String representation of the ride plan’s destination location. For example "radius":5,"lat":41.90278,"lon":12.49637 String representation of the ride plan’s departure location. For example "radius":5,"lat":41.90278,"lon":12.49637 String representation of the smoking preference in the ride plan. For example, no. String representation of the pet preference in the ride plan. For example, no. String representation of the currency used in the ride plan. For example, euro.


var:rp_rejectedCommuters

cas:task_rejectedCommuters

String representation of the ride’s rejected commuters, For example, [] var:rp_agreedCommuters cas:task_agreedCommuters String representation of the ride’s agreed commuters. For example, [] var:rp_potentiallyAgreedCommuters cas:task_potentiallyAgreedCommutersString representation of the ride’s potentially agreed commuters. For example, []. var:rp_rejectedDriver cas:task_rejectedDrivers String representation of the ride’s rejected driver. For example, agent1. var:rp_agreedDriver cas:task_agreedDriver String representation of the ride’s agreed driver. For example, agent1, var:rp_potentiallyAgreedDriver cas:task_potentiallyAgreedDriver String representation of the ride’s potentially agreed driver. For example, None. var:rp_potentiallyDriver cas:task_potentiallyDriver String representation of the ride’s potential driver. For example, agent1 var:rp_commuterOpinions cas:task_commuterOpinions String representation of the commuter opinions. For example, [http://abacus.imaginary:3000/users/ agent2/opinionsCommuterDrivers/agent1] var:rp_driverOpinions cas:task_driverOpinions String representation of the driver opinions. For example, ["http://abacus.imaginary:3000/users/ agent1/opinionsDriverCommuters/agent2"] var:rp_revision cas:task_revision String representation of the task request’s revision. For example, 2. var:rp_index cas:task_index String representation of the task request’s index. For example, 29. Table 2.3: Variables defined in the Task Composition template

17


2.2.2

Composing Task Template without Opinions

This template describes the generation of ride plans without the use of opinions.

Figure 2.4: Template for generating compositions for ride matches.

18


Task Composition Template without Opinions Variable Type var:composition_manager cas:CompositionManager

var:task_request

cas:Task

var:task

cas:Task

var:receiving_task_request

cas:SubmittingTaskRequest

var:rp_version

cas:task_version

var:rp_id

cas:task_id

var:rp_comments

cas:task_comments

var:rp_route

cas:task_route

var:rp_priceRange

cas:task_priceRange

var:rp_desDateTimeWindowHigh

cas:task_desDateTimeWindowHigh

var:rp_desDateTimeWindowLow

cas:task_desDateTimeWindowLow

var:rp_depDateTimeWindowHigh

cas:task_depDateTimeWindowHigh

var:rp_depDateTimeWindowLow

cas:task_depDateTimeWindowLow

var:rp_destination_location

cas:task_destination_location

19

Description A URI of the composition manager’s API. For example, https://bitbucket.org/ rovatsos/smartsocietyinternal/wiki/SmartSharing/API.md A URI of a task request that was used in computing a task compositions. For example, http://client.ss1.u.hopper.com/ rideRequests/1/v/0.1. A URI of the task that is created by computing compositions. For example, http://client.ss1.u.hopper.com/ ridePlans/1/v/0.1. The URI of the activity that handled the submission of a task request, this URI needs to be unique for each submission. For example, http://client.ss1.u.hopper.com/ receivingTask/1/. String representation of the version of the task plan. For example, 1. String representation of the task plan id. For example 1. String representation of the comments of the ride plan. For example, Comments for agent with username ... String representation of the route of the ride plan. For example, Route description for agent with username. String representation of the price range of the ride plan. For example, 10-20 String representation of the destination’s datetime maximum value route of the ride plan. For example, 1423778400000 String representation of the destination’s datetime minimum value route of the ride plan. For example, 1423695600000 String representation of the departure’s datetime maximum value route of the ride plan. For example, 1423778400000 String representation of the departure’s datetime minimum value route of the ride plan. For example, 1423695600000 String representation of the ride plan’s destination location. For example "radius":5,"lat":41.90278,"lon":12.49637


var:rp_departure_location

cas:task_departure_location

String representation of the ride plan’s departure location. For example "radius":5,"lat":41.90278,"lon":12.49637 var:rp_smoking cas:task_smoking String representation of the smoking preference in the ride plan. For example, no. var:rp_pets cas:task_pets String representation of the pet preference in the ride plan. For example, no. var:rp_currency cas:task_currency String representation of the currency used in the ride plan. For example, euro. var:rp_rejectedCommuters cas:task_rejectedCommuters String representation of the ride’s rejected commuters, For example, [] var:rp_agreedCommuters cas:task_agreedCommuters String representation of the ride’s agreed commuters. For example, [] var:rp_potentiallyAgreedCommuters cas:task_potentiallyAgreedCommutersString representation of the ride’s potentially agreed commuters. For example, []. var:rp_rejectedDriver cas:task_rejectedDrivers String representation of the ride’s rejected driver. For example, agent1. var:rp_agreedDriver cas:task_agreedDriver String representation of the ride’s agreed driver. For example, agent1. var:rp_potentiallyAgreedDriver cas:task_potentiallyAgreedDriver String representation of the ride’s potentially agreed driver. For example, None. var:rp_potentiallyDriver cas:task_potentiallyDriver String representation of the ride’s potential driver. For example, agent1 var:rp_commuterOpinions cas:task_commuterOpinions String representation of the commuter opinions. For example, [http://abacus.imaginary:3000/users/ agent2/opinionsCommuterDrivers/agent1] var:rp_driverOpinions cas:task_driverOpinions String representation of the driver opinions. For example, ["http://abacus.imaginary:3000/users/ agent1/opinionsDriverCommuters/agent2"] var:rp_revision cas:task_revision String representation of the task request’s revision. For example, 2. var:rp_index cas:task_index String representation of the task request’s index. For example, 29. Table 2.4: Variables defined in the Task Composition template

20


2.3

Task Negotiation

The submission of a task negotiation occurs when the negotiation manager receives a task negotiation.

2.3.1

Task Negotiation Template

This template describes the generation of ride plans after a user posts a negotiation oer about a ride plan.

21


var:task specializationOf

var:old_task

prov:label cas:Task prov:type cas:Task

specializationOf

prov:label cas:Task prov:type cas:Task

specializationOf

var:negotiation_manager

wasDerivedFrom

var:task_negotiation

used

prov:label cas:NegotiationManager prov:type cas:NegotiationManager

wasAttributedTo

prov:label cas:Task prov:type cas:Task wasDerivedFrom

prov:type prov:Revision

wasDerivedFrom

var:new_task

prov:label prov:type cas:task_agreedCommuters cas:task_agreedDriver cas:task_comments cas:task_commuterOpinions cas:task_commuters cas:task_currency cas:task_depDateTimeWindowHigh cas:task_depDateTimeWindowLow cas:task_departure cas:task_desDateTimeWindowHigh cas:task_desDateTimeWindowLow cas:task_destination_location cas:task_driver cas:task_driverOpinions cas:task_id cas:task_index cas:task_pets cas:task_potentialCommuters cas:task_potentialDriver cas:task_potentiallyAgreedCommuters cas:task_potentiallyAgreedDriver cas:task_priceRange cas:task_rejectedCommuters cas:task_rejectedDriver cas:task_revision cas:task_route cas:task_smoking cas:task_version

used

wasAssociatedWith

vargen:computing_negotiation wasGeneratedBy

var:receiving_task

cas:Task cas:Task var:rp_agreedCommuters var:rp_agreedDriver var:rp_comments var:rp_commuterOpinions var:rp_commuters var:rp_currency var:rp_depDateTimeWindowHigh var:rp_depDateTimeWindowLow var:rp_departure var:rp_desDateTimeWindowHigh var:rp_desDateTimeWindowHighLow var:rp_destination var:rp_driver var:rp_driverOpinions var:rp_id var:rp_index var:rp_pets var:rp_potentialCommuters var:rp_potentialDriver var:rp_potentiallyAgreedCommuters var:rp_potentiallyAgreedDriver var:rp_priceRange var:rp_rejectedCommuters var:rp_rejectedDriver var:rp_revision var:rp_route var:rp_smoking var:rp_version

wasInformedBy

prov:label prov:type tmpl:endTime tmpl:startTime

cas:ComputingNegotiation cas:ComputingNegotiation var:computing_negotiation_end var:computing_negotiation_start

prov:label cas:ReceivingTask prov:type cas:ReceivingTask

vargen:b

Figure 2.5: Template for generating compositions for ride matches after a negotiation oer.

22


Task Negotiation Template Variable var:negotiation_manager

Type cas:NegotiationManager

vargen:computing_negotiation

cas:ComputingNegotiaton

var:task

cas:Task

var:new_task

cas:Task

var:old_task

cas:Task

var:task_negotiation

cas:Task

var:receiving_task

cas:ReceivingTask

var:rp_version

cas:task_version

var:rp_id

cas:task_id

var:rp_comments

cas:task_comments

var:rp_route

cas:task_route

var:rp_priceRange

cas:task_priceRange

23

Description A URI of the negotiation manager’s API. For example, https://bitbucket.org/ rovatsos/smartsocietyinternal/wiki/SmartSharing/API.md The URI for the activity that computed the task after the submission of a negotiation task. For example, http://client.ss1.u.hopper.com/ computingNegotiaton/1/. A URI of a task first version and revision of the task generated by the composition manger. For example, https://client.ss1.u.hopper.com/ ridePlan/1/v/0.0 . A URI of a task that was generated by the computing negotiation activity. For example, https://client.ss1.u.hopper.com/ ridePlan/1/v/0.3 . A URI of a previous version of the task stored by the negotiation manager. For example, https://client.ss1.u.hopper.com/ ridePlan/1/v/0.1 . A URI of the task that was submitted by the user during negotiation, it will have the same URI as the task variable in the template in Section 2.1.1. For example, https://client.ss1.u.hopper.com/ ridePlan/1/v/0.2 . The activity that handled the submission of a task request. String representation of the version of the task plan. For example, 1. String representation of the task plan id. For example 1. String representation of the comments of the ride plan. For example, Comments for agent with username ... String representation of the route of the ride plan. For example, Route description for agent with username. String representation of the price range of the ride plan. For example, 10-20


var:rp_desDateTimeWindowHigh

cas:task_desDateTimeWindowHigh

String representation of the destination’s datetime maximum value route of the ride plan. For example, 1423778400000 var:rp_desDateTimeWindowLow cas:task_desDateTimeWindowLow String representation of the destination’s datetime minimum value route of the ride plan. For example, 1423695600000 var:rp_depDateTimeWindowHigh cas:task_depDateTimeWindowHigh String representation of the departure’s datetime maximum value route of the ride plan. For example, 1423778400000 var:rp_depDateTimeWindowLow cas:task_depDateTimeWindowLow String representation of the departure’s datetime minimum value route of the ride plan. For example, 1423695600000 var:rp_destination_location cas:task_destination_location String representation of the ride plan’s destination location. For example "radius":5,"lat":41.90278,"lon":12.49637 var:rp_departure_location cas:task_departure_location String representation of the ride plan’s departure location. For example "radius":5,"lat":41.90278,"lon":12.49637 var:rp_smoking cas:task_smoking String representation of the smoking preference in the ride plan. For example, no. var:rp_pets cas:task_pets String representation of the pet preference in the ride plan. For example, no. var:rp_currency cas:task_currency String representation of the currency used in the ride plan. For example, euro. var:rp_rejectedCommuters cas:task_rejectedCommuters String representation of the ride’s rejected commuters, For example, [] var:rp_agreedCommuters cas:task_agreedCommuters String representation of the ride’s agreed commuters. For example, [] var:rp_potentiallyAgreedCommuters cas:task_potentiallyAgreedCommutersString representation of the ride’s potentially agreed commuters. For example, []. var:rp_rejectedDriver cas:task_rejectedDrivers String representation of the ride’s rejected driver. For example, agent1. var:rp_agreedDriver cas:task_agreedDriver String representation of the ride’s agreed driver. For example, agent1, var:rp_potentiallyAgreedDriver cas:task_potentiallyAgreedDriver String representation of the ride’s potentially agreed driver. For example, None. var:rp_potentiallyDriver cas:task_potentiallyDriver String representation of the ride’s potential driver. For example, agent1 var:rp_commuterOpinions cas:task_commuterOpinions String representation of the commuter opinions. For example, [http://abacus.imaginary:3000/users/ agent2/opinionsCommuterDrivers/agent1]

24


var:rp_driverOpinions

var:rp_revision var:rp_index

cas:task_driverOpinions

String representation of the driver opinions. For example, ["http://abacus.imaginary:3000/users/ agent1/opinionsDriverCommuters/agent2"] cas:task_revision String representation of the task request’s revision. For example, 2. cas:task_index String representation of the task request’s index. For example, 29. Table 2.5: Variables defined in the Task Negotiation template

25


Ride Share Templates and Example Bindings

April 14, 2015


Contents 1 Templates and Bindings 1.1 Basic Template and Binding Example . . . 1.1.1 Template . . . . . . . . . . . . . . . 1.1.2 Binding . . . . . . . . . . . . . . . . 1.2 Namespaces . . . . . . . . . . . . . . . . . . 1.3 Considerations for Namespaces and Prefixes

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

2 2 2 2 3 4

2 User Interface 2.1 View Initialisation . . . . . . . . . . . . . . . . . . . 2.1.1 View Initialisation Template . . . . . . . . . 2.1.2 View Initialisation Binding Example . . . . . 2.1.3 cURL Example . . . . . . . . . . . . . . . . . 2.2 Changing View . . . . . . . . . . . . . . . . . . . . . 2.2.1 Changing View Template . . . . . . . . . . . 2.2.2 Changing View Binding Example . . . . . . . 2.2.3 cURL Example . . . . . . . . . . . . . . . . . 2.3 Submitting Request . . . . . . . . . . . . . . . . . . 2.3.1 Submitting Request Template . . . . . . . . . 2.3.2 Submitting Request Binding Example . . . . 2.3.3 cURL Example . . . . . . . . . . . . . . . . . 2.4 View Derivation . . . . . . . . . . . . . . . . . . . . 2.4.1 View Derivation Template . . . . . . . . . . . 2.4.2 Changing View Derivation Binding Example 2.4.3 cURL Example . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

5 5 5 6 7 8 8 9 9 11 11 11 13 14 14 15 15

1

. . . . .

. . . . .

. . . . .

. . . . .


Chapter 1

Templates and Bindings This Chapter introduces how to use PROV Template1 for Ride Sharing scenarios.

1.1

Basic Template and Binding Example

1.1.1

Template

The following template contains two var:composition_manager and var:task, the template is written in the provn format. document prefix ex <http://example.org/> prefix var <http://openprovenance.org/var#> bundle ex:b agent(var:composition_manager) entity(var:task) wasAttributedTo(var:task, var:composition_manager) endBundle endDocument

1.1.2

Binding

The following provenance binding defines variables for var:composition_manager and var:task. The binding is written in turtle2 which will be the format used to submit bindings for ride share. @prefix @prefix @prefix @prefix @prefix @prefix

prov: <http://www.w3.org/ns/prov#> . orchestrator: <http://www.rideshare-orchestrator.com/> . rp: <http://www.rideshare-orchestrator.com/ridePlans/> . tmpl: <http://openprovenance.org/tmpl#> . var: <http://openprovenance.org/var#> . xsd: <http://www.w3.org/2001/XMLSchema#> .

var:composition_manager a prov:Entity ; 1 PROV 2 Turtle

Template: https://provenance.ecs.soton.ac.uk/prov-template/#namespaces http://www.w3.org/TR/turtle/

2


tmpl:value_0 orchestrator:comp . var:task a prov:Entity ; tmpl:value_0 rp:203 ; tmpl:value_1 rp:122 .

The black text will remain the same for all bindings for the example template. The dark red text refers to the namespaces introduced in the bindings which are not present in the template. Specifically, @prefix orchestrator: <http://www.rideshare-orchestrator.com/> . @prefix rp: <http://www.rideshare-orchestrator.com/ridePlans/> .. The namespace’s prefixes are used before the variables. The blue text are the values assigned to the variables defined in the template, comp is assigned to var:composition_manager where the namespace is orchestrator, and 122 and 203 is assigned to var:task where the namespace is rp. It is worth noting that it you can create more than on instance of a variable, which is indicated with green font. This may occur when an activity produces more than one entity, for example a composition activity might generate two plans.

1.2

Namespaces

The namespaces presented in Table 1.1 are used in this document: Prefix cas prov tmpl var xsd rideserver rideservice view orchestrator rr rp reputation feedback op

URI http://smartsociety-project.github.io/cas/# http://www.w3.org/ns/prov# http://openprovenance.org/tmpl# http://openprovenance.org/var# <http://www.w3.org/2001/XMLSchema# http://rideshares.info http://rideshares.info/OpenRideServer-RS/ http://rideshares.info/OpenRideServerRS/view/ http://168.144.202.152:3000/ http://www.rideshareorchestrator.com/rideRequests/ http://www.rideshareorchestrator.com/ridePlans/ https://smartshare.ecs.soton.ac.uk/ https://smartshare.ecs.soton.ac.uk/application/ 1/feedback/ https://smartshare.ecs.soton.ac.uk/rs/ application/1/reputation/

Namespace Description The cas vocabulary. Prov Provenance templates Provenance variables XSD The UI. The UI’s service. The UI’s views. The orchestration peer. Ride requests. Ride plans. The reputation manager. Feedback reports. Reputation.

Table 1.1: Namespaces used in the Ride Share demonstrator. These namespaces are used as examples in the templates and bindings, and the namespaces will need to be altered in the bindings submitted by different components and deployments so that they are correct.

3


1.3

Considerations for Namespaces and Prefixes

1. The URI namespace you choose for your vocabulary should be a fully formed URI. 2. Keep prefixes short and consistent. For example, this document uses op as a prefix to https://smartshare.ecs.soton.ac.uk/rs/ application/1/reputation/ for conciseness. However, in deployment we will need to op1 as a prefix to http://smartshare.ecs.soton.ac.uk/rs/application/1/reputation/, and op2 as a prefix to https://smartshare.soton.ac.uk/rs/ application/2/reputation/, to denote the different applications.

4


Chapter 2

User Interface The following scenarios three scenarios are to be recorded by provenance: (1) when a view is changed, (2) when a request is submitted, and (3) when a view is changed and it displays the response of a request.

2.1

View Initialisation

2.1.1

View Initialisation Template

Template shown in Figure 2.1, is a visual representation of the provenance data captured, and Table 2.1 describes the variables used in the template. View Initialisation Template, see Figure Variable Type var:ui cas:UserInterface var:initialising_view cas:ChangingView var:view

cas:View

2.1 Description A URI for the UI. The activity that initialised the view in the UI. A URI of the first view.

Table 2.1: Variables defined in the View Initialisation template

5


Figure 2.1: Template for the initialisation of the UI.

2.1.2

View Initialisation Binding Example

The following binding example describes the bindings for the variables in the Change View template in rdf turtle. The variable bindings are described in Table 2.2. @prefix @prefix @prefix @prefix @prefix @prefix @prefix

prov: <http://www.w3.org/ns/prov#> . rideserver: <http://rideshares.info/> . rideservice: <http://rideshares.info/OpenRideServer-RS/> . view: <http://rideshares.info/OpenRideServer-RS/view/> . tmpl: <http://openprovenance.org/tmpl#> . var: <http://openprovenance.org/var#> . xsd: <http://www.w3.org/2001/XMLSchema#> .

var:view a prov:Entity ; tmpl:value_0 view:view-1 . var:ui a prov:Entity ; tmpl:value_0 rideserver:ors-1 . var:initialising_view a prov:Entity ; tmpl:value_0 view:viewingHomePage-211 . var:initialising_view_start_time a prov:Entity ; tmpl:2dvalue_0_0 "2014-01-01T09:21:00+02:00"^^xsd:dateTime .

6


var:initialising_view_end_time a prov:Entity ; tmpl:2dvalue_0_0 "2014-01-01T09:21:00+02:00"^^xsd:dateTime .

View Initialisation Bindings Variable var:ui var:view var:initialising_view var:initialising_view_start_time var:initialising_view_end_time

Type rideserver:ors-1 view:view-1 view:viewingHomePage-211 “2014-01-01T09:21:00+02:00” “2014-01-01T09:21:00+02:00”

Table 2.2: Table describing the variables for the change view template

2.1.3

cURL Example

The following cURL statement submits the above binding example to the PROV binding service1 . curl -X POST ‘https://smartshare.ecs.soton.ac.uk/provbindings/application /1/template/change_view/change_view_binding_1/’ --data ’ @prefix prov: < http://www.w3.org/ns/prov#> . @prefix rideserver: <http://rideshares.info /> . @prefix rideservice: <http://rideshares.info/OpenRideServer-RS/> . @prefix view: <http://rideshares.info/OpenRideServer-RS/view/> . @prefix op: <https://smartshare.ecs.soton.ac.uk/rs/application/1/reputation/> . @prefix tmpl: <http://openprovenance.org/tmpl#> .@prefix var: <http:// openprovenance.org/var#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema #> . var:view a prov:Entity ; tmpl:value_0 view:view-1. var:ui a prov: Entity ; tmpl:value_0 rideserver:ors-1 . var:initialising_view_end_time a prov:Entity ; tmpl:2dvalue_0_0 "2014-01-01T09:21:00+02:00"^^xsd:dateTime . var:initialising_view a prov:Entity ; tmpl:value_0 view: viewingHomePage-211 . var:initialising_view_end_time a prov:Entity ; tmpl :2dvalue_0_0 "2014-01-01T09:21:00+02:00"^^xsd:dateTime .’ --header " Content-Type: text/turtle" -i

1 PROV binding provbindings/

service

https://provenance.ecs.soton.ac.uk/smartsociety/

7


2.2

Changing View

2.2.1

Changing View Template

Template shown in Figure 2.2, is a visual representation of the provenance data captured, and Table 2.3 describes the variables used in the template.

ui

att

view

type: http://smartsociety-project.github.io/cas/#Peer

spe

att

previous_view

type: http://smartsociety-project.github.io/cas/#View

use assoc

type: http://smartsociety-project.github.io/cas/#View

changing_view

att spe der

new_view

gen

type: startTime: endTime:

http://smartsociety-project.github.io/cas/#ChangingView changing_view_start_time changing_view_end_time

type: http://smartsociety-project.github.io/cas/#View

b

Figure 2.2: Template for changing the view on the UI. Change View Template, see Figure 2.2 Variable Type var:ui cas:UserInterface var:changing_view cas:ChangingView var:view

cas:View

var:new_view var:previous_view

cas:View cas:View

Description The UI. The activity that changed the view in the UI. A single general resource for views in a UI. It is used to connect all versions of a resource in the provenance. The new view. The previous view.

Table 2.3: Variables defined in the Change View template

8


2.2.2

Changing View Binding Example

The following binding example describes the bindings for the variables in the Change View template in rdf turtle. The variable bindings are described in Table 2.4. @prefix @prefix @prefix @prefix @prefix @prefix @prefix

prov: <http://www.w3.org/ns/prov#> . rideserver: <http://rideshares.info/> . rideservice: <http://rideshares.info/OpenRideServer-RS/> . view: <http://rideshares.info/OpenRideServer-RS/view/> . tmpl: <http://openprovenance.org/tmpl#> . var: <http://openprovenance.org/var#> . xsd: <http://www.w3.org/2001/XMLSchema#> .

var:view a prov:Entity ; tmpl:value_0 view:view-1 . var:new_view a prov:Entity ; tmpl:value_0 view:selectRide_103 . var:previous_view a prov:Entity ; tmpl:value_0 view:reputation_109 . var:ui a prov:Entity ; tmpl:value_0 rideserver:ors-1 . var:changing_view_start_end_time a prov:Entity ; tmpl:2dvalue_0_0 "2014-01-01T09:21:00+02:00"^^xsd:dateTime . var:changing_view a prov:Entity ; tmpl:value_0 view:viewingReputation-211 . var:changing_view_start_time a prov:Entity ; tmpl:2dvalue_0_0 "2014-01-01T09:21:00+02:00"^^xsd:dateTime .

Change View Bindings Variable var:ui var:view var:new_view var:previous_view var:changing_view var:changing_view_start_end_time var:changing_view_start_time

Type rideserver:ors-1 view:view-1 view:selectRide-103 view:reputation-109 view:activeOffersView-211 “2014-01-01T09:21:00+02:00” ˆˆxsd:dateTime “2014-01-01T09:21:00+02:00” ˆˆxsd:dateTime

Table 2.4: Table describing the variables for the change view template

2.2.3

cURL Example

The following cURL statement submits the above binding example to the PROV binding service2 . 2 PROV binding provbindings/

service

https://provenance.ecs.soton.ac.uk/smartsociety/

9


curl -X POST ‘https://smartshare.ecs.soton.ac.uk/provbindings/application /1/template/change_view/change_view_binding_1/’ --data ’ @prefix prov: < http://www.w3.org/ns/prov#> . @prefix rideserver: <http://rideshares.info /> . @prefix rideservice: <http://rideshares.info/OpenRideServer-RS/> . @prefix view: <http://rideshares.info/OpenRideServer-RS/view/> . @prefix op: <https://smartshare.ecs.soton.ac.uk/rs/application/1/reputation/> . @prefix tmpl: <http://openprovenance.org/tmpl#> .@prefix var: <http:// openprovenance.org/var#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema #> . var:view a prov:Entity ; tmpl:value_0 view:view-1 . var:new_view a prov:Entity ; tmpl:value_0 view:selectRide_103 . var:previous_view a prov :Entity ; tmpl:value_0 view:reputation-109 . var:ui a prov:Entity ; tmpl: value_0 rideserver:ors-1 . var:changing_view_end_time a prov:Entity ; tmpl:2dvalue_0_0 "2014-01-01T09:21:00+02:00"^^xsd:dateTime . var: changing_view a prov:Entity ; tmpl:value_0 view:activeOffersView-211 . var:changing_view_start_time a prov:Entity ; tmpl:2dvalue_0_0 "2014-01-01 T09:21:00+02:00"^^xsd:dateTime .’ --header "Content-Type: text/turtle" -i

10


2.3

Submitting Request

2.3.1

Submitting Request Template

Template shown in Figure 2.2, is a visual representation of the provenance template, and Table 2.5 describes the variables used in it.

ui

att

view

type: http://smartsociety-project.github.io/cas/#Peer

assoc use

sending_request

type: http://smartsociety-project.github.io/cas/#View

inf

request

att gen

type: startTime: endTime:

http://smartsociety-project.github.io/cas/#SendingRequest sending_request_start_time sending_request_end_time

assoc

receiving_response

der

type: http://smartsociety-project.github.io/cas/#Request

gen

response

type: startTime: endTime:

http://smartsociety-project.github.io/cas/#RecievingRequest receiving_response_start_time receiving_response_end_time

type: http://smartsociety-project.github.io/cas/#Response

b

Figure 2.3: Template for the submission of data via the UI. It is used when a user performs an action that results in a request or the submission of data via the UI. Submitting Request Template Variable Type var:ui cas:UserInterface var:request cas:Request var:response cas:Response vargen:sendingRequest cas:sendingRequest vargen:receivingResponse cas:receivingResponse var:view

cas:View

Description The User Interface. The request that was sent via the UI. The response to the request. The activity that submitted a request. The activity that receives the request’s response. The view that the sending_request is associated with.

Table 2.5: Variables defined in the the Submitting Request template

2.3.2

Submitting Request Binding Example

The following binding example describes the bindings for the variables in the Change View template in rdf turtle. The variable bindings are described in 11


Table 2.6. @prefix @prefix @prefix @prefix @prefix @prefix @prefix @prefix @prefix

prov: <http://www.w3.org/ns/prov#> . rideserver: <http://rideshares.info/> . rideservice: <http://rideshares.info/OpenRideServer-RS/> . view: <http://rideshares.info/OpenRideServer-RS/view/> . orchestrator: <http://www.rideshare-orchestrator.com/> . tmpl: <http://openprovenance.org/tmpl#> . var: <http://openprovenance.org/var#> . op: <https://smartshare.ecs.soton.ac.uk/rs/application/1/reputation/> . xsd: <http://www.w3.org/2001/XMLSchema#> .

var:view a prov:Entity ; tmpl:value_0 view:activeOffers-9 . var:response a prov:Entity ; tmpl:value_0 op:response-8 . var:request a prov:Entity ; tmpl:value_0 rideserver:1 . var:ui a prov:Entity ; tmpl:value_0 rideserver:ors-1 . var:sending_request a prov:Entity ; tmpl:value_0 orchestrator:requestingOpinion-112 . var:sending_request_end_time a prov:Entity ; tmpl:2dvalue_0_0 "2014-01-01T09:21:00+02:00"^^xsd:dateTime . var:changing_view a prov:Entity ; tmpl:value_0 view:viewingReputation-125 . var:sending_request_start_time a prov:Entity ; tmpl:2dvalue_0_0 "2014-01-01T09:21:00+02:00"^^xsd:dateTime . var:identity a prov:Entity ; tmpl:value_0 rideservice:id-11 .

Submitting Request Bindings Variable var:view var:response var:request var:ui var:sending_request var:sending_request_end_time var:changing_view var:sending_request_start_time

Type view:activeOffers-9 op:response-8 rideserver:1 rideserver:ors-1 orchestrator:requestingOpinion-112 “2014-01-01T09:21:00+02:00”^^xsd:dateTime view:reputationView-125 “2014-01-01T09:21:00+02:00”^^xsd:dateTime

Table 2.6: Table describing the variables for the Submitting Request template.

12


2.3.3

cURL Example

The following cURL statement submits the above binding example to the PROV binding service3 . curl -X POST ’https://smartshare.ecs.soton.ac.uk/provbindings/application /1/template/submit_request/submit_request_binding_1’ --data ’ @prefix prov: <http://www.w3.org/ns/prov#> . @prefix rideserver: <http:// rideshares.info/> . @prefix rideservice: <http://rideshares.info/ OpenRideServer-RS/> . @prefix view: <http://rideshares.info/ OpenRideServer-RS/view/> . @prefix orchestrator: <http://www.rideshareorchestrator.com/> . @prefix tmpl: <http://openprovenance.org/tmpl#> . @prefix var: <http://openprovenance.org/var#> . @prefix op: <https:// smartshare.ecs.soton.ac.uk/rs/application/1/reputation/> . @prefix xsd: < http://www.w3.org/2001/XMLSchema#> . var:view a prov:Entity ; tmpl: value_0 view:activeOffers-9 . var:response a prov:Entity ; tmpl:value_0 op:response-8 . var:request a prov:Entity ; tmpl:value_0 rideserver:1 . var:ui a prov:Entity ; tmpl:value_0 rideserver:ors-1 . var: sending_request a prov:Entity ; tmpl:value_0 orchestrator: requestingOpinion-112 . var:sending_request_end_time a prov:Entity ; tmpl :2dvalue_0_0 "2014-01-01T09:21:00+02:00"^^xsd:dateTime . var: changing_view a prov:Entity ; tmpl:value_0 view:viewingReputation-125 . var:sending_request_start_time a prov:Entity ; tmpl:2dvalue_0_0 "2014-01-01T09:21:00+02:00"^^xsd:dateTime . var:identity a prov:Entity ; tmpl:value_0 rideservice:id-11 .’ --header "Content-Type: text/turtle" -i

3 PROV

binding service https://smartshare.ecs.soton.ac.uk/provbindings/

13


2.4

View Derivation

A view derivation occurs when view is derived from information from a request.

2.4.1

View Derivation Template

Template shown in Figure 2.4, is a visual representation of the provenance data captured, and Table 2.7 describes the variables used in the template.

response der

view

type: cas:Response

type: cas:View

b

Figure 2.4: Template for changing the UI’s view. Change View Derivation Template Variable Type Description var:view cas:View A single general resource for views in a UI. It is used to connect all versions of a resource in the provenance. var:response cas:Response The response of a request.

Table 2.7: Variables defined in the Change View Derivation template

14


2.4.2

Changing View Derivation Binding Example

The following binding example describes the bindings for the variables in the Change View template in rdf turtle. The variable bindings are described in Table 2.8. @prefix @prefix @prefix @prefix @prefix @prefix

prov: <http://www.w3.org/ns/prov#> . view: <http://rideshares.info/OpenRideServer-RS/view/> . op: <https://smartshare.ecs.soton.ac.uk/rs/application/1/reputation/> . tmpl: <http://openprovenance.org/tmpl#> . var: <http://openprovenance.org/var#> . xsd: <http://www.w3.org/2001/XMLSchema#> .

var:view a prov:Entity ; tmpl:value_0 view:reputation_109 . var:response a prov:Entity ; tmpl:value_0 op:response-8 .

Changing View Derivation Bindings Variable Type var:view view:reputation-109 var:response op:19 Table 2.8: Table describing the variables for the View Derivation template.

2.4.3

cURL Example

The following cURL statement submits the above binding example to the PROV binding service4 . curl -X POST ’https://smartshare.ecs.soton.ac.uk/provbindings/application /1/template/view_derivation/view_derivation_binding_1/’ --data ’ @prefix prov: <http://www.w3.org/ns/prov#> . @prefix view: <http://rideshares. info/OpenRideServer-RS/view/> . @prefix op: <https://smartshare.ecs.soton .ac.uk/rs/application/1/reputation/> . @prefix tmpl: <http:// openprovenance.org/tmpl#> . @prefix var: <http://openprovenance.org/var#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . var:view a prov: Entity ; tmpl:value_0 view:reputation_109 . var:response a prov:Entity ; tmpl:value_0 op:response-8 .’ --header "Content-Type: text/turtle" -i

4 PROV

binding service https://smartshare.ecs.soton.ac.uk/provbindings/

15


c SmartSociety Consortium 2013-2017

C

Deliverable D2.4

Generating Narratives from Provenance Chains

84 of 105

http://www.smart-society-project.eu


Generating Narratives from Provenance Relationship Chains Heather S. Packer

University of Southampton B32 University Road Southampton, Hampshire, UK

hp3@ecs.soton.ac.uk

ABSTRACT Provenance data is a rich data structured source that has a similar role to narratives, since they can both provide an account of connected events. Consuming prov data can be hard for both technical and non-technical users, because of its potential scale and the complexity of the relationships captured. Explicitly, it can be hard for users to follow and understand the chain of relationships connecting elements together. In this paper, we present an approach that generates narratives explaining chains of relationships and describe its nature with examples from a Ride Share application.

Categories and Subject Descriptors H.4 [Information Systems Applications]: Miscellaneous

General Terms Design,Human Factors, Theory

Keywords Narrative Generation, Provenance, Relationship Chains

1.

INTRODUCTION

The provenance standard (prov) [13] can be used to capture information about entities, activities, and people involved in producing a piece of data or thing, which can be used to form assessments about its quality, reliability or trustworthiness. Provenance implies a partial ordering between events and the entities it describes. The prov elements typically follow a link data approach, where the elements identifier is a fully formed resolvable URI. The level of detail that provenance can captured makes provenance data very rich, which can support accountability for both users and systems. However, the more detail included in the provenance data, the harder it is for both technical and non-technical users to read. This difficulty increases with the scale of the provenance documents and complexity of the relationships captured. While the relationships between elements are explicitly defined, it

Luc Moreau

University of Southampton B32 University Road Southampton, Hampshire, UK

L.Moreau@ecs.soton.ac.uk can be hard for users to follow and understand the chain of relationships connecting one element to another. The provenance standard recommends offers provenance notation (provn) for human consumption [13]. While provn is more readable than other languages used to express prov, we posit that a narrative better serves this function because they are an effective way to communicate information to humans [9, 6, 10]. Our aim is to enable users to follow and understand the chain of relationships connecting two elements, through narrative. In our approach, we: First transform the provenance data into a weighted graph and use Dijkstra’s algorithm to find the shortest path between two prov elements. Using a weighted graph enables us to use different weightings for different relationships, and thus we can prioritise describing relationships in the narrative that are more informative. For example, a document is attributed to an agent, that document was generated by an activity, and that activity was associated with the agent. When the weightings all have a value of 1 the shortest path between the document and the agent is through the attribution relationship, when the attribution relationship has a value of 3 and the others have a value of 1 then the shortest path describes the document’s generation and association relationships. The additional relationships in the latter example provides details about which activity generated the document. There is however a trade-off between using less and more descriptive paths to generate narratives, concretely the greater number of relationships the longer the narrative will be, which could be excessive especially with long relationship chains; Second, use the relationships that connect two prov elements to construct a narrative using a sentence generator. The sentence generator randomly selects a string of words from a predefined list, to describe the elements and connecting relationships. In this paper, we use a provenance data recorded from a ride share application to provide examples of narratives generated with our approach. We describe related work in Section 2, which introduces provenance and narrative summarisation. Following that, in Section 3 we detail the algorithm we use to identify the shortest path between nodes and how we generate sentences using the chain of relationships. We then describe in Section 4 the ride sharing scenario and provenance data, and discuss some queries and their resulting sentences. Finally, we make our conclusions and explore future work in Section 6.


2. BACKGROUND 2.1 Provenance

discourse on an interest topic to a user.

Provenance has varied emerging applications: it may be used to make social computations accountable and transparent [19, 15]; provenance can help determine whether data or users can be trusted [4]; and provenance can be used to ensure reproducibility [11] of computations. prov is a recent set of recommendations of the W3C for representing provenance on the web. prov is a conceptual data model (PROV-DM [13]), which can be mapped and serialized to different technologies. There is an OWL2 ontology for prov (PROV-O [7]), allowing mapping to RDF, an XML schema for provenance [3], and a textual representation for prov (PROV-N [14]). prov:wasDerivedFrom

ew iew v vi y ow ilit fl b a si t n da po s re

pr oc

es s

fl ow

prov:Entity vi ew

prov:used prov:Activity

prov:Agent prov:wasAssociatedWith

prov:actedOnBehalfOf

Figure 1: Three Different Views of the Core of prov. The figure adopts the prov layout conventions: an entity is represented by a yellow ellipsis, an activity by a blue rectangle, and an agent by an orange pentagon. We note here that the diagram is a “class diagram” illustrating the classes that occur as domain and range of properties. Taken from [12].

2.2

GENERATING EXPLANATIONS ABOUT CONNECTIONS

In order to generate an explanation about how two prov elements are connected, we first identity the chain of relationships connecting them. We then generate a narrative explaining the chained relationships.

3.1

Identifying Connections between Elements and their Attributes

In order to identify whether a element has a connection to another element, we identify whether there is a chain of relationship that connects them. We first use a fragmentation algorithm, which generates a subset of prov statements describing an element from a prov document. The fragmentation algorithm we use is based on [16]’s basic fragmentation algorithm for ontologies to generate a fragment of a concept. This fragmentation approach allows large prov documents to be queried without suffering from overhead costs associated with scale.

prov:wasAttributedTo

prov:wasGeneratedBy

prov:wasInformedBy

3.

Second, we verify that this fragment references to two elements. Third, we use the Dijkstra’s algorithm [17] to find the shortest path between two prov elements, where for now all relationships connecting the nodes have a value of 1. Then using the shortest path we build a list of dictionaries, where each dictionary contains the name of the two connecting nodes, their relationship type, and the connecting relationship. For example, the following graph contains the triples: a wasDerivedFrom b, b wasDerivedFrom d, a wasDerivedFrom d, and d wasDerivedFrom e. Our approach created the following list describing how element a is connected to e: [{ ‘subject’: ‘a’ ‘subject_type’: ‘entity’, ‘relationship’: ‘wasDerivedFrom’, ‘object’: ‘d’, ‘object_type’: ‘entity’,

Narrative Summarisation

The role of narrative is to provide an account of connected events, which can be organised in a number of different categories. Provenance data has a similar role, it describes entities, activities and agents connected by relationships, and implicitly provides a sequence of their generation, performance and actions, respectively. Narratives are an effective way to communicate information, research has shown that it enables users to make sense of their data [9, 6, 10], and it is equally effective for both communities and individuals [1, 8]. Previously, Semantic Web technologies have been used to generate narratives [18, 5, 2]. In more detail, Tuffield et al. [18] and Jewell et al. [5] describe the OntoMedia ontology, which supports the generation of narratives. The work presented in [18] discuss approaches to generate narratives from a vocabulary, the approaches included are based on character, plot and user modelling. The work presented in [5] describes how OntoMedia is used to annotate the vast collection of heterogeneous media. The work [2] use ontological domain knowledge to select and organise a narrative

}, { ‘object’: ‘d’, ‘object_type’: ‘entity’, ‘relationship’: ‘wasDerivedFrom’, ‘subject’: ‘e’ ‘subject_type’: ‘entity’, }] The pseudocode for this algorithm is described in Algorithm 1.

3.2

Generating Sentences Describing Connected Elements

The narrative we generate is an account of how two elements connect, it has a linear structure of sentences based on the implied order of events recorded in the provenance. In order to generate sentences, we use the list generated by the chaining algorithm (described in the section above). Each


Relationship wasDerivedFrom

Algorithm 1 This algorithm finds a path connecting the prov elements subject element and goal element in a graph, within a max distance, it returns a list of relationships connecting the two elements. Where the functions retrieveFragment returns a set of provenance statements, buildGraph returns a weighted graph given provenance data, and dijkstra returns a list of the shortest path between two elements. 1: procedure GetConnectingRelationships(graph, subject element, goal element, max distance) 2: prov fragment = retrieveFragment(subject element, max distance) 3: if prov fragment.contains(subject element, goal element) then 4: graph = buildGraph(prov segment) 5: shortest path = dijkstra(graph, subject element, goal element) 6: return shortest path 7: else 8: return None

wasAssociatedWith used wasAttributedTo specializationOf wasInformedBy

wasGeneratedBy

Sentence ‘was derived from’ ‘originates from’ ‘was sourced from’ ‘was associated with’ ‘was performed by’ ‘used’ ‘made use of’ ‘was attributed to’ ‘is connected to’ ‘is a specialization of ’ ‘is an instance of’ ‘was informed by’ ‘was initiated because of’ ‘was performed after’ ‘was generated by’ ‘was created by’

Table 2: Sentence parts for relationships Type agent , entity, and activity

item in the list will be used to generate a single sentence, and each sentence is constructed in three parts. The first part of the sentence describes the subject, the second describes the relationship, and the third describes the object. For example, ‘The a entity’ ‘was derived from’ ‘the entity e’. Each part of the sentence is randomly selected from a list of possible parts given their type or relationship, these are described in Tables 1, 2 and 3. Type agent

entity

activity

Sentence ‘the {subject}’ ‘the {subject} is a {subject type} ‘the agent {subject}’ ’the {subject}’ ‘the {subject} is a {subject type}, which’ ‘the entity {subject}’ ‘the contents contained in {subject}’ ‘the contents of {subject}’ ’the {subject}’ ‘the {subject} is a {subject type}, which’ ‘the {subject} process’ ‘the activity {subject}’

Table 1: Sentence parts for subject types

4.

RIDE SHARE

Ride Share is an application that enables car sharing for workplace workers, university students and similar large communities. The application allows both drivers and commuters to offer and request rides. These offers and ride requests include details about required travels, timing, locations, capacity, prices, and other details relevant for car sharing. It performs automatic matching of commuters to available cars, by considering origin and destination, routes, capacity and other available information. Incentives are used to influence participant behaviours and maximise the global system goals. Our ultimate motivation in this scenario is to describe how matches for rides and reputation reports are generated, because these types of processes are typically a black box to users. The execution of these processes is documented using prov.

Sentence ‘the {subject}’ ‘the {subject} {subject type}’

Table 3: Sentence parts for object types The following two sections provide examples of sentences generated using our approach over the prov data visualised as a graph in Figure 2. The provenance data in this figure was recorded by the Ride Share’s UI, and shows a user logging in looking at their homepage, their ride offers, profile, reputation and submitting a ride request.

4.1

Ride Sharing Query 1

The first query we performed generates a narrative that connects a UI’s login page to a ride plan, ‘log:8069ee6a051f9ac83b2c647beddd723d’ and ‘rplan:85’, respectively. The following structure was created by the finding the shortest path between the two entities (see Section 3.1). [ {‘object_type’: ‘request’, ‘subject_type’: ‘response’, ‘relationship’: ‘wasDerivedFrom’, ‘object: ‘uuid:1baf0146-1711-4c56-8589-059ab29fcfca’, ‘subject’: ‘rplan:85’} {‘object_type’: ‘request’, ‘subject_type’: ‘my_offer_page’, ‘relationship’: ‘wasDerivedFrom’, ‘object: ‘moff:86b9df09090720c10279567105a499d2’, ‘subject’: ‘uuid:1baf0146-1711-4c56-8589-059ab29fcfca’}, {‘object_type’: ‘my_offer_page’, ‘subject_type’: ‘ride_requests’, ‘relationship’: ‘wasDerivedFrom’, ‘object: ‘rreq:ima1’, ‘subject’: ‘moff:86b9df09090720c10279567105a499d2’}, {‘object_type’: ‘response’, ‘subject_type’: ‘home_page’, ‘relationship’: ‘wasDerivedFrom’, ‘object: ‘uuid:55cf0887-77f7-46ed-9cc3-809fc701574e’, ‘subject’: ‘rreq:ima1’}, {‘object_type’: ‘response’, ‘subject_type’: ‘home_page’,


ap:ima1

prov:type cas:Peer tmpl:order [0] wasAssociatedWith

wasAttributedTo

uuid:2e83bc56-3c84-4218-9138-161f5dac7c55

tmpl:order [0, 0]

wasAttributedTo

tmpl:order [0, 0]

tmpl:order [0, 0]

wasAttributedTo

tmpl:order [0, 0]

tmpl:order [0, 0]

wasAttributedTo

tmpl:order [0, 0]

wasAttributedTo

wasAttributedTo

wasAttributedTo

home:b51fa37a247bbdd13202103b87381b16

tmpl:order [0, 0]

wasAttributedTo

tmpl:order [0, 0]

prov:type cas:View tmpl:order [0]

wasAssociatedWith

tmpl:order [0, 0]

used

uuid:cec80eac-669e-4dcb-9a35-d464af6a7263

prov:startTime 2015-04-24T15:30:51+01:00 prov:endTime 2015-04-24T15:30:51+01:00 prov:type cas:SendingRequest tmpl:order [0] wasAssociatedWith

tmpl:order [0, 0]

tmpl:order [0, 0]

wasInformedBy

uuid:c0bd1e6e-91ad-4554-9ae8-3d45ed1f74fc

wasAttributedTo

tmpl:order [0, 0]

prov:startTime 2015-04-24T15:30:51+01:00 prov:endTime 2015-04-24T15:30:51+01:00 prov:type cas:RecievingRequest tmpl:order [0]

tmpl:order [0, 0]

req:884

prov:type cas:Request tmpl:order [0]

wasGeneratedBy

tmpl:order [0, 0]

wasGeneratedBy

tmpl:order [0, 0]

tmpl:order [0, 0]

wasAssociatedWith

wasAssociatedWith

tmpl:order [0, 0]

wasDerivedFrom

wasDerivedFrom

tmpl:order [0, 0]

tmpl:order [0, 0]

used

tmpl:order [0, 0]

wasAssociatedWith

tmpl:order [0, 0]

tmpl:order [0, 0]

tmpl:order [0, 0]

prov:startTime 2015-04-24T15:30:47+01:00 prov:endTime 2015-04-24T15:30:47+01:00 prov:type cas:RecievingRequest tmpl:order [0] wasDerivedFrom

wasGeneratedBy

wasAssociatedWith

uuid:a8fc9af2-3efd-4cb9-8f9a-b63c17bf98c9

used

tmpl:order [0, 0]

wasDerivedFrom

tmpl:order [0, 0]

tmpl:order [0, 0]

tmpl:order [0, 0]

tmpl:order [0, 0]

prov:type cas:Request tmpl:order [0]

wasAttributedTo

specializationOf

wasAttributedTo

wasAttributedTo

tmpl:order [0, 0]

wasAttributedTo

tmpl:order [0, 0]

wasAttributedTo

tmpl:order [0, 0]

wasAttributedTo

tmpl:order [0, 0]

wasAttributedTo

tmpl:order [0, 0]

wasAttributedTo

tmpl:order [0, 0]

tmpl:order [0, 0]

wasAssociatedWith

tmpl:order [0, 0]

tmpl:order [0, 0]

tmpl:order [0, 0]

tmpl:order [0, 0]

wasAttributedTo

uuid:5ee62476-522c-4a0e-a626-0751b71e9a19

tmpl:order [0, 0]

ooff:5851a9ba27c9ab44d8000388c733d576

tmpl:order [0, 0]

prov:type cas:View tmpl:order [0]

used

uuid:633f0b3f-cc66-41b6-8bb0-fdf7cbdfc9b4

used

tmpl:order [0, 0]

tmpl:order [0, 0]

wasAssociatedWith

uuid:535c5178-3603-4cf1-819c-4c5f2f423042

prov:startTime 2015-04-24T15:34:33+01:00 prov:endTime 2015-04-24T15:34:33+01:00 prov:type cas:SendingRequest tmpl:order [0] wasAttributedTo wasGeneratedBy

tmpl:order [0, 0]

req:891

tmpl:order [0, 0]

used

tmpl:order [0, 0]

tmpl:order [0, 0]

wasAssociatedWith

uuid:5222c2f2-80fc-4d44-9c5a-d664a57bf0d5

prov:startTime 2015-04-24T15:34:12+01:00 prov:endTime 2015-04-24T15:34:12+01:00 prov:type cas:SendingRequest tmpl:order [0]

wasDerivedFrom

wasInformedBy

tmpl:order [0, 0]

tmpl:order [0, 0]

tmpl:order [0, 0]

wasInformedBy

wasDerivedFrom

uuid:ec33a6e2-13f3-4644-92c8-155dbcc85e72

wasDerivedFrom

tmpl:order [0, 0]

wasAssociatedWith

tmpl:order [0, 0]

tmpl:order [0, 0]

prov:startTime 2015-04-24T15:32:14+01:00 prov:endTime 2015-04-24T15:32:14+01:00 prov:type cas:SendingRequest tmpl:order [0] wasGeneratedBy

wasAttributedTo

req:888

tmpl:order [0, 0]

wasInformedBy

tmpl:order [0, 0]

tmpl:order [0, 0]

wasAssociatedWith

uuid:17a10009-dfa9-41a9-84be-03f159bc9aa1

prov:startTime 2015-04-24T15:34:12+01:00 prov:endTime 2015-04-24T15:34:12+01:00 prov:type cas:RecievingRequest tmpl:order [0]

prov:type cas:Request tmpl:order [0]

wasGeneratedBy

res:891

tmpl:order [0, 0]

wasDerivedFrom

tmpl:order [0, 0]

res:888

wasAttributedTo wasGeneratedBy

tmpl:order [0, 0]

tmpl:order [0, 0]

req:886

wasDerivedFrom

tmpl:order [0, 0]

tmpl:order [0, 0]

wasInformedBy

tmpl:order [0, 0]

uuid:baf433a3-2262-467e-a09f-c7e3a27a8820

tmpl:order [0, 0]

prov:type cas:Response tmpl:order [0]

tmpl:order [0, 0]

prov:startTime 2015-04-24T15:34:38+01:00 prov:endTime 2015-04-24T15:34:38+01:00 prov:type cas:RecievingRequest tmpl:order [0]

prov:type cas:Request tmpl:order [0]

tmpl:order [0, 0]

wasDerivedFrom

tmpl:order [0, 0]

wasGeneratedBy

wasInformedBy

uuid:55cf0887-77f7-46ed-9cc3-809fc701574e

wasAttributedTo

uuid:6f66264a-aab1-4578-a013-1bfea147126b

wasAssociatedWith

tmpl:order [0, 0]

tmpl:order [0, 0]

prov:startTime 2015-04-24T15:31:21+01:00 prov:endTime 2015-04-24T15:31:21+01:00 prov:type cas:RecievingRequest tmpl:order [0]

prov:type cas:Request tmpl:order [0]

specializationOf

prov:type cas:Response tmpl:order [0]

wasDerivedFrom

tmpl:order [0, 0]

res:886

prov:type cas:Response tmpl:order [0]

specializationOf

tmpl:order [0, 0]

wasInformedBy

tmpl:order [0, 0]

tmpl:order [0, 0]

wasAssociatedWith

uuid:be59b93a-99d3-44e1-a85c-2c726192869a

tmpl:order [0, 0]

tmpl:order [0, 0]

specializationOf

tmpl:order [0, 0]

specializationOf

tmpl:order [0, 0]

tmpl:order [0, 0]

prov:startTime 2015-04-24T15:30:47+01:00 prov:endTime 2015-04-24T15:30:47+01:00 prov:type cas:RecievingRequest tmpl:order [0]

tmpl:order [0, 0]

tmpl:order [0, 0]

prov:type cas:Response tmpl:order [0] wasDerivedFrom

wasDerivedFrom

wasAttributedTo

prov:type prov:Revision tmpl:order [0, 0]

tmpl:order [0, 0]

wasAttributedTo

prof:a0e9a98f988583d24281025f2d8dc95e

tmpl:order [0, 0]

specializationOf

tmpl:order [0, 0]

specializationOf

prov:type cas:View tmpl:order [0] wasAssociatedWith

used

avprof:b90fc1e44482cb8816e9c11249a4d646

tmpl:order [0, 0]

specializationOf

tmpl:order [0, 0]

specializationOf

prov:startTime 2015-04-24T15:31:15+01:00 prov:type cas:ChangingView tmpl:order [0] wasDerivedFrom

wasGeneratedBy

wasGeneratedBy

prov:type prov:Revision tmpl:order [0, 0]

tmpl:order [0, 0]

tmpl:order [0, 0]

wasDerivedFrom

wasAttributedTo

wasAttributedTo

wasAttributedTo

eprof:b90fc1e44482cb8816e9c11249a4d646

tmpl:order [0, 0]

specializationOf specializationOf

tmpl:order [0, 0]

prov:type cas:View tmpl:order [0] wasAssociatedWith

tmpl:order [0, 0]

used

used

uuid:25df698b-32eb-4126-b51c-e598ea610feb

tmpl:order [0, 0]

wasGeneratedBy

wasDerivedFrom

wasGeneratedBy

tmpl:order [0, 0]

wasAttributedTo

tmpl:order [0, 0]

wasInformedBy

tmpl:order [0, 0]

wasGeneratedBy

specializationOf

specializationOf

tmpl:order [0, 0]

specializationOf

specializationOf

specializationOf

specializationOf

prov:startTime 2015-04-24T15:31:18+01:00 prov:endTime 2015-04-24T15:31:18+01:00 prov:type cas:RecievingRequest tmpl:order [0]

wasDerivedFrom

wasGeneratedBy

ima1:profile/v/0.12

specializationOf

wasAssociatedWith

uuid:489bb1ac-920f-4c86-8019-90432a714445

tmpl:order [0, 0]

prov:type cas:Request tmpl:order [0]

wasDerivedFrom

specializationOf

tmpl:order [0, 0]

prov:startTime 2015-04-24T15:31:18+01:00 prov:type cas:ChangingView tmpl:order [0]

wasDerivedFrom

uuid:5a6b85c8-db36-45b1-a777-d11842c1ccdf

tmpl:order [0, 0]

wasAssociatedWith

asprof:05d3e54500a122e6e91d9cefda714897

tmpl:order [0, 0]

prov:startTime 2015-04-24T15:31:18+01:00 prov:endTime 2015-04-24T15:31:18+01:00 prov:type cas:SendingRequest tmpl:order [0]

wasGeneratedBy

wasGeneratedBy

tmpl:order [0, 0]

specializationOf

tmpl:order [0, 0]

specializationOf

specializationOf

specializationOf

prov:type cas:Response tmpl:order [0] wasDerivedFrom

wasDerivedFrom

prov:type prov:Revision tmpl:order [0, 0]

tmpl:order [0, 0]

wasAttributedTo

prof:05d3e54500a122e6e91d9cefda714897

specializationOf

wasAttributedTo

specializationOf

tmpl:order [0, 0]

tmpl:order [0, 0]

prov:type cas:View tmpl:order [0] used

wasAssociatedWith

avhome:df358295a20c037c8d3fc64058fa560a

tmpl:order [0, 0]

tmpl:order [0, 0]

prov:startTime 2015-04-24T15:31:32+01:00 prov:type cas:ChangingView tmpl:order [0] wasDerivedFrom

prov:type prov:Revision tmpl:order [0, 0]

wasGeneratedBy

wasAttributedTo

wasAttributedTo

home:77657131bdd26d2fcef97a0773627365

tmpl:order [0, 0]

tmpl:order [0, 0]

wasAttributedTo

tmpl:order [0, 0]

wasAttributedTo

tmpl:order [0, 0]

wasAttributedTo

tmpl:order [0, 0]

tmpl:order [0, 0]

prov:type cas:View tmpl:order [0] wasAssociatedWith

used

used

avoff:7302bfbe21950a68fa433aec7e9fe513

tmpl:order [0, 0]

tmpl:order [0, 0]

tmpl:order [0, 0]

tmpl:order [0, 0]

wasAssociatedWith

tmpl:order [0, 0]

tmpl:order [0, 0]

wasAttributedTo

noff:7302bfbe21950a68fa433aec7e9fe513

wasAttributedTo

tmpl:order [0, 0]

wasGeneratedBy

tmpl:order [0, 0]

wasDerivedFrom

tmpl:order [0, 0]

prov:type prov:Revision tmpl:order [0, 0]

wasDerivedFrom wasGeneratedBy

tmpl:order [0, 0]

tmpl:order [0, 0]

used

uuid:ed08d972-13ca-4441-aa7c-7d29eb2e3346

tmpl:order [0, 0]

wasAttributedTo

tmpl:order [0, 0]

wasDerivedFrom

tmpl:order [0, 0]

prov:type prov:Revision tmpl:order [0, 0]

wasDerivedFrom

moff:ab2a9aefc2d057628453982dc1b3e44a

used

wasAssociatedWith

uuid:64de79f0-73d9-4228-bb72-7ddee643b309

tmpl:order [0, 0]

wasGeneratedBy

wasInformedBy

uuid:b446fd1c-d385-4415-b3c6-90211902f025

tmpl:order [0, 0]

tmpl:order [0, 0]

used

tmpl:order [0, 0]

wasAttributedTo

wasGeneratedBy

tmpl:order [0, 0]

tmpl:order [0, 0]

uuid:e8008c98-ce4c-4707-a8b4-848f25c5e96d

tmpl:order [0, 0]

prov:startTime 2015-04-24T15:33:41+01:00 prov:endTime 2015-04-24T15:33:41+01:00 prov:type cas:RecievingRequest tmpl:order [0]

tmpl:order [0, 0]

req:889

tmpl:order [0, 0]

wasAssociatedWith

wasDerivedFrom

wasAssociatedWith

uuid:6349b96b-8470-42f6-8d84-764c93670503

tmpl:order [0, 0]

wasDerivedFrom

tmpl:order [0, 0]

wasDerivedFrom

prov:type prov:Revision tmpl:order [0, 0]

wasInformedBy

pre_2:5851a9ba27c9ab44d8000388c733d576

tmpl:order [0, 0]

tmpl:order [0, 0]

tmpl:order [0, 0]

tmpl:order [0, 0]

tmpl:order [0, 0]

tmpl:order [0, 0]

tmpl:order [0, 0]

tmpl:order [0, 0]

wasAssociatedWith

tmpl:order [0, 0]

tmpl:order [0, 0]

tmpl:order [0, 0]

tmpl:order [0, 0]

wasAssociatedWith

avooff:e0e8bc4443e84c162e5e2de127557763

tmpl:order [0, 0]

tmpl:order [0, 0]

prov:startTime 2015-04-24T15:33:34+01:00 prov:type cas:ChangingView tmpl:order [0] wasAttributedTo

wasGeneratedBy

prov:type prov:Revision tmpl:order [0, 0]

tmpl:order [0, 0]

wasDerivedFrom

wasDerivedFrom

wasDerivedFrom

ooff:f6d65eda9daa4e809c7c7a3b94b892fd

tmpl:order [0, 0]

wasDerivedFrom

prov:type prov:Revision tmpl:order [0, 0]

tmpl:order [0, 0]

wasGeneratedBy

wasAttributedTo

ooff:e0e8bc4443e84c162e5e2de127557763

prov:type cas:View tmpl:order [0] wasAssociatedWith

wasAssociatedWith

uuid:41068ce8-4e0c-4593-bb31-92f055e09bd6

prov:startTime 2015-04-24T15:34:26+01:00 prov:endTime 2015-04-24T15:34:26+01:00 prov:type cas:RecievingRequest tmpl:order [0]

tmpl:order [0, 0]

prov:startTime 2015-04-24T15:34:45+01:00 prov:type cas:ChangingView tmpl:order [0]

wasAttributedTo

tmpl:order [0, 0]

tmpl:order [0, 0]

tmpl:order [0, 0]

prov:type cas:View tmpl:order [0]

used

used

avooff:fa10097cdd2426ced33b2d7c71cdcea8

tmpl:order [0, 0]

tmpl:order [0, 0]

prov:startTime 2015-04-24T15:34:49+01:00 prov:type cas:ChangingView tmpl:order [0]

wasAssociatedWith

avoff:86b9df09090720c10279567105a499d2

tmpl:order [0, 0]

prov:startTime 2015-04-24T15:33:40+01:00 prov:type cas:ChangingView tmpl:order [0] wasAttributedTo

tmpl:order [0, 0]

tmpl:order [0, 0]

wasGeneratedBy

wasAttributedTo

tmpl:order [0, 0]

prov:type cas:View tmpl:order [0]

used

wasAttributedTo

tmpl:order [0, 0]

wasAttributedTo

tmpl:order [0, 0]

res:889

prov:type cas:Response tmpl:order [0]

wasAttributedTo

tmpl:order [0, 0]

wasAssociatedWith

tmpl:order [0, 0]

prov:startTime 2015-04-24T15:33:57+01:00 prov:endTime 2015-04-24T15:33:57+01:00 prov:type cas:RecievingRequest tmpl:order [0] wasDerivedFrom

tmpl:order [0, 0]

wasGeneratedBy

moff:5851a9ba27c9ab44d8000388c733d576

tmpl:order [0, 0]

prov:startTime 2015-04-24T15:32:01+01:00 prov:endTime 2015-04-24T15:32:01+01:00 prov:type cas:RecievingRequest tmpl:order [0]

prov:type cas:Request tmpl:order [0]

wasInformedBy

uuid:d309b9cd-8e47-470f-82de-89a11a4a61fa

prov:type cas:Request tmpl:order [0]

used

prov:startTime 2015-04-24T15:32:01+01:00 prov:type cas:ChangingView tmpl:order [0]

wasInformedBy

tmpl:order [0, 0]

wasAssociatedWith

prov:startTime 2015-04-24T15:34:26+01:00 prov:endTime 2015-04-24T15:34:26+01:00 prov:type cas:SendingRequest tmpl:order [0]

tmpl:order [0, 0]

tmpl:order [0, 0]

prov:type cas:Response tmpl:order [0]

wasGeneratedBy

uuid:ea015909-32fc-4421-954b-c6601a287f7e

tmpl:order [0, 0]

wasDerivedFrom

prov:type cas:Request tmpl:order [0]

wasGeneratedBy

tmpl:order [0, 0]

tmpl:order [0, 0]

prov:startTime 2015-04-24T15:33:57+01:00 prov:endTime 2015-04-24T15:33:57+01:00 prov:type cas:SendingRequest tmpl:order [0]

wasDerivedFrom

tmpl:order [0, 0]

prov:type cas:Request tmpl:order [0]

wasGeneratedBy

used

avooff:f6d65eda9daa4e809c7c7a3b94b892fd

tmpl:order [0, 0]

wasDerivedFrom

uuid:4d5a5080-772f-4016-aff6-dafdc3eca7ee

tmpl:order [0, 0]

prov:type cas:View tmpl:order [0]

wasAssociatedWith

wasAttributedTo

wasDerivedFrom

rreq:ima1

prov:startTime 2015-04-24T15:32:01+01:00 prov:endTime 2015-04-24T15:32:01+01:00 prov:type cas:SendingRequest tmpl:order [0]

tmpl:order [0, 0]

wasDerivedFrom

wasAttributedTo

uuid:35e45351-3ede-4213-afcf-f98befe97c59

tmpl:order [0, 0]

prov:type cas:View tmpl:order [0]

wasAssociatedWith

uuid:78b3fe08-7a46-48df-8d9b-e12eb6872f2d

prov:startTime 2015-04-24T15:33:41+01:00 prov:endTime 2015-04-24T15:33:41+01:00 prov:type cas:SendingRequest tmpl:order [0]

prov:startTime 2015-04-24T15:31:34+01:00 prov:type cas:ChangingView tmpl:order [0]

wasAttributedTo

wasAttributedTo

wasGeneratedBy

wasAttributedTo

tmpl:order [0, 0]

tmpl:order [0, 0]

wasAttributedTo wasDerivedFrom

noff:fa10097cdd2426ced33b2d7c71cdcea8

wasDerivedFrom

tmpl:order [0, 0]

wasDerivedFrom

prov:type prov:Revision tmpl:order [0, 0]

tmpl:order [0, 0]

wasGeneratedBy

tmpl:order [0, 0]

wasDerivedFrom

wasDerivedFrom

wasDerivedFrom

used

tmpl:order [0, 0]

tmpl:order [0, 0]

wasAttributedTo

wasAttributedTo

wasAttributedTo

tmpl:order [0, 0]

used

tmpl:order [0, 0]

uuid:c05c150c-bcf5-4142-ad2a-3fcca85e69ff

wasAssociatedWith

wasDerivedFrom

wasGeneratedBy

uuid:758ae002-2658-4a44-808d-dae59a085dbd

tmpl:order [0, 0]

prov:type prov:Revision tmpl:order [0, 0]

prov:type cas:Request tmpl:order [0]

wasDerivedFrom

wasGeneratedBy

wasDerivedFrom

moff:66274f46918138ff6c252ab628277cf3

wasAttributedTo

tmpl:order [0, 0]

prov:type cas:View tmpl:order [0]

prov:type prov:Revision tmpl:order [0, 0]

wasDerivedFrom wasDerivedFrom

ooff:55ace33d9c0fcf213429882b0575378c

prov:type cas:View tmpl:order [0]

wasDerivedFrom

tmpl:order [0, 0]

tmpl:order [0, 0]

wasGeneratedBy

tmpl:order [0, 0]

tmpl:order [0, 0]

wasAssociatedWith

avooff:55ace33d9c0fcf213429882b0575378c

tmpl:order [0, 0]

prov:startTime 2015-04-24T15:35:57+01:00 prov:endTime 2015-04-24T15:35:57+01:00 prov:type cas:SendingRequest tmpl:order [0]

prov:startTime 2015-04-24T15:35:57+01:00 prov:type cas:ChangingView tmpl:order [0]

tmpl:order [0, 0]

wasGeneratedBy

tmpl:order [0, 0]

tmpl:order [0, 0]

tmpl:order [0, 0]

prov:type cas:View tmpl:order [0]

used

pre_2:66274f46918138ff6c252ab628277cf3

wasAttributedTo

tmpl:order [0, 0]

prov:type prov:Revision tmpl:order [0, 0]

moff:86b9df09090720c10279567105a499d2

tmpl:order [0, 0]

prov:type cas:View tmpl:order [0] wasAssociatedWith

tmpl:order [0, 0]

wasDerivedFrom

prov:startTime 2015-04-24T15:35:57+01:00 prov:endTime 2015-04-24T15:35:57+01:00 prov:type cas:RecievingRequest tmpl:order [0]

wasAssociatedWith

tmpl:order [0, 0]

tmpl:order [0, 0]

tmpl:order [0, 0]

tmpl:order [0, 0]

prov:startTime 2015-04-24T15:33:56+01:00 prov:endTime 2015-04-24T15:33:56+01:00 prov:type cas:SendingRequest tmpl:order [0]

wasInformedBy

uuid:b0fa698e-c070-42d4-9a2b-bfb90edd3a7d

used

uuid:c2506449-7421-47be-bf0c-2cdd22f20a02

prov:startTime 2015-04-24T15:34:05+01:00 prov:type cas:ChangingView tmpl:order [0]

wasAttributedTo

tmpl:order [0, 0]

tmpl:order [0, 0]

wasGeneratedBy

tmpl:order [0, 0]

tmpl:order [0, 0]

uuid:1baf0146-1711-4c56-8589-059ab29fcfca

wasAssociatedWith

tmpl:order [0, 0]

wasInformedBy

tmpl:order [0, 0]

tmpl:order [0, 0]

wasAttributedTo

uuid:41494c4c-3b12-46b7-bade-007413a0a625

wasAssociatedWith

tmpl:order [0, 0]

tmpl:order [0, 0]

prov:startTime 2015-04-24T15:33:56+01:00 prov:endTime 2015-04-24T15:33:56+01:00 prov:type cas:RecievingRequest tmpl:order [0]

prov:type cas:Request tmpl:order [0]

wasGeneratedBy

rreq:ima1/v/0.0

prov:type cas:Response tmpl:order [0]

wasDerivedFrom

tmpl:order [0, 0]

rplan:85

wasGeneratedBy

tmpl:order [0, 0]

prov:type cas:Response tmpl:order [0]

Figure 2: This figure is used for illustrative purposely only, for scalable detail please use this link: https: //provenance.ecs.soton.ac.uk/store/documents/84089/

‘relationship’: ‘wasDerivedFrom’, ‘object: ‘home:b51fa37a247bbdd13202103b87381b16’, ‘subject’: ‘uuid:55cf0887-77f7-46ed-9cc3-809fc701574e’}, {‘object_type’: ‘home_page’, ‘subject_type’: ‘login_page’, ‘relationship’: ‘wasDerivedFrom’, ‘object: ‘log:8069ee6a051f9ac83b2c647beddd723d’, ‘subject’: ‘home:b51fa37a247bbdd13202103b87381b16’},

While our approach generates a linear narrative describing the connection between two prov elements, however lacks a natural flow present in discourse. This lack of flow stems from the repetitive use of connecting sentence phrases, and long identifiers used for prov elements. In order to improve the narrative, we have identified key three areas:

]

The above structure is used to create the following sentence, which are generating using the approach described in Section 3.2: The contents contained in rplan:85 was derived from the uuid:1baf0146-1711-4c56-8589-059ab29fcfca. The contents of uuid:1baf0146-1711-4c56-8589-059ab29fcfca was sourced from the moff:86b9df09090720c10279567105a499d2. The moff:86b9df09090720c10279567105a499d2 is a my offer page, and was derived from the rreq:ima1 request. The contents of rreq:ima1 was derived from uuid:55cf0887-77f7-46ed-9cc3-809fc701574e request. The uuid:55cf0887-77f7-46ed-9cc3-809fc701574e was derived from the home:b51fa37a247bbdd13202103b87381b16. The home page home:b51fa37a247bbdd13202103b87381b16 orginates from the log:8069ee6a051f9ac83b2c647beddd723d login page.

4.2

Ride Sharing Query 2

The second query generates a narrative that connects a UI’s new offers page and a profile page, ‘noff:f9de6bdea5b4c849b884aa44ef6b8700’, and ‘prof:b7f89504e98004d9b60d8785e53c468b’, and produces the following: The noff:f9de6bdea5b4c849b884aa44ef6b8700 new offer page is a specialization of the log:5e0454ca474ccdadc8d2580f58b26581 log offer page. The log:5e0454ca474ccdadc8d2580f58b26581 was derived from the prof:b7f89504e98004d9b60d8785e53c468b profile page.

5.

DISCUSSION

wasAssociatedWith

uuid:511b9e62-c577-4415-8f03-3a48e4b2a509

prov:startTime 2015-04-24T15:32:14+01:00 prov:endTime 2015-04-24T15:32:14+01:00 prov:type cas:RecievingRequest tmpl:order [0]

prov:type cas:Request tmpl:order [0]

wasGeneratedBy

wasAssociatedWith

uuid:f72e6760-2aeb-432e-ae86-b2320dc96b2d

tmpl:order [0, 0]

prov:startTime 2015-04-24T15:34:33+01:00 prov:endTime 2015-04-24T15:34:33+01:00 prov:type cas:RecievingRequest tmpl:order [0]

prov:type cas:Request tmpl:order [0]

prov:type prov:Revision tmpl:order [0, 0]

tmpl:order [0, 0]

wasGeneratedBy

prov:startTime 2015-04-24T15:30:47+01:00 prov:endTime 2015-04-24T15:30:47+01:00 prov:type cas:SendingRequest tmpl:order [0] wasAttributedTo

tmpl:order [0, 0]

wasAttributedTo

wasAssociatedWith

tmpl:order [0, 0]

wasGeneratedBy

uuid:7f709a24-5d3f-410c-a1df-f16431699e64

wasAttributedTo wasAttributedTo wasAttributedTo

log:8069ee6a051f9ac83b2c647beddd723d

tmpl:order [0, 0]

wasGeneratedBy

ima1:profile/v/0.11

tmpl:order [0, 0]

prov:type cas:Response tmpl:order [0]

tmpl:order [0, 0]

prov:startTime 2015-04-24T15:31:21+01:00 prov:endTime 2015-04-24T15:31:21+01:00 prov:type cas:SendingRequest tmpl:order [0]

wasInformedBy

uuid:c873bf1b-a91d-4019-a77a-96715ceeb0fc

tmpl:order [0, 0]

prov:type cas:Request tmpl:order [0]

tmpl:order [0, 0]

avprof:a0e9a98f988583d24281025f2d8dc95e

prov:startTime 2015-04-24T15:31:13+01:00 prov:type cas:ChangingView tmpl:order [0]

wasGeneratedBy

uuid:c15dbf37-d52d-4d3e-8098-91ee66c40d16

wasDerivedFrom

res:884

tmpl:order [0, 0]

wasAttributedTo

wasDerivedFrom

tmpl:order [0, 0]

used

tmpl:order [0, 0]

prov:startTime 2015-04-24T15:30:47+01:00 prov:endTime 2015-04-24T15:30:47+01:00 prov:type cas:SendingRequest tmpl:order [0] wasAttributedTo

used

uuid:424c5b05-3934-4b9a-a097-918272ee0f26

wasAttributedTo

tmpl:order [0, 0]

specializationOf

prov:startTime 2015-04-24T15:30:49+01:00 prov:type cas:ChangingView tmpl:order [0]

prov:startTime 2015-04-24T15:34:38+01:00 prov:endTime 2015-04-24T15:34:38+01:00 prov:type cas:SendingRequest tmpl:order [0]

prov:startTime 2015-04-24T15:34:38+01:00 prov:type cas:ChangingView tmpl:order [0]

wasDerivedFrom

tmpl:order [0, 0]

tmpl:order [0, 0]

prov:type cas:View tmpl:order [0]

uuid:d2e722b3-dd4f-43a4-9974-a986b3d6a2e0

tmpl:order [0, 0]

specializationOf

wasAssociatedWith

wasGeneratedBy

tmpl:order [0, 0]

wasAttributedTo

tmpl:order [0, 0]

used

avhome:dde15cfe3509eda7ca3938ec44a7be59

tmpl:order [0, 0]

used

avoff:ab2a9aefc2d057628453982dc1b3e44a

tmpl:order [0, 0]

wasAttributedTo

tmpl:order [0, 0]

wasAttributedTo

tmpl:order [0, 0]

specializationOf

wasAssociatedWith

prov:type cas:View tmpl:order [0]

tmpl:order [0, 0]

tmpl:order [0, 0]

prov:type cas:View tmpl:order [0]

wasGeneratedBy

tmpl:order [0, 0]

wasAttributedTo

home:1ebf642919f7591b4099ce8248629a50

tmpl:order [0, 0]

used

wasAttributedTo

ooff:86b9df09090720c10279567105a499d2

tmpl:order [0, 0]

prov:startTime 2015-04-24T15:30:46+01:00 prov:endTime 2015-04-24T15:30:46+01:00 prov:type cas:ChangingView tmpl:order [0]

tmpl:order [0, 0]

wasAssociatedWith

1. Summarisation: The narrative presented in Section 4.1 illustrates the repetitive sentence structure for prov elements that are connected by the same relationship. Chains of elements that are connected via the same relation can be shortened using lists. For example: The contents contained in rplan:85 was derived from the following entities: the request uuid:1baf01461711-4c56-8589-059ab29fcfca, the my offer page moff:86b9df09090720c10279567105a499d2, the response rreq:ima1, the request uuid:55cf088777f7-46ed-9cc3-809fc701574e, the home page home:b51fa37a247bbdd13202103b87381b16, and the log:8069ee6a051f9ac83b2c647beddd723d login page. While this shortens the narrative, it does not improve its readability or the reader’s interest in the subject because there are no descriptions of the identifiers which are non-descriptive. This issue is more prevalent with longer chains of elements connected by the same relationship. 2. Element Path: The shortest path prov elements might not provide the user with most informative narrative. For example, prov uses a single specialisation relationship to connect two elements, however a longer path could explain who was responsible for its creation or which activities used it. This is highlighted in the narrative presented in Section 4.2. 3. Narrative Generation: The vocabulary used to generate the narratives is limited, using a different approach might be able to expand the vocabulary. Increasing the vocabulary used to describe elements could improve the readability, however there is a trade-off between using a broad vocabulary where the narrative could

wasGeneratedBy

tmpl:order [0, 0]

tmpl:order [0, 0]


become less specific, and a narrow vocabulary where the narrative becomes repetitive.

6.

CONCLUSION

In this paper, we present an approach to generate a narrative describing the connection between two prov elements. It describes how two prov elements are connected by identifying a chain of relationships connecting them. We then randomly selected terms to describe the subject, its relationship, the element to which it is connected, to form a simple sentence structure. We then discuss areas which could improve readability of the generated narrative. For future work, we will develop an approach to summarise chains of elements connected by the same relationships to improve readability. We will also investigate whether using different vertex weightings for different relationships could output more interesting narratives. In order to evaluate this work we will deploy a user study which will allow users to query how their data is connected to other entities in the ride share application.

7.

[9]

[10]

[11]

[12] [13]

ACKNOWLEDGMENTS

The research leading to these results has received partially funding from the European Community’s Seventh Framework Program (FP7/2007-2013) under grant agreement n. 600854 Smart Society: hybrid and diversity-aware collective adaptive systems: where people meet machines to build smarter societies http://www.smart-society-project.eu/.

8.

[8]

REFERENCES

[1] O. Ferret, B. Grau, and N. Masson. Thematic segmentation of texts: two methods for two kinds of texts. In Proceedings of the 36th Annual Meeting of the Association for Computational Linguistics and 17th International Conference on Computational Linguistics-Volume 1, pages 392–396. Association for Computational Linguistics, 1998. [2] J. Geurts, S. Bocconi, J. Van Ossenbruggen, and L. Hardman. Towards ontology-driven discourse: From semantic graphs to multimedia presentations. Springer, 2003. [3] H. Hua, C. Tilmes, S. Zednik (eds.), and L. Moreau. PROV-XML: The PROV XML Schema. W3C Working Group Note NOTE-prov-xml-20130430, World Wide Web Consortium, Apr. 2013. [4] T. D. Huynh. Trust and reputation in open multi-agent systems. June 2006. [5] M. O. Jewell, K. F. Lawrence, M. M. Tuffield, A. Prugel-Bennett, D. E. Millard, M. S. Nixon, N. R. Shadbolt, et al. Ontomedia: An ontology for the representation of heterogeneous media. In In Proceeding of SIGIR workshop on Mutlimedia Information Retrieval. ACM SIGIR, 2005. [6] A. Kuchinsky, C. Pering, M. L. Creech, D. Freeze, B. Serra, and J. Gwizdka. Fotofile: a consumer multimedia organization and retrieval system. In Proceedings of the SIGCHI conference on Human Factors in Computing Systems, pages 496–503. ACM, 1999. [7] T. Lebo, S. Sahoo, D. McGuinness (eds.), K. Behajjame, J. Cheney, D. Corsar, D. Garijo,

[14]

[15]

[16]

[17]

[18] [19]

S. Soiland-Reyes, S. Zednik, and J. Zhao. PROV-O: The PROV Ontology. W3C Recommendation REC-prov-o-20130430, World Wide Web Consortium, Oct. 2013. C. L´evi-Strauss. Structural anthropology. Basic Books, 2008. O. Mallett and R. Wapshott. The challenges of identity work: Developing ricoeurian narrative identity in organisations. ephemera, page 271, 2011. Y. Matsuo and M. Ishizuka. Keyword extraction from a single document using word co-occurrence statistical information. International Journal on Artificial Intelligence Tools, 13(01):157–169, 2004. L. Moreau. Provenance-based reproducibility in the semantic web. Web Semantics: Science Services and Agents on the World Wide Web, 9(2):202–221, July 2011. L. Moreau and P. Groth. Provenance: An Introduction to PROV. Morgan and Claypool, September 2013. L. Moreau, P. Missier (eds.), K. Belhajjame, R. B’Far, J. Cheney, S. Coppens, S. Cresswell, Y. Gil, P. Groth, G. Klyne, T. Lebo, J. McCusker, S. Miles, J. Myers, S. Sahoo, and C. Tilmes. PROV-DM: The PROV Data Model. W3C Recommendation REC-prov-dm-20130430, World Wide Web Consortium, Oct. 2013. L. Moreau, P. Missier (eds.), J. Cheney, and S. Soiland-Reyes. PROV-N: The Provenance Notation. W3C Recommendation REC-prov-n-20130430, World Wide Web Consortium, Oct. 2013. H. S. Packer, L. Dr˘ agan, and L. Moreau. An auditable reputation service for collective adaptive systems. In Social Collective Intelligence, pages 159–184. Springer, 2014. J. Seidenberg and A. Rector. Web ontology segmentation: analysis, classification and use. In Proceedings of the 15th international conference on World Wide Web, pages 13–22. ACM, 2006. S. Skiena. Dijkstra’s algorithm. Implementing Discrete Mathematics: Combinatorics and Graph Theory with Mathematica, Reading, MA: Addison-Wesley, pages 225–227, 1990. M. M. Tuffield, D. E. Millard, and N. R. Shadbolt. Ontological approaches to modelling narrative. 2006. D. J. Weitzner, H. Abelson, T. Berners-Lee, J. Feigenbaum, J. Hendler, and G. J. Sussman. Information accountability. Communications of the ACM, 51(6):82–87, 2008.


c SmartSociety Consortium 2013-2017

D

Deliverable D2.4

PROV-Template Evaluation

In this section, we focus on evaluating Hypothesis 1, where we aim to show that prov template reduces overhead networking costs. In order to evaluate this, we investigated the sizes of provenance templates, bindings and expansions for the SmartShare application in three different languages used to express provenance. In our investigation, we found that there are three factors which influenced their size: (1) language used to express it; (2) characteristics of a template; and (3) types of data expressed in the bindings. The first factor, the choice of language, has the highest variance in terms of size for the templates, bindings, and expansions because of the syntax used in each language. Figure 9a is a box and whiskers plot which shows the average size of the provenance templates, bindings, and expansions used in the SmartShare application, and shows that the rank in size order is JSON, provn and TTL 5 . For each language the general trend is the same, the templates are the largest, then the expansions, and the smallest is the bindings. The templates are the largest because of the extra syntax required to markup the variables, this markup is not required for the bindings or expansions. On average the size of bindings is approximately 20% smaller than expansion, while the template is approximately over 50% larger than the binding. The average numbers of triples in the templates, bindings, and expansions, also follow this trend (see Figure 9b). In more detail, Figure 9a shows that the templates, bindings and their expansion for the SmartShare application have a wide range of sizes. This is because some of the templates are more complex and require more statements than others (thus supporting Requirement 6 in Section 1). A template that models more complex interactions often requires more binding variables, which in turn increase the number of variables expressed in the expansions. A developer’s chosen language to express provenance with, may not only factor in its size implications but its ease of authoring and reading. Provenance expressed in TTL has shorter statements than provn and JSON, and therefore may be viewed as the most readable language. JSON is particularly verbose and can be difficult for humans to understand. The second factor, characteristics of the template such as the number of prov elements and the number of extra attributes described also affect the size of the provenance. Figures 9b and 10 show the size of the provenance in bytes and triples for a two-person ride. These figures show that the bindings for the submitting request, negotiation and negotiation accept, templates are typically larger (except for the submit request in JSON and the 5

Turtle: https://www.w3.org/TR/turtle/

90 of 105

http://www.smart-society-project.eu


Deliverable D2.4

c SmartSociety Consortium 2013-2017

number of triples). They are typically larger because these templates detail ride requests and plans which have many extra attributes. These extra attributes were stored in the templates so that the effects and privacy issues can be explored in CASs.

c SmartSociety Consortium 2013-2017

91 of 105


c SmartSociety Consortium 2013-2017

Deliverable D2.4

(a) Average size of the provenance collected by the SmartShare application in JSON, TTL and provn

(b) Average Number of Triples for Templates, Bindings and their Expansion Normalised in TTL

Figure 9: Average size and number of triples for a two-person ride.

92 of 105

http://www.smart-society-project.eu


Deliverable D2.4

c SmartSociety Consortium 2013-2017

(a) Average Size of Templates, Bindings and their Expansion Normalised in JSON

(b) Average Size of Templates, Bindings and their Expansion Normalised in TTL

Figure 10: Average size of templates, bindings, and expansions for a two-person ride.

c SmartSociety Consortium 2013-2017

93 of 105


c SmartSociety Consortium 2013-2017

Deliverable D2.4

(c) Average Size of Templates, Bindings and their Expansion Normalised in provn

Figure 10: Average size of templates, bindings, and expansions for a two-person ride.

The third factor, the types of data expressed in the bindings, affects the size of the provenance. The size of the bindings and expansions are also affected by the number of multiple values per variable in the template. A template and a binding with multiple values are expanded using a Cartesian product to produce all possible instantiations of the template. Only three of the templates submit multiple values, orch composition, orch negotiation accept and orch negotiation final, and bindings for these templates are larger than the other bindings. The bindings that submitted multiple values from the sample we collected only contained a maximum of 3 multiple variables, therefore the expansions are relatively small. However, the number of multiple values will increase when the SmartShare application generates more ride plan combinations. In Table 3, we show the average number of bytes used for a two-person ride in an expansion, its corresponding bindings, and the difference between them, for one, ten, and fifty two-person rides. A CAS that does not use prov template would send the same size provenance document as the expansion, in contrast, a CAS that implements prov template would send the same number of bytes as the bindings. The difference between using prov template and prov as the number of rides increases stays the same for each language irrespective of the number of rides (see Column % Difference in Table 3). On average using prov template reduces the number of bytes sent by 26.75% 45.03% 94 of 105

http://www.smart-society-project.eu


c SmartSociety Consortium 2013-2017

Deliverable D2.4

42.96% for TTL, provn, and JSON, respectively. Expansion size (bytes)

Binding size (bytes)

1, 2 Person Ride (TTL) 1, 2 Person Ride (PROVN) 1, 2 Person Ride (JSON) 10, 2 Person Ride (TTL) 10, 2 Person Ride (PROVN) 10, 2 Person Ride (JSON)

253,197 226,712 387,605 2,531,970 2,267,120 3,876,050

50, 2 Person Ride (TTL) 50, 2 Person Ride (PROVN) 50, 2 Person Ride (JSON)

12,659,850 11,335,600 19,380,250

Scenario

% Difference

193,444 143,380 250,493 1,934,440 1,433,800 2,504,930

Difference between Binding, and Expansion 59,753 83,332 137,112 59,7530 83,3320 137,1120

9,672,200 7,129,000 12,524,650

2,987,650 4,206,600 6,855,600

26.7566% 45.0331% 42.9752%

26.7566% 45.0331% 42.9752% 26.7566% 45.0331% 42.9752%

Table 3: Table showing the total number of bytes in 1, 10 and 50 two-person rides.

E

URI Narrative Evaluation

In this section, we present our approach and results obtained when evaluating the legibility of URIs used in Provenance (see Hypothesis 4) ,and the generation of sentences using our application-independent provenance explanation system compared against a direct translation of a triple (see Hypothesis 5). In order to develop an approach for an application-generic provenance explanation system, we pre-evaluated prov documents from the University of Southampton Provenance Store, in which we analysed how URIs were used. From these documents we extracted the URIs denoting all the prov resources to use as our corpus of prov URIs. Using this corpus, we were able to develop a regular expression that allowed us to split each URI into its linguistic tokens this is not as trivial a task as might be expected, as there are a number of approaches people use to separate tokens, with CamelCase and snake case as just two examples. The expression we settled upon was which was able to correctly tokenise over 96% of the URIs. The regular expression we used was: [0-9a-fA-F]10,—(?:Mc—Mac)?[A-Z][a-z]+—[A-Z]+s?(?![a-z])—[a-z]+—[0-9]+ This expression is able to distinguish tokens that fall into the following categories: 1. Hexadecimal numbers of at least 10 characters (this limit was introduced to prevent splitting English words like ’feedback’, which is comprised mainly of the characters ’a’ to ’f’); c SmartSociety Consortium 2013-2017

95 of 105


c SmartSociety Consortium 2013-2017

Deliverable D2.4

2. Words beginning with a capital letter, including those with common Scottish name prefixes; 3. Acronyms and their plurals; 4. Lower case words; and 5. Decimal numbers. Having developed a technique to tokenise URIs, it became necessary to understand the linguistic role played by each of the tokens. We used an off-the-shelf part-of-speech (POS) tagger to tag the URI tokens. Specifically, we used the maximum entropy POS tagger [4] trained on the Penn Treebank corpus [5], which comes as the default tagger of the NLTK python library. It was initially unclear whether or not this would work particularly well, as the POS tagger had naturally been trained on standard English texts, and there was no guarantee that it would work with the much shorter, less grammatically correct URI tokens. However, the performance of the POS tagger was surprisingly good, with it being able to identify the correct specific tag (singular proper noun, present-tense 3rd person verb, superlative adjective, etc) 62.7% of the time, and the correct class of tag (whether the token was a noun, verb, adjective, modifier, or a number) 92.3% of the time. This level of performance indicated that it would be possible to build generation rules using at least the classes of tags, if not the specific tags. However, even this was likely to significantly improve the quality of the language produced. Using the knowledge that we gained from the earlier parts of this investigation, we were able to build a template-based explanation generation system that generated pairs of sentences from prov graphs. Each pair consisted of a sentence where the linguistic information in URIs was exploited, and another where the linguistic information was not exploited. These pairs of sentences were generated from exactly the same RDF triples, so formally should have contained exactly the same information. The data used to generate these sentence pairs came from a number of applications that use the provenance store, including a number of RideShare related graphs. Examples of sentences generated from RideShare related graphs include the following pairs of sentences, where the sentence exploiting the linguistic information in the URI appears first in each pair. Example 3 shows that not all URIs were exploited perfectly. 1. (a) Reputation manager generated opinion 1. 96 of 105

http://www.smart-society-project.eu


c SmartSociety Consortium 2013-2017

Deliverable D2.4

(b) ’/rs/reputation manager’

generated

’/rs/opinion/1/’

by

’/reputation-

api/#generate opinion 1’. 2. (a) Rm posted application 1. (b) ’/rm’ generated ’/#application/1/’ by ’/reputatinapi/#post 123’. 3. (a) 2 agent posted ride requests 1. (b) ’/rideshare/#/users/agent2’

generated

’/rideshare/#/rideRequests/1’

by

’/rideshare/#post ride request 100339’. In order to ascertain the relative quality of the sentences generated by the system, we conducted a human evaluation. In this study, participants were asked to rate each sentence across a number of dimensions taken from [6]: grammatical correctness, fluency, and ease of understanding. With 15 participants, the results of our experiment show that the system that exploits the linguistic information in URIs performs significantly better across all three dimensions, but most prominently in the perceived fluency (see Figure 11 for the graphs of the aggregated participants’ responses).

c SmartSociety Consortium 2013-2017

97 of 105


c SmartSociety Consortium 2013-2017

How would you rate each sentence in terms of how easily you can understand it? URIs exploited URIs unexploited

120 100

Number of ratings

Deliverable D2.4

80 60 40 20 0

1

2

3

Rating

4

5

6

(a) Comprehension Results

90 80

How would you rate each sentence in terms of fluency? URIs exploited URIs unexploited

Number of ratings

70 60 50 40 30 20 10 0

1

2

3

Rating

4

5

6

(b) Fluency Results

Figure 11: Aggregated participants’ responses

98 of 105

http://www.smart-society-project.eu


c SmartSociety Consortium 2013-2017

Deliverable D2.4

100

How would you rate each sentence in terms of the grammatical correctness? URIs exploited URIs unexploited

Number of ratings

80 60 40 20 0

1

2

3

Rating

4

5

6

(c) Grammar Results

Figure 11: Aggregated participants’ responses

Additionally, when asked “Which sentence do you think is the better explanation?”, participants answered saying that they preferred the sentence exploiting the linguistic information in the URI a majority of the time (56.4%). On the other hand, the sentence with the URIs unexploited was preferred only 29.3% of the time, with participants saying that neither was the better explanation 14.2% of the time. This gives us a clear indication that explanations generated by exploiting the linguistic information informally encoded in URIs perform better than explanations generated using previously existing techniques.

At present, our system is only capable of generating single sentence explanations. However, many of the provenance graphs we might wish to communicate with a user are considerably larger than can be reasonably transformed into a single sentence. Consequently, we are now investigating the possibility of generating longer, multi-sentential explanations from larger prov graphs, as well as from prov graph summaries. We are exploring the potential role of various narrative theories to the application of structuring these longer texts, with a goal of generating more engaging texts than can be achieved with more conventional, graph-metric-based approaches. c SmartSociety Consortium 2013-2017

99 of 105


c SmartSociety Consortium 2013-2017

F

Deliverable D2.4

A Narrative of an Example PROV Summary

The provenance generated by two users organising a ride and leaving feedback can be seen in Figure 12, and is summarised in Figure 13. From the summary there is clear division between the entities and activities associated with the three types of agents, the reputation manager rs 27, orchestrator IMAGINARY-ABACAS 36 and the mobile application username 52. The summary enables users to overview the patterns in provenance which can show the frequency that activities and entities in relation to others. The provenance summary describing the reputation manager’s actions (see Figure 14) shows that it, rs 27, received: 1. Requests (uuid 13) for information about a subject, which generated two types of responses response 17 and response 43. In more detail, response 17 returns an empty response because no feedback has been left the subject queried and hence that response is not derived from any feedback or reputation reports. The response 43 responses are from an API call, these responses are comprised of versioned responses to the calls, where the (https%3A%2F%Fpilot1-pm.smart-societyproject.eu%2Fusers%2Fuser 32) is the root version and (https%3A%2F%Fpilot1pm.smart-society-project.eu%2Fusers%2Fuser 8) are subsequent versions. The request generated the response 17 responses; 2. Feedback about a subject (receiving feedback 33), which triggered a (computing reputation 42) activity that generated feedback reports (application 41) and reputation reports (reputation 46) The request generated the response 10 responses. The summary provenance describing the orchestrator’s actions (see Figure 15) shows that it, IMAGINARY-ABACAS 36, receives requests for rides, and stores them generating rideRequests 34. It also generates ridePlans and new versions of rideRequests shown as rideRequests 31. These ride requests and plans in rideRequests 31 are negotiated over using the f95667c8-8911-4f9f-84fa-d830ca71a7a 50 activity. After each negotiation new versions of the ride plans are generated (see v 37, v 30 and v 53). The ride plans v 30 and v 53 are used in responses that are displayed in the GUI username 52. The summary provenance that describes the SmartShare mobile application’s actions (see Figure 16) shows that a users (username 52), log in to the application and the pages that they navigated. The users view two types of home page entities 100 of 105

http://www.smart-society-project.eu


Deliverable D2.4

c SmartSociety Consortium 2013-2017

(270f811e67b0437b1577caec9b504395 47 and 4a7d97a20e726c711cac434702cd100b 26), this shows that a driver and commuter logged in. The username 52 agents made requests to the reputation manager and orchestrator, and used the responses on the application’s page. This summary shows that the users viewed the page showing their old ride offers (oldOffers 25) before submitting their feedback, this is indicated in the summary with the use of a double weighted edge between oldOffers 25 and T 11.

c SmartSociety Consortium 2013-2017

101 of 105


type: cas:ChangingView

f154347368eeeae8bc6bdfcd34d0c32d

a271bb31-f67d-4624-8755-081fdf43e216

type: cas:Request

type: cas:SendingRequest

type: cas:ReceivingRequest

type: cas:ChangingView

type: cas:View

f154347368eeeae8bc6bdfcd34d0c32d

type: cas:Response

user_570a90bfbf8c7eab5dc5d4e26832d5b1/v/0

type: cas:ChangingView

type: cas:View

7a32156ce6fbc55e2fdb207948de2392

7a32156ce6fbc55e2fdb207948de2392

type: cas:View

type: cas:View

type: cas:Response

user_570a90bfbf8c7eab5dc5d4e26832d5b1

270f811e67b0437b1577caec9b504395

type: cas:View

9cb249c4f9eb2fa381bef42906bcd7cd

type: cas:ChangingView

type: cas:View

81e0da7793e6e4dc84e102aea75850a3

81e0da7793e6e4dc84e102aea75850a3

type: cas:ChangingView

4cab1c48921a39c33d2c3e2afdee8df4

4cab1c48921a39c33d2c3e2afdee8df4

9cb249c4f9eb2fa381bef42906bcd7cd

92c66994-ad68-4727-aeac-b2f01b857d38

d8ac6297-b627-413d-a35e-9f44fe9bf13a

type: cas:ReceivingRequest

7a9c21d9-4eca-44e2-86b5-ce93a79ad950

type: cas:View

type: cas:ChangingView

type: cas:Request

type: cas:SendingRequest

type: cas:SendingRequest

102 of 105 type: cas:Response

21dd4288-8b03-4089-b9cc-3b052398dd0c

type: cas:ReceivingRequest

5257f375-7a0c-478d-a057-4204ca58ef6a

f8774341-62ba-4d94-8760-821eb723ce28

type: cas:SendingRequest

type: cas:ReceivingRequest

ac5d0190-f72a-48ec-9357-eaf367a738f8

type: cas:ReceivingRequest

996941e6-1492-4eaa-9372-23905445d5c3

65b89625-ef94-4f0d-ab02-a56f92689594

type: cas:Request

6

ce8f6db0-5fd9-4875-a107-c9e878b22ef2

2f637441-bd62-45c4-b18c-a85a594e403f

da6643bce9489104da951aec30a71dbd

type: cas:SendingRequest

454b0af7-f327-460a-8fa4-22b05f54b2ab

e8a1cceefd0f2a94d08e9960d44235a3

type: cas:Response

type: cas:Response

type: cas:ReceivingRequest

aae69bff-43f1-4d78-90f0-18cfc1899419

type: cas:Request

type: cas:ChangingView

7

type: cas:ReceivingRequest

96fec054-a73d-4182-b4ae-1e7665f004f9

482/v/1

type: cas:ReceivingRequest

type: cas:Response

34514d6e-d195-4330-abba-ebc796eaccd4

type: cas:Request

c61456f8-6730-4bdb-84e9-3683a263e603

type: cas:RideRequest

type: cas:ReceivingRequest

type: cas:Response

457/v/3

type: cas:Response

profile/v/0.0

5fb159dc-ffe3-46b4-b622-9860788d7360

4342

type: cas:View

type: cas:Request

d2f0d50f-32a2-410a-82e6-9ce7d469ffb5

type: cas:ReceivingRequest

4343

type: cas:RideRequest

483/v/1

type: cas:Response

type: cas:Response

type: cas:SendingRequest

type: cas:ChangingView

970aac82c4d4e223fefa7975271ae968

type: cas:Response

type: cas:Response

ff7158f1-3387-43ca-8625-4608f8dfee4b

type: cas:ReceivingRequest

9

type: cas:Request

type: cas:ChangingView

6b99a51c7f6206d478c4fa6f0e0b4140

type: cas:Response

1e1dff55-a502-48e1-8f8f-d3d79129cbbd

type: cas:Response

6cdf7066-e58d-4691-a580-9fffab5345df

type: cas:SendingRequest

type: cas:ReceivingRequest

type: cas:ReceivingRequest

51357ebc07e3a968d635ca7400a28133

type: cas:SendingRequest

10

type: cas:ChangingView

type: cas:View

type: cas:Response

ea8ce63a-1857-40c5-92a7-ac0ec878e3f8

62991b16-949c-4d84-9e0b-77f38f64f914

2e1874dfe2780629991619c42f0660e7

2e1874dfe2780629991619c42f0660e7

type: cas:ChangingView

f025b612b58e2951078514df93cad031

type: cas:Request

type: cas:ReceivingRequest

cf97f90f-67cf-4667-ac0d-8fb094042ee8

type: cas:View

f025b612b58e2951078514df93cad031

ed63d356-2e03-403f-b58f-8592581719ac

type: cas:ReceivingRequest

f621c4a9-c92e-4286-b01d-f9779acd8d0c

type: cas:SendingRequest

b33ef712-110b-4120-a7d3-fe0172b872b8

type: cas:Request

4345

user_b5f3729e5418905ad2b21ce186b1c01d

type: cas:View

type: cas:SendingRequest

type: cas:View

type: cas:View

type: cas:View

type: cas:ReceivingRequest

c0ac5dc2-d7ba-4b51-8518-d915a35728f0

type: cas:SendingRequest

type: cas:ChangingView

7c65bc1b-a3d2-434c-aec0-279ae4386ecd

type: cas:View

7db2b71b867d00210c4b7dc38e48f4cb

type: cas:Response

fa364757-877c-4152-bb4a-30468f57e8cf

9

7db2b71b867d00210c4b7dc38e48f4cb

type: cas:Request

type: cas:ChangingView

b9c675876da87f3a88416aa2442b6155

fred

type: cas:Peer

21886e75-7f2c-4ce0-bced-c2264d90d0ac

type: cas:ChangingView

7c296a36-24c1-4c57-9d5e-4a4040d26dc2

type: cas:ChangingView

f4d630d180d17c5a1ed1423c6b413e23

f4d630d180d17c5a1ed1423c6b413e23

b9c675876da87f3a88416aa2442b6155

4339

type: cas:Request

97c337dd74b2440372f2ced7d6b1cd27

970aac82c4d4e223fefa7975271ae968

type: cas:View

64f635a4-cb5f-4595-98c3-3afbde253816

type: cas:ChangingView

c699d453e5a73bb208934f9a36bfca5b

type: cas:Response

type: cas:View

337b3339d5ebdb545127c8bd2e4a26d0

type: cas:SendingRequest

439080a5-858a-463b-95d4-13a8170474f4

75c7b1f3-698d-4f87-bd0b-36340c582005

type: cas:Request

6b99a51c7f6206d478c4fa6f0e0b4140

4346

type: cas:ReceivingRequest

type: cas:Request

type: cas:View

6b99a51c7f6206d478c4fa6f0e0b4140

71c1ae76-b361-4ef1-959a-a44abf51df9a

8f9a37ee-ebae-4ff9-bc15-78a7c685fc4e

type: cas:SendingRequest

type: cas:View

type: cas:ChangingView

type: cas:ReceivingRequest

ad56d851-f41d-4aca-97f1-4e28f2696dcc

51357ebc07e3a968d635ca7400a28133

250eac2e-f36d-4c02-9a81-df0329f125ed

type: cas:ChangingView

type: cas:View

b12506b733c3808980f30156873d837d

b12506b733c3808980f30156873d837d

type: cas:Request

cb5f3651-0926-4bbb-91d4-663ef3fb7547

type: cas:SendingRequest

d344af4a-f272-4afc-8779-09ac67e4c380

type: cas:SendingRequest

2c7037ec-68a0-4b49-a649-a49fe4e83ca9

type: cas:ChangingView

6442960f-a813-4dd5-bc2a-08faa377308d

95a103be-47d0-4b8c-b81c-0ef4687f545d

337b3339d5ebdb545127c8bd2e4a26d0

type: cas:ReceivingRequest

cf8d63bb-bd02-4239-894d-1cd65d5e400e

type: cas:ReceivingRequest

3231b444-c408-499e-b7df-80c87ed3ff29

type: cas:SendingRequest

c8fdb505-c247-4302-b239-5617c5b658d5

8

type: cas:View

user_b5f3729e5418905ad2b21ce186b1c01d

type: cas:Peer

337b3339d5ebdb545127c8bd2e4a26d0

type: cas:Request

type: cas:ChangingView

80e8856c-efe0-48a0-b28f-e61d4bc0100d

type: cas:Request

42366f24-f763-4279-a921-665810953934

6

c236a8f6-b313-41e8-b338-714c7a369e2c

type: cas:SendingRequest

type: cas:ReceivingRequest

754820a8-0192-46de-a741-bf164bbd7b05

type: cas:Request

type: cas:ChangingView

213cdaff-8bcb-4303-ae37-7e9cfc09e8a3

type: cas:SendingRequest

57c4b6b6-2f86-4ea2-a873-6f04dc45db2c

301fa486-21b5-451c-96f1-10dc5971c714

type: cas:ChangingView

7cdf7ade-b2dd-4fe9-b131-bcc6c375321c

user_b5f3729e5418905ad2b21ce186b1c01d/v/0

ff5ca73b851baf7b020da98e46c11e8e

4632ffc069749512ffffb317a3f54f24

type: cas:View

ff5ca73b851baf7b020da98e46c11e8e

type: cas:View

4632ffc069749512ffffb317a3f54f24

type: cas:ChangingView

6ea564cdf5ddf69ffa2c46c79ce6e40a

2feaf511-4246-416e-bb40-f91c8d3646c4

type: cas:ChangingView

type: cas:View

6ea564cdf5ddf69ffa2c46c79ce6e40a

c874fc0b-ec45-4cad-8990-16860ed5f445

type: cas:Request

type: cas:RideRequest

458/v/3

type: cas:RideRequest

type: cas:SendingRequest

87be9218-6bbf-420d-af4e-89012fbec7a5

type: cas:Request

4340

b9c675876da87f3a88416aa2442b6155

type: cas:Request

type: cas:SendingRequest

be607081-ba21-4b9c-8957-75b7193dab51

type: cas:SendingRequest

2bc4281d-88c8-4970-a0e7-482f815bba42

type: cas:View

c5babd205f28577158dc37262f106677

c5babd205f28577158dc37262f106677

type: cas:SendingRequest

1f9ba53d-a955-461e-9d11-f80c6f36a1ca

ad7c93dd-8a37-4121-9a5a-03c78a0b6733

5def59a5-4cee-46c4-bd0c-d9cd4548609d

type: cas:ChangingView

type: cas:View

a1a24cfc941985da1559abec0582ce1f

type: cas:SendingRequest

81844741-2d58-428a-bd18-ff6a59ddd9d0

type: cas:View

type: cas:ReceivingRequest

d8e292af-073c-4425-b024-996e7a628df9

7217eaa0-7faf-4275-adcd-5fc6789e966d

type: cas:ReceivingRequest

type: cas:Request

022a72af-1665-49c3-96ca-21d6de7c8579

type: cas:ChangingView

66a6a89fda8adc109674b33f35e17fab

4a7d97a20e726e711eac434702ed100b

5e8a35f5-710e-47e0-b82f-95bd10bd85a2

user_570a90bfbf8c7eab5dc5d4e26832d5b1/profile/v/0.0

9c236151-a563-464d-9fca-7e47085b0903

type: cas:ReceivingRequest

44f94403-7891-41d7-a344-29f574c335de

type: cas:SendingRequest

86f1dde4-2458-4ab6-b546-971faa487a46

type: cas:SendingRequest

c18be18a-fbeb-4207-930d-cd9ece87de5e

user_570a90bfbf8c7eab5dc5d4e26832d5b1

type: cas:Response

a8c7e094-8b22-4221-8e6f-414dc9eedf89

type: cas:SendingRequest

type: cas:Response

51663649-a9cf-498f-88c4-4adf8aa4a559.ttl

type: cas:Response

fa91b625-3f2a-4b04-aa48-ec39e6c3b2ca

10

type: cas:ReceivingRequest

type: http2011:201

type: cas:SendingRequest

type: cas:ReceivingRequest

c877352c-4c8d-47ca-8fbf-d7417f315e8e

a8d495d1-9628-4cab-b039-6a401cfdc78f

be05ae85-f9ee-47f4-9cdc-a99174db4758

4340

type: cas:ComputingResponse

type: cas:Request

type: cas:ReceivingRequest

2be98902-6663-4c4f-967d-9634f2527258

fe1a52f1-bb6d-46ed-b842-99c7e7b4f7c7

user_b5f3729e5418905ad2b21ce186b1c01d

type: cas:Request

type: cas:Response

type: type: task_request_index: task_request_rideQualityThreshold: task_request_agreedRidePlan: task_request_route: task_request_version: task_request_desDateTimeWindowLow: task_request_capacity: task_request_departure_location: task_request_desDateTimeWindowHigh: task_request_depDateTimeWindowLow: task_request_revision: task_request_destination_location: task_request_smoking: task_request_pets: task_request_depDateTimeWindowHigh: task_request_priceBound: task_request_driverAgreedRidePlans: task_request_id: task_request_mode: task_request_user: task_request_comments: task_request_currency: task_request_invalidRidePlans: task_request_potentialRidePlans: task_request_manageBy:

7c8de64b-879c-4c2c-ae3c-165de29856fc

type: cas:SendingResponse

4342

type: cas:Request

rideRequests/558/v/3

type: cas:RideRequest

cas:TaskRequest cas:InvalidTaskRequest 558 0 https://pilot1-api.smart-society-project.eu/ridePlans/278 Route description for agent with username ... 3 2015-11-26T17:08:00+00:00 1 Augsburg, Germany 2015-11-26T17:08:00+00:00 2015-11-26T17:08:00+00:00 3 Gilan, Iran No No 2015-11-26T17:08:00+00:00 1 null 56572e9d5b14b5aa00f6b86d driver pre_2:user_b5f3729e5418905ad2b21ce186b1c01d Comments for agent with username ... Euro null null

4346

type: cas:Response

rideRequests/558

type: cas:RideRequest

type: cas:ComputingResponse

Route description for agent with username ... 2 2015-11-26T17:08:00+00:00 1 Augsburg, Germany 2015-11-26T17:08:00+00:00 2015-11-26T17:08:00+00:00 2 Gilan, Iran No No 2015-11-26T17:08:00+00:00 1 https://pilot1-api.smart-society-project.eu/ridePlans/278 56572e9d5b14b5aa00f6b86d driver pre_2:user_b5f3729e5418905ad2b21ce186b1c01d Comments for agent with username ... Euro null null

type: cas:RideRequest

cas:SendingResponse uuid:fb43f9b4-0f43-4bf0-8ccc-5c12f0814001 uuid:8134864c-5784-4734-8a18-c61de98d9471

type: cas:Task

type: startTime: endTime:

type: http2011:201

ridePlans/278/v/1 type: cas:ComputingNegotiation

f95667e8-8911-4f9f-84fa-d83f0ca71a7a

type: type: task_request_desDateTimeWindowHigh: task_request_smoking: task_request_driverAgreedRidePlans: task_request_departure_location: task_request_index: task_request_desDateTimeWindowLow: task_request_rideQualityThreshold: task_request_id: task_request_comments: task_request_user: task_request_mode: task_request_route: task_request_agreedRidePlan: task_request_currency: task_request_destination_location: task_request_version:

type: http2011:201

type: type: task_smoking: task_comments: task_pets: task_currency: task_commuterOpinions: task_agreedCommuters: task_priceRange: task_rejectedCommuters: task_depDateTimeWindowHigh: task_index: task_id: task_version: task_driverOpinions: task_rejectedDriver: task_potentiallyAgreedDriver: task_depDateTimeWindowLow: task_route: task_potentiallyAgreedCommuters: task_potentialDriver: task_desDateTimeWindowHigh: task_revision:

ridePlans/278/v/0

557/v/0

type: cas:ComputingNegotiation

type: cas:Response

ridePlans/278/v/2

cas:TaskRequest 557 0

rideRequests/557

type: cas:TaskRequest

type: task_request_index: task_request_rideQualityThreshold: task_request_agreedRidePlan: task_request_route: task_request_version: task_request_desDateTimeWindowLow: task_request_capacity: task_request_departure_location: task_request_desDateTimeWindowHigh: task_request_depDateTimeWindowLow: task_request_revision: task_request_destination_location: task_request_smoking: task_request_pets: task_request_depDateTimeWindowHigh: task_request_priceBound: task_request_driverAgreedRidePlans: task_request_id: task_request_mode: task_request_user: task_request_comments: task_request_currency: task_request_invalidRidePlans: task_request_potentialRidePlans: task_request_manageBy:

type: type: task_request_index: task_request_rideQualityThreshold: task_request_agreedRidePlan: task_request_route: task_request_version: task_request_desDateTimeWindowLow: task_request_capacity: task_request_departure_location: task_request_desDateTimeWindowHigh: task_request_depDateTimeWindowLow: task_request_revision: task_request_destination_location: task_request_smoking: task_request_pets: task_request_depDateTimeWindowHigh: task_request_priceBound: task_request_driverAgreedRidePlans: task_request_id: task_request_mode: task_request_user: task_request_comments: task_request_currency: task_request_invalidRidePlans: task_request_potentialRidePlans: task_request_manageBy:

type: cas:ReceivingRequest

type: cas:Response

type: cas:FeedbackReport

cas:TaskRequest 557 0

557/v/3

type: cas:RideRequest

Route description for agent with username ... 0 2015-11-26T17:06:00+00:00 1 Augsburg, Germany 2015-11-26T21:06:00+00:00 2015-11-26T17:06:00+00:00 0 Gilan, Iran No No 2015-11-26T21:06:00+00:00 1 null 56572e425b14b5aa00f6b804 commuter pre_2:user_570a90bfbf8c7eab5dc5d4e26832d5b1 Comments for agent with username ... Euro null null

type: http2011:201

type: cas:RideRequest

type: startTime: endTime:

type: cas:ReceivingFeedback

ebc2f13dc7aeb46cbedb0949e8088d7877a1a7fb3ae40633c285544c

type: startTime: endTime:

cas:SendingResponse uuid:bd4f3aae-0abb-468a-8f15-ba8ff1da48ba uuid:bac40f32-2c2a-4998-a11a-d6439b0acdf9

cas:SendingResponse uuid:02de7097-3a76-48df-ac97-d5a9aab327fd uuid:0438140e-e2d7-4ca3-9909-c61d203367b9

type: cas:Response

type: cas:ComputingReputation

4d802d49-e77b-4b57-9d47-9bdbd7d87ce4

cef4f57c-58db-41c8-b8c2-1e1662b5ef32

c2ae615f-7342-49fb-85a0-064cb6c831fa

type: http2011:201

type: cas:Task

ridePlans/278

type: cas:SendingResponse

1be814fa5d4891fd470c184d1dab6aad634ab48bd2537a2010acd626

type: cas:ComputingResponse

478/

type: cas:OrchestrationPeer

type: cas:Response

type: cas:ReputationReport type: cas:Response type: cas:Request

activity/computing_reputation/ebc2f13dc7aeb46cbedb0949e8088d7877a1a7fb3ae40633c285544c

type: cas:Response

application/6/reputation/1243/

1be814fa5d4891fd470c184d1dab6aad634ab48bd2537a2010acd626

f66ccba9-2aac-4a78-b02b-dbdce4887ca9

type: cas:Response

4343

type: cas:ReceivingRequest

cas:TaskRequest cas:InvalidTaskRequest 557 0 https://pilot1-api.smart-society-project.eu/ridePlans/278 Route description for agent with username ... 3 2015-11-26T17:06:00+00:00 1 Augsburg, Germany 2015-11-26T21:06:00+00:00 2015-11-26T17:06:00+00:00 3 Gilan, Iran No No 2015-11-26T21:06:00+00:00 1 null 56572e425b14b5aa00f6b804 commuter pre_2:fred Comments for agent with username ... Euro null null

Route description for agent with username ... 2 2015-11-26T17:06:00+00:00 1 Augsburg, Germany 2015-11-26T21:06:00+00:00 2015-11-26T17:06:00+00:00 2 Gilan, Iran No No 2015-11-26T21:06:00+00:00 1 https://pilot1-api.smart-society-project.eu/ridePlans/278 56572e425b14b5aa00f6b804 commuter pre_2:fred Comments for agent with username ... Euro null null

b86364bf-c561-452c-88cd-d17e6c025953

type: task_request_index: task_request_rideQualityThreshold: task_request_agreedRidePlan: task_request_route: task_request_version: task_request_desDateTimeWindowLow: task_request_capacity: task_request_departure_location: task_request_desDateTimeWindowHigh: task_request_depDateTimeWindowLow: task_request_revision: task_request_destination_location: task_request_smoking: task_request_pets: task_request_depDateTimeWindowHigh: task_request_priceBound: task_request_driverAgreedRidePlans: task_request_id: task_request_mode: task_request_user: task_request_comments: task_request_currency: task_request_invalidRidePlans: task_request_potentialRidePlans: task_request_manageBy:

557/v/2

type: cas:RideRequest

cas:InvalidTask cas:Task 1-1 pre_2:fred https://pilot1-api.smart-society-project.eu/users/ed/opinionsDriverCommuters/fred 278 pre_2:user_b5f3729e5418905ad2b21ce186b1c01d No 56572e9e5b14b5aa00f6b87a pre_2: Route description for agent with username ... pre_17:nil 2015-11-26T17:08:00+00:00 https://pilot1-api.smart-society-project.eu/users/fred/opinionsCommuterDrivers/ed Euro 0 Comments for agent with username ...

0edcc5bf-db95-41bf-9d92-2d747a22568a

type: type: task_priceRange: task_potentiallyAgreedCommuters: task_driverOpinions: task_index: task_potentiallyAgreedDriver: task_smoking: task_id: task_rejectedDriver: task_route: task_agreedCommuters: task_depDateTimeWindowHigh: task_commuterOpinions: task_currency: task_version: task_comments:

Euro Gilan, Iran 1

cas:Task cas:InvalidTask No Comments for agent with username ... No Euro https://pilot1-api.smart-society-project.eu/users/fred/opinionsCommuterDrivers/ed pre_2:fred 1-1 pre_17:nil 2015-11-26T17:08:00+00:00 278 56572e9e5b14b5aa00f6b87a 1 https://pilot1-api.smart-society-project.eu/users/ed/opinionsDriverCommuters/fred pre_2: pre_2: 2015-11-26T17:08:00+00:00 Route description for agent with username ... pre_17:nil pre_2: 2015-11-26T17:08:00+00:00 2

type: cas:Task

ridePlans/558/v/3

type: cas:GeneratingComposition

cas:InvalidTaskRequest cas:TaskRequest 2015-11-26T21:06:00+00:00 No null Augsburg, Germany 557 2015-11-26T17:06:00+00:00 0 56572e425b14b5aa00f6b804 Comments for agent with username ... pre_2:fred commuter Route description for agent with username ...

rideRequests/557/v/1

type: cas:SubmitingTaskRequest

receiving_request_557

user_570a90bfbf8c7eab5dc5d4e26832d5b1

activity/receiving_reputationResource/1be814fa5d4891fd470c184d1dab6aad634ab48bd2537a2010acd626

type: cas:FeedbackReport type: cas:Response

IMAGINARY-ABACAS

type: cas:Response

application/6/reputation/1241/

d39f37e0-b556-4f62-8bbf-25b0a1b927b7

2e1eebbf-bfc3-4a10-a5a4-f76c612804e9

cas:SendingResponse uuid:efb31d06-38cb-499f-aeea-56007a2c91c6 uuid:881bb08a-ea78-42de-ade7-2c3c12e42dd3

1251613d-7639-4e6d-9ced-7a651e2bf0ef

cas:Task cas:InvalidTask No Comments for agent with username ... No Euro https://pilot1-api.smart-society-project.eu/users/fred/opinionsCommuterDrivers/ed pre_17:nil 1-1 pre_17:nil 2015-11-26T17:08:00+00:00 278 56572e9e5b14b5aa00f6b87a 0 https://pilot1-api.smart-society-project.eu/users/ed/opinionsDriverCommuters/fred pre_2: pre_2: 2015-11-26T17:08:00+00:00 Route description for agent with username ... pre_2:fred pre_2: 2015-11-26T17:08:00+00:00 1

558/v/1

19d8b22a-6cdd-4d13-a01a-8bd362fcff7f

ridePlans/557/v/3

type: type: task_smoking: task_comments: task_pets: task_currency: task_commuterOpinions: task_agreedCommuters: task_priceRange: task_rejectedCommuters: task_depDateTimeWindowHigh: task_index: task_id: task_version: task_driverOpinions: task_rejectedDriver: task_potentiallyAgreedDriver: task_depDateTimeWindowLow: task_route: task_potentiallyAgreedCommuters: task_potentialDriver: task_desDateTimeWindowHigh: task_revision:

2015-11-26T17:08:00+00:00 Euro Gilan, Iran 558 1

cas:InvalidTaskRequest cas:TaskRequest No null Augsburg, Germany 0 Comments for agent with username ... 56572e9d5b14b5aa00f6b86d driver pre_2:user_b5f3729e5418905ad2b21ce186b1c01d Route description for agent with username ...

type: cas:ReputationReport type: cas:Response type: cas:Request

application/6/feedback/477/

776a356953411087b29e28e5aa07b02ae031db9fbbd15fca40540bb9

type: cas:ReceivingFeedback

type: cas:ComputingReputation

activity/computing_reputation/776a356953411087b29e28e5aa07b02ae031db9fbbd15fca40540bb9

application/6/reputation/1240/

type: cas:ReceivingRequest

activity/receiving_reputationResource/7a32b07a1968e11957430a687b97512e89dd72a9d8217fca0d7770fa

e491e7eb-e0f1-4e41-9afd-0b8ad03c78f9

type: startTime: endTime:

type: http2011:201

type: cas:Response

type: type: task_request_smoking: task_request_driverAgreedRidePlans: task_request_departure_location: task_request_rideQualityThreshold: task_request_comments: task_request_id: task_request_mode: task_request_user: task_request_route: task_request_agreedRidePlan: task_request_desDateTimeWindowLow: task_request_currency: task_request_destination_location: task_request_index: task_request_version:

rideRequests/558/v/0

18d5c871-fa4b-4fda-a289-df9d50b135a4

type: cas:SendingResponse

receiving_request_558

type: cas:SubmitingTaskRequest

cas:TaskRequest 558 0

type: cas:Response

278

7a32b07a1968e11957430a687b97512e89dd72a9d8217fca0d7770fa

type: cas:Response type: cas:ReputationReport

7a32b07a1968e11957430a687b97512e89dd72a9d8217fca0d7770fa

Route description for agent with username ... 0 2015-11-26T17:08:00+00:00 1 Augsburg, Germany 2015-11-26T17:08:00+00:00 2015-11-26T17:08:00+00:00 0 Gilan, Iran No No 2015-11-26T17:08:00+00:00 1 null 56572e9d5b14b5aa00f6b86d driver pre_2:user_b5f3729e5418905ad2b21ce186b1c01d Comments for agent with username ... Euro null null

cas:TaskRequest 558 0

type: http2011:201

fcb81727-1e48-45c8-aadb-71d972a5b685

type: task_request_index: task_request_rideQualityThreshold: task_request_agreedRidePlan: task_request_route: task_request_version: task_request_desDateTimeWindowLow: task_request_capacity: task_request_departure_location: task_request_desDateTimeWindowHigh: task_request_depDateTimeWindowLow: task_request_revision: task_request_destination_location: task_request_smoking: task_request_pets: task_request_depDateTimeWindowHigh: task_request_priceBound: task_request_driverAgreedRidePlans: task_request_id: task_request_mode: task_request_user: task_request_comments: task_request_currency: task_request_invalidRidePlans: task_request_potentialRidePlans: task_request_manageBy:

558/v/2

type: cas:Response

type: cas:Response

type: cas:ReceivingRequest

activity/receiving_subjectInfoByURI/c536c1e9b9c39492e808721458575f7048e728fa8b56ce4f6a820922

type: task_request_index: task_request_rideQualityThreshold: task_request_agreedRidePlan: task_request_route: task_request_version: task_request_desDateTimeWindowLow: task_request_capacity: task_request_departure_location: task_request_desDateTimeWindowHigh: task_request_depDateTimeWindowLow: task_request_revision: task_request_destination_location: task_request_smoking: task_request_pets: task_request_depDateTimeWindowHigh: task_request_priceBound: task_request_driverAgreedRidePlans: task_request_id: task_request_mode: task_request_user: task_request_comments: task_request_currency: task_request_invalidRidePlans: task_request_potentialRidePlans: task_request_manageBy:

type: cas:TaskRequest

type: http2011:201

8599f28d-46ef-48df-9043-579a47518c23

type: cas:Response

response/4342

c536c1e9b9c39492e808721458575f7048e728fa8b56ce4f6a820922

type: cas:ComputingResponse

c536c1e9b9c39492e808721458575f7048e728fa8b56ce4f6a820922

38b66c10-b6b7-4ff1-b0b4-fe0db6a957bd

type: cas:SendingRequest

type: cas:SendingResponse

activity/sending_subjectInfoByURI/edeb9e19f7a2ef6c29b3b3a3ddfaa44452d3816b45d8b6c5d80df126

type: cas:ReceivingRequest

activity/receiving_subjectInfoByURI/edeb9e19f7a2ef6c29b3b3a3ddfaa44452d3816b45d8b6c5d80df126

edeb9e19f7a2ef6c29b3b3a3ddfaa44452d3816b45d8b6c5d80df126

type: cas:Request

type: cas:Response

0721b159-e0a6-44d5-b107-29437560df59

response/4340

type: cas:Response

rs/

type: http2011:201

type: cas:ComputingResponse

type: cas:SendingResponse

type: cas:Response

4341

type: cas:ComputingResponse

type: cas:ReceivingRequest

type: cas:SendingResponse

4341

776a356953411087b29e28e5aa07b02ae031db9fbbd15fca40540bb9

776a356953411087b29e28e5aa07b02ae031db9fbbd15fca40540bb9

type: cas:ReceivingRequest

776a356953411087b29e28e5aa07b02ae031db9fbbd15fca40540bb9

type: cas:Request

activity/receiving_subjectInfoByURI/4800b595c43806426b3b04f2aa5764245acacd1cc0986d345cc38e28

4800b595c43806426b3b04f2aa5764245acacd1cc0986d345cc38e28

type: cas:Response type: cas:ReputationReport

4800b595c43806426b3b04f2aa5764245acacd1cc0986d345cc38e28

type: cas:Request

4345

type: cas:Response

0148f048-4e47-4aed-ab45-4b968d9c1166

type: cas:Response

response/4345

application/6/reputation/1242/

type: cas:Response

1235/

1236/

type: cas:Response

type: cas:Response

3/ type: cas:Response

1/

4339

type: cas:Request

type: cas:Response

application/6/subject/byURI/https%3A%2F%2Fpilot1-pm.smart-society-project.eu%2Fusers%2Fuser_b5f3729e5418905ad2b21ce186b1c01d/v/2/

type: cas:Response

application/6/subject/byURI/https%3A%2F%2Fpilot1-pm.smart-society-project.eu%2Fusers%2Fuser_b5f3729e5418905ad2b21ce186b1c01d/

type: cas:Response

type: http2011:201

response/4339

type: cas:SendingResponse

type: cas:SendingResponse

type: cas:Response

4344

4344

type: cas:Request

type: cas:Response

type: cas:Response

type: cas:ReceivingRequest

1238/

type: cas:ComputingResponse

ebc2f13dc7aeb46cbedb0949e8088d7877a1a7fb3ae40633c285544c

ebc2f13dc7aeb46cbedb0949e8088d7877a1a7fb3ae40633c285544c

ebc2f13dc7aeb46cbedb0949e8088d7877a1a7fb3ae40633c285544c

1237/

007b4e9369d8e3a3674de338fcf45c871a5377088cea8fdb906c3a3f

type: cas:ComputingResponse

activity/sending_subjectInfoByURI/007b4e9369d8e3a3674de338fcf45c871a5377088cea8fdb906c3a3f

type: cas:Response

type: cas:ReceivingRequest

3f04c1e9-bb09-4a10-b9ea-0ab8ea90f7da

type: cas:Response

activity/receiving_subjectInfoByURI/007b4e9369d8e3a3674de338fcf45c871a5377088cea8fdb906c3a3f

type: cas:ReputationPeer

1/ type: cas:Response

type: cas:Response

type: cas:Response

type: cas:Response

3/

application/6/subject/byURI/https%3A%2F%2Fpilot1-pm.smart-society-project.eu%2Fusers%2Fuser_570a90bfbf8c7eab5dc5d4e26832d5b1/

application/6/subject/byURI/https%3A%2F%2Fpilot1-pm.smart-society-project.eu%2Fusers%2Fuser_570a90bfbf8c7eab5dc5d4e26832d5b1/v/2/

type: cas:Response

type: cas:Peer

c SmartSociety Consortium 2013-2017 Deliverable D2.4

Figure 12: The provenance generated for two users organising a ride and leaving feedback. This figure is used to illustrate the scale of provenance summarised in Figure 13, and hence we do not expect you to read the details.

http://www.smart-society-project.eu


att

c SmartSociety Consortium 2013-2017

gen

assoc

der

spe

der

use

gen att

use

spe

activity_16 (6)

assoc use

der

use

att

gen der

assoc

assoc

assoc

use

use

gen

der

use

uuid_12 (6)

der

der der der gen

der

response_17 (6)

gen der att

request_19 (2)

gen

att

alt der

use assoc

activity_28 (10)

use

request_18 (4)

receiving_submittedFeedback_45 (2)

sending__15 (6)

der altspe

der

rs_27 (1)

response_10 (2)

computing_reputation_42 (2)

reputation_46 (4)

application_41 (7)

gen

receiving_feedback_33 (2)

att

T_1 (9) spe

att

use use

gen der der

der

assoc

uuid_13 (13)

use

response_43 (4)

alt

use

att der

der

https%3A%2F%2Fpilot1-pm.smart-society-project.eu%2Fusers%2Fuser__8att(6)

spe

https%3A%2F%2Fpilot1-pm.smart-society-project.eu%2Fusers%2Fuser__32 (2)

pilot1-_23 (4) der

att

use assoc use use

derspe

der

use gen der der

att spe

der der

der

pilot1-client.smart-society-project.eu_14 (10)

spe

der spe

T_44 (3)

der

der

T_11 (23)

der

spe

spe

gen att pilot1-client.smart-society-project.eu_20 (12) gen

att gen

4a7d97a20e726e711eac434702ed100b_26 (1)

pilot1-client.smart-society-project.eu_7 (22)

spe

270f811e67b0437b1577caec9b504395_47 (1)

use

der

gen

assoc

att

gen

uuid_24 (4)

der

der

uuid_4 (28)

use use assoc

uuid_3 (13)

der

use

username_52 (3)

uuid_9 (4)

assoc

use

att

gen

rideRequests_38 (4)

oldOffers_25 (3)

der der der

uuid_22 (9)

der

att

ridePlans_5 (1)

der

gen

gen

der

att

gen

assoc

der

assoc

use

uuid_6 (2)

use

spe der

der spe

gen

use

gen

der

v_53 (2)

der

der

att der

use use assoc

gen

gen use

derspe

der

rideRequests_21 (8)att

ridePlans_35 (2)

gen

assoc

0edcc5bf-db95-41bf-9d92-2d747a22568a_29 (1)

use

f95667e8-8911-4f9f-84fa-d83f0ca71a7a_50 (1)

7c65bc1b-a3d2-434c-aec0-279ae4386ecd_48 (1)

gen att

gen att

v_37 (1)

v_30 (2)

spe

att

rideRequests_34 (2)

derspe

rideRequests_31 (6)

d39f37e0-b556-4f62-8bbf-25b0a1b927b7_51 (1)

c2ae615f-7342-49fb-85a0-064cb6c831fa_2 (1)

19d8b22a-6cdd-4d13-a01a-8bd362fcff7f_49 (1)

uuid_40 (2)

gen

uuid_39 (4)

assoc

IMAGINARY-ABACAS_36 (1)

assoc

gen

receiving_request_55_54 (2)

Deliverable D2.4 c SmartSociety Consortium 2013-2017

Figure 13: Number of triples in the provenance collected by the SmartShare application

103 of 105


c SmartSociety Consortium 2013-2017

Deliverable D2.4

Figure 14: Close up of the provenance summary for the reputation service

Figure 15: Close up of the provenance summary for the orchestration service

104 of 105

http://www.smart-society-project.eu


Deliverable D2.4

c SmartSociety Consortium 2013-2017

Figure 16: Close up of the provenance summary for the mobile application

c SmartSociety Consortium 2013-2017

105 of 105


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.