Using nondeterministic learners to alert on coffee rust disease Motivated by an agriculture case study, we discuss how to learn functions able to predict whether the value of a continuous target variable will be greater than a given threshold. In the application studied, the aim was to alert on high incidences of coffee rust, the main coffee crop disease in the world. The objective is to use chemical prevention of the disease only when necessary in order to obtain healthier quality products and reductions in costs and environmental impact. In this context, the costs of misclassifications are not symmetrical: false negative predictions may lead to the loss of coffee crops. The baseline approach for this problem is to learn a regressor from the variables that records the factors affecting the appearance and growth of the disease. However, the number of errors is too high to obtain a reliable alarm system. The approaches explored here try to learn hypotheses whose predictions are allowed to return intervals rather than single points. Thus, in addition to alarms and non-alarms, these predictors identify situations with uncertain classification, which we call warnings. We present three different implementations: one based on regression, and two more based on classifiers. These methods are compared using a framework where the costs of false negatives are higher than that of false positives, and both are higher than the cost of warning predictions. In this paper we discuss how to learn alarm functions which should predict the values of a continuous target variable. The research was motivated by an agriculture case study: the prevention of coffee rust, the most devastating disease for coffee plants, caused by the fungus Hemileia vastatrix Berk. & Br.. In Brazil, damage leads to yield reductions of up to 35% in regions where climate conditions are propitious to the disease. The impact of the disease is thus considerable due to the economic importance of the coffee crop.. The traditional way to prevent the disease is to apply agrochemical fungicides on fixed calendar dates. However, the fungicides pollute the environment and reduce the quality of the coffee. Moreover, as the intensity of the disease between seasons suffers major variations, the use of agrochemicals is not always justified.. The symptoms of infection include the appearance of spots on the upper leaf surface of plants. The incidence of the disease is defined as the percentage of infected leafs. The purpose of alarm functions is to alert on high incidences of the disease with time enough to apply the fungicide in advance. The objective is to build economical tools that will allow applying agrochemicals only when necessary, leading to healthier products as well as reductions in costs and environmental impact.. Throughout the paper, we use a dataset (Japiassú et al., 2007; Meira, Rodrigues, & de Moraes, 2008 ) that comprises monthly accounts of the incidence of disease on an experimental farm in Brazil over 8 years. Additionally, the dataset registers the values of variables known to stimulate the growth of fungus: weather conditions, fruit load of the plantation, and spacing between plants.. A baseline approach to build an alarm function is to learn a regressor that predicts incidences. Thus, in addition to predicting whether or not the incidence will require the use of fungicides, we also have an assessment of how serious the situation may be. We trained a regression Support Vector Machine (SVM) with quite good results. The correlation between predicted and actual incidences is about 0.94 in a cross-validation experiment. However, if we use regression predictions to decide whether the incidence of the disease will be greater than a given threshold, the number of misclassifications is too high.. To try to overcome this weakness, we used an approach similar to that of classifiers with a reject option, (Bartlett & Wegkamp, 2008; Chow, 1970) . The situations that are likely to be misclassified are rejected; they are not classified and will be tagged, in this case, as warnings. In other words, we can convert misclassifications into a type of situation that may require deeper analysis. However, when the alarm system predicts an alarm, and especially a nonalarm, the confidence level of these predictions increases.. The distinction between false positive (alarm) predictions, and false negative, is very important in this case. The cost, in the economic sense, is quite different in these kinds of errors. False positives may lead to the unnecessary application of fungicides, but false negative predictions can lead to the loss of coffee crop.. Thus, we try to learn models to predict approximations to incidence values instead of exact values. To implement this idea, there are a number of possible alternatives. For instance, in Papadopoulos, Proedrou, Vovk, and Gammerman (2002) , Hullermeier (2007) the authors propose algorithms to learn confidence intervals. It is out of the scope of this paper to compare all available alternatives. We focus on a method to compare the performance of predictors devised to alert on coffee rust disease. Thus we employ one approach based on metric regression, another based on ordinal regression, and finally a classifier.. In Luaces, Rodrigues, Meira, Quevedo, and Bahamonde (2010), we explored regressors whose predictions were intervals of a fixed width, say 2, rather than points. Using a regression SVM, we can learn an interval regressor that optimizes the so-called -insensitive loss function for each width; i.e., regressors that try to include the targets in an interval of radius centered around the predicted value, or that at least try to place the interval as close as possible to the targets.. Additionally, we implemented approximate regressors by means of classifiers. In fact, the range of target values, in this case the interval [0, 100] of percentages of incidence, can be discretized in, say, k bins with equal frequency. The prediction of one such bin is actually an approximation to the true target; however, we may go even further by allowing the classifiers to predict one or more consecutive bins. Once again, uncertainty in the prediction is the rationale behind broader predictions. Following (Alonso, del Coz, Díez, Luaces, & Bahamonde, 2008; del Coz, Díez, & Bahamonde, 2009) , these predictors may be called nondeterministic classifiers.. The three learners considered here have in common that they use a parameter to state what can be seen as a degree of nondeterminism. Thus, we can achieve broader or narrower predictions simply by modifying the corresponding parameter both for classifiers and regressors. As expected, we found that the number of warnings is higher as we increase the radius of predicted intervals, causing a decrease in the number of misclassifications.. To compare the performance of each learner, we may plot the pairs of number of misclassifications and warnings obtained when varying the parameters that control the degree of nondeterminism. Thus, we obtain curves similar to Regression Error Characteristic (REC) curves (Bi & Bennett, 2003) or reject tradeoff curves, see (Chow, 1970) . However, taking into account that we must consider different costs for false positives, false negatives, and warnings, the decisive comparison of learners has to be drawn from a 3D perspective. The economic and ecological costs of the use of fungicides and the risk of loss of coffee crops must be taken into account.. The conclusion is that the design of alarm functions for this agricultural problem is feasible. Under mild conditions for the relationships of costs of errors and warnings, we obtain that nondeterministic classifiers outperform the regressors compared in this study. We have discussed how to learn a predictor to obtain an alarm system for coffee rust, the main coffee crop disease in the world. In this case, the aim is to employ chemical prevention of the disease only when necessary so as to achieve healthier quality products and reductions in costs and environmental impact. In this context, the costs of misclassifications are not symmetrical. False negative predictions would lead to not preventing a severe increase in the incidence of the disease, and may lead to the loss of coffee crops.. From a formal point of view, the aim is to predict the value of future incidence of the disease on the basis of previously measured values and weather records. If the incidence exceeds a certain threshold, we have an alarm situation.. We have presented a collection of predictors able to forecast an interval of possibilities instead of a single value. They can be implemented using many different approaches. In this paper, we considered nondeterministic classifiers after discretization of the target value, and an straightforward implementation for interval predictors obtained by Regression Support Vector Machines using the so-called -insensitive zone.. In any case, the use of interval predictors allows us to distinguish a third type of situation between alarms and non-alarms: when the predictions include both alarm and non-alarm situations; we call these warnings. As expected, we found that the number of warnings is higher as we increase the radius of predicted intervals, while the number of wrong predictions decreases. In other words, predictions are more reliable when they assert alarms or non-alarms, but further analysis may be required to decide what to do in uncertain situations (warnings).. To compare the performance of these alarm predictors, we presented a framework where the costs of false negatives are higher than that of false positives, and both are higher than the cost of warning predictions. Under mild conditions, we identified ranges of costs where one of the nondeterministic classifiers outperforms the other learners.. From a practical point of view, the implementation of any of these predictors is very affordable; the only requirement is a cheap weather station able to register the data described in Section 2. We believe that the use of nondeterministic predictors could be successfully generalizable to other prediction tasks where the target values are not easily predictable by conventional classifiers or regressors. Moreover, the comparison method deployed in the previous section can be useful for other situations with different costs of false positives and false negatives.

O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Algorithms for Solving Linear Systems over Cyclotomic Fields We consider the problem of solving a linear system Ax = b over a cyclotomic field. What makes cyclotomic fields of special interest is that we can easily find a prime p that splits the minimal polynomial m(z) for the field into linear factors. This makes it possible to develop fast modular algorithms.We give two output sensitive modular algorithms, one using multiple primes and Chinese remaindering, and the other using linear p−adic lifting. Both use rational reconstruction to recover the rational coefficients in the solution vector. We also give a third algorithm which computes the solution x as a ratio of two determinants modulo m(z) using Chinese remaindering only. In general, because this representation for x is a factor of d = deg m more compact, we can compute it the fastest in general.We have implemented the algorithms in Maple with key parts of the implementation implemented in C for efficiency. A complexity analysis and experimental timings show that on inputs with random matrix entries, the third method is fastest. However, on real inputs arising from problems in computational group theory, the first two methods are must faster than the third method because the solution vectors have very small rational coefficients.We also give a fast probabilistic algorithm for computing the roots of a cyclotomic polynomial modulo a prime p and some new data on the height of the cyclotomic polynomials of order up to 100 million. In this paper we consider the problem of how to efficiently solve a linear system Ax = b over an algebraic number field Q(ζ) where ζ is a primitive k'th root of unity. These number fields, which include the complex rationals, are called the cyclotomic fields. The Table 1 . Cyclotomic polynomials of order [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] Our motivation for considering linear systems over cyclotomic fields arose from problems given to us by Vahid Dabbaghian from computational group theory -from the search for a matrix representation over C for a finite group. What is special about these linear systems is that the size of the rationals in their solution vectors are much smaller than they would be the input coefficients were randomly generated. This means that our modular algorithms need to be output sensitive, sensitive to the size of the rational numbers in x.. Finding efficient algorithms for solving a linear system Ax = b over Q is a classical problem in computer algebra. One approach is to solve Ax = b modulo a sequence of primes p 1 , p 2 , ...., and recover the rational solutions in x using Chinese remaindering and rational number reconstruction. For a linear system of dimension n with A i,j , b i ∈ Z where |A i,j |, |b i | < 10 c , that is, the size of the integers in the input are bounded by c digits in length, in general, the size of integers in the solution vector x are n times longer than those in A and b. This means that if we use machine primes, primes of constant bit length, this method will need O(cn) primes in general. If ordinary Gaussian elimination is used to solve the O(cn) linear systems modulo the primes, the complexity of this multiple prime approach is dominated by a term or order n 4 . By using linear p−adic lifting one can reduce this to n 3 . The p−adic approach was first applied to linear systems by Dixon in (5) and Moenck and Carter in (14) . The recent paper of Chen and Storjohann (2) describes an implementation of the this approach which reduces the matrix inversion modulo p to floating point matrix multiplications so that level 3 BLAS can be used. We also cite the work of Storjohann (18) which looks at the complexity of solving Ax = b over Q and contains an extensive bibliography on the problem. Progress has also been made on the complexity of sparse linear systems. In (6), Eberly et. al. show that if one can multiply a matrix A of dimension n by a vector in O(n) field operations, then one can compute the dense solution of Ax = b in O(n 2.27 ) field operations.. In principle, the same two basic approaches, Chinese remaindering and linear p−adic lifting, with rational number reconstruction, can be applied to linear systems over a number field Q(α). What makes the cyclotomic fields of special interest is the following well known fact (which follows from Lemma 4). Lemma 1. Let m(z) = Φ k (z) be a cyclotomic polynomial of degree d and let p be a prime. The probability that m(z) splits into distinct linear factors over Z p is asymptotically 1/d. Lemma 1 means that there are many primes that split m(z) available. If Q(α) is an algebraic number field with minimal polynomial f (z) of degree d, in general, the probability that f (z) splits into linear factors over Z p is 1/d! which is too low to try to split f (z). Furthermore, since we can efficiently factor m(z) into linear factors over Z p we can solve Ax = b mod p at each root of m(z), potentially in parallel, then interpolate the n polynomials in x i ∈ Z p [z], again, potentially in parallel. And if we choose the prime(s) p appropriately, so that arithmetic in Z p can be done directly by the hardware of the computer, then the overall algorithm will be efficient in practice. But for cyclotomic polynomials, it is much faster to construct the roots directly, without need for polynomial arithmetic. Let m(z) = Φ k (z) be the k th cyclotomic polynomial and d = φ(k). Let p be a prime of the form p = kq + 1 and let α be a primitive element in Z p . Then β = α q is a primitive k'th root of unity and {β i for 0 < i ≤ k such that gcd(i, k = 1)} are all primitive k'th roots of unity and hence these are the desired roots of m(z). This observation gives an algorithm for finding the roots of m(z) as follows. Pick 1 < α < p − 1 at random until we get a primitive element. To test if α is a primitive element we will need the factorization of p − 1. This is easy for p a machine prime, and since the density of primitive elements is φ(p − 1)/(p − 1), this approach is efficient. Better, however, is the following method which eliminates the need for integer factorization and has a higher probability of success.. Step 1: Pick 0 < a < p − 1 at random and compute β = a q . Now β is necessarily a k'th root of unity but it may not be primitive. To test if β is primitive we do the following.. Step 2: Compute S = {β i for 0 < i < k} and check if the elements of S are distinct. If they are then β = a q is a primitive k'th root of unity and the roots of m(z) can be selected from S. Steps 1 and 2 can be done in O(k + log 2 q) multiplications and O(k log 2 k) comparisons of integers modulo p. The following lemma tells us the probability that β is primitive.. Lemma 5. Let p = kq + 1 be a prime. Let a be chosen at random such that 0 < a < p and let β = a q . Then the probability that β is a primitive k'th root of unity is φ(k)/k.. Proof. β = a q is a primitive k'th root of unity implies β m ≡ 1 mod p for all 0 < m < k. We will count N the number of integers 0 < m < p satisfying β m ≡ 1 mod p. Let α be a primitive element. Then a = α i for some 0 ≤ i < p − 1 and β m = a qm = α iqm . Thus. But α is a primitive element so. The the number of integers 0 < i < k satisfying gcd(i, k) = 1 is simply φ(k) and since p = kq, N =. The probability φ(k)/k is high. If k is prime it is (k − 1)/k. The lowest it can be is when k is a product of distinct small primes, 2, 3, 5, 7, ... . For example, the lowest value of φ(k)/k for k < 2000 is 0.23 for k = 210. Observe also that. the probability that 0 < α < p is a primitive element. The difference can be significant. For example, for k = 11, q = 6, p = 67, we have (φ(k)/k)/(φ(p − 1)/(p − 1)) = 3. The following result (see Chapter 4 of (1)) bounds how low φ(k)/k can be. We state the running time of Algorithm 1 in terms of n, d, c which quantify the size of the input and L, the number of primes needed by Algorithm 1 to reconstruct x. Because we use machine primes, primes of constant bit-length that fit into a machine word, L is normally linear in e, the length of the largest integer appearing in the rational coefficients in x. But, rational reconstruction is not attempted at each step, because, unlike Chinese remaindering, it cannot be done efficiently incrementally. Thus our description of the algorithm implies that Algorithm 1 can use (up to twice as many) than are necessary to reconstruct the rationals in x. Note also, depending on how the trial divisions in step 14 are implemented, we may need additional primes (see section 2.4).. In general, the length of the rationals appearing in the output can be slighty more then nd times longer than those in the input (see Lemma 14) . But in section 3.1 our linear systems arising in practice illustrate that they can be much smaller. For this reason we state the running time in terms of L and also for L ∈ O(cnd).. Theorem 9. The running time for Algorithm 1, assuming (i) no unlucky primes are encountered, (ii) ||m(z)|| ∞ < 10 6 , and (iii) not counting the cost of the trial divisions m(z)|(Ax − b) (in the next section we will show that the trial divisions can be eliminated from Algorithm 1), is. The n 3 dL term is the cost of the linear solves modulo p, the n 2 d 2 L term is for evaluating A at the d roots modulo p, the n 2 dLc term is for reducing the input matrix A modulo p, and the ndL 2 term is the cost of the Chinese remaindering and the rational reconstruction.. Proof. In step 3 the cost of finding a prime p, reducing m(z) modulo p, and computing the roots of m(z) in Z p using our algorithm from section 2.1 is dominated by other steps in the algorithm.. In step 4, reduction of the integer coefficients in A and b modulo p takes O(n 2 dLc) arithmetic operations in Z p since there are n 2 entries in A and n in b to reduce and each entry is a polynomial with at most d non-zero terms. This needs to be done for each of the L primes that we choose.. Step 6 evaluates A i,j (z) and b i (z) at each root α k1 , · · · , α kd modulo p. This costs O(n 2 d 2 L) because there are n 2 + n polynomials to be evaluated. Each requires O(d) arithmetic operations in Z p using Horner's rule. This needs to be done for all L primes.. For step 7, solving the system A k (α ki ).x ki ≡ b k (α ki ) mod p k for x ki takes O(n 3 ) operations using Gaussian Elimination. Since this is done for each root and each prime, the total cost of step 7 is of O(n 3 dL) arithmetic operations in Z p . Interpolation in step 10 takes O(nd 2 L) arithmetic operations since we only need to interpolate the solution vector which has n elements over the d roots. Notice that interpolation is dominated by the evaluations in step 6.. In step 11 Chinese remaindering is applied to integer coefficients of x (k−1) mod P and x k mod p k . There are at most nd integers to reconstruct. The incremental cost at step k is O(k) per coefficient since P is a product of k − 1 primes. Summing ndO(k) for k = 1..O(L), the total cost is O(ndL 2 ). If classical Euclid's algorithm is used for rational reconstruction in step 13, rational reconstruction from an integer modulo P, a product of k machine primes, primes of size O(1), costs O(k 2 ). Since we attempt rational reconstruction after k = 1, 2, 4, 8, 16, ... primes, the final successful rational reconstruction will dominate total the cost of rational reconstruction. Since the solution vector x has at most nd rational coefficients, the total cost of the final successful reconstruction is O(ndL 2 ). Adding the above contributions gives the running time as stated. 2. We state the running time of Algorithm 2 in terms of n, d, c and L, the number of lifting steps that Algorithm 2 takes. Assuming the primes used by Algorithms 1 and 2 are of the same length, L the number of lifting steps in Algorithm 2 is approximately equal to L the number of primes used by Algorithm 1.. Theorem 10. The running time for Algorithm 2, assuming (i) the prime p chosen in step 1 is not unlucky, (ii) ||m(z)|| ∞ < 10 6 , and (iii) not counting the cost of the trial. Moreover, if L ∈ O(cnd) then the cost is. The n 3 d term is the cost of computing the d matrix inverses and the n 2 d 2 Lc term is the cost of computing the error e k in step 11. The ndL 2 term is the cost of step 12 which is a conversion from the p-adic representation of the solution to an integer representation. The ndL 2 term is the cost of rational reconstruction. Before we give the proof we bound ||Ax k mod m(z)|| that appears in step 11 and thus prove that and the size of the integers in the error e k is bounded. Notice that the bound necessarily depends on ||m|| ∞ . Our simplifying assumption that ||m|| ∞ < 10 6 means that this factor in the bound may be ignored.

O O O B I O B I O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O B I O O O O O O O O O O O O O O O O B I O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


A survey of computational steering environments Computational steering is a powerful concept that allows scientists to interactively control a computational process during its execution. In this paper, a survey of computational steering environments for the on-line steering of ongoing scientific and engineering simulations is presented. These environments can be used to create steerable applications for model exploration, algorithm experimentation, or performance optimization. For each environment the scope is identified, the architecture is summarized, and the concepts of the user interface is described. The environments are compared and conclusions and future research issues are given. Computational steering can be defined as the interactive control over a computational process during execution. In an interactive computational process, a sequence of specification, computation, and analysis is performed. For each adaption that is to be made to the computational model, this process has to repeated. Computational steering closes the loop such that scientists can respond to results as they occur by interactively manipulating the input parameters. Computational steering enhances productivity by greatly reducing the time between changes to parameters and the viewing of the results [11] , it enables the user to explore a what-if analysis [4] , and as changes in parameters become more instantaneous, the cause-effect relationships become more evident [14] . Computational steering is applicable in many areas of computational science. In a broad perspective, all interactive computational processes can be regarded as a form of steering. Examples in this regard are the on-line debugging of source codes, interactive scientific visualization, and computer games. We confine ourselves to the steering of ongoing scientific and engineering simulations. In this area, three main uses of computational steering can be distinguished: model exploration, algorithm experimentation, and performance optimization. With model exploration, computational steering is used to explore parameter spaces and simulation behavior to gain additional insight in the simulation. In algorithm experimentation, computational steering allows the user to adapt program algorithms in run time, for instance to experiment with different numerical solving methods. In performance optimization, steering is used to manually improve an application's performance, e.g. to perform load balancing interactively in parallel applications.. Computational steering has been recognized as an important issue for over a decade. The influential report of the US National Science Foundation on scientific visualization published 1987 [12] , stated computational steering to be a valuable tool for scientific discovery. Brooks expressed the need for generalized tools for interactive steering for large computations in 1988 [3] . Over the years, many computational steering applications and systems have been developed. The results can be classified into application specific computational steering systems, domain specific computational steering systems, and more generally applicable computational steering environments. An example of an early computational steering application is described by Marshall et al. [11] . They present a system for the visualization and steering of a 3D turbulence model of Lake Erie. More general but application domain specific computational steering systems have for instance been developed for molecular dynamics simulation. Bergman et al. [1] describe the VIEW system, an exploratory molecular visualization system with user-definable interaction sequences. Leech et al. [9] presented SMD, a system for the interactive steering of molecular dynamics calculations of protein molecules. Vetter composed an annotated bibliography focussed on computational steering research issues, systems, and applications [19] .. In this paper, we present an overview of several general computational steering environments that have been developed and presented over the years. The environments we discuss are: VASE, SCIRun, Progress, Magellan, CUMULVS, VIPER, and CSE. This list of steering environments is not exhaustive, but it is typical for the systems encountered in computational steering research. The environments will be compared on characteristics involving the scope of the environments, their architectures, and their user interfaces. We will first describe the principle concepts of general computational steering environments, and define the characteristics on which the environments will be discussed. In section 3, a short description is given of each of the environments. Section 4 summarizes and discusses the main similarities and differences between the environments. Conclusions and issues for future research are given in section 5. Figure 1 depicts a diagram of a computational steering process. The computational steering environment comprises three major components: the user interface, the application, and the communication and data transfer between the user interface and the application. These components may be handled by separate processes that might run in a distributed environment, or they can be united into a single process running on a single machine. The application to be steered might be a distributed application itself. Furthermore, the steering process does not have to be limited to single applications or single users. Several different users might perform collaborative steering of a single or multiple applications simultaneously.

O O O B I O B I O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O B I O O O B I O O O O O B I O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Distributed Collaboration for Enhanced Sender-Driven Video Streaming Abstract-We propose a sender-driven system for adaptive streaming from multiple servers to a single receiver over separate network paths. The servers employ information in receiver feedbacks to estimate the available bandwidth on the paths and then compute appropriate transmission schedules for streaming media packets to the receiver based on the bandwidth estimates. An optimization framework is proposed that enables the senders to compute their transmission schedules in a distributed way, and yet to dynamically coordinate them over time such that the resulting video quality at the receiver is maximized. To reduce the computational complexity of the optimization framework an alternative technique based on packet classification is proposed. The substantial reduction in online complexity due to the resulting packet partitioning makes the technique suitable for practical implementations of adaptive and efficient distributed streaming systems. Simulations with internet network traces demonstrate that the proposed solution adapts effectively to bandwidth variations and packet loss. They show that the proposed streaming framework provides superior performance over a conventional distortion-agnostic scheme that performs proportional packet scheduling on the network paths according to their respective bandwidth values. We presented a system for rate-distortion optimized packet scheduling in distributed video streaming scenarios where several sources collaborate to serve a media client. The system consists of an optimization framework for scheduling the packet transmissions at the individual senders. Using bandwidth estimates based on client feedbacks, the senders can independently, but still in coordination, decide what the most important packets are to transmit on every network path, for the given bandwidth estimates. We designed a low-complexity solution that precomputes optimized packet schedules ahead of time thereby reducing substantially the required online complexity during streaming. This is achieved by employing packet classification, via source pruning, of the compressed video stream at different data rates. Extensive simulations demonstrate minimal performance loss compared to the complex rate-distortion optimal solution, as well as significant performance gains over a conventional distortion-agnostic system for distributed streaming with comparable online complexity. We have shown that the distributed streaming system based on packet classification provides performance that is quite competitive with the rate-distortion optimal solution. The suboptimal behavior is due to several design choices, which objectives are mainly driven by reducing the computational complexity of the optimal streaming solution. In particular, a priori partitioning of the media packets breaks the dependencies between media units, since each server manages a distinct subset of data units, independently of the streaming strategies decided by other servers, on other complementary subsets of data units. Additionally, we observed in our simulations that the rate-distortion optimal strategy sometimes sends the same packet from different servers in order to increase the probability of on-time arrival at the client of important packets. Such a strategy is excluded from the streaming policies available in PackClas scheme, due to the partitioning of the media packets into distinct subsets. Finally, another limitation of PackClas stems from the granularity of target rates when classification of the media packet is performed originally (see Section IV-B). For computational complexity reasons, the granularity cannot be chosen arbitrarily fine, which in turn affects how efficient PackClas can be when adapting to bandwidth variations. Nonetheless, PackClas proves to be a competitive solution for distributed streaming applications thanks to its low computational complexity, ease of deployment due to minimal requirements on the receiver, and yet efficient rate-distortion performance.

B I O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O B I O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


A decoupled local memory allocator Compilers use software-controlled local memories to provide fast, predictable, and power-efficient access to critical data. We show that the local memory allocation for straight-line, or linearized programs is equivalent to a weighted interval-graph coloring problem. This problem is new when allowing a color interval to "wrap around," and we call it the submarine-building problem. This graph-theoretical decision problem differs slightly from the classical ship-building problem, and exhibits very interesting and unusual complexity properties. We demonstrate that the submarine-building problem is NP-complete, while it is solvable in linear time for not-so-proper interval graphs, an extension of the the class of proper interval graphs. We propose a clustering heuristic to approximate any interval graph into a not-so-proper interval graph, decoupling spill code generation from local memory assignment. We apply this heuristic to a large number of randomly generated interval graphs reproducing the statistical features of standard local memory allocation benchmarks, comparing with state-of-the-art heuristics. We implemented a novel compilation-time local memory management approach through decoupling spill code generation and local memory assignment. We represent the live range intervals of variables and arrays as a weighted interval graph. We defined a new decision problem called the submarine-building problem, a variant of the ship-building problem. The submarine-building problem corresponds to coloring a weighted interval graph with a cyclic set of colors (corresponding to a wrap-around local memory). We demonstrate important complexity results on this problem, some of which are particularly original in graph theory. We provide a new clustering heuristic to approximate interval graphs into not-so-proper interval graphs, on which the submarine-building problem can be decided in linear time. This approximation effectively decouples the generation of spill code from the local memory assignment problem. Our preliminary experiments demonstrate the practicality of the approach, and very favorable allocation results compared to state-of-the-art allocators. In a previous paper [Diouf et al. 2009 ], based on recent progress in register allocation, we considered a decoupled approach to local memory allocation, and we experimentally validated this decoupling. This article takes a more theoretical standpoint and seeks to better understand the optimization problem of local memory management.. Recent research in register allocation leverages the complexity and performance benefits of decoupling its allocation and assignment phases [Appel and George 2001; Pereira and Palsberg 2005; Hack et al. 2005; Bouchez et al. 2006b; Brisk et al. 2006 ]. The allocation phase decides which variables to spill and which to assign to registers. The assignment phase chooses which variable to assign to which register.. The allocation phase relies on the maximal number of simultaneously living subvariables, called MAXLIVE, a measure of register pressure. When enough live range splitting is done, it is sufficient that MAXLIVE is less or equal to the number of available registers to guarantee that all the subvariables will be allocated and the forthcoming assignment phase can be done without further spill. In many cases, assignment can even be achieved in linear time [Hack et al. 2006; Bouchez et al. 2006b ]. If at some program point the pressure exceeds the number of available registers, MAXLIVE needs to be reduced through spilling.. This decoupled approach permits to focus on the hard problem, namely the spilling decisions. It also improves the understanding of the interplay between live range splitting and the expressiveness and complexity of register allocation. This is best illustrated by the success of SSA-based allocation [Bouchez et al. 2006a [Bouchez et al. , 2006b [Bouchez et al. , 2007 Hack et al. 2006; Braun and Hack 2009 ].. The intuition for decoupled register allocation derives from the observation that live range splitting is almost always profitable if it allows to reduce the number of register spills, even at the cost of extra register moves. The decoupled approach focuses on spill minimization only, pushing the minimization of register moves to a later register coalescing phase [Appel and George 2001; Hack et al. 2006; Bouchez et al. 2008] . Here again, SSA-based techniques have won the game. Specifically, they collapse the register coalescing with the hard problem of getting out of SSA [Hack et al. 2006; Boissinot et al. 2009; Pereira and Palsberg 2009] , as one of the last backend compiler passes.. The domain of local memory management tells a very different story. Some heuristics exist [Udayakumaran and Barua 2003; Udayakumaran et al. 2006; Kandemir et al. 2001; Li et al. 2009 ] but little is known about the optimization problem, its complexity, and the interplay with other optimizations. The burning hot question is of course: does the decoupled approach hold for the local memory management problem? Surprisingly, the state-of-the-art of local memory management completely underexploits all the advances in register allocation. When focusing on arrays, the similarity between register and local memory allocation is obvious nonetheless.. -Local memory allocation. Deciding which array blocks to spill to main memory and which array blocks to allocate to the local memory. Spilling is typically supported by DMA units. -Local memory assignment. Deciding at which local memory offset to assign which allocated array block.. In the context of local memory management, the maximum size of simultaneously living arrays, 1 called MaxSize, gives a measure of local memory pressure. Again, like for register allocation, live range splitting helps to reduce the local memory pressure. Since arrays are frequently accessed inside loops, local memory management algorithms often split arrays at loop-entry points; we call these points decision points. Decision points can also be chosen in a finer manner, after loops or before array accesses. Local memory pressure can also be reduced by loop transformations like strip-mining, tiling which reduces the portion of accessed arrays. For all these reasons, the study of a decoupled approach in the local memory management context seems very appealing. Strong links between register allocation and local memory management have been discovered for more than 30 years by Fabri [1979] . Fabri's seminal paper also studied the interplay between local memory management and the loop transformations. Since then it has been ignored in the field of local memory management and register allocation [Appel and George 2001; Hack et al. 2006; Bouchez et al. 2006b; Quintáo Pereira and Palsberg 2008] . While previous studies addressed local memory management from different angles, targeting both code and data, we are especially interested in data management [Kandemir et al. 2001; Issenin et al. 2007; Dominguez et al. 2007 ]. We target dynamic methods which are superior to static ones except when code size is extremely constrained [Udayakumaran and Barua 2003] . We elaborate on two recent series of results targeting stack and global array management in local memories, embracing the analogies with register allocation. The first approach [Li et al. 2005] uses an existing graph coloring technique to perform memory allocation for arrays. It partitions the local memory for each array size, performs live range splitting, and uses a register allocation framework to perform memory coloring. The second approach [Avissar et al. 2002; Udayakumaran and Barua 2003; Udayakumaran et al. 2006 ] allocates data onto the scratchpad memory between program regions separated by specific program points. More specifically, allocation is based on the access frequency-per-byte of a variable in a region (collected from profile data). Program points are located at the beginning of a called procedure or before a loop entry.. The closest work to ours is Li et al. [2011] , where authors observed that in many embedded applications most arrays present a specific live range behavior. Specifically, for any two arrays live ranges are either disjoint or one of the arrays is contained by the other one (containment property). They showed that, for the tested benchmarks, it is extremely rare to have two live ranges interfere with one another without containment. They extend the live range of one of the arrays to contain the other when this happens. Authors proved that the interference graph of an application with such a property is a comparability graph which is a superperfect graph and hence optimal interval coloring for this array interference graph is possible. Based on this observation, they rely on the maximum weighted clique to guarantee the optimal colorability of the generated interference graph. When the maximum weighted clique exceeds the size of the local memory, they use heuristics to spill or split some of the live ranges. While this work is interesting, it is restricted to applications where most arrays satisfy the containment property. On the other hand, our work leverages the decoupled allocation/assignment approach, allowing scalable and more effective algorithms. Moreover, it offers much more flexibility in terms of integration of architecture constraints and performance models. Our comparisons are based upon randomly generated graphs that attempt to reproduce the characteristics of real-life applications. We were inspired by the common characteristics found in representative numerical benchmarks, such as those we used in our previous work [Diouf et al. 2009 ] (BMCM [Berry et al. 1988] , MXM, EDGE DETECT [Lee 1998 ], and FFT [Lee 1998 ]) and the Polybench [Pouchet 2012 ]. These graphs have been used to evaluate our decoupled approach to the local memory allocation problem.. 3 Table I lists the parameters that model the local memory used in our experiments. We modeled a typical DDR memory with burst/pipelined and random-access latencies. Varying these ratios will change the overall benefits of local memory allocation, but not the relative performance of the different heuristics/algorithms.. Before we present the results of our evaluation, we first explain how we proceed to generate the random graphs, then we give a description of the compared algorithms, and finally we depict the details of our experimental evaluation.. 8.1.1. Graph Generation. We generate interval graphs, selecting start (left) and end (right) points at random. We also try to reproduce the control and data structures found in real-life applications, adding specific constraints and limits on these graphs. We control the number of intervals, the minimum length of an interval, the maximum number of concurrently live intervals, and weight of intervals. Although there is no specific limit on maximum number of data structures that can be used in an application, in practice it is not usual to see hundreds of data structures in a single application. Also data structures in applications are usually not intended to be created and used at the same line of code. That is, when a data is created it is meant to be used for some time; they are created, used, and removed from memory when they are no longer required. By giving a bound on interval length we have ensured that the virtual data structures created within an application are used for a minimum length of time and the maximum number of live intervals within the graph is used to limit the maximum number of data elements concurrently used in an application.. Our graphs are composed of compound intervals which are in turn composed of basic intervals which have been introduced in Section 7. Each compound interval represents the whole live range of an array, and the basic intervals represent the subintervals of the compound interval where the array is frequently accessed. These basic intervals are called hot portions in the approach of Li et al. [2011] . Usually the array is accessed frequently through loops and in our implementation, each basic interval corresponds to an access to an array through a loop. A basic interval begins at the start point of a loop where an array is accessed and ends at the end point of that loop. Thus to generate the basic intervals, we first generate some loops that can be imbricated or not. Each loop has a start point and an end point that differs from start points and end points of other loops. A loop l 1 , that contains a loop l 2 , starts before l 2 and ends after l 2 . For each array A, we randomly choose some loops where A will be frequently accessed. A basic interval bi of A corresponds to a chosen loop l. The start point and the end point of bi are set to the start point and end point of l. When choosing the basic intervals of A, when two basic intervals are such that the one is contained in the other, we consider that the A is accessed in the containing basic interval. Each bi is associated to a randomly generated frequency and is defined as being a write, meaning that A is modified within bi, or a use, meaning that A is only read within bi. After all the basic intervals of A are chosen, we define ci, the compound interval of A: it contains all the basic intervals of A, starts with the ourtermost loop containing the first basic interval of A, and ends with the outermost loop containing the last basic interval of A.. To make the generation of interval graphs as generic as possible we use the parameters presented in Table II . We were inspired by the frequent characteristics found in representative numerical benchmarks, such as the four aforementioned kernels and the Polybench [Pouchet 2012 ]. The parameters allow to control the number of intervals in the graph, the number of loops, the maximum depth of a loop, the maximum number of basic intervals of a compound interval, etc. 8.1.2. Algorithms. We use the randomly generated graphs to evaluate our approach by comparing it with three other approaches.. Classical best fit. This algorithm, denoted BestFit, walks over the list of basic intervals and attempts to assign every basic interval bi to a portion of the local memory (in fact, it is the array of this bi which is assigned). If there is enough space to hold bi, it chooses the space where bi fits the best. Otherwise either bi is spilled or some previously assigned basic intervals are spilled to make room for bi.. Best-fit variant. This is a variant of of the best-fit, denoted BestFitVariant. Whenever a basic interval bi ends, it is checked if bi is the last basic interval of its compound interval ci. If so, bi is removed from the local memory. Otherwise, bi is left in the local memory until this space is needed for another basic interval bi of another compound interval ci (another array) or the next basic interval of ci starts. The aim of this technique is to assign, if possible, different live ranges of an array to the same offset in the local memory in order to avoid copy costs.. Superperfect This is our implementation of the approach of Li et al. [2011] denoted here SuperPerfect. In this implementation the live range splitting is naturally performed because the frequently accessed portions (called hot portions by authors of the approach) of the array's live ranges are exactly the basic intervals. Thus, the set of candidates subject to allocation are composed of the compound intervals and their basic intervals. The allocation algorithm will consider either the compound interval or each of its individual basic intervals for allocation, but not both at the same time. To approximate a given graph into a superperfect graph, we go through the loops in their increasing start points, and we mark all the intervals (the candidates, the basic and compound intervals) defined at the same point as containing related; notice that two different loops have start points and end points that differ. When at a start point, an interval j starts when another interval i is already defined and still live, and i and j are not containing related, we extend i to the end of j. After this approximation the new formed interval graph is superperfect.. 8.1.3. Evaluation Details. Our evaluation was conducted on different local memory sizes. We varied the size of the local memory in accordance with MaxSize when performing the experiments; MaxSize-the maximum size of simultaneously living arrays-can vary significantly between two graphs. Thus, we do think that it is not very relevant to compare two allocation algorithms on graphs with MaxSize that widely differs when using a local memory with a fixed size. We focus here on the interesting case where MaxSize is the maximum size of simultaneously living basic intervals and not of the compound intervals, which is larger and thus makes the problem easier to solve.. We based our comparison on the cumulative memory access latency incurred by each method. The allocation of the best quality is the allocation with the lowest access latency. For every interval graph the cost of the allocation performed by BestFitVariant, SuperPerfect, and our approach, denoted NSP, have been normalized with respect to BestFit. For a given size of the local memory and a given algorithm, an associated bar shows the average (Figure 7 and Figure 9 ) and how the individual allocations are statistically distributed in the normalized allocation space (Figure 8 and Figure 10) , of all the normalized allocation cost of the given algorithm.. To perform an allocation with our approach we feed Algorithm 3 with the list of basic intervals of each weighted interval graph. Algorithm 3 will then return a not-so-proper interval graph composed of local-memory live intervals. The MaxSize of the resulting graph is less than or equal to the size of the local memory, hence all its associated array blocks can be placed in the local memory using Algorithm 2.

O O B I O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O B I O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O B I O O O O O O O O O O O O O O O O O O B I O O O O B I O O O O O O O O O O O O O O O O O O B I O O O O O O O B I O O O O B I O O O O O O O O O O O B I O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O B I O O O O O O O O B I O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O B I O O O


Equational Approximations for Tree Automata Completion In this paper we deal with the verification of safety properties of infinite-state systems modeled by term-rewriting systems. An over-approximation of the set of reachable terms of a termrewriting system R is obtained by automatically constructing a finite tree automaton. The construction is parameterized by a set E of equations on terms, and we also show that the approximating automata recognize at most the set of R/E-reachable terms. Finally, we present some experiments carried out with the implementation of our algorithm. In particular, we show how some approximations from the literature can be defined using equational approximations. In this paper we propose a new tree automata completion algorithm and a new approximation mechanism based on equations. The main contribution with respect to the closest related works (Meseguer et al., 2003; Takai, 2004) is that no restriction is imposed on the equations. This makes it easy to adapt the set of equations to the particular objectives of an analysis. On the other hand, our term-rewriting systems have to be left linear. However, this restriction did not present us from handling practically interesting cases studies. For Java bytecode verification, the TRS encoding the semantics of the program is left-linear (Boichut et al., 2007) . For cryptographic protocols, non left-linear rules can be encoded using conditional rules, and a simple extension of completion for conditional rules based on (Feuillade et al., 2004 ) is possible.. We have also obtained some results on the precision of our equation-based approximations. For a given left-linear TRS R, a R/E-coherent initial tree automaton and a set of equations E, we have shown that our algorithm produces an automaton that recognizes at most R/E-reachable terms. In other words, the computed approximation is within the bounds of the expected approximation defined by the equations E.. The first application of tree automata completion was to prove security properties on cryptographic protocols. Although not presented in this paper, we have verified that approximations similar to those of (Genet and Viet Triem Tong, 2001a) can be obtained using equations. On cryptographic protocols, we came up with sets of equations far simpler than original sets of normalization rules. Si Experiments are also currently under way on Java byte code in order to define 0-CFA and 1-CFA analyses, as in (Boichut et al., 2007) , using equations.. The price to pay for the conciseness and expresiveness of equational approximation is in the complexity of the algorithms. Finding instances of equation members, and merging corresponding states is more complex that applying a normalization rule. However, fine-tuned data structures in our prototype made it possible to have a better overall efficiency than the Timbuk 2.2 implementation based on normalization rules. Note also that soundess of approximations is not jeopardized by implementation optimizations, since we use the certified Tree Automata Completion Checker of (Boyer et al., 2008) to check the correctness of the results.. Finally, proving safety properties is interesting but not enough. Proving temporal properties on the rewriting graph, like (Meseguer et al., 2003) , is also of great interest. In the completion algorithm proposed in this paper, the graph of epsilon transition represents an abstraction of the rewriting graph. In (Boyer and Genet, 2009) , from the completed automaton, we build a Kripke structure on which LTL properties can be proved. The proposed construction is limited to finite rewriting graphs. Further research consists of building finite over-approximations of infinite rewriting graphs using equations. In this section we show some verification examples that have been be carried out with an implementation of our main algorithm, presented in the previous section. We focus on verifying safety properties and thus essentially rely on Theorem 45. We have developed a new version of the Timbuk tool to support our new algorithm: Timbuk 3.0. The experiments of this section have been performed using this prototype. Here, our aim is not to compare execution times of our tool with recent implementations of completion procedures (Balland et al., 2008; Gallagher and Rosendahl, 2008) . We just note that, for the examples in this section, our algorithm terminates in less than one second.. The convention followed hereafter is that variable names start with capital letters.

O O O B I O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Rational quadratic approximation to real algebraic curves An algorithm is proposed to give a global approximation of an implicit real plane algebraic curve with rational quadratic B-spline curves. The algorithm consists of four steps: topology determination, curve segmentation, segment approximation and curve tracing. Due to the detailed geometric analysis, high accuracy of approximation may be achieved with a small number of quadratic segments. The final approximation keeps many important geometric features of the original curve such as the topology, convexity and sharp points. Our method is implemented and experiments show that it may achieve better approximation bound with less segments than previously known methods. We also extend the method to approximate spatial algebraic curves. An implicit real plane algebraic curve C of degree n is defined by f (x, y) = 0 where f (x, y) ∈ R[x, y] is a polynomial of degree n and R the field of real numbers. The curve is said to be rational if it can be additionally represented by rational parametric equations x = x(t) d (t) and y = y(t) d (t) which is called implicitization (Sederberg and Zheng, 2002) . On the other hand, it is also desirable to generate a parametric representation for an implicitly defined algebraic curve, which is called parametrization. Methods to find parametric equations of implicit curves are given (Abhyankar and Bajaj, 1988; Sendra and Winkler, 1991; Gao and Chou, 1992) . However only a small subset of real algebraic curves are rational. In general, an algebraic curve of arbitrary degree is rational if and only if its genus is equal to zero (Walker, 1978) .. Approximation methods are therefore proposed to give a rational form for an implicit real algebraic curve. The methods can be categorized into three classes: the linear approximations, the points sampling approximations and the approximations based on power series. Ihm and Naylor surveyed some techniques for generating a linear approximation of an algebraic curve (Ihm and Naylor, 1991) . Farouki proposed a segmentation method for algebraic curves and then used a polygon to approximate the curve (Farouki, 1989) . However, the detail of the segmentation process is not presented in the paper. Given a model shape, curve or surface, expressed by a set of sample points on it, Pottmann et al. introduced the active B-spline curve or surface to approximate it (Pottmann et al., 2002) . The method is further refined in (Yang et al., 2004) . Based on the Implicit Function Theorem, Montaudouin et al. sought to represent a curve branch explicitly in one coordinate as function of the other one (Montaudouin et al., 1986) . A technique was presented by Sederberg et al. to give a rational approximation of algebraic curves for some special cases (Sederberg et al., 1989) . Using a combination of algebraic and numerical techniques, Bajaj and Xu constructed a C 1 -continuous, piecewise rational approximation of a general plane algebraic curve (Bajaj and Xu, 1997) . Interval cubic Bézier curves are used to approximate a plane algebraic curve (Chen and Deng, 2003) . However, most of these methods rely on the local properties of the approximated curves without the consideration of their global properties, so they generally result in many pieces in the final approximations.. In this paper, we consider the rational quadratic approximation problem for a plane algebraic curve C with a global topology analysis. The resulted approximations are several rational quadratic B-spline curves, each of which is obtained from piecewise rational quadratic Bézier curves. The quadratic segment (or conics) is used since it has both the implicit and parametric forms and it is the freeform curve with the lowest degree and has many nice properties (Lee, 1985; Farin, 1989) . The approximation algorithm mainly consists of the following steps:. (1) Topology determination. We find a rectangular bounding box B and a graph G such that the curve C, C B (the part of C inside B), and G have the same topology. (2) Curve segmentation. Divide C into triangle convex segments, which have similar properties with conics. (3) Segment approximation. We present a shoulder point approximation method to give a nice approximation to a triangle convex segment with conics expressed in a rational quadratic Bézier form. (4) Curve tracing. Find a proper tracing order and convert the resulted approximation conics into rational quadratic B-spline curves, each of which gives a C 1 global parametrization for a curve branch.. Due to the detailed geometric analysis, high accuracy of approximation may be achieved with a small number of conics. The final approximation keeps many important geometric features of the original curve such as the topology, convexity and sharp points. The branches obtained in the tracing step provide a global parametrization and a refined topological structure of the curve. We implement our method in Maple and experiments show that our method may achieve better approximation bound with less segments than previously known methods.. We also extend our method to approximate a spatial algebraic curve C S implicitly defined by the intersection of two algebraic surfaces with rational quadratic spline curves. The basic idea is that by performing a proper rotational transformation, the spatial curve is birational to a plane curve C : R(x, y) = 0 and the z-coordinate can be expressed as a rational function of x and y with z = H (x, y). With this formula, the approximation of spatial curves is converted into approximation of plane curves.. The rest of the paper is organized as follows. The three main parts: topology determination and curve segmentation, segment approximation, curve tracing are illustrated in Sections 2, 3 and 4 respectively. The main algorithm and some experimental results for plane curve approximation are given in Section 5. The spatial case is illustrated in Section 6. We conclude this paper in Section 7. In this paper, we give a simple and intuitive approximation of the plane algebraic curve with rational quadratic curves. The basic idea is to divide the curve into triangle convex segments which can be nicely approximated with quadratic Bézier curves and to connect the segments into certain maximal branches which can be globally approximated by quadratic B-splines. We also extend the method to give approximation to spatial curves.. Experiments show that we can achieve high precision approximation with few segments. Instead of giving a power series for each approximated segment, the endpoint information and shoulder points are mainly used to express the segment. Since the geometric information is considered, the algorithm is easy to understand and many geometric characters of the approximated curve are kept.

O O B O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O B I O O O B O O O O O O O O O O O O B O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O B O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O B O O O O O O O O O O O O O B O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O B O O O O O O O O O O O O O O O O B I O O O O B O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


A multi-layer metadata schema for digital folklore collections Digital folklore collections are valuable sources for studying the cultural and oral tradition of a country. The main difficulty in managing such collections is material heterogeneity (handwritten texts, photographs, 3D objects, sound recordings etc.) that imposes different digitization, description and maintenance practices. A multi-layer metadata model for the description of a digital folklore collection is presented. The proposed metadata policy considers a collection as a hierarchy of entities and combines different metadata schemas for the management of each entity. The metadata model integrates elements from different metadata schemas ensuring efficient information recovery from all structural levels. Furthermore, interoperability between the used metadata schemas is discussed and a Topic Maps model is presented as an approach for developing mappings. Digitizing cultural material has become a great priority for heritage institutions. A digital collection facilitates user access to the wealth of cultural heritage objects through various retrieval policies [1] .. A large volume of papers focuses on digitization projects and strategies in heritage institutions [2] [3] [4] , but in most cases, little attention is given to the analysis of documentation workflow.. This study is motivated by the digitization project of the folklore collection belonging to the Department of Greek Literature at the University of Athens in Greece. The collection is dedicated to the tradition and customs of almost all the Greek regions. It is quite complex and lacks systematic documentation. Additionally, the material diversity imposes difficulties on the digitization project, since the adopted metadata model must facilitate the effective description of both the structure and semantics of cultural objects.. Our purpose is to propose an efficient method to manage and expose the wealth of complex cultural heritage collections. We present a functional metadata policy covering both collection-level and item-level descriptions, as well as facilitating effective access to digital content. Furthermore, we discuss the implementation of the digital folklore collection in the integrated digital repository platform of the University of Athens, and related experience. We also deal with metadata interoperability issues since a variety of metadata standards are used to describe heterogeneous material collections, and therefore search mechanisms for integrating the participating metadata schemas are needed.. The rest of the paper is organized as follows. In Section 2 we define the problem and discuss the benefits of our effort, referring also to related work. In Section 3 the main digital collection requirements are demonstrated and in Section 4 the collection structure and the metadata model are presented. Further, a digital repository management architecture implementing the proposed model is presented in Section 5 and a mapping solution for interoperability reasons is proposed in Section 6. Finally, conclusions are given in the last section, with discussion on the contribution of our work. The current research presents a hierarchical metadata model for manipulating complex folklore collections, designed according to material requirements. Specifically, the model follows the internal collection structure and focuses both on the collection and on item characteristics. It contains elements from various metadata standards trying to cover the peculiarities of physical and digital objects, while it respects any restrictions regarding material usage. The expectation for semantically rich and meaningful information retrieval is satisfied, since all collection components are treated as separate digital objects with their own related information, structure and behaviour in the system. Users have the possibility not only to browse the collection contents but also to find exactly where their requested information resides inside the millions of text pages. Furthermore, a suitable infrastructure for developing new and improved information services is presented with the Pergamos system. Pergamos supports the described metadata policy, since it is an object-oriented system and manipulates digital objects according to the prototype instantiation process. A first attempt to evaluate the system, based on a focus group, is discussed while an evaluation plan is presented and will be executed when the system is completed. Finally, interoperability concerns are explored in order to achieve wide exposure of material and communicate with other collections. The development of topic maps provides a different approach for creating mappings between metadata schemas. Moreover the mapping of our model to CIDOC/CRM is in our future plans due to the advantages of the ontology-driven semantic interoperability.. In general, the exposition of the folklore collection in an attractive way for users can be a powerful means to enhance cultural heritage study and research. Digital cultural objects can be transformed into valuable sources of information that will be referenced and used by other applications and systems. Pergamos digital repository system [27] has been developed by the Library Computer Centre of the University of Athens in Greece to host all digital collections of the University. Pergamos is based on Fedora, a Java-based open-source flexible and extensible digital repository management system. It can implement the proposed metadata policy, since it supports many metadata models, which can be either local or extensions of the DC set. Within Pergamos, each digital object consists of four parts:. (a) the metadata sets that describe the content of the object; (b) the structure, which indicates its associations and any linking information, i.e. the existing links among the objects of a collection;. (c) the files of the digital object, i.e. the digital instances of the physical object, if it has any (for example a photograph may have various instances like a TIFF image, JPEG or thumbnail); and (d) behaviour, a set of methods that define how the object can be manipulated in the system.. Pergamos proposes a mechanism for digital objects generation and manipulation based on the 'prototype instantiation process'. According to [28] , a 'digital object prototype' specifies the digital objects' constituent parts (metadata sets, files, internal structure and behaviour definitions). Each digital object is an instance of a digital object prototype and the process of generating a digital object is called prototype instantiation. This process ensures that the resultant objects will be aligned with the specifications of the prototype. Hence, all information in Pergamos is stored in terms of digital object prototypes and their instances.. The proposed architecture consists of a set of prototypes, each one describing a different hierarchy level. So each collection and sub-collection is an instance of the collection prototype, while the notebook prototype is used for the implementation of notebook objects (notebook level) etc. Further, all digital objects are stored in Pergamos as XML documents. An indicative part of the XML schema for the notebook prototype is presented in Figure 2 . Specific attributes are defined for each element such as whether it is mandatory, repeatable or indexed.. The XML files of digital object prototypes are presented to the users by web-based and quite user-friendly templates. The fields and attributes described in the notebook prototype shown in Figure 2 are included in the notebook cataloguing form presented in Figure 3 .. The cataloguing template is currently in the Greek language and so to aid understanding an English label is given for each element in Table 3 . On the upper left side the current hierarchy level is shown (Digital library > Folklore collection > Folklore notebooks). The system offers specific features helping <collection id="folklore.notebooks"> .... <structure> <child type="notebook"></child> </structure> <DOTypes><DOType id="notebook"> Notebook <MDSets><MDSet id="dc"> Dublin Core Metadata <fields> <field id="dc:identifier_physical" indexed="true" mandatory="true" repeatable="false" viewable="true"> Call number <description lang="en">An unambiguous reference to the resource within a given context</description></field> <field id="dc:title" textarea="true"></field> <field id="dc:title_alternative" repeatable="false" textarea="true">Subtitleτττττττττ</field> <field id="dc:date" indexed="true" repeatable="false" viewable="true">Year submitted <description lang="en">Year of submission of the notebook</description></field> <field id="dc:date_accumulated">Accumulated range<description lang="en">Range of material accumulation</description></field> <field id="dc:creator">Creator <description lang="en">An entity primarily responsible for making the content of the resource</description></field> <field id="dc:contributor" indexed="true" mandatory="false" repeatable="true" textarea="false" viewable="true"> Interviewee <description lang="en">A person that gave information to the creator of the notebook</description> </field> ......... Fig. 2 . XML file representing the metadata of notebook prototype.. the cataloguer to save time, such as: the opportunity to fill an element with values taken from a list or to define elements with default values. Almost 1400 digitized notebooks with their metadata records are now registered in Pergamos. A team of three persons is responsible for digitizing and cataloguing the material and their experience and comments for the system environment and function are presented in Section 5.2.

O O O O O O B I O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O