US20200218723A1 - Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization - Google Patents

Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization Download PDF

Info

Publication number
US20200218723A1
US20200218723A1 US16/457,759 US201916457759A US2020218723A1 US 20200218723 A1 US20200218723 A1 US 20200218723A1 US 201916457759 A US201916457759 A US 201916457759A US 2020218723 A1 US2020218723 A1 US 2020218723A1
Authority
US
United States
Prior art keywords
query
data
dataset
copy
access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US16/457,759
Other versions
US11386218B2 (en
Inventor
Bryon Kristen Jacob
David Lee GRIFFITH
Triet Minh Le
Shad William Reynolds
Arthur Albert Keen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Data World Inc
Original Assignee
Data World Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US15/186,517 external-priority patent/US10324925B2/en
Priority claimed from US15/186,514 external-priority patent/US10102258B2/en
Priority claimed from US15/186,516 external-priority patent/US10452677B2/en
Priority claimed from US15/186,515 external-priority patent/US10515085B2/en
Priority claimed from US15/186,520 external-priority patent/US10346429B2/en
Priority claimed from US15/186,519 external-priority patent/US10699027B2/en
Application filed by Data World Inc filed Critical Data World Inc
Priority to US16/457,759 priority Critical patent/US11386218B2/en
Assigned to Data.World, Inc. reassignment Data.World, Inc. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: GRIFFITH, DAVID LEE, LE, TRIET MINH, JACOB, BRYON KRISTEN, KEEN, ARTHUR ALBERT, REYNOLDS, SHAD WILLIAM
Publication of US20200218723A1 publication Critical patent/US20200218723A1/en
Priority to US17/854,686 priority patent/US11941140B2/en
Application granted granted Critical
Publication of US11386218B2 publication Critical patent/US11386218B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • G06F16/213Schema design and management with details for schema evolution support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2423Interactive query statement specification based on a database schema
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models

Definitions

  • patent application Ser. No. 15/439,911 are also a continuation-in-part application of U.S. patent application Ser. No. 15/186,516, filed Jun. 19, 2016; This application and U.S. patent application Ser. No. 15/439,911 are also a continuation-in-part application of U.S. patent application Ser. No. 15/186,517, filed Jun. 19, 2016, now U.S. Pat. No. 10,324,925; This application and U.S. patent application Ser. No. 15/439,911 are also a continuation-in-part application of U.S. patent application Ser. No. 15/186,519, filed Jun. 19, 2016; This application and U.S. patent application Ser. No.
  • 15/439,911 are also a continuation-in-part application of U.S. patent application Ser. No. 15/186,520, filed Jun. 19, 2016; This application and U.S. patent application Ser. No. 15/439,911 are also a continuation-in-part application of U.S. patent application Ser. No. 15/454,923, filed Mar. 9, 2017; This application and U.S. patent application Ser. No. 15/439,911 are also a continuation-in-part application of U.S. Nonprovisional patent application Ser. No. 15/454,955, filed Mar. 9, 2017; This application and U.S. patent application Ser. No. 15/439,911 are also a continuation-in-part application of U.S. patent application Ser. No.
  • the present invention relates generally to data science, machine and deep learning computer algorithms, data graph modeling, and analysis of linked data. More specifically, techniques for management of integrated access to public and privately-accessible datasets are described.
  • Datasets i.e., sets or groups of logically-related data and/or information
  • utilizing data also involves addressing a growing problem, which includes identifying data, sources thereof, and managing the ever-increasing amount of data becoming available.
  • FIG. 1 illustrates an exemplary topology for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization
  • FIG. 2 illustrates an exemplary platform architecture for a platform for managing integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization
  • FIG. 3 illustrates an exemplary layered architecture for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization
  • FIG. 4 illustrates an exemplary data flow for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization
  • FIG. 5 illustrates an exemplary data operations model illustrating various processes for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization
  • FIG. 6A illustrates an exemplary process flow for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization
  • FIG. 6B illustrates a further exemplary process flow for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization
  • FIG. 6C illustrates another exemplary process flow for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization
  • FIG. 6D illustrates an additional exemplary process flow for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization
  • FIG. 6E illustrates yet a further exemplary process flow for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization
  • FIG. 7A illustrates an alternative exemplary process flow for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization
  • FIG. 7B illustrates a further alternative exemplary process flow for optimization of rewritten queries using platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization
  • FIG. 8 illustrates an exemplary computer system suitable for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization.
  • FIG. 1 illustrates an exemplary topology for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization.
  • topology 100 includes dataset access platform (“platform”) 102 , databases 104 - 106 , data networks 108 - 112 (as used herein, “data network” and “network” may be used interchangeably without limitation or restriction and are intended to be interpreted similarly with respect to this Detailed Description and/or the accompanying claims), databases 114 - 118 , access control module 120 , database 122 , and datastore 123 (including databases 124 - 128 ).
  • topology may refer to a computer network topology that represents a map or aggregation of computing resources that are used to implement a feature, function, or set or group of functionality, including identified resources, technical specifications, protocols, languages, formats, and other elements.
  • databases 104 - 106 , 114 - 118 , 122 , 124 - 128 may refer to any type of data storage facility, including, but not limited to, a standalone, web, networked, or computing cloud-based database, datastore, data repository, data warehouse, or any other type of facility or resource that may be used to store and/or retrieve data and information stored in accordance with a structured, unstructured, relational, or non-relational data schema or data object schema.
  • computing cloud may be used interchangeably without limitation and may refer to any logical collection, grouping, assembly, or identified set of data computing based resources that provide various types of processing, storage, or other data operation and are not limited to any specific topology or geographic restriction and may be deployed over a distributed area or set of resources such as a collection of computers or servers located in disparate facilities distributed geographically, without limitation.
  • “datastore” (e.g., datastore 123 ) may refer to one or more databases (e.g., databases 104 - 106 , 114 - 118 , 122 , 124 - 128 ) that are grouped or otherwise rendered interoperable using logical layers to provide management or overriding layers of management functionality for purposes of accessing, storing, and/or retrieving data and information stored within one or more databases within a given datastore.
  • databases e.g., databases 104 - 106 , 114 - 118 , 122 , 124 - 128
  • a datastore (e.g., datastore 123 ) does not need to topologically or logically reside on a single or individual network resource, as an example, and may be distributed in a widespread or disparate architecture using networked resources such as those found within a public or private (i.e., secured using authentication, authorization, token, password, or any other form of data security technique) data network, a computing cloud, or logical collection of networked data storage resources.
  • datastore 123 is shown including databases 124 - 128 , but may, in other examples, also include one, some, or none of databases 104 - 106 and 114 - 118 .
  • Datastore 123 may also be implemented as a computing cloud and are not limited to any specific types of network architectures or topologies and the examples shown here are provided for purposes of exemplary illustration and description, without limitation. In other examples, other designs and implementations beyond those set forth and described herein may be used, without limitation or restriction to any specific design, architecture, implementation, embodiment, or example (i.e., collectively, “example”).
  • dataset access platform 102 may be configured to access public and/or privately-accessible datasets that are hosted on one or more databases, some, all, or none of which may be hosted on data networks such as networks 108 - 112 .
  • dataset access platform may be used interchangeably without limitation and, in some examples, refers to a computer program, software, firmware, circuitry, algorithms, logic, hardware, or a combination thereof in order to implement techniques (e.g., systems, processes, or the like) for providing integrated query, access, retrieval, and other data operations using public and private datasets.
  • platform 102 may be configured to access databases 104 - 106 , 114 - 118 , 122 and/or datastore 123 including databases 124 - 128 in order to execute a query to retrieve one or more datasets stored in these elements.
  • Datasets may be retrieved by, for example, data scientists, researchers, or any other user who may be interested in querying and retrieving a dataset for a given purpose.
  • Datasets may include any type, form, format, or amount of publicly-accessible sources of data such as those available from Data.Gov, the U.S.
  • network 108 may be a publicly-accessible data network that includes one or more databases such as databases 114 - 118 .
  • databases 104 - 106 , 114 - 118 , 122 and datastore 123 including databases 124 - 128 may be accessed or used by dataset access platform 102 using a “farm” or collection of graph database engines (see element 228 ( FIG.
  • queries received by e.g., queries sent in SQL or other structured or unstructured programming or formatting languages to
  • platform 102 to retrieve datasets from one or more of 104 - 106 , 114 - 118 , 122 and datastore 123 , which includes databases 124 - 128 , each database of which may be configured for public (i.e., open) or private (i.e., secure, authentication required, access controlled, or the like) access, without limitation.
  • a dataset may reside on a private database (e.g., within a data network that requires authentication or access control conditions (e.g., tokens, certificates, passwords, hashes, or the like) in order to access the data network (e.g., network 112 ) and/or the dataset (i.e., which may be stored on database 122 or datastore 123 including databases 124 - 128 ).
  • a private database e.g., within a data network that requires authentication or access control conditions (e.g., tokens, certificates, passwords, hashes, or the like) in order to access the data network (e.g., network 112 ) and/or the dataset (i.e., which may be stored on database 122 or datastore 123 including databases 124 - 128 ).
  • Private datasets e.g., database 122
  • platform 102 may be configured to access datasets stored on publicly-accessible (i.e., public or open) databases 104 - 106 and 114 - 118 or, in some examples, private database 122 and/or datastore 123 and databases 124 - 128 .
  • Platform 102 in some examples, may be a platform or application such as that developed by Data.World of Austin, Tex., including various features and functionality, as described in some of those properties incorporated by reference as set forth above.
  • datastore 123 includes databases 124 - 128 , although the number, type, format, data schema, and other characteristics may be varied and are not limited to the examples shown and described.
  • datastore 123 may use a database management system (not shown) to manage databases 124 - 128 .
  • platform 102 may be configured to communicate over one or more other data networks such as the Internet, a private data network, or a computing cloud, without limitation to the type of data network provided a layered topology is used to communicate queries to/from platform 102 and a destination or target database (e.g., databases 104 - 106 , 114 - 118 , 122 and datastore 123 including databases 124 - 128 ).
  • a destination or target database e.g., databases 104 - 106 , 114 - 118 , 122 and datastore 123 including databases 124 - 128 .
  • Platform 102 may also be configured to access datastore 123 , which could be housed and operated on a separate data network (e.g., data network 112 ) than another data network through which a query or request is transmitted, passed, or sent (e.g., data network 110 ).
  • platform 102 may be a standalone, distributed, local, remote, or cloud-based application, process, algorithm(s), computer program, software, firmware, hardware, server, or the like (hereafter “application”) that may be a standalone or distributed application, the latter of which may have one or more resources housed, stored in memory, executed from, or reside on disparate physical resources (e.g., servers, computers, or the like) in different geographic locations.
  • platform 102 may be configured to receive, parse, interpret, convert, rewrite, optimize, and execute the query in order to retrieve a dataset from one of the aforementioned data sources (i.e., databases 104 - 106 , 114 - 118 , 122 and datastore 123 including databases 124 - 128 ).
  • a query (e.g., sent in SQL, SPARQL, R, Python, Java, Javascript, JSON, XML, or any other programming or formatting language that is used to generate and send queries for retrieving datasets) may be received by platform 102 and sent to access control module 120 (as with platform 102 , access control module 120 may be a standalone, distributed, local, remote, or cloud-based application, process, algorithm(s), computer program, software, firmware, hardware, server, or the like (hereafter “application”)), which provides access control functionality and prevents unauthorized access to datasets stored on one or more of databases 122 and 124 - 128 and datastore 123 .
  • application a standalone, distributed, local, remote, or cloud-based application, process, algorithm(s), computer program, software, firmware, hardware, server, or the like
  • access control module 120 receives queries on behalf of, for example, a private data network (e.g., network 112 ), which could be a scientific, academic, research, governmental, military, financial, corporate, non-profit, or any other type of data network in which non-public access is desired or security measures including, but not limited to access control module 120 , are intended to limit, deter, or prevent access.
  • a private data network e.g., network 112
  • network 112 which is an exemplary private data network
  • platform 102 can notify a user (not shown) on a display or user interface that indicates a status of the query (also not shown).
  • a query written in SQL may be received by platform 102 , which may be a standalone (e.g., hosted, remote, or local) or distributed (e.g., server, network, or cloud-based) software platform composed of multiple programs or scripts (e.g., Java®, JavaScript®, and/or other programming or formatting languages, structured or unstructured, or the like) that is configured to parse and analyze the query to determine through inference (as described in greater detail below) attributes, one of which may include an access control condition that permits the query to be run (i.e., executed) against an access-controlled (e.g., password, encryption, authentication, token-based, or any other form of electronic or digital security measure intended to limit or prevent access to a given dataset) database, datastore, dataset, network, or the like.
  • an access-controlled e.g., password, encryption, authentication, token-based, or any other form of electronic or digital security measure intended to limit or prevent access to a given dataset
  • platform 102 is configured to receive, parse, and run inference operations (as described in greater detail below) in order to determine and identify any attributes that may be related to the query, the dataset(s), or the database or datastore in which the dataset(s) are stored.
  • platform 102 includes, among other modules and functionality, an inference engine (not shown) that is configured to infer one or more attributes of a query, the target dataset (i.e., the dataset requested once the query has been executed), and the source database or datastore on which the dataset(s) are stored.
  • an inference engine (not shown) that is configured to infer one or more attributes of a query
  • the target dataset i.e., the dataset requested once the query has been executed
  • the source database or datastore on which the dataset(s) are stored.
  • platform 102 may also be configured to convert a query from one format (e.g., SQL or another structured or unstructured query language) into a different “atomic” format (e.g., RDFTM (as developed by W3C®, or another triple-oriented language (i.e., languages and protocols such as SPARQL (as also developed by W3C®) that may be used to convert data associated with queries into subject-predicate-object-oriented data structures otherwise known as “triples”) that can be used to generate, by platform 102 , rewritten queries that incorporate other triple data directed to attributes such as type, format, access control conditions, or in an integrated manner against various types and formats of databases, datastores, data repositories, data warehouses, and the like.
  • RDFTM as developed by W3C®
  • SPARQL as also developed by W3C®
  • platform 102 may be configured to rewrite a query (e.g., programmed or formatted in SQL, Python, R, or other statistical or data analytical software) from one format, structure, or schema to another in order to execute a query against multiple disparate types of data storage facilities (e.g., databases, datastores, data repositories, data warehouses, and the like), which may each be of a different schema, structure, and/or type, without restriction.
  • a query e.g., programmed or formatted in SQL, Python, R, or other statistical or data analytical software
  • data storage facilities e.g., databases, datastores, data repositories, data warehouses, and the like
  • platform 102 may be configured to rewrite a query from one format, structure, or schema into another, but also “optimize” a rewritten query (as described in further detail below), by converting data associated with one or more inferred attributes that were determined during the parsing of the query upon its receipt by platform 102 .
  • “Optimizing” a query before, during, or after it has been rewritten by platform 102 may, in some examples, refer to optimizing a copy of a query or a master of a query.
  • Optimizing a query may occur during or after a rewriting operation has been performed by platform 102 , which could include, but is not limited to, rewriting a query (i.e., master or a copy) from one query language to another format that can then be used to generate further downstream queries for different target or disparate databases that may include datasets that are either sought, in accordance with the original query, or logic incorporated into platform 102 may execute to infer there may be other datasets that are indexed or linked (i.e., as linked data) by platform 102 that, although not known or targeted by the original query, could be returned with the intended target dataset.
  • queries may be optimized after being written from SQL to triples using RDFTM, SPARQLTM, or the like because the rewritten triple data, which may be stored in a datastore accessed by platform 102 , but intended to store converted triple data from incoming queries (i.e., a “triple store”) may be retrieved with other triple data that has been generated resultantly from inferred attributes.
  • inferred attributes such as type, data types (i.e., specific types of data that are typically identified by columnar or row headings in a tabular format, but could also be found in a multi-dimensional grid storage structure such as name, date, value, postal code, country, state, or any other type that can be used to identify a logical grouping of data, without limitation or restriction), data structure, data schema, object schema, addresses (e.g., Uniform Resource Locator (URL), Uniform Resource Identifier (URI), web address, and the like), layout, design, style, format, language, structure, and others without limitation to any particular attribute or type or category thereof.
  • URL Uniform Resource Locator
  • URI Uniform Resource Identifier
  • the triple data rewritten from the query and the triple data associated with attributes related to the query may refer to a copy of a query or a master (i.e., original or originally received by platform 102 ) query, without limitation or restriction) may be specifically rewritten for a database housing or storing the intended target dataset database.
  • an original query or a copy of an original query may be subject to various data operations by platform 102 , without restriction or limitation. If a copy of an original query is used by platform 102 , the original query may itself be identified as a “master” and saved to one or more of databases 104 - 106 or another database, datastore, data warehouse, data repository, or other data facility or structure used by platform 102 to store internal data.
  • a master query or master hereafter “master” may be preserved in the event query data used by platform 102 becomes corrupted or unusable.
  • platform 102 may use a graph (i.e., data model) that, once a query is received, logic (e.g., a logic module that may employ rules, machine learning, artificial intelligence, deep learning, natural language processing, or other algorithms, software, computer programs, applications, or the like to implement decision-based processing of data) then determines other linked data may be related to the dataset sought by the query and delivered to the user in response.
  • a graph i.e., data model
  • logic e.g., a logic module that may employ rules, machine learning, artificial intelligence, deep learning, natural language processing, or other algorithms, software, computer programs, applications, or the like to implement decision-based processing of data
  • the linked datasets may also be included in a modified or new graph that may be created to include the intended target dataset as a new node within the graph.
  • Various types of graph generation techniques may be used, without limitation or restrictions, such as mapping different data types (e.g., using specification such as comma separated values (“csv”) to RDF, CSVW, among others) and storing these maps as graphs within a database or datastore (e.g., databases 104 - 106 and 114 - 118 ).
  • Other graph generation techniques may be used and are not limited to any particular algorithm, process, or methodology.
  • a SQL-based query may have a SELECT statement (i.e., a programmatic query command or query statement intended to fetch an intended dataset or data stored within a given database)
  • platform 102 may be configured to convert a statement (e.g., a query statement such as SELECT in SQL, and other comparable commands in any other type of query language, structured or unstructured) into SPARQL, for example, by parsing the query statement into a data structure such as an abstract syntax tree in an intended (i.e., target) language such as SPARQL.
  • an abstract syntax tree mapping a received query statement may be used to determine how to map the statement from its native language into a comparable statement in, for example, SPARQL (or another language that may be configured to perform the processes described herein).
  • SPARQL or another language that may be configured to perform the processes described herein.
  • Using an abstract syntax tree may be used to further generate a resultant SPARQL query statement, command, data structure, or object that may be configured to execute over (e.g., using) a triple store or triple data within a datastore, such as those described herein.
  • triple data can be amassed in a triple store (i.e., a datastore, database, repository, or other type of data structure configured to store triple data reduced, atomically, as described herein) and used during the generation of a substantially equivalent statement (e.g., a query) into SPARQL.
  • a triple store i.e., a datastore, database, repository, or other type of data structure configured to store triple data reduced, atomically, as described herein
  • attributes may identify an access control condition (e.g., password, token, or other security feature that must be navigated successfully before access to a dataset or a database, data repository, datastore, or other type of data structure is permitted) that manages (e.g., controls) access to a target or intended dataset.
  • an access control condition e.g., password, token, or other security feature that must be navigated successfully before access to a dataset or a database, data repository, datastore, or other type of data structure is permitted
  • manages e.g., controls
  • a password, token, hash value, or any other type of security-oriented attribute may be converted into one or more triples and, in some examples, an endpoint server (not shown) associated, in data communication, or configured to perform data operations with platform 102 may be used to rewrite the triple data of the query and the attribute into another form, format, language, structure, or schema for a target database that the endpoint server is configured to communicate with over one or more data networks.
  • platform 102 may be configured to receive a query, rewrite the data associated with the query and any attributes (e.g., attributes of the query, the target dataset(s), the target database(s), paths, linked data, or any other attribute including, but not limited to those examples provided above) into a language, structure, schema, or format associated with another database by converting query data (i.e., data associated with a query) and data associated with attributes of the queries into triples, execute the rewritten queries, and, in some examples, return not only the requested dataset(s), but also dataset(s) that may be related to the dataset(s). In other examples, platform 102 may be configured to return only the target dataset(s) requested by the query and no others.
  • attributes e.g., attributes of the query, the target dataset(s), the target database(s), paths, linked data, or any other attribute including, but not limited to those examples provided above
  • query data i.e., data associated with a query
  • data associated with attributes of the queries into triples
  • platform 102 may be configured to return some dataset(s) that may be associated with or related to the target dataset(s) requested by the query, which may be determined based on rules or logic of platform 102 . Further, platform 102 may also be configured to create or modify a graph (e.g., data model) that is used when a query for a given dataset is received, which may be further used to return additional data that could be valuable due to an attribute-determined relationship or association between the target dataset, the query, and other dataset(s) known or graphed or identified as linked data by platform 102 .
  • a graph e.g., data model
  • the above-described topology, elements, and processes may be varied in size, shape, configuration, function, and implementation and are not limited to the examples shown and described.
  • FIG. 2 illustrates an exemplary system architecture for a platform for managing integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization.
  • system 200 is shown, including application 201 (in some examples, application 201 may be comparable in function and structure to platform 102 as described above in connection with FIG. 1 ), data communication bus 202 , application programming interface or API (hereafter “API”) 204 , proxy/endpoint server 206 (which may also be referred to interchangeably as a “proxy,” “endpoint,” “proxy server,” “endpoint server”), logic module 210 , conversion module 212 , inference engine 214 , query engine 216 , display module 218 , databases 20 - 224 , and graph database engine 228 .
  • API application programming interface or API
  • Data elements transferred (i.e., received and sent) from application 201 may take various forms including, but not limited to query 203 , dataset 242 (which may be interchangeably referred to herein as a “target dataset(s)”), and rewritten query 244 .
  • system 102 may be an exemplary implementation of platform 102 ( FIG. 1 ).
  • the elements shown and the configuration, structure, relative size of the elements, and functions described are not intended to be limiting and the sizes and shapes of the elements have no limitation or meaning apart from those provided within the detailed description of this specification or as claimed.
  • application 201 may be a implemented as a process, computer program, software, firmware, hardware, circuitry, logic, or a combination thereof (hereafter “application”) and, in some examples, may be written in Java® and/or JavaScript®, among others.
  • application may be programmed, developed, or encoded using software programming techniques familiar to these programming and formatting languages or others, without restriction, regardless of whether object-oriented, structured, or unstructured.
  • application 201 is configured with elements 202 - 228 in order to receive query 203 that is directed to retrieve (e.g., fetch, download, access and copy, or otherwise obtain using one or more data operations) a target dataset (e.g., dataset 242 ) in response to rewritten query 244 .
  • application 201 may be written in any programming or formatting language (e.g., SQL, Python, R, or others) used to query a database.
  • Application 201 may be configured to receive query 203 using API 204 and analyzing, using logic module 210 , query 203 to determine one or more attributes associated with query 203 , dataset 242 , or a database (e.g., databases 104 - 106 , databases 114 - 118 , database 122 , and datastore 123 (including databases 124 - 128 ) as shown and described above in connection with FIG. 1 ).
  • Query 203 may be stored in a database configured to store query data (i.e., query data 224 ). Once stored, query 203 may be identified, in some examples, as a “master” of query 203 .
  • a copy of query 203 may be made and also stored in one or more of databases 220 - 224 and used as a replica.
  • a replica or copy hereafter, “replica” and “copy” may be used interchangeably without restriction or limitation
  • an original version of a query i.e., the originally-received version of query 203
  • application 201 may be used by application 201 .
  • a replica of query 203 (not shown) or query 203 is parsed by logic module 210 , which is configured to analyze data received by application 201 (e.g., query 203 ) or dataset 242 and to generate instructions to other elements within application 201 to perform various data operations such as those described herein.
  • logic module 210 may be a set of logical rules or algorithms for machine learning, deep learning, artificial intelligence, or the like.
  • Logic module 210 may be programmatically coded in one or more languages such as Java®, JavaScript®, R, or others, without limitation or restriction.
  • logic module 210 may be configured to perform various data operations such as generating data or signals to provide instructions to inference engine 214 , query engine 216 , or any other element of application 201 .
  • Logic module 210 may also be configured to generate and send instructions (i.e., as data or signals) to graph database engine 228 in order to generate one or more data models associated with query 203 .
  • inference engine 214 may be configured to determine attributes associated with query 203 through inference (e.g., Bayesian, statistical, probabilistic, predictive, or other techniques may be employed for inference and are not limited to any specific types of techniques for inferring attribute data associated with query 203 ).
  • attributes may include, but are not limited to, any type of information or characteristic associated with or about a query, dataset 242 , which is intended to be fetched by query 203 (i.e., using, for example, a SQL SELECT command to retrieve dataset 242 for a given database (not shown)), and the destination or target database from which dataset 242 is to be retrieved. While examples are provided for the disclosed techniques to operate on a singular dataset, these may also be extended to operate on multiple datasets and databases, without limitation or restriction.
  • Attributes may include, but are not limited to, property attributes (e.g., string literal, numerical, or the like), values, qualities, characteristics, or any other data, metadata, and information about or related to an item contained within a dataset or a database and which can be inferred by inference engine 214 .
  • property attributes e.g., string literal, numerical, or the like
  • values e.g., qualities, characteristics, or any other data, metadata, and information about or related to an item contained within a dataset or a database and which can be inferred by inference engine 214 .
  • RDF Resource Description Framework
  • W3C World Wide Web Consortium
  • SPARQL SPARQL
  • SQL-based data (or data for query 203 formatted using a structured or unstructured language) can be converted into RDF triple data that can be used as a common base language, format, or protocol that can later be used by query engine 216 and proxy/endpoint server 206 to “rewrite” or construct rewritten query 244 , which is ultimately transmitted from application 201 to a database for retrieving dataset 242 .
  • dataset 242 may be retrieved or fetched from a database using rewritten query 244 and may include not only dataset 242 , but also other datasets that might be related to or are similar to the dataset sought.
  • the determination of whether dataset 242 may be related to other dataset(s) that were previously retrieved or otherwise indexed by application 201 and its elements may be made by logic module 210 , query engine 216 , and graph database engine 228 .
  • logic module 210 analyzes inferred attribute data from inference engine 214 and can generate/send instructions to query engine 216 to reference graph database engine 228 in order to determine whether any of the triple data converted from query 203 and stored in one or more of databases 220 - 224 matches previously converted triple data stored similarly.
  • a graph created of query 203 (or a copy thereof) or dataset 242 may also be stored in one or more of databases 220 - 224 and used as a reference for a comparison to another graph previously stored in databases 220 - 224 to determine if there is a match (i.e., where there are other datasets that may be related (and presumably of interest to a data scientist (i.e., user)) or similarity with dataset 242 .
  • a rule or set of rules that establish a percentage or numerical threshold may be input using logic module 210 (e.g., display module 218 may be configured to generate, by executing one or more scripts, forms, or formats such as HTML, XML, PHP, or the like) to provide a user interface that a data scientist or researcher (i.e., a user of platform 200 ) may use to input a rule, criteria, or restriction for use in determining whether there are any dataset(s) that may be similar to dataset 242 .
  • logic module 210 e.g., display module 218 may be configured to generate, by executing one or more scripts, forms, or formats such as HTML, XML, PHP, or the like
  • users may enter other rules, criteria, or restrictions that permit or do not permit application 201 to return similar or matching datasets for presentation on a user interface (not shown) provided by display module 218 , which, working in concert with API, may receive and send (for display or visual rendering) data in various types of formats including, but not limited to HTML, XML, XHTML, or any other type of programming or formatting language that may be used to generate the user interface.
  • a user interface not shown
  • display module 218 which, working in concert with API, may receive and send (for display or visual rendering) data in various types of formats including, but not limited to HTML, XML, XHTML, or any other type of programming or formatting language that may be used to generate the user interface.
  • any attributes inferred may be analyzed by logic module 210 and then converted into, for example, triple data (e.g., triple formats such as those described herein and in accordance with protocols such as SPARQL, RDF, among others, without limitation and/or restriction) that can be stored along with the triple data associated with query 203 itself; stored, that is, in one or more of databases 220 - 224 .
  • triple data e.g., triple formats such as those described herein and in accordance with protocols such as SPARQL, RDF, among others, without limitation and/or restriction
  • Inference engine 214 may also be configured to infer attributes about a given dataset(s) such as layout (e.g., columns, rows, axes, matrices, cells, text, among others), data type (e.g., string literals, numbers, integers, fractions, decimals, whole numbers, and the like), but also exceptions (i.e., data that is inconsistent with inferred attributes or other data within a given dataset(s)).
  • display module 218 may be configured to visually present, render, or otherwise display, in various types of graphical user interface layouts (not shown), without limitation or restriction.
  • user interfaces may be presented that provide, in addition to data from a retrieved dataset(s), but also exceptions, annotations, outlier data, inferred attributes, attribute data, or others, using techniques that data scientists and researchers would be familiar with using (e.g., Python, R, and the like) without requiring in-depth or expert knowledge of programming languages underlying platform 102 (e.g., SPARQL, RDF, Java®, JavaScript®, among others).
  • one or more of databases 220 - 224 may be configured to store only triple data, while another database may be configured to store query 203 as a master (as previously described) or copies thereof in order to restore from a catastrophic loss or data corruption event.
  • query 203 may be rejected by a target database (e.g., databases 104 - 106 , databases 114 - 118 , database 122 , and datastore 123 (including databases 124 - 128 ) as shown and described above in connection with FIG. 1 ) or access control module 120 ( FIG. 1 )) because of a partial or complete corruption of data.
  • a target database e.g., databases 104 - 106 , databases 114 - 118 , database 122 , and datastore 123 (including databases 124 - 128 ) as shown and described above in connection with FIG. 1 ) or access control module 120 ( FIG. 1 )
  • a master or copy of query 203 may be retrieved by application 201 from one or more of databases 220 - 224 and used to generate another rewritten query (e.g., rewritten query 244 ) using triple data associated with query 203 and triple data associated with any attributes inferred by inference engine 214 , both of which may be stored in one or more of databases 220 - 224 .
  • dataset 242 or a copy thereof may also be stored in one or more of databases 220 - 224 .
  • attribute(s) determined from inference operations run against query 203 may also include an access control condition or data related thereto, such as a password, token, authentication key, private or public key, hash value, or any other type of data security mechanism.
  • an access control condition in some examples, as a type of attribute can also be converted by conversion module 212 into triple data that may be stored in one or more of databases 220 - 224 , one or all of which may be either local, remote (not shown), or distributed (local or remote) data storage facilities.
  • databases 220 - 224 may be standalone, server, network, or cloud-based data storage facilities and are not limited to the examples or configurations shown and described in connection with FIG. 2 .
  • proxy/endpoint server 206 may be implemented using multiple instantiations for different types, structures, formats, and data schema of databases, datastores, data warehouses, data repositories, or any other types of data storage facility(s).
  • proxy/endpoint server 206 and query engine 216 are configured to generate rewritten query 244 for each target database (not shown) on which dataset 242 is stored (e.g., as originally programmed using, for example, a SELECT statement in SQL) as well as any other dataset(s) that have been identified by logic module 210 as a result of analyzing graphs and/or data models generated by graph database engine 228 and/or those previously generated by graph database engine 228 and stored on one or more of databases 220 - 224 (i.e., identifying other datasets that may be similar to or match dataset 242 , or identifying isomorphic (i.e., data that is related to other data) amongst queried, retrieved
  • proxy/endpoint server 206 may include multiple instantiations, each of which is configured to generate multiple rewritten queries for different types, formats, structures, and/or data schemas for various databases (i.e., multiple versions of rewritten query 244 , where each version may be generated for different types of databases (e.g., Relational, Document-oriented, Key-value, Graph, or others), without limitation or restriction to any particular type, format, or data schema of database.
  • databases e.g., Relational, Document-oriented, Key-value, Graph, or others
  • rewritten query 244 may be “optimized” such that data or metadata representing attributes inferred by inference engine 214 can also be included as triple data during the rewriting process (as described in further detail below) in order to include data or information that can not only fetch or retrieve dataset 242 , but also dataset(s) that may be useful, valuable, or otherwise related to the one sought by query 203 .
  • Optimization may also include rewriting query 203 from one query language into triples, as discussed herein, and from the triples data into rewritten query 244 by proxy/endpoint server 206 , which may also include, during the rewriting process (as described in greater detail below) an access control condition (e.g., password, token, authentication data, encryption data, hash value, or other security data or information) from the converted triple data stored in databases 220 - 224 in order for rewritten query 24 to gain access to and retrieve from, for example, dataset 242 from a private (i.e., secure) network (e.g., network 112 , which may include access control module 120 , datastore 123 , and databases 122 - 128 ).
  • a private (i.e., secure) network e.g., network 112 , which may include access control module 120 , datastore 123 , and databases 122 - 128 .
  • network 112 which may include access control module 120 , datastore 123 , and databases
  • FIG. 3 illustrates an exemplary layered architecture for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization.
  • application stack 300 (hereafter “stack 300 ”) illustrates an exemplary layered architecture that may be used to implement application 201 ( FIG. 2 ), including application layer 302 , query layer 304 , linked data layer 306 , and data layer 308 .
  • Stack 300 is neither a comprehensive nor fully inclusive layered architecture for developing an application or platform for managing integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization.
  • stack 300 includes application layer 302 , which may be the architectural layer at which application 201 ( FIG. 2 ) or platform 102 ( FIG. 1 ) is coded using, for example, Java®, JavaScript®, Ruby, C+, C++, C #, C, or any other structured or unstructured programming language.
  • data for coded functionality that is used to enable one or more of the elements shown and described in connection with FIG. 2 may be transferred (i.e., sent, received), modified, executed, or otherwise operated on at this layer in the architecture of stack 300 .
  • application layer 302 may be implemented differently in the architecture of application 201 .
  • Query layer 304 is an exemplary layer of the architecture of application stack 300 , which may be an architectural layer at which query data is retrieved, analyzed, parsed, or otherwise used to transfer data for various computing operations associated with receiving query 203 ( FIG. 2 ) and generating rewritten query 244 ( FIG. 2 ) in order to retrieve dataset 242 ( FIG. 2 ).
  • Query layer 304 may also be the layer in stack 300 at which API 204 , proxy/endpoint server 206 , conversion module 212 , inference engine 214 , query engine 216 , display module 218 , databases 220 - 224 , and graph database engine 228 receive data and signals generated from logic module 210 for performing various data operations (e.g., parsing, analyzing, converting, rewriting, and optimizing query 203 and rewritten query 244 , among others) on query 203 , dataset 242 , or rewritten query 244 prior to converting data associated with these data elements to triples (as described herein).
  • query layer 304 may be designed, configured, and implemented differently and is not intended to be limited nor restricted to the examples shown and described.
  • linked data layer 306 may be an architectural data layer at which query 203 ( FIG. 2 ) can be analyzed and parsed by logic module 210 ( FIG. 2 ), from which graphs may be generated. Once graphs are generated, in some examples, linked data layer 306 is the architectural layer at which graph data (not shown) may be transferred (i.e., sent, received) or otherwise communicated between the various elements of application 201 ( FIG. 2 ). Further, graph data (i.e., data and metadata associated with graphs of linked data that are generated, stored, modified, or otherwise used by application 201 when rewriting and optimizing query 203 into rewritten query 244 (as described in greater detail below).
  • graph data i.e., data and metadata associated with graphs of linked data that are generated, stored, modified, or otherwise used by application 201 when rewriting and optimizing query 203 into rewritten query 244 (as described in greater detail below).
  • triple data layer 308 is illustrative of an exemplary layer in the architecture of application 201 ( FIG. 2 ) at which “atomic” triple data has been converted from the native programmatic and/or formatting language of query 203 or another query received by application 201 .
  • conversion module 212 in some examples, converts data associated with query 203 into RDF or other forms of “atomic” triples data, which can be stored by platform 201 (e.g., in databases 220 - 224 ).
  • “atomic” may refer to a common conversion data format that, once converted, can be used to create various types of queries for datasets stored on different, inconsistent, or incongruous databases.
  • triple data layer 308 is the layer at which triple data can be exchanged among the various elements of application 201 ( FIG. 2 ) from which rewritten query 244 can be created by proxy/endpoint server 206 ( FIG. 2 ) and query engine 216 ( FIG. 2 ) to create federated queries (i.e., rewriting query 203 for multiple inconsistent and non-congruous databases (as described herein) using disparate data communication and transfer protocols, query languages, data schema, data models, and the like.
  • federated may refer to the described techniques being used to generate, transmit, execute, and manage rewritten queries (i.e., multiple instances of rewritten query 244 ) for different databases in order to retrieve not only the originally-requested dataset of query 203 , but other dataset(s) that may be related to, associated with, or included for retrieval, regardless of the data type, format, structure, data schema, data model, graph, or other characteristics of the database on which the datasets (e.g., dataset 242 ) are stored. Further, any attributes determined by inference engine 214 are also converted by conversion module 212 ( FIG.
  • stack 300 and the various layers shown may be varied in structure, function, format, data type, data model, or other aspects and are not limited to the examples shown and described.
  • FIG. 4 illustrates an exemplary data flow for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization.
  • data flow 400 includes query triple data 402 , attribute triple data 404 , query rewrite process 406 , rewritten query 408 , public datasets 410 - 412 , and private datasets 414 - 416 .
  • query triple data 402 and attribute triple data 404 are received as data inputs to query rewrite process 406 .
  • query rewrite process 406 uses converted triples (as described above) in, for example, RDF, query rewrite process 406 then generates rewritten query 408 , which is then directed by proxy/endpoint servers (e.g., proxy/endpoint server 206 ( FIG. 2 )) to one or more public and/or private databases that may be housed, stored, operated, distributed by, or otherwise logically accessible on one or more public and/or private data networks (not shown).
  • proxy/endpoint servers e.g., proxy/endpoint server 206 ( FIG. 2 )
  • rewritten query 408 may be similar to rewritten query 244 ( FIG. 2 ) and, is converted by conversion module 212 ( FIG.
  • triple-formatted data e.g., query triple(s) 402 and attribute triple(s) 404
  • a target dataset e.g., dataset 242 ( FIG. 2 )
  • public datasets 410 - 412 private datasets 414 - 416 , among others.
  • rewritten query 408 may be directed, transmitted, transferred, or otherwise executed as a query against one or more databases (not shown) storing public datasets 410 - 412 and private datasets 414 - 416 .
  • the number, type, shape, and flow of data flow diagram 400 may be varied in process, steps, order, function, description, or other aspects, without limitation or restriction, and are not limited to the examples shown and described.
  • FIG. 5 illustrates an exemplary data operations model illustrating various processes for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization.
  • data operations model includes query data 502 , attribute data 504 , query rewrite process 506 , rewritten query 508 , and processes for query copy/replication 510 , storage 512 , triple conversion 514 , endpoint query generation 516 , and endpoint query execution 518 .
  • each of elements 502 - 518 may be a implemented as a process, computer program, software, firmware, hardware, circuitry, logic, or a combination thereof (hereafter “application”) and, in some examples, may be written in Java® and/or JavaScript®, or any other programming or formatting language, without limitation or restriction. Elements 502 - 518 may be programmed, developed, or encoded using software programming techniques familiar to these programming and formatting languages or others, without restriction, regardless of whether object-oriented, structured, or unstructured.
  • query data 502 and query attribute data 504 are input to query rewrite process 506 .
  • query data 502 may be data that is inferred (by inference engine 214 ( FIG.
  • attribute data 504 may be triple data that is converted from inferred data generated from inference engine 214 regarding one or more characteristics associated with query 502 (e.g., query 203 ( FIG. 2 )). Using triple data associated with a query (e.g., query 502 , query 203 ( FIG. 2 )) and one or more attributes inferred from the query (i.e., by inference engine 214 ( FIG.
  • query rewrite process 506 may be an application, computer program, software, firmware, script, thread, multiple threaded program or application, distributed or cloud-based application, circuitry, logic, or a combination thereof, that is configured to generate a rewritten query (e.g., rewritten query 508 ) that may be executed against one or more databases.
  • proxy/endpoint server 206 FIG. 2
  • proxy/endpoint servers not shown
  • platform 102 FIG. 1
  • application 201 FIG.
  • rewritten query 508 can generate, execute, and manage multiple queries similar to a federated system by directing each rewritten query (i.e., rewritten query 508 ) to a proxy/endpoint server 206 that is configured or scripted to generate and execute a query (e.g., query 508 ) for a given query language or protocol (e.g., SQL, SPARQL, XPath, MDX, LDAP, Datalog, CQL, and various other structured or unstructured languages or protocols, without limitation or restriction).
  • query language or protocol e.g., SQL, SPARQL, XPath, MDX, LDAP, Datalog, CQL, and various other structured or unstructured languages or protocols, without limitation or restriction.
  • query copy/replication 510 may be a process that is implemented by application 201 ( FIG. 2 ) and configured to replicate or copy (hereafter, “replicate” and “copy” may be used interchangeably to the generation of a copy or replica of a query (e.g., query 203 ( FIG. 2 )), dataset (e.g., dataset 242 ( FIG. 2 )), rewritten query (e.g., rewritten query 244 ( FIG. 2 )), linked data graph (i.e., “graph”), object model, data model, or any other type of data instance that may be used, manipulated, modified, deleted, generated, created, or otherwise operated upon by application 201 .
  • replicate and “copy” may be used interchangeably to the generation of a copy or replica of a query (e.g., query 203 ( FIG. 2 )), dataset (e.g., dataset 242 ( FIG. 2 )), rewritten query (e.g., rewritten query 244 ( FIG. 2 )
  • query copy/replication 510 may be implemented as a process that occurs before, during, after, or as a part of query rewrite 506 .
  • query copy/replication 510 may be also be performed in parallel or serial with other processes or threads (e.g., storage 512 , triple conversion 514 , endpoint query generation 516 , endpoint query execution 518 , among others).
  • query/copy replication 510 may be designed, implemented, configured, or otherwise executed differently and is not limited to the examples shown and described.
  • storage 512 may be configured to run or execute as a process to store a generated copy of a query and the original query (i.e., master) in one or more databases associated with application 201 ( FIG. 2 ) and as described above.
  • Other data including inferred data such as attribute or characteristic data, graphs, linked data, graph data, and the like may also be stored and retrieved using storage 512 .
  • databases may include any type of data storage facility that is configured to physically, virtually, logically, or otherwise work with application 201 in a standalone, hosted, distributed, or cloud-based configuration.
  • triple conversion 514 may be implemented as, for example, a process configured to convert query data into triples (e.g., RDF triples, items that are subject-predicate-object oriented, or another atomic format apart from those described herein).
  • Data associated with a query may include query data received and parsed directly from, for example, query 203 ( FIG. 2 ) or other data associated with characteristics or attributes of a query that may be inferred by inference engine 214 ( FIG. 2 ).
  • Triple data, once converted from query or attribute data in some examples, may be stored in a similar manner using a process similar to that described above in connection with copy/replica storage 512 .
  • Triple data (e.g., query 502 , attribute 504 ) may be used by query rewrite 506 to construct and generate rewritten query 508 , which can be converted back from a triples-based format (e.g., RDF, or others) into another structured or unstructured data query language (e.g., SQL, SPARQL, and others) by an endpoint server (e.g., proxy/endpoint server 206 ( FIG. 2 )) that is configured to communicate with a given database, datastore, data network, or the like using, for example, endpoint query generation 516 as a process for doing so.
  • endpoint query generation 516 may be a process or set of processes used by application 201 ( FIG.
  • Rewritten queries may be executed using endpoint query execution 518 as a process or set of processes that are configured to execute (i.e., run) against any public or private data network or secure data network such as those provided by Data.Gov, the U.S. Department of Defense, the National Institutes of Health, or other private, corporate, academic, non-profit, or other types of organizations or entities that have datasets.
  • application 201 and graph database engine 228 may be configured to generate, store, and modify graphs of linked data as datasets are identified by platform 102 ( FIG. 1 ).
  • proxy/endpoint server 206 may use different query languages and the processes described herein such as triple conversion 514 , endpoint query generation 516 , and endpoint query execution 518 are not limited to any particular language or version thereof. In other examples, the above-described processes may be designed, implemented, configured, or otherwise executed differently and are not limited to the examples shown and described.
  • FIG. 6A illustrates an exemplary process flow for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization.
  • process 600 begins by receiving a query ( 602 ). Once received a copy (i.e., replica) is generated and a graph is created by, for example, graph database engine 228 ( FIG. 2 ) ( 604 ). Once created, the original query (e.g., query 203 ( FIG. 2 )) may be stored as a master and the copy may also be stored, but in the same or a different location (i.e., in a different database).
  • a copy i.e., replica
  • a graph is created by, for example, graph database engine 228 ( FIG. 2 ) ( 604 ).
  • the original query e.g., query 203 ( FIG. 2 )
  • the copy may also be stored, but in the same or a different location (i.e., in a different database).
  • any newly-generated or modified graphs and graph data may also be stored, either in the same, similar, or a different location than that of the master and the copy of query 203 .
  • process 600 may include parsing a copy of the query ( 606 ).
  • inference engine 214 FIG. 2
  • inference engine 214 may be directed by control data or signals from logic module 210 ( FIG. 2 ) to determine and identify any attributes (i.e., characteristics) associated with a query, the queried (i.e., requested) dataset(s), any linked data that might suggest other datasets previously determined and identified to be related or similar to the data in the requested dataset ( 608 ).
  • proxy/endpoint servers e.g., proxy/endpoint server 206 ( FIG. 2 ) that are configured to be in data communication with various data networks ( 612 ).
  • an access control condition e.g., such as those described above
  • the access control condition and the query data are converted into triples (as described herein) ( 614 ).
  • the triple data is then used to generate a rewritten query (e.g., rewritten query 244 ( FIG. 2 ), rewritten query 508 ( FIG. 5 )) that includes both the query and the access control condition ( 616 ).
  • rewritten query is directed to a given proxy/endpoint server (e.g., proxy/endpoint server 206 ( FIG. 2 ) which converts the triples data into a language(s) and format(s) for the target or destination data network and database ( 618 ) after which process 600 ends.
  • proxy/endpoint server e.g., proxy/endpoint server 206 ( FIG. 2 ) which converts the triples data into a language(s) and format(s) for the target or destination data network and database ( 618 ) after which process 600 ends.
  • rewritten queries having access control conditions are sent to private data networks to obtain datasets housed (i.e., stored) within (i.e., private datasets) and rewritten queries without access control conditions may be sent to public data networks to obtain datasets housed within (i.e., public datasets).
  • a rewritten query may be generated at each proxy/endpoint server (e.g., proxy/endpoint server 206 ), which each represent an internal endpoint that is configured to transfer data with a given database engine (i.e., database or data network on which a target dataset is stored).
  • a given database engine i.e., database or data network on which a target dataset is stored.
  • rewritten queries or those parts of a rewritten query that differ due to the query language or format of a given destination database engine, database, datastore, or data network may be sent to graph database engine 228 ( FIG. 2 ) for updating one or more stored graphs associated with the original query (e.g., query 203 ( FIG. 2 )) or other graphs.
  • process 600 and alternative processes such as those described above may be performed in order to enable, for example, proxy/endpoint server 206 ( FIG. 2 ) to “issue” federated pieces of a query to internal graph database engines such as graph database engine 228 ( FIG. 2 ).
  • federation may refer to an overall process or set of processes or techniques that are used to generate, manage, receive responses to, graph, track, and perform other processes related to executing a query against multiple incongruous and non-contiguous databases, database engines, or data, generally, of different formats, languages, structures (or lack thereof), and the like, while managing integrated and consolidated retrieval (e.g., fetch) of requested datasets in response to the query.
  • FIG. 6B illustrates a further exemplary process flow for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization.
  • process 620 illustrates exemplary processes for managing query copies and masters and initiates by generating a copy of a query and creating a graph and graph data associated with the query and its copy ( 604 ).
  • process 620 for copies of queries, identifies the copy as a replica ( 622 ), identifies a database or datastore for storing the replica ( 624 ), updates the graph associated with the query to identify (i.e., through the use of metadata, tags, markers, or other elements that can be used to discretely distinguish a copy from a master) the copy or replica to be used for further data operations to be performed, for example, by platform 102 ( FIG. 1 ) and/or application 201 ( FIG. 2 ). Further, after updating the graph and graph data, the copy is made available for parsing by, for example, logic module 210 ( FIG. 2 ) or the other elements of application 201 .
  • a query may be identified as a master ( 630 ).
  • a database or datastore in data communication with application 201 ( FIG. 2 ) is identified to store the master ( 632 ).
  • Examples of databases or datastores that may be used to store a master are databases 220 - 224 ( FIG. 2 ) or those described above in connection with platform 102 and FIG. 1 .
  • the graph generated for the query is updated with the stored location of the master and the stored location of the dataset(s) to be retrieved (i.e., fetched) ( 634 ).
  • the master After inferring this information (e.g., by running inference engine 214 against a master), the master is stored in the previously-identified database or datastore ( 636 ).
  • the above-described process may be varied in function, order, procedure, and process, without limitation to any of the examples or accompanying descriptions.
  • FIG. 6C illustrates another exemplary process flow for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization.
  • process 640 initiates (i.e., starts) by receiving a copy of a query from process 628 ( FIG. 6B ) ( 642 ). Once received, the copy is parsed by, for example, logic module 210 and one or more of elements 204 - 228 ( FIG. 2 ) ( 644 ). Before, during, or after parsing (despite the exemplary process 640 illustrating parsing occurring beforehand), inference engine 214 ( FIG. 2 ), for example, is invoked in order to determine whether any attributes and/or attribute data associated with the query can be determined from the copy of the query ( 646 ).
  • any attribute(s) and/or attribute data is stored with links in an updated graph, which link the copy of the query and the master to the attribute(s) and/or attribute data ( 652 ).
  • the above-described process may be varied in function, order, procedure, and process, without limitation to any of the examples or accompanying descriptions.
  • the given data network and dataset may be those originally targeted by a query (e.g., query 203 ( FIG. 2 )).
  • a given data network and dataset may be different than those originally targeted by a query, but which may be determined to be related or similar to, associated with, or linked through analysis of a graph or graph data; the analysis being performed by, for example, graph database engine 228 ( FIG. 2 ).
  • a copy of a query and any inferred attributes or attribute data are identified for rewriting ( 664 ). More specifically, a copy of a query and inferred attributes and/or attribute data has been converted into triple data, as described above.
  • triple data and query data can be evaluated by logic module 210 ( FIG. 2 ) to identify or determine whether an access control condition is an attribute of the query, the dataset, or the data network on which the dataset is stored and, if so, identifying the access control condition for inclusion in a rewritten query (e.g., rewritten query 244 ( FIG. 2 ), rewritten query 508 ( FIG. 5 )) ( 666 ).
  • the copy of the query is converted (as part of the rewriting process) with any attributes or attribute data or access control conditions into triple data in accordance with a second data format (e.g., RDF, SPARQL, or the like) apart from that of the first data format of the original query (e.g., query 203 ).
  • a second data format e.g., RDF, SPARQL, or the like
  • the triple data is stored in a triple store (e.g. a datastore configured to store triple-formatted data (e.g., RDF), one or more of databases 220 - 224 ( FIG.
  • proxy/endpoint servers e.g., proxy/endpoint server 206 ( FIG. 2 )
  • endpoint server e.g., data scientist, researcher, scientist, academic researcher, or any other user or consumer of data using platform 102 ( FIG. 1 )
  • 670 a user
  • the above-described process may be varied in function, order, procedure, and process, without limitation to any of the examples or accompanying descriptions.
  • FIG. 6E illustrates yet a further exemplary process flow for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization.
  • process 680 starts by initiating execution of a rewritten query (e.g., rewritten query 244 ( FIG. 2 ), rewritten query 508 ( FIG. 5 )) ( 682 ).
  • a target dataset e.g., dataset 242 ( FIG. 2 )
  • fetch i.e., fetch
  • a first determination is made as to whether a target dataset is being stored on a public (i.e., publicly-accessible, open, or access is not subject or dependent upon an access control condition such as those described above) or private (secure or subject to authorization or authentication, as described herein) data network ( 686 ). If the target dataset is stored on a private data network, then another determination is made as to whether an access control condition is required to access the target dataset ( 688 ). For example, although a given dataset may be hosted (i.e., stored, reposited, or otherwise housed) on a private data network, there may be an access control condition required to access both a private data network and a private dataset.
  • a private dataset may be hosted on a public network and, although an access control condition is not required to access the public data network, an access control condition may be required to access a private dataset stored thereon. While this example is not illustrated, it is neither limited nor restricted from the scope of the techniques discussed herein.
  • a rewritten query may be executed by transmission from a proxy/endpoint server (e.g., proxy/endpoint server 206 ) to either a destination data network on which a target dataset is stored or to another data network(s) on which dataset(s) that may be linked to the requested dataset may also be stored, and retrieving the requested and/or linked dataset(s) (i.e., linked datasets may be those that are identified as being linked to a requested dataset due to linkages that are identifying in a linked data model such as a graph or graph data, which are generated, stored, indexed, and otherwise managed by graph database engine 228 ( FIG. 2 ) ( 692 ).
  • a proxy/endpoint server e.g., proxy/endpoint server 206
  • FIG. 7A illustrates an alternative exemplary process flow for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization.
  • process 700 is initiated (i.e., starts) by receiving a query formatted or programmed in a first data schema (e.g., SQL) ( 702 ).
  • a copy of the received query is generated ( 704 ) and then parsed ( 706 ).
  • Resultant from the parsing, attributes are inferred (i.e., identified) by using various types of inference methods, techniques, and algorithms, some of which have been described herein ( 708 ).
  • a copy of the query data is rewritten into a second data format (e.g., RDF).
  • a second data format e.g., RDF
  • the converted data (e.g., triple data) may be stored in a triple store for further rewriting and optimization ( 712 ).
  • “optimization” may refer to one or more actions that are taken during the generation of a rewritten query when, in addition to triple data associated with the original query, other data associated with inferred attributes such as access control conditions are also included (or the converted triple data associated with the inferred attributes and access control condition(s)) in a rewritten query, which may be generated by converting the triple data into a third data format, which may be the same, a similar, or a different data format than that of the original query ( 712 ).
  • the above-described process may be varied in function, order, procedure, and process, without limitation to any of the examples or accompanying descriptions.
  • FIG. 7B illustrates a further alternative exemplary process flow for optimizing rewritten queries using platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization.
  • process 720 is a further detailed process or sub-process for optimizing a rewritten query as described above in connection with process step 712 ( FIG. 7A ).
  • triple data configured e.g., tagged, marked, encoded, or otherwise identified
  • a given rewritten query e.g., rewritten query 244 ( FIG. 2 ), rewritten query 508 ( FIG. 5 )
  • rewritten query e.g., rewritten query 244 ( FIG. 2 )
  • rewritten query 508 FIG. 5
  • triple data received in step 722 may be associated with a query (e.g., query 203 ( FIG. 2 ) or a copy of a query (not shown)) and/or any inferred attributes or attribute data determined by inference engine 214 ( FIG. 2 )).
  • a query e.g., query 203 ( FIG. 2 ) or a copy of a query (not shown)
  • any inferred attributes or attribute data determined by inference engine 214 FIG. 2
  • a database engine intended to execute a rewritten query i.e., the target of an originally-received query (e.g., query 203 ( FIG. 2 )) from platform 102 ( FIG. 1 ) or application 201 ( FIG. 2 ) may be identified ( 726 ).
  • a database engine in some examples, is identified as being assigned to execute queries for the target dataset(s) and to execute any access control conditions or mechanisms, if any.
  • a database engine may also refer to a data server or group of data servers, a data network, a datastore, or any type of database management system that is configured to manage the storage resource facility on which the queried or requested dataset is stored.
  • data or metadata is used to identify an “optimal” path from a proxy/endpoint server (e.g., proxy/endpoint server 206 ( FIG. 2 ) to a target dataset(s) ( 728 ).
  • “optimal” may be used interchangeably with “best” or “least worst” to identify a path between platform 102 ( FIG. 1 ) and a database engine configured to execute a query requesting data (e.g., executing a FETCH statement) to retrieve a given (i.e., target, targeted, requested, or queried) dataset.
  • a query requesting data e.g., executing a FETCH statement
  • an optimal path between platform 102 and a target dataset(s) may be a path graphed as a series of nodes from proxy/endpoint server 206 ( FIG.
  • an optimal path may be one that includes the least number of network nodes (e.g., servers, central offices, logical modules or nodes, endpoints, or the like) between proxy/endpoint server 206 and the target dataset.
  • an optimal path may be one that is defined by the least number of “hops” between nodes, topologically.
  • an optimal path may be one that is determined based on the lowest level of latency in terms of data transmission to and from platform 102 .
  • an optimal path may be determined based on real-time assessments of network and network equipment outages.
  • an optimal path may also include nodes or network endpoints that are within the data network served by the database engine identified as being configured to execute a query to retrieve a target dataset(s).
  • an optimal path may be determined differently and is not limited to the examples provided herein.
  • Data describing, defining, determining, or otherwise identifying an optimal path may include data and/or metadata in any form or format, including, but not limited to XML, R, RDF, text, HTML, or any other type of programming or formatting language that may be used to generate data and metadata (i.e., information that is used to describe, characterize, attribute, or otherwise annotate data), without limitation or restriction.
  • data and/or metadata that identifies a path between, for example, proxy/endpoint server 206 ( FIG. 2 ) and a target dataset(s), may be converted into triple data in accordance with a second data schema ( 730 ).
  • the converted triple data for the path may be retrieved by application 201 and used, by one or more elements (e.g., proxy/endpoint server 206 , logic module 210 , conversion module 212 , query engine 216 , among others) to generate a rewritten query by converting the triple data into another data schema that is used by a database engine in a destination data network on which a target dataset(s) or a linked dataset(s) is stored ( 734 ).
  • a rewritten query e.g., rewritten query 244 ( FIG. 2 ), rewritten query 508 ( FIG. 5 )
  • proxy/endpoint server 206 and application 201 FIG. 2
  • the above-described process may be varied in function, order, procedure, and process, without limitation to any of the examples or accompanying descriptions.
  • FIG. 8 illustrates an exemplary computer system suitable for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization.
  • computer system 800 may be used to implement computer programs, applications, methods, processes, or other software to perform the above-described techniques.
  • Computer system 800 includes a bus 802 or other communication mechanism for communicating information, which interconnects subsystems and devices, such as processor 804 , system memory 806 (e.g., RAM), storage device 808 (e.g., ROM), disk drive 810 (e.g., magnetic or optical), communication interface 812 (e.g., modem or Ethernet card), display 814 (e.g., CRT or LCD), input device 816 (e.g., keyboard), and cursor control 818 (e.g., mouse or trackball).
  • processor 804 system memory 806 (e.g., RAM), storage device 808 (e.g., ROM), disk drive 810 (e.g., magnetic or optical), communication interface 812 (e.g., modem or Ethernet card), display 814 (e.g., CRT or LCD), input device 816 (e.g., keyboard), and cursor control 818 (e.g., mouse or trackball).
  • system memory 806 e.g., RAM
  • storage device 808
  • computer system 800 performs specific operations by processor 804 executing one or more sequences of one or more instructions stored in system memory 806 . Such instructions may be read into system memory 806 from another computer readable medium, such as static storage device 808 or disk drive 810 . In some examples, hard-wired circuitry may be used in place of or in combination with software instructions for implementation.
  • Non-volatile media includes, for example, optical or magnetic disks, such as disk drive 810 .
  • Volatile media includes dynamic memory, such as system memory 806 .
  • Computer readable media includes, for example, floppy disk, flexible disk, hard disk, magnetic tape, any other magnetic medium, CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge, or any other medium from which a computer can read.
  • Transmission medium may include any tangible or intangible medium that is capable of storing, encoding or carrying instructions for execution by the machine, and includes digital or analog communications signals or other intangible medium to facilitate communication of such instructions.
  • Transmission media includes coaxial cables, copper wire, and fiber optics, including wires that comprise bus 802 for transmitting a computer data signal.
  • execution of the sequences of instructions may be performed by a single computer system 800 .
  • two or more computer systems 800 coupled by communication link 820 may perform the sequence of instructions in coordination with one another.
  • Computer system 800 may transmit and receive messages, data, and instructions, including program, i.e., application code, through communication link 820 and communication interface 812 .
  • Received program code may be executed by processor 804 as it is received, and/or stored in disk drive 810 , or other non-volatile storage for later execution.
  • the above-described techniques may be implemented differently in design, function, and/or structure and are not intended to be limited to the examples described and/or shown in the drawings.

Abstract

Various techniques are described for platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization, including receiving at a dataset access platform a query formatted according to a first data schema, generating a copy of the query, saving the query and the copy to a datastore, parsing the copy of the query in the first schema using an inference engine, determining whether the query comprises data associated with an access control condition associated with accessing the dataset, the access control condition being configured to indicate whether the query is permitted to access the dataset, and rewriting, using a proxy server, the copy of the query in a second schema, and optimizing the rewriting by identifying a database engine to execute the query and including other data converted into another triple associated with an attribute of the query.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This application is a continuation application (“CON”) of U.S. patent application Ser. No. 15/439,911, filed Feb. 22, 2017; This application is a continuation application (“CON”) of U.S. patent application Ser. No. 16/428,456, filed May 31, 2019; This application and U.S. patent application Ser. No. 15/439,911 are a continuation-in-part application of U.S. patent application Ser. No. 15/186,514, filed Jun. 19, 2016, now U.S. Pat. No. 10,102,258; This application and U.S. patent application Ser. No. 15/439,911 are also a continuation-in-part application of U.S. patent application Ser. No. 15/186,515, filed Jun. 19, 2016; This application and U.S. patent application Ser. No. 15/439,911 are also a continuation-in-part application of U.S. patent application Ser. No. 15/186,516, filed Jun. 19, 2016; This application and U.S. patent application Ser. No. 15/439,911 are also a continuation-in-part application of U.S. patent application Ser. No. 15/186,517, filed Jun. 19, 2016, now U.S. Pat. No. 10,324,925; This application and U.S. patent application Ser. No. 15/439,911 are also a continuation-in-part application of U.S. patent application Ser. No. 15/186,519, filed Jun. 19, 2016; This application and U.S. patent application Ser. No. 15/439,911 are also a continuation-in-part application of U.S. patent application Ser. No. 15/186,520, filed Jun. 19, 2016; This application and U.S. patent application Ser. No. 15/439,911 are also a continuation-in-part application of U.S. patent application Ser. No. 15/454,923, filed Mar. 9, 2017; This application and U.S. patent application Ser. No. 15/439,911 are also a continuation-in-part application of U.S. Nonprovisional patent application Ser. No. 15/454,955, filed Mar. 9, 2017; This application and U.S. patent application Ser. No. 15/439,911 are also a continuation-in-part application of U.S. patent application Ser. No. 15/454,969, filed Mar. 9, 2017; This application and U.S. patent application Ser. No. 15/439,911 are also a continuation-in-part application of U.S. patent application Ser. No. 15/454,981, filed Mar. 9, 2017; all of which are hereby incorporated by reference in their entirety for all purposes.
  • FIELD
  • The present invention relates generally to data science, machine and deep learning computer algorithms, data graph modeling, and analysis of linked data. More specifically, techniques for management of integrated access to public and privately-accessible datasets are described.
  • BACKGROUND
  • As demand for data and data science expands rapidly, significant research into potential uses of data in various applications are also increasing at a dramatic rate. With enormous amounts of data and information becoming increasingly available, utilizing data is becoming a greater focus of both consumer and commercial activities alike. Datasets (i.e., sets or groups of logically-related data and/or information) are being created to provide statistical information that researchers are using to discover new innovations and applications in almost every aspect of contemporary life and lifestyles. However, utilizing data also involves addressing a growing problem, which includes identifying data, sources thereof, and managing the ever-increasing amount of data becoming available. Moreover, as the amount and complexity of data, datasets, databases, datastores and data storage facilities increase, the ability to identify, locate, retrieve, analyze, and present data in useful ways is also becoming increasingly difficult. Today, managing large amounts of data for useful purposes poses a significant problem for individual users, organizations, and entities alike. Conventional techniques are problematic in that these are neither capable nor configured to manage large scale problems such as providing integrated access to data that is both available on public resources as well as those that are hosted or stored on private (i.e., secure (i.e., requiring authentication or authorization before access is permitted)) data storage resources. More importantly, users are typically burdened by conventional techniques in that access to data often requires not only proficient, if not expert, knowledge of both computer programming languages commonly known and used by data researchers and scientists (e.g., Python, or others), but knowledge of complex computer databases, datastores, data repositories, data warehouses, data and object schema, data modeling, graph modeling, graph data, linked data, and numerous other data science topics is also required. Queries executed to retrieve data using conventional techniques typically require knowledge of specific programming or formatting languages, which can limit the usability of data. Specifically, conventional techniques are problematic because these lack intrinsic knowledge or technical functionality to permit a user such as a data scientist to locate, manage, access, and execute queries to retrieve data from various disparate and often dissimilar data resources.
  • Thus, what is needed is a solution for managing consolidated, integrated access to public and/or privately-accessible (i.e., secure) data without the limitations of conventional techniques.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • Various embodiments or examples (“examples”) of the invention are disclosed in the following detailed description and the accompanying drawings:
  • FIG. 1 illustrates an exemplary topology for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization;
  • FIG. 2 illustrates an exemplary platform architecture for a platform for managing integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization;
  • FIG. 3 illustrates an exemplary layered architecture for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization;
  • FIG. 4 illustrates an exemplary data flow for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization;
  • FIG. 5 illustrates an exemplary data operations model illustrating various processes for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization;
  • FIG. 6A illustrates an exemplary process flow for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization;
  • FIG. 6B illustrates a further exemplary process flow for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization;
  • FIG. 6C illustrates another exemplary process flow for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization;
  • FIG. 6D illustrates an additional exemplary process flow for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization;
  • FIG. 6E illustrates yet a further exemplary process flow for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization;
  • FIG. 7A illustrates an alternative exemplary process flow for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization;
  • FIG. 7B illustrates a further alternative exemplary process flow for optimization of rewritten queries using platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization; and
  • FIG. 8 illustrates an exemplary computer system suitable for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization.
  • DETAILED DESCRIPTION
  • Various embodiments or examples may be implemented in numerous ways, including as a system, a process, an apparatus, a user interface, or a series of program instructions on a computer readable medium such as a computer readable storage medium or a computer network where the program instructions are sent over optical, electronic, or wireless communication links. In general, operations of disclosed processes may be performed in an arbitrary order, unless otherwise provided in the claims.
  • A detailed description of one or more examples is provided below along with accompanying figures. The detailed description is provided in connection with such examples, but is not limited to any particular example. The scope is limited only by the claims and numerous alternatives, modifications, and equivalents are encompassed. Numerous specific details are set forth in the following description in order to provide a thorough understanding. These details are provided for the purpose of example and the described techniques may be practiced according to the claims without some or all of these specific details. For clarity, technical material that is known in the technical fields related to the examples has not been described in detail to avoid unnecessarily obscuring the description.
  • FIG. 1 illustrates an exemplary topology for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization. Here, topology 100 includes dataset access platform (“platform”) 102, databases 104-106, data networks 108-112 (as used herein, “data network” and “network” may be used interchangeably without limitation or restriction and are intended to be interpreted similarly with respect to this Detailed Description and/or the accompanying claims), databases 114-118, access control module 120, database 122, and datastore 123 (including databases 124-128). In some examples, “topology” may refer to a computer network topology that represents a map or aggregation of computing resources that are used to implement a feature, function, or set or group of functionality, including identified resources, technical specifications, protocols, languages, formats, and other elements. As used herein, “database” (e.g., databases 104-106, 114-118, 122, 124-128) may refer to any type of data storage facility, including, but not limited to, a standalone, web, networked, or computing cloud-based database, datastore, data repository, data warehouse, or any other type of facility or resource that may be used to store and/or retrieve data and information stored in accordance with a structured, unstructured, relational, or non-relational data schema or data object schema. As used herein, the terms “computing cloud” or “cloud” may be used interchangeably without limitation and may refer to any logical collection, grouping, assembly, or identified set of data computing based resources that provide various types of processing, storage, or other data operation and are not limited to any specific topology or geographic restriction and may be deployed over a distributed area or set of resources such as a collection of computers or servers located in disparate facilities distributed geographically, without limitation. In some examples, “datastore” (e.g., datastore 123) may refer to one or more databases (e.g., databases 104-106, 114-118, 122, 124-128) that are grouped or otherwise rendered interoperable using logical layers to provide management or overriding layers of management functionality for purposes of accessing, storing, and/or retrieving data and information stored within one or more databases within a given datastore. A datastore (e.g., datastore 123) does not need to topologically or logically reside on a single or individual network resource, as an example, and may be distributed in a widespread or disparate architecture using networked resources such as those found within a public or private (i.e., secured using authentication, authorization, token, password, or any other form of data security technique) data network, a computing cloud, or logical collection of networked data storage resources. For example, datastore 123 is shown including databases 124-128, but may, in other examples, also include one, some, or none of databases 104-106 and 114-118. Datastore 123 may also be implemented as a computing cloud and are not limited to any specific types of network architectures or topologies and the examples shown here are provided for purposes of exemplary illustration and description, without limitation. In other examples, other designs and implementations beyond those set forth and described herein may be used, without limitation or restriction to any specific design, architecture, implementation, embodiment, or example (i.e., collectively, “example”).
  • As illustrated in exemplary topology 100, in some examples, dataset access platform 102 may be configured to access public and/or privately-accessible datasets that are hosted on one or more databases, some, all, or none of which may be hosted on data networks such as networks 108-112. As used herein, “dataset access platform,” “access platform,” and “platform” may be used interchangeably without limitation and, in some examples, refers to a computer program, software, firmware, circuitry, algorithms, logic, hardware, or a combination thereof in order to implement techniques (e.g., systems, processes, or the like) for providing integrated query, access, retrieval, and other data operations using public and private datasets. As shown in topology 100, platform 102 may be configured to access databases 104-106, 114-118, 122 and/or datastore 123 including databases 124-128 in order to execute a query to retrieve one or more datasets stored in these elements. Datasets may be retrieved by, for example, data scientists, researchers, or any other user who may be interested in querying and retrieving a dataset for a given purpose. Datasets may include any type, form, format, or amount of publicly-accessible sources of data such as those available from Data.Gov, the U.S. Department of Defense, oceanographic data from the National Oceanic and Atmospheric Administration (NOAA), as well as privately collected, curated, managed, and created datasets such as those found on corporate, non-profit, research, scientific, or academic data networks. Datasets may be retrieved from a large number of sources and, as used herein, are not intended to be limited to any specific type, source, or format of data. In some examples, network 108 may be a publicly-accessible data network that includes one or more databases such as databases 114-118.
  • In some examples, databases 104-106, 114-118, 122 and datastore 123 including databases 124-128 may be accessed or used by dataset access platform 102 using a “farm” or collection of graph database engines (see element 228 (FIG. 2) below) that are configured to execute queries received by (e.g., queries sent in SQL or other structured or unstructured programming or formatting languages to) platform 102 to retrieve datasets from one or more of 104-106, 114-118, 122 and datastore 123, which includes databases 124-128, each database of which may be configured for public (i.e., open) or private (i.e., secure, authentication required, access controlled, or the like) access, without limitation. In some examples, a dataset may reside on a private database (e.g., within a data network that requires authentication or access control conditions (e.g., tokens, certificates, passwords, hashes, or the like) in order to access the data network (e.g., network 112) and/or the dataset (i.e., which may be stored on database 122 or datastore 123 including databases 124-128). Private datasets (e.g., database 122) may reside on a secure network in order to prevent access to data that may be sensitive, confidential, private, personal, or otherwise not desired or intended for public viewing.
  • As shown, platform 102 may be configured to access datasets stored on publicly-accessible (i.e., public or open) databases 104-106 and 114-118 or, in some examples, private database 122 and/or datastore 123 and databases 124-128. Platform 102, in some examples, may be a platform or application such as that developed by Data.World of Austin, Tex., including various features and functionality, as described in some of those properties incorporated by reference as set forth above. As shown, datastore 123 includes databases 124-128, although the number, type, format, data schema, and other characteristics may be varied and are not limited to the examples shown and described. For example, datastore 123 may use a database management system (not shown) to manage databases 124-128. As shown here, platform 102 may be configured to communicate over one or more other data networks such as the Internet, a private data network, or a computing cloud, without limitation to the type of data network provided a layered topology is used to communicate queries to/from platform 102 and a destination or target database (e.g., databases 104-106, 114-118, 122 and datastore 123 including databases 124-128). Platform 102 may also be configured to access datastore 123, which could be housed and operated on a separate data network (e.g., data network 112) than another data network through which a query or request is transmitted, passed, or sent (e.g., data network 110). In other words, platform 102 may be a standalone, distributed, local, remote, or cloud-based application, process, algorithm(s), computer program, software, firmware, hardware, server, or the like (hereafter “application”) that may be a standalone or distributed application, the latter of which may have one or more resources housed, stored in memory, executed from, or reside on disparate physical resources (e.g., servers, computers, or the like) in different geographic locations. However, when a query or request to query (the terms “query,” “request,” or “request to query” may be used interchangeably herein) is received by platform 102 for one or more of databases 104-106, 114-118, 122 and datastore 123 including databases 124-128, platform 102 may be configured to receive, parse, interpret, convert, rewrite, optimize, and execute the query in order to retrieve a dataset from one of the aforementioned data sources (i.e., databases 104-106, 114-118, 122 and datastore 123 including databases 124-128).
  • In some examples, a query (e.g., sent in SQL, SPARQL, R, Python, Java, Javascript, JSON, XML, or any other programming or formatting language that is used to generate and send queries for retrieving datasets) may be received by platform 102 and sent to access control module 120 (as with platform 102, access control module 120 may be a standalone, distributed, local, remote, or cloud-based application, process, algorithm(s), computer program, software, firmware, hardware, server, or the like (hereafter “application”)), which provides access control functionality and prevents unauthorized access to datasets stored on one or more of databases 122 and 124-128 and datastore 123. In other words, access control module 120 receives queries on behalf of, for example, a private data network (e.g., network 112), which could be a scientific, academic, research, governmental, military, financial, corporate, non-profit, or any other type of data network in which non-public access is desired or security measures including, but not limited to access control module 120, are intended to limit, deter, or prevent access. If the query received by platform 102 and sent to network 112, which is an exemplary private data network, is rejected due to a lack of authorization or permission to access the dataset and/or data network (i.e., an access control condition is not met), platform 102 can notify a user (not shown) on a display or user interface that indicates a status of the query (also not shown). For example, a query written in SQL may be received by platform 102, which may be a standalone (e.g., hosted, remote, or local) or distributed (e.g., server, network, or cloud-based) software platform composed of multiple programs or scripts (e.g., Java®, JavaScript®, and/or other programming or formatting languages, structured or unstructured, or the like) that is configured to parse and analyze the query to determine through inference (as described in greater detail below) attributes, one of which may include an access control condition that permits the query to be run (i.e., executed) against an access-controlled (e.g., password, encryption, authentication, token-based, or any other form of electronic or digital security measure intended to limit or prevent access to a given dataset) database, datastore, dataset, network, or the like. Once authenticated (i.e., an access control condition matches or is approved by access control module 120), a query (not shown) from platform 102 may be permitted access in order to retrieve a dataset from database 122 or datastore 123 (and, subsequently, databases 124-128). Due to conventional solutions being problematic in handling and executing queries in one format against databases that may be in another format, platform 102 is configured to receive, parse, and run inference operations (as described in greater detail below) in order to determine and identify any attributes that may be related to the query, the dataset(s), or the database or datastore in which the dataset(s) are stored. More specifically, platform 102 includes, among other modules and functionality, an inference engine (not shown) that is configured to infer one or more attributes of a query, the target dataset (i.e., the dataset requested once the query has been executed), and the source database or datastore on which the dataset(s) are stored. Further, platform 102 may also be configured to convert a query from one format (e.g., SQL or another structured or unstructured query language) into a different “atomic” format (e.g., RDF™ (as developed by W3C®, or another triple-oriented language (i.e., languages and protocols such as SPARQL (as also developed by W3C®) that may be used to convert data associated with queries into subject-predicate-object-oriented data structures otherwise known as “triples”) that can be used to generate, by platform 102, rewritten queries that incorporate other triple data directed to attributes such as type, format, access control conditions, or in an integrated manner against various types and formats of databases, datastores, data repositories, data warehouses, and the like.
  • As an example, platform 102 may be configured to rewrite a query (e.g., programmed or formatted in SQL, Python, R, or other statistical or data analytical software) from one format, structure, or schema to another in order to execute a query against multiple disparate types of data storage facilities (e.g., databases, datastores, data repositories, data warehouses, and the like), which may each be of a different schema, structure, and/or type, without restriction. Further, in some examples, platform 102 may be configured to rewrite a query from one format, structure, or schema into another, but also “optimize” a rewritten query (as described in further detail below), by converting data associated with one or more inferred attributes that were determined during the parsing of the query upon its receipt by platform 102. “Optimizing” a query before, during, or after it has been rewritten by platform 102, may, in some examples, refer to optimizing a copy of a query or a master of a query. Optimizing a query may occur during or after a rewriting operation has been performed by platform 102, which could include, but is not limited to, rewriting a query (i.e., master or a copy) from one query language to another format that can then be used to generate further downstream queries for different target or disparate databases that may include datasets that are either sought, in accordance with the original query, or logic incorporated into platform 102 may execute to infer there may be other datasets that are indexed or linked (i.e., as linked data) by platform 102 that, although not known or targeted by the original query, could be returned with the intended target dataset. In some examples, queries may be optimized after being written from SQL to triples using RDF™, SPARQL™, or the like because the rewritten triple data, which may be stored in a datastore accessed by platform 102, but intended to store converted triple data from incoming queries (i.e., a “triple store”) may be retrieved with other triple data that has been generated resultantly from inferred attributes. In other words, inferred attributes such as type, data types (i.e., specific types of data that are typically identified by columnar or row headings in a tabular format, but could also be found in a multi-dimensional grid storage structure such as name, date, value, postal code, country, state, or any other type that can be used to identify a logical grouping of data, without limitation or restriction), data structure, data schema, object schema, addresses (e.g., Uniform Resource Locator (URL), Uniform Resource Identifier (URI), web address, and the like), layout, design, style, format, language, structure, and others without limitation to any particular attribute or type or category thereof. The triple data rewritten from the query and the triple data associated with attributes related to the query (hereafter, “query” may refer to a copy of a query or a master (i.e., original or originally received by platform 102) query, without limitation or restriction) may be specifically rewritten for a database housing or storing the intended target dataset database. In some examples, an original query or a copy of an original query may be subject to various data operations by platform 102, without restriction or limitation. If a copy of an original query is used by platform 102, the original query may itself be identified as a “master” and saved to one or more of databases 104-106 or another database, datastore, data warehouse, data repository, or other data facility or structure used by platform 102 to store internal data. Thus, a master query or master (hereafter “master”) may be preserved in the event query data used by platform 102 becomes corrupted or unusable.
  • In some examples, other databases that are “known” through previous queries or discovery by platform 102 that may store or house datasets similar, related, or associated with the intended dataset may be identified as a linked dataset or linked data and included in part of a data model or graph that can be used to retrieve data or datasets in response to various queries. In other words, platform 102 may use a graph (i.e., data model) that, once a query is received, logic (e.g., a logic module that may employ rules, machine learning, artificial intelligence, deep learning, natural language processing, or other algorithms, software, computer programs, applications, or the like to implement decision-based processing of data) then determines other linked data may be related to the dataset sought by the query and delivered to the user in response. Further, the linked datasets may also be included in a modified or new graph that may be created to include the intended target dataset as a new node within the graph. Various types of graph generation techniques may be used, without limitation or restrictions, such as mapping different data types (e.g., using specification such as comma separated values (“csv”) to RDF, CSVW, among others) and storing these maps as graphs within a database or datastore (e.g., databases 104-106 and 114-118). Other graph generation techniques may be used and are not limited to any particular algorithm, process, or methodology.
  • In some examples, although a SQL-based query may have a SELECT statement (i.e., a programmatic query command or query statement intended to fetch an intended dataset or data stored within a given database), platform 102 may be configured to convert a statement (e.g., a query statement such as SELECT in SQL, and other comparable commands in any other type of query language, structured or unstructured) into SPARQL, for example, by parsing the query statement into a data structure such as an abstract syntax tree in an intended (i.e., target) language such as SPARQL. Once generated, an abstract syntax tree mapping a received query statement may be used to determine how to map the statement from its native language into a comparable statement in, for example, SPARQL (or another language that may be configured to perform the processes described herein). Using an abstract syntax tree (not shown) may be used to further generate a resultant SPARQL query statement, command, data structure, or object that may be configured to execute over (e.g., using) a triple store or triple data within a datastore, such as those described herein. Using attributes inferred from or stated in a originally-received (i.e., native) statement (e.g., SQL query statement, as described above as an example), triple data can be amassed in a triple store (i.e., a datastore, database, repository, or other type of data structure configured to store triple data reduced, atomically, as described herein) and used during the generation of a substantially equivalent statement (e.g., a query) into SPARQL. As an example, attributes may identify an access control condition (e.g., password, token, or other security feature that must be navigated successfully before access to a dataset or a database, data repository, datastore, or other type of data structure is permitted) that manages (e.g., controls) access to a target or intended dataset. For example, a password, token, hash value, or any other type of security-oriented attribute may be converted into one or more triples and, in some examples, an endpoint server (not shown) associated, in data communication, or configured to perform data operations with platform 102 may be used to rewrite the triple data of the query and the attribute into another form, format, language, structure, or schema for a target database that the endpoint server is configured to communicate with over one or more data networks. In some examples, platform 102 may be configured to receive a query, rewrite the data associated with the query and any attributes (e.g., attributes of the query, the target dataset(s), the target database(s), paths, linked data, or any other attribute including, but not limited to those examples provided above) into a language, structure, schema, or format associated with another database by converting query data (i.e., data associated with a query) and data associated with attributes of the queries into triples, execute the rewritten queries, and, in some examples, return not only the requested dataset(s), but also dataset(s) that may be related to the dataset(s). In other examples, platform 102 may be configured to return only the target dataset(s) requested by the query and no others. In still other examples, platform 102 may be configured to return some dataset(s) that may be associated with or related to the target dataset(s) requested by the query, which may be determined based on rules or logic of platform 102. Further, platform 102 may also be configured to create or modify a graph (e.g., data model) that is used when a query for a given dataset is received, which may be further used to return additional data that could be valuable due to an attribute-determined relationship or association between the target dataset, the query, and other dataset(s) known or graphed or identified as linked data by platform 102. The above-described topology, elements, and processes may be varied in size, shape, configuration, function, and implementation and are not limited to the examples shown and described.
  • FIG. 2 illustrates an exemplary system architecture for a platform for managing integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization. Here, system 200 is shown, including application 201 (in some examples, application 201 may be comparable in function and structure to platform 102 as described above in connection with FIG. 1), data communication bus 202, application programming interface or API (hereafter “API”) 204, proxy/endpoint server 206 (which may also be referred to interchangeably as a “proxy,” “endpoint,” “proxy server,” “endpoint server”), logic module 210, conversion module 212, inference engine 214, query engine 216, display module 218, databases 20-224, and graph database engine 228. Data elements transferred (i.e., received and sent) from application 201 may take various forms including, but not limited to query 203, dataset 242 (which may be interchangeably referred to herein as a “target dataset(s)”), and rewritten query 244. In some examples, system 102 may be an exemplary implementation of platform 102 (FIG. 1). The elements shown and the configuration, structure, relative size of the elements, and functions described are not intended to be limiting and the sizes and shapes of the elements have no limitation or meaning apart from those provided within the detailed description of this specification or as claimed.
  • As shown, application 201 may be a implemented as a process, computer program, software, firmware, hardware, circuitry, logic, or a combination thereof (hereafter “application”) and, in some examples, may be written in Java® and/or JavaScript®, among others. Each of elements 201-228 may be programmed, developed, or encoded using software programming techniques familiar to these programming and formatting languages or others, without restriction, regardless of whether object-oriented, structured, or unstructured. In some examples, application 201 is configured with elements 202-228 in order to receive query 203 that is directed to retrieve (e.g., fetch, download, access and copy, or otherwise obtain using one or more data operations) a target dataset (e.g., dataset 242) in response to rewritten query 244. As described herein, application 201 may be written in any programming or formatting language (e.g., SQL, Python, R, or others) used to query a database. Application 201 may be configured to receive query 203 using API 204 and analyzing, using logic module 210, query 203 to determine one or more attributes associated with query 203, dataset 242, or a database (e.g., databases 104-106, databases 114-118, database 122, and datastore 123 (including databases 124-128) as shown and described above in connection with FIG. 1). Query 203 may be stored in a database configured to store query data (i.e., query data 224). Once stored, query 203 may be identified, in some examples, as a “master” of query 203. A copy of query 203 may be made and also stored in one or more of databases 220-224 and used as a replica. In other words, a replica or copy (hereafter, “replica” and “copy” may be used interchangeably without restriction or limitation) may be used to perform various data operations such as those described herein rather than a master of query 203, the latter of which may be preserved (i.e., stored) for later use to restore from an event that results in partial or full loss of the data in query 203, whether due to corruption, catastrophe, or some other event that can cause a similar detrimental or destructive effect. In other examples, an original version of a query (i.e., the originally-received version of query 203) may be used by application 201.
  • Here, in some examples, a replica of query 203 (not shown) or query 203 is parsed by logic module 210, which is configured to analyze data received by application 201 (e.g., query 203) or dataset 242 and to generate instructions to other elements within application 201 to perform various data operations such as those described herein. Structurally, logic module 210 may be a set of logical rules or algorithms for machine learning, deep learning, artificial intelligence, or the like. Logic module 210 may be programmatically coded in one or more languages such as Java®, JavaScript®, R, or others, without limitation or restriction. Functionally, logic module 210 may be configured to perform various data operations such as generating data or signals to provide instructions to inference engine 214, query engine 216, or any other element of application 201. Logic module 210 may also be configured to generate and send instructions (i.e., as data or signals) to graph database engine 228 in order to generate one or more data models associated with query 203. Further, during parsing, inference engine 214 may be configured to determine attributes associated with query 203 through inference (e.g., Bayesian, statistical, probabilistic, predictive, or other techniques may be employed for inference and are not limited to any specific types of techniques for inferring attribute data associated with query 203). In some examples, attributes may include, but are not limited to, any type of information or characteristic associated with or about a query, dataset 242, which is intended to be fetched by query 203 (i.e., using, for example, a SQL SELECT command to retrieve dataset 242 for a given database (not shown)), and the destination or target database from which dataset 242 is to be retrieved. While examples are provided for the disclosed techniques to operate on a singular dataset, these may also be extended to operate on multiple datasets and databases, without limitation or restriction. Attributes may include, but are not limited to, property attributes (e.g., string literal, numerical, or the like), values, qualities, characteristics, or any other data, metadata, and information about or related to an item contained within a dataset or a database and which can be inferred by inference engine 214. Attributes, once inferred by inference engine 214 as a result of parsing being directed by logic module 210, along with query 203 can be converted into “atomic” data or triples in accordance with languages, protocols, and formats such as the Resource Description Framework (hereafter “RDF”) as promulgated by the World Wide Web Consortium (hereafter “W3C”), SPARQL, and others used for organizing, formatting, programming, converting, structuring, or otherwise manipulating data for use on “semantic web” applications and the like, including semantic uses for retrieving dataset 242 from databases or the like or from other data networks that do not employ common data languages, formats, and protocols. By converting, for example, SQL-based data (or data for query 203 formatted using a structured or unstructured language) can be converted into RDF triple data that can be used as a common base language, format, or protocol that can later be used by query engine 216 and proxy/endpoint server 206 to “rewrite” or construct rewritten query 244, which is ultimately transmitted from application 201 to a database for retrieving dataset 242. In some examples, dataset 242 may be retrieved or fetched from a database using rewritten query 244 and may include not only dataset 242, but also other datasets that might be related to or are similar to the dataset sought.
  • In some examples, the determination of whether dataset 242 may be related to other dataset(s) that were previously retrieved or otherwise indexed by application 201 and its elements (namely, graph database engine 228, which may be configured to create a graph or data model representative of dataset 242 that were previously fetched (i.e., retrieved) and/or stored in one or more of databases 220-224) may be made by logic module 210, query engine 216, and graph database engine 228. When query 203 is received, for example, logic module 210 analyzes inferred attribute data from inference engine 214 and can generate/send instructions to query engine 216 to reference graph database engine 228 in order to determine whether any of the triple data converted from query 203 and stored in one or more of databases 220-224 matches previously converted triple data stored similarly. Alternatively, a graph created of query 203 (or a copy thereof) or dataset 242 may also be stored in one or more of databases 220-224 and used as a reference for a comparison to another graph previously stored in databases 220-224 to determine if there is a match (i.e., where there are other datasets that may be related (and presumably of interest to a data scientist (i.e., user)) or similarity with dataset 242. In other examples, a rule or set of rules that establish a percentage or numerical threshold may be input using logic module 210 (e.g., display module 218 may be configured to generate, by executing one or more scripts, forms, or formats such as HTML, XML, PHP, or the like) to provide a user interface that a data scientist or researcher (i.e., a user of platform 200) may use to input a rule, criteria, or restriction for use in determining whether there are any dataset(s) that may be similar to dataset 242. In still other examples, users may enter other rules, criteria, or restrictions that permit or do not permit application 201 to return similar or matching datasets for presentation on a user interface (not shown) provided by display module 218, which, working in concert with API, may receive and send (for display or visual rendering) data in various types of formats including, but not limited to HTML, XML, XHTML, or any other type of programming or formatting language that may be used to generate the user interface.
  • Referring back to inference engine 214, any attributes inferred may be analyzed by logic module 210 and then converted into, for example, triple data (e.g., triple formats such as those described herein and in accordance with protocols such as SPARQL, RDF, among others, without limitation and/or restriction) that can be stored along with the triple data associated with query 203 itself; stored, that is, in one or more of databases 220-224. Inference engine 214 may also be configured to infer attributes about a given dataset(s) such as layout (e.g., columns, rows, axes, matrices, cells, text, among others), data type (e.g., string literals, numbers, integers, fractions, decimals, whole numbers, and the like), but also exceptions (i.e., data that is inconsistent with inferred attributes or other data within a given dataset(s)). In some examples, when exceptions are found, display module 218 may be configured to visually present, render, or otherwise display, in various types of graphical user interface layouts (not shown), without limitation or restriction. In some examples, user interfaces may be presented that provide, in addition to data from a retrieved dataset(s), but also exceptions, annotations, outlier data, inferred attributes, attribute data, or others, using techniques that data scientists and researchers would be familiar with using (e.g., Python, R, and the like) without requiring in-depth or expert knowledge of programming languages underlying platform 102 (e.g., SPARQL, RDF, Java®, JavaScript®, among others). In some examples, one or more of databases 220-224 may be configured to store only triple data, while another database may be configured to store query 203 as a master (as previously described) or copies thereof in order to restore from a catastrophic loss or data corruption event. As an example, query 203 may be rejected by a target database (e.g., databases 104-106, databases 114-118, database 122, and datastore 123 (including databases 124-128) as shown and described above in connection with FIG. 1) or access control module 120 (FIG. 1)) because of a partial or complete corruption of data. A master or copy of query 203 may be retrieved by application 201 from one or more of databases 220-224 and used to generate another rewritten query (e.g., rewritten query 244) using triple data associated with query 203 and triple data associated with any attributes inferred by inference engine 214, both of which may be stored in one or more of databases 220-224. Likewise, dataset 242 or a copy thereof may also be stored in one or more of databases 220-224. In some examples, attribute(s) determined from inference operations run against query 203 may also include an access control condition or data related thereto, such as a password, token, authentication key, private or public key, hash value, or any other type of data security mechanism.
  • In some examples, an access control condition, in some examples, as a type of attribute can also be converted by conversion module 212 into triple data that may be stored in one or more of databases 220-224, one or all of which may be either local, remote (not shown), or distributed (local or remote) data storage facilities. In some examples, databases 220-224 may be standalone, server, network, or cloud-based data storage facilities and are not limited to the examples or configurations shown and described in connection with FIG. 2.
  • Referring back to conversion module 212, data associated with query 203 (or a copy thereof) may be converted into triple data and stored in one or more of databases 220-224, which may be later used to generate rewritten query 244 by, in some examples, proxy/endpoint server 206. In some examples, proxy/endpoint server 206 may be implemented using multiple instantiations for different types, structures, formats, and data schema of databases, datastores, data warehouses, data repositories, or any other types of data storage facility(s). As shown, after query 203 has been converted into triple data that may be stored in one or more of databases 220-224 (and as further described above) and any inferred attributes determined by inference engine 214 have also been converted into triple data (which may likewise be stored in one or more of databases 220-224), proxy/endpoint server 206 and query engine 216 are configured to generate rewritten query 244 for each target database (not shown) on which dataset 242 is stored (e.g., as originally programmed using, for example, a SELECT statement in SQL) as well as any other dataset(s) that have been identified by logic module 210 as a result of analyzing graphs and/or data models generated by graph database engine 228 and/or those previously generated by graph database engine 228 and stored on one or more of databases 220-224 (i.e., identifying other datasets that may be similar to or match dataset 242, or identifying isomorphic (i.e., data that is related to other data) amongst queried, retrieved, or linked dataset(s)). Further, logic module 210 may also limit, expand, or otherwise modify the number and type of dataset(s) retrieved in response to a fetch command or statement, depending upon rules or instructions provided by a user as received by API 204 and display module 218. In still further examples, proxy/endpoint server 206 may include multiple instantiations, each of which is configured to generate multiple rewritten queries for different types, formats, structures, and/or data schemas for various databases (i.e., multiple versions of rewritten query 244, where each version may be generated for different types of databases (e.g., Relational, Document-oriented, Key-value, Graph, or others), without limitation or restriction to any particular type, format, or data schema of database. The described techniques enable data scientists (e.g., users) to generate a request using a query language that can be parsed, analyzed, converted, and rewritten in order to support different types, formats, structures, and data schemas without having to manually rewrite each query for a specific type of database. Further, rewritten query 244 may be “optimized” such that data or metadata representing attributes inferred by inference engine 214 can also be included as triple data during the rewriting process (as described in further detail below) in order to include data or information that can not only fetch or retrieve dataset 242, but also dataset(s) that may be useful, valuable, or otherwise related to the one sought by query 203. Optimization may also include rewriting query 203 from one query language into triples, as discussed herein, and from the triples data into rewritten query 244 by proxy/endpoint server 206, which may also include, during the rewriting process (as described in greater detail below) an access control condition (e.g., password, token, authentication data, encryption data, hash value, or other security data or information) from the converted triple data stored in databases 220-224 in order for rewritten query 24 to gain access to and retrieve from, for example, dataset 242 from a private (i.e., secure) network (e.g., network 112, which may include access control module 120, datastore 123, and databases 122-128). In other examples, the above-described elements may be varied in size, shape, configuration, function, and implementation and are not limited to the descriptions provided.
  • FIG. 3 illustrates an exemplary layered architecture for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization. Here, application stack 300 (hereafter “stack 300”) illustrates an exemplary layered architecture that may be used to implement application 201 (FIG. 2), including application layer 302, query layer 304, linked data layer 306, and data layer 308. Stack 300 is neither a comprehensive nor fully inclusive layered architecture for developing an application or platform for managing integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization.
  • As shown, stack 300 includes application layer 302, which may be the architectural layer at which application 201 (FIG. 2) or platform 102 (FIG. 1) is coded using, for example, Java®, JavaScript®, Ruby, C+, C++, C #, C, or any other structured or unstructured programming language. In some examples, data for coded functionality that is used to enable one or more of the elements shown and described in connection with FIG. 2 may be transferred (i.e., sent, received), modified, executed, or otherwise operated on at this layer in the architecture of stack 300. In other examples, application layer 302 may be implemented differently in the architecture of application 201.
  • Query layer 304 is an exemplary layer of the architecture of application stack 300, which may be an architectural layer at which query data is retrieved, analyzed, parsed, or otherwise used to transfer data for various computing operations associated with receiving query 203 (FIG. 2) and generating rewritten query 244 (FIG. 2) in order to retrieve dataset 242 (FIG. 2). Query layer 304 may also be the layer in stack 300 at which API 204, proxy/endpoint server 206, conversion module 212, inference engine 214, query engine 216, display module 218, databases 220-224, and graph database engine 228 receive data and signals generated from logic module 210 for performing various data operations (e.g., parsing, analyzing, converting, rewriting, and optimizing query 203 and rewritten query 244, among others) on query 203, dataset 242, or rewritten query 244 prior to converting data associated with these data elements to triples (as described herein). In other examples, query layer 304 may be designed, configured, and implemented differently and is not intended to be limited nor restricted to the examples shown and described.
  • Here, linked data layer 306 may be an architectural data layer at which query 203 (FIG. 2) can be analyzed and parsed by logic module 210 (FIG. 2), from which graphs may be generated. Once graphs are generated, in some examples, linked data layer 306 is the architectural layer at which graph data (not shown) may be transferred (i.e., sent, received) or otherwise communicated between the various elements of application 201 (FIG. 2). Further, graph data (i.e., data and metadata associated with graphs of linked data that are generated, stored, modified, or otherwise used by application 201 when rewriting and optimizing query 203 into rewritten query 244 (as described in greater detail below).
  • Here, triple data layer 308 is illustrative of an exemplary layer in the architecture of application 201 (FIG. 2) at which “atomic” triple data has been converted from the native programmatic and/or formatting language of query 203 or another query received by application 201. As discussed above, conversion module 212, in some examples, converts data associated with query 203 into RDF or other forms of “atomic” triples data, which can be stored by platform 201 (e.g., in databases 220-224). As used herein, “atomic” may refer to a common conversion data format that, once converted, can be used to create various types of queries for datasets stored on different, inconsistent, or incongruous databases. Some examples of types of triple formats and protocols that may be used to convert query 203 include, but are not limited to RDF, SPARQL, R, Spark, among others. Once converted, triple data layer 308 is the layer at which triple data can be exchanged among the various elements of application 201 (FIG. 2) from which rewritten query 244 can be created by proxy/endpoint server 206 (FIG. 2) and query engine 216 (FIG. 2) to create federated queries (i.e., rewriting query 203 for multiple inconsistent and non-congruous databases (as described herein) using disparate data communication and transfer protocols, query languages, data schema, data models, and the like. As used herein, “federated” may refer to the described techniques being used to generate, transmit, execute, and manage rewritten queries (i.e., multiple instances of rewritten query 244) for different databases in order to retrieve not only the originally-requested dataset of query 203, but other dataset(s) that may be related to, associated with, or included for retrieval, regardless of the data type, format, structure, data schema, data model, graph, or other characteristics of the database on which the datasets (e.g., dataset 242) are stored. Further, any attributes determined by inference engine 214 are also converted by conversion module 212 (FIG. 2) and stored in one or more of databases 220-224, but may also be exchanged, transferred, modified, or otherwise operated upon at triple data layer 308 of stack 300 as shown in FIG. 3. In other examples, stack 300 and the various layers shown may be varied in structure, function, format, data type, data model, or other aspects and are not limited to the examples shown and described.
  • FIG. 4 illustrates an exemplary data flow for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization. Here, data flow 400 includes query triple data 402, attribute triple data 404, query rewrite process 406, rewritten query 408, public datasets 410-412, and private datasets 414-416. In some examples, query triple data 402 and attribute triple data 404 are received as data inputs to query rewrite process 406. Using converted triples (as described above) in, for example, RDF, query rewrite process 406 then generates rewritten query 408, which is then directed by proxy/endpoint servers (e.g., proxy/endpoint server 206 (FIG. 2)) to one or more public and/or private databases that may be housed, stored, operated, distributed by, or otherwise logically accessible on one or more public and/or private data networks (not shown). In some examples, rewritten query 408 may be similar to rewritten query 244 (FIG. 2) and, is converted by conversion module 212 (FIG. 2) from triple-formatted data (e.g., query triple(s) 402 and attribute triple(s) 404) into the query language or format of a target dataset (e.g., dataset 242 (FIG. 2), public datasets 410-412, private datasets 414-416, among others). Once rewritten query 408 is generated, it may be directed, transmitted, transferred, or otherwise executed as a query against one or more databases (not shown) storing public datasets 410-412 and private datasets 414-416. The number, type, shape, and flow of data flow diagram 400 may be varied in process, steps, order, function, description, or other aspects, without limitation or restriction, and are not limited to the examples shown and described.
  • FIG. 5 illustrates an exemplary data operations model illustrating various processes for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization. Here, data operations model includes query data 502, attribute data 504, query rewrite process 506, rewritten query 508, and processes for query copy/replication 510, storage 512, triple conversion 514, endpoint query generation 516, and endpoint query execution 518. As shown, each of elements 502-518 may be a implemented as a process, computer program, software, firmware, hardware, circuitry, logic, or a combination thereof (hereafter “application”) and, in some examples, may be written in Java® and/or JavaScript®, or any other programming or formatting language, without limitation or restriction. Elements 502-518 may be programmed, developed, or encoded using software programming techniques familiar to these programming and formatting languages or others, without restriction, regardless of whether object-oriented, structured, or unstructured. In some examples, query data 502 and query attribute data 504 are input to query rewrite process 506. Although not shown, query data 502 may be data that is inferred (by inference engine 214 (FIG. 2)) and converted into triples data (e.g., RDF triples) by conversion module 212 (FIG. 2). Likewise, attribute data 504 may be triple data that is converted from inferred data generated from inference engine 214 regarding one or more characteristics associated with query 502 (e.g., query 203 (FIG. 2)). Using triple data associated with a query (e.g., query 502, query 203 (FIG. 2)) and one or more attributes inferred from the query (i.e., by inference engine 214 (FIG. 2)), query rewrite process 506 may be an application, computer program, software, firmware, script, thread, multiple threaded program or application, distributed or cloud-based application, circuitry, logic, or a combination thereof, that is configured to generate a rewritten query (e.g., rewritten query 508) that may be executed against one or more databases. As proxy/endpoint server 206 (FIG. 2) is configured to execute rewritten query 508 against a given database and other proxy/endpoint servers (not shown) can be implemented to also execute other instances or versions of rewritten query 508 for different databases, formats, protocols, languages, schema, data models, object models, or the like. In so doing, platform 102 (FIG. 1) and application 201 (FIG. 2) can generate, execute, and manage multiple queries similar to a federated system by directing each rewritten query (i.e., rewritten query 508) to a proxy/endpoint server 206 that is configured or scripted to generate and execute a query (e.g., query 508) for a given query language or protocol (e.g., SQL, SPARQL, XPath, MDX, LDAP, Datalog, CQL, and various other structured or unstructured languages or protocols, without limitation or restriction). Some of the processes and data operations that support this functionality are shown and described herein connection with FIG. 5.
  • In some examples, query copy/replication 510 may be a process that is implemented by application 201 (FIG. 2) and configured to replicate or copy (hereafter, “replicate” and “copy” may be used interchangeably to the generation of a copy or replica of a query (e.g., query 203 (FIG. 2)), dataset (e.g., dataset 242 (FIG. 2)), rewritten query (e.g., rewritten query 244 (FIG. 2)), linked data graph (i.e., “graph”), object model, data model, or any other type of data instance that may be used, manipulated, modified, deleted, generated, created, or otherwise operated upon by application 201. Further, query copy/replication 510 may be implemented as a process that occurs before, during, after, or as a part of query rewrite 506. In some examples, query copy/replication 510 may be also be performed in parallel or serial with other processes or threads (e.g., storage 512, triple conversion 514, endpoint query generation 516, endpoint query execution 518, among others). In other examples, query/copy replication 510 may be designed, implemented, configured, or otherwise executed differently and is not limited to the examples shown and described.
  • When a replica is generated by query copy/replication 510, in some examples, storage 512 may be configured to run or execute as a process to store a generated copy of a query and the original query (i.e., master) in one or more databases associated with application 201 (FIG. 2) and as described above. Other data, including inferred data such as attribute or characteristic data, graphs, linked data, graph data, and the like may also be stored and retrieved using storage 512. As described previously, databases may include any type of data storage facility that is configured to physically, virtually, logically, or otherwise work with application 201 in a standalone, hosted, distributed, or cloud-based configuration.
  • Here, triple conversion 514 may be implemented as, for example, a process configured to convert query data into triples (e.g., RDF triples, items that are subject-predicate-object oriented, or another atomic format apart from those described herein). Data associated with a query may include query data received and parsed directly from, for example, query 203 (FIG. 2) or other data associated with characteristics or attributes of a query that may be inferred by inference engine 214 (FIG. 2). Triple data, once converted from query or attribute data, in some examples, may be stored in a similar manner using a process similar to that described above in connection with copy/replica storage 512. Triple data (e.g., query 502, attribute 504) may be used by query rewrite 506 to construct and generate rewritten query 508, which can be converted back from a triples-based format (e.g., RDF, or others) into another structured or unstructured data query language (e.g., SQL, SPARQL, and others) by an endpoint server (e.g., proxy/endpoint server 206 (FIG. 2)) that is configured to communicate with a given database, datastore, data network, or the like using, for example, endpoint query generation 516 as a process for doing so. For example, endpoint query generation 516 may be a process or set of processes used by application 201 (FIG. 2) as an instance running on proxy/endpoint server 206 and which is configured to execute a query using endpoint query execution 518 as a process or set of processes to do so. Rewritten queries (e.g., rewritten query 508) may be executed using endpoint query execution 518 as a process or set of processes that are configured to execute (i.e., run) against any public or private data network or secure data network such as those provided by Data.Gov, the U.S. Department of Defense, the National Institutes of Health, or other private, corporate, academic, non-profit, or other types of organizations or entities that have datasets. In some examples, application 201 and graph database engine 228 may be configured to generate, store, and modify graphs of linked data as datasets are identified by platform 102 (FIG. 1).
  • Here, some data networks may utilize SQL as a primary data storage and query language while others may use DMX for data mining purposes, and still others may use LDAP for querying services run over Transport Control Protocol/Internet Protocol (i.e., “TCP/IP”). In still other examples, proxy/endpoint server 206 may use different query languages and the processes described herein such as triple conversion 514, endpoint query generation 516, and endpoint query execution 518 are not limited to any particular language or version thereof. In other examples, the above-described processes may be designed, implemented, configured, or otherwise executed differently and are not limited to the examples shown and described.
  • FIG. 6A illustrates an exemplary process flow for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization. Here, process 600 begins by receiving a query (602). Once received a copy (i.e., replica) is generated and a graph is created by, for example, graph database engine 228 (FIG. 2) (604). Once created, the original query (e.g., query 203 (FIG. 2)) may be stored as a master and the copy may also be stored, but in the same or a different location (i.e., in a different database). Further, any newly-generated or modified graphs and graph data may also be stored, either in the same, similar, or a different location than that of the master and the copy of query 203. Subsequent to generating the copy and the graph, process 600 may include parsing a copy of the query (606). Further, inference engine 214 (FIG. 2) may be directed by control data or signals from logic module 210 (FIG. 2) to determine and identify any attributes (i.e., characteristics) associated with a query, the queried (i.e., requested) dataset(s), any linked data that might suggest other datasets previously determined and identified to be related or similar to the data in the requested dataset (608). A determination is made as to whether any inferred attributes indicate whether there is an access control condition present, such as those described above (610). If no access control condition is found amongst the inferred attributes, then a rewritten query is generated by converting any query data and inferred attribute data into triples using a format such as RDF and then used to construct rewritten queries that can be formatted for specific types and query languages by proxy/endpoint servers (e.g., proxy/endpoint server 206 (FIG. 2) that are configured to be in data communication with various data networks (612).
  • Alternatively, in some examples, if an access control condition (e.g., such as those described above) is determined by inference engine 214 (FIG. 2), then the access control condition and the query data are converted into triples (as described herein) (614). The triple data is then used to generate a rewritten query (e.g., rewritten query 244 (FIG. 2), rewritten query 508 (FIG. 5)) that includes both the query and the access control condition (616). Once a query has been rewritten from triple data, regardless of whether an access control condition is inferred to be present among the attribute data of the original query, the rewritten query is directed to a given proxy/endpoint server (e.g., proxy/endpoint server 206 (FIG. 2) which converts the triples data into a language(s) and format(s) for the target or destination data network and database (618) after which process 600 ends. In some examples, rewritten queries having access control conditions are sent to private data networks to obtain datasets housed (i.e., stored) within (i.e., private datasets) and rewritten queries without access control conditions may be sent to public data networks to obtain datasets housed within (i.e., public datasets).
  • Alternative processes may be implemented other than the examples shown and/or described. For example, an alternative process may be included to parse a query to identify its various components and then determine what datasets are desired (i.e., targeted) for access. Once determined, the targeted dataset(s) can be evaluated further by inferring any attributes such as access control conditions. Access control conditions inferred may include, but are not limited to, checking token-based access controls for each targeted dataset and, if an access control condition or attribute indicates access is not authorized by data within the query, it is rejected and data is transmitted back to the user for display via, for example, display module 218 (FIG. 2). However, if a query does have an inferred attribute that is an access control condition that authorizes access, then a rewritten query may be generated at each proxy/endpoint server (e.g., proxy/endpoint server 206), which each represent an internal endpoint that is configured to transfer data with a given database engine (i.e., database or data network on which a target dataset is stored). Subsequently, rewritten queries or those parts of a rewritten query that differ due to the query language or format of a given destination database engine, database, datastore, or data network, may be sent to graph database engine 228 (FIG. 2) for updating one or more stored graphs associated with the original query (e.g., query 203 (FIG. 2)) or other graphs. In other words, process 600 and alternative processes such as those described above may be performed in order to enable, for example, proxy/endpoint server 206 (FIG. 2) to “issue” federated pieces of a query to internal graph database engines such as graph database engine 228 (FIG. 2). As used herein, “federation” may refer to an overall process or set of processes or techniques that are used to generate, manage, receive responses to, graph, track, and perform other processes related to executing a query against multiple incongruous and non-contiguous databases, database engines, or data, generally, of different formats, languages, structures (or lack thereof), and the like, while managing integrated and consolidated retrieval (e.g., fetch) of requested datasets in response to the query.
  • In other examples, the above-described process may be varied in function, order, procedure, and process, without limitation to any of the examples or accompanying descriptions.
  • FIG. 6B illustrates a further exemplary process flow for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization. Here, process 620 illustrates exemplary processes for managing query copies and masters and initiates by generating a copy of a query and creating a graph and graph data associated with the query and its copy (604). In some examples, process 620, for copies of queries, identifies the copy as a replica (622), identifies a database or datastore for storing the replica (624), updates the graph associated with the query to identify (i.e., through the use of metadata, tags, markers, or other elements that can be used to discretely distinguish a copy from a master) the copy or replica to be used for further data operations to be performed, for example, by platform 102 (FIG. 1) and/or application 201 (FIG. 2). Further, after updating the graph and graph data, the copy is made available for parsing by, for example, logic module 210 (FIG. 2) or the other elements of application 201.
  • Running as parallel processes to those used for handling query copies as described above, in some examples, a query may be identified as a master (630). Once identified, a database or datastore in data communication with application 201 (FIG. 2) is identified to store the master (632). Examples of databases or datastores that may be used to store a master are databases 220-224 (FIG. 2) or those described above in connection with platform 102 and FIG. 1. After identifying a database or datastore in which to store the master, the graph generated for the query is updated with the stored location of the master and the stored location of the dataset(s) to be retrieved (i.e., fetched) (634). After inferring this information (e.g., by running inference engine 214 against a master), the master is stored in the previously-identified database or datastore (636). In other examples, the above-described process may be varied in function, order, procedure, and process, without limitation to any of the examples or accompanying descriptions.
  • FIG. 6C illustrates another exemplary process flow for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization. Here, process 640 initiates (i.e., starts) by receiving a copy of a query from process 628 (FIG. 6B) (642). Once received, the copy is parsed by, for example, logic module 210 and one or more of elements 204-228 (FIG. 2) (644). Before, during, or after parsing (despite the exemplary process 640 illustrating parsing occurring beforehand), inference engine 214 (FIG. 2), for example, is invoked in order to determine whether any attributes and/or attribute data associated with the query can be determined from the copy of the query (646). A determination is then made to determine whether an access control condition may be present amongst the inferred attribute(s) and/or attribute data (i.e., as inferred by, for example, inference engine 214 (FIG. 2)) (648). If an access control condition is determined to be amongst the inferred attributes and/or attribute data, then the access control condition is identified for conversion to a triple data format (such as those described herein (e.g., RDF, SPARQL, subject-predicate-object)) (650). Once identified, the attributes and/or attribute data are stored in, for example, a database or datastore used by application 201 (FIG. 2), along with links in an updated graph (i.e., a data model of the query), which link the copy of the query and the master to the attribute(s) and/or attribute data (652). Alternatively, if no access control condition (as described in detail above) is found, then any attribute(s) and/or attribute data is stored with links in an updated graph, which link the copy of the query and the master to the attribute(s) and/or attribute data (652). In other examples, the above-described process may be varied in function, order, procedure, and process, without limitation to any of the examples or accompanying descriptions.
  • FIG. 6D illustrates an additional exemplary process flow for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization. Here, process 660 starts by initiating a rewriting process, script, thread, application, software, firmware, or the like, which has been configured to generate rewritten queries (e.g., rewritten query 244 (FIG. 2), rewritten query 508 (FIG. 5)) using a proxy/endpoint server (e.g., proxy/endpoint server 206 (FIG. 2)) (662). In some examples, application 201 (FIG. 2) may have one or more proxy/endpoint servers, each of which has been configured to rewrite a query by converting triple data into another data format for a query language used by a given data network and dataset. In some examples, the given data network and dataset may be those originally targeted by a query (e.g., query 203 (FIG. 2)). In other examples, a given data network and dataset may be different than those originally targeted by a query, but which may be determined to be related or similar to, associated with, or linked through analysis of a graph or graph data; the analysis being performed by, for example, graph database engine 228 (FIG. 2).
  • Referring back to FIG. 6D, a copy of a query and any inferred attributes or attribute data are identified for rewriting (664). More specifically, a copy of a query and inferred attributes and/or attribute data has been converted into triple data, as described above. Once identified, triple data and query data can be evaluated by logic module 210 (FIG. 2) to identify or determine whether an access control condition is an attribute of the query, the dataset, or the data network on which the dataset is stored and, if so, identifying the access control condition for inclusion in a rewritten query (e.g., rewritten query 244 (FIG. 2), rewritten query 508 (FIG. 5)) (666). Next, the copy of the query is converted (as part of the rewriting process) with any attributes or attribute data or access control conditions into triple data in accordance with a second data format (e.g., RDF, SPARQL, or the like) apart from that of the first data format of the original query (e.g., query 203). Once converted, the triple data is stored in a triple store (e.g. a datastore configured to store triple-formatted data (e.g., RDF), one or more of databases 220-224 (FIG. 2), or the like)) and control data and/or signals may be sent from conversion module 212, query engine 216, or logic module 210 to one or more proxy/endpoint servers (e.g., proxy/endpoint server 206 (FIG. 2)) to indicate that query 203 has been rewritten and is available for further query rewriting by an endpoint server for a given data network and/or database on which the requested dataset is stored (or on which linked datasets are stored, which may be retrieved and presented for display to a user (e.g., data scientist, researcher, scientist, academic researcher, or any other user or consumer of data using platform 102 (FIG. 1)) (670). In other examples, the above-described process may be varied in function, order, procedure, and process, without limitation to any of the examples or accompanying descriptions.
  • FIG. 6E illustrates yet a further exemplary process flow for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization. Here, process 680 starts by initiating execution of a rewritten query (e.g., rewritten query 244 (FIG. 2), rewritten query 508 (FIG. 5)) (682). Next, a target dataset (e.g., dataset 242 (FIG. 2)) is identified for retrieval (i.e., fetch) (684). In some examples, a first determination is made as to whether a target dataset is being stored on a public (i.e., publicly-accessible, open, or access is not subject or dependent upon an access control condition such as those described above) or private (secure or subject to authorization or authentication, as described herein) data network (686). If the target dataset is stored on a private data network, then another determination is made as to whether an access control condition is required to access the target dataset (688). For example, although a given dataset may be hosted (i.e., stored, reposited, or otherwise housed) on a private data network, there may be an access control condition required to access both a private data network and a private dataset. In other examples, a private dataset may be hosted on a public network and, although an access control condition is not required to access the public data network, an access control condition may be required to access a private dataset stored thereon. While this example is not illustrated, it is neither limited nor restricted from the scope of the techniques discussed herein.
  • Referring back to FIG. 6E, if an access control condition has been detected or otherwise determined to be required for a private data network by, for example, inference engine 214 (FIG. 2) (i.e., based on inferring attributes or attribute data associated with a query (e.g., query 203)), then access to a private data network and a dataset may each require an access control condition, as described above. An access control condition (i.e., authenticating access to a private dataset) may be performed by including triple data associated with an access control condition to be converted and also included in a rewritten query (e.g., rewritten query 244 (FIG. 2), rewritten query 508 (FIG. 5)). Finally, upon completion of rewriting a query, as described above, a rewritten query may be executed by transmission from a proxy/endpoint server (e.g., proxy/endpoint server 206) to either a destination data network on which a target dataset is stored or to another data network(s) on which dataset(s) that may be linked to the requested dataset may also be stored, and retrieving the requested and/or linked dataset(s) (i.e., linked datasets may be those that are identified as being linked to a requested dataset due to linkages that are identifying in a linked data model such as a graph or graph data, which are generated, stored, indexed, and otherwise managed by graph database engine 228 (FIG. 2) (692).
  • In other examples, a public dataset may be stored on a public network and, if no access control condition is required, then platform 102 (FIG. 1) and/or application 201 (FIG. 2) and the elements described therewith may be configured to retrieve a requested and/or linked dataset(s) or a copy thereof. In other examples, the above-described process may be varied in function, order, procedure, and process, without limitation to any of the examples or accompanying descriptions.
  • FIG. 7A illustrates an alternative exemplary process flow for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization. Here, process 700 is initiated (i.e., starts) by receiving a query formatted or programmed in a first data schema (e.g., SQL) (702). A copy of the received query is generated (704) and then parsed (706). Resultant from the parsing, attributes are inferred (i.e., identified) by using various types of inference methods, techniques, and algorithms, some of which have been described herein (708). After identifying attributes associated with the query, a copy of the query data is rewritten into a second data format (e.g., RDF). Once converted into the second data format, the converted data (e.g., triple data) may be stored in a triple store for further rewriting and optimization (712). As used herein, “optimization” may refer to one or more actions that are taken during the generation of a rewritten query when, in addition to triple data associated with the original query, other data associated with inferred attributes such as access control conditions are also included (or the converted triple data associated with the inferred attributes and access control condition(s)) in a rewritten query, which may be generated by converting the triple data into a third data format, which may be the same, a similar, or a different data format than that of the original query (712). In other examples, the above-described process may be varied in function, order, procedure, and process, without limitation to any of the examples or accompanying descriptions.
  • FIG. 7B illustrates a further alternative exemplary process flow for optimizing rewritten queries using platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization. Here, process 720 is a further detailed process or sub-process for optimizing a rewritten query as described above in connection with process step 712 (FIG. 7A). In some examples, triple data configured (e.g., tagged, marked, encoded, or otherwise identified) for a given rewritten query (e.g., rewritten query 244 (FIG. 2), rewritten query 508 (FIG. 5)) is received from step 710 (FIG. 7A) (722) and an optimization process is initiated when data or signals are sent from query engine 216 or conversion module 212 to logic module 210 (FIG. 2) to indicate that triple data has been received (724). As used herein, triple data received in step 722 may be associated with a query (e.g., query 203 (FIG. 2) or a copy of a query (not shown)) and/or any inferred attributes or attribute data determined by inference engine 214 (FIG. 2)).
  • Referring back to FIG. 7B, in some examples, a database engine intended to execute a rewritten query (i.e., the target of an originally-received query (e.g., query 203 (FIG. 2)) from platform 102 (FIG. 1) or application 201 (FIG. 2) may be identified (726). A database engine, in some examples, is identified as being assigned to execute queries for the target dataset(s) and to execute any access control conditions or mechanisms, if any. As used herein, a database engine may also refer to a data server or group of data servers, a data network, a datastore, or any type of database management system that is configured to manage the storage resource facility on which the queried or requested dataset is stored. Here, data or metadata is used to identify an “optimal” path from a proxy/endpoint server (e.g., proxy/endpoint server 206 (FIG. 2) to a target dataset(s) (728). As used herein, “optimal” may be used interchangeably with “best” or “least worst” to identify a path between platform 102 (FIG. 1) and a database engine configured to execute a query requesting data (e.g., executing a FETCH statement) to retrieve a given (i.e., target, targeted, requested, or queried) dataset. More specifically, an optimal path between platform 102 and a target dataset(s) may be a path graphed as a series of nodes from proxy/endpoint server 206 (FIG. 2) to a database engine configured to execute a query request to retrieve (e.g., FETCH in SQL, or the like) a target dataset(s). In some examples, an optimal path may be one that includes the least number of network nodes (e.g., servers, central offices, logical modules or nodes, endpoints, or the like) between proxy/endpoint server 206 and the target dataset. In other examples, an optimal path may be one that is defined by the least number of “hops” between nodes, topologically. In still other examples, an optimal path may be one that is determined based on the lowest level of latency in terms of data transmission to and from platform 102. In yet other examples, an optimal path may be determined based on real-time assessments of network and network equipment outages. In still further examples, an optimal path may also include nodes or network endpoints that are within the data network served by the database engine identified as being configured to execute a query to retrieve a target dataset(s). In yet other examples, an optimal path may be determined differently and is not limited to the examples provided herein. Data describing, defining, determining, or otherwise identifying an optimal path (i.e., path) may include data and/or metadata in any form or format, including, but not limited to XML, R, RDF, text, HTML, or any other type of programming or formatting language that may be used to generate data and metadata (i.e., information that is used to describe, characterize, attribute, or otherwise annotate data), without limitation or restriction.
  • Referring back to FIG. 7B, data and/or metadata that identifies a path between, for example, proxy/endpoint server 206 (FIG. 2) and a target dataset(s), may be converted into triple data in accordance with a second data schema (730). The converted triple data for the path, along with converted triple data for the query and any attributes or attribute data, may be retrieved by application 201 and used, by one or more elements (e.g., proxy/endpoint server 206, logic module 210, conversion module 212, query engine 216, among others) to generate a rewritten query by converting the triple data into another data schema that is used by a database engine in a destination data network on which a target dataset(s) or a linked dataset(s) is stored (734). Once generated, a rewritten query (e.g., rewritten query 244 (FIG. 2), rewritten query 508 (FIG. 5)) may be executed by proxy/endpoint server 206 and application 201 (FIG. 2). In other examples, the above-described process may be varied in function, order, procedure, and process, without limitation to any of the examples or accompanying descriptions.
  • FIG. 8 illustrates an exemplary computer system suitable for platform management of integrated access to public and privately-accessible datasets utilizing federated query generation and schema rewriting optimization. In some examples, computer system 800 may be used to implement computer programs, applications, methods, processes, or other software to perform the above-described techniques. Computer system 800 includes a bus 802 or other communication mechanism for communicating information, which interconnects subsystems and devices, such as processor 804, system memory 806 (e.g., RAM), storage device 808 (e.g., ROM), disk drive 810 (e.g., magnetic or optical), communication interface 812 (e.g., modem or Ethernet card), display 814 (e.g., CRT or LCD), input device 816 (e.g., keyboard), and cursor control 818 (e.g., mouse or trackball).
  • According to some examples, computer system 800 performs specific operations by processor 804 executing one or more sequences of one or more instructions stored in system memory 806. Such instructions may be read into system memory 806 from another computer readable medium, such as static storage device 808 or disk drive 810. In some examples, hard-wired circuitry may be used in place of or in combination with software instructions for implementation.
  • The term “computer readable medium” refers to any tangible medium that participates in providing instructions to processor 804 for execution. Such a medium may take many forms, including but not limited to, non-volatile media and volatile media. Non-volatile media includes, for example, optical or magnetic disks, such as disk drive 810. Volatile media includes dynamic memory, such as system memory 806.
  • Common forms of computer readable media includes, for example, floppy disk, flexible disk, hard disk, magnetic tape, any other magnetic medium, CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge, or any other medium from which a computer can read.
  • Instructions may further be transmitted or received using a transmission medium. The term “transmission medium” may include any tangible or intangible medium that is capable of storing, encoding or carrying instructions for execution by the machine, and includes digital or analog communications signals or other intangible medium to facilitate communication of such instructions. Transmission media includes coaxial cables, copper wire, and fiber optics, including wires that comprise bus 802 for transmitting a computer data signal.
  • In some examples, execution of the sequences of instructions may be performed by a single computer system 800. According to some examples, two or more computer systems 800 coupled by communication link 820 (e.g., LAN, PSTN, or wireless network) may perform the sequence of instructions in coordination with one another. Computer system 800 may transmit and receive messages, data, and instructions, including program, i.e., application code, through communication link 820 and communication interface 812. Received program code may be executed by processor 804 as it is received, and/or stored in disk drive 810, or other non-volatile storage for later execution. In other examples, the above-described techniques may be implemented differently in design, function, and/or structure and are not intended to be limited to the examples described and/or shown in the drawings.
  • Although the foregoing examples have been described in some detail for purposes of clarity of understanding, the above-described inventive techniques are not limited to the details provided. There are many alternative ways of implementing the above-described invention techniques. The disclosed examples are illustrative and not restrictive.

Claims (20)

What is claimed:
1. A method, comprising:
receiving a query at a dataset access platform, the query being formatted according to a first data schema including a structured relational-based format, the query comprising data associated with a request to access a dataset;
generating a copy of the query, the copy being identified as a master and configured to be stored in a datastore;
updating a graph as a data model of the query to identify elements to distinguish the copy from the master;
parsing the copy of the query in the first schema, the parsing being performed by an inference engine configured to identify the dataset, to infer an attribute associated with the query, and to generate one or more data links between the dataset and another dataset accessible by the dataset access platform;
rewriting, using a proxy server, the copy of the query in a second schema including a triples-based format and, if the attribute indicates the query is configured to provide authentication data to access the dataset, the rewriting comprising converting the copy of the query into a triple and converting the attribute into another triple; and
optimizing the rewriting, the optimizing comprising identifying a database engine to execute the query and converting other data to a further triple, the other data and the further triple being associated with a path configured to route the query or the copy of the query in the second schema including the triples-based format from the dataset access platform to retrieve query results from a target database configured to store the dataset as graph-based data.
2. The method of claim 1, wherein the converting the copy and the converting the attribute are performed using a framework.
3. The method of claim 1, further comprising determining whether the attribute comprises an access control condition associated with accessing the dataset.
4. The method of claim 1, wherein the inference engine is configured to generate the graph associated with the dataset, the another dataset, the data links, and the one or more property paths, the graph being stored in the datastore or another datastore.
5. The method of claim 1, wherein the database engine is configured to be topologically internal to a data network associated with the dataset access platform.
6. The method of claim 1, wherein the optimizing also comprises determining one or more property paths to the another dataset.
7. The method of claim 6, wherein the one or more property paths are determined by performing a comparison of another attribute associated with each of the one or more property paths to a threshold to identify an optimal path to run the query or the copy of the query.
8. The method of claim 1, wherein the access control condition is configured to authenticate the query to permit access to the dataset.
9. The method of claim 1, wherein the triple and the another triple are configured to be included in a rewritten query generated from the rewriting, the rewritten query being configured to be processed by one or more endpoints associated with the dataset access platform.
10. The method of claim 9, wherein at least one of the one or more endpoints comprise the database engine, the database engine being configured to execute the query, the copy of the query, or the rewritten query using the framework to perform data communication with the dataset or another data network topologically associated with the dataset.
11. The method of claim 1, wherein the database engine is configured to communicate data between the dataset access platform and another data network associated with the dataset.
12. The method of claim 1, wherein the database engine is configured to use the triple, the another triple, and the further triple to execute the copy to access the dataset and, after accessing the dataset, returning responsive data to the dataset access platform.
13. The method of claim 1, wherein the first schema including the structured relational-based format includes SQL query data.
14. The method of claim 1, wherein parsing the copy of the query comprises:
parsing the query into a data structure including an abstract syntax tree associated with a target query language.
15. A system comprising:
a memory including executable instructions; and
a processor configured to execute the instructions to:
receive a query at a dataset access platform, the query being formatted according to a first data schema including a structured relational-based format, the query comprising data associated with a request to access a dataset;
generate a copy of the query, the copy being identified as a master and configured to be stored in a datastore;
update a graph as a data model of the query to identify elements to distinguish the copy from the master;
parse the copy of the query in the first schema, the parsing being performed by an inference engine configured to identify the dataset, to infer an attribute associated with the query, and to generate one or more data links between the dataset and another dataset accessible by the dataset access platform;
rewrite, using a proxy server, the copy of the query in a second schema including a triples-based format and, if the attribute indicates the query is configured to provide authentication data to access the dataset, the rewriting comprising converting the copy of the query into a triple and converting the attribute into another triple; and
optimize the rewriting, the optimizing comprising identifying a database engine to execute the query and converting other data to a further triple, the other data and the further triple being associated with a path configured to route the query or the copy of the query in the second schema including the triples-based format from the dataset access platform to retrieve query results from a target database configured to store the dataset as graph-based data.
16. The system of claim 15, wherein the converting the copy and the converting the attribute are performed using a framework.
17. The system of claim 15, wherein the processor is further configured to:
determine whether the attribute comprises an access control condition associated with accessing the dataset.
18. The system of claim 15, wherein the inference engine is configured to generate the graph associated with the dataset, the another dataset, the data links, and the one or more property paths, the graph being stored in the datastore or another datastore.
19. The system of claim 15, wherein the database engine is configured to be topologically internal to a data network associated with the dataset access platform.
20. A non-transitory computer readable medium having one or more computer program instructions configured to perform a method, the method comprising:
receiving a query at a dataset access platform, the query being formatted according to a first data schema including a structured relational-based format, the query comprising data associated with a request to access a dataset;
generating a copy of the query, the copy being identified as a master and configured to be stored in a datastore;
updating a graph as a data model of the query to identify elements to distinguish the copy from the master;
parsing the copy of the query in the first schema, the parsing being performed by an inference engine configured to identify the dataset, to infer an attribute associated with the query, and to generate one or more data links between the dataset and another dataset accessible by the dataset access platform;
rewriting, using a proxy server, the copy of the query in a second schema including a triples-based format and, if the attribute indicates the query is configured to provide authentication data to access the dataset, the rewriting comprising converting the copy of the query into a triple and converting the attribute into another triple; and
optimizing the rewriting, the optimizing comprising identifying a database engine to execute the query and converting other data to a further triple, the other data and the further triple being associated with a path configured to route the query or the copy of the query in the second schema including the triples-based format from the dataset access platform to retrieve query results from a target database configured to store the dataset as graph-based data.
US16/457,759 2016-06-19 2019-06-28 Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization Active 2037-07-25 US11386218B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US16/457,759 US11386218B2 (en) 2016-06-19 2019-06-28 Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US17/854,686 US11941140B2 (en) 2016-06-19 2022-06-30 Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US15/186,520 US10346429B2 (en) 2016-06-19 2016-06-19 Management of collaborative datasets via distributed computer networks
US15/186,515 US10515085B2 (en) 2016-06-19 2016-06-19 Consolidator platform to implement collaborative datasets via distributed computer networks
US15/186,519 US10699027B2 (en) 2016-06-19 2016-06-19 Loading collaborative datasets into data stores for queries via distributed computer networks
US15/186,517 US10324925B2 (en) 2016-06-19 2016-06-19 Query generation for collaborative datasets
US15/186,514 US10102258B2 (en) 2016-06-19 2016-06-19 Collaborative dataset consolidation via distributed computer networks
US15/186,516 US10452677B2 (en) 2016-06-19 2016-06-19 Dataset analysis and dataset attribute inferencing to form collaborative datasets
US15/439,911 US10438013B2 (en) 2016-06-19 2017-02-22 Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US16/428,456 US11093633B2 (en) 2016-06-19 2019-05-31 Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US16/457,759 US11386218B2 (en) 2016-06-19 2019-06-28 Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization

Related Parent Applications (7)

Application Number Title Priority Date Filing Date
US15/186,520 Continuation-In-Part US10346429B2 (en) 2016-06-19 2016-06-19 Management of collaborative datasets via distributed computer networks
US15/186,519 Continuation-In-Part US10699027B2 (en) 2016-06-19 2016-06-19 Loading collaborative datasets into data stores for queries via distributed computer networks
US15/186,517 Continuation-In-Part US10324925B2 (en) 2016-06-19 2016-06-19 Query generation for collaborative datasets
US15/186,514 Continuation-In-Part US10102258B2 (en) 2016-06-19 2016-06-19 Collaborative dataset consolidation via distributed computer networks
US15/186,515 Continuation-In-Part US10515085B2 (en) 2016-06-19 2016-06-19 Consolidator platform to implement collaborative datasets via distributed computer networks
US15/439,911 Continuation US10438013B2 (en) 2016-06-19 2017-02-22 Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US16/428,456 Continuation US11093633B2 (en) 2016-06-19 2019-05-31 Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/854,686 Continuation US11941140B2 (en) 2016-06-19 2022-06-30 Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization

Publications (2)

Publication Number Publication Date
US20200218723A1 true US20200218723A1 (en) 2020-07-09
US11386218B2 US11386218B2 (en) 2022-07-12

Family

ID=60660303

Family Applications (3)

Application Number Title Priority Date Filing Date
US15/439,911 Active 2036-08-06 US10438013B2 (en) 2016-06-19 2017-02-22 Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US16/428,456 Active 2036-11-11 US11093633B2 (en) 2016-06-19 2019-05-31 Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US16/457,759 Active 2037-07-25 US11386218B2 (en) 2016-06-19 2019-06-28 Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US15/439,911 Active 2036-08-06 US10438013B2 (en) 2016-06-19 2017-02-22 Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US16/428,456 Active 2036-11-11 US11093633B2 (en) 2016-06-19 2019-05-31 Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization

Country Status (1)

Country Link
US (3) US10438013B2 (en)

Cited By (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10860601B2 (en) 2016-06-19 2020-12-08 Data.World, Inc. Dataset analysis and dataset attribute inferencing to form collaborative datasets
US10963486B2 (en) 2016-06-19 2021-03-30 Data.World, Inc. Management of collaborative datasets via distributed computer networks
US11023104B2 (en) 2016-06-19 2021-06-01 data.world,Inc. Interactive interfaces as computerized tools to present summarization data of dataset attributes for collaborative datasets
US11036697B2 (en) 2016-06-19 2021-06-15 Data.World, Inc. Transmuting data associations among data arrangements to facilitate data operations in a system of networked collaborative datasets
US11036716B2 (en) 2016-06-19 2021-06-15 Data World, Inc. Layered data generation and data remediation to facilitate formation of interrelated data in a system of networked collaborative datasets
US11042537B2 (en) 2016-06-19 2021-06-22 Data.World, Inc. Link-formative auxiliary queries applied at data ingestion to facilitate data operations in a system of networked collaborative datasets
US11042556B2 (en) 2016-06-19 2021-06-22 Data.World, Inc. Localized link formation to perform implicitly federated queries using extended computerized query language syntax
US11042560B2 (en) 2016-06-19 2021-06-22 data. world, Inc. Extended computerized query language syntax for analyzing multiple tabular data arrangements in data-driven collaborative projects
US11042548B2 (en) 2016-06-19 2021-06-22 Data World, Inc. Aggregation of ancillary data associated with source data in a system of networked collaborative datasets
US11068847B2 (en) 2016-06-19 2021-07-20 Data.World, Inc. Computerized tools to facilitate data project development via data access layering logic in a networked computing platform including collaborative datasets
US11068453B2 (en) 2017-03-09 2021-07-20 data.world, Inc Determining a degree of similarity of a subset of tabular data arrangements to subsets of graph data arrangements at ingestion into a data-driven collaborative dataset platform
US11086896B2 (en) 2016-06-19 2021-08-10 Data.World, Inc. Dynamic composite data dictionary to facilitate data operations via computerized tools configured to access collaborative datasets in a networked computing platform
US11093633B2 (en) 2016-06-19 2021-08-17 Data.World, Inc. Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US11163755B2 (en) 2016-06-19 2021-11-02 Data.World, Inc. Query generation for collaborative datasets
US11210313B2 (en) 2016-06-19 2021-12-28 Data.World, Inc. Computerized tools to discover, form, and analyze dataset interrelations among a system of networked collaborative datasets
USD940169S1 (en) 2018-05-22 2022-01-04 Data.World, Inc. Display screen or portion thereof with a graphical user interface
USD940732S1 (en) 2018-05-22 2022-01-11 Data.World, Inc. Display screen or portion thereof with a graphical user interface
US11238109B2 (en) 2017-03-09 2022-02-01 Data.World, Inc. Computerized tools configured to determine subsets of graph data arrangements for linking relevant data to enrich datasets associated with a data-driven collaborative dataset platform
US11246018B2 (en) 2016-06-19 2022-02-08 Data.World, Inc. Computerized tool implementation of layered data files to discover, form, or analyze dataset interrelations of networked collaborative datasets
US11243960B2 (en) 2018-03-20 2022-02-08 Data.World, Inc. Content addressable caching and federation in linked data projects in a data-driven collaborative dataset platform using disparate database architectures
US11327991B2 (en) 2018-05-22 2022-05-10 Data.World, Inc. Auxiliary query commands to deploy predictive data models for queries in a networked computing platform
US11327996B2 (en) 2016-06-19 2022-05-10 Data.World, Inc. Interactive interfaces to present data arrangement overviews and summarized dataset attributes for collaborative datasets
US11334625B2 (en) 2016-06-19 2022-05-17 Data.World, Inc. Loading collaborative datasets into data stores for queries via distributed computer networks
US11373094B2 (en) 2016-06-19 2022-06-28 Data.World, Inc. Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US11409802B2 (en) 2010-10-22 2022-08-09 Data.World, Inc. System for accessing a relational database using semantic queries
US11423039B2 (en) 2016-06-19 2022-08-23 data. world, Inc. Collaborative dataset consolidation via distributed computer networks
US11442988B2 (en) 2018-06-07 2022-09-13 Data.World, Inc. Method and system for editing and maintaining a graph schema
US11468049B2 (en) 2016-06-19 2022-10-11 Data.World, Inc. Data ingestion to generate layered dataset interrelations to form a system of networked collaborative datasets
US11520784B2 (en) * 2019-10-25 2022-12-06 Accenture Global Solutions Limited Utilizing neural network and machine learning models to generate a query after migrating data from a source data structure to a target data structure
US11537990B2 (en) 2018-05-22 2022-12-27 Data.World, Inc. Computerized tools to collaboratively generate queries to access in-situ predictive data models in a networked computing platform
US11573948B2 (en) 2018-03-20 2023-02-07 Data.World, Inc. Predictive determination of constraint data for application with linked data in graph-based datasets associated with a data-driven collaborative dataset platform
US11669540B2 (en) 2017-03-09 2023-06-06 Data.World, Inc. Matching subsets of tabular data arrangements to subsets of graphical data arrangements at ingestion into data-driven collaborative datasets
US11675808B2 (en) 2016-06-19 2023-06-13 Data.World, Inc. Dataset analysis and dataset attribute inferencing to form collaborative datasets
US11755602B2 (en) 2016-06-19 2023-09-12 Data.World, Inc. Correlating parallelized data from disparate data sources to aggregate graph data portions to predictively identify entity data
US11941140B2 (en) 2016-06-19 2024-03-26 Data.World, Inc. Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US11947600B2 (en) 2021-11-30 2024-04-02 Data.World, Inc. Content addressable caching and federation in linked data projects in a data-driven collaborative dataset platform using disparate database architectures
US11947529B2 (en) 2018-05-22 2024-04-02 Data.World, Inc. Generating and analyzing a data model to identify relevant data catalog data derived from graph-based data arrangements to perform an action
US11947554B2 (en) 2016-06-19 2024-04-02 Data.World, Inc. Loading collaborative datasets into data stores for queries via distributed computer networks

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10255336B2 (en) 2015-05-07 2019-04-09 Datometry, Inc. Method and system for transparent interoperability between applications and data management systems
US10594779B2 (en) 2015-08-27 2020-03-17 Datometry, Inc. Method and system for workload management for data management systems
US11068475B2 (en) 2016-06-19 2021-07-20 Data.World, Inc. Computerized tools to develop and manage data-driven projects collaboratively via a networked computing platform and collaborative datasets
US11016931B2 (en) 2016-06-19 2021-05-25 Data.World, Inc. Data ingestion to generate layered dataset interrelations to form a system of networked collaborative datasets
US10515085B2 (en) 2016-06-19 2019-12-24 Data.World, Inc. Consolidator platform to implement collaborative datasets via distributed computer networks
US10102258B2 (en) 2016-06-19 2018-10-16 Data.World, Inc. Collaborative dataset consolidation via distributed computer networks
US10984008B2 (en) 2016-06-19 2021-04-20 Data.World, Inc. Collaborative dataset consolidation via distributed computer networks
US10691710B2 (en) 2016-06-19 2020-06-23 Data.World, Inc. Interactive interfaces as computerized tools to present summarization data of dataset attributes for collaborative datasets
US10699027B2 (en) 2016-06-19 2020-06-30 Data.World, Inc. Loading collaborative datasets into data stores for queries via distributed computer networks
US10277701B2 (en) * 2016-07-08 2019-04-30 Facebook, Inc. Methods and Systems for Rewriting Scripts to Direct Requests
EP3475888A1 (en) 2016-08-22 2019-05-01 Oracle International Corporation System and method for ontology induction through statistical profiling and reference schema matching
US11016974B2 (en) * 2017-12-22 2021-05-25 Microsoft Technology Licensing, Llc Program synthesis for query optimization
US11423031B2 (en) * 2018-02-22 2022-08-23 Microsoft Technology Licensing, Llc Standing query creation using store query
USD920353S1 (en) 2018-05-22 2021-05-25 Data.World, Inc. Display screen or portion thereof with graphical user interface
US10929778B1 (en) 2018-05-22 2021-02-23 Marvell Asia Pte, Ltd. Address interleaving for machine learning
US10929779B1 (en) 2018-05-22 2021-02-23 Marvell Asia Pte, Ltd. Architecture to support synchronization between core and inference engine for machine learning
US10977379B1 (en) * 2018-06-13 2021-04-13 Amazon Technologies, Inc. Utilizing canary data to identify improper data access
CN110019249B (en) * 2018-11-23 2021-07-30 创新先进技术有限公司 Data processing method and device and computer equipment
US11436213B1 (en) 2018-12-19 2022-09-06 Datometry, Inc. Analysis of database query logs
US11468043B1 (en) 2018-12-20 2022-10-11 Datometry, Inc. Batching database queries for migration to a different database
US10592544B1 (en) * 2019-02-12 2020-03-17 Live Objects, Inc. Generation of process models in domains with unstructured data
US11556525B2 (en) * 2019-09-20 2023-01-17 Business Objects Software Ltd Hybrid online analytical processing (OLAP) and relational query processing
US11368547B2 (en) * 2019-10-11 2022-06-21 Sap Se Component zones in a cloud platform
US10628244B1 (en) * 2019-10-29 2020-04-21 Snowflake Inc. Calling external functions from a data warehouse
US11483337B2 (en) * 2019-11-26 2022-10-25 Reliaquest Holdings, Llc Threat mitigation system and method
CN111680193A (en) * 2020-05-28 2020-09-18 微软技术许可有限责任公司 Query conversion for different graph query languages
CN112529186B (en) * 2021-02-18 2021-06-08 中国科学院自动化研究所 Industrial process optimization decision knowledge reasoning method embedded with domain rules
US11216580B1 (en) 2021-03-12 2022-01-04 Snowflake Inc. Secure machine learning using shared data in a distributed database
US11138192B1 (en) 2021-04-30 2021-10-05 Snowflake Inc. Invoking external table functions from a database system
US11880358B2 (en) * 2021-09-16 2024-01-23 Cisco Technology, Inc. Data leakage avoidance in a data sharing platform

Family Cites Families (269)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19627472A1 (en) 1996-07-08 1998-01-15 Ser Systeme Ag Database system
US6144962A (en) 1996-10-15 2000-11-07 Mercury Interactive Corporation Visualization of web sites and hierarchical data structures
US6317752B1 (en) 1998-12-09 2001-11-13 Unica Technologies, Inc. Version testing in database mining
US6529909B1 (en) 1999-08-31 2003-03-04 Accenture Llp Method for translating an object attribute converter in an information services patterns environment
US6598043B1 (en) 1999-10-04 2003-07-22 Jarg Corporation Classification of information sources using graph structures
US6768986B2 (en) 2000-04-03 2004-07-27 Business Objects, S.A. Mapping of an RDBMS schema onto a multidimensional data model
US7080090B2 (en) 2000-04-27 2006-07-18 Hyperion Solutions Corporation Allocation measures and metric calculations in star schema multi-dimensional data warehouse
US7130853B2 (en) 2000-06-06 2006-10-31 Fair Isaac Corporation Datamart including routines for extraction, accessing, analyzing, transformation of data into standardized format modeled on star schema
US7007083B1 (en) 2000-06-29 2006-02-28 Microsoft Corporation Real time update notification
US7191176B2 (en) 2000-07-31 2007-03-13 Mccall Danny A Reciprocal data file publishing and matching system
US6961728B2 (en) 2000-11-28 2005-11-01 Centerboard, Inc. System and methods for highly distributed wide-area data management of a network of data sources through a database interface
US20020156756A1 (en) 2000-12-06 2002-10-24 Biosentients, Inc. Intelligent molecular object data structure and method for application in heterogeneous data environments with high data density and dynamic application needs
US6901405B1 (en) 2000-12-20 2005-05-31 Microsoft Corporation Method for persisting a schedule and database schema
US6910075B2 (en) 2001-11-14 2005-06-21 Emc Corporation Dynamic RDF groups
US7146375B2 (en) 2002-01-25 2006-12-05 Decode Genetics, Ehf Inference control method in a data cube
US7366730B2 (en) 2002-04-26 2008-04-29 Oracle International Corporation Registration of solved cubes within a relational database management system
US20040064456A1 (en) 2002-09-27 2004-04-01 Fong Joseph Shi Piu Methods for data warehousing based on heterogenous databases
US8332828B2 (en) 2002-11-20 2012-12-11 Purenative Software Corporation System for translating diverse programming languages
CA2429907A1 (en) 2003-05-27 2004-11-27 Cognos Incorporated Modelling of a multi-dimensional data source in an entity-relationship model
CA2429909A1 (en) 2003-05-27 2004-11-27 Cognos Incorporated Transformation of tabular and cross-tabulated queries based upon e/r schema into multi-dimensional expression queries
US7836063B2 (en) 2003-12-15 2010-11-16 International Business Machines Corporation Customizable data translation method and system
US20090006156A1 (en) 2007-01-26 2009-01-01 Herbert Dennis Hunt Associating a granting matrix with an analytic platform
US10325272B2 (en) 2004-02-20 2019-06-18 Information Resources, Inc. Bias reduction using data fusion of household panel data and transaction data
US20070271604A1 (en) 2004-03-17 2007-11-22 Fidelitygenetic Ltd. Secure Transaction of Dna Data
US20050234957A1 (en) 2004-04-15 2005-10-20 Olson Michael C System for visualization and modification of a domain model
US9684703B2 (en) 2004-04-29 2017-06-20 Precisionpoint Software Limited Method and apparatus for automatically creating a data warehouse and OLAP cube
US20050278139A1 (en) 2004-05-28 2005-12-15 Glaenzer Helmut K Automatic match tuning
US20160170979A9 (en) 2004-06-28 2016-06-16 David Schoenbach Method and System to Generate and Deliver Auto-Assembled Presentations Based on Queries of Multimedia Collections
US20070055662A1 (en) 2004-08-01 2007-03-08 Shimon Edelman Method and apparatus for learning, recognizing and generalizing sequences
US8615731B2 (en) 2004-08-25 2013-12-24 Mohit Doshi System and method for automating the development of web services that incorporate business rules
US7478105B2 (en) 2004-10-26 2009-01-13 International Business Machines Corporation E-mail based Semantic Web collaboration and annotation
US7610300B2 (en) 2004-11-30 2009-10-27 International Business Machines Corporation Automated relational schema generation within a multidimensional enterprise software system
US20090198693A1 (en) 2005-01-18 2009-08-06 Richard Alexander Stephen Pura Method and apparatus for ordering items within datasets
US7337170B2 (en) 2005-01-18 2008-02-26 International Business Machines Corporation System and method for planning and generating queries for multi-dimensional analysis using domain models and data federation
US20060161545A1 (en) 2005-01-18 2006-07-20 Agate Lane Services Inc. Method and apparatus for ordering items within datasets
US20160004820A1 (en) 2005-02-01 2016-01-07 Newsilike Media Group, Inc. Security facility for maintaining health care data pools
US8762160B2 (en) 2005-03-23 2014-06-24 Amadeus S.A.S. Purchaser value optimization system
US7680862B2 (en) 2005-04-18 2010-03-16 Oracle International Corporation Rewriting table functions as SQL strings
CN101198953B (en) 2005-05-13 2010-07-28 Abb研究有限公司 Sole representation of generating physical assets
WO2006136025A1 (en) 2005-06-24 2006-12-28 Orbital Technologies Inc. System and method for translating between relational database queries and multidimensional database queries
US7877350B2 (en) 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
US7705753B2 (en) 2005-10-22 2010-04-27 Sytex, Inc. Methods, systems and computer-readable media for compressing data
US20070179760A1 (en) 2006-01-06 2007-08-02 Intel Corporation Method of determining graph isomorphism in polynomial-time
US20070203933A1 (en) 2006-02-24 2007-08-30 Iversen Heine K Method for generating data warehouses and OLAP cubes
US7765494B2 (en) 2006-05-24 2010-07-27 Sap Ag Harmonized theme definition language
US7761407B1 (en) 2006-10-10 2010-07-20 Medallia, Inc. Use of primary and secondary indexes to facilitate aggregation of records of an OLAP data cube
US20080091634A1 (en) 2006-10-15 2008-04-17 Lisa Seeman Content enhancement system and method and applications thereof
US20080256026A1 (en) 2006-10-17 2008-10-16 Michael Glen Hays Method For Optimizing And Executing A Query Using Ontological Metadata
US8626702B2 (en) 2006-12-27 2014-01-07 Sap Ag Method and system for validation of data extraction
US8983895B2 (en) 2006-12-29 2015-03-17 Sap Se Representation of multiplicities for Docflow reporting
US10621203B2 (en) 2007-01-26 2020-04-14 Information Resources, Inc. Cross-category view of a dataset using an analytic platform
US20080294996A1 (en) 2007-01-31 2008-11-27 Herbert Dennis Hunt Customized retailer portal within an analytic platform
US7853081B2 (en) 2007-04-02 2010-12-14 British Telecommunications Public Limited Company Identifying data patterns
CN101286151A (en) 2007-04-13 2008-10-15 国际商业机器公司 Method for establishing multidimensional model and data store mode mappings and relevant system
US20170032259A1 (en) 2007-04-17 2017-02-02 Sirius-Beta Corporation System and method for modeling complex layered systems
US8640056B2 (en) 2007-07-05 2014-01-28 Oracle International Corporation Data visualization techniques
US8312389B2 (en) 2007-08-31 2012-11-13 Fair Isaac Corporation Visualization of decision logic
US7890488B2 (en) 2007-10-05 2011-02-15 Yahoo! Inc. System and method for caching posting lists
US20090106734A1 (en) 2007-10-23 2009-04-23 Riesen Michael J Bayesian belief network query tool
US20090157630A1 (en) 2007-10-26 2009-06-18 Max Yuan Method of extracting data and recommending and generating visual displays
US7836100B2 (en) 2007-10-26 2010-11-16 Microsoft Corporation Calculating and storing data structures including using calculated columns associated with a database system
US20090119254A1 (en) 2007-11-07 2009-05-07 Cross Tiffany B Storing Accessible Histories of Search Results Reordered to Reflect User Interest in the Search Results
US8156134B2 (en) 2007-11-15 2012-04-10 International Business Machines Corporation Using different groups of query graph transform modules to generate execution plans for queries for different database types
CN101436192B (en) 2007-11-16 2011-03-16 国际商业机器公司 Method and apparatus for optimizing inquiry aiming at vertical storage type database
US7818352B2 (en) 2007-11-26 2010-10-19 Microsoft Corporation Converting SPARQL queries to SQL queries
US20090150313A1 (en) 2007-12-06 2009-06-11 Andre Heilper Vectorization of dynamic-time-warping computation using data reshaping
US11159909B2 (en) 2008-02-05 2021-10-26 Victor Thomas Anderson Wireless location establishing device
US8249895B2 (en) 2008-02-22 2012-08-21 Epic Systems Corporation Electronic health record system utilizing disparate record sources
US8856643B2 (en) 2008-02-28 2014-10-07 Red Hat, Inc. Unique URLs for browsing tagged content
US8538985B2 (en) 2008-03-11 2013-09-17 International Business Machines Corporation Efficient processing of queries in federated database systems
US7856416B2 (en) 2008-04-22 2010-12-21 International Business Machines Corporation Automated latent star schema discovery tool
US20090300054A1 (en) 2008-05-29 2009-12-03 Kathleen Fisher System for inferring data structures
US9135333B2 (en) 2008-07-04 2015-09-15 Booktrack Holdings Limited Method and system for making and playing soundtracks
US8285708B2 (en) 2008-10-21 2012-10-09 Microsoft Corporation Query submission pipeline using LINQ
JP5525541B2 (en) 2008-12-02 2014-06-18 アビニシオ テクノロジー エルエルシー Mapping instances of datasets in the data management system
US9171077B2 (en) 2009-02-27 2015-10-27 International Business Machines Corporation Scaling dynamic authority-based search using materialized subgraphs
JP5322706B2 (en) 2009-03-10 2013-10-23 キヤノン株式会社 Information processing system, information processing method, and program
US20100241644A1 (en) 2009-03-19 2010-09-23 Microsoft Corporation Graph queries of information in relational database
CN101853257B (en) 2009-03-31 2012-09-26 国际商业机器公司 System and method for transformation of SPARQL query
US8032525B2 (en) 2009-03-31 2011-10-04 Microsoft Corporation Execution of semantic queries using rule expansion
US8352432B2 (en) 2009-03-31 2013-01-08 Commvault Systems, Inc. Systems and methods for normalizing data of heterogeneous data sources
US8250048B2 (en) 2009-04-20 2012-08-21 Oracle International Corporation Access control for graph data
US8296200B2 (en) 2009-05-21 2012-10-23 Oracle International Corporation Collaborative financial close portal
US8037108B1 (en) 2009-07-22 2011-10-11 Adobe Systems Incorporated Conversion of relational databases into triplestores
WO2011042889A1 (en) 2009-10-09 2011-04-14 Mizrahi, Moshe A method, computer product program and system for analysis of data
US8819172B2 (en) 2010-11-04 2014-08-26 Digimarc Corporation Smartphone-based methods and systems
US20120154633A1 (en) 2009-12-04 2012-06-21 Rodriguez Tony F Linked Data Methods and Systems
US9542647B1 (en) 2009-12-16 2017-01-10 Board Of Regents, The University Of Texas System Method and system for an ontology, including a representation of unified medical language system (UMLS) using simple knowledge organization system (SKOS)
US8204903B2 (en) 2010-02-16 2012-06-19 Microsoft Corporation Expressing and executing semantic queries within a relational database
US8996978B2 (en) 2010-05-14 2015-03-31 Sap Se Methods and systems for performing analytical procedures by interactions with visual representations of datasets
GB2494337A (en) 2010-05-28 2013-03-06 Securitymetrics Inc Systems and methods for determining whether data includes strings that correspond to sensitive information
US20110298804A1 (en) 2010-06-07 2011-12-08 Hao Ming C Visual display of data from a plurality of data sources
JP5738406B2 (en) 2010-06-24 2015-06-24 スティヒティング・イメック・ネーデルラントStichting IMEC Nederland Method and apparatus for detecting frame start delimiter
US9495429B2 (en) 2010-07-09 2016-11-15 Daniel Paul Miranker Automatic synthesis and presentation of OLAP cubes from semantically enriched data sources
US9075843B2 (en) 2010-08-05 2015-07-07 Sap Se Authorization check of database query through matching of access rule to access path in application systems
US8903770B2 (en) 2010-10-15 2014-12-02 Salesforce.Com, Inc. Methods and apparatus for discontinuing the following of records in an on-demand database service environment
US8719252B2 (en) 2010-10-22 2014-05-06 Daniel Paul Miranker Accessing relational databases as resource description framework databases
US9396283B2 (en) 2010-10-22 2016-07-19 Daniel Paul Miranker System for accessing a relational database using semantic queries
US8170981B1 (en) 2010-12-08 2012-05-01 Dassault Systemes Enovia Corporation Computer method and system for combining OLTP database and OLAP database environments
US8346779B2 (en) 2011-03-29 2013-01-01 Roy Gelbard Method and system for extended bitmap indexing
US9696981B2 (en) 2011-04-27 2017-07-04 Cambridge Semantics, Inc. Incremental deployment of computer software program logic
RU2013155186A (en) 2011-05-12 2015-06-20 Конинклейке Филипс Н.В. DYNAMIC RECOVERY OF THE IMAGES IN THE LIST MODE
US10331658B2 (en) 2011-06-03 2019-06-25 Gdial Inc. Systems and methods for atomizing and individuating data as data quanta
US8799240B2 (en) 2011-06-23 2014-08-05 Palantir Technologies, Inc. System and method for investigating large amounts of data
US8843502B2 (en) 2011-06-24 2014-09-23 Microsoft Corporation Sorting a dataset of incrementally received data
US8943313B2 (en) 2011-07-19 2015-01-27 Elwha Llc Fine-grained security in federated data sets
SG10201605543SA (en) 2011-07-21 2016-09-29 Univ Singapore A redox flow battery system
WO2013016719A1 (en) 2011-07-28 2013-01-31 School Improvement Network, Llc Management and provision of interactive content
JP5932035B2 (en) 2011-08-04 2016-06-08 グーグル インコーポレイテッド Providing a knowledge panel with search results
CN104011716B (en) 2011-08-04 2018-06-19 谷歌有限责任公司 With providing knowledge panel together with search result
US9195771B2 (en) 2011-08-09 2015-11-24 Christian George STRIKE System for creating and method for providing a news feed website and application
US8549047B2 (en) 2011-08-25 2013-10-01 Salesforce.Com, Inc. Computer implemented methods and apparatus for feed-based case management
WO2013066450A1 (en) 2011-10-31 2013-05-10 Forsythe Hamish Method, process and system to atomically structure varied data and transform into context associated data
US9460173B2 (en) 2011-11-28 2016-10-04 Ca, Inc. Method and system for metadata driven processing of federated data
US9218365B2 (en) 2011-12-15 2015-12-22 Yeda Research And Development Co. Ltd. Device, system, and method of visual inference by collaborative composition
US9002860B1 (en) 2012-02-06 2015-04-07 Google Inc. Associating summaries with pointers in persistent data structures
EP2631817A1 (en) 2012-02-23 2013-08-28 Fujitsu Limited Database, apparatus, and method for storing encoded triples
US20130263019A1 (en) 2012-03-30 2013-10-03 Maria G. Castellanos Analyzing social media
US9639575B2 (en) 2012-03-30 2017-05-02 Khalifa University Of Science, Technology And Research Method and system for processing data queries
US20130321458A1 (en) 2012-05-30 2013-12-05 Northrop Grumman Systems Corporation Contextual visualization via configurable ip-space maps
US9241017B2 (en) 2012-07-03 2016-01-19 Salesforce.Com, Inc. Systems and methods for cross domain service component interaction
CA2820994A1 (en) 2012-07-12 2014-01-12 Open Text S.A. Systems and methods for in-place records management and content lifecycle management
US9984126B2 (en) 2012-07-23 2018-05-29 Salesforce.Com, Inc. Identifying relevant feed items to display in a feed of an enterprise social networking system
US10891270B2 (en) 2015-12-04 2021-01-12 Mongodb, Inc. Systems and methods for modelling virtual schemas in non-relational databases
US9753909B2 (en) 2012-09-07 2017-09-05 Splunk, Inc. Advanced field extractor with multiple positive examples
US10530894B2 (en) 2012-09-17 2020-01-07 Exaptive, Inc. Combinatorial application framework for interoperability and repurposing of code components
JP6362602B2 (en) 2012-09-25 2018-07-25 ビズダイナミクス・プロプライエタリー・リミテッドVizdynamics Pty Ltd System and method for processing digital traffic metrics
KR102113366B1 (en) 2012-10-22 2020-05-20 아브 이니티오 테크놀로지 엘엘시 Characterizing data sources in a data storage system
US20150234884A1 (en) 2012-11-08 2015-08-20 Sparkledb As System and Method Involving Resource Description Framework Distributed Database Management System and/or Related Aspects
US9330147B2 (en) 2012-12-10 2016-05-03 Unisys Corporation Database and data bus architecture and systems for efficient data distribution
US10754877B2 (en) 2013-01-15 2020-08-25 Datorama Technologies, Ltd. System and method for providing big data analytics on dynamically-changing data models
US20140198097A1 (en) 2013-01-16 2014-07-17 Microsoft Corporation Continuous and dynamic level of detail for efficient point cloud object rendering
US9560026B1 (en) 2013-01-22 2017-01-31 Amazon Technologies, Inc. Secure computer operations
US9710568B2 (en) 2013-01-29 2017-07-18 Oracle International Corporation Publishing RDF quads as relational views
WO2014117353A1 (en) 2013-01-31 2014-08-07 Hewlett-Packard Development Company, L.P. Incremental update of a shape graph
US8583631B1 (en) 2013-01-31 2013-11-12 Splunk Inc. Metadata tracking for a pipelined search language (data modeling for fields)
US11940999B2 (en) 2013-02-08 2024-03-26 Douglas T. Migliori Metadata-driven computing system
US9207952B2 (en) 2013-02-13 2015-12-08 International Business Machines Corporation Semantic mapping of objects in a user interface automation framework
US10593003B2 (en) 2013-03-14 2020-03-17 Securiport Llc Systems, methods and apparatuses for identifying person of interest
US9823813B2 (en) 2013-03-15 2017-11-21 Salesforce.Com, Inc. Apparatus and methods for performing an action on a database record
US8965915B2 (en) 2013-03-17 2015-02-24 Alation, Inc. Assisted query formation, validation, and result previewing in a database having a complex schema
JP2016519487A (en) 2013-03-20 2016-06-30 ヴォルティング ホールディング ベー.フェー. Compilers and methods for software defined networks
US9710534B2 (en) 2013-05-07 2017-07-18 International Business Machines Corporation Methods and systems for discovery of linkage points between data sources
US9824405B2 (en) 2013-06-17 2017-11-21 Rmark Bio, Inc. System and method for determining social connections based on experimental life sciences data
US10664509B1 (en) 2013-08-05 2020-05-26 Google Llc Processing non-uniform datasets
US10313283B2 (en) 2013-08-07 2019-06-04 Microsoft Technology Licensing, Llc Optimizing E-mail for mobile devices
US9323825B2 (en) 2013-08-14 2016-04-26 International Business Machines Corporation Method and apparatus for storing sparse graph data as multi-dimensional cluster
CA2921231C (en) 2013-08-15 2022-02-01 Zymeworks Inc. Systems and methods for in silico evaluation of polymers
US9244991B2 (en) 2013-08-16 2016-01-26 International Business Machines Corporation Uniform search, navigation and combination of heterogeneous data
US9922124B2 (en) 2016-01-29 2018-03-20 Yogesh Rathod Enable user to establish request data specific connections with other users of network(s) for communication, participation and collaboration
US9607042B2 (en) * 2013-09-16 2017-03-28 Mastercard International Incorporated Systems and methods for optimizing database queries
IN2013KO01129A (en) 2013-09-30 2015-04-03 Siemens Ag
WO2015060893A1 (en) 2013-10-22 2015-04-30 Platfora, Inc. Systems and methods for interest-driven data visualization systems utilizing visualization image data and trellised visualizations
GB2519779A (en) 2013-10-30 2015-05-06 Ibm Triplestore replicator
EP2874073A1 (en) 2013-11-18 2015-05-20 Fujitsu Limited System, apparatus, program and method for data aggregation
US10545986B2 (en) 2013-12-27 2020-01-28 General Electric Company Systems and methods for dynamically grouping data analysis content
US9268950B2 (en) 2013-12-30 2016-02-23 International Business Machines Corporation Concealing sensitive patterns from linked data graphs
US10176605B2 (en) 2014-03-26 2019-01-08 Brigham Young University Dynamic display of heirarchal data
EP3123357A1 (en) 2014-03-28 2017-02-01 British Telecommunications Public Limited Company Search engine and link-based ranking algorithm for the semantic web
US10466882B2 (en) 2014-03-31 2019-11-05 Microsoft Technology Licensing, Llc Collaborative co-authoring via an electronic user interface
EP3126957A4 (en) 2014-03-31 2017-09-13 Kofax, Inc. Scalable business process intelligence and predictive analytics for distributed architectures
JP6444494B2 (en) 2014-05-23 2018-12-26 データロボット, インコーポレイテッド Systems and techniques for predictive data analysis
US10325205B2 (en) 2014-06-09 2019-06-18 Cognitive Scale, Inc. Cognitive information processing system environment
US9710526B2 (en) 2014-06-25 2017-07-18 Microsoft Technology Licensing, Llc Data set preview technology
US10049132B2 (en) 2014-06-26 2018-08-14 Excalibur Ip, Llc Personalizing query rewrites for ad matching
US10747762B2 (en) * 2014-06-30 2020-08-18 Micro Focus Llc Automatic generation of sub-queries
US9870295B2 (en) 2014-07-18 2018-01-16 General Electric Company Automation of workflow creation and failure recovery
US10657178B2 (en) 2014-08-22 2020-05-19 Hewlett Packard Enterprise Development Lp Processing of a generate entity type graph component of a graph analysis system
US10740304B2 (en) 2014-08-25 2020-08-11 International Business Machines Corporation Data virtualization across heterogeneous formats
US9690792B2 (en) 2014-08-26 2017-06-27 International Business Machines Corporation Access control for unprotected data storage system endpoints
DE102014219090A1 (en) 2014-09-22 2016-03-24 Siemens Aktiengesellschaft Device with communication interface and method for controlling a database access
US10691299B2 (en) 2014-09-25 2020-06-23 Oracle International Corporation Display of hierarchical datasets using high-water mark scrolling
US10915233B2 (en) 2014-09-26 2021-02-09 Oracle International Corporation Automated entity correlation and classification across heterogeneous datasets
US10891272B2 (en) 2014-09-26 2021-01-12 Oracle International Corporation Declarative language and visualization system for recommended data transformations and repairs
US10169368B2 (en) 2014-10-02 2019-01-01 International Business Machines Corporation Indexing of linked data
US9774681B2 (en) 2014-10-03 2017-09-26 Fair Isaac Corporation Cloud process for rapid data investigation and data integrity analysis
US9720958B2 (en) 2014-10-24 2017-08-01 International Business Machines Corporation User driven business data aggregation and cross mapping framework
US9916187B2 (en) 2014-10-27 2018-03-13 Oracle International Corporation Graph database system that dynamically compiles and executes custom graph analytic programs written in high-level, imperative programming language
US9760602B1 (en) 2014-10-29 2017-09-12 Databricks Inc. System for exploring data in a database
US10176234B2 (en) 2014-11-05 2019-01-08 Ab Initio Technology Llc Impact analysis
US20160132787A1 (en) 2014-11-11 2016-05-12 Massachusetts Institute Of Technology Distributed, multi-model, self-learning platform for machine learning
US11080295B2 (en) 2014-11-11 2021-08-03 Adobe Inc. Collecting, organizing, and searching knowledge about a dataset
US11157473B2 (en) 2014-11-21 2021-10-26 Red Hat, Inc. Multisource semantic partitioning
US20160162785A1 (en) 2014-12-09 2016-06-09 Vital Statistics Inc. Methods and systems for using a user customizable artificial intelligence engine for searching and correlating multiple databases
US10373061B2 (en) 2014-12-10 2019-08-06 Fair Isaac Corporation Collaborative profile-based detection of behavioral anomalies and change-points
SG11201705425SA (en) 2015-01-13 2017-08-30 10X Genomics Inc Systems and methods for visualizing structural variation and phasing information
EP3257272B1 (en) 2015-02-09 2019-04-03 Eurotech SPA System and method for the data management in the interaction between machines
WO2016130858A1 (en) 2015-02-11 2016-08-18 Skytree, Inc. User interface for unified data science platform including management of models, experiments, data sets, projects, actions, reports and features
US9769032B1 (en) 2015-03-20 2017-09-19 Databricks Inc. Cluster instance management system
US10025795B2 (en) 2015-03-24 2018-07-17 International Business Machines Corporation Systems and methods for query evaluation over distributed linked data stores
US10614056B2 (en) 2015-03-24 2020-04-07 NetSuite Inc. System and method for automated detection of incorrect data
US9898497B2 (en) 2015-03-31 2018-02-20 Oracle International Corporation Validating coherency between multiple data sets between database transfers
US10719524B1 (en) 2015-04-15 2020-07-21 Arimo, LLC Query template based architecture for processing natural language queries for data analysis
US10140348B2 (en) 2015-04-25 2018-11-27 Phillip Hiroshige System for automatically tracking data through a plurality of data sources and plurality of conversions
US10643144B2 (en) 2015-06-05 2020-05-05 Facebook, Inc. Machine learning system flow authoring tool
US10395181B2 (en) 2015-06-05 2019-08-27 Facebook, Inc. Machine learning system flow processing
US10540400B2 (en) 2015-06-16 2020-01-21 Business Objects Software, Ltd. Providing suggestions based on user context while exploring a dataset
US20160371355A1 (en) 2015-06-19 2016-12-22 Nuodb, Inc. Techniques for resource description framework modeling within distributed database systems
US10055275B2 (en) 2015-07-14 2018-08-21 Sios Technology Corporation Apparatus and method of leveraging semi-supervised machine learning principals to perform root cause analysis and derivation for remediation of issues in a computer environment
US9659081B1 (en) 2015-08-12 2017-05-23 Databricks Inc. Independent data processing environments within a big data cluster system
US10726148B2 (en) 2015-08-19 2020-07-28 Iqvia, Inc. System and method for providing multi-layered access control
US11269884B2 (en) 2015-09-04 2022-03-08 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US11256821B2 (en) 2015-10-14 2022-02-22 Minereye Ltd. Method of identifying and tracking sensitive data and system thereof
US10673887B2 (en) 2015-10-28 2020-06-02 Qomplx, Inc. System and method for cybersecurity analysis and score generation for insurance purposes
WO2017074174A1 (en) 2015-10-30 2017-05-04 Kim Seng Kee A system and method for processing big data using electronic document and electronic file-based system that operates on rdbms
US10380334B2 (en) 2015-11-06 2019-08-13 Sap Se Data access rules in a database layer
US10474736B1 (en) 2015-12-22 2019-11-12 Databricks Inc. Multiple display views for a notebook
US10783222B2 (en) 2016-01-27 2020-09-22 Covidien LLP Converting unorganized medical data for viewing
US9836302B1 (en) 2016-01-29 2017-12-05 Databricks Inc. Callable notebook for cluster execution
US10452634B2 (en) 2016-02-01 2019-10-22 Microsoft Technology Licensing, Llc Provide consumer oriented data service
US10248621B2 (en) 2016-02-09 2019-04-02 Moonshadow Mobile, Inc. Systems and methods for storing, updating, searching, and filtering time-series datasets
US9990230B1 (en) 2016-02-24 2018-06-05 Databricks Inc. Scheduling a notebook execution
US10467244B2 (en) 2016-04-29 2019-11-05 Unifi Software, Inc. Automatic generation of structured data from semi-structured data
US10554664B2 (en) 2016-05-02 2020-02-04 Microsoft Technology Licensing, Llc Activity feed for hosted files
US10706357B2 (en) 2016-05-13 2020-07-07 Cognitive Scale, Inc. Ingesting information into a universal cognitive graph
US11068439B2 (en) 2016-06-13 2021-07-20 International Business Machines Corporation Unsupervised method for enriching RDF data sources from denormalized data
US10691710B2 (en) 2016-06-19 2020-06-23 Data.World, Inc. Interactive interfaces as computerized tools to present summarization data of dataset attributes for collaborative datasets
US11620301B2 (en) 2016-06-19 2023-04-04 Data.World, Inc. Extended computerized query language syntax for analyzing multiple tabular data arrangements in data-driven collaborative projects
EP3472718A4 (en) 2016-06-19 2020-04-01 Data.world, Inc. Collaborative dataset consolidation via distributed computer networks
US11334625B2 (en) 2016-06-19 2022-05-17 Data.World, Inc. Loading collaborative datasets into data stores for queries via distributed computer networks
US10346429B2 (en) 2016-06-19 2019-07-09 Data.World, Inc. Management of collaborative datasets via distributed computer networks
US10438013B2 (en) 2016-06-19 2019-10-08 Data.World, Inc. Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US10324925B2 (en) 2016-06-19 2019-06-18 Data.World, Inc. Query generation for collaborative datasets
US10102258B2 (en) 2016-06-19 2018-10-16 Data.World, Inc. Collaborative dataset consolidation via distributed computer networks
US11016931B2 (en) 2016-06-19 2021-05-25 Data.World, Inc. Data ingestion to generate layered dataset interrelations to form a system of networked collaborative datasets
US10699027B2 (en) 2016-06-19 2020-06-30 Data.World, Inc. Loading collaborative datasets into data stores for queries via distributed computer networks
US10452677B2 (en) 2016-06-19 2019-10-22 Data.World, Inc. Dataset analysis and dataset attribute inferencing to form collaborative datasets
US11657043B2 (en) 2016-06-19 2023-05-23 Data.World, Inc. Computerized tools to develop and manage data-driven projects collaboratively via a networked computing platform and collaborative datasets
US10452975B2 (en) 2016-06-19 2019-10-22 Data.World, Inc. Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US10645548B2 (en) 2016-06-19 2020-05-05 Data.World, Inc. Computerized tool implementation of layered data files to discover, form, or analyze dataset interrelations of networked collaborative datasets
US10353911B2 (en) 2016-06-19 2019-07-16 Data.World, Inc. Computerized tools to discover, form, and analyze dataset interrelations among a system of networked collaborative datasets
US11042537B2 (en) 2016-06-19 2021-06-22 Data.World, Inc. Link-formative auxiliary queries applied at data ingestion to facilitate data operations in a system of networked collaborative datasets
US11068847B2 (en) 2016-06-19 2021-07-20 Data.World, Inc. Computerized tools to facilitate data project development via data access layering logic in a networked computing platform including collaborative datasets
US10853376B2 (en) 2016-06-19 2020-12-01 Data.World, Inc. Collaborative dataset consolidation via distributed computer networks
US10824637B2 (en) 2017-03-09 2020-11-03 Data.World, Inc. Matching subsets of tabular data arrangements to subsets of graphical data arrangements at ingestion into data driven collaborative datasets
US11068475B2 (en) 2016-06-19 2021-07-20 Data.World, Inc. Computerized tools to develop and manage data-driven projects collaboratively via a networked computing platform and collaborative datasets
US10984008B2 (en) 2016-06-19 2021-04-20 Data.World, Inc. Collaborative dataset consolidation via distributed computer networks
US11042560B2 (en) 2016-06-19 2021-06-22 data. world, Inc. Extended computerized query language syntax for analyzing multiple tabular data arrangements in data-driven collaborative projects
US11042548B2 (en) 2016-06-19 2021-06-22 Data World, Inc. Aggregation of ancillary data associated with source data in a system of networked collaborative datasets
US11036716B2 (en) 2016-06-19 2021-06-15 Data World, Inc. Layered data generation and data remediation to facilitate formation of interrelated data in a system of networked collaborative datasets
US10747774B2 (en) 2016-06-19 2020-08-18 Data.World, Inc. Interactive interfaces to present data arrangement overviews and summarized dataset attributes for collaborative datasets
US11023104B2 (en) 2016-06-19 2021-06-01 data.world,Inc. Interactive interfaces as computerized tools to present summarization data of dataset attributes for collaborative datasets
US11036697B2 (en) 2016-06-19 2021-06-15 Data.World, Inc. Transmuting data associations among data arrangements to facilitate data operations in a system of networked collaborative datasets
US11500831B2 (en) 2016-06-19 2022-11-15 Data.World, Inc. Transmuting data associations among data arrangements to facilitate data operations in a system of networked collaborative datasets
US10515085B2 (en) 2016-06-19 2019-12-24 Data.World, Inc. Consolidator platform to implement collaborative datasets via distributed computer networks
US11086896B2 (en) 2016-06-19 2021-08-10 Data.World, Inc. Dynamic composite data dictionary to facilitate data operations via computerized tools configured to access collaborative datasets in a networked computing platform
US11042556B2 (en) 2016-06-19 2021-06-22 Data.World, Inc. Localized link formation to perform implicitly federated queries using extended computerized query language syntax
US11709833B2 (en) 2016-06-24 2023-07-25 Dremio Corporation Self-service data platform
US10540624B2 (en) 2016-07-20 2020-01-21 International Business Machines Corporation System and method to automate provenance-aware application execution
WO2018156551A1 (en) 2017-02-22 2018-08-30 Data.World, Inc. Platform management of integrated access datasets utilizing federated query generation and schema rewriting optimization
US11068453B2 (en) 2017-03-09 2021-07-20 data.world, Inc Determining a degree of similarity of a subset of tabular data arrangements to subsets of graph data arrangements at ingestion into a data-driven collaborative dataset platform
EP3593261A4 (en) 2017-03-09 2020-10-28 Data.world, Inc. Computerized tools to discover, form, and analyze dataset interrelations among a system of networked collaborative datasets
US11238109B2 (en) 2017-03-09 2022-02-01 Data.World, Inc. Computerized tools configured to determine subsets of graph data arrangements for linking relevant data to enrich datasets associated with a data-driven collaborative dataset platform
US11068447B2 (en) 2017-04-14 2021-07-20 Databricks Inc. Directory level atomic commit protocol
US10558664B2 (en) 2017-04-28 2020-02-11 Databricks Inc. Structured cluster execution for data streams
US10474501B2 (en) 2017-04-28 2019-11-12 Databricks Inc. Serverless execution of code using cluster resources
US10606675B1 (en) 2017-11-10 2020-03-31 Databricks Inc. Query watchdog
USD879112S1 (en) 2017-11-14 2020-03-24 Geographic Services, Inc. Display screen or portion thereof with graphical user interface
USD871424S1 (en) 2017-11-22 2019-12-31 General Electric Company Display screen with graphical user interface for an imaging protocol manager
USD872743S1 (en) 2017-11-22 2020-01-14 General Electric Company Display screen with graphical user interface for an imaging protocol manager
US10922308B2 (en) 2018-03-20 2021-02-16 Data.World, Inc. Predictive determination of constraint data for application with linked data in graph-based datasets associated with a data-driven collaborative dataset platform
US10657686B2 (en) 2018-03-26 2020-05-19 Two Six Labs, LLC Gragnostics rendering
US11537990B2 (en) 2018-05-22 2022-12-27 Data.World, Inc. Computerized tools to collaboratively generate queries to access in-situ predictive data models in a networked computing platform
US10769130B1 (en) 2018-05-23 2020-09-08 Databricks Inc. Update and query of a large collection of files that represent a single dataset stored on a blob store
US11442988B2 (en) 2018-06-07 2022-09-13 Data.World, Inc. Method and system for editing and maintaining a graph schema
US10691433B2 (en) 2018-08-31 2020-06-23 Databricks Inc. Split front end for flexible back end cluster processing
US10810051B1 (en) 2018-11-13 2020-10-20 Databricks Inc. Autoscaling using file access or cache usage for cluster machines
US20210390098A1 (en) 2020-06-11 2021-12-16 Data.World, Inc. Query engine implementing auxiliary commands via computerized tools to deploy predictive data models in-situ in a networked computing platform
WO2021252805A1 (en) 2020-06-11 2021-12-16 Data.World, Inc. Auxiliary query commands to deploy predictive data models for queries in a networked computing platform

Cited By (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11409802B2 (en) 2010-10-22 2022-08-09 Data.World, Inc. System for accessing a relational database using semantic queries
US11068847B2 (en) 2016-06-19 2021-07-20 Data.World, Inc. Computerized tools to facilitate data project development via data access layering logic in a networked computing platform including collaborative datasets
US11373094B2 (en) 2016-06-19 2022-06-28 Data.World, Inc. Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US11036697B2 (en) 2016-06-19 2021-06-15 Data.World, Inc. Transmuting data associations among data arrangements to facilitate data operations in a system of networked collaborative datasets
US11246018B2 (en) 2016-06-19 2022-02-08 Data.World, Inc. Computerized tool implementation of layered data files to discover, form, or analyze dataset interrelations of networked collaborative datasets
US11042537B2 (en) 2016-06-19 2021-06-22 Data.World, Inc. Link-formative auxiliary queries applied at data ingestion to facilitate data operations in a system of networked collaborative datasets
US11928596B2 (en) 2016-06-19 2024-03-12 Data.World, Inc. Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US11042560B2 (en) 2016-06-19 2021-06-22 data. world, Inc. Extended computerized query language syntax for analyzing multiple tabular data arrangements in data-driven collaborative projects
US11042548B2 (en) 2016-06-19 2021-06-22 Data World, Inc. Aggregation of ancillary data associated with source data in a system of networked collaborative datasets
US11675808B2 (en) 2016-06-19 2023-06-13 Data.World, Inc. Dataset analysis and dataset attribute inferencing to form collaborative datasets
US10860601B2 (en) 2016-06-19 2020-12-08 Data.World, Inc. Dataset analysis and dataset attribute inferencing to form collaborative datasets
US11086896B2 (en) 2016-06-19 2021-08-10 Data.World, Inc. Dynamic composite data dictionary to facilitate data operations via computerized tools configured to access collaborative datasets in a networked computing platform
US11093633B2 (en) 2016-06-19 2021-08-17 Data.World, Inc. Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US11163755B2 (en) 2016-06-19 2021-11-02 Data.World, Inc. Query generation for collaborative datasets
US11210313B2 (en) 2016-06-19 2021-12-28 Data.World, Inc. Computerized tools to discover, form, and analyze dataset interrelations among a system of networked collaborative datasets
US11947554B2 (en) 2016-06-19 2024-04-02 Data.World, Inc. Loading collaborative datasets into data stores for queries via distributed computer networks
US11941140B2 (en) 2016-06-19 2024-03-26 Data.World, Inc. Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US11609680B2 (en) 2016-06-19 2023-03-21 Data.World, Inc. Interactive interfaces as computerized tools to present summarization data of dataset attributes for collaborative datasets
US11036716B2 (en) 2016-06-19 2021-06-15 Data World, Inc. Layered data generation and data remediation to facilitate formation of interrelated data in a system of networked collaborative datasets
US11042556B2 (en) 2016-06-19 2021-06-22 Data.World, Inc. Localized link formation to perform implicitly federated queries using extended computerized query language syntax
US11277720B2 (en) 2016-06-19 2022-03-15 Data.World, Inc. Computerized tool implementation of layered data files to discover, form, or analyze dataset interrelations of networked collaborative datasets
US11314734B2 (en) 2016-06-19 2022-04-26 Data.World, Inc. Query generation for collaborative datasets
US11816118B2 (en) 2016-06-19 2023-11-14 Data.World, Inc. Collaborative dataset consolidation via distributed computer networks
US11327996B2 (en) 2016-06-19 2022-05-10 Data.World, Inc. Interactive interfaces to present data arrangement overviews and summarized dataset attributes for collaborative datasets
US11334625B2 (en) 2016-06-19 2022-05-17 Data.World, Inc. Loading collaborative datasets into data stores for queries via distributed computer networks
US11366824B2 (en) 2016-06-19 2022-06-21 Data.World, Inc. Dataset analysis and dataset attribute inferencing to form collaborative datasets
US11023104B2 (en) 2016-06-19 2021-06-01 data.world,Inc. Interactive interfaces as computerized tools to present summarization data of dataset attributes for collaborative datasets
US10963486B2 (en) 2016-06-19 2021-03-30 Data.World, Inc. Management of collaborative datasets via distributed computer networks
US11423039B2 (en) 2016-06-19 2022-08-23 data. world, Inc. Collaborative dataset consolidation via distributed computer networks
US11755602B2 (en) 2016-06-19 2023-09-12 Data.World, Inc. Correlating parallelized data from disparate data sources to aggregate graph data portions to predictively identify entity data
US11468049B2 (en) 2016-06-19 2022-10-11 Data.World, Inc. Data ingestion to generate layered dataset interrelations to form a system of networked collaborative datasets
US11734564B2 (en) 2016-06-19 2023-08-22 Data.World, Inc. Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US11726992B2 (en) 2016-06-19 2023-08-15 Data.World, Inc. Query generation for collaborative datasets
US11068453B2 (en) 2017-03-09 2021-07-20 data.world, Inc Determining a degree of similarity of a subset of tabular data arrangements to subsets of graph data arrangements at ingestion into a data-driven collaborative dataset platform
US11238109B2 (en) 2017-03-09 2022-02-01 Data.World, Inc. Computerized tools configured to determine subsets of graph data arrangements for linking relevant data to enrich datasets associated with a data-driven collaborative dataset platform
US11669540B2 (en) 2017-03-09 2023-06-06 Data.World, Inc. Matching subsets of tabular data arrangements to subsets of graphical data arrangements at ingestion into data-driven collaborative datasets
US11573948B2 (en) 2018-03-20 2023-02-07 Data.World, Inc. Predictive determination of constraint data for application with linked data in graph-based datasets associated with a data-driven collaborative dataset platform
US11243960B2 (en) 2018-03-20 2022-02-08 Data.World, Inc. Content addressable caching and federation in linked data projects in a data-driven collaborative dataset platform using disparate database architectures
US11537990B2 (en) 2018-05-22 2022-12-27 Data.World, Inc. Computerized tools to collaboratively generate queries to access in-situ predictive data models in a networked computing platform
US11327991B2 (en) 2018-05-22 2022-05-10 Data.World, Inc. Auxiliary query commands to deploy predictive data models for queries in a networked computing platform
USD940732S1 (en) 2018-05-22 2022-01-11 Data.World, Inc. Display screen or portion thereof with a graphical user interface
US11947529B2 (en) 2018-05-22 2024-04-02 Data.World, Inc. Generating and analyzing a data model to identify relevant data catalog data derived from graph-based data arrangements to perform an action
USD940169S1 (en) 2018-05-22 2022-01-04 Data.World, Inc. Display screen or portion thereof with a graphical user interface
US11657089B2 (en) 2018-06-07 2023-05-23 Data.World, Inc. Method and system for editing and maintaining a graph schema
US11442988B2 (en) 2018-06-07 2022-09-13 Data.World, Inc. Method and system for editing and maintaining a graph schema
US11520784B2 (en) * 2019-10-25 2022-12-06 Accenture Global Solutions Limited Utilizing neural network and machine learning models to generate a query after migrating data from a source data structure to a target data structure
US11947600B2 (en) 2021-11-30 2024-04-02 Data.World, Inc. Content addressable caching and federation in linked data projects in a data-driven collaborative dataset platform using disparate database architectures

Also Published As

Publication number Publication date
US20170364694A1 (en) 2017-12-21
US11386218B2 (en) 2022-07-12
US10438013B2 (en) 2019-10-08
US11093633B2 (en) 2021-08-17
US20190370481A1 (en) 2019-12-05

Similar Documents

Publication Publication Date Title
US11386218B2 (en) Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US11734564B2 (en) Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
EP3586247A1 (en) Platform management of integrated access datasets utilizing federated query generation and schema rewriting optimization
US11726992B2 (en) Query generation for collaborative datasets
JP7322119B2 (en) Queries to data sources on the network
US11941140B2 (en) Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US8180758B1 (en) Data management system utilizing predicate logic
US20190079968A1 (en) Link-formative auxiliary queries applied at data ingestion to facilitate data operations in a system of networked collaborative datasets
US11416458B2 (en) Efficient indexing for querying arrays in databases
US9489423B1 (en) Query data acquisition and analysis
KR20190005578A (en) Systemt and method of managing distributed database based on inmemory
EP4359952A1 (en) Platform and source agnostic data processing for structured and unstructured data sources
US11809398B1 (en) Methods and systems for connecting data with non-standardized schemas in connected graph data exchanges
US20230169123A1 (en) Content addressable caching and federation in linked data projects in a data-driven collaborative dataset platform using disparate database architectures

Legal Events

Date Code Title Description
AS Assignment

Owner name: DATA.WORLD, INC., TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:JACOB, BRYON KRISTEN;GRIFFITH, DAVID LEE;LE, TRIET MINH;AND OTHERS;SIGNING DATES FROM 20170321 TO 20170326;REEL/FRAME:049633/0089

FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO SMALL (ORIGINAL EVENT CODE: SMAL); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS

STPP Information on status: patent application and granting procedure in general

Free format text: AWAITING TC RESP, ISSUE FEE PAYMENT VERIFIED

STPP Information on status: patent application and granting procedure in general

Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED

STCF Information on status: patent grant

Free format text: PATENTED CASE