Source: https://patents.google.com/patent/US10248722B2/en
Timestamp: 2019-07-22 15:28:40
Document Index: 683105215

Matched Legal Cases: ['application No. 17152510', 'Application No. 2007323689', 'Application No. 2014201506', 'Application No. 2014201507', 'Application No. 2014201511', 'Application No. 2014201580', 'Application No. 2666364', 'Application No. 2666364', 'Application No. 07864644', 'Application No. 14158958', 'Application No. 14158958', 'Application No. 14158977', 'Application No. 14158977', 'Application No. 14159629', 'Application No. 15155845', 'Application No. 16157174', 'Application No. 17152510', 'Application No. 1404479', 'Application No. 1404479', 'Application No. 1413935', 'Application No. 1413935', 'Application No. 198253', 'Application No. 198253', 'Application No. 198253', 'Application No. 2012434', 'Application No. 2013306', 'Application No. 622414', 'Application No. 622484', 'Application No. 622497', 'Application No. 622497']

US10248722B2 - Multi-language support for dynamic ontology - Google Patents
Multi-language support for dynamic ontology Download PDF
US10248722B2
US10248722B2 US15/050,263 US201615050263A US10248722B2 US 10248722 B2 US10248722 B2 US 10248722B2 US 201615050263 A US201615050263 A US 201615050263A US 10248722 B2 US10248722 B2 US 10248722B2
US15/050,263
US20170242922A1 (en
2016-02-22 Application filed by Palantir Technologies Inc filed Critical Palantir Technologies Inc
2016-02-22 Priority to US15/050,263 priority Critical patent/US10248722B2/en
2016-04-01 Assigned to Palantir Technologies Inc. reassignment Palantir Technologies Inc. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BUTTERS, JOHN, COOK, CHRISTOPHER, LEBLANC, DAVID
2017-08-24 Publication of US20170242922A1 publication Critical patent/US20170242922A1/en
2019-04-02 Publication of US10248722B2 publication Critical patent/US10248722B2/en
G06F17/30734—
G06F17/30657—
A system with methodology for providing multi-language support for dynamic ontology. In one embodiment, for example, a method comprises: storing an ontology for a data store, wherein the ontology comprises a plurality of data types; for each data type of the plurality of data types: storing, in the ontology, one or more display values, wherein each display value is associated with a locale; determining a locale identifier corresponding to a particular locale; selecting a particular display value corresponding to the particular locale; displaying the particular display value.
This application is related to U.S. patent application Ser. No. 14/630,472, “System with Methodology for Dynamic Modular Ontology,” filed Feb. 24, 2015, which is incorporated by reference herein in its entirety. This application is further related to U.S. patent application Ser. No. 13/916,447, now U.S. Pat. No. 8,856,153, “Creating Data in a Data Store Using a Dynamic Ontology,” filed Jun. 12, 2013, which is incorporated by reference herein in its entirety. This application is further related to U.S. patent application Ser. No. 13/106,636, now U.S. Pat. No. 8,489,623, “Creating Data in a Data Store Using a Dynamic Ontology,” filed May 12, 2011, which is incorporated by reference herein in its entirety. This application is further related to U.S. patent application Ser. No. 11/602,626, now U.S. Pat. No. 7,962,495, “Creating Data in a Data Store using a Dynamic Ontology,” filed Nov. 20, 2006, which is incorporated by reference herein in its entirety.
The present invention relates to techniques for providing multi-language support for a dynamic ontology.
Computer-based database systems typically organize data according to a fixed structure of tables and relationships. The structure may be described using an ontology comprising a data model that is used to represent the structure and reason about objects in the structure. In particular, a dynamic ontology allows a user to specify custom object types, property types, and parser definitions. Examples of a dynamic ontology in a computer system are described in related U.S. patent application Ser. No. 11/602,626, “Creating Data In A Data Store Using A Dynamic Ontology”, filed Nov. 20, 2006, and U.S. patent application Ser. No. 14/630,472, “System with Methodology for Dynamic Modular Ontology,” filed Feb. 24, 2015, the entire contents of which are hereby incorporated by reference.
Localization is the process of adapting a product to a specific country or region. For software, the visual elements presented by the software need to be presented in the language and format for the specific country or region. Typically, an alternate language version of the software is created for the country or region. However, for an ontology and the database data described by the ontology, it would be inefficient to create copies of the data for each language. Furthermore, with a dynamic ontology where the user specifies custom object types and property types, the software has to be able to present the visual elements of the custom object types and property types in multiple language.
The claims may serve as a summary of the present invention.
FIG. 1 is a block diagram of an example computing device which may be used for implementing some embodiments of the present invention.
FIG. 2 is a block diagram of a software system for controlling the operation of the example computing device of FIG. 1.
FIG. 3 is a block diagram of a distributed computing environment in which some embodiments of the present invention may be implemented.
FIG. 4 is a flowchart of a process for displaying display values for a multi-language dynamic ontology according to some embodiments of the present invention.
In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention. As to the flowcharts, each block within the flowcharts represents both a method step and an apparatus element for performing the method step. Depending upon the requirements of the particular implementation at hand, the corresponding apparatus element may be configured in hardware, software, firmware, or combinations thereof.
It will also be understood that, although the terms “first,” “second,” etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first device could be termed a second device, and, similarly, a second device could be termed a first device, without departing from the scope of the invention. The first device and the second device are both devices, but they are not the same device.
The terminology used herein is for the purpose of describing particular limitations only and is not intended to be limiting of the claims. As used in this description and the appended claims, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the term “and/or” as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. It will be further understood that the term “includes,” “including,” “comprises,” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
Computer-implemented techniques for selecting alternative display values for data object types and object property types in a dynamic ontology are provided. The techniques provide an improved user interface because it allows for display of a dynamic ontology in multiple languages. In some example embodiments, multiple display values are stored with an ontology definition, where each display value is for a particular locale. For example, the definition for object property type “Eyes” may comprise a display name value of “Eyes” and an alternative display name value of “Yeux” for a French-Canadian locale.
In some example embodiments, an ontology for a data store comprises a plurality of data object types and a plurality of object property types. Each data object type and each object property type have one or more display values that correspond to a locale. Display values may include a display name or a description for the data object type or object property type. Display values may also include one or more enumerated values. Based on a locale specified by a user, the display value corresponding to the specified locale is retrieved and displayed in the user interface.
2.0 BASIC IMPLEMENTING MECHANISMS
Some embodiments of the present invention may be implemented on one or more computing devices. Such a computing device may be implemented in various forms including, but not limited to, a client, a server, a network device, a mobile device, a cell phone, a smart phone, a laptop computer, a desktop computer, a workstation computer, a personal digital assistant, a blade server, a mainframe computer, and other types of computers. The computing device described below and its components, including their connections, relationships, and functions, is meant to be exemplary only, and not meant to limit implementations of some embodiments of the present invention described in this specification. Other computing devices suitable for implementing some embodiments of the present invention may have different components, including components with different connections, relationships, and functions.
FIG. 1 is a block diagram that illustrates an example computing device 100 suitable for implementing some embodiments of the present invention. Computing device 100 includes bus 102 or other communication mechanism for addressing main memory 106 and for transferring data between and among the various components of device 100. Computing device 100 also includes one or more hardware processors 104 coupled with bus 102 for processing information. A hardware processor 104 may be a general purpose microprocessor, a system on a chip (SoC), or other processor suitable for implementing the described technologies.
Methods disclosed herein may also be performed by computing device 100 in response to processor(s) 104 executing one or more sequences of one or more instructions contained in main memory 106. Such instructions may be read into main memory 106 from another storage medium, such as storage device(s) 110. Execution of the sequences of instructions contained in main memory 106 causes processor(s) 104 to perform the process steps described herein. In some embodiments of the present invention, hard-wired circuitry may be used in place of or in combination with software instructions.
FIG. 2 is a block diagram of a software system for controlling the operation of the example computing device 100 of FIG. 1. As shown, a computer software system 200 is provided for directing the operation of the computing device 100. Software system 200, which is stored in system memory (RAM) 106 and on fixed storage (e.g., hard disk) 110, includes a kernel or operating system (OS) 210. The OS 210 manages low-level aspects of computer operation, including managing execution of processes, memory allocation, file input and output (I/O), and device I/O. One or more application programs, such as client application software or “programs” 202 (e.g., 202A, 202B, 202C . . . 202N) may be “loaded” (i.e., transferred from fixed storage 110 into memory 106) for execution by the system 200. The applications or other software intended for use on the device 100 may also be stored as a set of downloadable computer-executable instructions, for example, for downloading and installation from an Internet location (e.g., Web server).
The OS 210 can execute directly on the bare hardware (e.g., processor(s) 104) 220 of device 100. Alternatively, a hypervisor or virtual machine monitor (VMM) 230 may be interposed between the bare hardware 220 and the OS 210. In this configuration, VMM 230 acts as a software “cushion” or virtualization layer between the OS 210 and the bare hardware 220 of the device 100.
VMM 230 instantiates and runs virtual machine instances (“guest machines”). Each guest machine comprises a “guest” operating system, such as OS 210, and one or more applications, such as applications 202, designed to execute on the guest operating system. The VMM 230 presents the guest operating systems with a virtual operating platform and manages the execution of the guest operating systems. In some instances, the VMM 230 may allow a guest operating system to run as through it is running on the bare hardware 220 of the device 100 directly. In these instances, the same version of the guest operating system configured to execute on the bare hardware 104 directly may also be able to execute on VMM 230 without modification or reconfiguration. In other words, VMM 230 may provide full hardware and CPU virtualization to a guest operating system in some instances. In other instances, a guest operating system may be specially designed or configured to execute on VMM 230 for efficiency. In these instances, the guest operating system is “aware” that it executes on a virtual machine monitor. In other words, VMM 230 may provide para-virtualization to a guest operating system in some instances.
The above-described computer hardware and software are presented for purpose of illustrating basic underlying computer components that may be employed for implementing some embodiments of the present invention. Some embodiments of the present invention, however, are not necessarily limited to any particular computing environment or computing device configuration. Instead, some embodiments of the present invention may be implemented in any type of system architecture or processing environment capable of supporting the embodiments as presented in detail below.
While some embodiments of the present invention may operate within a single standalone computing device, the disclosed technologies may be implemented in a distributed computing environment. FIG. 3 is a block diagram of a distributed computing environment 300 in which some embodiments of the present invention may be implemented.
As shown, environment 300 comprises one or more human analysts 320 that use one or more client computing devices 330. The clients 330 are operatively coupled to one or more dispatch server computers 350 by a data network 340. The dispatch server 350 is also operatively coupled to a data repository 360.
In some exemplary embodiments of the present invention, the dispatch server 350 comprises one or more server computing devices that run a conventional server operating system such as MICROSOFT WINDOWS (e.g. XP, VISTA, 7, 8, etc.), MAC OS X, LINUX (e.g., UBUNTU, FEDORA, etc.), or the like.
In some exemplary embodiments of the present invention, the data repository 360 comprises a conventional database management system such as a conventional relational database management system such as ORACLE DATABASE SERVER, or the like.
Network 340 may include a number of conventional wired and/or wireless network systems including, for instance, a cellular telephone network, a Local Area Network (LAN), a Wide Area Network (WAN), the internet, and the like.
In operation, an analyst 320 uses application(s) 335 on a client 330 to access, store, and analyze (i.e., investigate) investigative data 365 stored in the data repository 360, and possibly to collaborate with other analysts 320 across organizational and/or geographical boundaries. The application(s) 335 may drive a graphical user interface that is presented at the clients 330. In some embodiments, the graphical user interface is web browser-based. For example, the graphical user interface may comprise a series of web pages displayed by a conventional web browser application.
The investigative data 365 may comprise virtually any structured (e.g., log files, spreadsheets, tables, etc.) and/or unstructured data (e.g., e-mails, documents, images, videos, etc.) that is the subject of an investigation. In some embodiments, the investigative data 365 is domain-specific. For example, the investigative data 365 may be specific to a health care domain, a financial domain, an intelligence domain, a legal domain, a law enforcement domain, or other domain in which the analysts 320 have particular expertise.
The dispatch server 350 provides a gateway to the application(s) 335 on the clients 330 for accessing and storing the investigative data 365 in the data repository 360 and connects to the data repository 360 that stores the investigative data 365. In operation, the dispatch server 350 handles business logic, manages security and policy controls, and responds to user requests as part of an investigative analysis computing platform. The application(s) 335 may include the following applications (or sets of computer-executable instructions), or a subset or a superset thereof, that an analyst 320 may use to conduct an investigation on the investigative data 365:
a home application 371;
a browser application 372;
a graph application 373;
a map application 374;
a collaboration application 375;
an object explorer application 376; and/or
an ontology application 377.
In conjunction with the hardware components (e.g., memory, disk, CPU, etc.), the operating system, and the graphical user interface of a client 330, the home application 371 may be used by an analyst 320 to start the search and investigative analysis process including: keyword searching the investigative data 365, viewing personalized news feeds, opening existing and new investigations, and editing user accounting settings.
In conjunction with the hardware components (e.g., memory, disk, CPU, etc.), the operating system, and the graphical user interface of a client 330, the browser application 372 may be used by an analyst 320 to view and apply structure to the investigative data 365 including tagging, marking, highlighting, and/or annotating particular words, text, or keywords in the investigative data 365.
In conjunction with the hardware components (e.g., memory, disk, CPU, etc.), the operating system, and the graphical user interface of a client 330, the graph application 373 may be used by an analyst 320 to visually explore semantic relationships within the investigative data 365 including: viewing the investigative data 365 as a graph of nodes and edges, filtering the graph to explore the investigative data 365, and annotating the graph for use in presentations.
In conjunction with the hardware components (e.g., memory, disk, CPU, etc.), the operating system, and the graphical user interface of a client 330, the map application 374 provides geospatial analytic capabilities to an analyst 320 including geo-mapping the investigative data 365 and geo-tagging the investigative data 365.
In conjunction with the hardware components (e.g., memory, disk, CPU, etc.), the operating system, and the graphical user interface of a client 330, the collaboration application 375 may be used by an analyst 320 to build research and discussion communities including: forming teams of analysts 320, exchanging messages with other analysts 320, sharing media rich links to the investigative data 365 with other analysts 320, and sending notification of shared graphs.
In conjunction with the hardware components (e.g., memory, disk, CPU, etc.), the operating system, and the graphical user interface of a client 330, the object explorer application 376 may be used by an analyst 320 to drill down within the investigative data 365 to arrive at interesting sub-sets of the investigative data 365 for further analysis in other applications 335 such as the graph application 373 and/or the map application 374.
In conjunction with the hardware components (e.g., memory, disk, CPU, etc.), the operating system, and the graphical user interface of a client 330, the ontology application 377 may be used by an analyst 320 to customize a dynamic ontology for the investigative data 365 including: adding new data object types, new property types, and new link types to an ontology, deleting unused data object types, property types, and link types from an ontology, and adding and editing parser sets.
Each of the above-identified applications correspond to a set of computer-executable instructions for performing one or more functions described above. These applications (i.e., set of computer-executable instructions) need be implemented as separate software programs, procedures, or applications, and thus various subset of these applications may be combined or otherwise rearranged in some embodiments of the present invention. For example, the browser application 372 may be combined with the object explorer application 376. In some embodiments of the present invention, the application(s) 335 may comprise a subset of the applications identified above. Furthermore, the application(s) 335 may include additional applications not described above.
The dispatch server 350 may include an application server application 351. In conjunction with the hardware components (e.g., memory, disk, CPU, etc.) and the operating system of the dispatch server 350, the application server application 351 may comprise server-side components, procedures, modules, or functions of the application(s) 335. Thus, in some embodiments, an application 335 may have a client-side component, procedure, module or function that executes at the clients 330 and a server-side component, procedure, module or function that executes at the dispatch server 350.
The above-described computer hardware and software are presented for purposes of illustrating the basic underlying computer components that may be employed for implementing some embodiments of the present invention. For purposes of discussion, the following description will present examples in which it will be assumed that there exists a “server” (e.g., dispatch server 350) that communicates with one or more “clients” (e.g., clients 330). The present invention, however, is not limited to any particular environment or device configuration. In particular, a client/server distinction is not necessary to the invention, but is used to provide a framework for discussion. Instead, the present invention may be implemented in any type of system architecture or processing environment capable of supporting the methodologies of the embodiments of the present invention presented in detail herein.
4.0 DYNAMIC ONTOLOGY OVERVIEW
An ontology may be defined generally as a categorization of the world. According to some embodiments of the present invention, a dynamic ontology is a categorization of a particular investigative world. For example, the particular investigative world may be in a health care domain, a legal domain, a financial analysis domain, a city or state police domain, an intelligence domain, or other specific domain in which investigations on data are conducted by analysts with particular expertise in the specific domain. Domain-specific types of data objects, properties, and links may be defined in a dynamic ontology to support the analysts in a particular field of expertise. A dynamic ontology may be considered dynamic because, according to some embodiments of the present invention, the dynamic ontology can be customized to meet the specific needs of an investigative organization and can be changed as the organization and its assignments evolve.
A “data object” may be defined as a container for data and represents a thing in the real world such as, for example, an entity (e.g. a person, a place, an organization, or other noun), an event (e.g., something that happens at a point in time or for a duration), a document (e.g., a unstructured data source, an e-mail message, a news report, and the like), or a multimedia object (e.g., a rich-media type, video, audio, images, and the like). According to some embodiments, a data object itself comprises a display name and a unique identifier and otherwise does not hold investigative data. Instead, a data object may have one or more “object components” (e.g., properties, links, and notes), which can be multiple. For example, a “person” data object can have multiple “name” properties.
A “property” may be defined as an attribute of a data object. A property may represent individual investigative data items such as a name of a person or a phone number, as just some examples.
A “link” may be defined as a connection between data objects. Various types of connections are possible. For example, a link may represent a familial relationship between two persons or membership relationship between a person and a religious organization.
According to some embodiments of the present invention, a dynamic ontology is defined in an ontology definition. The ontology definition is embodied in a human and computer readable data format such as, for example, eXtensible Markup Language (XML), JavaScript Object Notation (JSON), YAML, or the like.
According to some embodiments, the dispatch server 350 uses the dynamic ontology at runtime to represent the investigative data 365 stored in data repository 360 according to a domain-specific data object model as defined by the dynamic ontology. The dynamic ontology may comprise one or more data type definitions including data object type definitions, property type definitions, link type definitions, or a subset or a superset thereof.
5.0 DYNAMIC ONTOLOGY LOCALIZATION
A locale is a geographical or political area with a particular set of language, date, time, and currency formats. Thus, for a particular locale, text in a graphical user interface must be displayed in the language for that locale. Additionally, values such as dates, times, currency, and numbers may need to be displayed in a particular format. For example, a locale may format the number one million as “1,000,000” while another locale may format the number as “1.000.000.”
In an embodiment, the data object types, property types, and link types of the dynamic ontology may respectively comprise one or more attributes that have a display value. The display value is one or more strings that are displayed in the graphical user interface in connection with the associated ontology element. For example, a data object type may comprise a display name attribute and a description attribute.
Each display value must be displayed in the language corresponding to a selected locale. For example, an Eye Color property type may have a display name “Eyes” with a description, “Describes the eye color of the object.” A locale that uses French would have a display name “Yeux” with the description, “Décrit la couleur des yeux de l'objet.”
An application may be configured with a locale identifier. The “locale identifier” is a unique identifier associated with a locale. For example, a French-Canadian locale may be associated with the locale identifier “fr_CA.” The locale identifier indicates a desired locale to use when displaying items in the graphical user interface.
In an embodiment, the locale is identified based on the locale configured with the connected dispatch server. In other embodiments, the locale may be determined based on a locale identifier specified in a configuration file stored on the computer, selected by the analyst within the application, determined by the particular version of the application, or other methods for an analyst to specify a locale preference.
According to an embodiment, an attribute may comprise one or more alternate display values. Each alternate display value is associated with a locale identifier. Thus, each alternate display value corresponds to a particular locale. For the purpose of illustration, assume the ontology is stored in XML format. Code Snippet 1 is an example XML snippet that describes the display name and description for the Age property type.
<uri>com.example.property.Eyes</uri>
<displayName>Eyes</displayName>
<alternateDisplayNames>
<alternateDisplayName>
<locale>fr_CA</locale>
<value>yeux</value>
</alternateDisplayName>
</alternateDisplayNames>
<description>Describes the eye color of an object.</description>
<alternateDescriptions>
<alternateDescription>
<value>Décrit la couleur des yeux de l'objet.</value>
</alternateDescription>
</alternateDescriptions>
When the dispatch server uses the dynamic ontology to present information to the application, it uses the selected locale and the locale identifiers associated with the alternate display values to determine a string to display in the graphical user interface.
5.1 Process Overview
FIG. 4 is a flowchart of a process 400 for determining a display value according to some embodiments of the present invention. According to some embodiments of the present invention, the process 400 is performed by an application 335. In these embodiments, some of the steps may be performed by a client 330 and some of the steps of the process 400 may be performed by the dispatch server 350. In other embodiments, all of the steps of the process 400 may be performed by a client 330, or all of the steps of the process 400 may be performed by the dispatch server 350. Furthermore, the process 400 may involve performance of additional steps not shown in FIG. 4.
At step 402, the application determines a data type to display, such as a data object type, a property type, or a link type. For example, if the analyst is entering a property of a particular property type in the graphical user interface, the application displays the particular property type. For the purpose of illustration, assume the application displays a property of the Eye Color property type. Although the present example describes displaying a single data type, embodiments of the invention may involve displaying multiple data types concurrently in the graphical user interface.
At step 404, the application retrieves one or more display values for the data type. In an embodiment, data type is associated with a universal resource indicator. The URI is a unique, fully-qualified identifier of the data type. For example, the Eye Color property type may have the URI “com.example.property.Eyes.” The application uses the URI to locate the data type in the dynamic ontology and retrieve the display values for each attribute of the data type with a display value. In the present example, the application retrieves the display values for the display name attribute and description attribute of the Eye Color property type.
In an embodiment, an attribute comprises one or more alternate display values. The application retrieves the locale identifier and the value for each alternate display value. In the present example, the application also retrieves the alternate display name and the alternate description corresponding to the locale identifier “fr_CA,” for the French Canadian locale.
At step 406, the application determines a locale identifier associated with a selected locale. In an embodiment, the application is configured with a particular locale identifier. In another embodiment, the selected locale is based on the locale associated with the connected dispatch server. The application receives a locale identifier from the dispatch server. In other embodiments, a locale identifier is stored in data associated with the application or set by an analyst during application runtime. In an embodiment, if a locale is not specified or selected, the application may select a default locale.
For the purpose of illustration, assume that the selected locale is French-Canadian. The application determines that the locale identifier associated with the selected locale is “fr_CA.”
At step 408, the application selects a display value from the one or more display values for the ontology item. In an embodiment, the application selects the display value based on the locale identifier. In the present example, the application selects the alternate display name and the alternate description associated with the locale identifier “fr_CA.” The application retrieves the display name value “Yeux” and the description value, “Décrit la couleur des yeux de l'objet.”
In an embodiment, the data type is configured with a default display value. For example, the Eye Color property may have a default display name and a default description. If no display values for an attribute are associated with the locale identifier, then the application may select the default display value.
At step 410, the application displays the selected display value in the graphical user interface.
5.2 Data Object Type
A data object type definition defines a new data object type or extends the definition of an existing data object type. The ontology may contain multiple data object type definitions. In some embodiments, the data object type definition may include a universal resource indicator, a display name attribute, and a description attribute.
The URI may be a unique fully-qualified identifier for the data object type. For example, a Commercial Flight data object type may have the URI “com.example.object.commercialflight.”
The display name may be used as a default label for data objects of the data object type. For example, an Airline Flight data object type may have the display name “Commercial Flight.”
The description may be used to provide more information regarding the data object type. For example, a Commercial Flight data object type may have the description, “An entity describing a scheduled flight on a commercial aircraft.”
According to an embodiment, the data object type definition may comprise one or more alternate display names and/or one or more alternate descriptions, each of which correspond to a particular locale. The alternate display names and/or alternate descriptions comprise a locale identifier and a value. The locale identifier associates the alternate display name and/or alternate description with a particular locale. The value is the display value to use for that particular locale.
5.3 Property Type
A property type definition defines a new property type or extends the definition of an existing property type. The ontology may contain multiple property type definitions. The property type definition may include a universal resource indicator, a display name attribute, a description attribute, one or more validators, one or more formatters, and one or more parsers.
The URI is a unique fully-qualified identifier of the property type. For example, a Name property type may have the URI “com.example.property.Name.”
The display name may be used when a property of the property type is displayed in a graphical user interface. For example, a Person data object type may have a Name property type with the display name “Name.”
The description may be used to provide more information regarding the property type, such as the general type and structure of the data that a property of the property type can contain. For example, a Name property type may have the description “The name of the Person. This is a unitless property that takes a string.”
According to an embodiment, the property type definition may comprise one or more alternate display names and/or one or more alternate descriptions, each of which correspond to a particular locale. The alternate display names and/or alternate descriptions comprise a locale identifier and a value. The locale identifier associates the alternate display name and/or alternate description with a particular locale. The value is the display value to use for that particular locale.
A property type may be based on a base property type. A base property type specifies the general type and structure of the data that a property of the property type can contain. According to some embodiments, the base property type is one of: String, Number, Date, Enumeration, or Composite. If String, then the value of a property of the property type can contain a string of text. If Number, then the value of a property of the property type can contain a number. If Date, then the value of a property of the property type can contain a date.
If the base Enumeration, then the value of a property of the property type can contain one value in a list of predefined enumeration values. The graphical user interface may display a list of the enumeration values for a property of the property type.
In an embodiment, each enumeration value in the list of predefined enumeration values may have one or more alternate enumeration values. The alternate enumeration values comprise a locale identifier and a value. The locale identifier associates the alternate enumeration value with a particular locale. Thus, for a property of the property type, the list of predefined enumeration values may be displayed in the language of a selected locale. In another embodiment, a list of enumeration values is associated with a locale identifier.
If Composite, then the value of a property of the property type may comprise one or more components. Each component may be a String value, a Number value, or a Date value. Each component may also have a display name attribute. The display name may be used when a component of a property of the property type is displayed in a graphical user interface.
Each component may comprise one or more alternate display names. The alternate display names comprise a locale identifier and a value. The locale identifier associates the alternate display name with a particular locale. The value is the display value to use for that particular locale.
5.3.1 Formatter
A formatter may be used to format a value of a property of the property type for display in a graphic user interface. A formatter may define a display rule that governs how the value of a property of the property type is displayed. For example, a formatter for a Name property type may specify that values of properties of that property type are to be displayed: {FIRST_NAME} {LAST_NAME}. Alternatively, the formatter for the Name property type may specify that values of properties of that property type are to be displayed: {LAST_NAME}, {FIRST_NAME}.
In an embodiment, the property type comprises one or more alternate formatters, each corresponding to a particular locale. The formatter may define a display rule that governs how the value of a property of the property type is displayed for the particular locale.
For example, a formatter may define an alternate display value for dates, numbers, or currencies corresponding to a locale. One locale may format the number one million as “1,000,000” while another locale may format the number as “1.000.000.” Similarly, a locale may display a date as “MM/DD/YYYY” while another locale may display the date as “DD/MM/YYYY.” A currency formatter may specify the use of commas or decimals, such as for the number one million described above, but also may specify a particular currency symbol or currency name for the locale.
5.3.2 Parser
A parser may be used to extract a value for a property of the property type from text data entered by an analyst or other provided text data. A parser may include a regular expression for pattern matching the property value in given text data. In an embodiment, the parser includes a locale identifier for associating the parser with a particular locale. The parser is used to extract a value for a property of the property type when the application locale corresponds with the particular locale.
A date parser may be used to extract the components of a date when it is entered by an analyst or other provided text data. A date may be written in one or more date formats. The date format describes how a date appears in the text data. For example, a “date” format might include the month, the day of month, and the year: “Month/Day/Year.” As another example, a “date-time” format might include the month, the day of the month, the year, the hour, and the minute: “Month/Day/Year HH:MM.”
A locale may be associated with one or more alternative date formats. For example, an alternative “date” format might include the day of month, the month, and then the year: “Day/Month/Year.”
A currency parser defines how currency values are parsed when they is entered by an analyst or other provided text data. A currency parser may include a regular expression for defining a format for currency data. For example, a currency parser may expect dollar sign followed by an amount. An alternative currency parser may be associated with a locale that uses Euros. The alternative currency parser may expect a Euro symbol followed by an amount.
5.4 Link Type
A link type definition defines a new link type or extends the definition of an existing link type. The ontology may contain multiple link type definitions. The link type definition may include a universal resource indicator and a display name attribute.
The URI may be a unique fully-qualified identifier of the link type. For example, the URI of an Employer/Employee link type may be “com.example.link.employerof.”
The display name may include a label displayed when a link of the link type is displayed in a graphical user interface. For example, a link of an Employer/Employee link type may have the display name “Employer Of/Employee Of.”
According to an embodiment, the link type definition may comprise one or more alternate display names, each of which correspond to a particular locale. An alternate display name comprise a locale identifier and a value. The locale identifier associates the alternate display name with a particular locale. The value is the display value to use for that particular locale.
at one or more computing devices comprising one or more processors and storage media storing one or more computer programs executed by the one or more processors to perform the method, performing operations comprising:
storing an ontology for a data store, wherein the ontology comprises a plurality of data types; and
for each data type of the plurality of data types, storing, in the ontology, one or more display values in association with a respective locale identifier, wherein each display value indicates how the data type is displayed in a graphical user interface;
for at least a particular data type of the plurality of data types, storing, in the ontology, one or more parsers in association with a respective locale identifier;
determining a particular locale associated with a user computing device;
determining a locale identifier corresponding to the particular locale;
determining one or more data types of the plurality of data types to be displayed in a graphical user interface at the user computing device;
for each data type of the one or more data types, determining a display value corresponding to the particular locale using the locale identifier, and displaying the data type at the user computing device using the display value corresponding to the particular locale;
receiving, from the user computing device via the graphical user interface, input data corresponding to the particular data type;
determining, based on the locale identifier, a particular parser of the one or more parsers corresponding to the particular locale;
parsing the input data using the particular parser.
2. The method of claim 1 wherein, for each data type, determining a display value further comprises:
retrieving the one or more display values for the data type;
selecting from the one or more display values the display value corresponding to the particular locale.
storing, in the ontology, a default display value not corresponding to a locale.
determining no display value corresponds to the particular locale;
selecting the default display value; and
displaying the default display value.
wherein each of the one or more data types comprise one or more attributes;
for each of the one or more attributes:
storing, in the ontology, one or more display values, wherein each display value is associated with a locale;
determining a locale identifier corresponding to a particular locale;
selecting a display value corresponding to the particular locale; and
displaying the display value.
6. The method of claim 1, wherein the data type is one of: a data object type, a property type, or a link type.
7. The method of claim 6 wherein the particular data type is a property type, the method further:
comprising storing the parsed input data in a property of the property type.
8. One or more non-transitory computer-readable media storing computer-executable instructions which, when executed by one or more computing devices, cause the one or more computing devices to perform operations comprising:
storing an ontology for a data store, wherein the ontology comprises a plurality of data types;
9. The one or more non-transitory computer-readable media of claim 8, wherein, for each data type, determining a particular display value further comprises:
10. The one or more non-transitory computer-readable media of claim 8, the operations further comprising:
11. The one or more non-transitory computer-readable media of claim 10, the operations further comprising:
12. The one or more non-transitory computer-readable media of claim 8, the operations further comprising:
selecting a particular display value corresponding to the particular locale; and
displaying the particular display value.
13. The one or more non-transitory computer-readable media of claim 8, wherein the data type is one of: a data object type, a property type, or a link type.
14. The one or more non-transitory computer-readable media of claim 13, wherein the particular data type is a property type, the operations further comprising storing the parsed input data in a property of the property type.
one or more computer-readable media storing one or more computer programs for execution by the one or more processors, the one or more computer programs comprising instructions for:
16. The system of claim 15 wherein, for each data type, determining a particular display value further comprises:
17. The system of claim 15, the one or more computer programs further comprising instructions for:
18. The system of claim 17, the one or more computer programs further comprising instructions for:
wherein no display value corresponds to the particular locale;
19. The system of claim 15, the one or more computer programs further comprising instructions for:
20. The system of claim 15, wherein the data type is one of: a data object type, a property type, or a link type.
21. The system of claim 20, wherein the particular data type is a property type, further comprising storing the parsed input data in a property of the property type.
US15/050,263 2016-02-22 2016-02-22 Multi-language support for dynamic ontology Active 2037-03-31 US10248722B2 (en)
US15/050,263 US10248722B2 (en) 2016-02-22 2016-02-22 Multi-language support for dynamic ontology
EP17152510.8A EP3208726A1 (en) 2016-02-22 2017-01-20 Multi-language support for dynamic ontology
US16/283,622 US20190188219A1 (en) 2016-02-22 2019-02-22 Multi-language support for dynamic ontology
US16/283,622 Continuation US20190188219A1 (en) 2016-02-22 2019-02-22 Multi-language support for dynamic ontology
US20170242922A1 US20170242922A1 (en) 2017-08-24
US10248722B2 true US10248722B2 (en) 2019-04-02
ID=57860776
US15/050,263 Active 2037-03-31 US10248722B2 (en) 2016-02-22 2016-02-22 Multi-language support for dynamic ontology
US16/283,622 Pending US20190188219A1 (en) 2016-02-22 2019-02-22 Multi-language support for dynamic ontology
US (2) US10248722B2 (en)
EP (1) EP3208726A1 (en)
US6226561B1 (en) 1997-06-20 2001-05-01 Hitachi, Ltd. Production planning system
US20020194201A1 (en) 2001-06-05 2002-12-19 Wilbanks John Thompson Systems, methods and computer program products for integrating biological/chemical databases to create an ontology network
US6539538B1 (en) 1995-11-13 2003-03-25 Concerto Software, Inc. Intelligent information routing system and method
WO2003060751A1 (en) 2001-12-26 2003-07-24 Compassoft, Inc. System and method for autonomously generating heterogeneous data source interoperability bridges based on semantic modeling derived from self adapting ontology
US20030172053A1 (en) 2002-02-01 2003-09-11 John Fairweather System and method for mining data
US6640231B1 (en) 2000-10-06 2003-10-28 Ontology Works, Inc. Ontology for database design and application development
US20040044992A1 (en) 2002-09-03 2004-03-04 Horst Muller Handling parameters in test scripts for computer program applications
US20050091420A1 (en) 2003-10-24 2005-04-28 Microsoft Corporation Mechanism for handling input parameters
US20060123027A1 (en) 2003-02-10 2006-06-08 Joern Kohlhammer Time-critical filtering of information using domain ontologies
US20060218163A1 (en) 2005-03-28 2006-09-28 Microsoft Corporation Rapid prototyping database
US20070074169A1 (en) 2005-08-25 2007-03-29 Fortify Software, Inc. Apparatus and method for analyzing and supplementing a program to provide security
US20070078872A1 (en) 2005-09-30 2007-04-05 Ronen Cohen Apparatus and method for parsing unstructured data
US7237192B1 (en) 2002-04-30 2007-06-26 Oracle International Corporation Methods and systems for naming and indexing children in a hierarchical nodal structure
US20070233709A1 (en) 2006-03-30 2007-10-04 Emc Corporation Smart containers
US20080103830A1 (en) 2006-11-01 2008-05-01 Microsoft Corporation Extensible and localizable health-related dictionary
AU2007323689A1 (en) 2006-11-20 2008-05-29 Palantir Technologies, Inc. Creating data in a data store using a dynamic ontology
US20090172821A1 (en) 2004-06-30 2009-07-02 Faycal Daira System and method for securing computer stations and/or communication networks
EP2221725A1 (en) 2009-02-19 2010-08-25 Mecel Aktiebolag Validator for validating conformity of a software configuration
WO2011071833A1 (en) 2009-12-07 2011-06-16 Accenture Global Services Gmbh Method and system for accelerated data quality enhancement
US8271948B2 (en) 2006-03-03 2012-09-18 Telefonaktiebolaget L M Ericsson (Publ) Subscriber identity module (SIM) application toolkit test method and system
US20120304150A1 (en) 2011-05-24 2012-11-29 Microsoft Corporation Binding between a layout engine and a scripting engine
US20130091084A1 (en) 2011-10-11 2013-04-11 Lockheed Martin Corporation Data quality issue detection through ontological inferencing
US20130208565A1 (en) 2012-02-09 2013-08-15 Pgs Geophysical As Methods and systems for correction of streamer-depth bias in marine seismic surveys
US20130251233A1 (en) 2010-11-26 2013-09-26 Guoliang Yang Method for creating a report from radiological images using electronic report templates
EP2778914A1 (en) 2013-03-15 2014-09-17 Palantir Technologies, Inc. Method and system for generating a parser and parsing complex data
DE102014204840A1 (en) 2013-03-15 2014-09-18 Palantir Technologies, Inc. Improved data integration tool
NL2013306A (en) 2013-08-08 2015-02-10 Palantir Technologies Template system for custom document generation.
DE102014215621A1 (en) 2013-08-08 2015-02-12 Palantir Technologies, Inc. Template system to generate user-customized documents
US20150142704A1 (en) * 2013-11-20 2015-05-21 Justin London Adaptive Virtual Intelligent Agent
US20150261847A1 (en) 2012-10-22 2015-09-17 Palantir Technologies, Inc. Sharing information between nexuses that use different classification schemes for information access control
EP3062245A1 (en) 2015-02-24 2016-08-31 Palantir Technologies, Inc. Dynamic modular ontology
US20160321245A1 (en) * 2015-04-30 2016-11-03 HeyWire, Inc. Call center sms-mms language router
EP3208726A1 (en) 2016-02-22 2017-08-23 Palantir Technologies, Inc. Multi-language support for dynamic ontology
2016-02-22 US US15/050,263 patent/US10248722B2/en active Active
2017-01-20 EP EP17152510.8A patent/EP3208726A1/en active Pending
2019-02-22 US US16/283,622 patent/US20190188219A1/en active Pending
US7685083B2 (en) 2002-02-01 2010-03-23 John Fairweather System and method for managing knowledge
US20070112714A1 (en) 2002-02-01 2007-05-17 John Fairweather System and method for managing knowledge
IL198253D0 (en) 2006-11-20 2009-12-24 Palantir Technologies Inc Creating data in a data store using a dynamic ontology
US8489623B2 (en) 2006-11-20 2013-07-16 Palantir Technologies, Inc. Creating data in a data store using a dynamic ontology
US20130275446A1 (en) 2006-11-20 2013-10-17 Palantir Technologies, Inc. Creating data in a data store using a dynamic ontology
US20170177634A1 (en) 2006-11-20 2017-06-22 Palantir Technologies, Inc. Creating data in a data store using a dynamic ontology
CA2666364C (en) 2006-11-20 2015-01-06 Palantir Technologies, Inc. Creating data in a data store using a dynamic ontology
US20150142766A1 (en) 2006-11-20 2015-05-21 Palantir Technologies, Inc. Creating Data in a Data Store Using a Dynamic Ontology
US20150046481A1 (en) 2013-03-15 2015-02-12 Palantir Technologies Inc. Method and system for generating a parser and parsing complex data
GB2513007A (en) 2013-03-15 2014-10-15 Palantir Technologies Inc Transformation of data items from data sources using a transformation script
US20150100559A1 (en) 2013-03-15 2015-04-09 Palantir Technologies Inc. Data integration tool
EP2911078A2 (en) 2014-02-20 2015-08-26 Palantir Technologies, Inc. Security sharing system
"BackTult-JD Edwards One World Version Control System," printed Jul. 23, 2007 in 1 page.
"BackTult—JD Edwards One World Version Control System," printed Jul. 23, 2007 in 1 page.
Davis K H ED-Wills L et al.: "Combining a Flexible Data Model and Phase Schema Translations in Data Model Reverse Engineering," Reverse Engineering, 1996, Proceedings of the Third Working Conference, Monterey, CA, USA, Nov. 8-10, 1996, pp. 141-151.
Davis K H ED—Wills L et al.: "Combining a Flexible Data Model and Phase Schema Translations in Data Model Reverse Engineering," Reverse Engineering, 1996, Proceedings of the Third Working Conference, Monterey, CA, USA, Nov. 8-10, 1996, pp. 141-151.
Derong et al., "Heterogeneity Resolution Based on Ontology in Web Services Composition," Proceedings of the IEEE International Conference on E-Commerce Technology for Dynamic E-Business, Sep. 13-15, 2004, Beijing China, pp. 274-277.
European Claims in application No. 17152510.8-1871, dated Apr. 2017, 3 Pages.
Fahad et al., "Towards Ensuring Satisfiability of Merged Ontology," Procedia Computer Science, vol. 4, Jun. 3, 2011, pp. 2216-2225.
Geiger, Jonathan G., "Data Quality Management, The Most Critical Initiative You Can Implement," Data Warehousing, Management and Quality, Paper 098-29, SUGI 29, Intelligent Solutions, Inc., Bounder, CO, pp. 14, accessed Oct. 3, 2011.
International Search Report for International Patent Application No. PCT/US2007/085202 dated Jun. 4, 2009.
International Search Report for International Patent Application No. PCT/US2007/85202 dated May 22, 2008.
Kahan et al., "Annotea: an Open RDF Infastructure for Shared Web Annotations", Computer Networks, Elsevier Science Publishers B.V., vol. 39, No. 5, dated Aug. 5, 2002, pp. 589-608.
Karljurand et al., "A Multilingual Semantic Wiki Based on Attempto Controlled English and Grammatical Framework," May 26, 2013, The Semantic Web: Semantics and Big Data, pp. 427-441.
Klemmer et al., "Where Do Web Sites Come From? Capturing and Interacting with Design History," Association for Computing Machinery, CHI 2002, Apr. 20-25, 2002, Minneapolis, MN, pp. 8.
Kokossi et al., "D7-Dynamic Ontoloty Management System (Design)," Information Societies Technology Programme, Jan. 10, 2002, pp. 1-27.
Maluf et al., "An Extenible Schema-Less Database Framework for Managing High-Throughpit Structured Documents," Proceedings of the IASTED International Conference, Computerscience, and Technology, May 21, 2003, pp. 225-230.
Miklau et al., "Securing History: Privacy and Accountability in Database Systems," 3rd Biennial Conference on Innovative Data Systems Research (CIDR), Jan. 7-10, 2007, Asilomar, California, pp. 387-396.
Monitel-Ponsoda et al., "Style Guidelines for Naming and Labeling Ontologies in the Multilingual Web," Proc. Int'l Conf. on Dublin Core and Metadata Applications, Jan. 31, 2011, pp. 105-111.
Morrison et al., "Converting Users to Testers: An Alternative Approach to Load Test Script Creation, Parameterization and Data Corellation," CCSC: Southeastern Conference, JCSC 28, Dec. 2, 2012, pp. 188-196.
Niepert et al., "A Dynamic Ontology for a Dynamic Reference Work", Joint Conference on Digital Libraries, Jun. 17-22, 2007, Vancouver, British Columbia, Canada, pp. 1-10.
Nivas, Tuli, "Test Harness and Script Design Principles for Automated Testing of non-GUI or Web Based Applications," Performance Lab, Jun. 2011, pp. 30-37.
Noy et al., "The PROMPT Suite: Interactive Tools for Ontology Merging and Mapping," 2003.
Official Communication for Australian Patent Application No. 2007323689 dated Mar. 22, 2011.
Official Communication for Australian Patent Application No. 2014201506 dated Feb. 27, 2015.
Official Communication for Australian Patent Application No. 2014201507 dated Feb. 27, 2015.
Official Communication for Australian Patent Application No. 2014201511 dated Feb. 27, 2015.
Official Communication for Australian Patent Application No. 2014201580 dated Feb. 27, 2015.
Official Communication for Canadian Patent Application No. 2666364 dated Jun. 4, 2012.
Official Communication for Canadian Patent Application No. 2666364 dated Oct. 3, 2013.
Official Communication for European Patent Application No. 07864644.5 dated Jul. 12, 2016.
Official Communication for European Patent Application No. 14158958.0 dated Apr. 16, 2015.
Official Communication for European Patent Application No. 14158958.0 dated Jun. 3, 2014.
Official Communication for European Patent Application No. 14158977.0 dated Apr. 16, 2015.
Official Communication for European Patent Application No. 14158977.0 dated Jun. 10, 2014.
Official Communication for European Patent Application No. 14159629.6 dated Jul. 31, 2014.
Official Communication for European Patent Application No. 15155845.9 dated Oct. 6, 2015.
Official Communication for European Patent Application No. 16157174.0 dated Jul. 5, 2016.
Official Communication for European Patent Application No. 17152510.8 dated Apr. 19, 2017.
Official Communication for Great Britain Patent Application No. 1404479.6 dated Aug. 12, 2014.
Official Communication for Great Britain Patent Application No. 1404479.6 dated Jul. 9, 2015.
Official Communication for Great Britain Patent Application No. 1413935.6 dated Dec. 21, 2015.
Official Communication for Great Britain Patent Application No. 1413935.6 dated Jan. 27, 2015.
Official Communication for Israel Patent Application No. 198253 dated Jan. 12, 2016.
Official Communication for Israel Patent Application No. 198253 dated Nov. 24, 2014.
Official Communication for Israel Patent Application No. 198253 dated Nov. 27, 2013.
Official Communication for Netherlands Patent Application No. 2012434 dated Jan. 8, 2016.
Official Communication for Netherlands Patent Application No. 2013306 dated Apr. 24, 2015.
Official Communication for New Zealand Patent Application No. 622414 dated Mar. 24, 2014.
Official Communication for New Zealand Patent Application No. 622484 dated Apr. 2, 2014.
Official Communication for New Zealand Patent Application No. 622497 dated Jun. 19, 2014.
Official Communication for New Zealand Patent Application No. 622497 dated Mar. 26, 2014.
O'Reilly.com, <http://oreilly.com/digitalmedia/2006/01/01/mac-os-x-screenshot-secrets.html> published Jan. 1, 2006 in 10 pages.
Palantir, "Extracting and Transforming Data with Kite," Palantir Technologies, Inc., Copyright 2010, pp. 38.
Palantir, "Kite Data-Integration Process Overview," Palantir Technologies, Inc., Copyright 2010, pp. 48.
Palantir, "Kite Operations," Palantir Technologies, Inc., Copyright 2010, p. 1.
Palantir, "Kite," https://docs.palantir.com/gotham/3.11.1.0/adminreference/datasources.11 printed Aug. 30, 2013 in 2 pages.
Palantir, "The Repository Element," https://docs.palantir.com/gotham/3.11.1.0/dataguide/kite_config_file.04 printed Aug. 30, 2013 in 2 pages.
Palantir, "Write a Kite Configuration File in Eclipse," Palantir Technologies, Inc., Copyright 2010, pp. 2.
Palantir, https://docs.palantir.com/gotham/3.11.1.0/dataguide/baggage/KiteSchema printed Aug. 30, 2013 in 1 page.
Palantir, https://docs.palantir.com/gotham/3.11.1.0/dataguide/baggage/KiteSchema.xsd printed Apr. 4, 2014 in 4 pages.
Palermo, Christopher J., "Memorandum," [Disclosure relating to U.S. Appl. No. 13/916,447, filed Jun. 12, 2013, and related applications], Jan. 31, 2014 in 3 pages.
Pance et al., "Generic Ontology of Datatypes," Information Sciences, vol. 329, Aug. 1, 2015, pp. 900-920.
Symantec Corporation, "E-Security Begins with Sound Security Policies," Announcement Symantec, Jun. 14, 2001.
U.S. Appl. No. 12/556,321, filed Sep. 9, 2009, Final Office Action, dated Feb. 25, 2016.
U.S. Appl. No. 12/556,321, filed Sep. 9, 2009, Office Action, dated Jul. 7, 2015.
U.S. Appl. No. 13/669,274, filed Nov. 5, 2012, Advisory Action, dated Aug. 26, 2015.
U.S. Appl. No. 13/669,274, filed Nov. 5, 2012, Final Office Action, dated May 6, 2015.
U.S. Appl. No. 13/827,491, filed Mar. 14, 2013, Final Office Action, dated Jun. 22, 2015.
U.S. Appl. No. 13/827,491, filed Mar. 14, 2013, Office Action, dated Oct. 9, 2015.
U.S. Appl. No. 14/025,653, filed Sep. 12, 2013, First Office Action Interview, dated Oct. 6, 2015.
U.S. Appl. No. 14/025,653, filed Sep. 12, 2013, Interview Summary, dated Mar. 3, 2016.
U.S. Appl. No. 14/044,800, filed Oct. 2, 2013, Notice of Allowance, dated Sep. 2, 2014.
U.S. Appl. No. 14/134,558, filed Dec. 19, 2013, Office Action, dated Oct. 7, 2015.
U.S. Appl. No. 14/148,568, filed Jan. 6, 2014, Final Office Action, dated Oct. 22, 2014.
U.S. Appl. No. 14/148,568, filed Jan. 6, 2014, Notice of Allowance, dated Aug. 26, 2015.
U.S. Appl. No. 14/148,568, filed Jan. 6, 2014, Office Action, dated Mar. 26, 2015.
U.S. Appl. No. 14/222,364, filed Mar. 21, 2014, Office Action, dated Dec. 9, 2015.
U.S. Appl. No. 14/265,637, filed Apr. 30, 2014, Notice of Allowance, dated Feb. 13, 2015.
U.S. Appl. No. 14/508,696, filed Oct. 7, 2014, Notice of Allowance, dated Jul. 27, 2015.
U.S. Appl. No. 14/508,696, filed Oct. 7, 2014, Office Action, dated Mar. 2, 2015.
U.S. Appl. No. 14/526,066, filed Oct. 28, 2014, Office Action, dated Jan. 21, 2016.
U.S. Appl. No. 14/533,433, filed Nov. 5, 2014, Notice of Allowance, dated Sep. 1, 2015.
U.S. Appl. No. 14/552,336, filed Nov. 24, 2014, First Office Action Interview, dated Jul. 20, 2015.
U.S. Appl. No. 14/552,336, filed Nov. 24, 2014, Notice of Allowance, dated Nov. 3, 2015.
U.S. Appl. No. 14/571,098, filed Dec. 15, 2014, First Office Action Interview, dated Aug. 24, 2015.
U.S. Appl. No. 14/571,098, filed Dec. 15, 2014, First Office Action Interview, dated Aug. 5, 2015.
U.S. Appl. No. 14/571,098, filed Dec. 15, 2014, First Office Action Interview, dated Mar. 11, 2015.
U.S. Appl. No. 14/571,098, filed Dec. 15, 2014, First Office Action Interview, dated Nov. 10, 2015.
U.S. Appl. No. 14/630,472, filed Feb. 24, 2015, First Office Action Interview, dated Jun. 23, 2017.
U.S. Appl. No. 14/630,472, filed Feb. 24, 2015, Interview Summary, dated Nov. 1, 2017.
U.S. Appl. No. 14/631,633, filed Feb. 25, 2015, First Office Action Interview, dated Feb. 3, 2016.
U.S. Appl. No. 14/715,834, filed May 19, 2015, First Office Action Interview, dated Feb. 19, 2016.
U.S. Appl. No. 14/741,256, filed Jun. 16, 2015, Office Action, dated Feb. 9, 2016.
U.S. Appl. No. 14/800,447, filed Jul. 15, 2012, First Office Action Interview, dated Dec. 10, 2010.
U.S. Appl. No. 14/841,338, filed Aug. 31, 2015, Office Action, dated Feb. 18, 2016.
U.S. Appl. No. 14/842,734, filed Sep. 1, 2015, First Office Action Interview, dated Nov. 19, 2015.
U.S. Appl. No. 14/871,465, filed Sep. 30, 2015, First Office Action Interview, dated Feb. 9, 2016.
U.S. Appl. No. 14/883,498, filed Oct. 14, 2015, First Office Action Interview, dated Dec. 24, 2015.
U.S. Appl. No. 14/954,680, filed Nov. 30, 2015, Notice of Allowance, dated Sep. 28, 2016.
U.S. Appl. No. 14/954,680, filed Nov. 30, 2015, Office Action, dated May 12, 2016.
Warren, Christina, "TUAW Faceoff: Screenshot apps on the firing line," <http://wvvw.tuaw.com/2008/05/05/tuaw-faceoff-screenshot-apps-on-the-firing-line/>, May 5, 2008, pp. 11.
Wollrath et al., "A Distributed Object Model for the Java System," Conference on Object-Oriented Technologies and Systems, Jun. 17-21, 1996, pp. 219-231.
Zhuhadar et al., "Multi-lanugage Ontology-Based Search Engine," Advances in Computer-Human Interactions, 2010, ACHI '10, Third International Conference on, IEEE, Piscataway, New Jersey, USA, Feb. 10, 2010, pp. 13-18.
US20190188219A1 (en) 2019-06-20
US20170242922A1 (en) 2017-08-24
EP3208726A1 (en) 2017-08-23
ES2707277T3 (en) 2019-04-03 Automatically search for contextually related elements of a task
US9495460B2 (en) 2016-11-15 Merging search results
US9727628B2 (en) 2017-08-08 System and method of applying globally unique identifiers to relate distributed data sources
US9665638B2 (en) 2017-05-30 Systems and methods for secure storage of user information in a user profile
JP5623537B2 (en) 2014-11-12 User-defined profile tag for the portal, rules, and recommended
US9721039B2 (en) 2017-08-01 Generating a relationship visualization for nonhomogeneous entities
US20110040600A1 (en) 2011-02-17 E-discovery decision support
US9613322B2 (en) 2017-04-04 Data center analytics and dashboard
US20110302169A1 (en) 2011-12-08 Identifying activities using a hybrid user-activity model
US20130159340A1 (en) 2013-06-20 Quote-based search
Denton et al. 2011 Usability testing of VuFind at an academic library
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:LEBLANC, DAVID;BUTTERS, JOHN;COOK, CHRISTOPHER;SIGNING DATES FROM 20160315 TO 20160321;REEL/FRAME:038175/0663