# Package org.deidentifier.arx

This package provides the public API for the ARX anonymization framework.

See: Description

Interface Summary
ARXListener: This class implements a listener for the ARX framework.
DataHandleInternal.InterruptHandler: Interface
DataType.DataTypeWithFormat: An interface for data types with format.
DataType.DataTypeWithRatioScale<T>: An interface for data types with a ratio scale.

Class Summary
ARXAnonymizer: This class offers several methods to define parameters and execute the ARX algorithm.
ARXClassificationConfiguration<T extends ARXClassificationConfiguration<?>>: An base class for configuration classes for classification experiments
ARXConfiguration: A generic configuration for the ARX anonymizer.
ARXConfiguration.ARXConfigurationInternal: Class for internal use that provides access to more parameters and functionality.
ARXCostBenefitConfiguration: Basic configuration of monetary amounts, such as the publisher's benefit per record or the per-record fine fine for a successful re-identification attack.
ARXFeatureScaling: Configuration for feature scaling
ARXLattice: This class implements a representation of the generalization lattice that is exposed to users of the API.
ARXLattice.LatticeDeserializationContext: Context for deserialization.
ARXPopulationModel: This class models population properties for risk estimation
ARXProcessStatistics: Statistics about the anonymization process for output data
ARXProcessStatistics.Step: One individual anonymization step
ARXResult: Encapsulates the results of an execution of the ARX algorithm.
ARXSolverConfiguration: Runtime configuration for the solver
AttributeType: Represents an attribute type.
AttributeType.Hierarchy: This class implements a generalization hierarchy.
AttributeType.Hierarchy.DefaultHierarchy: The default implementation of a generalization hierarchy.
AttributeType.MicroAggregationFunction: This class is used to define aggregate functions for microaggregation.
AttributeType.MicroAggregationFunctionDescription: This class describes a microaggregation function
Data: Represents input data for the ARX framework.
Data.DefaultData: The default implementation of a data object.
DataDefinition: Encapsulates a definition of the types of attributes contained in a dataset.
DataGeneralizationScheme: This class encapsulates a generalization scheme
DataHandle: This class provides access to dictionary encoded data.
DataHandleInput: An implementation of the DataHandle interface for input data.
DataHandleInternal: Wrapper class that provides information to StatisticsBuilder.
DataHandleOutput: An implementation of the class DataHandle for output data.
DataHandleSubset: This implementation of a data handle projects a given data handle onto a given research subset.
DataSelector: A selector for tuples.
DataSource: This class provides configuration options for importing data from CSV-files, from Excel-files or via a JDBC connection.
DataSubset: This class represents a the dataset that is to be de-identified as a subset of the given population table.
DataType<T>: This class provides access to the data types supported by the ARX framework.
DataType.ARXDate: Base class for date/time types.
DataType.ARXDecimal: Base class for numeric types.
DataType.ARXInteger: Base class for numeric types.
DataType.ARXOrderedString: Base class for ordered string types.
DataType.ARXString: Base class for string types.
DataType.DataTypeDescription<T>: An entry in the list of available data types.
RowSet: A set of rows.

Enum Summary
ARXConfiguration.Monotonicity: Monotonicity.
ARXConfiguration.SearchStepSemantics: The semantics of heuristic search steps.
ARXLattice.Anonymity: Reflects different anonymity properties.
ARXPopulationModel.Region: Regions
DataGeneralizationScheme.GeneralizationDegree: A specific generalization degree
DataScale: This class represents different scales of measure.

## Package org.deidentifier.arx Description

This package provides the public API for the ARX anonymization framework.

- The class `AttributeType` encapsulates the four different kinds of attributes recognized by the framework.
- The class `DataType` encapsulates the three different kinds of data types recognized by the framework.
- The class `Data` represents an input dataset for the algorithm.
- The class `DataDefinitio`, an instance of which can be obtain for any input data by calling `Data.getDefinition()`, allows assign attribute types, data types and further parameters to a dataset.
- The class `DataHandle`, an instance of which can be obtain for any input data by calling `Data.getHandle()` and for any output data by calling `ARXResult.getHandle()`, implements convenience methods for accessing a dictionary encoded representation of a dataset. It also allows manipulating the data (e.g., sorting it) and makes sure that input and output data are always in sync.
- The class `ARXAnonymizer` represents the actual algorithm and allows to derive anonymous representations of the input dataset, e.g., by calling `ARXAnonymizer.kAnonymize()` or `ARXAnonymizer.lDiversify()`.
- The class `ARXResult` represents the results of executing the algorithm. It provides access to the globally optimal solution and the underlying generalization lattice `ARXLattice`.
- The class `ARXAdapter` can be utilized to attach a listener to the ARX framework, tracking its progress while anonymizing a dataset.

Author:
  Fabian Prasser, Florian Kohlmayer