Matthieu Perrin

Claude Jard

Achour Mostéfaoui

Tracking Causal Dependencies in Web Services Orchestrations Defined in ORC

This article shows how the operational semantics of a language like ORC can be instrumented so that the execution of a program produces information on the causal dependencies between events. The concurrent semantics we obtain is based on asymmetric labeled event structures. The approach is illustrated using a Web service orchestration instance and the detection of race conditions.

Introduction

Several languages have been proposed to program applications based on Web service orchestrations (BPEL [START_REF] Andrews | Business Process Execution Language for Web Services[END_REF] is probably one of the best known). The present work is based on Orc [2,[START_REF] Kitchin | The ORC programming language[END_REF], an orchestration language whose definition is based on a mathematical semantics, which is needed to define precisely the notion of causality. Orc is designed over the notion of sites, a generalization of functions that can encapsulate any kind of externally defined web sites or services as well as Orc expressions. As usual for languages, the operational semantics of Orc was defined as a labeled transition system. Such semantics produces naturally sets of sequential traces, which explicitly represent the observable behaviors of an Orc program [START_REF] Kitchin | A language for task orchestration and its semantic properties[END_REF].

Finding the causal dependencies in a program is very useful for error detection. In a non-deterministic concurrent context, this analysis cannot be based solely on the static structure of the program and requires execution. Dependencies are also very difficult to extract from a sequential record without additional information to unravel the interleaving of events. This is especially true for the analysis of QoS or of non functional properties, like timing constraints derived from the critical path of dependencies [5]. We consider any Orc program, which has been already parsed and expanded into its Orc calculus intermediate form.

In this program, we distinguish the actions, which are the site calls, and the publications (return values of expressions). An event is the occurrence of an action during the execution of the Orc program. The events are linked by causal dependencies, that force the events to be executed in a certain order. We can distinguish three kinds of dependencies:

the dependencies that are imposed by the control flow of the program defined by the semantics of the Orc combinators and imposed by the binding mechanism of Orc variables; the dependencies that are provided by the server executing the site calls.

These external dependencies are not part of the Orc description, but could be returned by the site. We will consider at least that the possible return of a site call is directly caused by this call; the dependencies induced by preemption (the pruning operator of Orc).

The method used in this article is to extend the standard structural operational semantics (SOS [START_REF] Plotkin | The Origins of Structural Operational Semantics[END_REF]) to rewrite extended expressions, in which additional information has been added to compute causal and weakly-causal dependencies. This information is also made visible by extending the labeling of transitions. Concurrency is just the complement of the weak-causal relation, and conflicts are defined by cycles in this relation. Capturing causality and concurrency by instrumenting the semantics rules is a difficult job. This is mainly due to the fact that these relationships are global and therefore difficult to locate on the syntactic forms. The solution is to keep information about the causal past in a context associated with each rule. We build the necessary links between different contexts during the execution of rules. The aim is that such instrumented semantics reproduces the standard behavior of the program while calculating the additional information needed to track concurrency, causality and conflicts between the events produced by the execution.

After this introduction, the article presents the contribution compared to the existing works. Section 3 presents the Orc language from the perspective of its core calculus and its operational semantics, illustrated using an example of orchestration of Web services. Section 4 presents our proposed instrumented semantics based on the construction of event structures, giving the concurrent semantics of Orc. This section sets out the formal correctness of the approach stating that this new semantics produces the same executions as the standard semantics. Before concluding the paper, Section 5 reuses the example of Section 3 to show the causal structure obtained from its execution in the instrumented semantics and how this can be used to find errors.

Related work

The need to dynamically trace the causal dependencies during the execution of the a program in order to monitor, detect errors or analyze performances is well recognized for concurrent applications. Causality, seen as a partial order [START_REF] Lamport | Time, clocks, and the ordering of events in a distributed system[END_REF], can be tracked in different ways. Some works are based on an instrumentation of either the underlying operating system or the source code. For example, vector clocks have been widely used by the distributed algorithms community in the context of message-passing systems [8]. The context of Web service orchestrations is more complex as a language like Orc can generate unbounded concurrency patterns. To our knowledge, the only instrumentation made on programs is [START_REF] Grigore | An instrumentation technique for online analysis of multithreaded programs[END_REF], based on Java byte-code. However, in the considered model, the only source of causality comes from variable accesses. The second approach is to change the semantics so that it produces causal information which leads to a concurrent semantics. The challenge is then to maintain a good form of equivalence with the original semantics. Several debugging techniques rely on this principle, especially for performing replay ([10] is a good example for a fragment of the Oz language). The most successful works in concurrent semantics were conducted on process algebra (e.g. pi-calculus [START_REF] Boreale | A Fully Abstract Semantics for Causality in the π-Calculus[END_REF]). Our contribution is in the same vein, but for the Orc language, in the complex context of wide-area computing. Other attempts of concurrent semantics for Orc based on event structures have already been published [START_REF] Rosario | Event Structure Semantics of ORC. 4th International Workshop on Web Services and Formal Methods[END_REF][START_REF] Bruni | Translating Orc features into Petri nets and the Join calculus[END_REF]. They use an ad hoc connection of Petri net diagrams or Join calculus. It is not clear how this semantics can be implemented in practice at compile-time that transforms the source code into a concurrent model. An instrumented semantics solves this problem and allows to catch causal dependencies at runtime.

The Orc Programming Language

Core calculus

Orc is a full programming language, that looks like a functional language with many non-functional aspects to handle concurrency. The interested reader can refer to [START_REF] Misra | Computation orchestration: a basis for wide-area computing[END_REF] concerning the ability of Orc to design large-scale distributed applications. The Orc programming language is designed over a process calculus: the Orc core calculus. All the conveniences offered in the full Orc language are derived from very few central concepts present in the calculus: sites and operators. Values such as booleans, numbers and strings, arithmetic and logic operators, as well as complex data types such as shared registers, are just external sites. Even choices are implemented through the use of sites ift and iff, that publish a signal if their argument is true or false respectively. Besides sites, four operators are provided by the calculus to orchestrate the execution. These operators describe the sequencing of actions ("f >x> g"), the launching of parallel threads ("f |g"), an original preemption operator ("pruning: f <x< g") and an alternative in case of no response ("otherwise: f ; g"). The full syntax of the calculus is specified by the grammar given in Figure 1. From now on, we denote by Orc s the set of the expressions allowed by this syntax. The expressions of the calculus that correspond to real Orc programs, denoted by the set Orc, are those that do not contain ?k and ⊥ expressions.

There are two kinds of sites in Orc: the external ones, denoted V in the syntax, and the internal ones defined as an Orc expression with the syntax def y(x) = f #g where f is the body of the site and g is the remaining of the program in which y can be used as any site. For the sake of clarity, we consider in this work that the sites are curryfied, so they have exactly one argument. Site definitions are recursive, which allows the same expressivity as any functional language. Calls to external sites are strict, i.e. their arguments have to be bound before the site can be called, while an internal site can be called immediately, and its arguments are evaluated lazily. When an external site is called, it sends its responses to a placeholder ?k. A response can be either a non-terminating value N T (v) if further responses are expected, or a terminating value T (v) if this is the last publication of the site, or N eg if the site terminates without publishing any value. In f |g, the parallel composition expresses pure concurrency; f and g are run in parallel, their events are interleaved and the expression stops when both f and g have terminated. Sequentiality can be expressed by the sequential operator, like in f > x > g, where the variable x can be used in g. Here, f is started first, and then a new instance of g[v/x], where x is bound to v, is launched as a consequence of each publication of v. In f < x < g, the pruning operator is used to express preemption. The variable x can be used in f . Both f and g are started, but f is paused when it needs to evaluate x. When g publishes a value, it is bound to x in f , and g is stopped. Other events that could have been produced by g are preempted by the publication. For example, if g is supposed to publish two values a and b, only one will be selected and published in each execution. We say that these two events are in conflict. The pruning operator is left-associative: in f < x < g < y < h, f , g and h are started in parallel, the first publication of g is bound to x and the first publication of h is bound to y.

f, g, h ∈ Expression ::= p p(p) ?k f |g f >x> g f <x< g f ; g D#f ⊥ D ∈ Definition ::= def y(x) = f v ∈ Orc Value ::= V D p ∈ Parameter ::= v stop x w ∈ Response ::= N T (v) T (v) N eg n ∈ Hidden Label ::= ?V k (v) ?D h(ω) h(!v) l ∈ Label ::= !v n ω
The otherwise operator is used in f ; g. In this expression, f is first started alone and g is started if and only if f stops without publishing any value. Finally, the stop symbol can be used by the programmer exactly like a site or a variable to denote a terminated program. stop still produces an event ω to notify its parent expression that it has terminated. It then evolves into ⊥, the inert final expression. ?k and ⊥ cannot be used directly.

Illustration

We now illustrate the use of Orc in Figure 3. This program defines the internal site find_best(agencies, destination) that computes the best offers proposed by the agencies listed in agencies for the destination given as a parameter. It publishes a unique value that is a pair composed of the best offer augmented with additional information and the list of other offers sorted by price. The program is composed of three internal sites. It uses three shared objects, that are created in lines 15 to 17: the stack offers and the registers best_offer and best_agency. At line 16, a new register is created through a call to the site Register() and is bound to the variable r. It is then initialized to a default value: r.write(null) that can be seen as a shortcut for r("write")>w>w(null), so the shared register is a site that can publish its accessors when it is called. As writing in a register does not publish any value, the otherwise operator is finally used to bound the value to best_offer. At line 11, the site find_offers can be started before the variables are created (left hand side of pruning operators). each publishes in parallel all the sites contained into the stack agencies, so all known agencies have to publish their offers. Each time a new offer is found, it is added into offer and its price is compared to the current best known offer. The test is first evaluated and passed as an argument to ift. If true, the program publishes a signal and the registers can be updated. find_offers does not publish any value. In parallel with its call, we start a timer that publishes after 2 seconds a signal. The signal will halt this part of the program thanks to the pruning operator, and starts the line 14, thanks to the sequential operator. Line 14 calls both extend_best and sort_offers and publishes the result when both sites have published. The two sites call an external site either to sort the offers or to get extra information about the best offer, and they perform a test that raises an alarm if something wrong is detected.

(Publish) v !v -→ stop v closed (Stop) stop ω -→ ⊥ (StopCall) stop(p) ω -→ ⊥ (ExtStop) V (stop) ω -→ ⊥ (ExtCall) V (v) ?V k (v) ----→?k k fresh (DefDeclare) [D/y]f l -→ f D#f l -→ f D is def y(x) = g (IntCall) D(p) ?D --→ [D/y][p/x]g D is def y(x) = g (ParLeft) f l -→ f f |g l -→ f |g l = ω (ResT) ?k receives T (v) ?k !v -→ stop (ParRight) g l -→ g f |g l -→ f |g l = ω (ResNt) ?k receives N T (v) ?k !v -→?k (ParStop) f ω -→ ⊥ g ω -→ ⊥ f |g ω -→ ⊥ (ResNeg) ?k receives N eg ?k ω -→ ⊥ (OtherV) f !v -→ f f ; g !v -→ f (SeqV) f !v -→ f f >x> g h(!v) ---→ (f >x> g)|[v/x]g (OtherN) f n -→ f f ; g n -→ f ; g (SeqN) f n -→ f f >x> g n -→ f >x> g (OtherStop) f ω -→ ⊥ f ; g h(ω) ---→ g (SeqStop) f ω -→ ⊥ f >x> g ω -→ ⊥ (PruneV) g !v -→ g f <x< g h(!v) ---→ [v/x]f (PruneLeft) f l -→ f f <x< g l -→ f <x< g l = ω (PruneN) g n -→ g f <x< g n -→ f <x< g (PruneStop) g ω -→ ⊥ f <x< g h(ω) ---→ [stop/x]f
Figure 4 shows a possible trace of the program of Figure 3. In this example, both alarms are due to inconsistencies in the shared registers. To avoid the alarm "inconsistent", it is necessary to write into best_offer and best_agency atomically, and to avoid the other alarm, the comparison with the current value of best_offer and its edition should be atomic. The event best_offer.write(01) is a cause for both alarms, but it is impossible to detect it in the sequential trace without any information about causality.

Instrumented Semantics

Method

SOS specifications take the form of a set of inference rules that define the valid transitions of a composite piece of syntax in terms of the transitions of its components. Rewriting transforms terms by executing a rule (it may be a nondeterministic transition in case of multiple alternatives). The successive transitions represent the program behavior. This may produce a sequence of values, that can be brought by the labeling of rules. Our approach is based on an instrumentation of the rules, that appends additional information to the labels in order to track the partial order of events. Actually, a label in the instrumented semantics is a tuple e = (e k , e l , e c , e a ), where e k is an identifier taken in a countable set K, that is unique for the execution, e l is a label similar to those of the standard semantics and e c and e a contain the finite sets of the identifiers of the causes and the weak causes of the event, respectively. Informally, an event e is a cause of e if e always happens before e , regardless of the scheduling chosen by the system. Similarly, e is a weak cause of e if e can never happen after e, either because e is one of its causes or because e preempts e.

In order to record the information concerning the past of an expression, we enrich the language with a new syntactic construction: f, c, a L means that c and a are the causes of the Orc instrumented expression f . Thus, if f has c and a as causes and if it can evolve into f , this transition should also have c and a as causes. The index L expresses the kind of events that can activate the rule: !v matches any publication, l stands for any label and ω means that c and a are only the causes of the termination of the program. We also consider that the external sites track causality themselves, as an internally-defined function would do. It makes sense as some sites (e.g. +) handle their calls independently, while others (e.g. shared registers, management library) induce more complex causality patterns between the calls. Hence, the responses we get include this additional information. The verification of these responses is not the subject here, and we suppose them to be correct by hypothesis.

Apart from the introduction of the instrumentation construction and the new information in the responses, the syntax of the instrumented expressions (Figure 5) is very similar to the regular one. The set of all the expressions allowed by this extended syntax is Orc i . We can notice that every valid Orc program is also a valid instrumented expression, which means that the instrumented semantics can be applied without program transformation.

f, g, h ∈ Expression ::= p p(p) ?k f |g f >x> g f <x< g f ; g D#f ⊥ f, K, K L D ∈ Definition ::= def y(x) = f v ∈ Orc Value ::= V D p ∈ Parameter ::= v stop x p, K, K L w ∈ Response ::= N T (v, K, K) T (v, K, K) N eg(K, K) n ∈ Hidden Label ::= ?V k (v) ?D h(ω) h(!v) l ∈ Label ::= !v n ω

Labeled Asymmetric Event Structure

Labeled asymmetric event structures (LAES) [START_REF] Winskel | Event structures. Advances in Petri Nets[END_REF] are natural objects to represent concurrent executions in a compact way.

Definition 1 (Labelled asymmetric event structure). A labelled asymmetric event structure (LAES) is a tuple (E, L, ≤, , Λ).

-E is a set of events, -L is a set of labels, -≤, causality is a partial order on E, -, weak causality is a binary relation on E, -Λ : E → L is the labelling function, each e ∈ E has a finite causal history [e] = {e ∈ E|e ≤ e}, for all events e < e ∈ E, e e , where < is the irreflexive restriction of ≤, for all e ∈ E, ∩[e] × [e], the restriction of weak causality to the causal history of e, is acyclic.

We also define an induced conflict relation # a as the smallest set of finite parts of E such that: for E ⊂ E and e 0 , e 1 , ..., e n ∈ E,

-if e 0 e 1 • • • e n e 0 then {e 0 , e 1 , • • • , e n } ∈ # a , -if E ∪ {e 0 } ∈ # a and e 0 ≤ e 1 then E ∪ {e 1 } ∈ # a .
Informally, two events are in conflict if they cannot occur together in the same execution.

A LAES can be seen as a structure that encodes concisely several sequential executions; each of them being a linearization of the LAES.

Definition 2 (Linearization)

. Let E = (E, L, ≤, , Λ) be a LAES. A finite linearization of E is a word w = Λ(e 0 ) . . . Λ(e n ) where the different e i ∈ E are distinct and such that: it is left-closed for causality:

(CauseYes) f k,l,c,a ----→i f f, c , a L k,l,c∪c ,a∪a ∪c ----------→i f , c , a L l ∈ L (CauseNo) f k,l,c,a ----→i f f, c , a L k,l,c,a ----→i f , c , a L l ∈ L
∀e ∈ E, ∀e ∈ {e 0 , . . . , e n }, e ≤ e ⇒ e ∈ {e 0 , . . . , e n },

the weak causality is respected:

∀i, j ∈ {0, . . . , n}, e i e j ⇒ i < j.

We denote Lin(E) as the set of all finite linearizations of E.

Let (E, L, ≤, , Λ) be an asymmetric event structure and e, e ∈ E two events. We say that:

e is a cause of e , if e happens before e in all executions; e is a weak cause of e , if there is no execution in which e happens after e ; e and e are concurrent, denoted e||e , if they can occur in either order.

Formally, e||e if neither e e nor e e. e is preempted by e , denoted e e , if e can occur independently from e, but after that, e cannot occur anymore. Formally, e e if e e and e ≤ e .

Rules

Essentially, the instrumented semantics presented in Figure 7 decorates the rules of standard semantics, except that two rules are added (see Figure 6). The transition system defined by this instrumented semantics is denoted → i and the sequential executions starting from a program f are contained in the set f i .

Informally, the expression f, c, a L evolves exactly like f , but some causes and weak causes may be added to the event. For example, if L =!v and f produces an internal event, that is not a publication, only the rule CauseNo can be applied, so the instrumentation will have no effect. On the other hand, if f publishes a value, the rule CauseYes applies and c and a are added to the causes and weak causes of the publication. Note that c is also added to the weak causes. This is to ensure that causality is always a special case of weak causality.

Let us now comment the most relevant instrumentations of the other rules. Let us consider rule SeqV. When a value is published, a new instance of the right hand side expression is created. All the events produced by this new expression need the former publication to have occurred before them, i.e. they are consequences of this publication. This is why the new expression is instrumented. Even if PruneV and SeqV are syntaxically very similar in their standard forms, the fact that both hand sides of the pruning operator are run in parallel makes them very different in terms of causality. In the expression (1|x) < x < 2, the second publication of 2 is a consequence of the first one, but not the publication of 1. This is why the instrumentation covers the occurrences of the newly bound variable. However, this is not sufficient. Consider the program (stop <x< 2); 3. The publication of 3 must wait the end of the left hand side (i.e the publication of 2). However, this publication is useless, in the sense that no variable x can be bound to its value. To handle this case, we add an instrumentation to the whole expression that is only triggered when the expression stops. Finally, the rule PruneN is also interesting as it generates weak causality. Indeed, in the program x <s< ((1 + 1)|3), the left hand side can call site + and then publish 3, or publish 3 directly, but can never publish 3 and then call site +, because a publication preempts any other event. Of course, it could also wait for the answer of the site and then publish 2, which would preempt the publication of 3. This preemption relation is operated by an instrumentation that contains k as weak causes and that is triggered only in case of publication.

(Publish) v k,!v,∅,∅ -----→i stop, {k}, ∅ l v closed k fresh (Stop) stop k,ω,∅,∅ ----→i ⊥ k fresh (StopCall) P k,ω,c,a ----→i ⊥ P (p) k,ω,c,a ----→i ⊥ (ExtStop) P k,!V,c,a -----→i P p k ,ω,c ,a ------→i p P (p) k,ω,c∪c ,a∪a ---------→i ⊥ (ExtCall) P k,!V,c,a -----→i P p k ,!v,c ,a ------→i p P (p) k,?V k (v),c∪c ,a∪a ------------→i ?k, c ∪ c ∪ {k}, a ∪ a l (DefDeclare) [D/y]f k,l,c,a ----→i f D#f k,l,c,a ----→i f D is def y(x) = g (IntCall) P k,!D,c,a -----→i P P (p) k,?D,c,a -----→i [D/y][p/x]g, c ∪ {k}, a l D is def y(x) = g (ResT) ?k receives T (v, c, a) ?k j,!v,c,a∪c ------→i stop, c ∪ {j}, a ω j fresh (ParLeft) f k,l,c,a ----→i f f |g k,l,c,a ----→i f |g l = ω (ResNt) ?k receives N T (v, c , a) ?k j,!v,c,a∪c ------→i?k j fresh (ParRight) g k,l,c,a -
---→i g f |g k,l,c,a ----→i f |g l = ω (ResNeg) ?k receives N eg(c, a) ?k j,ω,c,a∪c ------→i ⊥ j fresh (ParStop) f k,ω,c,a ----→i f g k ,ω,c ,a ------→i g f |g k,ω,c∪c ,a∪a ---------→i ⊥ (SeqV) f k,!v,c,a -----→i f f >x> g k,h(!v),c,a -------→i (f >x> g)| [v/x]g, c ∪ {k}, a l (OtherV) f k,!v,c,a -----→i f f ; g k,!v,c,a -----→i f (SeqN) f k,n,c,a ----→i f f >x> g k,n,c,a ----→i f >x> g (OtherN) f k,n,c,a ----→i f f ; g k,n,c,a ----→i f ; g (SeqStop) f k,ω,c,a ----→i ⊥ f >x> g k,ω,c,a ----→i ⊥ (OtherStop) f k,ω,c,a ----→i ⊥ f ; g k,h(ω),c,a ------→i g, c ∪ {k}, a l (PruneV) g k,!v,c,a -----→i g f <x< g k,h(!v),c,a -------→i [ v, c ∪ {k}, a l /x]f, c ∪ {k}, a ω (PruneN) g k,n,c,a ----→i g f <x< g k,n,c,a ----→i f <x< g , ∅, {k} !v (PruneLeft) f k,l,c,a ----→i f f <x< g k,l,c,a ----→i f <x< g l = ω (PruneStop) g k,ω,c,a ----→i ⊥ f <x< g k,h(ω),c,a ------→i [ stop, c ∪ {k}, a l /x]f, c ∪ {k}, a ω

Concurrent executions

The equivalent of traces in the instrumented semantics are the concurrent executions, represented by LAES.

Definition 3 (Concurrent execution). Let σ = σ 1 . . . σ n ∈ f 0 i , where for all i, σ i = (σ i k , σ i l , σ i c , σ i a ). We define the concurrent execution of σ as the LAES:

σ = ({σ 1 k , . . . , σ n k }, {σ 1 l , . . . , σ n l }, ≤, , Λ)
where for all i, j ∈ {1, . . . , n}:

-σ i k ≤ σ j k if σ i k ∈ σ j c or i = j, -σ i k σ j k if σ i k ∈ σ j a , -Λ(σ i k ) = σ i l .
As the fields σ i c and σ i a only contain events that happened before σ i in the sequential execution, both ≤ and are order relations and every event has a finite causal history. For the same reason, is acyclic. Moreover, it is easy to check that weak causality is more general than causality, so this definition actually corresponds to a real LAES.

We now state the main result: the behavior of a program is preserved by the instrumented semantics. It is established through two properties. The first one justifies the name of the instrumented semantics and the second one proves that the instrumentation is correct, i.e. that it does not define incorrect behaviors. Note that we do not give a complete proof of the two propositions for lack of space, but it can be found in [START_REF] Perrin | Building a concurrent operational semantics for the ORC language[END_REF].

Proposition 1 (Instrumentation). The projections of the executions produced by the instrumented semantics on their labels correspond exactly to the executions of the standard semantics:

∀f ∈ Orc, {σ 1 l ...σ n l |σ ∈ f i } = f .
In other words, it is always possible to instrument a standard execution to get a concurrent execution, and conversely we can get a standard execution from an instrumented execution by a simple projection.

The proof of this property is straightforward since both semantics contain similar rules. The only difficulty comes from the applications of CauseYes and CauseNo, that slightly modifie the structure of the derivation trees. All in all, both executions are similar.

Proposition 2 (Correctness). The linearizations that can be inferred from an execution in the instrumented semantics are correct with respect to the standard semantics:

∀f ∈ Orc, ∀σ ∈ f i , Lin(σ) ⊂ f .
This proof is much more complicated. Let us consider a linearization L ∈ Lin(σ).

To prove that L ∈ f , we show that it is possible to progressively transform σ 1 l ...σ n l into L by applying a series of small steps that correspond either to the inversion of two consecutive concurrent events, to the preemption of an event by its successor or to a prefixation of the sequence. As σ 1 l ...σ n l ∈ f and each step preserves this property, we get that L ∈ f . The main difficulty concerns the proof of the correctness of the two first steps, as it requires a proof for all pairs of possible consecutive rules.

By introducing concurrency and preemption between events that were arbitrarily ordered by the standard semantics, the instrumented semantics gathers many sequential executions into one concurrent execution, which hugely reduces the number of different executions. However, all the events contained in a concurrent execution are also contained into a single sequential execution. Therefore, no instrumentation is able to capture conflict, as two conflictual events would never occur together. This is why completeness cannot be achieved with this approach.

Application

Let us reuse the example presented in Section 3 and the execution of Figure 4. Figure 8 shows the trace augmented with the causal information gained by the instrumented semantics.

Figure 9 shows the LAES in its graphical form. Events taht correspond to site calls are represented in circles and connected by three kinds of arrows. Direct causality is figured by solid and dashed arrows. Solid arrows represent program causality, that is specified by the instrumented semantics, while dashed arrows

Conclusion

We based our work on the Orc core calculus, as it is expressive enough to easily generate many situations found in distributed systems, such as causality, concurrency and preemption, and remains simple enough to be tractable in a formal work. Our contribution consists of an instrumentation of the standard structural operational semantics of Orc that tracks causality and weak causality at runtime to build LAES, well suited to represent concurrent executions. We think LAES are an interesting tool to access important properties of orchestrations. We illustrate this point on two questions: root cause analysis and detection of race conditions. Beyond the Orc language, we think that the article presents a general approach that can be used for other non-deterministic languages with concurrency operators. Based on this work, we think it is possible to produce the same information using a source to source transformation. Such a technique would be easier to implement, as it does not require to modify the execution engine of the language.

Fig. 1 .

 1 Fig. 1. The syntax of the Orc core calculus.

Fig. 2 .

 2 Fig. 2. The rules of the operational semantics.

1 2 def 4 ( 5 ( 7 def 9 ( 13 ( 14 ( 15 <offers<Fig. 3 .

 245791314153 Fig. 3. Identification of the best offers for a destination proposed by a pool of agencies.

Fig. 4 .

 4 Fig. 4. A possible execution for the program in Figure3where agencies = [A1, A2] and destination = D. Each agency publishes an offer O1 and O2 respectively. For the sake of space and clarity, we only show site calls in this execution.

Fig. 5 .

 5 Fig. 5. The extended syntax of the instrumented semantics.

Fig. 6 .

 6 Fig. 6. The semantics of the new operator f, c, a L is defined by two additional rules.

Fig. 7 .

 7 Fig. 7. The instrumented version of the rules of the operational semantics.

Fig. 9 .

 9 Fig. 9. Corresponding LAES in a graphical form.

This work has been partially supported by a French government support granted to the CominLabs excellence laboratory (Project DeSceNt:Plug-based Decentralized Social Network ) and managed by the French National Agency for Research (ANR) in the "Investing for the Future" program under reference Nb. ANR-10-LABX-07-01. It was also partially funded by the French ANR project SocioPlug (ANR-13-INFR-0003).


Agnès Lattuati-Derieux

Sylvie Gomes

Sophie Tirat

Sylvie Thao-Heu

Jean-Philippe Echard

New insights into molecular evolution of oil/colophony varnishes: towards pyrolysis-gas chromatography/mass spectrometry-based quantitation Running title: Evolution of oil/colophony varnishes

Keywords: Varnish, Linseed oil, Colophony, Natural ageing, Qualitative and Semi-quantitative analysis, Py-GC/MS

Mixtures of a drying oil with a Pinaceae resin are among the most widespread natural varnish formulations encountered in coating of artifacts. GC/MS and Py-GC/MS are to date the choice analytical methods in the cultural heritage field for their qualitative molecular identification. This research was carried out on reference varnish films made with various proportions of linseed oil and colophony aged naturally in the same conditions for one year. It aimed at (1) better understanding the influence of the various proportions of oil and resin on the molecular composition of the reference films, and (2) suggesting a Py-GC/MS semi-quantitative method applicable to micro-samples. Qualitative analysis of these reference varnishes and of a historical film is first presented. Then, semiquantitative analysis of the reference films suggested that the reaction mechanisms involved in their ageing processes are highly related to each ingredient's proportions. Linseed oil may have an activating role in oxidation reactions occurring on colophony compounds, and the conservation state of varnishes could thus be closely linked to the resin's proportions. Such results provide new insights into molecular evolution of linseed oil/colophony varnishes, and the semi-quantitation seems useful to further explore mechanisms occurring between diterpenoids and fatty acids.

Introduction

Mixtures of a drying oil with a Pinaceae resin are among the most widespread varnish formulations encountered on musical instruments until the 18th century [START_REF] Echard | Etude physico-chimique des vernis d'un corpus d'instruments de musique européens du 15e au 18e siècle -Approche historique et perspectives de conservation[END_REF] . For instance, they have been identified in 16th century Bolognese and Paduan lutes [START_REF] Soulier | Resonanzen vergessener Oberflächen: Lautenfirnisse der Renaissance, Teil II[END_REF][START_REF] Echard | Gas chromatography-mass spectrometry characterization of historical varnishes of ancient Italian lutes and violin[END_REF] and in an early 18th century violin made by Jacques Boquay in Paris [START_REF] Bertrand | Identification of the finishing technique of an early eighteenth century musical instrument using FTIR spectromicroscopy[END_REF] . Five instruments made by Antonio Stradivari in Cremona, Italy, between c.1692 and 1724 are also coated with an oil/Pinaceae resin film [START_REF] Echard | Etude physico-chimique des vernis d'un corpus d'instruments de musique européens du 15e au 18e siècle -Approche historique et perspectives de conservation[END_REF][START_REF] Echard | Gas chromatography-mass spectrometry characterization of historical varnishes of ancient Italian lutes and violin[END_REF] . Besides, such coatings were frequently used for furniture, easel paintings and in decorative arts [START_REF] Derrick | Furniture Finish Layer Identification by Infrared Linear Mapping Microspectroscopy[END_REF][START_REF] Rizzo | Progress in the application of ATR-FTIR microscopy to the study of multi-layered cross-sections from works of art[END_REF] . In particular, pine resin is reported to be quite frequently detected together with oil in the binding medium of red and green glazes on 16th and 17th century Italian easel paintings [START_REF] Berrie | Vernis et peinture : des similitudes[END_REF] . Gas chromatography coupled with mass spectrometry (GC/MS) is to date the choice method for the molecular characterisation of historical varnish samples weighing as little as a few micrograms. Very efficient multi-steps protocols have been developed for the detection of various types of chemical compounds, but requiring larger sample quantities [START_REF] Dietz | Studying the 'Graue Passion[END_REF][START_REF] Dietemann | Die Bindemittel der Altkölner Malerei in der ersten Hälfte des 15. Jahrhunderts[END_REF][START_REF] Andreotti | Combined GC/MS analytical procedure for the characterization of glycerolipid, waxy, resinous and proteinaceous materials in a unique paint microsample[END_REF] . When very little material is available for analysis, one-shot protocols allowing the simultaneous analysis of compounds of oils and natural resins have been developed, extensively used and optimised in the past decades. Most of those are based on an apolar column and a derivatization reaction ahead of the chromatography step. The first aim of the derivatization procedure is to reduce the polarity of certain molecules or moieties, in particular the carboxyl and hydroxyl groups, by an esterification, methylation or silylation procedure. Derivatization also improves peak shapes and intensities. Transesterification reagents allowing to directly obtain methyl esters, typically from triacylglycerols of oils, are now widely used [START_REF] Schilling | Gas Chromatographic Determination of the Fatty Acid and Glycerol Content of Lipids[END_REF][START_REF] Mills | The gas chromatographic examination of paint media. Part 1. Fatty acid composition and identification of dried oil films[END_REF] . As for injection systems, pyrolysis coupled with gas chromatography and mass spectrometry (Py-GC/MS) methods are increasingly favoured, since the sample preparation is strongly reduced. The derivatization is often carried out using tetramethylammonium hydroxide (TMAH). A TMAH methanolic solution is directly deposited onto the solid sample before placing it in the pyrolyser. Physico-chemical phenomena occur as soon as the reagent solution is in contact with the sample. Though, the derivatization is considered to be complete when the sample is heated in the pyrolyser furnace, generally at a temperature around 600 °C13,14 . TMAH is quite a strong reagent for transesterification. It has been shown to allow multiple degrees of methylation of polyfunctionalized molecules with carboxylic acids and hydroxyl groups, resulting in several products to elute from one molecule [START_REF] Pastorova | Analysis of oxidised diterpenoid acids using thermally assisted methylation with TMAH[END_REF][START_REF] Watts | GCMS analysis of triterpenoid resins: in situ derivatization procedures using quaternary ammonium hydroxides[END_REF][START_REF] Sutherland | Solvent extractable components of oil paint films[END_REF] . Several approaches can be used to assess or measure globally or specifically relative or absolute amounts of the compound(s) which are constituent of one material [START_REF] Vergnol | L'analyse quantitative[END_REF] . Internal normalization involves calculation of the area ratio of the targeted peak with that of a chosen standard. When the internal standard is a known quantity of a deuterated isomer of the molecule to calibrate, internal normalization allows to assess the absolute quantity of the compound. However, in many cases, such expensive standards are not used. Alternatively, a compound which has similar physico-chemical behaviour as the compounds analysed can be used as an internal standard. Internal normalization is then a semi-quantitative approach; it does not allow relating the compound peak area directly with its quantity. Measuring peak area only cannot suffice for an absolute determination of the compound concentration in the mixture. In external calibration, a calibration curve is built based on standard solutions in the same concentration range as expected for the sample analysed. This method allows obtaining a quantitative analysis of the compound, even though the various compounds present in the studied material are not all represented on the chromatogram. According to these definitions, most of the published methods employed in the field of cultural heritage for characterizing mixtures of a drying oil with a resin are, strictly-speaking, qualitative i.e. with positive identification of the presence of molecules in the sample, or with negative identification of molecules which can be below the limit of the analytical detection. In several previous works, ratios between the areas of chromatographic peaks were used to determine the vegetal origin of the drying oil or to assess the state of degradation of the oil medium. The mostly used ratios are those between palmitic and stearic acids (P/S) and/or azelaic and palmitic acids (Az/P) [START_REF] Schilling | Gas Chromatographic Determination of the Fatty Acid and Glycerol Content of Lipids[END_REF][START_REF] Cappitelli | An initial assessment of thermally assisted hydrolysis and methylation-gas chromatography/mass spectrometry for the identification of oils from dried paint films[END_REF] . As for diterpenic Pinaceae resins, quite advanced treatments of peak areas have been suggested, with multiple ratios of diterpenoids, which could indicate their degree of oxidation [START_REF] Van Den Berg | State of oxidation of diterpenoid Pinaceae Resins in Varnish, Wax Lining Material, 18th, Century Resin Oil Paint, and a Recent Copper Resinate Glaze[END_REF][START_REF] Van Den Berg | Mass spectrometric methodology for the analysis of highly oxidized diterpenoid acids in Old Master paintings[END_REF] . The understanding of the chemical evolution of oil/Pinaceae resin films is complex, involving multiple intricate experimental, environmental and chemical parameters, as it has been clearly illustrated for oil films by Mallégol et al. [START_REF] Mallégol | Long-Term Behavior of Oil-Based Varnishes and Paints -I. Spectroscopic Analysis of Curing Drying Oils[END_REF][START_REF] Mallégol | Long-Term Behavior of Oil-Based Varnishes and Paints. Photo-and Thermooxidation of Cured Linseed Oil[END_REF][START_REF] Mallégol | Long-term behavior of oil-based varnishes and paints 4. Influence of film thickness on the photooxidation[END_REF][START_REF] Mallégol | Yellowing of oil-based paints[END_REF] The present research was carried out on a set of model varnish films made with various proportions of linseed oil and colophony. They are all aged under the same natural conditions for one year. Other parameters, such as the nature of the drying oil, the varnish preparation process (e.g. time, temperature), and the ageing conditions (e.g. photoageing, thermoageing, presence of oxygen, duration) are not considered. The aims of this research are: 1)

to better understand the influence of the various proportions of oil and resin on the molecular composition of the reference varnish films.

2)

to develop and assess the reliability of a Py-GC/MS semi-quantitative analytical method applicable to micro-samples from cultural heritage artifacts.

In this paper, after a brief summary on the main well-established mechanisms occurring upon ageing of films made with a mixture of oil and Pinaceae resin, results from the qualitative analysis of the reference one year old varnish films and of a historical varnish film are first presented. The method developed for the semi-quantitative data analysis of the reference one year old varnish films are described and evaluated. Lastly, the molecular evolution of the films considering possible phenomena and mechanisms specific to the mixture of linseed oil with colophony, as well as the input of the method developed to further perform Py-GC/MS are discussed.

Ageing of linseed oil and Pinaceae resin: a brief summary

Curing and ageing mechanisms of films made of linseed oil have been extensively studied, in multiple ageing conditions [START_REF] Mallégol | Long-Term Behavior of Oil-Based Varnishes and Paints -I. Spectroscopic Analysis of Curing Drying Oils[END_REF][START_REF] Mallégol | Long-Term Behavior of Oil-Based Varnishes and Paints. Photo-and Thermooxidation of Cured Linseed Oil[END_REF][START_REF] Mallégol | Long-term behavior of oil-based varnishes and paints 4. Influence of film thickness on the photooxidation[END_REF][START_REF] Mallégol | Yellowing of oil-based paints[END_REF][START_REF] Lazzari | Drying and oxidative degradation of linseed oil[END_REF][START_REF] Scalarone | Thermally assisted hydrolysis and methylation-pyrolysis-gas chromatography/mass spectrometry of light-aged linseed oil[END_REF] , with addition of pigments [START_REF] Schilling | Gas Chromatographic Determination of the Fatty Acid and Glycerol Content of Lipids[END_REF][START_REF] Van Den | Analytical chemical studies on traditional linseed oil paints[END_REF] , on model and paint samples from artworks [START_REF] Van Den Berg | Identification of an original nonterpenoid varnish from the early 20th century oil painting "the white horse[END_REF][START_REF] Van Den Berg | Chemical changes in curing and ageing oil paints[END_REF] . The predominance of particular reactions over others depends on the ageing conditions [START_REF] Zumbühl | Accelerated Ageing of Drying Oil Paint -An FTIR Study on the Chemical Alteration[END_REF] , but the main steps of the curing and ageing of linseed oil are well described in the literature. The mechanism governing the curing of linseed oil-based films is generally referred to as auto-oxidation, which describes the radical chain reactions involving spontaneous addition of oxygen on the triacylglycerol's chains to form hydroperoxides [START_REF] Privett | Autoxidation and Autoxidative Polymerization[END_REF] . The first step of curing involves the formation of radicals on (poly)unsaturated alkyl chains by thermal, photochemical or catalytic processes. The aliphatic double bonds isomerize, oxygen reacts with the radical to form peroxide radicals, leading to hydroperoxides [START_REF] Frankel | Analysis of Autoxidized Fats by Gas Chromatography-Mass Spectrometry. IX. Homolytic vs. Heterolytic Cleavage of Primary and Secondary Oxidation Products[END_REF] . Then several processes may overlap in the curing phase: (i) oxidation within fatty acids chain forming cyclic peroxides, dihydroperoxides, epoxides (ii) polymerization reactions leading to formation of peroxy, carbon and ether bonds between fatty acid chains and, (iii) formation of low molecular weight volatile compounds (aldehydes, ketones, carboxylic acids, small hydrocarbons) mainly formed by β-scission of hydroperoxides [START_REF] Mallégol | Long-Term Behavior of Oil-Based Varnishes and Paints -I. Spectroscopic Analysis of Curing Drying Oils[END_REF] . Less information is available on long-term degradation of linseed oil. Oxidation goes on, forming more oxidized compounds like carboxylic acids, peresters, lactones [START_REF] Mallégol | Long-Term Behavior of Oil-Based Varnishes and Paints. Fate of Hydroperoxydes in Drying Oils[END_REF] , polymerization stabilizes and chain scission and hydrolysis continue [START_REF] Lazzari | Drying and oxidative degradation of linseed oil[END_REF] . Scission of peroxy, ether and carbon linkage formed during curing take place, as well as progressive hydrolysis of the glyceride part, both phenomena resulting in the formation of low molecular weight fragments [START_REF] Van Den | Analytical chemical studies on traditional linseed oil paints[END_REF][START_REF] Mallégol | Long-Term Behavior of Oil-Based Varnishes and Paints. Fate of Hydroperoxydes in Drying Oils[END_REF] . Oxidations products and ageing mechanisms of colophony have also been described in several studies [START_REF] Scalarone | Ageing behaviour and pyrolytic characterisation of diterpenic resins used as art materials: colophony and Venice turpentine[END_REF][START_REF] Van Den Berg | State of oxidation of diterpenoid Pinaceae Resins in Varnish, Wax Lining Material, 18th, Century Resin Oil Paint, and a Recent Copper Resinate Glaze[END_REF][START_REF] Van Den Berg | Mass spectrometric methodology for the analysis of highly oxidized diterpenoid acids in Old Master paintings[END_REF][START_REF] Mills | The organic chemistry of museum objects[END_REF] (Fig. 1). A generally admitted path of oxidation of the abietane-type compounds was proposed by Van den Berg [START_REF] Van Den Berg | State of oxidation of diterpenoid Pinaceae Resins in Varnish, Wax Lining Material, 18th, Century Resin Oil Paint, and a Recent Copper Resinate Glaze[END_REF] . In the first step, palustric, neoabietic and abietic acid isomerize into one another, and dehydroabietic acid is formed. Then dehydroabietic acid is oxidized forming hydroxyl compounds, which are further oxidized to keto and di-hydroxy compounds. The mechanism of formation of hydroxide groups is supposed to pass by the formation of peroxide groups in alpha of a double bond. That is why hydroxide groups are favoured in carbons position 7 and 15. To date, the most oxidized compound identified is 15-OH-7-oxo-dehydroabietic acid. Regarding the ageing reactions of the pimaric fraction of colophony less is known, but these compounds may polymerize via the extra-cyclic double bond as suggested by Scalarone [START_REF] Scalarone | Ageing behaviour and pyrolytic characterisation of diterpenic resins used as art materials: colophony and Venice turpentine[END_REF] . Though a lot is known about the ageing of linseed oil and colophony, there are, to our knowledge, only two studies dealing with the ageing behavior of oil and colophony mixtures. It was suggested that the presence of colophony may promote oil hydrolysis and that molecules from linseed oil and colophony may react with each other [START_REF] Rivenc | L'élimination des vernis huile-résine. Première Partie : huile de lin et colophane[END_REF] . Daher recently observed that oxidation of colophony was favoured by the presence of linseed oil [START_REF] Daher | Analyse par spectroscopies Raman et infrarouge de matériaux naturels organiques issus d'objets du patrimoine : méthodologies et applications[END_REF] . Such studies suggest a possible reactivity between oil and resin compounds and enlighten the need for additional information on oil/resin mixtures.

Experimental

Preparation of reference varnish films

Reference liquid varnishes with five different proportions of linseed oil and colophony (80/20, 66/33, 50/50, 40/60, 25/75, wt%) were manufactured according to historical recipes dating from the 14th to the 18th century which include ingredients used for preparing varnishes for musical instruments or other objects. Reference linseed oil (10 g) namely clarified linseed oil (Laverdure, ref. #181070) was heated slowly to 170 °C in a beaker. The heating plate was then stopped and various quantities (2.5, 5, 10, 15 and 30 g) of the solid reference colophony (Laverdure, ref. #341865) were added to obtain five varnishes. Before being added to the hot linseed oil, the colophony had been crushed in an agate mortar. The dissolution of the colophony was achieved under magnetic stirring in about one hour. In a general way, the viscosity increases with the proportion of colophony, and similarly, the color of the varnishes becomes darker with increase in the proportion of colophony. Different solid varnish films were obtained by carefully spreading the liquid varnish on a clean microscope glass slide. Thicknesses of the varnish films were not perfectly homogeneous, and were measured from 10 m to 150 µm. Films were then aged one year upon indoor storage in room conditions (i.e. with indirect natural sunlight, values for relative humidity and for temperature are 34% and 24 °C, respectively).

Historical varnish

The varnish coating the soundbox of a theorbo was micro-sampled. This instrument belonging to the lute family, was made in the late 16th or early 17th century in Venice by Magno Dieffopruchar (a.k.a. Tieffenbrucker) and is now in the collection of the Musée de la musique in Paris (inv. E.1778) [START_REF] Dugot | Les luths (Occident) -Catalogue des collections du Musée de la musique[END_REF] . Its dark red-brown coating is considered by lute historians as quite typical of those encountered on Venetian lute-type instruments in this period. Special care was taken in the selection of the sampling area, in order to avoid any detectable touching up or non-original material.

Pyrolysis (TMAH)-gas chromatography/mass

spectrometry analyses Each varnish film was analysed using an adapted Py(TMAH)-GC/MS procedure with thermally assisted methylation.

Sample preparation

For each run, a few milligrams (not weighted; estimated about 20 µg) of each reference varnish film were collected by scraping the surface of the microscope glasses with a sterile scalpel blade under a binocular microscope (Microvision Zeiss Discovery V20; magnification 7.5). Each sample (reference and historical varnish) almost invisible by the naked eye was directly placed into a 50 l stainless steel Eco-cup (Frontier Laboratories). A new Eco-cup is used for each run. With the aim to check the run and to further obtain the relative amount of some diterpenoids and carboxylic acids in each sample (i.e. semi-quantitative analysis), 4 l of nonadecanoic acid, nC19:0 (Sigma-Aldrich), dissolved in dichloromethane (Sigma Aldrich, ACS reagent,  99.5%) with a concentration of 8.2. 10 -4 mol/L was also introduced into the Eco-cup using a micro-syringe. Nonadecanoic acid was chosen as internal standard because it is absent from both colophony and linseed oil molecular compositions, and because its chemical structure is very close to both palmitic and stearic acids (nC16:0 and nC18:0), two molecules of main interest in linseed oil molecular composition. The internal standard was used to correct the variability of the analyses by dividing each peak area by the internal standard peak area, before any further calculation. The one-stage derivatization was then performed by adding with a micro-syringe 2 l of a methanolic solution of TMAH (25 wt%) into the Eco-cup just before placing it into the pyrolysis interface of a Frontier Lab PY-2020iD pyrolyser.

Pyrolysis(TMAH)-GC/MS analytical conditions

Reference varnish samples were analyzed using a single-step TMAH-Assisted Py-GC/MS at 600 °C for 0.10 minutes and then passed, through an interface set at 320 °C, to a Shimadzu GC2010 gas chromatograph interfaced with a Shimadzu GCMS-QP2010Plus mass spectrometer. The chromatograph was equipped with Agilent DB-5MS Ultra Inerte (95% dimethylpolysiloxane -5% phenyl) fused-silica capillary column of 30 m (length)  0.25 mm (internal diameter)  0.25 m (film thickness). The carrier gas was helium with a constant flow of 1 mL/min. The split/splitless injector was used in split mode with a split ratio of 10/1 and its temperature was maintained at 280 °C. The oven temperature was programmed as follows: initial temperature 40 °C (hold for 1 min) to 180 °C at a rate of 10 °C/min, then ramped to 296 °C at a rate of 4 °C/min and then ramped to 325 °C (hold for 1 min) at a rate of 30 °C/min. The temperatures of the interface and the source were set at 300 and 200 °C, respectively. To avoid saturating the filament against the excess of derivatizing reagent, the filament was deactivated for 8.5 minutes. Mass spectra were collected under electron ionization mode (EI) at 70 eV. They were generated with alternate SIM-Scan acquisition method from m/z 50 to m/z 500 with a scan time of 0.3 s and a cycle time of 0.92 s.

In order to verify the Py-GC/MS data reproducibility, four replicate runs of each varnish sample were performed. The molecular assignment was done either by direct analysis of the mass spectrum and/or comparison with a reference mass spectral library (US National Institute of Standards and Technology, NIST 02 version 2.0 a, 2002) and/or comparison to pyrograms and mass spectra of published literature. Peak area integration was first done using GC/MS Solution chromatography software. All the automated integrations were then manually checked by the same analyst to ensure their accuracy and to correct integration problems such as overlapping peaks, peak shoulders, background noise, and integration threshold. Limit of detection (LOD) was calculated with a standard solution of nC18:0 of which concentrations were decreased until the height of the peak is three times taller to the maximum height of the baseline. The concentration of 7.7.10 - 8 mol/L corresponding to that peak was taken as the LOD.

Analytical conditions used for the historical varnish were the same except for the oven temperature programmed as follow: initial temperature 40 °C (hold for 1 min) to 180 °C at a rate of 10 °C/min, and then ramped to 325 °C (hold for 8 min) at a rate of 4 °C/min and for mass spectra that were scanned using single Scan acquisition method from m/z 40 to 800 with a cycle time of 1 s.

Results and discussion

4.1. Qualitative analysis of the reference one year old varnish films Pyrograms from all reference varnishes have profiles consistent with the literature. In particular, expected methylated forms of carboxylic acids (from linseed oil) and diterpenoids (from colophony) are detected. Fig. 2 presents the pyrogram from the reference varnish film with a 50/50 (wt%) linseed oil/colophony proportion. Peak assignments of fatty acid and diterpenic compounds are provided in Tab. 1 and Tab. 2, respectively. Differences in relative peak intensities are observed between the reference varnishes. Chromatographic peaks assigned to linseed oil are methyl esters of palmitic (nC16:0, P), stearic (nC18:0, S), oleic (nC18:1, O) and linoleic (nC18:2, L) acids, which are present in the varnish as free acids or bound in triglycerides. Linoleic (nC18:2, L) and linolenic (nC18:3, Ln) acids are the major fatty acids in fresh linseed oil, but as may be expected from their high reactivity in the oxidation and polymerisation processes of the oil, linolenic is not detected and linoleic is detected in very small amounts. Interestingly, oleic acid is still detected in reference samples after one year of natural ageing whereas it was not detectable anymore after fifteen hours of accelerated photoageing equivalent to five months of natural ageing [START_REF] Scalarone | Thermally assisted hydrolysis and methylation-pyrolysis-gas chromatography/mass spectrometry of light-aged linseed oil[END_REF] . Two dicarboxylic acids, suberic (di-nC8, Su) and azelaic (di-nC9, Az) acids, formed by homolytic cleavage during radical oxidation processes of unsaturated fatty acids, are also detected

As for colophony, methylated forms of five diterpenic acids are detected. In particular, qualitative identification of sandaracopimaric acid (Sand), abietic acid (Ab), dehydroabietic acid (DHA), 7-oxo-dehydroabietic acid (7-oxo-DHA) and 15-OH-7-oxo-dehydroabietic acid (15-OH-7oxo-DHA) are consistent with compounds reported in the literature using a similar analytical method [START_REF] Scalarone | Ageing behaviour and pyrolytic characterisation of diterpenic resins used as art materials: colophony and Venice turpentine[END_REF][START_REF] Van Den Berg | Mass spectrometric methodology for the analysis of highly oxidized diterpenoid acids in Old Master paintings[END_REF] . A previous article pointed out that thermally assisted methylation can lead to the formation of multiple derivatives from a single compound and induce isomerizations [START_REF] Pastorova | Analysis of oxidised diterpenoid acids using thermally assisted methylation with TMAH[END_REF][START_REF] Van Den Berg | Mass spectrometric methodology for the analysis of highly oxidized diterpenoid acids in Old Master paintings[END_REF] . Within this work, to avoid any misinterpretation, for each of the five diterpenic compounds, we took into account the highest-intensity chromatographic peak which corresponds to the major compound with both the hydroxyl and carboxylic methylated functional groups [START_REF] Pastorova | Analysis of oxidised diterpenoid acids using thermally assisted methylation with TMAH[END_REF] .

On the basis of previous articles [START_REF] Echard | Gas chromatography-mass spectrometry characterization of historical varnishes of ancient Italian lutes and violin[END_REF][START_REF] Bertrand | Identification of the finishing technique of an early eighteenth century musical instrument using FTIR spectromicroscopy[END_REF][START_REF] Van Den Berg | State of oxidation of diterpenoid Pinaceae Resins in Varnish, Wax Lining Material, 18th, Century Resin Oil Paint, and a Recent Copper Resinate Glaze[END_REF][START_REF] Van Den Berg | Identification of an original nonterpenoid varnish from the early 20th century oil painting "the white horse[END_REF][START_REF] Echard | Review on the characterization of ancient stringed musical instruments varnishes and implementation of an analytical strategy[END_REF] , the five above-mentioned compounds were selected and considered as markers for evaluating the amounts of diterpenoids and fatty acids as a function of the proportion of linseed oil and colophony.

Qualitative analysis of a 16th century varnish film

The pyrogram of the historical varnish film is characteristic of a drying oil/Pinaceae resin system (Fig. 2b). As for fatty acids, we identified methyl esters of palmitic, azelaic and suberic acids.

The palmitic/stearic ratio was calculated to 1.43 which strongly corresponds to values obtained for linseed oil with similar analytical method [START_REF] Cappitelli | An initial assessment of thermally assisted hydrolysis and methylation-gas chromatography/mass spectrometry for the identification of oils from dried paint films[END_REF] . The azelaic/palmitic and suberic/palmitic ratios were calculated to 0.66 and 0.30, respectively. Typical markers of Pinaceae resin, sandaracopimaric, isopimaric, dehydroabietic and 7-oxodehydroabietic acids were also detected. Peak assignations lead to the identification of a drying oil admixed to a diterpenic resin, probably a Pinaceae one. As expected in such centuries-old sample, linolenic, linoleic, oleic as well as abietic acid are not detected, because of their well-known reactivity in the ageing of drying oils and colophony respectively. Interestingly, the 15-OH-7-oxo-dehydroabietic acid is not detected in this four hundred years-old varnish, whereas previous works mentioned that it is a highly oxidized product of colophony ageing. Two hypotheses can be suggested: this compound is present in a lower quantity which cannot be detected with our method or it is only an intermediate compound towards still undescribed further ageing mechanisms.

Semi-quantitative analysis of the reference one

year old varnish films Until now, interpretation of chromatographic analyses of diterpenoids in Pinaceae resins mostly relied on the detection or not of molecules usually associated to various states of oxidation, after various artificial ageing protocols, and in historical (several centuries old) samples. More recently, the GC/MS analysis of a collection of materials from an early 18th century chemist's cabinet illustrated that conservation conditions and physical form of samples could have a strong influence on the relative intensities of ageing markers [START_REF] Steigenberger | Natural resins and balsams from an eighteenth-century pharmaceutical collection analysed by gas chromatography/mass spectrometry[END_REF] . Given the chemical state of the resin material, markers corresponding to the different oxidations states could either be detected as major components, minor components or not detected. Van den Berg selected four markers (Ab, DHA, 7-oxo-DHA and 15-OH-7-oxo-DHA), each corresponding to an oxidation state of the material, and normalized the sum of their peak areas to 100%. This allowed to assess the oxidation state of the material from a sequence of four numbers [START_REF] Van Den Berg | State of oxidation of diterpenoid Pinaceae Resins in Varnish, Wax Lining Material, 18th, Century Resin Oil Paint, and a Recent Copper Resinate Glaze[END_REF] and, later, from an "Index for the Degree of OXidation" called IDOX, a linear combination of these four normalized peak areas [START_REF] Van Den Berg | Mass spectrometric methodology for the analysis of highly oxidized diterpenoid acids in Old Master paintings[END_REF] .

Our research is an adaptation of this method and aims to suggest a semi-quantitative approach. With this aim, we selected ten compounds as markers: five for colophony (sandaracopimaric acid, abietic acid, dehydroabietic acid, 7-oxo-dehydroabietic acid and 15-OH-7-oxo-dehydroabietic acid) and five for linseed oil (oleic acid, stearic acid, palmitic acid, azelaic acid and suberic acid. For each sample, the area of each compound was divided by that of the internal standard and the value obtained was then adjusted by a factor corresponding to the relative content of oil (in the case of the fatty acids and dicarboxylic acids), or the relative content of resin (in the case of terpenoid compounds), and finally divided by the sample weight. Each semiquantitative value likely obtained is represented as a function of the proportion of colophony (Fig. 3). Figure 3. Influence of the colophony proportion on the amount of molecular markers (green plots: fatty acids compounds, orange plots: diterpenoids) and values of typical molecular ratios (blue plots). P: palmitic acid, S: stearic acid, O: oleic acid, Su: suberic acid, Az: azelaic acid, Ab: abietic acid, Sand: sandaracopimaric acid, DHA: dehydroabietic acid, 7-oxo-DHA: 7-oxo-dehydroabietic acid, 15-OH-7-oxo-DHA: 15-hydroxy-7-oxo-dehydroabietic acid (all compounds detected as methyl esters), IDOX [START_REF] Van Den Berg | Mass spectrometric methodology for the analysis of highly oxidized diterpenoid acids in Old Master paintings[END_REF] . RSD is represented by an error bar.

The relative standard deviation (RSD, based on four injections) of the internal standard area is calculated to 10.2%. This low value indicates that the Py(TMAH)-GC/MS developed method which required sample of a minimal quantity of matter from a varnish on an artifact, under a stereomicroscope, has a good reproducibility.

For these ten markers, with an exception for oxidised colophony compounds, 7-oxo-DHA and 15-OH-7-oxo-DHA, standard deviations are acceptable, considering the high areas variations caused by the pyrolysis injection (see 7-oxo-DHA and 15-OH-7-oxo-DHA in Fig. 3). The higher values obtained for 7-oxo-DHA and 15-OH-7-oxo-DHA account for the heterogeneity within each varnish film and could be enhanced by the low amounts of these diterpenoids after only one year of natural ageing. In general, these higher RSD may be explained by a "matrix effect". As for linseed oil markers, peak areas of palmitic and stearic acids (see P and S in Fig. 3) follow the same variation from one reference varnish to an other and are only representative of the inherent variability of injections. The palmitic/stearic ratio is constant at 1.58 ± 0.15 independently of the proportions of linseed oil and colophony (see P/S in Fig. 3). This result reinforces that P/S ratio is still relevant to determine the vegetal origin of the drying oil even in such mixtures, where these molecules are weakly and/or similarly reactive. Oleic acid is still detectable in reference varnishes after one year of natural ageing, and its signal increases with the proportion of colophony (see O and O/P in Fig. 3). The higher amount of oleic acid in varnishes containing high proportions of colophony (60% and 75%) suggests that the autooxidation of unsaturated fatty acids occurring within the linseed oil is slowed down by colophony compounds. Regarding the suberic (see Su and Su/P in Fig. 3) and azelaic (see Az and Az/P in Fig. 3) acids, the results, despite the quite high relative standard deviations, suggest that they are formed in lesser amounts for the highest colophony proportion (75%) which would reinforce the previous suggestion. Such a correlation has already been observed on photo-aged oil samples [START_REF] Scalarone | Thermally assisted hydrolysis and methylation-pyrolysis-gas chromatography/mass spectrometry of light-aged linseed oil[END_REF] . The Az/P values are slightly superior to those obtained for three month old-linseed oil films [START_REF] Cappitelli | An initial assessment of thermally assisted hydrolysis and methylation-gas chromatography/mass spectrometry for the identification of oils from dried paint films[END_REF] . As for colophony compounds, it is highlighted that the more colophony in the mixture, the higher the amount of abietic acid, sandaracopimaric acid and dehydroabietic acid (see Ab, Sand and DHA in Fig. 3). As previously recalled, abietane-type diterpenoids such as abietic and dehydroabietic acids are supposed to oxidise over time leading to dehydroabietic acid and subsequently to 7-oxodehydroabietic acid. It is then likely that these compounds are less present in mixtures with high content of oil because they reacted to form oxidised compounds. Contrary to abietane-type diterpenoids, pimarane compounds such as sandaracopimaric acid initially present in fresh colophony are not expected to form oxidised compounds. Though they should be less prone to polymerisation than abietane-type diterpenoids, cross-linked oligomeric structures could be formed from the reaction of their separated double bonds [START_REF] Scalarone | Ageing behaviour and pyrolytic characterisation of diterpenic resins used as art materials: colophony and Venice turpentine[END_REF] . This can be a possible explanation for the low amount of sandaracopimaric in low-colophony varnishes. As a consequence of the oxidation of abietic and dehydroabietic acids, we would have expected to see the amount of 7-oxo-dehydroabietic acid and 15-OH-7-oxo-dehydroabietic acid to decrease with the proportion of colophony in the mixture (see 7oxo-DHA and 15-OH-7-oxo-DHA in Fig. 3). However, it is very difficult to discuss these evolutions because of the high relative standard deviations. The small amount of fresh diterpenic compound (abietic and sandaracopimaric acids) and first-stage oxidation compound (dehydroabietic acid) in mixtures with a high proportion of oil raises questions about the sole use of these markers to assess the state of oxidation/ageing of resinous fraction in oil varnishes. It also suggests that linseed oil has an activating role in the oxidation reactions occurring on colophony compounds. This study shows that the amount of the less oxidised compounds (abietic, sandaracopimaric, dehydroabietic and oleic acids) in oil/colophony mixtures increases with the colophony proportion. It might be worth noting that colophony admixed to linseed oil in a film has an influence on the curing and degradation of the oil, as pigments could have in an oil-based paint layer [START_REF] Corbeil | The Artist's Materials[END_REF] . Conversely, linseed oil has an influence on the ageing of colophony. We calculated the IDOX from our data set as defined by van den Berg (see IDOX in Fig. 3) [START_REF] Van Den Berg | Mass spectrometric methodology for the analysis of highly oxidized diterpenoid acids in Old Master paintings[END_REF] . This indicates that for identical ageing time and conditions, the oxidation state of the resin compounds in varnishes can be very different, depending on the oil proportion.

Possible phenomena and mechanisms specific

to linseed oil/colophony mixtures Our results indicate that compounds of linseed oil and colophony evolve differently in the binary system oil/colophony than separately. The modification of the molecular compositions of each of those is influenced by the presence of the other material. Physical as well as chemical phenomena may be considered as possible factors explaining it, even if, obviously, further specific studies should be necessary to evidence them. One of the two materials may act as a photoabsorbing agent, which would then minimize photo-initiated mechanisms involved in the evolution of the other material. Absorptions of abietane-type diterpenoids present maxima up to 280 nm [START_REF] Kersten | Rapid Analysis of Abietanes in Conifers[END_REF] whereas fatty acids absorb photons up to 250 nm and fresh drying oil films up to 300 nm [START_REF] Mallégol | Long-Term Behavior of Oil-Based Varnishes and Paints. Photo-and Thermooxidation of Cured Linseed Oil[END_REF][START_REF] De La Rie | Fluorescence of paint and varnish layers (part 2)[END_REF] .

One hypothesis could be that the conjugated double bonds of the diterpenoids would react preferentially to those of the oleic acid if colophony reaches a given amount, and/or that colophony plays an antioxidant role in linseed oil. This hypothesis is consistent with the lower calculated amounts of azelaic and suberic acids at high colophony proportion. These acids arise from the unsaturated fatty acids in linseed oil, among which the oleic acid. So, the higher the amount of oleic acid, the lower the expected amount of azelaic and suberic acids. Likewise, the relative amount of DHA could be linked to the medium reactivity, and thus to the respective proportions of linseed oil and colophony in the binary system. This would suggest that a competition among reaction mechanisms or among specific compounds could play a role depending on the composition stoichiometry of the reference varnishes. These results question the methods usually used for characterising oil/colophony varnishes that are based on a qualitative search for specific degradation markers. Similarly, the influence of the Az/P ratio may modify the criteria that have been used so far for the attribution of the vegetal origin of oil and its discrimination from egg yolk 14 .

Towards Py(TMAH)-GC/MS quantitation

The Py(TMAH)-GC/MS semi-quantitative method developed and applied to micro-samples from the reference varnishes allows to go beyond qualitative method applied up to now on such mixtures. Data obtained suggest that the reaction mechanisms involved in the process of drying, oxidation and degradation are highly related to the proportions of linseed oil and colophony within the varnishes. This result provides new insights into molecular evolution of linseed oil/colophony. To our knowledge, this aspect has never been published so far. To go further in the understanding of the chemical mechanisms involved in the evolution of films containing drying oils and Pinaceae resin and thus to better assess the reactivity between carboxylic acids and diterpenoids, it seems necessary, in next steps, to track the quantities of the various compounds which appear or disappear during the film drying and ageing by performing molecular quantitation using a Py(TMAH)-GC/MS method we aim to developp.

Conclusion

This paper presents the first stage of results obtained in the process of optimising a single-step TMAH-Assisted Py-GC/MS method, in an approach going towards the qualitative analysis of markers in mixture of drying oil with a Pinaceae resin that are frequently encountered in coating of musical instruments, furniture, various decorative art objects as well as in easel paintings. This research performed with the aim to better understand the molecular ageing of coating based on oil/resin highlights the variability of the semiquantitative composition of samples of the same age and kept under the same conditions. Results obtained suggest that linseed oil has an activating role in the oxidation reactions occurring on colophony compounds, and that conservation state of varnishes could be closely linked to the proportion of resin in the mixture. Questions of the relevance of previously frequently used markers to assess the state ageing of such varnishes and of the need to reconsider conservation strategies are thus raised.

Acknowledgements

Figure 1 .

 1 Figure 1. Main mechanisms involved in the ageing of Pinaceae resin-containing films.

Figure 2 .

 2 Figure 2. Pyrograms obtained from (a) the reference varnish film with a 50/50 (wt%) linseed oil/colophony proportion and (b) the historical varnish. Numbered peaks are listed in Tab. 1 and Tab. 2. (NI): compounds of which chemical structures were not identified.

  Part of this research was led thanks to the funding provided by the Department for Research, Higher Education and Technology of the French Ministère de la Culture et de la Communication. Sophie Tirat is a PhD student at the Laboratoire de Recherche et de Restauration (Musée de la Musique, Cité de la Musique), the Centre de Recherche sur la Conservation des Collections, and the Laboratoire des Systèmes et Applications des Technologies de l'Information et de l'Energie. Her research is supported by the Université of Cergy-Pontoise in

Table 1 .

 1 Fatty acid compounds identified in the reference varnishes with five different oil/colophony proportions, and in the historical varnish. Peaks are numbered according to their elution time. Check mark indicates detected compound (above the detection limit).

	Peak number/	Compound	M w (methylated)				Linseed oil/colophony proportion			Historical
	abreviation											varnish
				Tr(min)	100/0	80/20	67/33	50/50	40/60	25/75	0/100
	1	Octenoic acid	156	9.10								
	2	Octanoic acid	158	9.61								
	3	Nonanoic acid	172	11.13								
	4/Su	Octanedioic acid	202	14.22								
	5/Az	Nonanedioic acid	216	15.52								
	6	Decanedioic acid	230	16.90								
	7	Tetradecanoic acid	242	18.08								
	8	Pentadecanoic acid	256	19.63								
	9	Hexadecenoic acid or isomer	268	20.83								
	10/P	Hexadecanoic acid or isomer	270	21.55								
	11	Heptadecanoic acid	284	23.46								
	12/O	Octadecenoic acid or isomer	296	24.92								
	13	Octadecenoic acid or isomer	296	25.05								
	14/S	Octadecanoic acid	298	25.44								
	17/L	Octadecadienoic acid	294	26.70								
	20	Eicosanoic acid	326	29.44								
	28	Docosanoic acid	354									
	31	Tetracosanoic acid	382									

Table 2 .

 2 Diterpenoids identified in the reference varnishes with five different oil/colophony proportions, and in the historical varnish. Peaks are numbered according to their elution time. Check mark indicates detected compound (above the detection limit).

	Peak number/ abreviation	Compound	M w (methylated)	Tr(min)	100/0	80/20	Linseed oil/colophony proportion 67/33 50/50 40/60	25/75	0/100	Historical varnish
	15	9,10-seco-dehydroabietic acid	316	26.21								
		or isomer
	16	9,10-seco-dehydroabietic acid or isomer	316	26.61								
	18/Sand	Sandaracopimaric acid	316	28.37								
	19/IsoP	Isopimaric acid	316	28.95								
	21	Methyl 6-dehydrodehydroabietic acid or isomer	312	29.57	 							
	22/DHA	Dehydroabietic acid	314	29.64								
		7-Methoxy-1,4a-dimethyl-
	23	1,2,3,4,4a,9,10,10a-octahydrophenanthrene-1-	302	30.25								
		carboxylic acid
	24/Ab	Abietic acid	316	30.62								
		Methyl 6-
	25	dehydrodehydroabietic acid or	312	31.29								
		isomer
		Methyl 6-
	26	dehydrodehydroabietic acid or	312	31.50								
		isomer
	27/15-OH-DHA	15-methoxy-dehydroabietic acid	344	32.40								
	29/7-oxo-DHA	7-oxo-dehydroabietic acid	328	34.17								
	30/15-OH-7-oxo-DHA	15-hydroxy-7-oxo-dehydroabietic acid	372	34.47								

the framework of the LabEx "PATRIMA : Patrimoines matériels". This paper is based on a presentation at the 6th MaSC meeting in Pisa, Italy, 5-6 June 2013.