Ex Parte Ostrovsky et alDownload PDFPatent Trial and Appeal BoardAug 31, 201612413814 (P.T.A.B. Aug. 31, 2016) Copy Citation UNITED STA TES p A TENT AND TRADEMARK OFFICE APPLICATION NO. FILING DATE 12/413,814 0313012009 69316 7590 09/02/2016 MICROSOFT CORPORATION ONE MICROSOFT WAY REDMOND, WA 98052 FIRST NAMED INVENTOR Igor Ostrovsky UNITED STATES DEPARTMENT OF COMMERCE United States Patent and Trademark Office Address: COMMISSIONER FOR PATENTS P.O. Box 1450 Alexandria, Virginia 22313-1450 www .uspto.gov ATTORNEY DOCKET NO. CONFIRMATION NO. 326323.01 9859 EXAMINER GURMU, MULUEMEBET ART UNIT PAPER NUMBER 2163 NOTIFICATION DATE DELIVERY MODE 09/02/2016 ELECTRONIC Please find below and/or attached an Office communication concerning this application or proceeding. The time period for reply, if any, is set in the attached communication. Notice of the Office communication was sent electronically on above-indicated "Notification Date" to the following e-mail address( es): usdocket@microsoft.com chriochs@microsoft.com PTOL-90A (Rev. 04/07) UNITED STATES PATENT AND TRADEMARK OFFICE BEFORE THE PATENT TRIAL AND APPEAL BOARD Ex parte IGOR OSTROVSKY, JOHN DUFFY, and STEPHEN H. TOUB Appeal2014-009600 Application 12/413,814 Technology Center 2100 Before JEAN R. HOMERE, JEREMY J. CURCURI, and JOSEPH P. LENTIVECH, Administrative Patent Judges. CURCURI, Administrative Patent Judge. DECISION ON APPEAL Appellants appeal under 35 U.S.C. § 134(a) from the Examiner's rejection of claims 1, 6-17, and 20. Final Act. 1. We have jurisdiction under 35 U.S.C. § 6(b ). Claims 1, 6-17, and 20 are rejected under 35 U.S.C. § 103(a) as obvious over Don Box and Anders Hejlsberg (LINQ: .NET Language- Integrated Query, Microsoft, February 2007) ("Box"), Andreas Ruping et al. (Demonstrating Coherent Design: A Data Structure Catalogue, TOOLS Appeal2014-009600 Application 12/413,814 USA '93 Conference Proceedings) ("Ruping"), and Owens (US 7,809,768 B2; Oct. 5, 2010). Final Act. 2-15. 1 We affirm. STATEMENT OF THE CASE Appellants' invention relates to query processing using arrays. See Abstract. Claim 1 is illustrative and reproduced below: 1. A method of processing a query, comprising: receiving a language integrated query including at least one query operator; operating on a lazy input array with the at least one query operator using an interface class configured to provide the at least one query operator with access to the lazy input array, wherein the interface class used by the at least one query operator to operate on the lazy input array includes a first method for providing the at least one query operator with indexed access to elements in the lazy input array and a second method for obtaining a count value representing a total number of elements in the lazy input array; and generating a lazy output array with the at least one operator based on the operation on the lazy input array. ANALYSIS The Examiner finds the combination of Box, Ruping, and Owens teaches all limitations of claim 1. Final Act. 3--4, 6. Appellants present the following principal arguments: 1 Appellants' Amendment filed March 21, 2013 canceled claim 2, and incorporated the subject matter of canceled claim 2 into amended claim 1. In the Final Action mailed July 8, 2013, the Examiner finds Owens teaches a lazy array as recited in canceled claim 2, and reasons that it would have been obvious to incorporate Owens' s teaching into Box and Ruping. Final Act. 6; see also Ans. 2-3. Thus, in our analysis, we treat all pending claims as being rejected over the combination of Box, Ruping, and Owens because the Examiner has provided the required fact findings and reasoning. 2 Appeal2014-009600 Application 12/413,814 1. [T]he discussion in Ruping regarding indices and Get_element relates to an "Aggregate" container class, not an interface class. (See, e.g., Ruping at page 4). Ruping discloses an "interface class" that describes behavior for a group of objects, but clearly states that "[b ]ehaviour as specified by an interface class is completely implemented in a corresponding implementation class." (Ruping at page 3) (bold emphasis added). In addition, Ruping does not appear to mention anything about a language integrated query, a query operator, or using any of the classes disclosed therein in any manner by a query operator. App. Br. 7; see also Reply Br. 2. 11. The Aggregate operator [in Box] is not part of an interface class that provides a different operator with indexed access to elements of an input array. The cited references do not teach or suggest an interface class that provides a query operator with indexed access to elements of an input array, and that includes a method for obtaining a count value representing a total number of elements in the input array. App. Br. 8; see also Reply Br. 3. We see no error in the Examiner's findings. Nor do we see any error in the Examiner's legal conclusion of obviousness. The test for obviousness is not whether the features of a secondary reference may be bodily incorporated into the structure of the primary reference; nor is it that the claimed invention must be expressly suggested in any one or all of the references. Rather, the test is what the combined teachings of the references would have suggested to those of ordinary skill in the art. In re Keller, 642 F.2d 413, 425 (CCPA 1981) (citations omitted). As a preliminary matter, we adopt as our own the Examiner's finding that Owens teaches a lazy array, and conclusion that it would have been 3 Appeal2014-009600 Application 12/413,814 obvious to incorporate Owens' s teaching into Box and Ruping. Final Act. 6; see also Ans. 2-3. Claim 1 recites "the interface class used by the at least one query operator to operate on the lazy input array includes a first method for providing the at least one query operator with indexed access to elements in the lazy input array." The Examiner finds Box (and Owens) teaches this limitation, except for indexed access, for which the Examiner relies on Ruping. Final Act. 3- 4. We adopt the Examiner's findings as our own. Box (p. 2, 11. 21-23) discloses: "To see language-integrated query at work, we'll begin with a simple C# 3 .0 program that uses the standard query operators to process the contents of an array[.]" Thus, Box teaches the disputed limitation, except for specifically teaching indexed access. Ruping (p. 4, col. 2, 11. 1-8) discloses: "Indices allow for dealing with elements without losing the information concerning their physical position which can then be exploited for efficient programming. A concept similar to indices is presented in [ 1 OJ. Get_element returns the actual element to which an index refers." Thus, Ruping teaches indexed access. The Examiner reasons "[i]t would have been obvious to a person of ordinary skill in art at the time [the] invention was made to incorporate the teaching of Ruping into the method of Box to have indexed access in order to perform the searches in an optimal manner." Final Act. 4. We adopt the Examiner's reasoning as our own. Regarding Appellants' argument (i), to the extent Ruping describes a container class, we find the argument does not address the combined teachings of the references. Ruping is only relied on for indexed access, and 4 Appeal2014-009600 Application 12/413,814 the disputed limitation is taught when Box is modified in light of Ruping. See Ans. 3--4. Claim 1 further recites "a second method for obtaining a count value representing a total number of elements in the lazy input array." The Examiner finds Box (and Owens) teaches this limitation. Final Act. 3. We adopt the Examiner's findings as our own. Box (p. 15) discloses returning a count value representing the total number of characters in an array of characters. Regarding Appellants' argument (ii), to the extent Box's operator is not part of an interface class, we still find this argument does not show any error in the Examiner's findings. In short, given Box already teaches operating on an array with a query operator using an interface class as discussed above, in light of Box's teaching (Box p. 15) of returning a count value representing the total number of characters in an array of characters, providing a second method in the interface class for obtaining a count value representing a total number of elements in the lazy input array would have been a predictable use of prior art elements according to their established functions - an obvious improvement. As the U.S. Supreme Court has explained: When a work is available in one field of endeavor, design incentives and other market forces can prompt variations of it, either in the same field or a different one. If a person of ordinary skill can implement a predictable variation, § 103 likely bars its patentability. For the same reason, if a technique has been used to improve one device, and a person of ordinary skill in the art would recognize that it would improve similar devices in the same way, using the technique is obvious unless its actual application is beyond his or her skill. Sakraida [ v. Ag Pro, Inc., 425 U.S. 273 (1976)] and Anderson's-Black Rock[, Inc. v. 5 Appeal2014-009600 Application 12/413,814 Pavement Salvage Co., 396 U.S. 57 (1969)] are illustrative-a court must ask whether the improvement is more than the predictable use of prior art elements according to their established functions. KSR Int'! Co. v. Teleflex, Inc., 550 U.S. 398, 417 (2007). We, therefore, sustain the Examiner's rejection of claim 1, as well as claims 6-8, 15, and 16, which are not separately argued with particularity. With respect to various claims that depend from claim 1, Appellants present the following arguments: Regarding claim 9, Appellants argue "[t]he Examiner has not identified any disclosure in the cited references regarding a select operator that performs a projection on each element in a lazy input array and returns a lazy array based on the projection." App. Br. 12; see also Reply Br. 4. Regarding claim 10, Appellants argue "[t]he Examiner has not identified any disclosure in the cited references regarding a take operator configured to take a specified number of elements from a lazy input array and return a lazy array containing only the taken elements." App. Br. 12; see also Reply Br. 4--5. Regarding claim 11, Appellants argue "[t]he Examiner has not identified any disclosure in the cited references regarding a skip operator configured to skip a specified number of elements in a lazy input array and return a lazy array containing elements positioned after the skipped elements." App. Br. 13; see also Reply Br. 5. Regarding claim 12, Appellants argue "[t]he Examiner has not identified any disclosure in the cited references regarding a reverse operator configured to reverse positions of elements in a lazy input array and 6 Appeal2014-009600 Application 12/413,814 return a lazy array containing elements with the reversed positions." App. Br. 13; see also Reply Br. 6. Regarding claim 13, Appellants argue "[t]he Examiner has not identified any disclosure in the cited references regarding a concatenate operator configured to concatenate a lazy input array with a second input array and return a lazy array comprising a concatenation of the input arrays." App. Br. 14; see also Reply Br. 6-7. Regarding claim 14, Appellants argue "[t]he Examiner has not identified any disclosure in the cited references regarding an operator configured to combine a lazy input array with a second input array using a pairwise function and return a lazy array representing the combination." App. Br. 14; see also Reply Br. 7. We do not see any error in the Examiner's findings and conclusions with respect to dependent claim 9-14. We adopt as our own the Examiner's finding and reasons set forth in the Final Action on pages 7-11 and the Answer on pages 6-9. See also Box pages 28-31 (standard query operators). We, therefore, sustain the Examiner's rejection of claims 9-14. With respect to independent claim 17, Appellants present essentially the same arguments presented with respect to claim 1. See App. Br. 15-16; Reply Br. 7-9. We, therefore, sustain the Examiner's rejection of claim 17 for the same reasons discussed above with respect to claim 1. With respect to independent claim 20, Appellants present essentially the same arguments presented with respect to claim 1. See App. Br. 17-18; Reply Br. 9-10. 7 Appeal2014-009600 Application 12/413,814 We, therefore, sustain the Examiner's rejection of claim 20 for the same reasons discussed above with respect to claim 1. ORDER The Examiner's decision rejecting claims 1, 6-17, and 20 is affirmed. No time period for taking any subsequent action in connection with this appeal may be extended under 37 C.F.R. § 1.136(a)(l ). AFFIRMED 8 Copy with citationCopy as parenthetical citation