赞
踩
Descriptor 也叫signature。
从individual attributes里提取并合并信息去组成单个bitstream,捕获tuple的内容。
signature存储在signature file中。每个tuple都有自己的signature。
但signature不会决定record的位置。signature file比data file 更小。
一个signature从一个tuple中“总结”数据。
(codeword是)tuple的每个attribute用m bit长的bitstream,其中k bits设为1。
tuple descriptor(signature)是指把codewords结合起来,比如通过overlaying方式结合(bitwise-OR)。目的是大约一半的bits被置为1。
//m is length of codeword,k is the number of bits we set to 1 bits codeword(char *attr_value, int m, int k) { int nbits=0; //count of set bits bits cword =0; srandom(hash(attr_value)); while (nbits < k){ //generate random bit positions 0 to m-1 int i = random() % m; // if cword does not have this set bit if (((1 << i) & cword) == 0) { // i<<i--> ith position in 32 bits is 1, and it does bitwise "OR" into codeword. cword |= (1 << i); nbits++; } } return cword; // m-bits with k 1-bits and m-k 0-bits }
以上程序将随机的bit position置为1,直到其中k个bits被置为1.
对于每个attribute,我们根据他的值生成codeword。并把这些codewords “or”在一起,获得signature。
bits desc=0
for (i=1li<=n;i++){
bits cw = codeword(A[i])
desc = desc | cw
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。