<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Repairing Provenance Policy Violations by Inventing Non-Functional Nodes</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Saumen Dey</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Daniel Zinn</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Bertram Luda¨scher</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Dept. of Computer Science, University of California</institution>
          ,
          <addr-line>Davis</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Genome Center, University of California</institution>
          ,
          <addr-line>Davis</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>In scientific collaborations, provenance is increasingly used to explain, debug, reproduce, and determine the validity and quality of data products. In such environments, it can be infeasible or undesirable to publish the complete provenance of all the final output data products. We have developed PROPUB, a system that allows users to publish a customized version of their data provenance, based on a set of publication and customization requests, while observing certain provenance publication policies, expressed as logic integrity constraints. The user's customization requests may violate one or more integrity constraints. In previous work, we removed additional parts of the provenance graph (i.e., not directly requested by the user) to repair policy violations. In this paper, we present an alternative approach which ensures that all relevant nodes are retained in the provenance graph. The key idea is to introduce new (non-functional) nodes that are used to represent lineage dependencies, without revealing information that the user wants to protect. With this new approach, a user may now explore different provenance publication strategies, and choose the most appropriate one before publishing sensitive provenance data.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        In the emerging paradigm of collaborative, data-intensive science, sharing data products
even prior to publication is desirable [
        <xref ref-type="bibr" rid="ref1 ref2">1,2</xref>
        ]. Yet, without a proper scientific publication
associated with openly published data, its validity and accuracy might be questionable.
This is problematic in an open environment, where published data by one scientist is
used by another scientist as input for further data analyses. In such an environment, data
provenance (the lineage and processing history of data) can help to ensure data quality
[
        <xref ref-type="bibr" rid="ref3 ref4 ref5 ref6 ref7">3,4,5,6,7</xref>
        ]. It is thus desirable to publish data products together with their provenance.
      </p>
      <p>
        In many cases, however, provenance data can be sensitive and may contain private
information or intellectual property that should not be revealed [
        <xref ref-type="bibr" rid="ref5 ref7 ref8">7,8,5</xref>
        ]. Consequently,
a balancing act (Figure 1) is necessary between (i) the desire to publish provenance
data so that collaborators can understand and rely on the shared data products, and (ii)
the need to protect sensitive information, e.g., due to privacy concerns or intellectual
property issues.
      </p>
      <p>
        We view provenance as a bipartite, directed, acyclic graph, capturing which data
nodes were consumed and produced, respectively, by invocation (i.e., computation)
nodes. Our model thus corresponds to the Open Provenance Model (OPM) which
captures the dependencies between data artifacts and invocations [
        <xref ref-type="bibr" rid="ref10 ref9">9,10</xref>
        ].
      </p>
      <p>The Balancing Act</p>
    </sec>
    <sec id="sec-2">
      <title>Privacy &amp;</title>
    </sec>
    <sec id="sec-3">
      <title>Relevancy</title>
    </sec>
    <sec id="sec-4">
      <title>Concerns</title>
    </sec>
    <sec id="sec-5">
      <title>Provenance</title>
    </sec>
    <sec id="sec-6">
      <title>Publishing</title>
      <p>
        To sanitize provenance graphs, a scientist can remove sensitive data nodes or
invocations nodes from the provenance graph. Alternatively, she can abstract a set of
sensitive nodes by grouping them into a single, abstract node. This update may violate
some of the integrity constraints of the provenance graph [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. For example, grouping
multiple nodes into one abstraction node may introduce new dependencies which were
absent in the initial provenance graph. Hiding nodes may also make some nodes in the
final graph appear independent of each other even though they are dependent in the
initial graph. Thus, one can no longer trust that the published provenance data is “correct”
(e.g., there are no false dependencies) or “complete” (e.g., there are no false
independencies). Therefore, we propose a system that allows a publisher to provide a high-level
specification what parts of the provenance graph are to be published and which parts are
to be sanitized, while guaranteeing that at the same time certain provenance publication
constraints are observed.
2
      </p>
      <sec id="sec-6-1">
        <title>Motivating Example</title>
        <p>
          Figure 2(a) shows the provenance graph (PG) taken from the First Provenance
Challenge [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]. Data nodes are depicted as circles and invocation nodes (representing
computations) as boxes; dependencies among them are shown as directed edges. These
edges capture the lineage of data and thus are typically drawn from right (newer nodes)
to left (older nodes). For example, d16 was generated by an invocation s2, and was in
turn used by invocation c2, denoted by, respectively s2 g←en−by d16 and d16 u←se−d c2.
        </p>
        <p>Let us assume, the user wants to publish data products d18 and d19 along with their
lineage data. Then, she will issue the publication requests as shown in Figure 2(a). A
recursive query is used to retrieve all data and invocation nodes upstream from d18 and
d19 and we get a modified provenance graph (PG!) as shown in Figure 2(b). Note that
the lineage of d20 up to s3 is not relevant for d18 and d19 and hence not included in PG!.
Further assume that before publishing PG!, the user also requests a set of
customizations as shown in Figure 2(b).</p>
        <p>Figure 3 shows the provenance graph we get after applying all the customization
requests. We see that this provenance graph violates three provenance policies: There
!"#
!$%#
!$$#
!$&amp;#
'$!
!$(#
!$)#</p>
        <p>*(! !$.# ,(! !&amp;%#
(a) Provenance graph (PG) and publish request</p>
        <p>"#$%&amp;'(!%&amp;)*+,*!
*$!
*&amp;!
!$+#
!$-#
,$!
,&amp;!
!$/#
!$"#
%&amp;)*+,*-./01!
%&amp;)*+,*-./21!
!"#
!$%#
!$$#
!$&amp;#
"#$#%&amp;'()!
'$!
!$(#
!$)#
"*+,-".,!
*$! !$+#
*&amp;! !$-#
,$!
,&amp;!
/'0)!
/'0)!
"*+,-".,10234!526!
"*+,-".,1+24!526!
!$.# "*+,-".,1&amp;24!526!</p>
        <p>
          "#$#%&amp;'()10226!
!$"# "#$#%&amp;'()10276!
is a cycle between d13 and g1, a type error for the edge from s2 to g1 (the graph should
be bipartite), and there is no dependency between d19 and d16, violating, respectively,
the No-Cyclic Dependency (NCD), No-Type Error (NTE) and No-False Independence
(NFI) policies. On the other hand, the provenance policies No-Write Conflict (NWC)
and No-False Dependence (NFD) are not violated by these customization requests.
Outline and Contributions. In Section 3, we first describe the provenance model, user
requests, provenance policies, and logical architecture of PROPUB. This overall
framework was proposed recently in [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]. In Section 4 we present our main contribution, i.e.,
a new way to repair policy violations, not by removing additional nodes (as in our prior
work), but by introducing new (non-functional) nodes that represent the original lineage
dependencies, without revealing information that the user wants to protect. We describe
in detail how policy violations will be repaired such that all relevant nodes are retained
in the final provenance graph. Related work is discussed in Section 5 and Section 6
presents some concluding remarks and suggestions for future work.
3
        </p>
      </sec>
      <sec id="sec-6-2">
        <title>Provenance Publisher (PROPUB)</title>
        <p>
          In our recent work, we developed the system PROPUB [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ], which uses a declarative
approach to publish customized policy-aware provenance. PROPUB accepts the initial
provenance graph and two types of input specifications. (i) User Requests: the
publication and customization requests, and (ii) Provenance Policies: the integrity constraints
Relation Name Description
used(I, D) An edge specifying that the invocation I used the data artifact D.
gen by(D, I) An edge to indicate that the data artifact D was generated by invocation I.
actor(I, A) An invocation node I, which was executed by actor A.
data(D, R) A data artifact node, whose value can be retrieved using the reference R.
dep(X, Y) An auxiliary relation and defined as dep = used ∪ gen by and to specify that
node X depends on node Y , irrespective of the node types.
to be observed. PROPUB then applies all user requests on the initial provenance graph
and checks for policy violations. In case there is a violation, it applies repairs and
generates the customized provenance graph.
        </p>
        <p>
          Provenance Model. The provenance model used in PROPUB is based on OPM, the
Open Provenance Model [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] and our earlier work [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]: A provenance (or lineage)
graph is an acyclic graph P G = (V, E), where the nodes V = D ∪ I represent either
data items D or actor invocations I. The graph G is bipartite, i.e., the edges E = Euse ∪
Egby are either used edges Euse ⊆ I × D or generated-by edges Egby ⊆ D × I. Here,
a used edge (i, d) ∈ E means that invocation i has read d as part of its input, while a
generated-by edge (d, i) ∈ E means that d was output data, written by invocation i.
We use the schema shown in Table 1.
        </p>
        <p>User Requests. The user requests supported by the PROPUB framework are
summarized in Table 2. The PROPUB system expects user requests to be asserted as relational
facts that can then be used by a Datalog rule engine. An user request can be a
publication request or a customization request. A customization user request can request to
remove a node or an edge or to keep that in the final graph.</p>
        <p>Provenance Policies. The provenance graph supported by PROPUB is a bipartite
directed acyclic graph. Also, an invocation can read many data artifacts, but a data
artifact is written by exactly one invocation. We developed three provenance policies to
verify if these structural properties are satisfied in the provenance graph PG!Δu, which
we get after applying all the customization requests on PG!. PROPUB has two more
provenance policies to ensure the correctness and completeness of information. These
provenance policies are briefly defined in Table 3.</p>
        <sec id="sec-6-2-1">
          <title>Provenance Policy Description</title>
          <p>No-Write Conflict (NWC) A data artifact can be written by only one invocation.
No-Cyclic Dependency (NCD) There is no cycle between any two nodes X and Y.</p>
          <p>No-Type Error (NTE) Two nodes with a direct dependency are of different types.
No-False Dependence (NFD) Two nodes are dependent in PG!Δu only if they are dependent
in PG!.</p>
          <p>No-False Independence (NFI) Two nodes are independent in PG!Δu only if they are
independent in PG!.
Constraint Description
ic:wc(X, Y) Write conflict: invocations X and Y are creating the same data node.
ic:cd(X, Y) Cyclic dependency between nodes X and Y.
ic:te(X, Y) Type error: nodes X and Y are connected via used or gen by edges, but don’t have
the corresponding node types.
ic:fd(X, Y) False dependency: node Y depends on X in PG!Δu, but not in PG!.
ic:fi(X, Y) False independence: node Y depends on X in PG!, but not in PG!Δu.</p>
          <p>We use a set of integrity constraints (ICs) to check whether the provenance policies
defined in Table 3 are satisfied. Table 4 lists the “witness relations” that are defined by
rules (not shown) and which are used to detect particular IC violations.3
3.1</p>
        </sec>
        <sec id="sec-6-2-2">
          <title>Logical Architecture</title>
          <p>The logical architecture of the PROPUB system is shown in Figure 4. The user submits a
set of publication and customization requests U0. The module Direct-Conflict-Detection
detects direct conflicts among the given user-requests. For example, a hide and a retain
request on the same node is an obvious conflict. The user needs to update her original
requests until all direct conflicts are resolved, resulting in a conflict-free user request
U. The Lineage-Selection module computes the sub graph PG!, which contains all
tobe-published data items (specified using the ‘lineage’ predicate) together with their
complete provenance.</p>
          <p>The Request-Policy-Evaluation module calculates the updates (Δu: inform of insert
and delete) needed to apply all the user requests from U on PG!. It applies Δu on
PG! and get a customized provenance graph PG!Δu. Then it checks if all the selected
provenance policies (PP) are observed by evaluating respective integrity constraints. In
case some of the policies are violated, this module calculates updates (Δp: inform of
insert and delete) needed to repair the violations. In a final conflict resolution step using
the module Implied-Conflict-Detection-Resolution, the system detects all such implied
3 For example., we can detect whether a data node is created by different invocations X and Y
and record this as ic:wc(X, Y ).</p>
          <p>()&amp;*'+&amp;,-&amp;).'</p>
          <p>;"&lt;=$7.'
!"#$%&amp;#'()&amp;*'
+&amp;,-&amp;).)'('
+$,-#./.0#%%
+,850&gt;%E+F%
&gt;?&lt;"*&amp;#'()&amp;*'
+&amp;,-&amp;).)''
5$"60.&amp;#'
3"6$7$&amp;)'</p>
          <p>!"#$%
&amp;#'(#")"%!*%
:5$#0)%;,.&lt;50)%</p>
          <p>:#)#09,.%
45.#/6#%7#8#09,.%
&amp;#'(#")%=%+,850&gt;%</p>
          <p>?-/8(/9,.%
@A285#B%;,.&lt;50)%
:#)#09,.%=%
&amp;#",8(9,.%
1(/$/.)##B%
+,8505#"%
+$,-#./.0#%
1$/23%+1%
!"#$%&amp;#'
/*012'3/4'
8-9'3/:'8-9'</p>
          <p>(9'3'
D,.,$#B%!"#$%
&amp;#'(#")"%
;("),A5C#B%
+$,-#./.0#%</p>
          <p>1$/23%
conflicts by comparing Δu and Δp. In case an implicit conflict is detected, it selects
another subset from the given U and PP following the user preferences. These steps are
repeated until there is no more policy violations. It then applies Δp on PG!Δu to get
the customized provenance graph (CG) ready to be published.
4</p>
        </sec>
      </sec>
      <sec id="sec-6-3">
        <title>Repairing Policy Violations</title>
        <p>If we apply the customization user requests on PG!, we get an intermediate provenance
graph PG!Δu as we shown in Figure 2(a), 2(b) and 3. But, PG!Δu may violate one
or more provenance policies. In case the PG!Δu violates a structural policy (NWC,
NCD, and NTE), it will no more be a proper provenance graph. Also, in case it violates
a non-structural policy (NFI and NFD), PG!Δu may contain incorrect information or
may become incomplete. Thus, user will not be able to publish PG!Δu. To resolve this
issue, we apply the customization requests U on PG! in a strategic way such that it
confirms to all the provenance policies.</p>
        <p>Our strategy is primarily based on two ideas (i) inventing non-functional nodes, and
(ii) converting user requests using other forms of user requests.</p>
        <p>Inventing Non-functional Nodes. In case PG!Δu has a structural violation, PROPUB
resolves the violation by adding a new non-functional node. A non-functional node is
added to maintain the structure of provenance graph. Presence of a non-functional node
in the final customized graph may represent one data or invocation node or a set of data
and invocation nodes. No mapping is maintained between the non-functional node and
the nodes it replaced. Also, it will not carry any URL. Thus, no one will be able to
reach to the value of a data artifact or the source code of an actor from a non-functional
node. PROPUB invents minimum numbers of non-functional nodes to resolve a policy
violation.</p>
        <p>PROPUB uses the same strategy to resolve NFD policy violations. The fix to the
violation of this policy is complex and may need more than one non-functional node to
be added. In spite of this complexity, PROPUB resolves the violation using the minimum
numbers of non-functional nodes.</p>
        <p>Converting User Requests. A publisher can use ur:hide requests to hide individual
nodes or the partial structure of the provenance graph. When we apply these user
requests all the selected nodes and the associated edges are removed from the provenance
graph PG! and a set of independence may be created which violates the NFI policy. We
can use the inventing new non-functional node strategy as discussed above and replace
the selected node by a non-functional node to resolve this policy violation. But, this
approach keeps the structure of the original provenance graph in the final provenance
graph. Instead, PROPUB converts these ur:hide user requests into an equivalent set of
ur:abstract user requests so that all the selected nodes are removed and no unintended
dependencies are removed.
4.1</p>
        <sec id="sec-6-3-1">
          <title>Repairing Structural Policy Violations</title>
          <p>No-Type Error. This policy is violated in case there is a direct dependency between
two nodes of same type (i.e. a dependency between two data artifacts or a dependency
between two invocations). PROPUB invents a non-functional invocation node in case
the policy violation is between two data artifacts as shown in Fig. 5. In the similar way,
PROPUB invents a non-functional data node in case the policy violation is between two
invocation nodes. We used the rules as shown below to create the non-functional nodes
and fix the violations of this policy.
del_dep(X,Y) :- ic:te(X,Y).
add_data(f(X,Y),T) :- ic:te(X,Y), d_actor(X,_), T=‘ic:te’.
add_actor(f(X,Y),T) :- ic:te(X,Y), d_data(X,_), T=‘ic:te’.
add_dep(X,f(X,Y)) :- ic:te(N1,N2), X is N1.
add_dep(f(X,Y),Y) :- ic:te(N1,N2), Y is N2.</p>
          <p>No-Write Conflict. This policy is violated in case there are N (N ≥ 2) gen by edges
for a data node. To resolve this violation PROPUB removes incorrect gen by edges for
the violated data node and keeps only one gen by edge, which is there in PG. But, this
may violate the NFI policy as it removes dependencies for N − 1 invocation nodes.
To get around this side effect PROPUB invents N − 1 non-functional data nodes and
creates N − 1 gen by edges as shown in Fig. 6. Lastly, it copies all the used edges for
the violated data node over to all N − 1 non-functional data nodes. Following rules are
used to create the non-functional nodes and fix the violations of this policy:
del_data(D) :- ic:wc(D).
del_dep(D,I) :- ic:wc(D), d_gen_by(D,I).
add_data(f(D,I),T) :- ic:wc(D), d_gen_by(D,I), T=‘ic:wc’.
add_dep(f(D,I),I) :- ic:wc(D), d_gen_by(D,I).
add_dep(I,f(D,I1)) :- ic:wc(D), d_gen_by(D,I1), d_used(I,D).
No-Cyclic Dependency. This policy is violated in case a node is reachable from itself.
In Fig. 7, there is a cycle between a invocation node and a data node. To fix this violation
PROPUB invents a non-functional invocation node and creates a used edge between the
data node and the non-functional invocation node. Then it removes all the gen by edges
from the invocation node (except the one with the data node with which it has the
cycle) and copies them over to the non-functional invocation node. In the similar way,
PROPUB resolves this violation between two invocation nodes.</p>
        </sec>
        <sec id="sec-6-3-2">
          <title>4.2 Repairing No-False Independence (NFI) Policy Violations</title>
          <p>This policy is violated in case two nodes are not dependent in PG!Δu even though
they are in PG!. This may occur in case the ur:hide user requests are applied on PG! as
shown in Fig. 8. One way to resolve this violation is to insert direct dependencies, which
(a) User Requests: ur:hide nodes
(b) Policy Violation
(c) Fix
are there in PG! but missing in PG!Δu, between any two nodes in PG!Δu. But, this
process may add too many edges and the graph may become unreadable. One optimization
to this process is to develop transitive dependencies to reduce the total number of new
edges needed. This may be computation intensive. PROPUB uses a different strategy
to fix this violation. Following rules are used to transform the ur:hide requests into an
equivalent set of ur:abstract requests:
hide_connected(X,Y) :- ur:hide(X), ur:hide(Y), dep(X,Y).
hide_connected(X,X) :- ur:hide(X).
hide_connected(X,Y) :- hide_connected(Y,X).
hide_connected(X,Y) :- hide_connected(X,Z), hide_connected(Z,Y).
smaller(X) :- hide_connected(X,Y), X &lt; Y.
minimum(X) :- ur:hide(X), not(smaller(X)).
abstract_hide(X,G) :- hide_connected(X,G), minimum(G).</p>
          <p>The customization user requests ur:abstract removes nodes from PG!, but does
not violate the NFI policy. To avoid the NFI polic violations PROPUB transforms the
ur:hide user requests into an equivalent set of ur:abstract user requests. These will be
applied to PG! in the same way the User issued ur:abstract requests are applied.</p>
        </sec>
        <sec id="sec-6-3-3">
          <title>4.3 Repairing No-False Dependence (NFD) Policy Violations</title>
          <p>This policy is violated in case two nodes are dependent in PG!Δu even though they are
not in PG!. This may occur in case the ur:abstract user requests are applied on PG! as
shown in Fig. 9. In Fig. 9(a) we have a partial provenance graph showing the ur:abstract
requests and the nodes with direct dependencies with one or more nodes selected to be
abstracted. This figure shows that in PG! the data artifact ‘1’ depends on data artifact
‘a’ and ‘b’. In the similar way, the data node ‘2’ depends on invocation nodes ‘b’ and
‘c’ and so on. Now, if we apply these ur:abstract requests by collapsing all the selected
nodes into a abstracted node then in PG!Δu the data artifact ‘1’ become depended on
nodes ‘a’, ‘b’, ‘c’, ‘d’, and ‘e’ and thus making PG!Δu incorrect, as shown in Fig. 9.
!"
!"
&amp;"
$"
)"</p>
          <p>#!$%&amp;#'%"
(a) The ur:abstract user
requests
#"
%"
'"
("
+"
*"
!"
!"
&amp;"
$"
#"
%"
'"
("
+"
)" *"
(b) The dependencies
created by applying these
ur:abstract user requests</p>
          <p>To avoid this policy violations PROPUB takes a systematic three stages approach to
apply the ur:abstract user requests. Instead of collapsing into one abstracted node, it
invents a number of non-functional data and invocation nodes to maintain the
dependencies between any two nodes in PG!Δu as they are in PG!. This systematic approach
ensures that the minimum number of non-functional nodes are invented. In the first
stage, PROPUB develops two sets in and out. The in is a set of data nodes which is
used by some of the invocation nodes selected to be abstracted and invocation nodes
which generated some of the data nodes selected to be abstracted. The out is a set
of data nodes which is generated by one of the invocation node selected to abstracted
and invocation nodes which used some of the data nodes selected to abstracted. It also
calculates the dependencies for each of the node in set out on the nodes of the set in.</p>
          <p>Now, PROPUB creates non-functional data nodes for each of the invocation nodes
from the sets in and out. One non-functional data node is created for exactly one
invocation node from the set in through a gen by edge. One non-functional data node
is created for more then one invocation node from the set out through used edges in
case these invocations have the same dependencies on the set in. At this stage, a
nonfunctional data node is connected either to a node from the set in or to one or many
nodes from the set out. For example, invocation node ‘4’ ‘5’ and depends on
invocation nodes ‘b’ and ‘c’ and PROPUB will create only one non-functional data node and
two used edges. This is shown in Fig. 10(a).</p>
          <p>In the second stage, it calculates the list of dependencies of all nodes from the set
out to the nodes from in. PROPUB creates one non-functional invocation node for each
of these unique dependency lists and it creates gen by edges for nodes from the set
out which has the same dependency list. Then it creates used edges to connect to the
nodes in in set from any of these non-functional invocation nodes. It will connect with
respective non-functional data node created in the last stage in case an edge needs to be
created with an invocation either from in or out. This outcome is shown in Fig. 10(b).
!"
!"
&amp;"
$"
)"
#"
%"
'"
("
+"
*"
!"
!"
&amp;"
$"
)"
#"
%"
'"
("
+"
*"
!"
!"
&amp;"
$"
)"
#"
%"
'"
("
+"
*"
(a) Stage 1
(b) Stage 2
(c) Fix Stage 3
In the final stage, PROPUB combines nodes if possible. For example, in Fig. 10(b)
the path from node ‘6’ to node ‘e’ has three consecutive non-functional nodes with no
other dependencies. These three nodes can be replaced by only one non-functional data
node. The result is shown in Fig. 10(c). Now, PROPUB removes all the nodes selected
to be abstracted and associated edges from PG!.
4.4</p>
        </sec>
        <sec id="sec-6-3-4">
          <title>Algorithm</title>
          <p>The algorithm mentioned in Fig. 11 finds the customized provenance graph, if available.
In this approach, we add non-functional nodes to repair policy violations. In Figure 3
we show that PG!Δu has a structural policy violation between nodes g1 and s2. Using
this approach, we introduce a non-functional data node d such that d is dependent on
g1; and s2 is dependent on d. Now, to fix the cycle between d13 and g1 we introduce
the non-functional invocation node g2 and create a dependency (gen by) edge from d15
to g2. Then, we get the final CG as shown in Figure 12. Note that we are now able to
keep all the relevant nodes in CG.</p>
          <p>!&amp;$
!"'$
!""$
!"($
!"#
!$
!")$
/:#
!:#</p>
          <p>
            -./+0-'+1)"23#!"4#
!#%&amp;'# !#%')# -./+0-'+1/"3#!"4#
!#%()# !#%*# !#%+,# -./+0-'+15"3#!"4#
!"#$ !$# !"&amp;$ --%%66%%77558899,,11))""":44##
!"%$
;8),1)"&lt;4#
;8),1'"4#
;8),1':4#
In [
            <xref ref-type="bibr" rid="ref3 ref4 ref5 ref6 ref7">3,4,5,6,7</xref>
            ], it has been observed that provenance can be used, e.g., to interpret results,
diagnose errors, fix bugs, improve reproducibility, and generally to build trust on the
final data products and the underlying processes. In addition, provenance can be used to
enhance exploratory processes [
            <xref ref-type="bibr" rid="ref15">15,16,17</xref>
            ], and techniques have been developed to deal
with provenance efficiently [18,19].
          </p>
          <p>
            In many cases, provenance carries sensitive information, which can cause privacy
concerns related to a data, actor, or workflow specification. Studying provenance, one
can capture the functionality (being able to guess the output of the actor given a set of
inputs) of an actor (module), or the execution flow of a workflow [
            <xref ref-type="bibr" rid="ref8">8</xref>
            ].
          </p>
          <p>
            The security view approach [
            <xref ref-type="bibr" rid="ref5">5</xref>
            ] limits the available provenance to a user by
providing a partial view of the workflow through a role-based access control mechanism,
and by defining a set of access permissions on actors, channels, and input/output ports
as specified by the workflow owner at design time. The ZOOM∗UserViews approach
[20] allows to define a partial, zoomed-out view of a workflow, based on a user-defined
distinction between relevant and irrelevant actors. Provenance information is restricted
by the definition of that partial view of the workflow.
          </p>
          <p>
            In our recent work [
            <xref ref-type="bibr" rid="ref11">11</xref>
            ], we developed PROPUB, which uses a declarative approach
to publish customized policy-aware provenance. In this paper, we developed a new way
to repair policy violations, not by removing additional nodes (as in [
            <xref ref-type="bibr" rid="ref11">11</xref>
            ]), but by
introducing new (non-functional) nodes that represent the original lineage dependencies,
without revealing information that the user wants to protect. We described in detail how
policy violations will be repaired such that all relevant nodes are retained in the final
provenance graph.
6
          </p>
        </sec>
      </sec>
      <sec id="sec-6-4">
        <title>Conclusions</title>
        <p>We discussed the need for provenance in scientific collaboration. Provenance data helps
to build trust in the published results and data. However, provenance can also contain
sensitive data and/or too much irrelevant detail. Thus, scientists should be able to
“customize” provenance data before sharing it.</p>
        <p>Our current PROPUB system is based on the open provenance model (OPM). We
plan to extend PROPUB to include model extensions, e.g., to support structured data
structures, in particular nested collections [19]. Furthermore, PROPUB currently
suggests only one specific modified graph based on a given U and PP. In future work, we
plan to investigate how to extend this approach to rank alternative solutions, thus
supporting scientists even more in finding the desirable balance between revealing
provenance information and preserving privacy when sharing data with collaborators.
16. Freire, J., Silva, C., Callahan, S., Santos, E., Scheidegger, C., Vo, H.: Managing
rapidlyevolving scientific workflows. Provenance and Annotation of Data (2006) 10–18
17. Silva, C., Freire, J., Callahan, S.: Provenance for visualizations: Reproducibility and beyond.</p>
        <p>Computing in Science &amp; Engineering (2007) 82–89
18. Heinis, T., Alonso, G.: Efficient Lineage Tracking For Scientific Workflows. In: Proceedings
of the 2008 ACM SIGMOD conference. (2008) 1007–1018
19. Anand, M., Bowers, S., Luda¨scher, B.: Techniques for efficiently querying scientific
workflow provenance graphs. In: Proceedings of the 13th International Conference on Extending
Database Technology, ACM (2010) 287–298
20. Biton, O., Cohen-Boulakia, S., Davidson, S.: Zoom* userviews: Querying relevant
provenance in workflow systems. In: Proceedings of the 33rd international conference on Very
large data bases, VLDB Endowment (2007) 1366–1369</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. Nature:
          <article-title>Special Issue on Data Sharing</article-title>
          . Volume
          <volume>461</volume>
          . (
          <year>September 2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Missier</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          , Luda¨scher,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Bowers</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Dey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Sarkar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Shrestha</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Altintas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            ,
            <surname>Anand</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Goble</surname>
          </string-name>
          ,
          <string-name>
            <surname>C.</surname>
          </string-name>
          :
          <article-title>Linking multiple workflow provenance traces for interoperable collaborative science</article-title>
          .
          <source>In: Workflows in Support of Large-Scale Science (WORKS)</source>
          ,
          <source>2010 5th Workshop on, IEEE 1-8</source>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Bose</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Frew</surname>
          </string-name>
          , J.:
          <article-title>Lineage retrieval for scientific data processing: a survey</article-title>
          .
          <source>ACM Computing Surveys (CSUR) 37(1)</source>
          (
          <year>2005</year>
          )
          <fpage>1</fpage>
          -
          <lpage>28</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Simmhan</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Plale</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gannon</surname>
            ,
            <given-names>D.:</given-names>
          </string-name>
          <article-title>A survey of data provenance in e-science</article-title>
          .
          <source>ACM SIGMOD Record</source>
          <volume>34</volume>
          (
          <issue>3</issue>
          ) (
          <year>2005</year>
          )
          <fpage>31</fpage>
          -
          <lpage>36</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Chebotko</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chang</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lu</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fotouhi</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yang</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Scientific workflow provenance querying with security views</article-title>
          .
          <source>In: Web-Age Information Management</source>
          ,
          <year>2008</year>
          . WAIM'
          <volume>08</volume>
          . The Ninth International Conference on,
          <source>IEEE</source>
          (
          <year>2008</year>
          )
          <fpage>349</fpage>
          -
          <lpage>356</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Freire</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Koop</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Santos</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Silva</surname>
          </string-name>
          , C.T.:
          <article-title>Provenance for Computational Tasks: A Survey</article-title>
          .
          <source>Computing in Science and Engineering</source>
          <volume>10</volume>
          (
          <issue>3</issue>
          ) (
          <year>2008</year>
          )
          <fpage>11</fpage>
          -
          <lpage>21</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Davidson</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Khanna</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Roy</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Boulakia</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Privacy issues in scientific workflow provenance</article-title>
          .
          <source>In: Proceedings of the 1st International Workshop on Workflow Approaches to New Data-centric Science</source>
          , ACM (
          <year>2010</year>
          )
          <fpage>1</fpage>
          -
          <lpage>6</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Davidson</surname>
            ,
            <given-names>S.B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Khanna</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Panigrahi</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Roy</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Preserving Module Privacy in Workflow Provenance</article-title>
          .
          <source>CoRR abs/1005</source>
          .5543 (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Moreau</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Clifford</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Freire</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Futrelle</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gil</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Groth</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kwasnikowska</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Miles</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Missier</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Myers</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , et al.:
          <article-title>The open provenance model core specification (v1. 1). Future Generation Computer Systems (</article-title>
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Anand</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bowers</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ludascher</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Provenance browser: Displaying and querying scientific workflow provenance graphs</article-title>
          .
          <source>In: Data Engineering (ICDE)</source>
          ,
          <year>2010</year>
          IEEE 26th International Conference on,
          <source>IEEE</source>
          (
          <year>2010</year>
          )
          <fpage>1201</fpage>
          -
          <lpage>1204</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Dey</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zinn</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          , Luda¨scher, B.:
          <article-title>PROPUB: Towards a Declarative Approach for Publishing Customized, Policy-Aware Provenance</article-title>
          . In: Scientific and Statistical Database Management Conference (to appear). (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Moreau</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          , Luda¨scher,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Altintas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            ,
            <surname>Barga</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            ,
            <surname>Bowers</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Callahan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Chin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Clifford</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Cohen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Cohen-Boulakia</surname>
          </string-name>
          ,
          <string-name>
            <surname>S.</surname>
          </string-name>
          , et al.:
          <article-title>Special issue: The first provenance challenge</article-title>
          .
          <source>Concurrency and Computation: Practice and Experience</source>
          <volume>20</volume>
          (
          <issue>5</issue>
          ) (
          <year>2008</year>
          )
          <fpage>409</fpage>
          -
          <lpage>418</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Moreau</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Clifford</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Freire</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gil</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Groth</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Futrelle</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kwasnikowska</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Miles</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Missier</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Myers</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Simmhan</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stephan</surname>
          </string-name>
          , E., den Bussche, J.V.:
          <string-name>
            <surname>OPM: The Open Provenance Model Core Specification</surname>
          </string-name>
          (
          <year>v1</year>
          .1). http://openprovenance.org/ (
          <year>December 2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Anand</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bowers</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McPhillips</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          , Luda¨scher, B.:
          <article-title>Exploring scientific workflow provenance using hybrid queries over nested data and lineage graphs</article-title>
          .
          <source>In: Scientific and Statistical Database Management</source>
          , Springer (
          <year>2009</year>
          )
          <fpage>237</fpage>
          -
          <lpage>254</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Davidson</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Freire</surname>
          </string-name>
          , J.:
          <article-title>Provenance and scientific workflows: challenges and opportunities</article-title>
          . In: SIGMOD Conference, Citeseer (
          <year>2008</year>
          )
          <fpage>1345</fpage>
          -
          <lpage>1350</lpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>