Patents by Inventor Hassan Chafi

Hassan Chafi has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Publication number: 20200342055
    Abstract: Techniques are described herein for performing named entity disambiguation. According to an embodiment, a method includes receiving input text, extracting a first mention and a second mention from the input text, and selecting, from a knowledge graph, a plurality of first candidate vertices for the first mention and a plurality of second candidate vertices for the second mention. The present method also includes evaluating a score function that analyzes vertex embedding similarity between the plurality of first candidate vertices and the plurality of second candidate vertices. In response to evaluating and seeking to optimize the score function, the method performs selecting a first selected candidate vertex from the plurality of first candidate vertices and a second selected candidate vertex from the plurality of second candidate vertices.
    Type: Application
    Filed: April 23, 2019
    Publication date: October 29, 2020
    Inventors: Rhicheek Patra, Davide Bartolini, Sungpack Hong, Hassan Chafi, Alberto Parravicini
  • Patent number: 10809881
    Abstract: Techniques herein visually construct and summarize property graphs. In an embodiment, a computer loads raw data tables and generates vertices and edges based on the data tables. Vertices may be disconnected or may be interconnected by edges based on foreign keys. In an embodiment, a junction vertex can be converted into a special edge that interconnects two other vertices. In an embodiment, a junction vertex can be converted into a self-directed edge that interconnects data within a single vertex. Filtration can be applied when loading raw tables and then adjusted after visual construction of vertices and edges.
    Type: Grant
    Filed: May 23, 2017
    Date of Patent: October 20, 2020
    Assignee: Oracle International Corporation
    Inventors: Julia Kindelsberger, Daniel Langerenken, Korbinian Schmid, Sungpack Hong, Hassan Chafi
  • Patent number: 10810257
    Abstract: Techniques herein are for fast processing of path-finding queries in large graph databases. A computer system receives a graph search request to find a set of result paths between one or more source vertices of a graph and one or more target vertices of the graph. The graph comprises vertices connected by edges. During a first pass, the computer system performs one or more breadth-first searches to identify a subset of edges of the graph. The one or more breadth-first searches originate at the one or more source vertices. After the first pass and during a second pass, the computer system performs one or more depth-first searches to identify the set of result paths. The one or more depth-first searches originate at the one or more target vertices. The one or more depth-first searches traverse at most the subset of edges of the graph.
    Type: Grant
    Filed: August 27, 2015
    Date of Patent: October 20, 2020
    Assignee: Oracle International Corporation
    Inventors: Oskar Van Rest, Jinha Kim, Sungpack Hong, Hassan Chafi
  • Patent number: 10795672
    Abstract: Techniques are described herein for automatic generation of multi-source breadth-first search (MS-BFS) from high-level graph processing language that can be executed in a distributed computing environment. In an embodiment, a method involves a computer analyzing original software instructions. The original software instructions are configured to perform multiple breadth-first searches to determine a particular result. Each breadth-first search originates at each of a subset of vertices of a graph. Each breadth-first search is encoded for independent execution. Based on the analyzing, the computer generates transformed software instructions configured to perform a MS-BFS to determine the particular result. Each of the subset of vertices is a source of the MS-BFS. In an embodiment, the second plurality of software instructions comprises a node iteration loop and a neighbor iteration loop, and the plurality of vertices of the distributed graph comprise active vertices and neighbor vertices.
    Type: Grant
    Filed: October 31, 2018
    Date of Patent: October 6, 2020
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Martijn Dwars, Martin Sevenich, Sungpack Hong, Hassan Chafi
  • Publication number: 20200293372
    Abstract: Techniques are described herein for allocating and rebalancing computing resources for executing graph workloads in manner that increases system throughput. According to one embodiment, a method includes receiving a request to execute a graph processing workload on a dataset, identifying a plurality of graph operators that constitute the graph processing workload, and determining whether execution of each graph operator is processor intensive or memory intensive. The method also includes assigning a task weight for each graph operator of the plurality of graph operators, and performing, based on the assigned task weights, a first allocation of computing resources to execute the plurality of graph operators. Further, the method includes causing, according to the first allocation, execution of the plurality of graph operators by the computing resources, and monitoring computing resource usage of graph operators executed by the computing resources according to the first allocation.
    Type: Application
    Filed: March 12, 2019
    Publication date: September 17, 2020
    Inventors: Vlad Ioan Haprian, Iraklis Psaroudakis, Alexander Weld, Oskar Van Rest, Sungpack Hong, Hassan Chafi
  • Publication number: 20200293332
    Abstract: Techniques are provided for vectorizing Heapsort. A K-heap is used as the underlying data structure for indexing values being sorted. The K-heap is vectorized by storing values in a contiguous memory array containing a beginning-most side and end-most side. The vectorized Heapsort utilizes horizontal aggregation SIMD instructions for comparisons, shuffling, and moving data. Thus, the number of comparisons required in order to find the maximum or minimum key value within a single node of the K-heap is reduced resulting in faster retrieval operations.
    Type: Application
    Filed: March 12, 2019
    Publication date: September 17, 2020
    Inventors: Benjamin Schlegel, Pit Fender, Harshad Kasture, Matthias Brantner, Hassan Chafi
  • Patent number: 10776966
    Abstract: Techniques are provided for strategy-based graph simplification. In an embodiment, a computer provides configurable strategies that simplify edges of a graph. A client selects and configures a strategy subset of the configurable strategies to define a particular simplification scheme. The computer simplifies a graph by applying the strategy subset to the graph. In embodiments, predefined classes or other application programming interface (API) is provided to clients to obtain and customize strategy instances, such as with a factory or builder. Strategy instances may be imperative or declarative. A service implementation, such as a graph engine, may be embedded or remoted. Techniques herein provide for reuse and optimization.
    Type: Grant
    Filed: April 28, 2017
    Date of Patent: September 15, 2020
    Assignee: Oracle International Corporation
    Inventors: Jan Boettcher, Alexander Weld, Korbinian Schmid, Sungpack Hong, Hassan Chafi
  • Patent number: 10754700
    Abstract: Techniques herein provide job control and synchronization of distributed graph-processing jobs. In an embodiment, a computer system maintains an input queue of graph processing jobs. In response to de-queuing a graph processing job, a master thread partitions the graph processing job into distributed jobs. Each distributed job has a sequence of processing phases. The master thread sends each distributed job to a distributed processor. Each distributed job executes a first processing phase of its sequence of processing phases. To the master thread, the distributed job announces completion of its first processing phase. The master thread detects that all distributed jobs have announced finishing their first processing phase. The master thread broadcasts a notification to the distributed jobs that indicates that all distributed jobs have finished their first processing phase. Receiving that notification causes the distributed jobs to execute their second processing phase.
    Type: Grant
    Filed: March 14, 2019
    Date of Patent: August 25, 2020
    Assignee: Oracle International Corporation
    Inventors: Jinsu Lee, Sungpack Hong, Siegfried Depner, Nicholas Roth, Thomas Manhardt, Hassan Chafi
  • Publication number: 20200265090
    Abstract: Herein are computerized techniques for processing a heterogeneous graph according to scan-avoidant query planning. In an embodiment, a computer respectively stores a first and second kind of vertices of a property graph into a first and second vertex tables. The computer generates, without scanning the second vertex table: a) an initial partial result of a query of the property graph based on the first vertex table, and b) a subsequent partial result of the query based on the initial partial result and the second kind of vertices. Herein are graph encodings that are dense, without requiring extra computation, and that exploit graph heterogeneity to achieve an aggregation granularity that reduces data working set scope, optimizes for caching, and encourages compression. Herein are query execution mechanisms and techniques that intelligently avoid accessing circumstantially extraneous data and/or structures and that can horizontally scale.
    Type: Application
    Filed: February 20, 2019
    Publication date: August 20, 2020
    Inventors: Damien Hilloulin, Davide Bartolini, Oskar Van Rest, Vlad Haprian,, Sungpack Hong, Hassan Chafi,
  • Publication number: 20200257982
    Abstract: Techniques are described herein for encoding categorical features of property graphs by vertex proximity. In an embodiment, an input graph is received. The input graph comprises a plurality of vertices, each vertex of said plurality of vertices is associated with vertex properties of said vertex. The vertex properties include at least one categorical feature value of one or more potential categorical feature values. For each of the one or more potential categorical feature values of each vertex, a numerical feature value is generated. The numerical feature value represents a proximity of the respective vertex to other vertices of the plurality of vertices that have a categorical feature value corresponding to the respective potential categorical feature value. Using the numerical feature values for each vertex, proximity encoding data is generated representing said input graph. The proximity encoding data is used to efficiently train machine learning models that produce results with enhanced accuracy.
    Type: Application
    Filed: February 7, 2019
    Publication date: August 13, 2020
    Inventors: Jinha Kim, Rhicheek Patra, Sungpack Hong, Damien Hilloulin, Davide Bartolini, Hassan Chafi
  • Patent number: 10684873
    Abstract: Computer-implemented techniques described herein provide efficient data decoding using runtime specialization. In an embodiment, a method comprises a virtual machine executing a body of code of a dynamically typed language, wherein executing the body of code includes: querying a relational database, and in response to the query, receiving table metadata indicating data types of one or more columns of a first table in the relational database. In response to receiving the table metadata: for a first column of the one or more columns, generating decoding machine code to decode the first column based on the data type of the first column, and executing the decoding machine code to decode the first column of the one or more columns.
    Type: Grant
    Filed: June 12, 2018
    Date of Patent: June 16, 2020
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Bastian Hossbach, Jürgen Christ, Laurent Daynes, Matthias Brantner, Hassan Chafi, Christian Humer
  • Patent number: 10678588
    Abstract: Techniques are provided for reducing synchronization of tasks in a task scheduling system. A task queue includes multiple tasks, some of which require an I/O operation while other tasks require data stored locally in memory. A single thread is assigned to process tasks in the task queue. The thread determines if a task at the head of the task queue requires an I/O operation. If so, then the thread generates an I/O request, submits the I/O request, and may place the task at (or toward) the end of the task queue. When the task reaches the head of the task queue again, the thread determines if data requested by the I/O request is available yet. If so, then the thread processes the request. Otherwise, the thread may place the task at (or toward) the end of the task queue again.
    Type: Grant
    Filed: May 17, 2017
    Date of Patent: June 9, 2020
    Assignee: Oracle International Corporation
    Inventors: Jan van der Lugt, Timothy L. Harris, Sungpack Hong, Hassan Chafi
  • Publication number: 20200151216
    Abstract: Embodiments perform real-time vertex connectivity checks in graph data representations via a multi-phase search process. This process includes an efficient first search phase using landmark connectivity data that is generated during a preprocessing phase. Landmark connectivity data maps the connectivity of a set of identified landmarks in a graph to other vertices in the graph. Upon determining that the subject vertices are not closely related via landmarks, embodiments implement a second search phase that performs a brute-force search for connectivity, between the subject vertices, among the graph's non-landmark vertices. This brute-force search prevents exploration of cyclical paths by recording the vertices on a currently-explored path in a stack data structure. The second search phase is automatically aborted upon detecting that the non-landmark vertices in the graph are over a threshold density.
    Type: Application
    Filed: November 9, 2018
    Publication date: May 14, 2020
    Inventors: Martin Sevenich, Sungpack Hong, Alexander Weld, Hassan Chafi
  • Publication number: 20200142957
    Abstract: Techniques are described herein for learning property graph representations edge-by-edge. In an embodiment, an input graph is received. The input graph comprises a plurality of vertices and a plurality of edges. Each vertex of the plurality of vertices is associated with vertex properties of the respective vertex. A vertex-to-property mapping is generated for each vertex of the plurality of vertices. The mapping maps each vertex to a vertex-property signature of a plurality of vertex-property signatures. A plurality of edge words is generated. Each edge word corresponds to one or more edges that each begin at a first vertex having a particular vertex-property signature of the plurality of vertex property signatures and end at a second vertex having a particular vertex-property signature of the plurality of vertex property signatures. A plurality of sentences is generated. Each sentence comprises edge words directly connected along a path of a plurality of paths in the input graph.
    Type: Application
    Filed: November 2, 2018
    Publication date: May 7, 2020
    Inventors: Rhicheek Patra, Sungpack Hong, Jinha Kim, Damien Hilloulin, Davide Bartolini, Hassan Chafi
  • Publication number: 20200133663
    Abstract: Techniques are described herein for automatic generation of multi-source breadth-first search (MS-BFS) from high-level graph processing language that can be executed in a distributed computing environment. In an embodiment, a method involves a computer analyzing original software instructions. The original software instructions are configured to perform multiple breadth-first searches to determine a particular result. Each breadth-first search originates at each of a subset of vertices of a graph. Each breadth-first search is encoded for independent execution. Based on the analyzing, the computer generates transformed software instructions configured to perform a MS-BFS to determine the particular result. Each of the subset of vertices is a source of the MS-BFS. In an embodiment, the second plurality of software instructions comprises a node iteration loop and a neighbor iteration loop, and the plurality of vertices of the distributed graph comprise active vertices and neighbor vertices.
    Type: Application
    Filed: October 31, 2018
    Publication date: April 30, 2020
    Inventors: Martijn Dwars, Martin Sevenich, Sungpack Hong, Hassan Chafi
  • Publication number: 20200117604
    Abstract: Techniques are provided for performing a flush operation in a non-coherent cache. In response to determining to perform a flush operation, a cache unit flushes certain data items. The flush operation may be performed in response to a lapse of a particular amount of time, such as a number of cycles, or an explicit flush instruction that does not indicate any cache entry or data item. The cache unit may store change data that indicates which entry stores a data item that has been modified but not yet been flushed. The change data may be used to identify the entries that need to be flushed. In one technique, a dirty cache entry that is associated with one or more relatively recent changes is not flushed during a flush operation.
    Type: Application
    Filed: December 13, 2019
    Publication date: April 16, 2020
    Inventors: Sungpack Hong, Hassan Chafi, Eric Sedlar
  • Publication number: 20200117762
    Abstract: Techniques are described for generating and re-using reachability graphs for efficient execution of queries. In an embodiment, a query is received for execution on a data graph. Such a query may include one or more expressions for edges in the data graph, which when executed select one or more paths in the data graph to generate results for the query. The system uses a repository to store reachability graphs and may determine whether a reachability graph for an expression of the query for the data graph is stored in a repository. Such a reachability graph is generated by applying the expression on the data graph to qualify or disqualify the edges in the data graph to be included as part of edges of the reachability graph. For example, an edge in a reachability graph exists between two vertices when at least one edge of the data graph has qualified between two vertices of the data graph that correspond to the two vertices of the reachability graph.
    Type: Application
    Filed: October 12, 2018
    Publication date: April 16, 2020
    Inventors: VLAD HAPRIAN, OSKAR VAN REST, SUNGPACK HONG, HASSAN CHAFI
  • Publication number: 20200117689
    Abstract: Techniques herein minimize memory needed to store distances between vertices of a graph for use during a multi-source breadth-first search (MS-BFS). In an embodiment, during each iteration of a first sequence of iterations of a MS-BFS, a computer updates a first matrix that contains elements that use a first primitive integer type having a first width to record a distance from a source vertex of a graph to another vertex. The computer detects that a count of iterations of the first sequence of iterations exceeds a threshold. Responsively, the computer creates a second matrix that contains elements that use a second primitive integer type having a second width that is larger than the first width to record a distance from a source vertex of the graph to another vertex. During each iteration of a second sequence of iterations of the MS-BFS, the computer updates the second matrix.
    Type: Application
    Filed: December 12, 2019
    Publication date: April 16, 2020
    Inventors: Martin Sevenich, Sungpack Hong, Alexander Weld, Hassan Chafi, Daniel Lehmann
  • Patent number: 10614126
    Abstract: Techniques herein are for query editing with semantic analysis of a query based on information extracted from a tuple graph. In an embodiment, a computerized method involves processing a dataset to extract an extracted schema that describes types and relationships that occur within the dataset. The dataset is not associated with a schema that is not contained in the dataset. The dataset has a graph of tuples. During an incremental parse, an abstract syntax tree (AST) that represents a query is modified. The extracted schema and the dataset are used to perform semantic analysis on the AST. In an embodiment, the tuples are resource description framework (RDF) triples. In an embodiment, the RDF triples include RDF schema statements. Extracting an extracted schema involves processing RDF schema statements. In an embodiment, the query is a SPARQL query and semantic analysis includes error alerting and code completion.
    Type: Grant
    Filed: May 21, 2015
    Date of Patent: April 7, 2020
    Assignee: Oracle International Corporation
    Inventors: Oskar Van Rest, Raghavan Raman, Sungpack Hong, Hassan Chafi
  • Publication number: 20200097288
    Abstract: Techniques for maintaining d-heap property and speeding up retrieval operations, such as top or pop, by vectorizing the d-heap and utilizing horizontal aggregation SIMD instructions across the retrieval operations. A d-heap is vectorized by storing it in a contiguous memory array containing a beginning-most side and end-most side. Horizontal aggregation SIMD instructions are utilized to aggregate the values of the vectorized d-heap. Thus, the number of comparisons required in order to find the maximum or minimum key value within a single node of the d-heap is reduced resulting in faster retrieval operations.
    Type: Application
    Filed: September 24, 2018
    Publication date: March 26, 2020
    Inventors: Benjamin Schlegel, Harshad Kasture, Pit Fender, Matthias Brantner, Hassan Chafi