public class ARXConfiguration
extends java.lang.Object
implements java.io.Serializable, java.lang.Cloneable
Modifier and Type | Class and Description |
---|---|
static class |
ARXConfiguration.ARXConfigurationInternal
Class for internal use that provides access to more parameters and functionality.
|
static class |
ARXConfiguration.Monotonicity
Monotonicity.
|
static class |
ARXConfiguration.SearchStepSemantics
The semantics of heuristic search steps.
|
Modifier and Type | Field and Description |
---|---|
static int |
REQUIREMENT_COUNTER
Do the criteria require a counter per equivalence class.
|
static int |
REQUIREMENT_DISTRIBUTION
Do the criteria require distributions of sensitive values in the equivalence classes.
|
static int |
REQUIREMENT_SECONDARY_COUNTER
Do the criteria require a second counter.
|
Modifier and Type | Method and Description |
---|---|
ARXConfiguration |
addPrivacyModel(PrivacyCriterion c)
Adds a privacy model to the configuration.
|
ARXConfiguration |
clone()
Clones this config.
|
static ARXConfiguration |
create()
Creates a new configuration without tuple suppression.
|
static ARXConfiguration |
create(double suppressionLimit)
Creates a new configuration that allows the given percentage of outliers and
thus implements tuple suppression.
|
static ARXConfiguration |
create(double suppressionLimit,
Metric<?> metric)
Creates a new configuration that allows the given percentage of outliers and
thus implements tuple suppression.
|
static ARXConfiguration |
create(Metric<?> metric)
Creates a new configuration that allows to define the metric for measuring information loss.
|
double |
getAttributeWeight(java.lang.String attribute)
Returns the weight for the given attribute.
|
java.util.Map<java.lang.String,java.lang.Double> |
getAttributeWeights()
Returns all configured attribute weights.
|
ARXCostBenefitConfiguration |
getCostBenefitConfiguration()
Returns the cost/benefit configuration
|
double |
getDPSearchBudget()
Returns the privacy budget to use for the data-dependent
differential privacy search algorithm.
|
int |
getHeuristicSearchStepLimit(ARXConfiguration.SearchStepSemantics requestedSemantics,
int numQIs)
The heuristic search algorithm will terminate after the returned number of steps.
|
ARXConfiguration.SearchStepSemantics |
getHeuristicSearchStepSemantics()
The semantics of heuristic search steps.
|
int |
getHeuristicSearchThreshold()
When the size of the solution space exceeds the returned number of transformations,
ARX will use a heuristic search strategy.
|
int |
getHeuristicSearchTimeLimit()
The heuristic search algorithm will terminate after the returned number of milliseconds.
|
double |
getMaxOutliers()
Deprecated.
|
ARXConfiguration.Monotonicity |
getMonotonicityOfPrivacy()
Returns whether the privacy model is monotonic
|
ARXConfiguration.Monotonicity |
getMonotonicityOfUtility()
Returns whether the utility measure is monotonic
|
<T extends PrivacyCriterion> |
getPrivacyModel(java.lang.Class<T> clazz)
Returns an instance of the class, if any.
|
java.util.Set<PrivacyCriterion> |
getPrivacyModels()
Returns all privacy models.
|
<T extends PrivacyCriterion> |
getPrivacyModels(java.lang.Class<T> clazz)
Returns all privacy models which are instances of the given class.
|
Metric<?> |
getQualityModel()
Returns the quality model to be used for optimizing output data.
|
double |
getRiskThresholdJournalist()
Return journalist risk threshold, 1 if there is none
|
double |
getRiskThresholdMarketer()
Return marketer risk threshold, 1 if there is none
|
double |
getRiskThresholdProsecutor()
Return prosecutor risk threshold, 1 if there is none
|
double |
getSuppressionLimit()
Returns the suppression limit
|
boolean |
isAttributeTypeSuppressed(AttributeType type)
Returns whether values of the given attribute type will be replaced by the suppression
string in suppressed tuples.
|
boolean |
isHeuristicSearchEnabled()
Returns whether ARX will use a heuristic search strategy.
|
boolean |
isPracticalMonotonicity()
Is practical monotonicity assumed.
|
boolean |
isPrivacyModelSpecified(java.lang.Class<? extends PrivacyCriterion> clazz)
Returns whether the configuration contains a privacy model which is an instance of the given class.
|
boolean |
isSuppressionAlwaysEnabled()
Returns whether suppression is applied to the output of anonymous as well as non-anonymous transformations.
|
boolean |
isUseHeuristicSearchForSampleBasedCriteria()
Is optimality guaranteed for sample-based criteria?
|
<T extends PrivacyCriterion> |
removeCriterion(PrivacyCriterion arg)
Removes the given criterion.
|
java.util.List<ElementData> |
render()
Renders this object
|
void |
setAttributeTypeSuppressed(AttributeType type,
boolean enabled)
Defines values of which attribute type are to be replaced by the suppression string in suppressed tuples.
|
void |
setAttributeWeight(java.lang.String attribute,
double weight)
Sets the weight for the given attribute.
|
void |
setAttributeWeight(java.lang.String attribute,
java.lang.Double weight)
Sets the weight for the given attribute.
|
ARXConfiguration |
setCostBenefitConfiguration(ARXCostBenefitConfiguration config)
Sets the cost/benefit configuration
|
void |
setDPSearchBudget(double budget)
Sets the privacy budget to use for the data-dependent
differential privacy search algorithm.
|
void |
setHeuristicSearchEnabled(boolean heuristicSearchEnabled)
Sets whether ARX will use a heuristic search strategy.
|
void |
setHeuristicSearchStepLimit(int numberOfTransformations)
The heuristic search algorithm will terminate after the given number of transformations
have been checked.
|
void |
setHeuristicSearchStepSemantics(ARXConfiguration.SearchStepSemantics searchStepSemantics)
Sets the semantics of heuristic search steps.
|
void |
setHeuristicSearchThreshold(int numberOfTransformations)
When the size of the solution space exceeds the given number of transformations,
ARX will use a heuristic search strategy.
|
void |
setHeuristicSearchTimeLimit(int timeInMillis)
The heuristic search algorithm will terminate after the given number of milliseconds.
|
void |
setMaxOutliers(double max)
Deprecated.
|
void |
setPracticalMonotonicity(boolean assumeMonotonicity)
Set, if practical monotonicity assumed.
|
void |
setQualityModel(Metric<?> model)
Sets the quality model to be used for optimizing output data.
|
void |
setSuppressionAlwaysEnabled(boolean enabled)
Sets whether suppression is applied to the output of anonymous as well as non-anonymous transformations.
|
void |
setSuppressionLimit(double limit)
Sets the suppression limit.
|
void |
setUseHeuristicSearchForSampleBasedCriteria(boolean value)
Do we guarantee optimality for sample-based criteria?
|
public static final int REQUIREMENT_COUNTER
public static final int REQUIREMENT_DISTRIBUTION
public static final int REQUIREMENT_SECONDARY_COUNTER
public static ARXConfiguration create()
public static ARXConfiguration create(double suppressionLimit)
suppressionLimit
- public static ARXConfiguration create(double suppressionLimit, Metric<?> metric)
suppressionLimit
- metric
- public static ARXConfiguration create(Metric<?> metric)
metric
- public ARXConfiguration addPrivacyModel(PrivacyCriterion c)
c
- public ARXConfiguration clone()
clone
in class java.lang.Object
public double getAttributeWeight(java.lang.String attribute)
attribute
- public java.util.Map<java.lang.String,java.lang.Double> getAttributeWeights()
public ARXCostBenefitConfiguration getCostBenefitConfiguration()
public double getDPSearchBudget()
public int getHeuristicSearchStepLimit(ARXConfiguration.SearchStepSemantics requestedSemantics, int numQIs)
Integer.MAX_VALUE
, i.e. no limit.requestedSemantics
- the semantics of the number of search steps to be returnednumQIs
- the number of QIspublic ARXConfiguration.SearchStepSemantics getHeuristicSearchStepSemantics()
SearchStepSemantics.CHECKS
.public int getHeuristicSearchThreshold()
public int getHeuristicSearchTimeLimit()
@Deprecated public double getMaxOutliers()
getSuppressionLimit()
instead.public ARXConfiguration.Monotonicity getMonotonicityOfPrivacy()
public ARXConfiguration.Monotonicity getMonotonicityOfUtility()
public <T extends PrivacyCriterion> T getPrivacyModel(java.lang.Class<T> clazz)
T
- clazz
- public java.util.Set<PrivacyCriterion> getPrivacyModels()
public <T extends PrivacyCriterion> java.util.Set<T> getPrivacyModels(java.lang.Class<T> clazz)
T
- clazz
- public Metric<?> getQualityModel()
public double getRiskThresholdJournalist()
public double getRiskThresholdMarketer()
public double getRiskThresholdProsecutor()
public double getSuppressionLimit()
public boolean isAttributeTypeSuppressed(AttributeType type)
type
- public boolean isHeuristicSearchEnabled()
public boolean isPracticalMonotonicity()
public boolean isPrivacyModelSpecified(java.lang.Class<? extends PrivacyCriterion> clazz)
clazz
- public boolean isSuppressionAlwaysEnabled()
true
, suppression will be applied to the output of non-anonymous
transformations to make them anonymous (if possible). Default is true
.public boolean isUseHeuristicSearchForSampleBasedCriteria()
public <T extends PrivacyCriterion> boolean removeCriterion(PrivacyCriterion arg)
T
- arg
- public java.util.List<ElementData> render()
public void setAttributeTypeSuppressed(AttributeType type, boolean enabled)
type
- the attribute typeenabled
- whether suppression should be performed or notpublic void setAttributeWeight(java.lang.String attribute, double weight)
attribute
- weight
- public void setAttributeWeight(java.lang.String attribute, java.lang.Double weight)
attribute
- weight
- public ARXConfiguration setCostBenefitConfiguration(ARXCostBenefitConfiguration config)
config
- public void setDPSearchBudget(double budget)
budget
- public void setHeuristicSearchEnabled(boolean heuristicSearchEnabled)
heuristicSearchEnabled
- public void setHeuristicSearchStepLimit(int numberOfTransformations)
Integer.MAX_VALUE
, i.e. no limit.numberOfTransformations
- public void setHeuristicSearchStepSemantics(ARXConfiguration.SearchStepSemantics searchStepSemantics)
EXPANSIONS
is set, then the limit of the number of heuristic checks
will be calculated by multiplying the heuristic search step limit with the number of QIs.searchStepSemantics
- public void setHeuristicSearchThreshold(int numberOfTransformations)
numberOfTransformations
- public void setHeuristicSearchTimeLimit(int timeInMillis)
timeInMillis
- @Deprecated public void setMaxOutliers(double max)
setSuppressionLimit()
instead.max
- public void setPracticalMonotonicity(boolean assumeMonotonicity)
assumeMonotonicity
- public void setQualityModel(Metric<?> model)
model
- public void setSuppressionAlwaysEnabled(boolean enabled)
true
, suppression will be applied to the output of non-anonymous
transformations to make them anonymous (if possible). Default is true
.enabled
- public void setSuppressionLimit(double limit)
limit
- public void setUseHeuristicSearchForSampleBasedCriteria(boolean value)