IP Library Granted Patent US 8,447,718
Granted Patent B2
US 8,447,718 · App. 12/869,635 · Granted May 21, 2013

Method and apparatus for filtering streaming data

Inventors: Richard Elliott Norton (Ste-Genevieve, CA); Louis-Rene Poirier-Beauchemin (Montreal, CA); Robert Héroux (Montreal, CA); Mario Joseph Leo Claude Lavalliere (Mascouche, CA)
Assignee: Vantrix Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,447,718
App. No.
12/869,635
Granted
May 21, 2013
Kind
B2
Abstract

A method of content filtering of data containers of multiple content types is based on generating a set of encoded filters and a set of encoded rules for each content type. Each encoded filter is expressed as a respective operator, from among user-defined operators, and two operands including a content descriptor and a descriptor criterion. A filter has a binary state and a rule may be based on a single filter or a number of selected filters. An apparatus implementing the method has a user interface for receiving user-defined configuration data, a configuration module for generating a set of encoded filters and a set of encoded rules for each content type, a network interface for receiving data containers from a network and transmitting filtered data containers to the network, and a filtering module for applying the rules to received data containers.

Claims (93)

1. A device for data-stream filtering, comprising:

a user interface for receiving:

a set of content types;

a set of content descriptors;

a set of descriptors' criteria;

a set of operators;

a set of filter definitions; and

a set of rule definitions;

a configuration module storing processor-readable instructions which cause a first processor to:

generate encoded filters based on said filter definitions, each encoded filter having a binary state determined by an operator, a content descriptor, and a descriptor criterion;

generate encoded rules based on said rule definitions, each encoded rule having a binary outcome determined according to a binary state of each of at least one filter; and

arrange said encoded rules in hierarchical rule strata where rules within a rule stratum are independent of each other and rules of a rule stratum beyond a root stratum depend on rules of preceding rule strata;

a rule-memory device for storing said encoded rules, said encoded filters, and descriptor definitions;

a network interface for receiving data streams from a network; and

a filtering module for applying said encoded rules to said data streams.

2. The device of claim 1 further comprising an action-memory device for storing a set of actions each action implemented as processor-readable instructions which cause a processor to perform a corresponding editing function of a data container of a data stream.

3. The device of claim 2 further comprising a description-memory device for storing a set of action-descriptions, each action-description containing a natural-language description of a corresponding action within said set of actions.

4. The device of claim 2 further comprising an instructions memory storing processor-readable instructions which cause a second processor to:

extract data containers from said data streams;

parse each data container into components;

determine a content type for each component;

evaluate specific encoded filters and specific encoded rules pertinent to said content type; and

perform actions according to values of said specific encoded rules.

5. The device of claim 4 further comprising processor-readable instructions stored in said instructions memory which cause said second processor to

read a description of each action performed on said each data container from said description-memory device; and

insert said description of said each action in said each data container.

6. The device of claim 1 further comprising instructions stored in a memory device of said configuration module which cause said first processor to arrange said encoded rules in

at least one rule tree wherein each rule in each rule tree has a binary outcome and is followed by one of two actions and wherein at least one rule has at least one successor rule.

7. A device for content filtering of data containers, comprising:

a first data-memory device storing:

a set of content types;

a set of content descriptors;

a set of descriptors' criteria; and

a set of operators;

a first instructions-memory device having stored thereon a first set of processor readable instructions which cause a first processor to:

prompt a user to define a set of filters, each filter specifying a content type, a content descriptor, a descriptor criterion, and an operator;

encode said each filter to produce a set of encoded filters;

prompt said user to define a set of rules;

encode said rules to produce a set of encoded rules; and

prompt said user to select an order of exercising said encoded rules for each content type to produce a set of content-specific ordered rules;

and

a second instructions-memory device having stored thereon a second set of processor readable instructions which cause a second processor to:

parse each data container into components;

determine a content type of each component; and

apply a respective set of ordered rules to said each component.

8. The device of claim 7 further comprising a memory device storing processor-readable instructions which cause said first processor to arrange said set of content-specific ordered rules in at least one rule tree, each rule tree of said at least one rule tree having:

a respective number μ of rules, μ>1, labeled as R 0 to R μ-1 ; and

a number 2×μ of actions, labeled as A 1 to A 2μ ,

wherein rule R j , 0≦j<μ, resolves to one of two states, 0 and 1, and results in one of two actions A 2j+1 and A 2j+2 .

9. The device of claim 8 wherein at least one rule R j , 0≦j<(μ−1)/2, proceeds to one of two rules R 2j+1 and R 2j+2 .

10. The device of claim 9 wherein said second set of processor-readable instructions cause said second processor to:

evaluate a rule R j , 0≦j<μ;

apply action A 2j+1 in response to an indication that R j , resolves to 0; and

apply action A 2j+2 in response to an indication that R j , resolves to 1.

11. The device of claim 7 further comprising processor readable instructions, stored in said first instructions-memory device, which cause said first processor to:

prompt said user to specify, for each rule, two actions and two succeeding rules from among said set of rules, wherein at least one rule has null succeeding rules;

and

sort said set of rules into a number of strata, wherein rules within a stratum are independent of each other and rules of a stratum beyond the first stratum depend on rules of any of preceding strata.

12. The device of claim 7 further comprising a memory device storing processor-readable instructions which cause said first processor to:

display said set of content descriptors, said set of criteria, and said operators to facilitate defining said set of filters;

display said set of encoded filters to facilitate defining said set of rules; and

display said set of encoded rules to facilitate selecting said order of exercising said encoded rules.

13. The device of claim 7 wherein a rule in said set of rules is defined according to one of:

a single filter; and

a Boolean function of at least two filters.

14. A method of content filtering of data containers, the method comprising employing at least one processor and at least one memory device storing processor-executable instructions for:

receiving from a user definitions of content types, content descriptors, descriptors' criteria, filters, and rules;

generating for each said content type, based on said definitions:

a set of encoded filters, each encoded filter having a binary state and expressed as a respective operator, from among user-specified operators, and two operands including a content descriptor and a descriptor criterion;

and

a set of rules, every rule of which expressed as a user-specified function of binary states of selected filters;

receiving from a network a data container having components of different content types;

determining for each component a respective content type; and

assigning to said each component a respective set of rules pertinent to said respective content type.

15. The method of claim 14 further comprising:

receiving a set of actions, each action presented as a set of processor executable instructions; and

receiving identifications of actions, within said set of actions, performed by individual rules of said set of rules.

16. The method of claim 15 further comprising:

receiving a set of action-descriptions each action description corresponding to an action within said set of actions and containing a natural-language description of a respective action; and

storing said set of action-descriptions in a description-memory device.

17. The method of claim 16 further comprising:

determining a value of a selected rule from among said respective set of rules;

performing an action corresponding to a value of said selected rule;

reading a description of said action from said description-memory device; and

inserting said description in said data container.

18. The method of claim 14 further comprising:

acquiring user-defined priority of said content type;

sorting said components according to priority order of respective content types to produce sorted components; and

sequentially filtering said sorted components employing for each component of a specific content type a selected set of rules corresponding to said specific content type.

19. The method of claim 14 further comprising:

concurrently filtering said components, employing for said each component said respective set of rules, to produce filtered components; and

combining said filtered components into a single data stream.

20. The method of claim 14 further comprising pre-computing and storing said user-specified function for all binary states of said selected filters.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2021
From: VANTRIX CORPORATION
To: MASIMO CORPORATION
Reel/Frame 057394/0452 →
CHANGE OF COMPANY ADDRESS Recorded Nov 26, 2019
From: VANTRIX CORPORATION
To: VANTRIX CORPORATION
Reel/Frame 051136/0148 →
RELEASE OF SECURITY INTEREST Recorded Mar 21, 2017
From: NXT CAPITAL LLC
To: VANTRIX CORPORATION
Reel/Frame 042050/0722 →
CHANGE OF ADDRESS Recorded Mar 1, 2017
From: VANTRIX CORPORATION
To: VANTRIX CORPORATION
Reel/Frame 041845/0022 →
RELEASE OF SECURITY INTEREST Recorded Jun 14, 2013
From: WF FUND III LIMITED PARTNERSHIP, C.O.B. WELLINGTON FINANCIAL FUND III AND WELLINGTON FINANCIAL LP
To: VANTRIX CORPORATION
Reel/Frame 030615/0063 →
SECURITY AGREEMENT Recorded Mar 20, 2013
From: VANTRIX CORPORATION
To: NXT CAPITAL, LLC, ITS SUCCESSORS AND ASSIGNS
Reel/Frame 030053/0824 →
SECURITY AGREEMENT Recorded Mar 7, 2011
From: VANTRIX CORPORATION
To: WF FUND III LIMITED PARTNERSHIP, C.O.B. WELLINGTON FINANCIAL FUND III AND WELLINGTON FINANCIAL LP
Reel/Frame 025907/0804 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2010
From: NORTON, RICHARD ELLIOTT; POIRIER-BEAUCHEMIN, LOUIS-RENE; HEROUX, ROBERT; LAVALLIERE, JOSEPH LEO CLAUDE MARIO
To: VANTRIX CORPORATION
Reel/Frame 024901/0560 →
Continuity (3)
Continuation In Part 12266353 · Nov 6, 2008
Provisional Application 60986835 · Nov 9, 2007
Related Publication 20100332618A1 · Dec 30, 2010