Skip to content

Commit

Permalink
Merge branch 'main' of github.com:SESARLab/Big-Data-Access-Control-Ex…
Browse files Browse the repository at this point in the history
…tension into main
  • Loading branch information
cb-unimi committed May 6, 2024
2 parents 04ee1ce + 294629b commit be4b3e5
Show file tree
Hide file tree
Showing 6 changed files with 101 additions and 80 deletions.
101 changes: 64 additions & 37 deletions experiment.tex

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion main.tex
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@
\definecolor{keywordsColor}{rgb}{0.000000, 0.000000, 0.635294}
\definecolor{stringColor}{rgb}{0.558215, 0.000000, 0.135316}
\theoremstyle{definition}
\newtheorem{definition}{Definition}[section]
\newtheorem{theorem}{Theorem}[section]
%\newtheorem{problem}{Problem}[section]
\newtheorem{definition}{Definition}
\newtheorem{example}{Example}[section]

\input{macro}
Expand Down
32 changes: 16 additions & 16 deletions metrics.tex
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ \subsubsection{Information Loss}
\end{definition}

We note that \emph{AVG}($M_{ij}$) models the average data quality preserved within the pipeline instance $G'$
We also note that \textit{dloss}$_{ij}$$=$1$-$$M_i$ models the quality loss at vertex \vii{i}$\in$$\V'_S$ of $G'$ for service \sii{j}.
We also note that \textit{dloss}$_{ij}$$=$1$-$$M_i$ models the quality loss at vertex \vii{i}$\in$$\V'_S$ of $G'$ for service \sii{j}.
%We also note that information loss \textit{dloss} is used to generate the Max-Quality pipeline instance in the remaining of this section.

\subsection{NP-Hardness of the Max-Quality Pipeline Instantiation Problem}\label{sec:nphard}
Expand Down Expand Up @@ -136,30 +136,31 @@ \subsection{Heuristic}\label{subsec:heuristics}
columns=fixed % Using fixed column width (for e.g. nice alignment)
}

\begin{lstlisting}[frame=single,mathescape, caption={Sliding Window Heuristic with Selection of First Service from Optimal Combination},label={lst:slidingwindowfirstservice}]
\begin{lstlisting}[frame=single, escapechar=\%,mathescape, caption={Sliding Window Heuristic with Selection of First Service from Optimal Combination},label={lst:slidingwindowfirstservice}]
var $\text{G'}$ = [] //pipeline instance
$M$ = 0; //DATA QUALITY
\hl{DEFINIZIONE VARIABILI NON DEFINITE NELLA METODOLOGIA}
function SlidingWindowHeuristic(G^{\myLambda,\myGamma}, \windowsize){
for i = 1 to l - \windowsize + 1


function SlidingWindowHeuristic(G^{%\myLambda%,%\myGamma%}, %\windowsize%){
for i = 1 to l - %\windowsize% + 1
{
for j = i to i + \windowsize - 1
$\text{G'}$ = $\text{G'}$ $\cup$ SelectService(j, \windowsize);
for j = i to i + %\windowsize% - 1
$\text{G'}$ = $\text{G'}$ $\cup$ SelectService(j, %\windowsize%);
}
for j = 1 to $|V'_S|$
$M$=$M$+$M(\sii{j})$;
dloss = 1 - M;
return $\text{G'}$, $M$;
}

function SelectService(j,\windowsize){
QUA DENTRO METTIAMO I PASSI CHE SERVONO PER CALCOLARE L'ISTANZA DEL PRIMO NODO DELLA FINESTRA. METTIAMO UN FOR PER TUTTE LE COMBINAZIONI DI VERTICI NELLA FINESTRA
function SelectService(j,%\windowsize%){
QUA DENTRO METTIAMO I PASSI CHE SERVONO PER CALCOLARE L'ISTANZA DEL PRIMO NODO DELLA FINESTRA.
METTIAMO UN FOR PER TUTTE LE COMBINAZIONI DI VERTICI NELLA FINESTRA
CALCOLIAMO M CON UN FOR
CONTROLLIAMO LA METRICA, SE MINORE USIAMO QUELLA COMBINAZIONE
ALTRIMENTI AVANTI
ALLA FINE SE è L'ULTIMA PASSO RITORNIAMO UNA LISTA DI |W| SERVIZI, ALTRIMENTI SOLO IL PRIMO
ALLA FINE SE e' L'ULTIMA PASSO RITORNIAMO UNA LISTA DI |W| SERVIZI, ALTRIMENTI SOLO IL PRIMO
currentCombination = verticesList[windowIndex].services
totalMetric = 0
for service in currentCombination{
Expand All @@ -171,12 +172,11 @@ \subsection{Heuristic}\label{subsec:heuristics}
minMetricCombination = currentCombination
}
}

if isLastWindowFrame(){
$\text{G'}$.append(minMetricCombination)
}else{
if length(minMetricCombination) > 0
$\text{G'}$.append(minMetricCombination[0])
}
return minMetricCombination

return minMetricCombination[0]
}

\end{lstlisting}
Expand Down
40 changes: 20 additions & 20 deletions pipeline_instance_example.tex
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@

As presented in Table~\ref{tab:exisnt}(a), each vertex is labeled with policies (column \emph{candidate--$>$policy}) and then associated with different candidate services (column \emph{candidate}) and corresponding profile (column \emph{profile}). The filtering algorithm matches each candidate service profile with the policies in Table~\ref{tab:anonymization} annotating the corresponding vertex. It returns the set of services whose profile matches a policy (column \emph{filtering}):
\begin{enumerate*}[label=\textit{\roman*})]
\item vertex \vi{6}, the filtering algorithm produces the set $S'_1=\{s_{61},s_{62}\}$. Assuming that the dataset owner is ``CT'', the service profile of \s{61} matches \p{1} and the one of \s{62} matches \p{2}. For \s{63}, there is no policy match and, thus, it is discarded;
\item vertex \vi{7}, the filtering algorithm returns the set $S'_2=\{s_{72},s_{73}\}$. Assuming that the dataset region is ``CT'', the service profile of \s{72} matches \p{5} and the one of \s{73} matches \p{6}. For \s{71}, there is no policy match and, thus, it is discarded;
\item vertex \vi{8}, the filtering algorithm returns the set $S'_3=\{s_{81},s_{82},s_{83}\}$. Since policy \p{7} matches with any subject, the filtering algorithm keeps all services.
\item vertex \vi{4}, the filtering algorithm produces the set $S'_1=\{s_{51},s_{52}\}$. Assuming that the dataset owner is ``CT'', the service profile of \s{61} matches \p{1} and the one of \s{62} matches \p{2}. For \s{63}, there is no policy match and, thus, it is discarded;
\item vertex \vi{5}, the filtering algorithm returns the set $S'_2=\{s_{62},s_{63}\}$. Assuming that the dataset region is ``CT'', the service profile of \s{72} matches \p{5} and the one of \s{73} matches \p{6}. For \s{71}, there is no policy match and, thus, it is discarded;
\item vertex \vi{6}, the filtering algorithm returns the set $S'_3=\{s_{71},s_{72},s_{73}\}$. Since policy \p{7} matches with any subject, the filtering algorithm keeps all services.
\end{enumerate*}

For each vertex \vii{i}, we select the matching service \sii{j} from $S'_i$ and incorporate it into a valid instance. For instance, we select \s{61} for \vi{6}; \s{72} for \vi{7}, and \s{81} for \vi{8}
as depicted in \cref{tab:instance_example_valid} (a) (column \emph{instance}). We note that to move from a valid to an optimal instance, it is mandatory to evaluate candidate services based on specific quality metrics that reflect their impact on data quality, as discussed in the following of this paper.
as depicted in \cref{tab:instance_example_valid} (a) (column \emph{instance}). We note that to move from a valid to an optimal instance, it is mandatory to evaluate candidate services based on specific quality metrics that reflect their impact on data quality, as discussed in the following of this paper.
%In the next sections, we will introduce the metrics that we use to evaluate the quality of services and the results of the experiments conducted to evaluate the performance of our approach.

% \begin{table*}
Expand Down Expand Up @@ -47,32 +47,32 @@
\begin{tabular}{c|c|c|c|c}\label{tab:instance_example_valid}

\textbf{Vertex$\rightarrow$Policy} & \textbf{Candidate} & \textbf{Profile} & \textbf{Filtering} & \textbf{Instance} \\\hline
\multirow{ 3}{*}{\vi{4} $\rightarrow$ \p{1},\p{2} } & $\s{41}$ & service\_owner = "CT" & \cmark & \cmark \\
& $\s{42}$ & service\_owner = "NY" & \cmark & \xmark \\
& $\s{43}$ & service\_owner = "CA" & \xmark & \xmark \\
\multirow{ 3}{*}{\vi{5} $\rightarrow$ \p{1},\p{2} } & $\s{51}$ & service\_owner = "CT" & \cmark & \cmark \\
& $\s{52}$ & service\_owner = "NY" & \cmark & \xmark \\
& $\s{53}$ & service\_owner = "CA" & \xmark & \xmark \\
\hline
\multirow{ 3}{*}{\vi{5} $\rightarrow$ \p{5},\p{6} } & $\s{51}$ & service\_region = "CA" & \xmark & \xmark \\
& $\s{52}$ & service\_region = "CT" & \cmark & \cmark \\
& $\s{53}$ & service\_region = "NY" & \cmark & \xmark \\
\multirow{ 3}{*}{\vi{6} $\rightarrow$ \p{3},\p{4} } & $\s{61}$ & service\_region = "CA" & \xmark & \xmark \\
& $\s{62}$ & service\_region = "CT" & \cmark & \cmark \\
& $\s{63}$ & service\_region = "NY" & \cmark & \xmark \\
\hline
\multirow{ 3}{*}{\vi{6} $\rightarrow$ \p{7},\p{8} } & $\s{61}$ & visualization\_location = "CT\_FACILITY" & \cmark & \cmark \\
& $\s{62}$ & visualization\_location = "CLOUD" & \cmark & \xmark \\
\multirow{ 3}{*}{\vi{7} $\rightarrow$ \p{5},\p{6} } & $\s{71}$ & visualization\_location = "CT\_FACILITY" & \cmark & \cmark \\
& $\s{72}$ & visualization\_location = "CLOUD" & \cmark & \xmark \\
\end{tabular}
&

\begin{tabular}{c|c}\label{tab:instance_example_maxquality}

\textbf{Candidate} & \textbf{Ranking} \\\hline
$\s{41}$ & 1 \\
$\s{42}$ & 2 \\
$\s{43}$ & -- \\
$\s{51}$ & 1 \\
$\s{52}$ & 2 \\
$\s{53}$ & -- \\
\hline
$\s{51}$ & -- \\
$\s{52}$ & 1 \\
$\s{53}$ & 2 \\
$\s{61}$ & -- \\
$\s{62}$ & 1 \\
$\s{63}$ & 2 \\
\hline
$\s{61}$ & 1 \\
$\s{62}$ & 2 \\
$\s{71}$ & 1 \\
$\s{72}$ & 2 \\
\end{tabular}
\\
(a) Valid Instance example & (b) Best Quality Instance example
Expand Down
6 changes: 0 additions & 6 deletions test.tikz

This file was deleted.

Binary file removed text.pdf
Binary file not shown.

0 comments on commit be4b3e5

Please sign in to comment.