CN103886376B - 用于基于规则的内容过滤的系统和方法 - Google Patents

用于基于规则的内容过滤的系统和方法 Download PDF

Info

Publication number
CN103886376B
CN103886376B CN201410117632.6A CN201410117632A CN103886376B CN 103886376 B CN103886376 B CN 103886376B CN 201410117632 A CN201410117632 A CN 201410117632A CN 103886376 B CN103886376 B CN 103886376B
Authority
CN
China
Prior art keywords
operator
rule
boolean
content
filter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201410117632.6A
Other languages
English (en)
Other versions
CN103886376A (zh
Inventor
R·E·诺顿
L-R·普瓦里耶-博舍曼
R·埃鲁
J·L·C·M·拉瓦利埃
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vantrix Corp
Original Assignee
Vantrix Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Vantrix Corp filed Critical Vantrix Corp
Publication of CN103886376A publication Critical patent/CN103886376A/zh
Application granted granted Critical
Publication of CN103886376B publication Critical patent/CN103886376B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • G06N5/025Extracting rules from data

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

公开了一种用于在支持多用途通信服务的网络中的数据容器的内容过滤的系统和方法。该内容过滤系统与内容适配系统集成。若干个服务器单元根据不同的协议来处理在源处规划的5个容器。内容过滤过程取决于表征容器的每个组件以产生内容描述符的集合以及根据每个描述符的预设准则来产生每个组件的二元条件的集合。规则的集合被设计,其中每个规则将各自的布尔表达应用于条件的子集以规定各自的内容编辑动作。公开了指定和估计规则的布尔表达的方法。使用形式图定义规则的相互依赖性。

Description

用于基于规则的内容过滤的系统和方法
本申请是于2008年11月7日提交的、题为“用于基于规则的内容过滤的系统和方法”的中国专利申请200880114945.9的分案申请。
相关申请的交叉引用
本申请要求2007年11月09日提交的序列号为60/986,835的NORTON等人的标题为“A Method and System for Ruled-Based Content Filtering”的美国临时申请、2008年11月06日提交的序列号为12/266,353的NORTON等人的标题为“System and Method forRule Based Content Filtering”的美国专利申请以及2008年11月06日提交的序列号为12/266,362的NORTON等人的标题为“An Engine for Rule Based Content Filtering”的美国专利申请的权益,所有的申请通过引用的方式合并于此。
技术领域
本发明涉及多媒体消息服务,并且更具体地涉及用于内容过滤的方法和系统。
背景技术
新兴多用途电信服务使得通信设备能够交换每个具有多个不同类型的组件的数据容器。例如,组件可以包括表示文本、图像、音频信号或视频信号的数据。用于处理这样的服务的复杂终端设备正在快速演进,导致通过相对短时间分隔的多“代”终端设备。
由于多代终端设备的共存,所以出现了非兼容性问题。传送数据容器的终端设备通常不知道接收终端设备的特点和能力(或在多播通信的情况下的接收终端设备)。这要求提供用于确保正确地完整检测数据容器的内容或者正确地检测其特定组件以及通知接收方终端设备对原始容器做出的任何改变的设施,如在2008年9月25日提交的序列号为12/238,390的共同待决的美国申请,通过引用的方式将其内容合并于此。
除了兼容性问题之外,传送每个可选地具有各自的附件的多个组件进一步增加了遭受诸如病毒的恶意的插入。容器遭受侵入需要提供一种内容过滤设施。
因此,需要一种用于在提供多用途服务的网络中提供除了内容适配之外的内容过滤的设施。
发明内容
本发明的一个目的是在提供多媒体服务的网络中提供内容过滤设施。另一目的是将内容过滤设施与现有内容适配设施合并,以便实现全面、有效和经济的系统。
根据本发明的另一方面,提供了一种用于编辑容器的内容的引擎,所述引擎包括:
网络接口,用于从客户端接收所述容器并且将每个容器导向用于标识和解析所述容器的多个控制器当中的各自的控制器;
存储设备,用于:
将布尔变量的阵列存储到所述容器的子集,根据可应用于表征所述内容的第一运算数和指定所述第一运算数的目标值的第二运算数来确定每个所述布尔变量;
所述引擎进一步包括:
操作管理器,包括存储在用于执行操作、管理和维护功能的计算机可读存储介质中的计算机可读指令;
图形用户接口,包括存储在计算机可读存储介质中的计算机可读指令,耦合到用于输入编码规则的所述阵列和用于向每个控制器分配所述代码转换器的各自的子集的所述操作管理器;以及
配置存储设备,用于存储分配到每个控制器的代码转换器的标识符。
引擎进一步包括分类模块,包括存储在计算机可读存储介质中的计算机可读指令,耦合到所述网络接口,用于将容器分类成容器类型,每个容器类型对应于规划容器所根据的协议,并且将特定类型的容器从所述多个容器当中导向特定控制器。
引擎进一步包括控制器负载平衡模块,包括存储在计算机可读存储介质中的计算机可读指令,耦合到所述操作管理器,所述控制器负载平衡模块包括用于根据所述容器的时变流率将代码转换器动态地分配到控制器的部件。
引擎进一步包括代码转换器负载平衡模块,耦合到所述每个控制器,用于在分配到所述每个控制器的代码转换器当中公平地分配容器编辑请求。
引擎进一步包括刀片服务器,其托管所述每个控制器以及所述代码转换器的所述各自的子集,所述刀片服务器包括:
处理器,其具有多个核心,每个核心排他性地分配到所述代码转换器的子集的代码转换器;
多个存储设备;
输入接口;以及
输出接口。
引擎进一步包括:
代码转换器服务模块,耦合到所述多个代码转换器的每个代码转换器,用于从外部源接收新程序;
程序存储介质,用于存储可接入所述每个代码转换器的多个程序;以及
程序寄存器,包括存储在计算机可读存储介质中的计算机可读指令,用于标识每个新程序的功能以及根据各自的功能组织程序。
在上述引擎中,代码转换器服务模块进一步包括存储在计算机可读存储介质中的计算机可读指令,当执行所述计算机可读指令时,引起所述处理器的核心:
从所述多个控制器中的特定控制器接收特定容器和编辑请求;
选择和执行与所述编辑请求有关的程序;以及
将结果返回所述特定控制器。
所述程序寄存器包括计算机可读指令,当执行所述计算机可读指令时,引起所述处理器的核心:
根据各自的功能来组织程序;以及
用各自的新程序来取代现有程序。
在上述引擎中,所述程序存储介质包括:
存储在计算机可读存储介质中的驻留程序;以及
存储在计算机可读存储介质中的动态加载的外部程序。
根据本发明的另一方面,提供了一种过滤具有多个组件的数据容器的方法,包括:
选择组件;
确定表征所述组件的内容的多个二元条件;
规划布尔表达的集合,每个布尔表达包括布尔运算符和从所述二元条件的集合中选择的至少两个运算数;
执行所述布尔表达的集合中的每个布尔表达,以确定内容指示符的集合,所述指示符与所述布尔表达具有一对一的对应关系;以及
执行与所述指示符中的每个相对应的所述内容有关的编辑功能。
所述方法进一步包括基于单个二元条件执行进一步的编辑功能。
所述方法进一步包括以由于执行布尔表达而产生的指示符有条件地排除至少一个后续布尔表达的执行所根据的顺序来布置所述布尔表达。
如上所述的方法进一步包括根据以下来确定所述布尔表达:
所述内容的指定描述符;以及
预设与所述描述符相对应的准则。
在上述方法中,执行所述编辑功能的步骤包括以下中的一个:
扫描所述内容以检测恶意插入,并且移除检测到的恶意插入;以及
扫描所述内容以检测恶意插入,并且一旦检测到恶意插入,则删除所述内容。
根据本发明的又一方面,提供了一种使用计算设备来编辑内容的方法,包括:
规划所述内容的描述符的集合;
指定与所述描述符相对应的准则的集合;
执行运算符的集合;
定义布尔变量的集合,每个布尔变量是将来自所述运算符的集合当中的运算符应用到第一运算数和第二运算数的结果,其中所述第一运算数是从所述描述符的集合当中选择的描述符,并且所述第二运算数是从所述准则的集合当中选择的准则;以及
定义规则的集合,每个规则执行所述布尔变量的子集的从布尔表达的集合当中选择的布尔表达,并且根据所述执行的结果来执行从与所述内容相关的动作的集合当中选择的动作。
在上述方法中,描述符的集合包括以下中的至少一个:所述内容的大小;来自预定义的内容族当中的内容族;编码方法;以及优先级指定。
在上述方法中,所述运算符的集合包括以下中的一个或多个:一元运算符;二元运算符;算术运算符;比较运算符;逻辑运算符;集合运算符;以及用户定义的运算符。
所述方法进一步包括通过包括存储在所述计算设备的存储器中的计算机可读指令的图形用户接口来输入所述描述符的集合、所述准则的集合、所述运算符的集合以及所述布尔表达的集合。
方便地,所述方法进一步包括选择所述内容以包括所述数据容器的一部分。
根据本发明的另一方面,提供了一种用于过滤多媒体数据容器的内容的系统,包括:
网络接口,用于从网络接收所述多媒体数据容器;以及
多个服务器单元,每个服务器单元包括处理器的集合和存储设备的集合,在其上安装了:
过滤器定义模块,具有存储在计算机可读存储介质中的计算机可读指令,用于从用户获取过滤器的集合的定义,每个过滤器指定内容描述符的定义、描述符准则以及运算符;
规则构造模块,具有存储在计算机可读存储介质中的计算机可读指令,用于从所述用户获取内容过滤规则的集合,每个规则指定所述过滤器的子集和过滤动作的布尔表达;
用于表征多媒体数据容器的每个组件的内容,确定所述内容描述符,应用所述运算符并且确定所述每个过滤器的状态的模块;
用于确定每个所述规则的二元输出的模块;以及
用于执行与服从所述二元输出的预设值的所述内容相关的过滤动作的模块。
所述系统进一步包括以下模块中的至少一个,每个模块包括存储在计算机可读存储介质中的计算机可读指令:
(1)用于配置服务器单元以接受根据从已知协议的集合中选择的任何协议形成的多媒体数据容器的模块;
(2)用于在同样配置的服务器单元当中公平地分发多媒体数据容器的模块;
(3)用于使得用户能够根据代数句法来提供布尔表达的模块;
(4)用于使得用户能够以树结构的形式来提供布尔表达的模块;
(5)用于使得用户能够通过编辑和修整树的图形来输入布尔表达的模块,该树的每个节点表示运算符和各自的运算数的集合;
(6)用于验证布尔表达的正确性的模块;
(7)用于以由规则执行的特定过滤动作排除至少一个后续规则的执行所根据的顺序来布置规则的模块;
(8)用于提示用户指定在布尔表达的值上的规则条件句中的至少一个的连续规则的模块;
(9)用于以形式图表的形式来呈现内容过滤的集合的模块;以及
(10)用于优化每个规则的布尔表达的模块。
所述系统进一步包括用于执行以下操作的模块,包括存储在计算机可读存储介质中的计算机可读指令:选择特定规则,每个指定包括最多预设数目的过滤器的过滤器子集;对于特定规则中的每个,估计用于过滤器子集的所有的值的过滤器子集的布尔表达,以产生作为在过滤器子集中的过滤器的数目的2μ个比特的阵列,其中μ>1;以及在存储设备中存储所述比特的阵列。
根据另一方面,本发明提供了一种过滤数据容器的内容的方法。所述方法包括指定二元条件的集合,指定运算符的集合,形成叶向量以及形成节点向量。
二元条件的集合表征内容。运算符中的一个被指定空后继者,而每个其它运算符被指定来自运算符的集合内的后继者。叶向量包括N>1个叶记录。每个叶记录具有来自运算符的集合当中的叶运算符以及二元条件的各自的子集。节点向量具有N个节点记录,每个具有节点运算符字段和节点状态字段。
每个叶运算符被应用于各自的二元条件,并且结果被放置在节点记录的节点状态字段中。然后,每个叶运算符的后继者被放置在节点记录的节点运算符字段中。
在处理了每个叶记录之后,处理了节点向量。具有共同运算符的节点记录被标识并且被组合的记录取代。共同运算符被应用于所标识的节点记录的节点状态字段的条目,并且结果状态被放置在所组合的记录的节点状态字段中。共同运算符的后继者被放置在所组合的记录的节点运算符字段中。
内容索引被确定为应用服从共同运算符的后继者是空后继者的条件的共同运算符的结果状态。替代地,所述方法可以在组合了共同运算符的节点记录之后保持跟踪节点向量的节点记录的数目,并且内容索引被确定为与等于一的节点记录的数目相对应的结果状态。所述方法进一步包括根据内容索引的值来执行指定编辑动作的步骤。
根据进一步的方面,本发明提供了一种基于预定决定向量来过滤数据容器的内容的方法。所述方法包括定义二元条件的集合,其中每个二元条件是选择的内容的描述符以及描述符的各自准则;定义布尔表达的集合以及相对应的内容过滤动作;选择表示为μ比特,μ>1的字符串的指定的μ个二元条件的布尔表达;以及对于该字符串的2μ个值中的每个估计布尔表达,以产生2μ个条目的决定向量,每个条目是与该字符串的2μ个值中的一个相对应的内容度量的状态。
一旦接收到数据容器,根据数据容器的内容来确定所指定的μ个二元条件的值。然后使用μ比特的结果字符串的值来对决定向量编索引,以获取确定是否需要应用内容过滤动作的布尔表达的值。
布尔表达可以以具有布尔运算符、运算数和分隔符的代数格式来获取。然后,通过检查布尔表达来估计布尔表达以标识简单模式,该简单模式封闭在两个分隔符之间的布尔运算符和两个运算数。只要发现了简单模式,就将布尔运算符以及两个分隔符应用到两个运算数以确定模式的二元值以及简单模式,用二元值来取代布尔运算符。检查布尔表达以检测简单模式的过程被重复,直到布尔表达被减少到确定是否应用编辑动作的单个二元值(“真”或“假”)。
替代地,布尔表达可以以具有多个节点的树结构的形式来获取。然后,接着估计节点来估计布尔表达。具有多个记录的树模板被创建。每个记录对应于各自的节点,并且具有用于第一运算数、第二运算数、当前运算符和后继者记录的四个字段。从第一记录开始并且后续继续进行到最后的记录,当前记录的运算数被应用于从字符串的当前值确定的各自的二元值,以产生新的二元值。如果当前记录是最后的记录,则新的二元值是布尔表达的值。如果当前记录是中间的记录,则新的二元值被放置在后继者记录的运算数字段中。
附图说明
现在将参考附图举例描述本发明的实施例,在附图中:
图1图示了根据本发明的实施例的用于过滤和适配通过网络传送的数据容器的网络支持服务控制器和编辑引擎;
图2图示了根据本发明的实施例的包括控制器和代码转换器的编辑引擎;
图3图示了根据本发明的实施例的多媒体容器、容器组件的内容描述符和内容过滤器;
图4图示了根据本发明的实施例的与可应用于数据容器的规则的集合相关联的布尔表达的代数形式;
图5图示了根据本发明的实施例的内容过滤过程的基本组件;
图6图示了根据本发明的实施例的导出容器内容的描述符的过程;
图7图示了根据本发明的实施例的用于内容过滤的系统;
图8图示了根据本发明的实施例的与图7的系统类似的适于具有多个组件的容器的系统;
图9详述了根据本发明的实施例的内容过滤过程;
图10图示了根据本发明的实施例的估计规则的布尔表达的方法;
图11图示了根据本发明的实施例的用于编码过滤规则的第一示例性规则树结构;
图12图示了用于编码图11的规则树结构的第一数据结构;
图13图示了根据本发明的实施例的用于编码过滤规则的第二示例性规则树结构;
图14图示了应用于图13的第二示例性规则树的图12的第一数据结构;
图15图示了根据本发明的实施例的应用图12和图14例示的第一数据结构的过程;
图16图示了根据本发明的实施例的用于编码规则树的第二数据结构;
图17图示了根据本发明的实施例的应用图16中例示的第二数据结构的过程;
图18图示了根据本发明的实施例的使用规则树来确定规则结果的过程;
图19详述了根据本发明的实施例的形成与图18的过程相关联的叶向量的步骤;
图20图示了根据本发明的实施例的预处理用于快速运行时间规则执行的布尔表达的方法;
图21图示了图20的方法的示例性实现;
图22图示了根据本发明的实施例的与过滤器定义和规则定义相关的数据的处理;
图23图示了顺序过滤多媒体容器的组件的过程;
图24图示了根据本发明的实施例的应用用于内容过滤的多个规则的过程;
图25图示了根据本发明的实施例的图示确定内容过滤动作的规则的互相依赖性的图;
图26图示了根据本发明的实施例的图2的引擎的操作管理器的模块;
图27图示了根据本发明的实施例的图2的代码转换器的模块;以及
图28图示了根据本发明的实施例的图2的引擎的代码转换器的模块。
具体实施方式
术语
多媒体服务(MMS):该术语用于通俗地表示多内容通信服务,其中通过网络在终端当中交换诸如文本、音频信号、视频信号、图像、呈现等的不同形式的信息内容。从一个终端传输到另一终端的编码信息通常被布置在单个数据流中,并且时间交织段对应于不同的信息内容。
容器:容器是存储在计算机可读介质上并且通过计算机网络传送的计算机文件。容器被构造成包含各种类型的数据。容器可以支持具有同步信息的多个文本、音频和视频流以使得能够协调回放各种流。
容器组件:容器包括分段,每个分段包括以特定形式编码的数据,诸如文本、音频数据、图像数据或视频数据。术语“容器组件”指的是在一个分段中的数据。容器组件可以被简称为“组件”。在多媒体消息系统中,组件也被称为“媒体”。
容器筛选:“容器筛选”指的是检查容器的内容的过程,包括所有组件,以确保没有任何不想要的插入,尤其是有害的插入。
容器适配:“容器适配”指的是修改发现的容器组件的形式以与各自的接收器的解码能力兼容的过程。如果呈现容器组件以适合接收器不可行,则可以删除容器组件。容器适配过程是接收器特定的,而容器筛选的过程独立于希望接收器的类型。
容器编辑:术语“容器编辑”指的是容器筛选和容器适配的组合过程。
容器调节:该术语可以与“容器编辑”同义地使用。然而,即使当没有修改容器时,容器调节也向容器附加了适当的通知。
代码转换器:代码转换器是执行编码信息的直接数字到数字转换的设备,以使得能够以适合特定接收器的不同格式来再现一个格式的信息记录。
图1图示了提供从传送设备120到接收设备160的路径的网络140,在下文中称为传送器120和接收器160。除了许多不同类型的其它硬件终端设备,网络140支持服务控制器103和编辑引擎106。传送器120发送容器到接收器160,其中容器可以包括诸如编码文本、音频信号、静止图像、动画(图像的快速显示)以及视频信号的不同内容类型的数据。容器可以被导向服务控制器103,其进而将容器导向用于检查该容器的编辑引擎106以及在需要时编辑该容器的内容。编辑过程包括数据筛选以确保没有任何不想要的插入,尤其是有害插入,满足具体要求的内容修改,以及与各自接收器的解码能力兼容的内容适配。
图2图示了编辑引擎106。网络接口210通过链路204从客户端接收容器。容器被导向到分别标识为240(1),240(2),…,240(m)的m>1个控制器240中的一个。控制器204可以被实现为不同的硬件实体或将如下所述的共享主管多个代码转换器280的计算设备。控制器240是协议特定的,每个被编程以处理根据相应协议形成的容器。处理特定协议的控制器被认为具有相同控制器类型。控制器可以分组成控制器组,每个控制器组处理根据相同协议规划的容器。编辑引擎106可以具有不同类型的控制器。然而,整个编辑引擎106可以被配置成具有相同类型的控制器。编辑引擎106也可以具有负载平衡模块290。
编辑引擎106包括多个代码转换器280,分别标识为280(1)、280(2),…,280(n)。代码转换器280的主要功能是执行编码信息的直接数字到数字转换,以使得能够以适于特定接收器的不同格式来再现一个格式的信息记录。然而,代码转换器还可以执行内容过滤以及内容适配的过程。多个选择的代码转换器280被分配到每个控制器240,一起形成控制配件。例如,在图2中,控制器240(1)和代码转换器280(1)至280(5)形成了安装在各自的计算设备上的一个控制配件。控制器240(m)和代码转换器280(n-2)至280(n)形成了安装在另一计算设备上的另一控制配件。控制配件优选地安装在也被称为“刀片服务器”服务器单元上,它是支持处理器和存储设备的单个电路板。
处理器220托管网络接口210,并且操作管理器230还被称为操作控制器。网络接口210从通信地耦合到网络140的客户端接收容器(图1)。操作管理器230包括存储在计算机可读存储介质中的计算机可读指令,用于执行操作、管理和维护功能。
服务控制器103可以接收容器,并且向编辑引擎106中的一个发送容器编辑请求。
处理器220还托管图形用户接口(未示出),它包括存储在计算机可读存储介质中的计算机可读指令,耦合到操作管理器230,用于输入编码的规则的阵列并且用于向每个控制器240分配代码转换器的各自的子集。配置存储设备260存储分配到每个控制器的代码转换器的标识符。
控制内容过滤过程的规则可以被存储为存储在每个代码转换器280可访问的规则存储器225中的共同规则文件。替代地,托管控制器和关联代码转换器的每个计算设备(服务器单元)可以存储规则文件的相关子集。
图3图示了具有分别标识为320(1)、320(2)等的多个组件320的容器。组件320可以包含文本、音频记录、编码图像、视频记录和任何其它内容类型。使用分别标识为332(1)、332(2)、…332(j)和332(D)的描述符332的集合330来表征组件的内容。D是描述符的总数目。根据诸如内容类型、标识符(名称)、扩展、数字签名、密码功能、优先级和文件大小的若干属性来定义内容描述符。因为内容过滤要求随着多媒体电信的演进技术而变化,所以可以添加或删除描述符。
根据本发明的实施例,容器组件的内容的特性被表示为二元变量的集合,每个二元变量确定内容是否满足特定准则。通过检查容器的内容来确定接收到的容器的内容描述符的值。因此,执行该功能的代码转换器知道所接收到的容器的格式以及规划容器所根据的协议的暗示。通过将运算符344应用于两个运算数来确定表征二元变量的值;内容描述符(342)的值和相对应的准则346由内容过滤系统的安装者(用户)输入。运算符344和两个运算数342和346据称形成过滤器340(也被称为内容条件或简化条件)。因此,容器组件的内容的特征在于过滤器的集合,每个过滤器具有值“真”或“假”。
在为适合接收器而适配之前编辑容器是基于规则的集合的,每个规则确定编辑动作,诸如删除整个内容、删除在内容中发现的恶意插入、或移除内容的附加。规则是过滤器的各自子集的函数。已经选择过滤器是二元变量,定义规则的函数优选被规划为过滤器子集的布尔表达。因此,用于内容过滤的系统的安装者(用户)(如将针对图7和图8更详细描述的)通过过滤器的子集、布尔表达以及根据执行布尔表达的结果而执行的动作定义了规则。
图4图示了与可应用于数据容器的组件的存储在规则阵列420中的四个规则集合相关联的布尔表达的代数形式。相同的规则集合还可应用于规则过滤器的至少一个其它组件。
通过一个过滤器(大小>30000)来定义第一规则,规则-1,其中内容描述符是组件的大小,运算符是“大于”并且准则是30000(附图标记440)。如果规则结果是布尔“真”,则各自的动作是放弃组件并且终止用于考虑中的组件的剩余规则的处理。
通过两个过滤器(大小>5000)并且(族≠消息)的布尔表达450来定义第二规则,规则-2。第一过滤器的描述符是“大小”,准则是“5000”,并且运算符是“大于”。第二过滤器的描述符是“族”,准则是“消息”,并且运算符是“不等于”。布尔表达包含单个运算符“或”。与规则-2相关联的动作与规则-1的动作相同。
通过三个过滤器:(大小>25000)、(内容-类型=图像/wbmp)并且(内容-类型=图像/png)的布尔表达460来定义第三规则,规则-3。第一过滤器的描述符是“大小”,准则是“25000”,并且运算符是“大于”。第二过滤器的描述符是“内容-类型”,准则是“图像/wbmp”,并且运算符是“等于”。第三过滤器的描述符是“内容-类型”,准则是“图像/png”,并且运算符是“等于”。布尔表达包含两个运算符“与”和“或”。规则-3的动作与规则-1的动作相同。注意到,“wbmp”指的是无线位图(无线应用协议、WAP、图形格式),并且“png”指的是“便携式网络图形”。
通过一个过滤器(族=消息)来定义第四规则,规则-4,其中描述符的内容是“族”,准则是“消息”并且运算符是“等于”(附图标记470)。
图5图示了合并在图2的操作管理器230中并且包括用户接口520、用于获取过滤器定义的过滤器创建模块530、用于获取规则定义的规则构造模块540、用于存储过滤器定义的存储分隔550以及用于存储规则定义(规则结构)的存储分隔560的数据获取子系统的基本组件。用户接口520使得安装者(用户)能够提供输入数据512,以定义过滤器的集合和规则的集合。过滤器创建模块530包括存储在计算机可读存储介质中的计算机可读指令,计算机可读指令当被执行时使处理器提示安装者输入内容描述符定义、用于每个定义的准则以及运算符。根据接收到的容器的内容来确定描述符的值。
规则构造模块540包含存储在计算机可读存储介质中的计算机可读指令,当执行计算机可读指令时,计算机可读指令当被执行时使处理器提示安装者输入用于每个规则的布尔表达,并且从预定义的动作的集合中选择动作。计算机可读指令还使处理器解析布尔表达并且确定表达的执行方面的序列。
过滤器定义被存储在存储设备的存储分隔550中,并且规则定义被存储在同一存储设备或另一其它存储设备的存储分隔560中。
图6图示了使用存储在存储分隔550中的内容描述符的定义来确定接收到的容器612的内容描述符的值的过程。在步骤620中解析所接收到的容器612,以标识容器的组件。在步骤640中分析每个组件,并且在步骤650中将结果与从存储分隔550中读取的内容描述符定义配对。
图7图示了根据本发明的实施例的用于内容过滤的系统的整体组织。存储器710存储用于所有相关过滤器的数据。通过来自由图5的模块530确定的运算符的集合740的运算符来定义每个过滤器,在图6的步骤650中确定来自内容描述符720的内容描述符,并且在图5的模块530中确定来自描述符的集合730的描述符准则。每个过滤器的二元值(“真”或“假”)被存储在存储设备750中,用于在执行图5的模块540中定义的规则的集合中使用。
通过过滤器子集、布尔表达和动作的来定义每个规则。存储器770存储根据系统安装者(用户)输入在图5的模块540中确定的编码的布尔表达。存储器760存储在每个规则和各自的布尔表达中使用的过滤器的标识符。存储器780存储由于估计布尔表达的各自的结果而将执行的编辑动作的指示。每个布尔表达的执行产生二元结果以及各自的编辑动作。一旦完成了编辑动作,则将已编辑的内容放置在存储器790中。
尽管图7图示了根据本发明的实施例的当应用于一个组件时用于内容过滤的系统,但是图8图示了当应用于k>1容器组件时用于图7的内容过滤的系统。存储设备810存储k个容器组件中的每个的所有相关过滤器的数据。与每个过滤器有关的数据分别被标识为812(1)至812(k)。容器的组件被顺序地处理。对于考虑中的组件,应用每个过滤器的运算符的结果被保持在存储器850中。N>1个编码的布尔表达的集合被存储在存储器864中。布尔表达被分别标识为870(1)至870(N),每个与来自被分别标识为880(1)至880(N)的N个编辑动作的各自的编辑动作相关联。
图9图示了内容过滤的示例性过程。用于图7或图8的内容过滤的系统的安装者(用户)已经初始定义了分别标识为920(1)至920(5)的五个内容描述符,分别标识为922(1)至922(8)的八个描述符准则、以及分别标识为924(1)至924(4)的四个运算符。安装者已经定义了分别标识为930(1)至930(12)的十二个过滤器,每个过滤器指定内容描述符920中的一个、准则922中的一个以及运算符924中的一个。如在图6的步骤650中描述的,一旦确定了五个内容描述符920(1)至920(5)的值,确定了十二个过滤器的二元值。
安装者已经定义了分别标识为950(1)至950(6)的六个布尔表达,其中每个布尔表达与12个过滤器的子集相关联。例如,布尔表达950(2)与过滤器930(2)、930(8)和930(11)相关联。安装者定义了分别标识为960(1)至960(4)的四个动作。然后,安装者使用图5的规则构造模块540来定义分别标识为940(1)至940(9)的九个规则。每个规则与单个布尔表达950和单个动作960相关联。例如,规则940(1)指定布尔表达950(2)和动作960(2),而规则940(9)指定布尔表达950(5)和动作960(4)。
规则可以基于一个过滤器,其中该规则的结果是过滤器的二元值。例如,规则940(7)仅取决于过滤器930(11)。
布尔表达表示
用于图7或图8的内容过滤的系统的安装者可以根据常规代数句法或根据树结构来提供布尔表达950。图5的用户接口520包括用于以代数形式编码布尔表达的第一模块(未示出)以及用于编码作为树结构呈现的布尔表达的第二模块(未示出)。两个模块中的每个提供了各自的模板,以使得安装者能够正确地指定布尔表达。
布尔表达包括简单操作、复合操作和复杂操作。简单操作被展现为运算符和两个运算数,该运算符和运算数由两个分隔符(诸如两个括号)来定界。运算符和运算数可以以任何顺序列出,并且两个分隔符不需要彼此区分。两个运算符是表示两个过滤器的布尔变量。复合操作包括运算符和两个简单操作,该运算符和两个简单操作由两个分隔符来定界。复杂操作包括运算符和两个操作,所有都由两个分隔符来定界,其中两个操作中的任一个可以是简单操作或复合操作。构成复杂操作的两个操作还可以是复杂操作。简单操作、复合操作或复杂操作的分隔符可以相同。
图10图示了根据本发明的实施例的估计布尔表达的方法,这要求仅识别和执行简单操作。根据该方法,解析编码的布尔表达以标识简单操作。标识的简单操作的运算符被应用于各自的运算数(过滤器)以产生“真”或“假”的二元值(例如,表示为“1”或“0”)。已标识的简单操作、因此处理的运算符、运算数和两个分隔符被删除并且被运算的结果取代。该过程递归地继续,直到已编码的布尔表达减少到单个简单操作,其结果变为布尔表达的结果。
在图10的步骤1012中,检查布尔表达以标识简单操作。如果发现了简单操作(步骤1014),则步骤1016执行简单操作并产生二元值。步骤1018用二元值来取代简单操作的运算符、运算数和分隔符。然后,再次访问步骤1012以在减少的布尔结构中寻找另一简单操作。如果步骤1014确定在布尔表达的当前形式中没有发现进一步的简单操作,则步骤1020检查当前形式以确定它是否已经真正减少到单个二元值(“真”、“假”或“1”、“0”)。如果是,则步骤1022报告单个二元值作为执行布尔表达的结果。如果步骤1020确定已处理的布尔表达包含不止单个二元值,则步骤1024报告尚未正确地形成布尔表达的指示。
图10的过程优选地在数据输入期间执行,使得用户(安装者)可以纠正布尔表达。用户接口520或编辑引擎的某个其它组件可以被提供有计算机指令以分析错误地形成的布尔表达并分析错误。
根据本发明的实施例的编码和估计布尔表达的替代方法以来布尔表达的图形树表示。图11中图示了示例性规则树1100,图11图示了标识为过滤器1至过滤器6的六个运算数(六个过滤器)的布尔表达,每个是树的叶。标记为θ1、θ2和θ3的三个运算符定义了三个操作{过滤器1,θ1,过滤器2}、{过滤器3,θ2,过滤器4}和{过滤器4,θ3,过滤器6}。每个运算符的中间后继者被定义。例如,θ1、θ2和θ3的后继者分别是运算符θ5、θ4和θ4,并且运算符θ4和θ5的后继者分别是θ5和“空”。具有“空”后继者的运算符产生布尔表达的结果。
运算符θ1产生二元输出B1,它是运算符θ5的运算数。运算符θ2产生二元输出B2,它是运算符θ4的运算数。运算符θ3产生二元输出B3,它是运算符θ4的另一运算数。运算符θ4产生二元输出B4,它是运算符θ5的另一运算数。运算符θ5产生二元输出B*,它是由树表示的布尔表达的结果。
图12图示了用于表示图11的规则树1100的模板阵列1230。模板阵列1230的索引1220如图12所示从0到19变化。模板阵列1230被划分成等于运算符总数目的多个记录(在图11的示例性树中为五个),每个记录对应于运算符并且表示具有两个运算数的简单操作。在处理了考虑中的容器之后已知过滤器的二元值。因此,记录包括各自的过滤器、运算符定义和针对与中间后继运算符相对应的另一记录的指针的索引。“空”指针指示当前记录是要处理的最后记录。用户可以以任何顺序输入记录,并且在图5的用户接口520内的模块(未示出)重新组织记录,使得可以顺序地处理记录,并且当处理任何记录时,已经确定了各自的运算数的值。
如图12所示,前三个记录对应于可应用于形成树的叶的六个过滤器的运算数θ1、θ2和θ3。第一记录的指针π(1)指向保持运算符θ1的二元结果B(1)的阵列的索引16。第二记录的指针π(2)指向保持运算符θ2的二元结果B(2)的阵列的索引12。第三记录的指针π(3)指向保持运算符θ3的二元结果B(3)的阵列的索引13。因此,当到达第四记录时,已经计算了两个运算数B(2)和B(3)。运算符θ4的二元结果B(4)被写入位置π(4)=17。因此,当到达第五记录时,已经知道各自的两个运算数B(1)和B(4)。运算符θ4的二元输出是布尔表达的结果,因为运算数θ4没有后继者(即,空后继者)。
图12中还图示了模板阵列1230的示例性激活。根据图6的过程确定的过滤器1至过滤器6的值分别是“真”、“假”、“真”、“假”“真”和“真”。布尔运算符θ1至θ5由用户分别指定为“与”、“或”、“与”、“与”、和“异或”。由于运算符θ4(“异或”)具有空后继者,所以运算符“XOR”产生二元输出,该二元输出是布尔表达的结果。
图13图示了与标记为L1至L11的十一个叶(过滤器)的布尔表达相对应的第二示例性规则树1300,并且图14图示了应用于图13的规则树的模板阵列1430,类似于图12的模板阵列1230,索引1420的范围从0至43。规则树1300包括标记为θ2至θ11的十个运算符。第一叶L1是运算符θ11的运算数,它没有后继者。对于一致性,表示规则树1300的图14的模板阵列1430的第一记录(在图14中标记为记录1)概念上被查看,以包括运算数L1以及“不关注”运算数φ和许可非存在运算符θ1,它传送L1的值作为后继者运算符θ11的运算数。如本领域所已知的,分配给运算数φ的“不关注”值可以方便地是“真”状态或“假”状态。剩余的十个记录,模板阵列1430的记录2至记录11,对应于运算符θ2至θ11。在图14的模板阵列1430中每个条目L1、L2至L11是过滤器的索引。如上所述,参照图12,与图5的用户接口相关联的输入组织模块522布置记录,使得可以顺序地处理记录,每个记录已经确定了运算数。
图15总结了使用模板阵列1230(图12)或1430(图14)的树编码方法。在步骤1520中,创建了具有多个记录的模板,每个记录对应于树中的节点。每个记录包括含有两个过滤器的索引、当前运算符和指向与当前运算符的后继者相对应的后继者记录的指针的四个字段。在步骤1530中,根据图6的过程确定的过滤器的列表准备用于考虑中的容器。在步骤1540中,顺序地处理树模板的记录。每个记录的运算数通过对过滤器的列表编索引来获取。各自的运算符被应用于运算数,并且二元值被放置在后继者记录的运算数字段中。在步骤1550中,最后的记录的运算符的结果被呈现为由树表示的布尔表达。
图16图示了根据本发明的实施例的表示规则树结构的替代方法。与规则相关的过滤器(条件)集合基于如先前所述的内容描述符、描述符准则和过滤器运算符来定义。过滤器集合的定义被存储在过滤器定义阵列。布尔运算符的集合被定义具有被指定空后继者的一个运算符以及被指定来自运算符的集合的后继者的每个其它运算符。过滤器形成树的叶并且被划分成过滤器的子集,其中子集的过滤器形成了来自布尔运算符的集合当中的布尔运算符的运算数。注意到,如果过滤器的每个子集包括两个过滤器,则布尔运算符的总数目等于过滤器的总数目减去1。
考虑M个过滤器的集合,M>1,形成了包括N个叶记录的叶向量的模板;1<N<M。每个叶记录包括来自运算符的集合当中的叶运算符和过滤器的各自的子集。在安装阶段,每个叶记录包括运算符和过滤器定义阵列中的运算数(过滤器)的索引。每个叶记录的过滤器的值被确定用于各个容器组件。
形成了具有等于N个数目的叶记录的多个节点记录的节点向量。每个节点记录具有节点运算符字段和节点状态字段。在安装阶段,节点记录为空,不包含数据。在叶记录的处理期间初始地确定节点记录的布尔运算符和节点状态。N个节点记录可以以任何顺序来布置。然而,方便的是,假设节点记录初始具有与叶记录的一对一对应关系。因此,节点记录j的布尔运算符是叶向量j,1≤j≤N的后继者布尔运算符。
一旦确定了过滤器的值,就将每个叶运算符应用于各自的过滤器(各自的二元条件),并且将结果放置在节点记录的节点状态字段中。将每个叶运算符的后继者放置在节点记录的节点运算符字段中。
在处理了所有叶记录之后,处理节点记录。然后标识在此被称为连接节点记录的具有共同运算符的节点记录。然后,将共同运算符应用于所有连接节点记录的节点状态以产生新的状态。从连接的节点记录中选择的节点记录的运算符字段被共同运算符的后继者取代,并且所选择的节点记录的节点状态字段被刚确定的新的状态取代。从节点向量中删除剩余的连接节点记录。因此,通过用组合的节点记录取代连接节点记录的每个集合,减少了在节点向量中的节点记录的数目。标识连接节点记录的过程继续递归,直到节点向量仅包含一个节点记录。在剩余的一个节点记录的运算符字段中应用布尔运算符的结果是估计布尔表达的结果。最后的节点记录的布尔运算符具有空后继者。
图16图示了用于编码图13的示例性树的规则树的递归规则构造1600,它表示形成树的叶的十一个过滤器的布尔表达。叶(过滤器)被标记为L1至L11。在图13的树中,叶L1与任何其它叶都不相关联。为了一致性,叶L1人工地与叶φ相关联,它与其共享被动运算符θ1。插入的叶φ被分配了“不关注”值。如本领域中已知的,“不关注”值可以方便地分配“真”状态或“假”状态。
由用户来定义布尔运算符θ2至θ11的集合。运算符θ2至θ6与叶记录相关联,而运算符θ7至θ11与节点记录相关联。运算符θ11具有空后继者,并且每个其它运算符θ2至θ10具有来自运算符θ7至θ11的集合的后继者,如图16的列表1610所图示的。
叶向量1620包括分配了放置在运算符字段1624(1)至1624(6)中的运算符θ1至θ6的六个记录1622,分别被标识为1622(1)至1622(6),相对应运算数的索引被放置在运算数字段1626(1)至1626(12)中。在六个叶记录的运算数字段中的运算数是{φ,L1}、{L2,L3}、{L4,L5}、{L6,L7}、{L8,L9}和{L10,L11}。
当确定了二元值时(图5和图6),处理叶记录1622。从叶记录1622(1)开始,人工被动运算符θ1仅将L1的值传递到节点记录1642(1)的节点状态字段。作为θ1的后继者的运算符θ11被放置在节点记录1642(1)的运算符字段中。然后,处理第二叶记录1622(2),其中将运算符θ2应用于级别L2和L3(过滤器L2和L3)以产生要放置在节点记录1642(2)的节点状态字段中的二元值B2。作为运算符θ9的运算符θ2后继者被放置在节点记录1622(2)的运算符字段中。该过程继续直到确定了所有节点记录1642(1)至1642(6)。
该过程仅使用节点向量1640来递归地继续;不再需要叶向量1620。在节点1642(1)中的运算符θ11在节点向量1640(1)中不配对。因此,节点记录1642(1)保持不变。类似地,节点记录1642(2)保持不变,因为节点记录1642中的任何一个都不包括运算符θ9。节点记录1642(3)和1642(4)具有取代B3的共同运算符θ7,它被应用于运算数B3和B4以产生要在节点记录1642(3)的节点状态字段中放置的二元结果B7。作为θ9的运算符θ7的后继者运算符被放置在记录1642(3)的运算符字段中,取代θ7。删除了现在在新的组合记录1642(3)中占用的节点记录1642(4)。类似地,节点记录1642(5)和1642(6)被组合在具有运算符θ8的后继者运算符θ10以及通过将共同运算符θ8应用于运算数B5和B6确定的节点状态B8的新的节点记录中。节点向量1640现在缩减成通过附图标记1640(2)标识的四个节点记录。节点记录1640(2)简单地重写节点记录1640(1)。
该过程递归地继续,组合了节点记录1642(2)和1642(3)以产生新组合的节点记录1642(2)同时节点记录1642(1)和1642(4)保持不变;两个不变的节点记录现在是在减少的节点向量1640(3)中的记录1642(1)和1642(3)。
节点记录1642(2)和1642(3)具有共同运算符θ10。运算符θ10被应用于运算数B9和B8以产生放置在节点记录1642(2)的节点状态字段中的新状态B10。运算符θ10的后继者运算符θ11被放置在节点记录1642(2)的节点运算符字段中。节点记录1642(1)和1642(2)的节点记录的共同运算符θ11被应用于运算数B1和B10以产生布尔表达的输出B*。
图17图示了使用图16的叶向量模板1620和节点向量模板1640来确定规则树的输出的过程。在步骤1720中,确定了表征考虑中的数据内容的布尔条件(布尔过滤器L2至L11)的集合。在步骤1722中,形成了具有N>1个叶记录1622的叶向量1620。每个叶记录1622包括布尔运算符字段1624和用于布尔条件(过滤器L2至L11的子集)的子集的字段。在步骤1724中,形成了N个节点记录1642的节点向量1640。每个节点记录1642包括布尔运算符字段1644和节点状态字段1648。在步骤1726中,每个叶运算符被应用于从如上参照图5和图6描述的内容数据的特性确定的布尔条件(布尔过滤器)的各自的子集。二元结果被放置在选择的节点记录1642的节点状态字段中。在步骤1728中,每个叶运算符的后继者被放置在所选择的节点记录的运算符字段中。在步骤1730中,用组合的记录来取代具有共同运算符的节点记录,因此减少了节点向量1640的节点记录1642的数目。在步骤1732中,共同运算符被应用于所取代的节点记录的节点状态,并且二元结果被放置在所组合的记录的运算符字段中。在步骤1734中,从图16的列表1610确定的共同运算符的后继者被放置在所组合的节点记录的运算符字段中。在步骤1736中,如果剩余节点记录的数目大于1,则重新访问步骤1730以继续组合共同运算符的节点记录的过程。如果剩余记录的数目是1,则剩余节点记录的运算符被应用于节点记录的节点状态,并且该结果确定是否需要执行编辑动作(步骤1740)。
图18是详述图17的过程的流程图。在步骤1820中,为了在图19中详细描述,规划了叶向量1620。顺序地考虑叶记录1622(1)至1622(N)。在步骤1824中,索引j被设置成等于0。如果步骤1826确定要处理更多的叶记录,则步骤1828将索引j增加1并且获取与当前叶记录的叶索引相对应的叶集合(过滤器集合),并且步骤1830获取当前叶记录的运算符θ(θ1至θ6中的一个)。步骤1832将该运算符应用于所获取的叶集合,从而产生二元输出B。在步骤1834中,从图16的列表1610确定后继者S(θ)。
节点向量1640的节点状态字段和运算符字段在此被标记为U(j)、V(j),1≤j≤N,即,U(j)和V(j)定义节点记录1642(j),1≤j≤N。在步骤1836中,B的值被放置在节点向量1640的节点状态字段U(j)中,并且S(θ)的值被放置在节点向量1640的运算符字段V(j)中。当处理了所有叶记录1622(1)至1622(N)时,索引j等于叶记录N的数目,并且节点向量1640的每个节点记录1642具有各自的节点运算符和节点状态。在步骤1840中,节点向量1640的节点记录1642的当前数目v被设置成等于j(它等于N)。在步骤1842中,如果节点记录v的当前数目大于1,则节点向量被扫描以收集具有相同运算符的所有节点记录1642并且组合这样的记录。在扫描之前,节点记录的当前数目v*=v被注意(步骤1843)以使得能够检测节点记录的数目的变化。在步骤1844中,索引k被设置成等于零,并且步骤1846记录节点记录1642(k)的运算符θ=V(k)。步骤1848检查节点向量1640的后续节点记录以标识具有相同运算符θ的后续节点记录的数目μ。如果所标识的后续节点记录的数目μ是零(步骤1850),则在步骤1852中索引k增加1,并且如果索引k小于节点记录的当前数目v,则重新访问步骤1846。否则,步骤1856收集相同运算符θ的节点记录的(μ+1)个运算数,并且将运算符θ应用到(μ+1)个运算数以确定组合的节点记录的新状态B。在步骤1860中,删除了后续μ个标识的节点记录,并且步骤1862在节点记录1642(k)的节点状态字段U(k)中插入新状态B,并且在节点记录1642(k)的运算符字段V(k)中插入后继者运算符S(θ)。在步骤1864中,剩余节点记录的数目被确定为(v-μ)。在步骤1864之后应用了步骤1852和1854,以确定节点向量1640是否包含进一步的共同运算符的节点记录。如果步骤1854确定k小于v,则继续从步骤1846扫描节点向量。否则,如果步骤1854确定k=v(k无法超过v),则步骤1855确保v的当前值(在步骤1864中最后更新的)小于先前的值v*。否则,在步骤1880中报告错误。注意到,如果用户提供的布尔表达的表示不正确,则不满足步骤1855的要求v<v*。如果v<v*,则步骤1855之后是步骤1842。如果步骤1842确定剩余节点记录的数目是1,则剩余节点记录的运算符被应用于各自的运算数,以确定状态B*(步骤1890),其确定各自的编辑动作。
图19详述了规划图16的叶向量1620的图18的步骤1820。在步骤1920中,规划了过滤器(条件)的集合,并且在步骤1922中,基于如上参照图5和图6描述的用户输入确定了叶运算符。叶运算符被顺序应用以生成相对应的叶记录1622。如果步骤1924确定还没有应用所述至少一个运算符,则步骤1926向叶向量添加新的叶记录1622。步骤1928选择剩余运算符中的一个,并且步骤1930向叶记录的运算数字段1624添加相关联的过滤器。重复步骤1930,直到步骤1932确定属于所选择的运算符的所有过滤器已经被包括在当前叶记录1622中。当完成了当前叶记录1622时,如在步骤1932中确定的,重新访问步骤1924。当步骤1924确定已经考虑了所有的叶运算符,则将完成的叶向量1620呈现给图18的步骤1824。
图20图示了预先计算过滤器集合的每个值的布尔表达的二元值的方法。过滤器的集合通过具有含有与过滤器的一对一对应关系的多个比特的比特字符串来表示,使得在该字符串中的每个比特对应于一个过滤器。利用μ>1个过滤器,字符串包含μ个比特,并且假设值的范围从0到2μ-1。在步骤2012中,设置了开始字符串值0(μ个比特都被设置成零),并且具有2μ个条目的规则向量的每个条目被初始化成“0”。在步骤2014中,使用如参照图10、15或17描述的方法中的一个来估计布尔表达。在步骤2016中,二元结果(“真”、“假”)被存储在与字符串(0到2μ-1)的当前值相对应的位置处的规则向量中。在步骤2018中,字符串值通过添加1而增加。当步骤2030确定字符串的μ个比特中的每个具有值0时,完成了规则向量的生成(步骤2040)。注意到,μ个比特中的每个具有值“1”的字符串对应于规则向量的第2μ-1条目,并且在步骤2018中添加1将字符串重新设置成μ个零。替代地,字符串可以具有(μ+1)个比特,最高有效位用于指示完成了规则向量生成。然后,规则向量可以用于直接确定运行时布尔表达的二元值,因此增加了内容过滤系统的吞吐量。
总之,过滤数据容器的方法然后包括以下步骤:
(1)定义过滤器(二元条件)的集合,其中每个过滤器是选择的内容的描述符和各自的描述符的准则的函数。
(2)定义规则的集合,每个规则指定布尔表达以及相应的内容过滤动作。
(3)一次考虑一个布尔表达。
(4)考虑μ个过滤器(二元条件)的布尔表达。过滤器被表示为μ个比特的字符串,μ>1。
(5)估计该字符串的2μ个值中的每个的布尔表达,以产生2μ个条目的规则向量,每个条目是与该字符串的2μ个值中的一个相对应的内容度量的状态。
(6)对所有布尔表达重复步骤(5)。
(7)接收和解析数据容器。
(8)选择规则和根据数据容器的内容确定所指定的已选择的规则的μ个过滤器的值。
(9)对于所选择的规则相对应的规则向量编索引,并且确定与由μ个比特的字符串确定的索引相对应的规则向量中的条目的值。
(10)根据条目的值执行内容过滤动作。
(11)如果需要将新规则应用于所接收到的容器,则重复步骤(8)至(10)。
图21图示了用于执行标记为L1、L2、L3和L4的四个过滤器的集合(μ=4)的布尔表达的规则的规则向量。过滤器的集合通过四个比特的字符串来表示。布尔表达被估计用于范围从“0000”至“1111”的该字符串的16个值2112中的每个,以产生与该字符串的字符串值j,0≤j≤μ相对应的标记为“真”或“假”的二元输出2114(j)。
一旦接收到容器,则检查容器组件的内容以确定图21中考虑的用于该规则的四个过滤器的集合。如果例如四个过滤器的集合具有值“1”、“0”、“0”和“1”,产生“1001”的字符串2140,则直接从二元规则向量2114的位置9(二元数1001)读取布尔表达的值。
通过图21的示例性图示,图20的方法适合采用适度数目的运算数(过滤器)的布尔表达的规则。例如,利用8个过滤器,二元规则向量2114将相对短,仅具有256比特。如果布尔表达具有不止16个运算数,则例如,它可以优选地每当需要时估计布尔表达而不是存储大的二元规则向量。超过16的每个布尔表达的运算数的数目可以不同。
图22图示了与过滤器定义和规则定义相关的数据条目的过程。该过程开始于确定是否已经创建了规则文件(步骤2220)。如果还没有创建规则文件,则步骤2222使用本领域已知的常规方法来创建文件。下一步骤是向规则文件添加规则。在步骤2224中开始填充或更新规则文件。步骤2224打开规则文件并且将该过程导向步骤2226,它提示用户指示是否要编码新规则并将新规则添加到规则文件。填充或更新规则文件由用户来终止(步骤2228)。如果要添加更多的规则,则放置在用户接口520(图5)中的数据获取模块(未示出)或在操作、管理和维护模块230中创建规则模板(步骤2230)。规则模板可以可选地采取多种形式中的一种,这由用户来决定。规则模板的形式取决于:(1)要顺序地还是根据等级顺序来应用由用户指定的规则;以及(2)要以代数分析形式还是以树结构格式来输入规则的布尔表达,在树结构中,树的节点表示运算符和各自的运算数。在任一情况下,数据获取模块可以提供具有方便数据输入的指令的各自的模板。例如,数据获取模块可以通过提示用户输入简单的操作来引导用户构造代数形式的布尔表达,每个操作包括运算符和运算数的集合,然后进行到想要的表达。可以通过分别添加新运算符来验证所构造的表达的有效性。如果布尔表达被呈现为树结构,则数据获取模块可以显示通用树结构,它可以当用户输入与选择的树的节点相关的数据时被修整和验证。
在步骤2232中,提供了以任何合适格式编码的规则标识符。在步骤2234中,指定了规则动作,并且步骤2240定义了与规则相关联的布尔表达。根据相关联的布尔表达的值来应用特定规则的规则动作。步骤2240包括步骤2242、2244、2246、2248、2250、2252和2260。步骤2242如图3所示创建了附图标记为340的过滤器模板。步骤2244设置了过滤器的类型,它可以是考虑中的容器的内容的多个描述符中的一个。步骤2246设置过滤器的运算符,它可以从一元运算符、二元运算符、算术运算符、比较运算符、逻辑运算符、设置运算符和用户定义的运算符的菜单中选择。步骤2248设置了过滤器的准则,它是与在步骤2244中选择的描述符相关的目标值或阈值。步骤2250提示用户定义用于该规则的新的过滤器或继续定义要应用于目前为止指定的过滤器的集合的布尔表达。为了添加另一过滤器,重新访问步骤2242至2248,直到在步骤2250中用户确定所有相关的过滤器都存在。步骤2252提示用户输入根据上述格式中的一个的布尔表达。注意到,规则可以仅基于一个过滤器,如图9所示,在这种情况下,布尔表达缩减成被动运算符,它仅适用一个过滤器的值以确定是否要应用在步骤2234中指定的规则工作。
步骤2260将刚构造的规则附加到在步骤2224中打开的规则文件。注意到,一旦处理了接收到的容器,则在“运行时间”要确定因此构造的每个规则的过滤器的值。编码的规则包括过滤器标识符,它仅是存储过滤器的阵列(未示出)的索引。
在系统安装或更新期间执行图22的过程。编码和存储在规则文件中的规则被“实时”地激活。
图23图示了顺序过滤接收到的具有多个组件的容器的组件的过程。处理用于内容过滤的容器的组件的顺序是任意的,并且可以由用户来设置。如果由于一些操作原因而对整个容器施加了整体约束,则作为结果将具有处理组件的顺序。
当控制器提示时,内容过滤的过程在步骤2320中开始(图2)。如果已经选择了要处理组件的顺序,则步骤2340确定在步骤2350是否要处理至少一个组件。否则,步骤2380结束该处理并报告结果。在步骤2360中,执行可应用于考虑中的组件的规则设置的所有规则,并且步骤2340被重新访问以确定是否需要处理另一组件。模块插入指示应用于组件的任何过滤动作的通知。
图24详述了步骤2360(图23),其中规则的集合被应用于容器的内容。步骤2360应用于容器的组件。步骤2424确定是否已经应用了整个规则集合。如果是,则步骤2480将指示由于指定规则的集合而引起的任何内容过滤动作的通知附加到容器。否则,步骤2428选择当前规则,并获取与所选择的当前规则相关联的所有相关过滤器的定义。注意到,如果一个规则的结果影响了另一规则的选择,则可以以特定顺序来布置规则。另外,如将参照图25描述的,可以通过形式图而不是简单的阵列来表示规则相互依赖性。
步骤2430执行所选择的当前规则。步骤2430包括步骤2432、2436、2440和2444。步骤2432确定是否已经激活了在步骤2428中标识的所有过滤器以确定每个过滤器的二元值。当将过滤器的运算符应用于各自的运算数以产生该过滤器的二元值时就称为激活了过滤器。如果已经激活了与当前规则相关的所有过滤器,则步骤2432将控制传输到步骤2460。否则,执行步骤2346、2440和2444以产生考虑中的过滤器的值。如参照图5和图6描述的,步骤2436基于考虑中的容器内容的特性来获取运算符和各自的运算数的值。步骤2440将运算符应用于运算数,并且步骤2444记录当前过滤器的值用于在估计当前规则的布尔表达中使用。
步骤2460根据图10、图15或图17的编码方法中的一个来获取布尔表达。步骤2464估计布尔表达。步骤2468可以将与当前规则相关联的内容过滤动作应用于服从如在步骤2464中确定的布尔表达的值的考虑中的内容的内容。在步骤2470中,如果当前规则的内容过滤动作导致删除整个容器组件,则不需要执行后续规则(如果有的话),并且步骤2360向所删除的组件附加各自的通知。如果没有编辑内容,或编辑但没有删除,则重新访问步骤2424以确定是否需要将更多的规则应用于考虑中的内容。注意到,如果具有超过特定阈值的附件,或者如果具有无法移除的恶意插入,则可以删除整个组件。
规则相互依赖性
通常,可应用于特定内容的规则可以具有补充动作、冲突动作或互斥动作。利用补充动作,内容过滤结果可以与实现规则的顺序无关。利用冲突动作或互斥动作,一个动作代替另一个。根据本发明的实施例,可以提示用户使用图形来定义规则的相互关系。
图25图示了指示标记为规则1至规则5的五个规则的等级布置的图形。规则的状态在此被定义为由于执行规则的布尔表达而产生的二元值。
规则1的“真”状态导致标记为“动作1”的动作,之后,认为完成了步骤2360。“动作1”可以需要两个相反极性中的一个;第一个是因为它太大或不能修复而删除整个组件,或因为它太短以致不能包含恶意插入而确定组件是可接受的。规则1的“假”状态指示内容通过第一测试并且应当进行规则2的第二测试。
规则2的“真”状态导致后面是实现规则5的标记为“动作2”的动作。规则2的“假”状态指示内容通过第二测试并且应当进行规则3的第三测试等等。如果规则4的状态是“假”,则该过程在没有编辑内容的情况下结束。该过程还可以在(仅)实现一个的情况下结束:{动作1}、{动作2和动作5}、{动作3}和{动作5}。
图26图示了由操作管理器230使用的在下面列出的模块。每个模块包括存储在计算机可读存储介质中的计算机可读指令。
(1)服务器单元配置模块2610,用于配置服务器单元以接受根据指定的协议形成的多媒体数据容器。
(2)负载平衡模块2612,用于在同样配置的服务器单元当中公平地分发多媒体数据容器以处理共同类型的数据容器。
(3)过滤器定义模块2614,用于从用户获取过滤器集合的定义,每个过滤器指定内容描述符、描述符准则和运算符的定义。
(4)布尔表达获取模块2616,用于使得用户能够根据代数句法来提供布尔表达。
(5)布尔表达获取模块2618,用于使得用户能够以树结构的形式来提供布尔表达。
(6)布尔表达获取模块2620,用于使得用户能够通过编辑和修整通用树的图形来输入布尔表达,其中树的每个节点表示运算符和各自的运算数集合。
(7)规则构造模块2622,用于从用户获取内容过滤规则的集合,每个规则指定过滤器和过滤动作的子集的布尔表达。
(8)规则验证模块2624,用于验证针对规则指定的布尔表达的正确性。
(9)规则布置模块2626,用于以由规则执行的特定过滤动作排除至少一个后续规则的执行所根据的顺序来布置规则。
(10)规则互依赖性模块2628,用于提示用户以给定规则的各自的布尔表达的值为条件来指定给定规则的连续规则。
(11)规则图形定义模块2630,用于以形式图的形式来呈现内容过滤规则的集合(图25)。
(12)规则优化模块2632,用于使用常规逻辑优化技术来优化每个规则的布尔表达,以最小化处理努力。
(13)规则预处理模块2634,用于选择特定规则,每个规则实行最多包括预设数目的过滤器的过滤器子集;对特定规则中的每个估计用于过滤器的子集的所有的值的过滤器子集的布尔表达,以产生2m个比特的阵列,m>1是过滤器子集中的过滤器的数目;以及将比特的阵列存储在存储设备中(图20和21)。
(14)分类模块2636,用于将容器分类成容器类型,每个容器类型对应于在源处规划的容器所根据的协议;以及从多个容器当中将特定类型的容器导向特定控制器。分类模块2636可以与网络接口210或操作管理器230相关联。
图27图示了根据本发明的实施例的由代码转换器280使用的在下面列出的模块。每个模块包括存储在计算机可读存储介质中的计算机可读指令。
(a)模块2710,用于表征多媒体数据容器的每个组件的内容,确定内容描述符,应用运算符以及确定过滤器的状态。
(b)模块2720,用于布尔表达的运行时间估计并且确定规则的二元输出。可以根据代数句法或作为树结构来呈现布尔表达。
(c)模块2730,用于执行与服从于各自规则的布尔表达的预设值的给定容器内容相关的过滤动作。
图28图示了根据本发明的实施例的包括代码转换器服务模块2810、程序寄存器2820和程序存储器2840的代码转换器280。代码转换器服务模块包括存储在计算机可读存储介质中的计算机可读指令,当执行计算机可读指令时,使得处理器的核心:从多个控制器中的特定控制器接收特定容器和编辑请求;选择和执行与编辑请求相关的程序;以及将结果返回特定控制器。程序寄存器包括计算机可读指令,当执行计算机可读指令时,使得处理器根据各自的功能来组织程序;以及用各自的新的程序来取代现有程序。
控制器240(图2)将编辑请求转发到代码转换器280。一旦接收到编辑请求2850,则代码转换器服务模块2810标识使用包含在编辑请求中的信息执行的插件程序。代码转换器服务模块2810执行所选择的插件程序并且将结果返回各自的控制器240。
“插件”在此被定义为设计成执行特定任务的自包含的模块。程序存储器2840包括存储在计算机可读存储介质中的计算机可读指令,并且包括两种类型的插件:
(a)初始加载的驻留插件2842;以及
(b)动态加载的外部插件2844,外部插件可以取代驻留插件。
驻留插件提供了基本的功能,并且外部插件提供了附加功能,内容过滤和病毒扫描时这样的功能的两个例子。
插件被注册到程序寄存器2820,程序寄存器2820管理插件注册和接入。程序寄存器2820基于它们的特性来组织插件。插件可以布置在插件组中。
插件程序以预定义的方式来组织插件的执行。从确定用于预定义的具有特定目标的插件集合的执行逻辑的简单的指令集合来构建插件程序。
接下来呈现使用插件的简单程序的指令的例子。
(01)OnErrorGoto TERMINATION_PLUGIN
(02)Execute DEFAULT_SETUP_INITIAL_PROFILE
(03)Execute DEFAULT_SETUP_SESSION
(04)Execute DEFAULT_PRE_PROCESS_DECODE_PLUGIN
(05)ExecuteGroup GROUP_HOT_PIPELINE_DUAL_LOAD_AROUND_CREATE
(06)Execute DEFAULT_TRANSFORMER_PLUGIN
(07)Execute DEFAULT_CREATOR_PLUGIN
(08)ExecuteGroup GROUP_HOT_PIPELINE_CREATOR
(09)ExecuteGroup GROUP_HOT_PIPELINE_DUAL_LOAD_AROUND_CREATE
(10)Execute DEFAULT_CHARGE_DATA_RECORD_PLUGIN
(11)Execute DEFAULT_OPTIMISER_PLUGIN
(12)ExecuteGroup GROUP_HOT_PIPELINE_ANALYSER
(13)Execute DEFAULT_ENCODE_PLUGIN
(14)Label TERMINATION_PLUGIN
(15)Execute DEFAULT_CHARACTERIZE_PLUGIN
(16)ExecuteGroup GROUP_HOT_PIPELINE_TERMINATOR
(17)Execute DEFAULT_UNSETUP_SESSION
(18)Execute DEFAULT_CHARGE_DATA_RECORD_PLUGIN
注意到,引入左边的数目仅是便于参考并且不一定构成指令的一部分。
每个“执行(Excute)”命令具有作为总是表示驻留插件名称的变量的插件的名称。因为外部插件是可选的,所以从未通过名称来直接参考外部插件,并且因此仅当存在时才执行外部插件。每个“ExecuteGroup”命令具有作为变量的插件组的名称。命令“ExecuteGroup”执行属于该组的所有插件。
行l声明在任何错误时程序跳转到行14并且继续执行行15至18。行2和3执行要完成的适配的设置;如果需要,行4执行输入的解码,例如,如果输入是电子邮件,则将它分解成它的子组件;行5和行9执行内容过滤插件所属于的插件组。因此,如果存在,则它在行5开始执行并且在行9终止;行6和行7分别用于执行创建适配管线所必需的设置操作并且实际创建它。适配管线包含要执行的操作的集合以执行所要求的适配;行8意指执行在执行之前对适配管线有影响的外部插件;行10提供将参与适配的输入组件的详情。行18对输出组件执行类似的任务。这样的信息可以被分析用于报告、付费和与适配功能不一定相关的其它目的;行11执行适配管线优化;行12执行在它的执行之前执行适配管线的分析和优化的任何外部插件;行13执行适配管线;行15表征由于执行适配管线而生成的输出组件;行16执行对生成的输出组件具有影响的任何外部插件;以及行17执行完成适配的附加步骤(诸如提供详细的适配记录)。
规则被永久存储在“规则文件”中。规则文件可以应用到不止一个控制器。使用规则文件的内容过滤器将包含在规则文件中的规则应用于媒体(内容)。如果给定规则估计成“真”,则执行相对应的动作。动作可以包括移除诸如病毒(包括移动特定的病毒)的不想要的内容;移除特定类型的媒体(诸如游戏);使用第三方应用对媒体执行动作(诸如扫描病毒媒体)。然而,特定类型的内容可以未经处理地通过。
在操作管理器230中完成规则的定义(图2)。在代码转换器280中完成用于影响内容编辑(过滤和适配)的规则的应用。一旦创建了规则文件,则用户可选地配置控制器240中的一个以将规则文件以及任何适配请求发送到它选择的代码转换器280。
动作“放弃”确保媒体不是内容适配过程的输出的一部分。动作“扫描保持”导致扫描媒体病毒。这假设安装了反病毒外部插件。媒体实际上被“标记”为“扫描病毒”,使得在执行适当插件程序时,其中执行了反病毒插件,扫描了标记为“扫描病毒”的所有媒体以寻找病毒。
下面给出了称为规则1的规则的例子。
Rule Name="MaxFileSize50000"Action=″Drop"
Filter Type="MaxFileSize"Operaror="Greater Than"Value="50000"
FilterFilterOperator=″AND"Type=″Family"Operator="NotEqual″
Value="MESSAGE"
与规则1相关联的名称是“MaxFileSize50000”,而与该规则相对应的动作是用于移除匹配包含在规则中的过滤器(多个)的任何媒体的“放弃(Drop)”。该规则指定了两个过滤器。第一过滤器是针对文件的大小应用的“MaxFileSize”类型。过滤器运算符是“大于”,其中作为值是“50000”。第二过滤器特征在于称为“族(Family)”的类型。该过滤器针对媒体族来应用(例如,图像、音频等)。与过滤器相关联的运算符不是“不等于”并且该值是“消息”。通过使用布尔运算符“与”来组合过滤器。因此,如果文件具有大于50000的大小,并且不是族“消息”,则执行所指定的动作。
接下来描述称为规则2的另一规则:
该规则的名称是“MaxFileSize25000AndContentTypes”并且相应的动作是“放弃(Drop)”。规则2的目的是移除匹配包含在该规则中的过滤器(多个)的任何媒体。接下来呈现规则2的结构的详细描述。
●仅指定了下列过滤器
○第一过滤器
■过滤器类型是“MaxFileSize”并且针对文件的大小来应用过滤器;
■运算符是“大于”;
■值是“25000”;
○以“与”布尔过滤器运算符开始的括号
○第二过滤器
■过滤器类型是“ContentType”并且针对媒体的内容类型(等同于mimetype)来应用过滤器;
■运算符是“等于”;
■值是“图像/wbmp”
○第三过滤器:
■具有布尔过滤器运算符“或”;
■过滤器类型是“ContentType”并且针对媒体的内容类型(等同于mimetype)来应用过滤器;
■运算符是“等于”;
■值是“图像/png”
○括号关闭
因此,如果文件具有大于“25000”的大小且(具有等于“图像/wbmp”的内容类型或具有等于图像/png的内容类型),则执行在该规则中指定的动作。如果媒体是诸如电子邮件或MMS的容器,则动作可以影响媒体或任何它的附件。动作可以包括:保持(适配媒体);保持和扫描(在适配之前对媒体进行病毒扫描);放弃(在最后的消息中不包括附件);通过(没有适配媒体,使其保持未改变)。
接下来描述在共同规则文件中定义的例子规则3。
Rule Name=″MaxFileSize300000"Action=″Drop″
Filter Type="MaxFileSize"Operator="GreaterThan″Value="300000"
呈现了完成该共同规则文件的另一例子规则4。
Rule Name="VirusScan"Action="ScanKeep″
Filter Type=″Family"Operator=″Equals"Value="MESSAGE″
在这种情况下,共同规则文件包含:
●规则3,该规则3“放弃”具有大于300000的大小的所有文件;以及
●规则4,该规则4对作为消息的任何媒体执行病毒扫描。
考虑将共同规则文件应用于所有控制器并且一些控制器“X”已经定义了包含规则1和2的规则文件的情况。当向选择的代码转换器发送适配请求时,该控制器将发送包含规则1至4的被称为“RuleFile1”的规则文件。呈现了“RuleFile1”的结构。
在提供该特征的实施例的背景下,XML用于管理在规则文件内部的规则的结构。这确保了便携性和缩放性。接下来呈现RuleFile1的XML版本。
下面呈现了内容过滤的例子。考虑多媒体容器:
MMS特性:
名称:mms1.mms
族:消息
大小:171100
内容类型:应用/vnd.wap.multipart.mixed
附件的数目:3
MMS附件特性:
名称:image.jpg
族:图像
大小:75000
内容类型:图像/jpg
名称:image2.jpg
族:图像
大小:45000
内容类型:图像/jpg
名称:image.png
族:图像
大小:50000
内容类型:图像/png
根据下面的步骤来执行内容过滤:
●MMS通过内容过滤;
■由于媒体属于族“消息”,所以规则“VirusScan”估计成“真”;
■媒体被标记为“扫描病毒”。
●附件image.jpg通过内容过滤;
■由于媒体不是消息并且它的大小大于50000,所以规则“MaxFileSize50000”估计成“真”;
■媒体被标记为“放弃”。
●附件image2.jpg通过内容过滤;
■对于该媒体没有任何规则估计成“真”;
●第二附件image.png通过内容过滤;
■由于媒体具有大于25000的大小并且具有内容类型“图像/png”,所以对于该媒体规则“MaxFileSize25000AndContentTypes”估计成“真”;
■媒体被标记为“放弃”。
在执行了内容过滤插件之后继续插件程序。这导致通过反病毒插件来病毒扫描MMS媒体及其内容。然后,开始适配过程。考虑适配和内容过滤产生具有下列形式的输出MMS的情况。
MMS特性:
名称:mms1out.mms
族:消息
大小:25175
内容类型:应用/vnd.wap.multipart.mixed
附件的数目:2
MMS附件特性:
名称:image2.gif
族:图像
大小:24000
内容类型:图像/gif
名称:removal_notification.txt
族:文本
大小:75
内容类型:文本/明文(plain)
假设,作为内容适配的结果,适配了“image2.jpg”以输出“image2.gif”。注意到,“image.jpg”和“image.png”两者都被“放弃”并且由于应用了内容过滤动作而不是输出MMS的一部分。新媒体“removal_notification.txt”被添加到输出消息。这由于移除了“image.jpg”和“image.png”。代码转换器被设计成,一旦移除了媒体,则附接解释性文本通知。该通知意在向MMS的接收器提供对没有适配并且移除了原来在MMS中的一些媒体的解释。
以外部插件的形式在代码转换器中呈现了反病毒扫描。在这种情况下,插件架构用于向诸如McAffee或Kaspersky的第三方反病毒扫描引擎提供接口。由于具有任何外部插件,反病毒插件的存在是可选的。在插件程序级别,意指执行反病毒插件的插件程序将包含执行反病毒插件所属于的插件组的命令。
反病毒插件的执行并没有自动暗示将对媒体病毒扫描。仅在通过内容过滤标记为“扫描病毒”的媒体上执行病毒扫描。一些第三方反病毒引擎可以被安装为单独的库。其它第三方反病毒引擎可以被安装为客户端服务器。反病毒插件将以正确地与第三方反病毒引擎对接这样的方式来写入。在任何情况下,反病毒插件是代码转换器进入点以在通过内容适配的媒体上执行病毒扫描。
因此,在上述实施例中,已经提供了下列特征:(1)解析消息的能力,以便检查附件;(2)表征附件的能力,以便根据内容类型来对其过滤;以及(3)调节用户定义的、可扩展的并分级的规则集合,以确定是否需要媒体元素。
编辑动作确定怎样处理媒体附件。编辑动作可以包括下列中的一个或多个:将附件呈现给适配过程;保持附件并在呈现给适配过程之前对媒体进行病毒扫描;以及放弃附件。编辑动作可以包括调用反病毒和入侵防护软件程序。
尽管已经详细描述了本发明的具体实施例,但是应当理解,所描述的实施例意在是说明性的而非限制性的。在不背离本发明的最广义方面的范围的情况下,可以在下面的权利要求的范围内做出在附图中示出并在说明书中描述的实施例的各种变化和修改。

Claims (15)

1.一种用于编辑多媒体容器的内容的引擎,所述引擎包括:
存储设备,用于存储:
布尔变量的阵列,每个布尔变量是根据各自的运算符来确定的,所述各自的运算符可应用于表征多媒体容器内容的第一运算数和指定所述第一运算数的目标值的第二运算数;以及
编码规则的阵列,每个规则指定各自的内容编辑动作,所述各自的内容编辑动作由所述布尔变量各自的子集的各自的布尔表达的值激活;
多个服务器单元,每一服务器单元托管控制器和各自的代码转换器子集,每一代码转换器用于将所述编码规则中的至少一个应用于所述多媒体容器的子集,所述服务器单元包括具有多个核心的处理器,每个核心排他性地分配到所述代码转换器子集中的代码转换器;以及
网络接口,用于从客户端接收所述多媒体容器并且将每个多媒体容器导向用于各自的服务器单元。
2.根据权利要求1所述的引擎,进一步包括:
操作管理器,其包括存储在用于执行操作、管理和维护功能的计算机可读存储介质中的计算机可读指令;以及
图形用户接口,包括存储在计算机可读存储介质中的计算机可读指令,耦合到所述操作管理器以用于输入所述编码规则的阵列。
3.根据权利要求1所述的引擎,进一步包括:代码转换器负载平衡模块,其耦合到所述控制器,用于向所述各自的代码转换器子集中的代码转换器公平地分配编辑请求。
4.根据权利要求1至3中任意一个所述的引擎,进一步包括:
代码转换器服务模块,耦合到所述各自的代码转换器子集中的每个代码转换器,用于从外部源接收新程序;
程序存储介质,用于存储可接入所述每个代码转换器的多个程序;以及
程序寄存器,包括存储在计算机可读存储介质中的计算机可读指令,用于标识每个新程序的功能以及根据各自的功能组织程序。
5.根据权利要求4所述的引擎,其中所述代码转换器服务模块进一步包括存储在计算机可读存储介质中的计算机可读指令,当执行所述计算机可读指令时,引起所述处理器的核心:
接收特定多媒体容器和编辑请求;以及
选择和执行与所述编辑请求有关的程序。
6.根据权利要求4所述的引擎,其中所述程序寄存器包括计算机可读指令,当执行所述计算机可读指令时,引起所述处理器的核心:
根据各自的功能来组织程序;以及
用各自的新程序来取代现有程序。
7.根据权利要求4所述的引擎,其中所述程序存储介质包括:
存储在所述计算机可读存储介质中的驻留程序;以及
存储在所述计算机可读存储介质中的动态加载的外部程序。
8.一种编辑多媒体容器的方法,包括:
规划所述多媒体容器的描述符的集合;
指定与所述描述符相对应的准则的集合;
指定运算符的集合;
确定布尔变量的集合,每个布尔变量是根据从所述描述符的集合选择的描述符和从所述准则的集合选择的准则来定义的;
定义规则的集合,每个规则执行所述布尔变量的子集的布尔表达;
将多个代码转换器布置为代码转换器组,每个代码转换器组耦合到控制器集合中的各自的控制器,每个控制器包括多核处理器并且访问所述规则的集合中的各自的子集;
接收多媒体容器;
在耦合到选择的控制器的代码转换器处估计至少一个可应用于所述多媒体容器的内容的规则;以及
根据估计的结果编辑所述多媒体容器。
9.根据权利要求8所述的方法,其中所述描述符的集合包括以下中的至少一个:
所述内容的大小;
来自预定义的内容族集合当中的内容族;
编码方法;以及
优先级指定。
10.根据权利要求8所述的方法,其中所述运算符的集合包括以下中的一个或多个:
比较运算符;
逻辑运算符;
集合运算符;以及
用户定义的运算符。
11.根据权利要求8所述的方法,进一步包括:通过图形用户接口来获取所述描述符的集合、所述准则的集合、所述运算符的集合以及所述布尔表达的集合,所述图形用户接口包括存储在计算设备的存储器中的计算机可读指令。
12.根据权利要求8所述的方法,其中所述多媒体容器包括多个组件,并且所述内容对应于所述组件中的一个。
13.根据权利要求8所述的方法,进一步包括:基于来自所述布尔变量的集合中的单个布尔变量执行进一步的编辑功能。
14.根据权利要求8至13中的任意一个所述的方法,进一步包括:以由于执行布尔表达而产生的编辑功能有条件地排除至少一个后续布尔表达的执行所根据的顺序,来布置所述布尔表达。
15.根据权利要求13所述的方法,其中执行所述编辑功能的步骤包括以下中的一个:
扫描所述内容以检测恶意插入,并且移除检测到的恶意插入;以及
扫描所述内容以检测恶意插入,并且一旦检测到恶意插入,则删除所述内容。
CN201410117632.6A 2007-11-09 2008-11-07 用于基于规则的内容过滤的系统和方法 Expired - Fee Related CN103886376B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US98683507P 2007-11-09 2007-11-09
US60/986,835 2007-11-09
US12/266,362 2008-11-06
US12/266,353 2008-11-06
US12/266,353 US8019709B2 (en) 2007-11-09 2008-11-06 Method and system for rule-based content filtering
US12/266,362 US20090126020A1 (en) 2007-11-09 2008-11-06 Engine for rule based content filtering
CN200880114945.9A CN101849399B (zh) 2007-11-09 2008-11-07 用于基于规则的内容过滤的系统和方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN200880114945.9A Division CN101849399B (zh) 2007-11-09 2008-11-07 用于基于规则的内容过滤的系统和方法

Publications (2)

Publication Number Publication Date
CN103886376A CN103886376A (zh) 2014-06-25
CN103886376B true CN103886376B (zh) 2017-08-25

Family

ID=40624685

Family Applications (2)

Application Number Title Priority Date Filing Date
CN200880114945.9A Expired - Fee Related CN101849399B (zh) 2007-11-09 2008-11-07 用于基于规则的内容过滤的系统和方法
CN201410117632.6A Expired - Fee Related CN103886376B (zh) 2007-11-09 2008-11-07 用于基于规则的内容过滤的系统和方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN200880114945.9A Expired - Fee Related CN101849399B (zh) 2007-11-09 2008-11-07 用于基于规则的内容过滤的系统和方法

Country Status (8)

Country Link
US (2) US8019709B2 (zh)
EP (2) EP2206308A4 (zh)
JP (2) JP5275362B2 (zh)
KR (2) KR101451285B1 (zh)
CN (2) CN101849399B (zh)
CA (3) CA2703092C (zh)
IL (1) IL204725A (zh)
WO (2) WO2009059419A1 (zh)

Families Citing this family (189)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8930331B2 (en) 2007-02-21 2015-01-06 Palantir Technologies Providing unique views of data based on changes or rules
US8442928B2 (en) * 2007-11-09 2013-05-14 Vantrix Corporation Method and apparatus for employing rules to filter streaming data
US8019709B2 (en) * 2007-11-09 2011-09-13 Vantrix Corporation Method and system for rule-based content filtering
US8478764B2 (en) * 2007-11-09 2013-07-02 Vantrix Corporation Method and apparatus for concurrent filtering of multiple components of streaming data
US8447718B2 (en) * 2007-11-09 2013-05-21 Vantrix Corporation Method and apparatus for filtering streaming data
US8984390B2 (en) 2008-09-15 2015-03-17 Palantir Technologies, Inc. One-click sharing for screenshots and related documents
GB2466851A (en) * 2009-01-13 2010-07-14 Oracle Int Corp Method and interface for defining a complex Boolean expression
US9104695B1 (en) 2009-07-27 2015-08-11 Palantir Technologies, Inc. Geotagging structured data
US8700764B2 (en) * 2009-09-28 2014-04-15 International Business Machines Corporation Routing incoming messages at a blade chassis
CN102053993B (zh) 2009-11-10 2014-04-09 阿里巴巴集团控股有限公司 一种文本过滤方法及文本过滤系统
US8788449B2 (en) * 2009-12-31 2014-07-22 International Business Machines Corporation Interface for creating and editing boolean logic
KR101784877B1 (ko) * 2010-07-12 2017-11-07 삼성전자주식회사 휴대용 단말기에서 메뉴 항목 관리 방법 및 장치
US9047375B2 (en) * 2010-07-22 2015-06-02 Verizon Patent And Licensing Inc. Internet video content delivery to television users
EP2656598B1 (en) * 2010-12-20 2018-08-08 Telefonaktiebolaget LM Ericsson (publ) Method of selecting a composite service from a plurality of composite services
US8595839B2 (en) 2011-01-21 2013-11-26 International Business Machines Corporation Selecting one of a plurality of scanner nodes to perform scan operations for an interface node receiving a file request
US8799240B2 (en) 2011-06-23 2014-08-05 Palantir Technologies, Inc. System and method for investigating large amounts of data
US9092482B2 (en) 2013-03-14 2015-07-28 Palantir Technologies, Inc. Fair scheduling for mixed-query loads
US9547693B1 (en) 2011-06-23 2017-01-17 Palantir Technologies Inc. Periodic database search manager for multiple data sources
US8732574B2 (en) 2011-08-25 2014-05-20 Palantir Technologies, Inc. System and method for parameterizing documents for automatic workflow generation
US8504542B2 (en) 2011-09-02 2013-08-06 Palantir Technologies, Inc. Multi-row transactions
US8893253B2 (en) * 2011-11-29 2014-11-18 Bayshore Networks, Inc. Firewall apparatus, systems, and methods employing detection of application anomalies
US8732207B2 (en) * 2012-07-02 2014-05-20 International Business Machines Corporation Attribute-based linked tries for rule evaluation
US9798768B2 (en) 2012-09-10 2017-10-24 Palantir Technologies, Inc. Search around visual queries
US9348677B2 (en) 2012-10-22 2016-05-24 Palantir Technologies Inc. System and method for batch evaluation programs
US9501507B1 (en) 2012-12-27 2016-11-22 Palantir Technologies Inc. Geo-temporal indexing and searching
US9380431B1 (en) 2013-01-31 2016-06-28 Palantir Technologies, Inc. Use of teams in a mobile application
US10140664B2 (en) 2013-03-14 2018-11-27 Palantir Technologies Inc. Resolving similar entities from a transaction database
US10037314B2 (en) 2013-03-14 2018-07-31 Palantir Technologies, Inc. Mobile reports
US8909656B2 (en) * 2013-03-15 2014-12-09 Palantir Technologies Inc. Filter chains with associated multipath views for exploring large data sets
US8868486B2 (en) 2013-03-15 2014-10-21 Palantir Technologies Inc. Time-sensitive cube
US8937619B2 (en) 2013-03-15 2015-01-20 Palantir Technologies Inc. Generating an object time series from data objects
US8924388B2 (en) 2013-03-15 2014-12-30 Palantir Technologies Inc. Computer-implemented systems and methods for comparing and associating objects
US8917274B2 (en) 2013-03-15 2014-12-23 Palantir Technologies Inc. Event matrix based on integrated data
US10275778B1 (en) 2013-03-15 2019-04-30 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive investigation based on automatic malfeasance clustering of related data in various data structures
US9965937B2 (en) 2013-03-15 2018-05-08 Palantir Technologies Inc. External malware data item clustering and analysis
US8818892B1 (en) 2013-03-15 2014-08-26 Palantir Technologies, Inc. Prioritizing data clusters with customizable scoring strategies
US8799799B1 (en) 2013-05-07 2014-08-05 Palantir Technologies Inc. Interactive geospatial map
US9223773B2 (en) 2013-08-08 2015-12-29 Palatir Technologies Inc. Template system for custom document generation
US9335897B2 (en) 2013-08-08 2016-05-10 Palantir Technologies Inc. Long click display of a context menu
US8713467B1 (en) 2013-08-09 2014-04-29 Palantir Technologies, Inc. Context-sensitive views
US9785317B2 (en) 2013-09-24 2017-10-10 Palantir Technologies Inc. Presentation and analysis of user interaction data
US8938686B1 (en) 2013-10-03 2015-01-20 Palantir Technologies Inc. Systems and methods for analyzing performance of an entity
US8812960B1 (en) 2013-10-07 2014-08-19 Palantir Technologies Inc. Cohort-based presentation of user interaction data
US9116975B2 (en) 2013-10-18 2015-08-25 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive simultaneous querying of multiple data stores
US8924872B1 (en) 2013-10-18 2014-12-30 Palantir Technologies Inc. Overview user interface of emergency call data of a law enforcement agency
US9021384B1 (en) 2013-11-04 2015-04-28 Palantir Technologies Inc. Interactive vehicle information map
US8868537B1 (en) 2013-11-11 2014-10-21 Palantir Technologies, Inc. Simple web search
US9105000B1 (en) 2013-12-10 2015-08-11 Palantir Technologies Inc. Aggregating data from a plurality of data sources
US10579647B1 (en) 2013-12-16 2020-03-03 Palantir Technologies Inc. Methods and systems for analyzing entity performance
US10025834B2 (en) 2013-12-16 2018-07-17 Palantir Technologies Inc. Methods and systems for analyzing entity performance
US9552615B2 (en) 2013-12-20 2017-01-24 Palantir Technologies Inc. Automated database analysis to detect malfeasance
US10356032B2 (en) 2013-12-26 2019-07-16 Palantir Technologies Inc. System and method for detecting confidential information emails
US8832832B1 (en) 2014-01-03 2014-09-09 Palantir Technologies Inc. IP reputation
US9043696B1 (en) 2014-01-03 2015-05-26 Palantir Technologies Inc. Systems and methods for visual definition of data associations
WO2015113191A1 (zh) 2014-01-28 2015-08-06 华为技术有限公司 处理规则的修改方法、装置及设备
US9009827B1 (en) 2014-02-20 2015-04-14 Palantir Technologies Inc. Security sharing system
US9483162B2 (en) 2014-02-20 2016-11-01 Palantir Technologies Inc. Relationship visualizations
US9727376B1 (en) 2014-03-04 2017-08-08 Palantir Technologies, Inc. Mobile tasks
US9529858B2 (en) * 2014-03-06 2016-12-27 Yahoo! Inc. Methods and systems for ranking items on a presentation area based on binary outcomes
US8924429B1 (en) 2014-03-18 2014-12-30 Palantir Technologies Inc. Determining and extracting changed data from a data source
US9836580B2 (en) 2014-03-21 2017-12-05 Palantir Technologies Inc. Provider portal
US9888379B2 (en) * 2014-04-16 2018-02-06 Verizon Patent And Licensing Inc. Affiliation and disaffiliation of computing devices
US9857958B2 (en) 2014-04-28 2018-01-02 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive access of, investigation of, and analysis of data objects stored in one or more databases
US9009171B1 (en) 2014-05-02 2015-04-14 Palantir Technologies Inc. Systems and methods for active column filtering
FR3021788B1 (fr) * 2014-05-30 2023-07-21 Amadeus Sas Procede et systeme d'acces de contenu
US9870434B1 (en) * 2014-06-20 2018-01-16 EMC IP Holding Company LLC Techniques for filtering workload and performance data
US9129219B1 (en) 2014-06-30 2015-09-08 Palantir Technologies, Inc. Crime risk forecasting
US9535974B1 (en) 2014-06-30 2017-01-03 Palantir Technologies Inc. Systems and methods for identifying key phrase clusters within documents
US9619557B2 (en) 2014-06-30 2017-04-11 Palantir Technologies, Inc. Systems and methods for key phrase characterization of documents
US10572496B1 (en) 2014-07-03 2020-02-25 Palantir Technologies Inc. Distributed workflow system and database with access controls for city resiliency
US9202249B1 (en) 2014-07-03 2015-12-01 Palantir Technologies Inc. Data item clustering and analysis
US9256664B2 (en) 2014-07-03 2016-02-09 Palantir Technologies Inc. System and method for news events detection and visualization
US9021260B1 (en) 2014-07-03 2015-04-28 Palantir Technologies Inc. Malware data item analysis
US9785773B2 (en) 2014-07-03 2017-10-10 Palantir Technologies Inc. Malware data item analysis
US20160026923A1 (en) 2014-07-22 2016-01-28 Palantir Technologies Inc. System and method for determining a propensity of entity to take a specified action
US9454281B2 (en) 2014-09-03 2016-09-27 Palantir Technologies Inc. System for providing dynamic linked panels in user interface
US9390086B2 (en) 2014-09-11 2016-07-12 Palantir Technologies Inc. Classification system with methodology for efficient verification
US9767172B2 (en) 2014-10-03 2017-09-19 Palantir Technologies Inc. Data aggregation and analysis system
US9501851B2 (en) 2014-10-03 2016-11-22 Palantir Technologies Inc. Time-series analysis system
US9785328B2 (en) 2014-10-06 2017-10-10 Palantir Technologies Inc. Presentation of multivariate data on a graphical user interface of a computing system
US9984133B2 (en) 2014-10-16 2018-05-29 Palantir Technologies Inc. Schematic and database linking system
US9229952B1 (en) 2014-11-05 2016-01-05 Palantir Technologies, Inc. History preserving data pipeline system and method
US9043894B1 (en) 2014-11-06 2015-05-26 Palantir Technologies Inc. Malicious software detection in a computing system
US9483546B2 (en) 2014-12-15 2016-11-01 Palantir Technologies Inc. System and method for associating related records to common entities across multiple lists
US10552994B2 (en) 2014-12-22 2020-02-04 Palantir Technologies Inc. Systems and interactive user interfaces for dynamic retrieval, analysis, and triage of data items
US9348920B1 (en) 2014-12-22 2016-05-24 Palantir Technologies Inc. Concept indexing among database of documents using machine learning techniques
US9367872B1 (en) 2014-12-22 2016-06-14 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive investigation of bad actor behavior based on automatic clustering of related data in various data structures
US10362133B1 (en) 2014-12-22 2019-07-23 Palantir Technologies Inc. Communication data processing architecture
US10452651B1 (en) 2014-12-23 2019-10-22 Palantir Technologies Inc. Searching charts
US9870205B1 (en) 2014-12-29 2018-01-16 Palantir Technologies Inc. Storing logical units of program code generated using a dynamic programming notebook user interface
US9335911B1 (en) 2014-12-29 2016-05-10 Palantir Technologies Inc. Interactive user interface for dynamic data analysis exploration and query processing
US9817563B1 (en) 2014-12-29 2017-11-14 Palantir Technologies Inc. System and method of generating data points from one or more data stores of data items for chart creation and manipulation
US10372879B2 (en) 2014-12-31 2019-08-06 Palantir Technologies Inc. Medical claims lead summary report generation
US11302426B1 (en) 2015-01-02 2022-04-12 Palantir Technologies Inc. Unified data interface and system
US10387834B2 (en) 2015-01-21 2019-08-20 Palantir Technologies Inc. Systems and methods for accessing and storing snapshots of a remote application in a document
US9727560B2 (en) 2015-02-25 2017-08-08 Palantir Technologies Inc. Systems and methods for organizing and identifying documents via hierarchies and dimensions of tags
US9891808B2 (en) 2015-03-16 2018-02-13 Palantir Technologies Inc. Interactive user interfaces for location-based data analysis
US9886467B2 (en) 2015-03-19 2018-02-06 Plantir Technologies Inc. System and method for comparing and visualizing data entities and data entity series
US9348880B1 (en) 2015-04-01 2016-05-24 Palantir Technologies, Inc. Federated search of multiple sources with conflict resolution
US10103953B1 (en) 2015-05-12 2018-10-16 Palantir Technologies Inc. Methods and systems for analyzing entity performance
US10628834B1 (en) 2015-06-16 2020-04-21 Palantir Technologies Inc. Fraud lead detection system for efficiently processing database-stored data and automatically generating natural language explanatory information of system results for display in interactive user interfaces
US9418337B1 (en) 2015-07-21 2016-08-16 Palantir Technologies Inc. Systems and models for data analytics
US9392008B1 (en) 2015-07-23 2016-07-12 Palantir Technologies Inc. Systems and methods for identifying information related to payment card breaches
US9454785B1 (en) 2015-07-30 2016-09-27 Palantir Technologies Inc. Systems and user interfaces for holistic, data-driven investigation of bad actor behavior based on clustering and scoring of related data
US9996595B2 (en) 2015-08-03 2018-06-12 Palantir Technologies, Inc. Providing full data provenance visualization for versioned datasets
US9456000B1 (en) 2015-08-06 2016-09-27 Palantir Technologies Inc. Systems, methods, user interfaces, and computer-readable media for investigating potential malicious communications
US9600146B2 (en) 2015-08-17 2017-03-21 Palantir Technologies Inc. Interactive geospatial map
US10489391B1 (en) 2015-08-17 2019-11-26 Palantir Technologies Inc. Systems and methods for grouping and enriching data items accessed from one or more databases for presentation in a user interface
US10102369B2 (en) 2015-08-19 2018-10-16 Palantir Technologies Inc. Checkout system executable code monitoring, and user account compromise determination system
US9671776B1 (en) 2015-08-20 2017-06-06 Palantir Technologies Inc. Quantifying, tracking, and anticipating risk at a manufacturing facility, taking deviation type and staffing conditions into account
US10853378B1 (en) 2015-08-25 2020-12-01 Palantir Technologies Inc. Electronic note management via a connected entity graph
US11150917B2 (en) 2015-08-26 2021-10-19 Palantir Technologies Inc. System for data aggregation and analysis of data from a plurality of data sources
US9485265B1 (en) 2015-08-28 2016-11-01 Palantir Technologies Inc. Malicious activity detection system capable of efficiently processing data accessed from databases and generating alerts for display in interactive user interfaces
US10706434B1 (en) 2015-09-01 2020-07-07 Palantir Technologies Inc. Methods and systems for determining location information
US9984428B2 (en) 2015-09-04 2018-05-29 Palantir Technologies Inc. Systems and methods for structuring data from unstructured electronic data files
US9639580B1 (en) 2015-09-04 2017-05-02 Palantir Technologies, Inc. Computer-implemented systems and methods for data management and visualization
US9576015B1 (en) 2015-09-09 2017-02-21 Palantir Technologies, Inc. Domain-specific language for dataset transformations
US10296617B1 (en) 2015-10-05 2019-05-21 Palantir Technologies Inc. Searches of highly structured data
US9424669B1 (en) 2015-10-21 2016-08-23 Palantir Technologies Inc. Generating graphical representations of event participation flow
US10223429B2 (en) 2015-12-01 2019-03-05 Palantir Technologies Inc. Entity data attribution using disparate data sets
US10706056B1 (en) 2015-12-02 2020-07-07 Palantir Technologies Inc. Audit log report generator
US9514414B1 (en) 2015-12-11 2016-12-06 Palantir Technologies Inc. Systems and methods for identifying and categorizing electronic documents through machine learning
US9760556B1 (en) 2015-12-11 2017-09-12 Palantir Technologies Inc. Systems and methods for annotating and linking electronic documents
US10114884B1 (en) 2015-12-16 2018-10-30 Palantir Technologies Inc. Systems and methods for attribute analysis of one or more databases
US9542446B1 (en) 2015-12-17 2017-01-10 Palantir Technologies, Inc. Automatic generation of composite datasets based on hierarchical fields
US10373099B1 (en) 2015-12-18 2019-08-06 Palantir Technologies Inc. Misalignment detection system for efficiently processing database-stored data and automatically generating misalignment information for display in interactive user interfaces
US10089289B2 (en) 2015-12-29 2018-10-02 Palantir Technologies Inc. Real-time document annotation
US10871878B1 (en) 2015-12-29 2020-12-22 Palantir Technologies Inc. System log analysis and object user interaction correlation system
US9823818B1 (en) 2015-12-29 2017-11-21 Palantir Technologies Inc. Systems and interactive user interfaces for automatic generation of temporal representation of data objects
US9612723B1 (en) * 2015-12-30 2017-04-04 Palantir Technologies Inc. Composite graphical interface with shareable data-objects
US9792020B1 (en) 2015-12-30 2017-10-17 Palantir Technologies Inc. Systems for collecting, aggregating, and storing data, generating interactive user interfaces for analyzing data, and generating alerts based upon collected data
US11086640B2 (en) * 2015-12-30 2021-08-10 Palantir Technologies Inc. Composite graphical interface with shareable data-objects
US10698938B2 (en) 2016-03-18 2020-06-30 Palantir Technologies Inc. Systems and methods for organizing and identifying documents via hierarchies and dimensions of tags
US9652139B1 (en) 2016-04-06 2017-05-16 Palantir Technologies Inc. Graphical representation of an output
US10068199B1 (en) 2016-05-13 2018-09-04 Palantir Technologies Inc. System to catalogue tracking data
US10007674B2 (en) 2016-06-13 2018-06-26 Palantir Technologies Inc. Data revision control in large-scale data analytic systems
US10545975B1 (en) 2016-06-22 2020-01-28 Palantir Technologies Inc. Visual analysis of data using sequenced dataset reduction
US10909130B1 (en) 2016-07-01 2021-02-02 Palantir Technologies Inc. Graphical user interface for a database system
US10719188B2 (en) 2016-07-21 2020-07-21 Palantir Technologies Inc. Cached database and synchronization system for providing dynamic linked panels in user interface
US10324609B2 (en) 2016-07-21 2019-06-18 Palantir Technologies Inc. System for providing dynamic linked panels in user interface
US10437840B1 (en) 2016-08-19 2019-10-08 Palantir Technologies Inc. Focused probabilistic entity resolution from multiple data sources
US10552002B1 (en) 2016-09-27 2020-02-04 Palantir Technologies Inc. User interface based variable machine modeling
US10726507B1 (en) 2016-11-11 2020-07-28 Palantir Technologies Inc. Graphical representation of a complex task
US9842338B1 (en) 2016-11-21 2017-12-12 Palantir Technologies Inc. System to identify vulnerable card readers
US10318630B1 (en) 2016-11-21 2019-06-11 Palantir Technologies Inc. Analysis of large bodies of textual data
US11250425B1 (en) 2016-11-30 2022-02-15 Palantir Technologies Inc. Generating a statistic using electronic transaction data
US9886525B1 (en) 2016-12-16 2018-02-06 Palantir Technologies Inc. Data item aggregate probability analysis system
GB201621434D0 (en) 2016-12-16 2017-02-01 Palantir Technologies Inc Processing sensor logs
US10249033B1 (en) 2016-12-20 2019-04-02 Palantir Technologies Inc. User interface for managing defects
US10728262B1 (en) 2016-12-21 2020-07-28 Palantir Technologies Inc. Context-aware network-based malicious activity warning systems
US10360238B1 (en) 2016-12-22 2019-07-23 Palantir Technologies Inc. Database systems and user interfaces for interactive data association, analysis, and presentation
US11373752B2 (en) 2016-12-22 2022-06-28 Palantir Technologies Inc. Detection of misuse of a benefit system
US10460602B1 (en) 2016-12-28 2019-10-29 Palantir Technologies Inc. Interactive vehicle information mapping system
US10721262B2 (en) 2016-12-28 2020-07-21 Palantir Technologies Inc. Resource-centric network cyber attack warning system
US10762471B1 (en) 2017-01-09 2020-09-01 Palantir Technologies Inc. Automating management of integrated workflows based on disparate subsidiary data sources
US10133621B1 (en) 2017-01-18 2018-11-20 Palantir Technologies Inc. Data analysis system to facilitate investigative process
US10509844B1 (en) 2017-01-19 2019-12-17 Palantir Technologies Inc. Network graph parser
US10515109B2 (en) 2017-02-15 2019-12-24 Palantir Technologies Inc. Real-time auditing of industrial equipment condition
US10659521B2 (en) * 2017-03-13 2020-05-19 Lg Electronics Inc. Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method of transmitting broadcast signals and method of receiving broadcast signals
US10866936B1 (en) 2017-03-29 2020-12-15 Palantir Technologies Inc. Model object management and storage system
US10581954B2 (en) 2017-03-29 2020-03-03 Palantir Technologies Inc. Metric collection and aggregation for distributed software services
US10133783B2 (en) 2017-04-11 2018-11-20 Palantir Technologies Inc. Systems and methods for constraint driven database searching
US10563990B1 (en) 2017-05-09 2020-02-18 Palantir Technologies Inc. Event-based route planning
US10606872B1 (en) 2017-05-22 2020-03-31 Palantir Technologies Inc. Graphical user interface for a database system
US10795749B1 (en) 2017-05-31 2020-10-06 Palantir Technologies Inc. Systems and methods for providing fault analysis user interface
US10956406B2 (en) 2017-06-12 2021-03-23 Palantir Technologies Inc. Propagated deletion of database records and derived data
US11216762B1 (en) 2017-07-13 2022-01-04 Palantir Technologies Inc. Automated risk visualization using customer-centric data analysis
US10403011B1 (en) 2017-07-18 2019-09-03 Palantir Technologies Inc. Passing system with an interactive user interface
US10430444B1 (en) 2017-07-24 2019-10-01 Palantir Technologies Inc. Interactive geospatial map and geospatial visualization systems
US11281726B2 (en) 2017-12-01 2022-03-22 Palantir Technologies Inc. System and methods for faster processor comparisons of visual graph features
US11314721B1 (en) 2017-12-07 2022-04-26 Palantir Technologies Inc. User-interactive defect analysis for root cause
US10783162B1 (en) 2017-12-07 2020-09-22 Palantir Technologies Inc. Workflow assistant
US10769171B1 (en) 2017-12-07 2020-09-08 Palantir Technologies Inc. Relationship analysis and mapping for interrelated multi-layered datasets
US10877984B1 (en) 2017-12-07 2020-12-29 Palantir Technologies Inc. Systems and methods for filtering and visualizing large scale datasets
CN108182579B (zh) * 2017-12-18 2020-12-18 东软集团股份有限公司 用于规则判断的数据处理方法、装置、存储介质和设备
US11263382B1 (en) 2017-12-22 2022-03-01 Palantir Technologies Inc. Data normalization and irregularity detection system
US11599369B1 (en) 2018-03-08 2023-03-07 Palantir Technologies Inc. Graphical user interface configuration system
US10877654B1 (en) 2018-04-03 2020-12-29 Palantir Technologies Inc. Graphical user interfaces for optimizations
US10754822B1 (en) 2018-04-18 2020-08-25 Palantir Technologies Inc. Systems and methods for ontology migration
US10885021B1 (en) 2018-05-02 2021-01-05 Palantir Technologies Inc. Interactive interpreter and graphical user interface
US10754946B1 (en) 2018-05-08 2020-08-25 Palantir Technologies Inc. Systems and methods for implementing a machine learning approach to modeling entity behavior
US11119630B1 (en) 2018-06-19 2021-09-14 Palantir Technologies Inc. Artificial intelligence assisted evaluations and user interface for same
CN110895597B (zh) * 2018-09-12 2022-04-19 长鑫存储技术有限公司 转码逻辑函数计算方法、装置、存储介质及电子设备
CN109189807A (zh) * 2018-09-13 2019-01-11 北京奇虎科技有限公司 一种报警数据的过滤方法和装置
US11126638B1 (en) 2018-09-13 2021-09-21 Palantir Technologies Inc. Data visualization and parsing system
US11294928B1 (en) 2018-10-12 2022-04-05 Palantir Technologies Inc. System architecture for relating and linking data objects
CN111078026B (zh) * 2019-11-15 2023-10-03 北京乐我无限科技有限责任公司 一种输入提示方法、装置、电子设备及可读存储介质
CN113377419A (zh) * 2021-05-31 2021-09-10 同盾科技有限公司 一种业务处理方法、装置、可读存储介质及电子设备
CN115703475A (zh) * 2021-08-06 2023-02-17 沃尔沃汽车公司 车辆-用户交互系统和交互方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1294712A (zh) * 1997-03-25 2001-05-09 英特尔公司 计算机间传输的数据的动态代码转换系统
WO2001044933A2 (en) * 1999-12-15 2001-06-21 Sun Microsystems, Inc. System and method for creating a graphical user interface from a filter expression tree

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6226630B1 (en) * 1998-07-22 2001-05-01 Compaq Computer Corporation Method and apparatus for filtering incoming information using a search engine and stored queries defining user folders
US7133400B1 (en) * 1998-08-07 2006-11-07 Intel Corporation System and method for filtering data
US6347087B1 (en) * 1998-10-05 2002-02-12 Packet Engines Incorporated Content-based forwarding/filtering in a network switching device
US6624761B2 (en) * 1998-12-11 2003-09-23 Realtime Data, Llc Content independent data compression method and system
US6298340B1 (en) * 1999-05-14 2001-10-02 International Business Machines Corporation System and method and computer program for filtering using tree structure
US7685252B1 (en) * 1999-10-12 2010-03-23 International Business Machines Corporation Methods and systems for multi-modal browsing and implementation of a conversational markup language
US6473763B1 (en) * 2000-03-31 2002-10-29 International Business Machines Corporation System, method and computer program for filtering multi-action rule set
US20020049705A1 (en) * 2000-04-19 2002-04-25 E-Base Ltd. Method for creating content oriented databases and content files
US20020099829A1 (en) * 2000-11-27 2002-07-25 Richards Kenneth W. Filter proxy system and method
US6944154B2 (en) * 2000-12-06 2005-09-13 International Business Machines Corporation System and method for remultiplexing of a filtered transport stream with new content in real-time
US7242324B2 (en) * 2000-12-22 2007-07-10 Sony Corporation Distributed on-demand media transcoding system and method
US7120702B2 (en) * 2001-03-03 2006-10-10 International Business Machines Corporation System and method for transcoding web content for display by alternative client devices
US7203692B2 (en) * 2001-07-16 2007-04-10 Sony Corporation Transcoding between content data and description data
US7383347B2 (en) * 2001-07-18 2008-06-03 International Business Machines Corporation Method and apparatus for providing extensible scalable transcoding of multimedia content
US7432940B2 (en) * 2001-10-12 2008-10-07 Canon Kabushiki Kaisha Interactive animation of sprites in a video production
JP3886362B2 (ja) * 2001-11-13 2007-02-28 富士通株式会社 コンテンツフィルタリング方法、コンテンツフィルタリング装置およびコンテンツフィルタリングプログラム
US7551629B2 (en) * 2002-03-28 2009-06-23 Precache, Inc. Method and apparatus for propagating content filters for a publish-subscribe network
WO2003088611A1 (de) * 2002-04-12 2003-10-23 Siemens Aktiengesellschaft Repräsentation bool'scher ausdrücke zur spezifikation von filtern mittels xml
US9124447B2 (en) * 2002-07-26 2015-09-01 International Business Machines Corporation Interactive client computer communication
FR2847693B1 (fr) * 2002-11-22 2005-02-25 Bosch Gmbh Robert Procede de conception d'une forme assistee par ordinateur et procede de construction d'une piece ainsi concue
US20040158741A1 (en) * 2003-02-07 2004-08-12 Peter Schneider System and method for remote virus scanning in wireless networks
US20050108176A1 (en) * 2003-04-30 2005-05-19 Jarol Scott B. Configurable rules based content item consumption
US20050132264A1 (en) * 2003-12-15 2005-06-16 Joshi Ajit P. System and method for intelligent transcoding
US7822801B2 (en) * 2004-10-14 2010-10-26 International Business Machines Corporation Subscription propagation in a high performance highly available content-based publish/subscribe system
US7801874B2 (en) * 2004-10-22 2010-09-21 Mahle Powertrain Llc Reporting tools
US7606832B2 (en) * 2004-11-12 2009-10-20 International Business Machines Corporation System and method for orchestrating composite web services in constrained data flow environments
US7545978B2 (en) * 2005-07-01 2009-06-09 International Business Machines Corporation Methods and apparatus for filtering video packets for large-scale video stream monitoring
US8407778B2 (en) * 2005-08-11 2013-03-26 International Business Machines Corporation Apparatus and methods for processing filter rules
US7984180B2 (en) * 2005-10-20 2011-07-19 Solarflare Communications, Inc. Hashing algorithm for network receive filtering
US20070112826A1 (en) * 2005-11-10 2007-05-17 Vixs Systems, Inc. Multimedia transcoding based on remaining storage capacity
JP4844150B2 (ja) * 2006-02-09 2011-12-28 富士ゼロックス株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
US9251520B2 (en) * 2006-02-22 2016-02-02 Google Inc. Distributing mobile advertisements
JP2008084128A (ja) * 2006-09-28 2008-04-10 Toshiba Corp 構造化文書の要素指定装置、要素指定方法及び要素指定プログラム
US8249992B2 (en) * 2007-03-22 2012-08-21 The Nielsen Company (Us), Llc Digital rights management and audience measurement systems and methods
US8442928B2 (en) * 2007-11-09 2013-05-14 Vantrix Corporation Method and apparatus for employing rules to filter streaming data
US8478764B2 (en) * 2007-11-09 2013-07-02 Vantrix Corporation Method and apparatus for concurrent filtering of multiple components of streaming data
US8447718B2 (en) * 2007-11-09 2013-05-21 Vantrix Corporation Method and apparatus for filtering streaming data
US8019709B2 (en) * 2007-11-09 2011-09-13 Vantrix Corporation Method and system for rule-based content filtering
US10070164B2 (en) * 2008-01-10 2018-09-04 At&T Intellectual Property I, L.P. Predictive allocation of multimedia server resources
US9135363B2 (en) * 2009-06-09 2015-09-15 Gvoto (Hong Kong) Ltd. Methods and systems for automatic content retrieval and organization
US9491409B2 (en) * 2009-10-30 2016-11-08 Comcast Cable Communications, Llc Network interface to content source
US8732784B2 (en) * 2010-12-07 2014-05-20 At&T Intellectual Property I, L.P. Hierarchical storage management for data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1294712A (zh) * 1997-03-25 2001-05-09 英特尔公司 计算机间传输的数据的动态代码转换系统
WO2001044933A2 (en) * 1999-12-15 2001-06-21 Sun Microsystems, Inc. System and method for creating a graphical user interface from a filter expression tree

Also Published As

Publication number Publication date
JP2011505611A (ja) 2011-02-24
EP2206308A1 (en) 2010-07-14
JP5659397B2 (ja) 2015-01-28
US20090126020A1 (en) 2009-05-14
EP2218235A4 (en) 2013-10-09
US20090125459A1 (en) 2009-05-14
JP5275362B2 (ja) 2013-08-28
WO2009059420A1 (en) 2009-05-14
EP2206308A4 (en) 2013-08-21
IL204725A (en) 2015-02-26
KR20100098385A (ko) 2010-09-06
CA3105860A1 (en) 2009-05-14
IL204725A0 (en) 2010-11-30
KR101451285B1 (ko) 2014-10-15
WO2009059419A8 (en) 2010-07-15
WO2009059420A8 (en) 2010-07-15
CA2703092C (en) 2021-08-03
CN101849399A (zh) 2010-09-29
CN103886376A (zh) 2014-06-25
CA2703092A1 (en) 2009-05-14
CA2703107C (en) 2016-08-16
WO2009059419A1 (en) 2009-05-14
EP2218235A1 (en) 2010-08-18
JP2013178815A (ja) 2013-09-09
CA2703107A1 (en) 2009-05-14
CN101849399B (zh) 2014-06-11
US8019709B2 (en) 2011-09-13
KR20140095111A (ko) 2014-07-31

Similar Documents

Publication Publication Date Title
CN103886376B (zh) 用于基于规则的内容过滤的系统和方法
CN103081430B (zh) 用于过滤流数据的方法和装置
CN106682097A (zh) 一种处理日志数据的方法和装置
CA2936218C (en) Method and apparatus for concurrent filtering of multiple components of streaming data
CN106648859A (zh) 一种任务调度方法和装置
CN106682096A (zh) 一种日志数据的管理方法和装置
US8442928B2 (en) Method and apparatus for employing rules to filter streaming data
CN107871055A (zh) 一种数据分析方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170825

Termination date: 20191107

CF01 Termination of patent right due to non-payment of annual fee