This decision concerns a European patent application relating to data structures and methods for generating, accessing, and displaying lineage metadata, e.g. lineage of an element of data stored in a data storage system. The Examining Division (ED) refused the application for lack of inventive step. The applicant successfully appealed the decision. Here are the practical takeaways from the decision of T 2353/22 dated October 10, 2024, of Technical Board of Appeal (TBA) 3.5.07.
Key takeaways
A "data element" and a "transformation" are not further specified in the claim and can thus not be seen as technical entities except for the fact that they are stored in computer memory.
The fact that the ultimate goal of the claimed method is not technical is not sufficient to conclude that the whole implementation is not technical.
The skilled person searches a technical solution based on their ordinary technical skills, common general knowledge and knowledge of the prior art. Each claim feature, or each aspect of a claim feature, is either a contribution of the non-technical expert, e.g. an expert on graph models, in which case it can appear in the formulation of the technical problem to be solved, or a contribution of the technical expert, in which case it is part of the technical solution.
In the assessment of technical contribution and inventive step, the claim should not be analysed as a collection of disconnected terms but as a whole.
The data structure specified in the claim serves the technical purpose of providing access to the data stored in memory and thus makes a technical contribution.
The invention
The invention concerns a method, a system and a device for supporting the storage of, access to and display of lineage metadata about data stored in a storage system. The lineage metadata of a data object provides information about the sources from which the data object was derived. For instance, how the data object was generated, from which source it was imported, how it has been used by applications, how it relates to other datasets or how its modification will affect tables.
Fig. 3 of EP3549036
Here is how the invention was defined by independent claim 1:
-
Claim 1 (main request)
A method performed by a data processing apparatus, the method including: receiving a portion of metadata (106, 112A, 112B, 112C, 128) from a data source (110A, 110B, 110C), the portion of metadata (106, 112A, 112B, 112C, 128) describing nodes and edges, wherein each node represents a metadata object and at least some of the edges each represent a one-way effect of one node upon another node, each edge having a single direction, and wherein a metadata object is a data element (202A) or a transformation (204A); generating instances of a data structure (134, 300) representing the portion of metadata (106, 112A, 112B, 112C, 128) and storing the instances of the data structure (134, 300) in random access memory; at least a first instance of the instances of the data structure (134, 300) including: an identification value that identifies a node that corresponds to the first instance of the instances of the data structure (134, 300), one or more property values representing respective properties of the corresponding node, and a pointer (320A, 320B) that includes a reference to a memory location (322A, 322B) associated with a portion of the random access memory, the portion of the random access memory storing a second instance of the instances of the data structure (134, 300) that corresponds to another node, the pointer (320A, 320B) representing an edge (316A-316D) associated with the other node that corresponds to the second instance of the instances of the data structure (134, 300), wherein the edge represents an effect the node that corresponds to the first instance has on the other node that corresponds to the second instance, or an effect the other node that corresponds to the second instance has on the node that corresponds to the first instance; receiving a query (114, 126) for lineage metadata, said query including an identification of at least one particular element of data, wherein the query (114, 126) includes an identification of a type of lineage and a walk plan (130, 132, 400) that identifies which types of nodes and edges are relevant to the identified type of lineage, and wherein the walk plan (130, 132, 400) includes conditions for following an edge or for collecting an edge or an instance of the data structure based on one or more property values representing respective properties of a corresponding node, wherein an edge is followed by accessing a memory location identified by a pointer representing the followed edge, and wherein an instance of a data structure is collected by adding data of the collected instance to lineage metadata to be returned in response to the query, and wherein an edge is collected by adding data representing the collected edge to lineage metadata to be returned in response to the query; and in response to receiving the query (114, 126), traversing the data structure (134) in accordance with the walk plan (130) to collect lineage metadata stored in the data structure (134) that is responsive to the query (114), including: accessing data stored using the data structure (134, 300), including accessing the first instance of the instances of the data structure (134, 300), the first instance of the instances of the data structure (134,300) identified by a first identifier that corresponds to the particular element of data identified by the query (114, 126); accessing the pointer (320A, 320B) of the first instance; accessing the second instance of the instances of the data structure (134, 300), the second instance of the instances of the data structure (134, 300) identified by a second identifier, the second identifier being stored at the memory location (322A, 322B) referenced by the pointer (320A, 320B) of the first instance; collecting data of the second instance of the instances of the data structure (134, 300); and based on the data stored using the data structure (134,300), generating a response to the query (114, 126), the response including the lineage metadata (106, 112A, 112B, 112C, 122, 128) responsive to the query, the lineage metadata (106, 112A, 112B, 112C, 122, 128) describing a sequence of nodes and edges, wherein one of the nodes of the sequence represents the particular element of data, and wherein the lineage metadata further includes data representing the other node that is associated with the second identifier; and sending the response containing the lineage metadata (106, 112A, 112B, 112C, 122, 128) to a computer system (116) for causing a display of the computer system (116) to display a representation of lineage of the particular element of data in form of a lineage diagram (200A-200E) generated based on the lineage metadata, wherein the relationship among the nodes shown in the lineage diagram (200A-200E) corresponds to the edge (316A-316D) represented by the pointer (320A, 320B).
Is it patentable?
The ED found that the independent claims of the main request lacked an inventive step:
5.1 In the decision under appeal, the examining division decided that the method of claim 1 defined "an abstract graph model of data lineage describing a network of nodes and edges, in the form of a customized query processing formulation" which was "void of any further technical considerations". The only features of claim 1 which were technical were the features "storing", "random access", "computer", and "for causing a display of the computer system". The application did not describe "any technical interaction between the apparent non-technical features and the technical features", besides the use of a computer to perform the method.
The examining division was of the opinion that no technical effect serving a technical purpose could be derived from the claim wording. The description disclosed non-technical purposes of the metadata, e.g. finding out the meaning of business terms, the relationship between those terms and the data to which the terms referred. These were non-technical aspects of an administrative task. In the context of general-purpose computers, pointers referencing memory locations inevitably had to be used. They were thus regarded as an integral part of the general purpose computer.
The TBA partially confirmed the ED's findings:
5.3 The board agrees with the decision under appeal that the lineage data itself should not be considered "a technical state of the underlying hardware", as argued by the appellant, or as "data about a technical process" or "conditions prevailing in an apparatus or system" within the meaning of decisions T 1670/07, T 115/85 and T 756/06 cited by the appellant. A "data element" and a "transformation" are not further specified in the claim and can thus not be seen as technical entities (see also T 1670/07, Reasons 12; T 756/06, Reasons 13), except for the fact that they are stored in computer memory. The display of lineage information thus corresponds to presentation of information as such under Article 52(2)(d) and (3) EPC and does not make a technical contribution.
The TBA then pointed out some deficiencies in the ED's decision:
5.4 However, the fact that the ultimate goal of the claimed method is not technical is not sufficient to conclude that the whole implementation is not technical (T 619/02, Reasons 2.1). The board agrees with the appellant that the reasoning of the decision under appeal is not convincing.
5.4.1 In the decision under appeal, the examining division identified the computer programmer as the skilled person (point 11.2.24) and described the "expert in graph models" as a non-technical expert who defines the set of requirement specifications (point 11.2.26). The examining division argued that the abstract graph model was given "to the skilled person who will use a computer to implement it without the use of any 'further technical considerations', let alone technical considerations of the internal functioning of the computer" (point 11.2.18). However, in the board's opinion, in the conventional problem-solution approach as further developed by decision T 641/00 (COMVIK approach), the skilled person solves the objective technical problem by technical means based on technical considerations. If that is not the case, either the skilled person is inaccurately defined or the non-technical features were not added to the formulation of the technical problem to be solved. According to the COMVIK approach, the skilled person is a fictional person skilled in a technical field, who has the task of technically implementing the non-technical requirements passed on to them as part of the technical problem to be solved. The skilled person searches a technical solution based on their ordinary technical skills, common general knowledge and knowledge of the prior art. Each claim feature, or each aspect of a claim feature, is either a contribution of the non-technical expert, e.g. an expert on graph models, in which case it can appear in the formulation of the technical problem to be solved, or a contribution of the technical expert, in which case it is part of the technical solution (see also decision T 2626/18, Reasons 4.13).
5.4.2 The same comment applies to the examining division's argument that "When automating the method on the computer system comprising a query processing method the computer programmer does not have to overcome any technical problem, commonplace programming skills and computer knowledge will suffice." (point 11.2.27).
In addition, this statement confuses commonplace features and/or obvious solutions with non-technical subject-matter by expressing that the programmer, who was identified as the technically skilled person, does not have to overcome any technical problem because only commonplace programming skills and computer knowledge are necessary.
It is true that since computer programming involves technical and non-technical aspects, it is difficult to distinguish between the "programmer as such" who, as long as they only develop abstract algorithms, are not a skilled person within the meaning of the case law, and the "technical programmer" (see also T 697/17, reasons 5.2.4). But in the decision under appeal, the programmer was identified as the skilled person who receives the objective technical problem.
5.4.3 The decision under appeal did not take into account all the claim features making a technical contribution.
Citing decision G 1/19 of the Enlarged Board of Appeal, the examining division argued correctly that "merely" performing a method, the result of which did not cause any "technical effect(s) on a physical entity in the real world", did not suffice to contribute to the technical character of the invention, and that "the mere calculation of the behaviour of a (technical) system as it exists on the computer, and the numerical output of such calculation, should not be equated with a technical effect" (see point 11.2.16). The board notes however, that according to decision G 1/19, "technical effects" or "technical interactions" do not occur only through the generation of "technical output". Technical contributions can result, for example, from "adaptations to the computer or its operation, which result in technical effects (e.g. better use of storage capacity or bandwidth)" and "technical effects can occur within the computer-implemented process (e.g. by specific adaptations of the computer or of data transfer or storage mechanisms)" (see pages 39 and 40, points c, 85 and 86).
Under point 14.2.1 of the decision under appeal, the examining division argued that "pointers referencing memory locations inevitably have to be used, therefore, they are regarded as an integral part of the general purpose computer that is always implicitly comprised within the general-purpose computer and its usage. Therefore, the reasoning of the applicant that the data structure with the pointer as claimed is a specific implementation is not convincing."
The board does not agree with this argument. In the assessment of technical contribution and inventive step, the claim should not be analysed as a collection of disconnected terms but as a whole (see e.g. T 731/17, Reasons 6.2 to 6.4; T 1272/20, Reasons 3.1). Even though a pointer to data in computer memory is commonplace, its purposive use in a method for retrieving data from computer memory makes a technical contribution (see e.g. T 1351/04, Reasons 7.2 to 7.4; T 697/17, Reasons 5.2.5; T 3176/19, Reasons 10.3) and cannot be ignored in the inventive-step assessment.
The data structure specified in the claim serves the technical purpose of providing access to the data stored in memory, as claimed for example in features (c3), (e) and (f) and thus makes a technical contribution.
In its preliminary opinion, the TBA introduced prior-art documents D2 to D9 into the appeal proceedings and document D2 was considered as the best starting point for assessing inventive step and closest prior art.
- Outcome
The TBA considered that the subject-matter of claim 1 of the main request involves an inventive step.
The case is remitted to the ED with the order to grant a patent.
More information
You can read the whole decision here: decision of T 2353/22 dated October 10, 2024, of Technical Board of Appeal (TBA) 3.5.07.
The content of this article is intended to provide a general guide to the subject matter. Specialist advice should be sought about your specific circumstances.