# US 8,751,536 B2 · Method and system for managing faceted data

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,751,536 B2
- Document ID: US8751536B2
- Status: Granted
- Kind: B2
- Application number: 12/324,829
- Filed: 2008-11-26
- Published: 2010-05-27
- Granted: 2014-06-10
- Earliest claimed: 2008-11-26
- Assignees: International Business Machines Corporation
- Applicants: Roberta J Cochrane; Stephanie J Hazlewood; Amira Nancy Taiyab; Patrice Pominville
- Inventors: Roberta J Cochrane; Stephanie J Hazlewood; Amira Nancy Taiyab; Patrice Pominville
- Web page: https://patentgrep.com/patent/US8751536B2

## CPC

- G06F 16/285: {Clustering or classification}
- G06F 9/449: {Object-oriented method invocation or resolution}
- G06F 9/4492: {Inheritance}
- G06F 16/284: {Relational databases}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method, system and computer-readable medium for performing hybrid processing of prescribed and dynamically defined attributes for one or more entity instances is provided in one or more implementations of the present invention. The inventive architecture of the present invention including a data structure having a dynamic object abstraction layer configured to: provide for storage and retrieval of facet data independent of one or more prescribed database structures and proprietary object definitions; provide facet attributes in an application object model; provide for defining a number of fixed fields for one or more entities; and, provide for defining and storing one or more dynamic fields for each instance of the one or more entities. The present invention further provides for an application object model being independent of application storage.

## Claims

### Claim 1

A system for hybrid processing of facet data having static and dynamic attributes comprising:
a processor;
a memory device coupled to the processor;
a database coupled to the memory device, wherein the database includes a data structure for storing and retrieving the facet data; and
a module coupled to the memory device which, when executed by the processor, causes the processor to provide a software platform, wherein the software platform includes:
a services layer for providing services that interact with the facet data utilizing a business objects module and abstraction layers,
an application persistence abstraction layer for supporting one or more application programming interfaces (APIs), implementing one or more methods of a base class object, providing representation of the static and dynamic attributes without having to instantiate a full object tree that is serialized, expanding at least one interpreted column retrieved from the database into named fields within the business object module, specifying the static and dynamic attributes to view or modify to facilitate data access optimizations, and setting values for the static and dynamic attributes,
a storage persistence abstraction layer for insulating the rest of the module from the data structure, and
a persistence mechanism for linking the software platform to the data structure.

### Claim 2 (depends on 1)

The system of claim 1, wherein the storing and retrieving of the facet data is independent of at least one prescribed database structure and a proprietary object definition.

### Claim 3 (depends on 1)

The system of claim 1, wherein the application persistence abstraction layer further provides for insulating the services from the static and dynamic attributes of the facet data.

### Claim 4 (depends on 1)

The system of claim 1, wherein the application persistence abstraction layer is a Java persistence abstraction layer and provides for supporting a DynamicAttribute interface.

### Claim 5 (depends on 4)

The system of claim 4, wherein the DynamicAttribute interface further comprises a public interface application programming interface (API).

### Claim 6 (depends on 4)

The system of claim 4, wherein the DynamicAttribute interface supports a “get by path” and a “set by path”.

### Claim 7 (depends on 1)

The system of claim 1, wherein the software platform is Java.

### Claim 8 (depends on 7)

The system of claim 7, wherein the persistence mechanism provides for one or more of:
storing data from Java objects into database tables of the data structure as records;
retrieving records from the database tables as Java objects;
updating records in the database tables with Java objects;
removing records in the database tables with Java;
searching records in the database tables with Java;
performing simple object/relational (O/R) mapping, including a no entity relationship or inheritance needs representation;
mapping of Java Bean attribute names to table column names;
super class mapping; and
SQL generation for create, read, update, delete (CRUD) operations.

### Claim 9 (depends on 1)

The system of claim 1, wherein the system further includes an application object model independent of application storage for the facet data and wherein the system further provides for storage representation substitution.

### Claim 10 (depends on 9)

The system of claim 9, wherein the data structure further includes a mapping mechanism to relationally map the business objects module to a database model.

### Claim 11 (depends on 10)

The system of claim 10, wherein the mapping mechanism is an Enhanced Java Beans 3 (EJB3) style mapping mechanism.

### Claim 12 (depends on 10)

The system of claim 10, wherein the storage persistence abstraction layer provides for one or more of:
insulating an application from one or more storage mechanisms used in the data structure;
providing a set of one or more APIs supporting queries needed by an upper layer;
identifying query types needed to support the database model and the services;
identifying a storage mechanism and parsing technology to be used for each storage/persistence medium and operating system supported; and
generating queries and user-defined functions to support a retrieval and update of the facet data.

### Claim 13 (depends on 1)

The system of claim 1, wherein the static and dynamic attributes of the facet data are determined from a Spec.

### Claim 14

A non-transitory computer-readable medium embodying computer-executable code that implements a software architecture for hybrid processing of facet data having static and dynamic attributes, the software architecture comprising:
a database including a data structure for storing and retrieving the facet data; and
a module coupled to the data to provide a software platform, wherein the software platform includes:
a services layer for providing services that interact with the facet data utilizing a business objects module and abstraction layers,
an application persistence abstraction layer for supporting one or more application programming interfaces (APIs), implementing one or more methods of a base class object, providing representation of the static and dynamic attributes without having to instantiate a full object tree that is serialized, expanding at least one interpreted column retrieved from the database into named fields within the business object module, specifying the static and dynamic attributes to view or modify to facilitate data access optimizations, and setting values for the static and dynamic attributes,
a storage persistence abstraction layer for insulating the rest of the module from the data structure, and
a persistence mechanism for linking the software platform to the data structure.

### Claim 15 (depends on 14)

The non-transitory computer-readable medium of claim 14, wherein the storing and retrieving of the facet data is independent of at least one prescribed database structure and a proprietary object definition.

### Claim 16

A method for hybrid processing of facet data having static and dynamic attributes, the method comprising:
providing a data structure for storing and retrieving the facet data;
providing a services layer for providing services that interact with the facet data utilizing a business objects module and abstraction layers;
providing an application persistence abstraction layer for supporting one or more application programming interfaces (APIs), implementing one or more methods of a base class object, providing representation of the static and dynamic attributes without having to instantiate a full object tree that is serialized, expanding at least one interpreted column retrieved from the database into named fields within the business object module, specifying the static and dynamic attributes to view or modify to facilitate data access optimizations, and setting values for the static and dynamic attributes,
providing a storage persistence abstraction layer for insulating the rest of the module from the data structure; and
providing a persistence mechanism for linking the software platform to the data structure.

### Claim 17 (depends on 16)

The method of claim 16, further comprising:
providing a mapping mechanism to relationally map the business objects module to a database model; and
providing an application object model independent of application storage for the facet data.

### Claim 18 (depends on 16)

The method of claim 16, wherein the storing and retrieving of the facet data is independent of at least one prescribed database structure and a proprietary object definition.

### Claim 19 (depends on 16)

The method of claim 16, wherein the application persistence abstraction layer further provides for insulating the services from the static and dynamic attributes of the facet data.

### Claim 20 (depends on 16)

The method of claim 16, wherein the application persistence abstraction layer is a Java persistence abstraction layer and provides for supporting a DynamicAttribute interface.

### Claim 21 (depends on 20)

The method of claim 20, wherein the DynamicAttribute interface supports a “get by path” and a “set by path”.

### Claim 22 (depends on 16)

The method of claim 16, wherein the persistence mechanism further provides for one or more of:
storing data from Java objects into database tables of the data structure as records;
retrieving records from the database tables as Java objects;
updating records in the database tables with Java objects;
removing records in the database tables with Java;
searching records in the database tables with Java;
performing simple object/relational (O/R) mapping, including a no entity relationship or inheritance needs representation;
mapping of Java Bean attribute names to table column names;
super class mapping; and
SQL generation for create, read, update, delete (CRUD) operations.

### Claim 23 (depends on 17)

The method of claim 17, wherein the storage persistence abstraction layer further provides for one or more of:
insulating an application from one or more storage mechanisms used in the data structure;
providing a set of one or more application programming interfaces (APIs) supporting queries needed by an upper layer;
identifying query types needed to support the database model and the services;
identifying a storage mechanism and parsing technology to be used for each storage/persistence medium and operating system supported; and
generating queries and user-defined functions to support a retrieval and update of the facet data.
