Methods for managing applications using semantic modeling and tagging and devices thereof

Information

  • Patent Grant
  • 9158532
  • Patent Number
    9,158,532
  • Date Filed
    Friday, March 14, 2014
    10 years ago
  • Date Issued
    Tuesday, October 13, 2015
    9 years ago
Abstract
The present disclosure provides a system and method for managing data using semantic tags. The method may include providing a data model corresponding to a first set of tangible objects where the data model includes a first template class having both properties describing the set of tangible object and a set of semantic tags corresponding to the properties. The method may include receiving a class definition for a second template class for a second set of tangible objects where the second template class inherits, by the class definition, the properties and the semantic tags for the second set of tangible objects.
Description
BACKGROUND

The process of software development involves research, new development, prototyping, modification and reuse. Additionally, developing dynamic applications requires the content developer to organize, manage and deploy a large quantity of content artifacts. In order to accurately develop the content artifacts, the content developer must create a logical model that reflects the physical world. That model is then broken down into common objects in order to provide the highest level of re-usability of artifacts and the lowest cost of maintaining the application(s). As the complexity of the application increases, the number of the common objects also increases thereby making the process of tracking and maintaining these common objects important.


Currently, existing technologies typically store these common objects at many different memory locations. As a result, a content developer has to manually search through a large number of locations for content artifacts to identify common objects relevant for the development of the application. This manual search process is inefficient, time consuming and tedious.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 illustrates an exemplary environment with an application manager computing device that manages application using semantic modeling and tagging.



FIG. 2 illustrates an application manager computing device.



FIG. 3 illustrates exemplary methods for managing applications using semantic modeling and tagging.





DETAILED DESCRIPTION

An exemplary environment with an application manager computing device that manages application using semantic modeling and tagging is illustrated in FIG. 1. In this particular example, the environment includes the application manager computing device, a plurality of client computing devices, a plurality of servers which are all coupled together by one or more communication networks, although this environment can include other numbers and types of systems, devices, components, and elements in other configurations.


Referring to FIGS. 1 and 2, the application manager computing device provides a number of functions including managing application using semantic modeling and tagging, although other types of numbers of computing devices with execute other types and numbers of functions can be used. In this particular example, the application manager computing device includes a central processing unit (CPU) or processor, a memory, an input device, a display device, and a network interface which are coupled together by a bus or other link, although other numbers and types of systems, devices, components, and elements in other configurations and locations can be used.


The processor in the application manager computing device executes a program of stored instructions for one or more aspects of the present technology as described and illustrated by way of the examples herein, although other types and numbers of processing devices and logic could be used and the processor could execute other numbers and types of programmed instructions.


The memory in the application manager computing device stores these programmed instructions for one or more aspects of the present technology is configured to execute these instructions as described and illustrated herein, although some or all of the programmed instructions could be stored and executed or configured for execution elsewhere. A variety of different types of memory storage devices, such as a random access memory (RAM) or a read only memory (ROM) in the system or a floppy disk, hard disk, CD ROM, DVD ROM, or other computer readable medium which is read from and written to by a magnetic, optical, or other reading and writing system that is coupled to the processor in the application manager computing device, can be used for the memory in the application manager computing device.


The input device of the application manager computing device enables a user, such as an administrator, to interact with the application manager computing device, such as to input data and/or to configure, program and/or operate it by way of example only. By way of example only, the input devices may include one or more of a touch screen, keyboard and/or a computer, although other types and numbers of input devices could be used.


The display device of the application manager computing device enables a user, such as an administrator, to view data and/or other information by way of example only. By way of example only, the display device may include one or more of a CRT, LED monitor, or LCD monitor, although other types and numbers of display devices could be used.


The network interface device in the application manager computing device is used to operatively couple and communicate between the application manager computing device and the plurality of client computing devices, the plurality of servers over one or more the communications networks, although other types and numbers of communication networks or systems with other types and numbers of connections and configurations can be used. By way of example only, the one or more the communications networks can use TCP/IP over Ethernet and industry-standard protocols, including NFS, CIFS, SOAP, XML, LDAP, and SNMP, although other types and numbers of communication networks, such as a direct connection, a local area network, a wide area network, modems and phone lines, e-mail, and wireless communication technology, each having their own communications protocols, can be used.


In this particular example, each of the client computing devices and the plurality of servers includes a central processing unit (CPU) or processor, a memory, input/display device interface and a network interface or I/O system, which are coupled together by a bus or other link, although other numbers and types of systems, devices, components, and elements in other configurations can be used.


Each of the client computing devices may utilize the application manager computing device to identify and obtain templates and artifacts for application development, by way of example only, although each of the client computing devices may execute other types and numbers of operations and functions and other types a numbers of computing devices might be coupled to interact with the application manager computing device.


Each of the servers may process requests received from requesting client computing devices via communication networks according to the HTTP-based application RFC protocol or the CIFS or NFS protocol for example. Various network processing applications, such as CIFS applications, NFS applications, HTTP Web Server applications, and/or FTP applications, may be operating on the servers and transmitting data (e.g., files, Web pages) to the application manager computing device in response to requests from the client computing devices. Each of the servers may provide data or receive data in response to requests directed toward the respective applications on the servers from the client computing devices or the application manager computing device. Each of the servers may be hardware or software or may represent a system with multiple servers in a server pool, which may include internal or external networks. In this example the servers may be any version of Microsoft® IIS servers or Apache® servers, although other types of servers may be used.


Although examples of the application manager computing device, the client computing devices and plurality of servers are illustrated and described herein, each of these devices and systems can be implemented on any suitable computer system or computing device. It is to be understood that the devices and systems of the examples described herein are for exemplary purposes, as many variations of the specific hardware and software used to implement the examples are possible, as will be appreciated by those skilled in the relevant art(s).


Furthermore, each of the systems of the examples may be conveniently implemented using one or more general purpose computer systems, microprocessors, digital signal processors, and micro-controllers, programmed according to the teachings of the examples, as described and illustrated herein, and as will be appreciated by those ordinary skill in the art.


In addition, two or more computing devices or systems can be substituted for any one of the systems in any embodiment of the examples. Accordingly, principles and advantages of distributed processing, such as redundancy and replication also can be implemented, as desired, to increase the robustness and performance of the devices and systems of the examples. The examples may also be implemented on computer system or systems that extend across any suitable network using any suitable interface mechanisms and communications technologies, including by way of example only telecommunications in any suitable form (e.g., voice and modem), wireless communications media, wireless communications networks, cellular communications networks, 3G communications networks, Public Switched Telephone Network (PSTNs), Packet Data Networks (PDNs), the Internet, intranets, and combinations thereof.


The examples may also be embodied as a non-transitory computer readable medium having instructions stored thereon for one or more aspects of the present technology as described and illustrated by way of the examples herein, as described herein, which when executed by a processor, cause the processor to carry out the steps necessary to implement the methods of the examples, as described and illustrated herein. Exemplary methods for managing applications using semantic modeling and tagging will now be described below with reference to FIGS. 1-3.


An exemplary process begins with the application manager computing device receiving a request to develop templates and artifacts for a model from a client computing device, although the application manager computing device may receive any other types of requests from any other devices. By way of example only, the application manager computing device receives a request to develop a model to track and manage delivery of food products to retail outlets in a geographic area to determine the return on investment and the selected geographic area is Philadelphia.


Next, the application manager computing device receives information associated with the request to develop a model from the requesting client computing device. In this example, the application manager computing device receives first level information associated with the geographic region, such as the total number of delivery trucks in this region, number of manufacturing plants and number of warehouses from which the food products are delivered to the retail locations in this particular example. Additionally, the application manager computing device also receives second level information, such as driver information of each truck, capacity of load for each truck and temperature sensor and humidity sensor values for refrigerated trucks in this particular example.


Using the received first level and the second level information, the application manager computing device defines a plurality of templates for the requested model, although the application manager computing device can develop, define, and/or obtain any amounts of other types of artifacts associated with developing the requested model. In this example, the application manager computing device defines a Base_Truck template with properties such as capacity of the truck, driver of the truck, inventory and location. Other characteristics of a truck can also be added to the model, such as services (update a delivery schedule), and events (truck breakdown, delivery times in jeopardy). Additionally, the application manager computing device defines another template for Refrigerated_Truck with properties including capacity of the truck, driver of the truck, inventory, location and temperature and humidity sensor values.


Upon defining a plurality of templates, the application manager computing device organizes the templates and any other developed artifacts by defining semantic tags for each of the created template and artifacts. By way of example only, the application manager computing device defines the semantic tags using an application vocabulary database. The application vocabulary in this example relates to using terms defined in the information to define semantic tags. For purpose of further illustration in this example, the application manager computing device defines tags such as Truck_Tracking and Region to each of the defined templates and artifacts.


Additionally, if the application manager computing device further defines another template Delivery_Truck from previously created template Base_Truck, the application manager computing device will automatically apply all the properties defined in template Base_Truck including the semantic tags associated to the Base_Truck to the recently created template Delivery_Truck. Additionally, if the application manager computing device further defines another template Refrigerated_Delivery_Truck using both Base_Truck and Refrigerated_Truck, the application manager computing device automatically applies all the properties and characteristics defined in Base_Truck and Refrigerated_Truck and assigns the tags associated with both Base_Truck and Refrigerated_Truck to the recently created template Refrigerated_Delivery_Truck.


Further, the application manager computing device stores each of the tagged templates and artifacts within the memory of the application manager computing device, although the application manager computing device can store the templates and artifacts at other locations.


Once the template artifacts have been defined to meet the requirements of the solution, specific instances of templates are created. In this example, each specific delivery truck in the Philadelphia region is instantiated from one of the previously defined templates, and the application manager computing device will automatically apply all the properties and characteristics defined in the template that is defined for that instance. Semantic tags describing the specific instances in the model are also applied.


Next, the application manager computing device sends out a notification to the requesting client computing device indicating completion of defining and organizing the templates and artifacts to the requesting client computing device.


When the application manager computing device receives another request from the requesting client computing device to provide all the defined templates and artifacts associated with the requested model, the application manager computing device provides a graphical representation of the organized templates and the artifacts to the requesting client computing device, although the application manager computing device can provide the templates and the artifacts in any other format. The graphical representation provided by the application manager computing device would include each of the templates and artifacts with their associated tags. In this example, the templates Base_Truck and Refrigerated_Truck would be graphically represented with tags Truck_Tracking and Region-Philly. Additionally, the graphical representation would include the interconnection between each of the template and artifact and accordingly in this example, the graphical representation would indicate that the Delivery_Truck template was inherited from Base_Truck template and Refrigerated_Delivery_Truck template was inherited from Base_Truck and Refrigerated_Truck templates.


The application manager computing device also may provide an option for searching for additional information to the requesting client computing device using the tags. In this particular example, the application manager computing device could provide an option of searching for all artifacts and templates with tag Truck_Tracking Upon receiving the confirmation to search from the client computing device, the application manager computing device searches for all templates and artifacts tagged as Truck_Tracking present within the memory and also the servers and provides the searched results to the requesting client computing device. Additionally, the application manager computing device assists the requesting client computing device to select any of the search results, modify the select search result and finally store the modified content.


The application manager computing device also may provide an option for searching for additional information to the requesting client computing device using the tags, and transporting the relevant content artifacts from one system to another. A typical example is to move the content artifacts for a new application from a development system to a testing system, and finally to a production system using the previously defined semantic tags.


By providing the graphical representation of the templates and artifacts, the technology disclosed provides advantages of assisting the user of the client computing device to understand the created model quickly and effectively. Additionally, by organizing the templates and artifacts using tags, the user of the client computing device can quickly search for any additional information using the tags. Further, by organizing the created artifacts and templates, any new user or developer of the requesting client computing device will be able to quickly understand the model without manually searching for each of the template and artifacts and then trying to understand the connection between them.


Having thus described the basic concept of the invention, it will be rather apparent to those skilled in the art that the foregoing detailed disclosure is intended to be presented by way of example only, and is not limiting. Various alterations, improvements, and modifications will occur and are intended to those skilled in the art, though not expressly stated herein. These alterations, improvements, and modifications are intended to be suggested hereby, and are within the spirit and scope of the invention. Additionally, the recited order of processing elements or sequences, or the use of numbers, letters, or other designations therefore, is not intended to limit the claimed processes to any order except as may be specified in the claims. Accordingly, the invention is limited only by the following claims and equivalents thereto.

Claims
  • 1. A method of using semantic tagging to manage templates and artifacts of a data model used for tracking and managing data associated with a plurality of tangible objects, the method comprising: providing, by a processor of a computing device, a plurality of reusable templates for creating a plurality of data models for managing data associated with a plurality of tangible objects, wherein each reusable template is specific to a type of tangible object, and wherein the plurality of reusable templates are organized in a hierarchical structure in which one or more reusable templates have a parent relationship to other reusable templates such that contents of each parent template are automatically replicated in corresponding children templates;receiving, by the processor, a request to tag, with one or more semantic tags for managing the plurality of the reusable templates of the data model, a first reusable template having a parent relationship to one or more child reusable templates, wherein a semantic tag of the one or more semantic tags comprises a term associated with a content of the first reusable template;responsive to the request, tagging, by the processor, i) the first reusable template with the semantic tag and ii) each of the one or more child reusable templates, with the one or more semantic tags; andin response to a search request with a tag term, retrieving, by the processor, one or more reusable templates having a semantic tag matching, at least in part, the tag term and causing graphical representation of the retrieved one or more reusable templates.
  • 2. The method as set forth in claim 1 further comprising: receiving, by the processor, a first level information associated with a parent reusable template and a second level information associated with a child reusable template;defining, by the processor, a third and fourth reusable templates using the received first level information and the second level information.
  • 3. The method as set forth in claim 1, comprising storing the tagged first reusable template and each of the one or more tagged child reusable templates in persistent memory.
  • 4. The method as set forth in claim 1 further comprising transferring by the processor the provided one or more templates and associated artifacts to a second server using the one or more semantic tags.
  • 5. The method as set forth in claim 1, comprising tagging, by the processor of the computing device, artifacts of the data model with the one or more semantic tags in response to the request to tag the first reusable template, wherein the artifacts are associated with the first reusable template.
  • 6. The method as set forth in claim 1, wherein the contents of the plurality of reusable templates comprise one or more members selected from the group consisting of a property, a service, and an event.
  • 7. The method as set forth in claim 1, comprising: receiving a selection of a reusable template of the one or more reusable templates; andcreating, using the selected reusable template, one or more first data models for managing data associated with corresponding one or more first tangible objects.
  • 8. The method as set forth in claim 1, wherein the graphical representation presents interconnections between each of one or more retrieved reusable templates.
  • 9. A non-transitory computer readable medium having stored thereon instructions for using semantic tagging to manage templates and artifacts of a data model used for tracking and managing data associated with a plurality of tangible objects, wherein the instructions when executed by at least one processor, causes the processor to: provide a plurality of reusable templates for creating a plurality of data models for managing data associated with a plurality of tangible objects, wherein each reusable template is specific to a type of tangible object, and wherein the plurality of reusable templates are organized in a hierarchical structure in which one or more reusable templates have a parent relationship to other reusable templates such that contents of each parent template are automatically replicated in corresponding children templates;receive a request to tag, with one or more semantic tags for managing the plurality of the reusable templates of the data model, a first reusable template having a parent relationship to one or more child reusable templates, wherein a semantic tag of the one or more semantic tags comprises a term associated with a content of the first reusable template;responsive to the request, tag i) the first reusable template with the semantic tag and ii) each of the one or more child reusable templates, with the one or more semantic tags; andin response to a search request with a tag term, retrieve one or more reusable templates having a semantic tag matching, at least in part, the tag term and causing graphical representation of the retrieved one or more reusable templates.
  • 10. The computer readable medium as set forth in claim 9, wherein the instructions, when executed by the processor, cause the processor to: receive a first level information associated with a parent reusable template and a second level information associated with a child reusable template;define a third and fourth reusable templates using the received first level information and the second level information.
  • 11. The computer readable medium as set forth in claim 9, wherein the instructions, when executed by the processor, cause the processor to store the tagged first reusable template and each of the one or more tagged child reusable templates in persistent memory.
  • 12. The computer readable medium as set forth in claim 9, wherein the instructions, when executed by the processor, cause the processor to transfer the provided one or more templates and associated artifacts to a second server using the one or more semantic tags.
  • 13. The computer readable medium as set forth in claim 9, wherein the instructions, when executed by the processor, cause the processor to tag artifacts of the data model with the one or more semantic tags in response to the request to tag the first reusable template, wherein the artifacts are associated with the first reusable template.
  • 14. The computer readable medium as set forth in claim 9, wherein the contents of the plurality of reusable templates comprise one or more members selected from the group consisting of a property, a service, and an event.
  • 15. The computer readable medium as set forth in claim 9, wherein the instructions, when executed by the processor, cause the at least one processor to: receive a selection of a reusable template of the one or more reusable templates; andcreate, using the selected reusable template, one or more first data models for managing data associated with corresponding one or more first tangible objects.
  • 16. The computer readable medium as set forth in claim 9, wherein the graphical representation presents interconnections between each of one or more retrieved reusable templates.
  • 17. A device comprising: one or more processors;a memory, wherein the memory is coupled to the one or more processors, the memory having stored thereon instructions, wherein the instructions, when executed by the one or more processors, cause the one or more processors to:provide a plurality of reusable templates for creating a plurality of data models for managing data associated with a plurality of tangible objects, wherein each reusable template is specific to a type of tangible object, and wherein the plurality of reusable templates are organized in a hierarchical structure in which one or more reusable templates have a parent relationship to other reusable templates such that contents of each parent template are automatically replicated in corresponding children templates;receive a request to tag, with one or more semantic tags for managing the plurality of the reusable templates of the data model, a first reusable template having a parent relationship to one or more child reusable templates, wherein a semantic tag of the one or more semantic tags comprises a term associated with a content of the first reusable template;in response to a request, tag i) the first reusable template with the semantic tag and ii) each of the one or more child reusable templates, with the one or more semantic tags; andin response to a search request with a tag term, retrieve one or more reusable templates having a semantic tag matching, at least in part, the tag term and causing graphical representation of the retrieved one or more reusable templates.
  • 18. The device as set forth in claim 17, wherein the instructions, when executed by the processor, further cause the processor to: receive a first level information associated with a parent reusable template and a second level information associated with a child reusable template;define a third and fourth reusable templates using the received first level information and the second level information.
  • 19. The device as set forth in claim 18, wherein the instructions, when executed by the processor, cause the processor to tag artifacts of the data model with the one or more semantic tags in response to the request to tag the first reusable template, wherein the artifacts are associated with the first reusable template.
  • 20. The device as set forth in claim 18, wherein the contents of the plurality of reusable templates comprise one or more members selected from the group consisting of a property, a service, and an event.
  • 21. The device as set forth in claim 18, wherein the instructions, when executed by the processor, cause the at least one processor to: receive a selection of a reusable template of the one or more reusable templates; andcreate, using the selected reusable template, one or more first data models for managing data associated with corresponding one or more first tangible objects.
  • 22. The device as set forth in claim 18, wherein the graphical representation presents interconnections between each of one or more retrieved reusable templates.
  • 23. The device as set forth in claim 17, wherein the instructions, when executed by the processor, cause the processor to store the tagged first reusable template and each of the one or more tagged child reusable templates in persistent memory.
  • 24. The device as set forth in claim 17, wherein the instructions, when executed by the processor, cause the processor to transfer the provided one or more templates and associated artifacts to a second server using the one or more semantic tags.
RELATED APPLICATIONS

This application claims priority to and the benefit of U.S. Provisional Patent Application No. 61/793,627, filed Mar. 15, 2013, the text of which is incorporated herein by reference in its entirety.

US Referenced Citations (401)
Number Name Date Kind
3656112 Paull Apr 1972 A
3916412 Amoroso, Jr. Oct 1975 A
3983484 Hodama Sep 1976 A
4063173 Nelson et al. Dec 1977 A
4103250 Jackson Jul 1978 A
4134068 Richardson Jan 1979 A
4216546 Litt Aug 1980 A
4554668 Deman et al. Nov 1985 A
4601059 Gammenthaler Jul 1986 A
4680582 Mejia Jul 1987 A
4704585 Lind Nov 1987 A
4979170 Gilhousen et al. Dec 1990 A
5113416 Lindell May 1992 A
5134615 Freeburg et al. Jul 1992 A
5159704 Pirolli et al. Oct 1992 A
5276703 Budin et al. Jan 1994 A
5361401 Pirillo Nov 1994 A
5422889 Sevenhans et al. Jun 1995 A
5454010 Leveque Sep 1995 A
5479441 Tymes et al. Dec 1995 A
5493671 Pitt et al. Feb 1996 A
5515365 Sumner et al. May 1996 A
5734966 Farrer et al. Mar 1998 A
5737609 Reed et al. Apr 1998 A
5805442 Crater et al. Sep 1998 A
5909640 Farrer et al. Jun 1999 A
5925100 Drewry et al. Jul 1999 A
6169992 Beall et al. Jan 2001 B1
6182252 Wong et al. Jan 2001 B1
6198480 Cotugno et al. Mar 2001 B1
6377162 Delestienne et al. Apr 2002 B1
6430602 Kay et al. Aug 2002 B1
6553405 Desrochers Apr 2003 B1
6618709 Sneeringer Sep 2003 B1
6675193 Slavin et al. Jan 2004 B1
6757714 Hansen Jun 2004 B1
6766361 Venigalla Jul 2004 B1
6797921 Niedereder et al. Sep 2004 B1
6810522 Cook et al. Oct 2004 B2
6813587 McIntyre et al. Nov 2004 B2
6850255 Muschetto Feb 2005 B2
6859757 Muehl et al. Feb 2005 B2
6915330 Hardy et al. Jul 2005 B2
6993555 Kay et al. Jan 2006 B2
7031520 Tunney Apr 2006 B2
7046134 Hansen May 2006 B2
7047159 Muehl et al. May 2006 B2
7054922 Kinney et al. May 2006 B2
7082383 Baust et al. Jul 2006 B2
7082460 Hansen et al. Jul 2006 B2
7117239 Hansen Oct 2006 B1
7149792 Hansen et al. Dec 2006 B1
7178149 Hansen Feb 2007 B2
7185014 Hansen Feb 2007 B1
7250862 Bornhoevd et al. Jul 2007 B2
7254601 Baller et al. Aug 2007 B2
7269732 Kilian-Kehr Sep 2007 B2
7341197 Muehl et al. Mar 2008 B2
7380236 Hawley May 2008 B2
7496911 Rowley et al. Feb 2009 B2
7529750 Bair May 2009 B2
7536673 Brendle et al. May 2009 B2
7555355 Meyer Jun 2009 B2
7566005 Heusermann et al. Jul 2009 B2
7570755 Williams et al. Aug 2009 B2
7587251 Hopsecger Sep 2009 B2
7591006 Werner Sep 2009 B2
7593917 Werner Sep 2009 B2
7613290 Williams et al. Nov 2009 B2
7616642 Anke et al. Nov 2009 B2
7617198 Durvasula Nov 2009 B2
7624092 Lieske et al. Nov 2009 B2
7624371 Kulkarni et al. Nov 2009 B2
7644120 Todorov et al. Jan 2010 B2
7644129 Videlov Jan 2010 B2
7647407 Omshehe et al. Jan 2010 B2
7650607 Resnick et al. Jan 2010 B2
7653902 Bozak et al. Jan 2010 B2
7673141 Kilian-Kehr et al. Mar 2010 B2
7684621 Tunney Mar 2010 B2
7703024 Kautzleben et al. Apr 2010 B2
7707550 Resnick et al. Apr 2010 B2
7725815 Peters May 2010 B2
7728838 Forney et al. Jun 2010 B2
7730498 Resnick et al. Jun 2010 B2
7743015 Schmitt Jun 2010 B2
7743155 Pisharody et al. Jun 2010 B2
7752335 Boxenhorn Jul 2010 B2
7757234 Krebs Jul 2010 B2
7761354 Kling et al. Jul 2010 B2
7774369 Herzog et al. Aug 2010 B2
7779089 Hessmer et al. Aug 2010 B2
7779383 Bornhoevd et al. Aug 2010 B2
7783984 Roediger et al. Aug 2010 B2
7802238 Clinton Sep 2010 B2
7814044 Schwerk Oct 2010 B2
7814208 Stephenson et al. Oct 2010 B2
7817039 Bornhoevd et al. Oct 2010 B2
7827169 Enenkiel Nov 2010 B2
7831600 Kilian Nov 2010 B2
7840701 Hsu et al. Nov 2010 B2
7852861 Wu et al. Dec 2010 B2
7853241 Harrison Dec 2010 B1
7853924 Curran Dec 2010 B2
7860968 Bornhoevd et al. Dec 2010 B2
7865442 Sowell Jan 2011 B1
7865731 Kilian-Kehr Jan 2011 B2
7865939 Schuster Jan 2011 B2
7873666 Sauermann Jan 2011 B2
7882148 Werner et al. Feb 2011 B2
7886278 Stulski Feb 2011 B2
7890388 Mariotti Feb 2011 B2
7890568 Belenki Feb 2011 B2
7895115 Bayyapu et al. Feb 2011 B2
7899777 Baier et al. Mar 2011 B2
7899803 Cotter et al. Mar 2011 B2
7908278 Akkiraju et al. Mar 2011 B2
7917629 Werner Mar 2011 B2
7921137 Lieske et al. Apr 2011 B2
7921686 Bagepalli et al. Apr 2011 B2
7925979 Forney et al. Apr 2011 B2
7937370 Hansen May 2011 B2
7937408 Stuhec May 2011 B2
7945691 Dharamshi May 2011 B2
7953219 Freedman et al. May 2011 B2
7954107 Mao et al. May 2011 B2
7954115 Gisolfi May 2011 B2
7966418 Shedrinsky Jun 2011 B2
7975024 Nudler Jul 2011 B2
7987176 Latzina et al. Jul 2011 B2
7987193 Ganapam et al. Jul 2011 B2
7992200 Kuehr-McLaren et al. Aug 2011 B2
8000991 Montagut Aug 2011 B2
8005879 Bornhoevd et al. Aug 2011 B2
8024218 Kumar et al. Sep 2011 B2
8024743 Werner Sep 2011 B2
8051045 Vogler Nov 2011 B2
8055758 Hansen Nov 2011 B2
8055787 Victor et al. Nov 2011 B2
8060886 Hansen Nov 2011 B2
8065397 Taylor et al. Nov 2011 B2
8069362 Gebhart et al. Nov 2011 B2
8073331 Mazed Dec 2011 B1
8074215 Cohen et al. Dec 2011 B2
8081584 Thibault et al. Dec 2011 B2
8082322 Pascarella et al. Dec 2011 B1
8090452 Johnson et al. Jan 2012 B2
8090552 Henry et al. Jan 2012 B2
8095632 Hessmer et al. Jan 2012 B2
8108543 Hansen Jan 2012 B2
8126903 Lehmann et al. Feb 2012 B2
8127237 Beringer Feb 2012 B2
8131694 Bender et al. Mar 2012 B2
8131838 Bornhoevd et al. Mar 2012 B2
8136034 Stanton et al. Mar 2012 B2
8145468 Fritzsche et al. Mar 2012 B2
8145681 Macaleer et al. Mar 2012 B2
8151257 Zachmann Apr 2012 B2
8156117 Krylov et al. Apr 2012 B2
8156208 Bornhoevd et al. Apr 2012 B2
8156473 Heidasch Apr 2012 B2
8183995 Wang et al. May 2012 B2
8219572 Ghosh et al. Jul 2012 B2
8229944 Latzina et al. Jul 2012 B2
8230333 Decherd et al. Jul 2012 B2
8249906 Ponce de Leon Aug 2012 B2
8250169 Beringer et al. Aug 2012 B2
8254249 Wen et al. Aug 2012 B2
8261193 Alur et al. Sep 2012 B1
8271935 Lewis Sep 2012 B2
8280009 Stepanian Oct 2012 B2
8284033 Moran Oct 2012 B2
8285807 Slavin et al. Oct 2012 B2
8291039 Shedrinsky Oct 2012 B2
8291475 Jackson et al. Oct 2012 B2
8296198 Bhatt et al. Oct 2012 B2
8296266 Lehmann et al. Oct 2012 B2
8296413 Bornhoevd et al. Oct 2012 B2
8301770 van Coppenolle et al. Oct 2012 B2
8306635 Pryor Nov 2012 B2
8312383 Gilfix Nov 2012 B2
8321790 Sherrill et al. Nov 2012 B2
8321792 Alur et al. Nov 2012 B1
8331855 Williams et al. Dec 2012 B2
8346520 Lu et al. Jan 2013 B2
8359116 Manthey Jan 2013 B2
8364300 Pouyez et al. Jan 2013 B2
8370479 Hart et al. Feb 2013 B2
8370826 Johnson et al. Feb 2013 B2
8375292 Coffman et al. Feb 2013 B2
8375362 Brette et al. Feb 2013 B1
RE44110 Venigalla Mar 2013 E
8392116 Lehmann et al. Mar 2013 B2
8392561 Dyer et al. Mar 2013 B1
8396929 Helfman et al. Mar 2013 B2
8397056 Malks et al. Mar 2013 B1
8406119 Taylor et al. Mar 2013 B2
8412579 Gonzalez Apr 2013 B2
8417764 Fletcher et al. Apr 2013 B2
8417854 Weng et al. Apr 2013 B2
8423418 Hald et al. Apr 2013 B2
8424058 Vinogradov et al. Apr 2013 B2
8433664 Ziegler et al. Apr 2013 B2
8433815 van Coppenolle et al. Apr 2013 B2
8438132 Dziuk et al. May 2013 B1
8442933 Baier et al. May 2013 B2
8442999 Gorelik et al. May 2013 B2
8443069 Bagepalli et al. May 2013 B2
8443071 Lu et al. May 2013 B2
8457996 Winkler et al. Jun 2013 B2
8458189 Ludwig et al. Jun 2013 B1
8458315 Miche et al. Jun 2013 B2
8458596 Malks et al. Jun 2013 B1
8458600 Dheap et al. Jun 2013 B2
8473317 Santoso et al. Jun 2013 B2
8478861 Taylor et al. Jul 2013 B2
8484156 Hancsarik et al. Jul 2013 B2
8489527 van Coppenolle et al. Jul 2013 B2
8490047 Petschnigg et al. Jul 2013 B2
8490876 Tan et al. Jul 2013 B2
8495072 Kapoor et al. Jul 2013 B1
8495511 Redpath Jul 2013 B2
8495683 van Coppenolle et al. Jul 2013 B2
8516296 Mendu Aug 2013 B2
8516383 Bryant et al. Aug 2013 B2
8521621 Hetzer et al. Aug 2013 B1
8522217 Dutta et al. Aug 2013 B2
8522341 Nochta et al. Aug 2013 B2
8532008 Das et al. Sep 2013 B2
8533660 Mehr et al. Sep 2013 B2
8538799 Haller et al. Sep 2013 B2
8543568 Wagenblatt Sep 2013 B2
8547838 Lee et al. Oct 2013 B2
8549157 Schnellbaecher Oct 2013 B2
8555248 Brunswig et al. Oct 2013 B2
8560636 Kieselbach Oct 2013 B2
8560713 Moreira Sa de Souza et al. Oct 2013 B2
8566193 Singh et al. Oct 2013 B2
8571908 Li et al. Oct 2013 B2
8572107 Fan et al. Oct 2013 B2
8577904 Marston Nov 2013 B2
8578059 Odayappan et al. Nov 2013 B2
8578328 Kamiyama et al. Nov 2013 B2
8578330 Dreiling et al. Nov 2013 B2
8584082 Baird et al. Nov 2013 B2
8588765 Harrison Nov 2013 B1
8594023 He et al. Nov 2013 B2
8635254 Harvey et al. Jan 2014 B2
8689181 Biron, III Apr 2014 B2
8752074 Hansen Jun 2014 B2
8762454 Kohlhaas et al. Jun 2014 B2
8762497 Hansen Jun 2014 B2
8769095 Hart et al. Jul 2014 B2
8788632 Taylor et al. Jul 2014 B2
8849827 Moganti et al. Sep 2014 B2
8898294 Hansen Nov 2014 B2
20020116550 Hansen Aug 2002 A1
20020138596 Darwin et al. Sep 2002 A1
20030093710 Hashimoto et al. May 2003 A1
20030117280 Prehn Jun 2003 A1
20040027376 Calder et al. Feb 2004 A1
20040133635 Spriestersbach et al. Jul 2004 A1
20040158455 Spivack et al. Aug 2004 A1
20040158629 Herbeck et al. Aug 2004 A1
20040177124 Hansen Sep 2004 A1
20050015369 Styles et al. Jan 2005 A1
20050021506 Sauermann et al. Jan 2005 A1
20050027675 Schmitt et al. Feb 2005 A1
20050060186 Blowers et al. Mar 2005 A1
20050102362 Price et al. May 2005 A1
20050198137 Pavlik et al. Sep 2005 A1
20050213563 Shaffer et al. Sep 2005 A1
20050240427 Crichlow Oct 2005 A1
20050289154 Weiss et al. Dec 2005 A1
20060186986 Ma et al. Aug 2006 A1
20060208871 Hansen Sep 2006 A1
20070005736 Hansen et al. Jan 2007 A1
20070016557 Moore et al. Jan 2007 A1
20070027854 Rao et al. Feb 2007 A1
20070027914 Agiwal Feb 2007 A1
20070162486 Brueggemann et al. Jul 2007 A1
20070174158 Bredehoeft et al. Jul 2007 A1
20070260593 Delvat Nov 2007 A1
20070266384 Labrou et al. Nov 2007 A1
20070300172 Runge et al. Dec 2007 A1
20080098085 Krane et al. Apr 2008 A1
20080172632 Stambaugh Jul 2008 A1
20080208890 Milam Aug 2008 A1
20080222599 Nathan et al. Sep 2008 A1
20080231414 Canosa Sep 2008 A1
20080244594 Chen et al. Oct 2008 A1
20080255782 Bilac et al. Oct 2008 A1
20080319947 Latzina et al. Dec 2008 A1
20090006391 Ram Jan 2009 A1
20090119586 Weng et al. May 2009 A1
20090150431 Schmidt et al. Jun 2009 A1
20090193148 Jung et al. Jul 2009 A1
20090259442 Gandikota et al. Oct 2009 A1
20090265760 Zhu et al. Oct 2009 A1
20090299990 Setlur et al. Dec 2009 A1
20090300060 Beringer et al. Dec 2009 A1
20090319518 Koudas et al. Dec 2009 A1
20090327337 Lee et al. Dec 2009 A1
20100017379 Naibo et al. Jan 2010 A1
20100017419 Francis et al. Jan 2010 A1
20100057702 Ghosh et al. Mar 2010 A1
20100064277 Baird et al. Mar 2010 A1
20100077001 Vogel et al. Mar 2010 A1
20100094843 Cras Apr 2010 A1
20100095267 Bouillet et al. Apr 2010 A1
20100125584 Navas May 2010 A1
20100125826 Rice et al. May 2010 A1
20100250440 Wang et al. Sep 2010 A1
20100257242 Morris Oct 2010 A1
20100286937 Hedley et al. Nov 2010 A1
20100287075 Herzog et al. Nov 2010 A1
20100293360 Schoop et al. Nov 2010 A1
20110078599 Guertler et al. Mar 2011 A1
20110078600 Guertler et al. Mar 2011 A1
20110099190 Kreibe Apr 2011 A1
20110137883 Lagad et al. Jun 2011 A1
20110138354 Hertenstein et al. Jun 2011 A1
20110145712 Pontier et al. Jun 2011 A1
20110145933 Gambhir et al. Jun 2011 A1
20110153505 Brunswig et al. Jun 2011 A1
20110154226 Guertler et al. Jun 2011 A1
20110161409 Nair et al. Jun 2011 A1
20110167070 Ananthanarayanan et al. Jul 2011 A1
20110173203 Jung et al. Jul 2011 A1
20110173220 Jung et al. Jul 2011 A1
20110173264 Kelly Jul 2011 A1
20110208788 Heller et al. Aug 2011 A1
20110209069 Mohler Aug 2011 A1
20110219327 Middleton, Jr. et al. Sep 2011 A1
20110231592 Bleier et al. Sep 2011 A1
20110276360 Barth et al. Nov 2011 A1
20110307295 Steiert et al. Dec 2011 A1
20110307363 N et al. Dec 2011 A1
20110307405 Hammer et al. Dec 2011 A1
20110320525 Agarwal et al. Dec 2011 A1
20120005577 Chakra et al. Jan 2012 A1
20120059856 Kreibe et al. Mar 2012 A1
20120072435 Han Mar 2012 A1
20120072885 Taragin et al. Mar 2012 A1
20120078959 Cho et al. Mar 2012 A1
20120095973 Kehoe et al. Apr 2012 A1
20120096429 Desai et al. Apr 2012 A1
20120130856 Petri et al. May 2012 A1
20120131473 Biron, III May 2012 A1
20120136649 Freising et al. May 2012 A1
20120143970 Hansen Jun 2012 A1
20120144370 Kemmler et al. Jun 2012 A1
20120150859 Hu Jun 2012 A1
20120158914 Hansen Jun 2012 A1
20120166319 Deledda et al. Jun 2012 A1
20120167006 Tillert et al. Jun 2012 A1
20120173671 Callaghan et al. Jul 2012 A1
20120197488 Lee et al. Aug 2012 A1
20120197852 Dutta et al. Aug 2012 A1
20120197856 Banka et al. Aug 2012 A1
20120197898 Pandey et al. Aug 2012 A1
20120197911 Banka et al. Aug 2012 A1
20120239381 Heidasch Sep 2012 A1
20120239606 Heidasch Sep 2012 A1
20120254825 Sharma et al. Oct 2012 A1
20120259932 Kang et al. Oct 2012 A1
20120284259 Jehuda Nov 2012 A1
20120311501 Nonez et al. Dec 2012 A1
20120311526 DeAnna et al. Dec 2012 A1
20120311547 DeAnna et al. Dec 2012 A1
20120324066 Alam et al. Dec 2012 A1
20130006400 Caceres et al. Jan 2013 A1
20130036137 Ollis et al. Feb 2013 A1
20130054563 Heidasch Feb 2013 A1
20130060791 Szalwinski et al. Mar 2013 A1
20130067031 Shedrinsky Mar 2013 A1
20130067302 Chen et al. Mar 2013 A1
20130073969 Blank et al. Mar 2013 A1
20130080898 Lavian et al. Mar 2013 A1
20130110496 Heidasch May 2013 A1
20130110861 Roy et al. May 2013 A1
20130124505 Bullotta et al. May 2013 A1
20130124616 Bullotta et al. May 2013 A1
20130125053 Brunswig et al. May 2013 A1
20130132385 Bullotta et al. May 2013 A1
20130166563 Mueller et al. Jun 2013 A1
20130166569 Navas Jun 2013 A1
20130173062 Koenig-Richardson Jul 2013 A1
20130179565 Hart et al. Jul 2013 A1
20130185593 Taylor et al. Jul 2013 A1
20130185786 Dyer et al. Jul 2013 A1
20130191767 Peters et al. Jul 2013 A1
20130207980 Ankisettipalli et al. Aug 2013 A1
20130211555 Lawson et al. Aug 2013 A1
20130246897 O'Donnell Sep 2013 A1
20130262641 Zur et al. Oct 2013 A1
20130275344 Heidasch Oct 2013 A1
20130275550 Lee et al. Oct 2013 A1
20130304581 Soroca et al. Nov 2013 A1
20140019432 Lunenfeld Jan 2014 A1
20140282370 Schaefer et al. Sep 2014 A1
Foreign Referenced Citations (2)
Number Date Country
WO-2008115995 Sep 2008 WO
WO-2014145084 Sep 2014 WO
Non-Patent Literature Citations (5)
Entry
Axelsen et al. “Package Templates: A Definition by Semantics-Preserving Source-to-Source Transformations to Efficient Java Code” Proceeding GPCE '12 Proceedings of the 11th International Conference on Generative Programming and Component Engineering pp. 50-59 ACM New York, NY, USA © 2012.
Thirunarayan et al. “Simulating multiple inheritance and generics in Java” Computer Languages 25 (1999) pp. 189-210.
International Search Report for PCTUS2014029749, 3 pages (Aug. 27, 2014).
Shi, L. et al., Understanding Text Corpora with Multiple Facets, IEEE Symposium on Visual Analytics Science and Technology (VAST), 99-106 (2010).
Written Opinion for PCTUS2014029749, 8 pages (Aug. 27, 2014).
Related Publications (1)
Number Date Country
20140282370 A1 Sep 2014 US
Provisional Applications (1)
Number Date Country
61793627 Mar 2013 US