T 0761/11 (Graphical data flow programming environment/NATIONAL INSTRUMENTS CORPORATION) 08-10-2015
Download and more information:
GRAPHICAL DATA FLOW PROGRAMMING ENVIRONMENT WITH FIRST MODEL OF COMPUTATION THAT INCLUDES A STRUCTURE SUPPORTING SECOND MODEL OF COMPUTATION
I. The appeal is directed against the decision of the examining division, dated 16 September 2010, to refuse the application 05 750 094 for lack of inventive step over:
D1 W.-T. Chang et al.: "Heterogeneous Simulation-Mixing Discrete-Event Models with Dataflow", Journal of VLSI Signal Processing, Kluwer Academic Publishers, vol. 15, no. 1-2, January 1997, pages 127-144, XP2365986, ISSN 922-5773.
D2 J. Buck et al.: "Ptolemy: A Framework for Simulating and Prototyping Heterogeneous Systems", International Journal in Computer Simulation, Ablex Publishing Corp., Norwood/USA, vol. 4, January 1994, pages 155-182, XP614664, ISSN 1055-8470.
D5 H. A. Andrade et al.: "Software Synthesis from Dataflow Models for G and LabVIEW**(TM)", conference "Signals, Systems & Computers", 1-4 November 1998 , Piscataway/USA, IEEE, vol. 2, pages 1705-1709, XP10324477, ISBN 0-7803-5148-7.
The following document was also used in the examination procedure:
D3 US 2002/89538 A1, 11 July 2002.
II. A notice of appeal was received on 24 September 2010. The appeal fee was received the same day. A statement of the grounds of appeal was received on 11 January 2011. Claim sets of a main and two auxiliary requests were filed. Oral proceedings were requested.
III. In its summons to oral proceedings, the board gave reasons for its preliminary opinion that the independent claim of all requests lacked inventive step over D1.
IV. In a letter dated 3 September 2015, the appellant filed a further, second auxiliary request.
V. Oral proceedings were held on 8 October 2015. At their end, the board announced its decision.
VI. The appellant requests that the decision be set aside and a patent be granted on the basis of the main request filed with the grounds of appeal (identical to the request filed on 28 May 2010 and subject to the decision), the first auxiliary request filed with the grounds of appeal, the second auxiliary request filed with letter of 3 September 2015, or the third auxiliary request filed with the grounds of appeal as the then second auxiliary request.
The further text on file is: description pages 1-54 and drawing sheets 1-21 as originally filed.
VII. Claim 1 of the main request reads:
"1. A memory medium that stores program instructions for creating a graphical program, wherein the program instructions are executable to perform:
assembling (502, 602) a first plurality of graphical program elements in a graphical program in response to first input, wherein the assembled first plurality of graphical program elements comprise a plurality of interconnected graphical program elements, wherein the assembled first plurality of graphical program elements have a first model of computation, and wherein the first model of computation specifies a homogenous data flow model of computation;
displaying (504, 604) a structure in the graphical program in response to second input, wherein the structure comprises an interior portion, wherein the structure indicates use of a second model of computation for graphical program elements comprised within the interior portion of the structure; and
assembling (506, 606) a second plurality of graphical program elements within the interior portion of the structure in response to third input, wherein the assembled second plurality of graphical program elements comprised within the interior portion of the structure have the second model of computation and wherein the structure serves to demarcate between the first plurality of graphical program elements and the second plurality of graphical program elements;
wherein the graphical program is executable to perform a function."
VIII. Claim 1 of the first auxiliary request differs from the main request in that the last phrase starting with "wherein" is replaced by:
"wherein the graphical program is executable to perform a function, and wherein the second plurality of graphical program elements is converted depending on the target platform for the program, wherein the target platform is specified by the user."
IX. Claim 1 of the second auxiliary request differs from the first auxiliary request in that the following is added at the end:
"wherein said conversion process is performed on only that portion of the graphical program that has the second model of computation."
X. Claim 1 of the third auxiliary request reads (additions to the main request are in italics; deletions are [deleted: struck through]):
"1. A memory medium that stores program instructions for creating a graphical program, wherein the program instructions are executable to perform:
assembling ([deleted: 502, ]602) a first plurality of graphical program elements in a graphical program in response to first input, wherein the assembled first plurality of graphical program elements comprise a plurality of interconnected graphical program elements, wherein the assembled first plurality of graphical program elements have a first model of computation, and wherein the first model of computation specifies a homogenous data flow model of computation;
displaying ([deleted: 504, ]604) a structure in the graphical program in response to second input, wherein the structure comprises an interior portion, wherein the structure indicates use of a second model of computation for graphical program elements comprised within the interior portion of the structure; and
assembling ([deleted: 506, ]606) a second plurality of graphical program elements within the interior portion of the structure in response to third input, wherein the assembled second plurality of graphical program elements comprised within the interior portion of the structure have the second model of computation and wherein the structure serves to demarcate between the first plurality of graphical program elements and the second plurality of graphical program elements;
wherein the graphical program is executable to perform a function[deleted: .] and (608) wherein during compilation, the assembled second plurality of graphical program elements which operate in accordance with the second model of computation is converted or translated to graphical program elements that operate in accordance with the first model of computation, in order to be executed in accordance with the first model of computation."
1. Overview of the invention
The application relates to graphical programming where the user first enters ("assembles") a first graphical program based on a homogeneous data flow model of computation (the so-called "first model"; page 4, first paragraph). The user then enters into an "interior portion" of a "demarcating structure" of the graphical program a second graphical program based on a second model of computation (figures 5 and 6). The programs can be "software programs" for a computer or "hardware configuration programs" for a programmable hardware element such as an FPGA or a PLD (page 9, paragraphs 1, 3, and 4). Examples of models of computation given in the description (page 10, last paragraph) include data flow, control flow, state machine (e.g. finite state machine), actor, parallel random access machine, Turing machine, Petri nets and others. In the auxiliary requests, the second program is additionally converted either depending on a target platform entered by the user or into a graphical program of the first model of computation.
2. Overview of the decision
2.1 Claim 1 of the first auxiliary request satisfies the requirements of Article 123(2) EPC.
2.2 Claim 1 of all requests is not inventive over D1 (Article 56 EPC 1973).
3. Original disclosure of the first auxiliary request
3.1 During oral proceedings, the examining division came to the conclusion that the then first auxiliary request (filed on 25 June 2010) did not comply with Article 123(2) EPC. The reasons for this can be found in the annex to the communication under Rule 71(3) EPC ("intention to grant") dated 19 July 2010, section 2.
3.2 Claim 1 of the then first auxiliary request differs from claim 1 of the (then and now) main request in that at the end of the claim the following is added:
"and wherein the second plurality of graphical program elements is converted to a third plurality of graphical program elements, wherein the conversion depends upon the target platform for the program, wherein the target platform is specified by the user."
3.3 Claim 1 of the current first auxiliary request mainly differs from claim 1 of the then first auxiliary request in that the expression "third plurality of graphical program elements" is deleted (see grounds, page 9, third paragraph). The modified last paragraph reads (deletions are [deleted: struck through]; additions are in italics):
"... and wherein the second plurality of graphical program elements is converted [deleted: to a ][deleted: third plurality of graphical program elements][deleted: , wherein the conversion depends upon] depending on the target platform for the program, wherein the target platform is specified by the user."
3.4 The examining division states in section 2.3-2.5 of the annex to its "intention to grant" that the passage of the description indicated by the applicant as the basis for the amendment (page 21, lines 1-2 and 31-37) has to be read in the context of figure 6 and therefore implicitly presupposes a conversion into the first model of computation.
3.5 In the grounds of appeal (pages 10-11, section 3), the appellant agrees that most of the embodiments on pages 19-23 of the description do indeed contain a conversion into the first model, but argues that there are exceptions (page 10, paragraphs 4 and 5). One of them is said passage. An obligatory conversion into the first model is in conflict with the target-specific conversion as claimed if the first model is not suitable for the target platform (see the grounds of appeal, page 11, paragraph 3). The skilled person, understanding this, will not interpret the cited passage from the description as implying a conversion into the first model.
3.6 The board came to the conclusion that the embodiment according to said passage does not require a conversion into the first model. Rather, the passage discloses an alternative to that conversion, namely a conversion for a target platform. This follows from the first sentence of the passage which reads: "In one embodiment, the conversion may be dependent upon the target platform for the program" (emphasis added). Although the expression "the conversion" apparently refers to the conversion into the first model in figure 6 (608) (described on page 20, lines 8-10), the whole phrase "the conversion may be dependent on the target platform" can only be interpreted as introducing an alternative to the conversion into the first model, since otherwise the above-mentioned conflict between the conversion into the first model and the target-specific conversion would arise.
3.7 Therefore, claim 1 of the first auxiliary request complies with Article 123(2) EPC.
4. Inventiveness
4.1 Main request
4.1.1 The main request is identical with the refused sole request. In the decision, a combination of D1 and D2 was treated as one document (since D1 cites D2, as explained in the International Preliminary Report on Patentability, 3.3) and used as closest prior art. The appellant seems to accept this (see grounds of appeal, page 5, penultimate paragraph).
4.1.2 However, the board is of the opinion that there is no need to refer to D2, since D1 discloses the two features for which passages in D2 were given in section 15.2 of the appealed decision:
- assembling a first graphical program: D1 refers to "Some examples of graphical dataflow programming environments [...] Ptolemy" (page 132, left column, paragraph 3) and the board considers it implicit to graphical programming environments that programs are assembled from graphical program elements in a GUI;
- wherein the graphical program is executable to perform a function: implicit in D1, because that is exactly what programs are intended for.
4.1.3 The board considers all other passages of D1 set out in decision section 15.2 to disclose the corresponding features of the claim.
4.1.4 In its letter dated 3 September 2015 (page 3, section B.I.1), the appellant argued that D2 was necessary since D1 did not describe any GUI of the Ptolemy system in D1.
4.1.5 The board however does not need any specific details of the Ptolemy GUI (called "pigi" = Ptolemy interactive graphical interface, see D2, page 172, 3.1, first paragraph) for its argument below. It is sufficient that Ptolemy has a GUI. This is disclosed in D1 (page 132, left column, paragraph 3). Thus, there is no need for D2.
4.1.6 The appellant (see grounds of appeal, page 6, paragraphs 2 and 3) also seems to accept the difference identified in decision section 15.3, namely a graphical structure demarcating the first graphical program from the second one which uses a second model of computation. The board agrees.
4.1.7 However, whereas the decision (15.5) argues that it was obvious to include the demarcating structure from D5 into D1+D2 and that figures 8 and 11 of D1 "point toward this solution", the board is of the opinion that there is no need to refer to D5. The board agrees that the figures in D1 are not screenshots of the pigi GUI. But the board considers it to be obvious to display the "demarcating structure" (i.e. the box) surrounding the second graphical program Y in figure 8 of D1 (or the program SDF in figure 11) in the pigi GUI in order to improve the intelligibility of content displayed by the pigi GUI.
4.1.8 The appellant argued during oral proceedings that pigi was not a powerful GUI and that in 2004 (i.e. at the priority date of the application) GUIs were simpler than today.
4.1.9 This does not convince the board, since displaying a box in a graphical input environment does not need a powerful GUI and was entirely conventional even in the GUIs of 2004.
4.1.10 Notably, this board's finding is independent of whether or not one considers the "demarcating structure" to contribute to the technical character of the invention, and of whether or not an improved intelligibility of a program is considered to be a technical effect. Although in its summons to oral proceedings the board expressed a preliminary opinion based on its earlier decisions T 1741/08, T 1539/9 and T 2270/10 that neither is the case, these issues may be left open.
4.1.11 Therefore, claim 1 of this request is not inventive (Article 56 EPC 1973).
4.2 First and second auxiliary requests
4.2.1 As mentioned above (section 3.3), claim 1 of the (present) first auxiliary request differs from claim 1 of the then first auxiliary request (filed on 25 June 2010) mainly in that the expression "third plurality of graphical program elements" is deleted (see also the grounds of appeal, page 9, paragraph 3).
4.2.2 Claim 1 of the first auxiliary request differs from claim 1 of the main request in that the following is added at the end of the claim (see the grounds of appeal, paragraph bridging pages 8 and 9):
"and wherein the second plurality of graphical program elements is converted depending on the target platform for the program, wherein the target platform is specified by the user."
4.2.3 In addition to that, claim 1 of the second auxiliary request has the following phrase at its end:
"[is specified by the user], wherein said conversion process is performed on only that portion of the graphical program that has the second model of computation."
This is originally disclosed on description page 22, lines 26-28.
4.2.4 The board takes the view that the additional converting step in the first and second auxiliary requests does not establish an inventive step, since in all cases where a program is not yet in an executable form (e.g. because it is in a higher level programming language form), a conversion "depending on the target platform" has to take place in order to execute the program on that target platform. Thus, if a graphical program of D1 were not yet in an executable form for the intended target platform, the skilled person would add such a conversion to the procedure of D1. This holds in general, but applies in particular to the second graphical program.
4.2.5 Furthermore, if the system does not yet know the intended target platform, the skilled person would obviously add an inputting possibility in order to enable the user to specify the target platform.
4.2.6 The appellant pointed out during oral proceedings that the target platform could be an FPGA (see description page 21, last but one paragraph). The skilled person knew that these programmable hardware elements perform certain tasks faster than other platforms, due to a possibly highly parallel execution.
4.2.7 However, the conversion into target platforms (e.g. FPGAs) is not disclosed in the description, since it is well-known, as the appellant admitted.
4.2.8 Even if the conversion of the second program into an FPGA was claimed and had the claimed effect on execution speed, this would not establish an inventive step because D1 already implies, in the board's view, the choice of other, commonly known target platforms such as FPGAs.
4.2.9 Therefore, claim 1 of the first auxiliary request is not inventive (Article 56 EPC 1973).
4.2.10 As to the second auxiliary request, the appellant argued during oral proceedings that the restriction of the conversion to only the second program allows the user to determine which part of the program is to be converted for a certain target platform.
4.2.11 However, this merely adds further semantics to the demarcating box as an element of the graphical programming language used in the claim. In general, modifying the expressive power of a (graphical) programming language is not considered to contribute to the technical character of an invention (see T 1539/09 and T 2270/10). This is also the case here. The board does not see a technical solution to a technical problem in having the demarcating box additionally designate which graphical program should be converted for a target platform.
4.2.12 Furthermore, the claim does not exclude that there is another conversion step which converts the first program. It is merely said that said conversion process is performed on only the second program. This means that claim 1 of the second auxiliary request also covers the case of claim 1 of the first auxiliary request which was found not to be inventive.
4.2.13 Therefore, claim 1 of the second auxiliary request is not inventive (Article 56 EPC 1973).
4.3 Third auxiliary request
4.3.1 The present third auxiliary request (filed with the grounds of appeal as a second auxiliary request) is almost identical to the second auxiliary request filed during oral proceedings before the examining division. The only difference is the removal of the reference numbers 502, 504 and 506 in the current version.
4.3.2 Claim 1 of the third auxiliary request differs from claim 1 of the main request in that the following is added at the end of the claim (see the grounds of appeal, page 14):
"and (608) wherein during compilation, the assembled second plurality of graphical program elements which operate in accordance with the second model of computation is converted or translated to graphical program elements that operate in accordance with the first model of computation, in order to be executed in accordance with the first model of computation."
4.3.3 In the grounds of appeal (page 14), the appellant argues that with this amendment the first model of computation serves as a basis model of computation which simplifies the compilation of heterogeneous graphical programs, since only the first model has to be compiled.
4.3.4 The board is not convinced by this. First, the board cannot see that the compilation is simplified, since both graphical programs must anyway be compiled into an executable form. To compile the second program into the model of the first program and then compile both of them into an executable form even appears to be more complicated than to compile both programs directly into an executable form. Furthermore, "simplicity" cannot per se be considered to be a technical effect. It might perhaps lead to a technical effect in certain cases, but in the present case there is not even any simplification.
4.3.5 According to the appellant during oral proceedings, the software of D1 performs the interfacing at the model borders at runtime (see D2, page 166, 2.6, first paragraph). In contrast hereto, the claimed software provides the interfacing between the models only once at compile time when the second program is converted into the first model. This reduces the runtime.
4.3.6 This argument does not convince the board, since it only refers to usual differences between compiling versus interpreting a program to be executed. Furthermore, the board does not see that conversion into the first model makes the claimed software faster than that of D1. Usually such a pre-compilation step (i.e. the conversion into the first model) makes a program execute more slowly, since the program is converted from a model, which the programmer has chosen for its suitability for the task to be programmed, into a possibly less suitable model.
4.3.7 The appellant then argued that the claimed software might not accelerate the execution of the graphical program, but was nevertheless an implementation alternative to D1 as regards the execution of heterogenous graphical programs. The objective technical problem would then be how to provide such an alternative.
4.3.8 However, the solution, i.e. the conversion of the second program into the first model of the first program, does not involve an inventive step, since the skilled person knows to port a graphical program from one model into another (see D3, [17]). A motivation for him to apply this methodology here could for example be to reuse an existing execution environment for the first model when faced with a heterogenous program as known from D1. Thus, in order to find an alternative implementation, the skilled person would add to the software of D1 the porting (i.e. converting) method of D3 so as to convert the second program in the second model into the first model and execute it in the existing execution environment of the first model. This would avoid to provide an execution environment for the second model and would not require the skilled person to exercise inventive skill.
4.3.9 Therefore, claim 1 of this request is not inventive (Article 56 EPC 1973).
For these reasons it is decided that:
The appeal is dismissed.