用于数据的分类过滤的装置和方法

文档序号:6456907阅读:145来源:国知局
专利名称:用于数据的分类过滤的装置和方法
技术领域
本发明一般涉及过滤数据。更加具体地说,本发明涉及确定能有效过滤数据的过滤类别(category)。

背景技术
具有大量关联类别的大型数据集(dataset)难以快速导航。在某些情况下,对给定类别的过滤将只能从数据集中去除一两个记录。现有技术通常提供要对其进行过滤的类别和属性的列表,而不指示或确定过滤器将如何影响得到的数据集。在许多情况下,现有技术提供索引记录的类别的预定分层结构。
考虑到前述原因,非常期望提供一种增强的技术来确定哪些类别将有效地过滤数据。


发明内容
本发明包括一种具有可执行指令的计算机可读存储介质,该可执行指令用于从数据源中检索数据集,其中所述数据集包括第一类别集合。构建表示该数据集的数据结构。计算用于第一类别集合的第一佳度值(merit value)集合。基于准则来对第一类别集合进行排序。返回第一类别集合。
本发明还包括一种具有可执行指令的计算机可读存储介质,该可执行指令用于从数据源中检索数据集。通过对第一类别集合中的每个类别连续分组来将所述数据集重新排序。构建(built)枚举树。计算用于第一类别集合的佳度值集合。确定第二类别集合,其中所述佳度值满足准则。返回第二类别集合。



结合下面参照附图的详细描述,将更加充分地理解本发明,附图中 图1示出了依照本发明的实施例构造的计算机。
图2示出了构建所需的与本发明的实施例相关联的枚举树数据结构的处理操作。
图3示出了依照本发明的实施例的数据集向枚举树数据结构的转换。
图4示出了依照本发明的一般实施例的用于确定类别过滤选项集合的处理操作。
图5示出了依照本发明的特定实施例的用于确定类别过滤选项集合的处理操作。
图6示出了一个样本数据集与依照本发明的实施例构造的相应枚举树数据结构。
图7示出了在基于所提供的过滤器重构之后的图6的枚举树数据结构。
相似的参考标号指代贯穿附图的若干视图的相应部分。

具体实施例方式 当公开本发明的实施例时使用下列术语 属性是数据集中的任意非空值。
属性组合是与数据集中的特定记录相关联的属性的集合或子集。
属性计数是区别属性(distinct attribute)在单个类别中出现的次数。
属性计数数据结构是存储针对数据集中所有属性的属性计数的数据结构(例如,临时参考表、列表、哈希(hash)表或树)。该数据结构是这里所描述的类别过滤过程的可选组件。
类别包括一组相关属性。类别由数据源中属性的相似位置来定义。例如,类别是数据库表格或电子表格(spreadsheet)中的一列、XML文件中共享同一个标签(tag)的字段的集合或者分层数据源内具有共享的相对位置的字段的集合。
共同前导属性(common leading attribute)是在类别次序中排在第一个不同属性(differentiating attribute)之前的两个记录之间共享的属性的集合。
熵是来自信息理论的一个量度。它描述了类别中的属性如何分布。这个众所周知的量度与属性分布的随机性有关。
枚举树是一种数据结构,其具有由边连接的节点。枚举树可以用从数据集得到的数据和元数据表示数据集。
过滤器包含一个或多个属于同一个类别的属性,这些属性已经被指定为该类别的必要值(required value)。
佳度值(merit value)或佳度(merit)是类别在过滤数据中有效程度如何的量度。
节点属性计数是存储在枚举树节点中的计数,其跟踪一个属性在数据集中的在前的父节点属性序列的结尾出现了多少次。给定属性的所有节点属性计数合计为相关联的属性计数。
图1示出了依照本发明的实施例构造的计算机100。计算机100包括标准组件,包括通过总线106连接的中央处理单元102和输入/输出设备104。输入/输出设备104可以包括键盘、鼠标、触摸屏、监视器、打印机等等。网络接口电路108也连接到总线106。网络接口电路108提供到网络(未示出)的连接,从而使计算机100能够在联网(networked)环境中工作。
存储器110也连接到总线106。存储器110存储用于实施本发明的操作的可执行指令。在一个实施例中,可执行指令包括下列模块中的一个或多个操作系统模块112、数据存取模块114、数据结构模块116、类别计算模块118和可选图形用户界面(GUI)模块120。
操作系统模块112包括用于处理诸如文件服务之类的各种系统服务或者用于执行硬件相关的任务的可执行指令。
数据存取模块114包括用于修改数据源查询(例如,结构化查询语言(SQL)查询、多维表达式(MDX)查询、数据挖掘扩展(DMX)查询)以包括指定过滤器的可执行指令。数据存取模块114还包括用于将所生成的数据源查询施加到底层(underlying)数据源的可执行指令,该数据存取模块可以构成计算机100的一部分或者可以通过网络接口电路108作为单独的联网机器被访问。
数据结构模块116包括用于构建枚举树数据结构的可执行指令。该模块还包括用于依照本发明的实施例解析枚举树的指令。
类别计算模块118包括用于确定将有效过滤数据集的类别并且用于组织类别信息的可执行指令。在一个实施例中,类别信息被传递到GUI模块120。在另一个实施例中,类别信息被传递到另一个过程。
GUI模块120是一个可选组件,并且可以依赖于用于产生用户界面的图形组件的标准技术,图像组件例如窗口、图标、按钮、菜单等等。GUI模块120将过滤类别的逐个集合(successive set)以及过滤后的数据集结果等等显示给用户。
存储在存储器110中的可执行模块是示范性的。应当理解,可以组合这些模块的功能。另外,不需要在单台机器上执行这些模块的功能。取而代之,如果需要的话,可以将这些功能分布在网络上。实际上,本发明通常实施在客户机-服务器环境中,其中各种组件实施在客户机侧和/或服务器侧。重要的是本发明的功能,而非这些功能所执行的地方或者执行它们的特定方式。
图2示出了可以由计算机100在执行来自数据存取模块114或数据结构模块116的指令的同时实施的用于构建枚举树数据结构的处理操作200。在图2的第一个处理操作中,数据存取模块从数据源检索数据集(202)并且可选地将该数据集存储在临时表格中。
在一个实施例中,数据结构模块116接着可选地按照区别属性的数量的升序将类别重新排序(206)。在实施例中,如果多个类别具有相同数量的区别属性,那么它们将以它们的原始次序被分组。需要注意,不需要将这些类别物理地重新排序。在实施例中,在与数据存取模块114的交互中,确定是将类别物理地重新排序更有效还是对它们进行编号以使它们看上去像是已被重新排序更有效。这是一个可选操作;在该过程中没有操作依赖于该操作206。
接下来的处理操作是通过按降序对属性分组来将记录重新排序(208)。数据结构模块116通过对前导(lead)类别分组以及按该次序来处理而开始。
一旦该重构完成,数据结构模块116就构建枚举树(210)。数据结构是基于树的,由单个树或多个树组成;对于前导类别中的每个区别属性存在一个根节点。
数据结构模块116通过选择第一个记录的前导(leading)类别属性而开始并且将其设置为根节点属性。在一个实施例中,枚举树的节点包含属性、父节点的ID和节点属性计数。该记录中的剩余项被作为一系列节点添加到树中——每个属性一个节点——创建(creat)一个分支。数据结构模块116跟踪被添加到枚举树的最后一个记录。在将后续记录添加到枚举树时使用该记录信息。
为了向枚举树添加更多的记录,数据结构模块116在数据集中选择下一个记录。将该记录与先前添加的记录进行比较,以检查共同的前导属性。与前缀树(prefix tree)非常相似,所有共同前导属性共享同一个节点,并且节点属性计数跟踪有多少个记录正在共享一个节点。该记录的剩余属性被作为子分支添加,该子分支从最后一个共同前导属性的节点处开始。如果一个记录和先前添加的记录没有共同前导属性,那么就创建新的根节点。需要注意,在枚举树中不存储空值。在前导类别中具有空值的记录从具有非空值的第一个类别中选择它们的根节点属性。
图3示出了在本发明的一个实施例中基于表格300中的示例数据集构建枚举树的过程。首先,可选地,基于区别属性的数量将表格300的列重新排序(301)。接下来,通过将属性分组来对结果表格302中的记录重新排序(303)。然后,使用结果表格304来构建枚举树315。
数据结构模块116从临时表格304的最左列中选择第一个属性306并且将其设置为根节点309。创建枚举树的第一个分支(307),产生树308。需要注意,在枚举树中不存储空值。
由此开始,对具有根节点309,即在最左列中为属性c1的更多记录中的每一个记录创建分支(310)。将记录305与先前添加的记录进行比较,以确定共同前导属性。共享共同前导属性的节点,在本例中为属性c1和节点311。图示为上标(例如,313)的节点属性计数被增加1。而且,如图所示,记录305的剩余项作为枚举树312的子分支被存储。
通过对最左列的剩余区别属性重复该过程来创建数据结构315的剩余部分(314)。这就完成了枚举树316。如前所述,所有共同前导属性使用同一点节点,由此产生共享节点318。
图4示出了在一般实施例中在计算机100执行来自数据存取模块114、数据结构模块116或类别计算模块118的指令的同时可以实施的确定类别过滤选项的集合的处理操作400。如图所示,该过程从图2的枚举树数据结构构建过程200继续。接下来的操作是使用预定的公式和过程来计算每个类别的佳度(402)。然后将类别排序(404)并且将每个类别的属性排序(405)。
在一个实施例中,按照佳度的升序(ascending merit)将类别排序,而在另一个实施例中按照佳度的降序将类别排序。在一个实施例中,按佳度值和从数据或关联元数据导出的另一个值将类别排序。在一个实施例中,按频率的升序将类别属性排序,而在另一个实施例中,按频率的降序将类别属性排序。其它实施例包括、但不局限于根据经由GUI模块120提交的用户规范、按字母顺序、按数字顺序将类别属性排序或者就让这些属性为无序的。
然后本申请使用指定的过滤器查询数据源(406)并且检索可应用的数据集和类别(408)。然后可选地,本申请可以存储这些数据集和类别或者将它们传递到其它过程或GUI模块120(409)。本申请可以传递原始类别集合的任何子集。该子集可以是基于由数据结构模块116设置的准则(例如,最高佳度、最低佳度、离目标值最近)、由GUI模块120或来自用户的请求指定的类似准则。
计算机100等待用户或其它代理选择过滤器(410)。如果选择了过滤器(410-是),那么类别计算模块118就接受过滤器(412)并且重建枚举树(414)。在重建枚举树中,数据结构模块116从当前枚举树中复制关联类别中具有所选择的过滤器的属性的分支。然后过程从操作402到409再次循环,这次在操作406期间使用指定的过滤器查询经过滤的数据集。如果过滤器由多于一个的属性组成,那么在查询中使用“或(or)”语句。如果未选择过滤器(410-否),那么过程停止直到选择了一个过滤器为止。
图5示出了在本发明的特定实施例中计算机100在执行来自数据存取模块114、数据结构模块116或类别计算模块118的指令的同时可以实施的确定类别过滤选项的集合的处理操作500。图5示出了与本发明的替换实施例相关联的处理操作。这些操作中的许多操作已经结合图4进行了讨论。因此,将仅讨论新的操作。
计算佳度的第一子操作502用于计算属性计数,该子操作是可选的。在实施例中,为了计算属性计数(502),数据结构模块116解析枚举树,同时类别计算模块118将每个区别节点属性的节点属性计数进行合计。计算属性计数首先提供用于检索摘要数据(summary data)的数据结构(例如,临时参考表格、列表、哈希表或树),以供类别计算模块118将来进行计算。在另一个实施例中,不执行该子操作,并且在每次需要特定属性计数时,类别计算模块118请求数据结构模块116解析枚举树以得到特定属性计数。
接下来的子操作是使用熵公式计算类别的熵(E)(504),熵公式诸如 其中,K是可选常量; n是类别中区别属性的数量; log是对数函数,根据不同的实施例该对数函数的底有所不同,并且可以包括自然对数、常用对数、二进制对数或不定对数; cati是类别中第i个区别属性;以及 p(cati)是属性是cati的概率,其等于cati出现的次数除以数据集中的记录的数量。用于计算p(cati)的值从先前的子操作502中构造的属性计数数据结构中检索,或者当需要时从枚举树中得到。
接下来的子操作是计算类别覆盖率(coverage)(506)。类别覆盖率由属性在类别中所占的百分比确定。在一个实施例中,类别计算模块118从属性计数数据结构中检索属性计数以及从数据源中检索数据集中记录的数量。在另一个实施例中,从枚举树中得到属性计数。然后,将类别熵乘以相应的类别覆盖率值(508)。
接下来的子操作是将从前面的子操作510中得到的乘积归一化。可以通过将熵覆盖率乘积除以与n相关的归一化值z来执行归一化,n是类别中区别属性的数量。在一个实施例中,z对n单调变化。在其中z对n单调变化的一个实施例中,z对n超线性(super linear)变化。在其中z对n超线性变化的一个实施例中,z等于nlog(n)。对数的底的例子包括2、e(也即,2.718281828,其中loge用ln表示)和10。在其中z对n单调变化的一个实施例中,z对n线性变化。在其中z对n线性变化的一个实施例中,z等于n。n的值通过属性计数数据结构确定或者通过解析枚举树确定。
归一化的结果是佳度值(M)。需要注意,佳度值与熵和覆盖率成正比,与类别中区别属性的数量成反比。
图6示出了用于图5的处理过程的下列示例中的一个样本数据集600。按照图2的处理操作200构造相应的枚举树602。
在数据结构模块116构建了枚举树之后,类别计算模块118接管,周期性地向数据结构模块116发送解析枚举树以得到信息的请求。第一个操作502是计算属性计数。该操作502是可选的。数据集600的属性计数为
然后,按照操作504计算熵值 E(B)=-(1)[(4/7)ln(4/7)+(3/7)ln(3/7)]=0.683 E(A)=-(1)[(1/7)ln(1/7)]=0.278 E(D)=-(1)[(2/7)ln(2/7)+(2/7)ln(2/7)+(2/7)ln(2/7)+(1/7)ln(1/7)] =1.352 E(E)=-(1)[(2/7)ln(2/7)+(2/7)ln(2/7)+(1/7)ln(1/7)+(1/7)ln(1/7)] =1.272 E(C)=-(1)[(1/7)ln(1/7)]=0.278 接下来的操作是计算覆盖率值(506) c(B)=7/7=1 c(A)=1/7=0.143 c(D)=7/7=1 c(E)=6/7=0.857 c(C)=1/7=0.143 然后,将熵和覆盖率值相乘(508) E(B)*c(B)=0.683*1=0.683 E(A)*c(A)=0.278*0.143=0.0398 E(D)*c(D)=1.352*1=1.352 E(E)*c(E)=1.272*0.857=1.090 E(C)*c(C)=0.278*0.143=0.0398 接下来的操作是将前面操作的乘积归一化(510) M(B)=[E(B)*c(B)]/nln(n)=0.683/(2*ln2)=0.493 M(A)=[E(A)*c(A)]/nln(n)=0.0398/(1*ln1)=NaN M(D)=[E(D)*c(D)]/nln(n)=1.352/(4*ln4)=0.244 M(E)=[E(E)*c(E)]/nln(n)=1.090/(4*ln4)=0.196 M(C)=[E(C)*c(C)]/nln(n)=0.0398/(1*ln1)=NaN 这里,NaN表示“非数字”并且是由于除以零而得到的结果。
然后,对类别进行排序(404),在本例中以佳度的降序排序 M(B)=0.493 M(D)=0.244 M(E)=0.196 M(A)=NaN M(C)=NaN NaN的佳度值排在所有其它值之后。使用nln(n)作为归一化值z的一个方面是,仅具有一个区别属性的类别的佳度值为NaN。
接下来的操作是可选的,该操作是将每个类别的属性进行排序(图5的405),在本例中按频率的降序排序
然后,数据存取模块114查询数据集600的数据源(图5的406),并且检索可应用的数据集和类别(图5的408)。然后,可选地,本申请存储数据集和排序后的类别,或者将它们发送到其它过程或GUI模块120(图5的409)。在实施例中,GUI模块120向用户提供佳度值大于零的类别。例如,在本例中GUI模块120显示类别B、D和E。然后,过程500在继续之前等待其它过滤器被指定。
当选择了过滤器时,数据结构模块116接受该过滤器并且通过将相关分支复制到新的枚举树中来重建枚举树。例如,如果所选择的过滤器为B=b2,那么就创建图7的枚举树700。
然后,类别计算模块118执行图5的处理操作集合402,产生下列佳度值 M(A)=NaN M(D)=0.459 M(E)=0.352 M(C)=NaN 然后,将类别排序(图5的404),在本例中以佳度的降序排序 M(D)=0.459 M(E)=0.352 M(A)=NaN M(C)=NaN 并且可选地,将类别属性排序(图5的405),在本例中以频率的降序排序
然后,数据存取模块116查询关于B=b2过滤的新数据集的数据源(图5的406),并且检索可应用的数据集和类别(图5的408)。然后,可选地,本申请存储新的经排序的类别集合和经过滤的数据集,或者将它们发送到其它过程或者发送到GUI模块120(图5的409)。过程500在继续之前等待其它过滤器被指定。
可以依照任意数量的技术由GUI模块120显示类别和数据集,这些技术包括下列同时提交且共同拥有的专利申请中所描述的那些技术,该专利申请于2006年10月31日提交,申请号为“11/555,234”,名称为“Apparatus andMethod for Filtering Data Using Nested Panels”,通过引用的方式将该申请的全部内容并入此处。
本发明的实施例包括存储可执行指令的计算机可读存储介质。所述计算机可读存储介质包括从数据源中检索数据集的指令。所述数据集包括记录集合和类别集合。所述指令包括通过对类别集合中每个类别进行连续分组来将记录集合重新排序的指令。所述指令包括创建枚举树的指令。在实施例中,计算机可读介质的类别包括属性集合。在实施例中,计算机可读介质另外还包括用于计算类别集合中每个类别中区别属性的计数并且按照区别属性的计数的降序来将类别重新排序的可执行指令。在实施例中,计算机可读介质另外还包括用于接受过滤器、从枚举树复制可应用分支的集合以及使用可应用分支的集合来创建新的枚举树的可执行指令,其中可应用分支的集合中的可应用分支符合过滤器。
本发明的实施例涉及具有计算机可读介质的计算机存储器产品,该计算机可读介质上有用于执行各种以计算机实现的操作的计算机代码。介质和计算机代码可以是为了本发明的目的而专门设计和构造的,或者它们可以是对于计算机软件领域的技术人员来说公知的并且可得到的。计算机可读介质的例子包括、但不局限于诸如硬盘、软盘和磁带这样的磁介质;诸如CD-ROM、DVD和全息设备这样的光介质;磁光介质;以及被专门配置为存储和执行程序代码的硬件设备,诸如专用集成电路(“ASIC”)、可编程逻辑器件(“PLD”)以及ROM和RAM器件。计算机代码的例子包括诸如由编译器产生的机器码以及包含使用解释器由计算机执行的高级代码的文件。例如,本发明的实施例可以使用Java、C++或其它面向对象编程语言和开发工具来实现。本发明的其它实施例可以由硬连线电路取代机器可执行的软件指令来实现,或者通过硬连线电路与机器可执行的软件指令相结合来实现。
为了说明的目的,前述描述使用了特定术语来提供对本发明的全面理解。但是,对本领域的技术人员来说很清楚的是,特定细节不是实践本发明所必须的。因此,本发明的特定实施例的前述描述是为了说明和描述的目的而给出。它们不是意在穷举性的或者将本发明限制为所公开的精确形式;显然,鉴于上述教导可以进行许多修改和变化。选择并描述这些实施例,以便更好地解释本发明的原理及其实际应用,从而它们使本领域的其它技术人员能够通过适用于所期望的特定用途的各种修改来更好地利用本发明和各种实施例。意在由后附的权利要求及其等同物来限定本发明的范围。
权利要求
1.一种计算机可读存储介质,包括用于执行以下操作的可执行指令
从数据源中检索数据集,其中所述数据集包括第一类别集合;
构建表示该数据集的数据结构;
计算第一类别集合的第一多个佳度值;
基于准则对第一类别集合进行排序;
返回第一类别集合。
2.如权利要求1所述的计算机可读存储介质,其中,类别包括属性集合。
3.如权利要求1所述的计算机可读存储介质,其中,所述数据结构存储多个属性组合和多个计数,其中所述多个计数中的代表性计数指示相应属性在所述数据集中出现了多少次,其中所述多个属性组合中的每个属性组合是从所述数据集的记录和所述数据集的部分记录中选择的。
4.如权利要求3所述的计算机可读存储介质,其中,所述数据结构被解析,以得到关于第一类别集合的元数据。
5.如权利要求1所述的计算机可读存储介质,其中,所述准则是选自于佳度的降序、佳度的升序、佳度的降序组合从所述数据集或关联元数据得到的另一个值以及佳度的升序组合与从所述数据集或关联元数据得到的另一个值。
6.如权利要求1所述的计算机可读存储介质,其中
第一类别集合中的每个类别包括多个属性;
每个类别中的多个属性以一定次序被返回,所述次序是从频率的降序、频率的升序、数字顺序、字母顺序、无序以及用户指定的次序中选择的。
7.如权利要求3所述的计算机可读存储介质,还包括执行以下操作的可执行指令
接受过滤器;
从所述数据结构复制可应用分支的集合,其中,所述可应用分支的集合中的可应用分支符合所述过滤器;
使用所述可应用分支的集合构建新的数据结构,其中,所述新的数据结构包括第二类别集合;
从第二类别集合计算第二多个佳度值;
从所述数据源中检索经过滤的数据集;以及
返回经过滤的数据集和第二类别集合。
8.如权利要求7所述的计算机可读存储介质,其中,所述过滤器由用户或者默认设置指定。
9.如权利要求7所述的计算机可读存储介质,其中,所述第二类别集合不包括与所述过滤器相关联的类别。
10.如权利要求1所述的计算机可读存储介质,其中,所述数据集包含在单个表中。
11.如权利要求10所述的计算机可读存储介质,其中,所述单个表是由用户指定的数据源的聚集。
12.一种计算机可读存储介质,包括用于执行下列操作的可执行指令
从数据源中检索数据集;
通过对第一类别集合中的每个类别连续分组来将所述数据集重新排序;
构建枚举树;
计算第一类别集合的多个佳度值;
确定第二类别集合,其中所述佳度值满足准则;以及
返回第二类别集合。
13.如权利要求12所述的计算机可读存储介质,其中,类别包括属性集合。
14.如权利要求12所述的计算机可读存储介质,其中,枚举树节点存储变量集合,所述变量选自于属性ID、父节点ID和节点属性计数中至少一个。
15.如权利要求14所述的计算机可读存储介质,其中,所述属性ID指的是临时表格,该临时表格存储所述类别集合中的每个类别中的每个属性的ID属性对。
16.如权利要求12所述的计算机可读存储介质,其中,所述枚举树存储多个属性组合和多个计数,其中,所述多个计数中的代表性计数指示相应属性在所述数据集中出现了多少次。
17.如权利要求16所述的计算机可读存储介质,其中,所述多个属性组合中的每个属性组合都是从所述数据集的记录和所述数据集的部分记录中选择的。
18.如权利要求12所述的计算机可读存储介质,还包括执行以下操作的可执行指令
接受过滤器;
从所述枚举树复制可应用分支的集合;
使用所述可应用分支的集合构建新的枚举树;
计算新的多个佳度值;
确定新的类别集合,其中所述佳度值满足新的准则;
从所述数据源中检索经过滤的数据集;以及
返回经过滤的数据集和新的类别集合。
19.如权利要求12所述的计算机可读存储介质,其中
所述数据集包括多个记录,每个记录包括多个属性;
所述枚举树包括多个节点,所述节点包括属性和计数;
所述枚举树的节点排列在分支中;以及
用于构建枚举树的可执行指令还包括用于执行下列操作的可执行指令
通过将每个属性从第一记录映射到第一分支中的每个节点,来将第一分支添加到所述枚举树中;
将添加到所述枚举树中的属性存储到先前分支中,其中,所述先前分支的属性与来自先前记录的属性相对应;
利用执行下列操作的可执行指令添加更多分支到所述枚举树中
将先前记录的属性与当前记录的属性进行比较;
使与共同前导属性中的属性相对应的每个节点的计数递增;
将当前记录中每个剩余属性映射到子分支中的新节点,其中,所述子分支从分支节点发出,其中所述分支节点与所述共同前导属性中最后一个属性相对应。
全文摘要
本发明提供了一种包括可执行指令的计算机可读存储介质,用于从数据源中检索数据集,其中所述数据集包括第一类别集合。构建表示该数据集的数据结构。计算第一类别集合的第一佳度值集合。基于准则对第一类别集合进行排序。返回第一类别集合。
文档编号G06F17/00GK101606149SQ200780048975
公开日2009年12月16日 申请日期2007年10月29日 优先权日2006年10月31日
发明者达沃·卡布拉尼克 申请人:商业对象公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1