| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectanonymizer.Anonymizer
incognito.Incognito_T
public class Incognito_T
Implementation of the t-closeness privacy principle based on the Incognito anonymization algorithm. For details on t-closeness, please refer to the following paper:
 @inproceedings{tcloseness,
 author    = {Ninghui Li and Tiancheng Li and Suresh Venkatasubramanian},
 title     = {t-Closeness: Privacy Beyond k-Anonymity and l-Diversity},
 booktitle = {ICDE},
 year      = {2007},
 pages     = {106-115}
 }
 
 
 Our implementation handles only one sensitive attribute, which could be
 numerical or categorical, but not hierarchical. Data type of the sensitive
 attribute is inferred from the configuration file (i.e., if a categorical to numeric
 domain mapping has been specified, then the sensitive attribute is considered
 categorical).
 
 If needed, hiearchical attributes can be handled as follows: specify a generalization
 hierarchy for the sensitive attribute (similar to quasi-identifier attributes) and then
 update the t-closeness check in AnonRecordTable to handle hierarchical attributes.
 
 For numerical attribute, our implementation is quite straightforward. We first query
 all possible values in the domain together with corresponding counts. Then, for each 
 equivalence in the table, we check for t-closeness by comparing the two distributions.
 Specifically, this is achieved by incrementally traversing two linked lists of (value,count)
 pairs. We assume ordered distance among two successive values in the domain.
| Field Summary | |
|---|---|
| private  LatticeManager | manLattice manager that controls how the generalization lattice is traversed | 
| private  int | sensDomainSizeNumber of values in the domain of the sensitive attribute | 
| Fields inherited from class anonymizer.Anonymizer | 
|---|
| anonTable, conf, eqTable, sqlwrapper, suppressionThreshold | 
| Constructor Summary | |
|---|---|
| Incognito_T(Configuration conf)Class constructor | |
| Method Summary | |
|---|---|
|  void | anonymize()Anonymizing the input. | 
|  void | changeTClosenessRequirement(double newTvalue)Overwrites the privacy parameter t | 
| protected  AnonRecordTable | createAnonRecordsTable(java.lang.String tableName)Create anonRecords table | 
| protected  EquivalenceTable | createEquivalenceTable(java.lang.String tableName)Create equivalence table | 
| private  void | generalize(LatticeEntry root)Generalizes the original table according to a lattice entry and sets the result for the generated table as anonymous or not. | 
| protected  void | insertTupleToAnonTable(java.lang.String[] vals,
                       long eid)Insert a tuple to the anonRecords table | 
| protected  long | insertTupleToEquivalenceTable(java.lang.String[] vals)Insert a tuple to the equivalence table | 
|  boolean | satisfiesPrivacyDef(AnonRecordTable table)Checks whether the parameter table satisfies the privacy definition (in this case, t-closeness) | 
| private  void | selectAnonymization(java.util.LinkedList<LatticeEntry> anons)Simply select the anonymization that yields the maximum number of distinct equivalences | 
| Methods inherited from class anonymizer.Anonymizer | 
|---|
| anonymizeDataset, anonymizeDataset, isReadyForSuppression, main, outputResults_Anatomy, outputResults_GenVals, outputResults_GenValsDist, outputResults, readData, suppressEquivalences | 
| Methods inherited from class java.lang.Object | 
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| Field Detail | 
|---|
private LatticeManager man
private int sensDomainSize
| Constructor Detail | 
|---|
public Incognito_T(Configuration conf)
            throws java.lang.Exception
conf - Configuration instance
java.lang.Exception| Method Detail | 
|---|
public void changeTClosenessRequirement(double newTvalue)
newTvalue - New value of tprotected EquivalenceTable createEquivalenceTable(java.lang.String tableName)
createEquivalenceTable in class AnonymizertableName - Name of the table
protected AnonRecordTable createAnonRecordsTable(java.lang.String tableName)
createAnonRecordsTable in class AnonymizertableName - Name of the table
protected long insertTupleToEquivalenceTable(java.lang.String[] vals)
                                      throws java.lang.Exception
insertTupleToEquivalenceTable in class Anonymizervals - All values of the tuple to be inserted (as read from the source, i.e., before any generalization)
java.lang.Exception
protected void insertTupleToAnonTable(java.lang.String[] vals,
                                      long eid)
                               throws java.lang.Exception
insertTupleToAnonTable in class Anonymizervals - All values of the tuple to be inserted (as read from the source, i.e., before any generalization)eid - Equivalence id of the equivalence to which the tuple belongs
java.lang.Exception
public void anonymize()
               throws java.lang.Exception
anonymize in class Anonymizerjava.lang.Exception
public boolean satisfiesPrivacyDef(AnonRecordTable table)
                            throws java.lang.Exception
table - Table to be checked for anonymity
java.lang.Exception
private void generalize(LatticeEntry root)
                 throws java.lang.Exception
root - An entry of the generalization lattice that specifies how many 
 times each qi-attribute will be generalized
java.lang.Exception
private void selectAnonymization(java.util.LinkedList<LatticeEntry> anons)
                          throws java.lang.Exception
anons - List of lattice entries that correspond to anonymized tables
java.lang.Exception| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||