IP Library Granted Patent US 9,489,451
Granted Patent B2
US 9,489,451 · App. 13/910,468 · Granted Nov 8, 2016

Visual data definition for identifying data items in loosely-structured data

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 9,489,451
App. No.
13/910,468
Granted
Nov 8, 2016
Kind
B2
Abstract

A computer-implemented method is provided for identifying items in loosely-structured data. The method generally includes constructing a composite data definition for items which are to be identified and parsing input data using the data definition. The composite data definition is constructed by defining a layout for a composite data definition, where the layout indicates at least one of positional relationship of data items to each other and positional information for data items in the loosely-structured data; arranging data items in the layout, where each data item in the layout has a common meaning for applications that use the data item; creating an identification order list for the composite data definition, where the identification order list includes the data items in the layout and specifies an order in which the data items comprising the composite data definition are to be identified within the loosely-structured data.

Claims (55)

1. A computer-implemented method for defining a structure for items to be identified in loosely-structured data, comprising:

defining a layout for a composite data definition, where the layout indicates at least one of positional relationship of data items to each other and positional information for data items in the loosely-structured data;

arranging data items in the layout, where each data item in the layout has a common meaning for applications that use the data item;

creating an identification order list for the composite data definition, where the identification order list includes the data items in the layout and specifies an order in which the data items comprising the composite data definition are to be identified within the loosely-structured data;

receiving loosely-structured input data; and

parsing the input data to identify data items therein using the layout and the identification order list of the composite data definition, where the data items in the layout are searched for in the order specified by the identification order list and the order specified in the identification order list differs from the arrangement of the data items in the layout of the composite data definition and the method is implemented by computer-executable instructions executed by a computer processor.

2. The method of claim 1 further comprises defining a set of core attributes which may be associated with data items, where the attributes are selected from a group comprised of length of data item, minimum length of data item, maximum length of data item, list of values for the data item, pattern of characters which comprise a data item, case-sensitivity of characters which comprise a data item and a reference to a layout.

3. The method of claim 1 further comprises assigning an identification property to a given data item in the layout after the given data item has been arranged in the layout.

4. The method of claim 2 further comprises assigning a search direction in a search domain for a given data item in the layout, where the search direction is assigned in accordance with placement of the given data item in the layout.

5. The method of claim 2 further comprises specifying a given data item in the layout as being an optional part of the composite data definition.

6. The method of claim 2 further comprises assigning a location method to a given data item in the layout, where the location method specifies a method by which to locate the given data item in the input data.

7. The method of claim 2 further comprises assigning a validation method for a given data item in the layout, where the validation method specifies a method by which to validate a value of the given data item during parsing.

8. The method of claim 2 further comprises specifying a given data item in the layout as being either a prefix or a suffix such that data identified as the given data item is associated with a data item that follows or precedes the given data item, respectively.

9. The method of claim 2 further comprises specifying a logical condition for a given data item, where the logical condition specifies a condition by which to identify the given data item during parsing.

10. The method of claim 1 further comprises:

receiving a composite data definition comprised of two or more data items and at least one dependency between the two or more data items, where each data item has a common meaning for applications that use the data item;

assigning a discoverer to each data item associated with the composite data definition, where a discoverer for a given data item is comprised of a group of steps for identifying the given data item in the loosely-structured data;

identifying a dependency between the two or more data items associated with the composite data definition;

assigning a discoverer to the identified dependency, where a discoverer for a given dependency is comprised of a group of steps for identifying the dependency of data items in the loosely-structured data;

iteratively performing the steps of identifying a dependency and assigning a discoverer to the identified dependency for all of the dependencies associated with the composite data definition;

receiving input data; and

parsing the input data to identify data items by executing discoverers associated with the composite data definition, where the parsing is implemented by computer-executable instructions executed by a computer processor.

11. The method of claim 10 further comprises

identifying a dependency between two assigned discoverers;

assigning a complex discoverer to the identified dependency between the two assigned discoverers.

12. The method of claim 10 wherein the discoverer for a given data item operates to determine a search domain for the given data item in the input data, tracks whether the given data item is found in the input data, and reports an outcome of the discoverer to another discoverer having an ancestral relationship therewith.

13. The method of claim 12 wherein the discover reports the outcome to the another discoverer when the given data item is successfully identified.

14. The method of claim 10 further comprises constructing the collection of preconfigured discoverers, where the collection of preconfigured discoverers includes a discoverer that identifies all data item belonging to a scan layout, a discoverer that identifies a data item based on one or more delimiters, a discoverer that identifies a data item that contains multiple occurrences and a discoverer that identifies a data item associated with a complex layout.

15. The method of claim 10 further comprises

constructing a given location method which functions to locate a given data item;

associating the given location method with the discoverer for the given data item, where the given location method is associated based on an attribute assigned to the given data item.

16. The method of claim 10 further comprises

constructing a given validation method which functions to validate a given data item; and

associating the given validation method with the discoverer for the given data item, where the given validation method is associated based on an attribute assigned to the given data item.

17. The method of claim 10 wherein parsing the input data further comprises executing discoverers in accordance with an identification order list associated with the composite data definition, where the identification order list specifies an order in which the data items comprising the composite data definition are to be identified in the input data.

18. A computer-implemented method for defining a structure for items to be identified in loosely-structured data, comprising:

assigning a name to a composite data definition using a visual editor, where the visual editor is implemented by computer-executable instructions executed by a computer processor;

selecting, via the visual editor, a first data item from a listing of data items, where the first data item has a common meaning for applications that use the first data item and includes one or more properties associated therewith;

arranging, via the visual editor, the first data item in a layout for the composite data definition;

creating an identification order list for the composite data definition, where the identification order list includes the first data item and specifies an order in which data items comprising the composite data definition are to be identified within the loosely-structured data;

selecting, via the visual editor, a second data item from the listing of data items;

arranging, via the visual editor, the second data item in relation to the first data item within the layout;

adding the second data item to the identification order list, where the order of the data items in the identification order list is in accordance with the arrangement of the first data time in relation to the second data item in the layout;

receiving input data; and

parsing the input data to identify items therein using the layout and the identification order list of the composite data definition, where the data items in the layout are searched for in the order specified by the identification order list and the order specified in the identification order list differs from the arrangement of the data items in the layout of the composite data definition.

19. The method of claim 18 further comprises assigning a search direction for the first data item in a search domain, where the search direction is assigned in accordance with placement of the first data item in the layout.

20. The method of claim 18 further comprises defining a set of core attributes which may be associated with data items, where the attributes are selected from a group comprised of length of data item, minimum length of data item, maximum length of data item, list of values for the data item, pattern of characters which comprise a data item, case-sensitivity of characters which comprise a data item and a reference to a layout.

21. The method of claim 18 further comprises assigning an identification property to a given data item in the layout after the given data item has been arranged in the layout.

22. The method of claim 21 further comprises assigning a search direction in a search domain for a given data item in the layout, where the search direction is assigned in accordance with placement of the given data item in the layout.

23. The method of claim 21 further comprises specifying a given data item in the layout as being an optional part of the composite data definition.

24. The method of claim 21 further comprises specifying a given data item in the layout as having multiple occurrences in the input data.

25. The method of claim 21 further comprises assigning a location method to a given data item in the layout, where the location method specifies a method by which to locate the given data item in the input data.

26. The method of claim 21 further comprises assigning a validation method for a given data item in the layout, where the validation method specifies a method by which to validate a value of the given data item during parsing.

27. The method of claim 21 further comprises specifying a given data item in the layout as being either a prefix or a suffix such that data identified as the given data item is associated with a data item that follows or precedes the given data item, respectively.

28. The method of claim 21 further comprises specifying a logical condition for a given data item, where the logical condition specifies a condition by which to identify the given data item during parsing.

Assignments (18)
GRANT OF FIRST LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0628 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0568 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052842/0166) Recorded Aug 5, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC. (AS SUCCESSOR-BY-MERGER TO COMPUWARE CORPORATION)
Reel/Frame 068316/0566 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052842/0277) Recorded Aug 5, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC. (AS SUCCESSOR-BY-MERGER TO COMPUWARE CORPORATION)
Reel/Frame 068316/0868 →
OMNIBUS ASSIGNMENT OF SECURITY INTERESTS IN PATENT COLLATERAL Recorded Mar 4, 2024
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS RESIGNING COLLATERAL AGENT
To: GOLDMAN SACHS BANK USA, AS SUCCESSOR COLLATERAL AGENT
Reel/Frame 066729/0889 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 1, 2024
From: ALTER DOMUS (US) LLC
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 066567/0283 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Sep 30, 2021
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 057683/0582 →
MERGER Recorded Apr 13, 2021
From: COMPUWARE CORPORATION
To: BMC SOFTWARE, INC.
Reel/Frame 055906/0332 →
SECURITY INTEREST Recorded Jun 4, 2020
From: COMPUWARE CORPORATION
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052842/0166 →
SECURITY INTEREST Recorded Jun 4, 2020
From: COMPUWARE CORPORATION
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052842/0277 →
SECURITY INTEREST Recorded Jun 4, 2020
From: COMPUWARE CORPORATION; BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE, AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 053467/0434 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT R/F 46690/0954 Recorded Jun 2, 2020
From: JEFFERIES FINANCE LLC
To: COMPUWARE CORPORATION
Reel/Frame 052806/0847 →
SECURITY INTEREST Recorded Aug 24, 2018
From: COMPUWARE CORPORATION
To: JEFFERIES FINANCE LLC
Reel/Frame 046690/0954 →
RELEASE OF FIRST LIEN PATENT SECURITY AGREEMENT RECORDED AT REEL\FRAME 035200\0973 AND 035200\0955 Recorded Aug 23, 2018
From: JEFFERIES FINANCE LLC
To: DYNATRACE LLC; COMPUWARE CORPORATION
Reel/Frame 046922/0886 →
TERMINATION OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 035201/0065 Recorded Feb 14, 2018
From: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
To: COMPUWARE CORPORATION
Reel/Frame 045325/0384 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Mar 13, 2015
From: COMPUWARE CORPORATION
To: JEFFERIES FINANCE, LLC
Reel/Frame 035200/0973 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Mar 13, 2015
From: COMPUWARE CORPORATION
To: JEFFERIES FINANCE, LLC
Reel/Frame 035201/0065 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 5, 2013
From: DEAN, HESHAM; LIPIN, ANDREW; MICHALEK, GARY; SZYDLOWSKI, BARBARA
To: COMPUWARE CORPORATION
Reel/Frame 030550/0512 →