US Pat. No. 10,169,372

CONTROL FOR RAPIDLY EXPLORING RELATIONSHIPS IN DENSELY CONNECTED NETWORKS

International Business Ma...

1. A method comprising:presenting a circular user interface, wherein the circular user interface comprises a plurality of sections including a first section and a second section, wherein the first section is associated with a first data field of a data set and the second section is associated with a second data field of the data set;
presenting a first visual representation of the data set as a table separate from the circular user interface, the table having at least a first column associated with the first data field and a second column associated with the second data field, wherein the first column occupies a first position in the table and the second column occupies a second position in the table;
receiving user input via the circular user interface, wherein the user input indicates a selection of the first section of the circular user interface;
in response to user input, moving the first column to the second position in the table and the second column to the first position in the table; and
presenting a second visual representation of the data set as the table.

US Pat. No. 10,169,371

SYSTEM AND METHOD FOR CREATING A PREFERENCE PROFILE FROM SHARED IMAGES

International Business Ma...

1. A system, comprised of at least one data processor connected with at least one memory that stores software instructions, where execution of the software instructions by the at least one data processor causes the system to perform operations to:for a subject category of interest having a plurality N of sub-categories, where N is an integer greater than one, train over a first set of images a plurality of image classifiers to yield a plurality of pre-trained classifiers (C1 . . . CN), where each individual one of the pre-trained classifiers is trained to recognize one sub-category of the plurality of sub-categories;
obtain a second set of images (i=1 . . . M) from at least one social media website that a person has shared /posted /pinned or otherwise expressed an interest in, where M represents a total number of images in the second set of images;
apply at least some of the pre-trained classifiers (C1 . . . CN) to each image i in the second set of images;
obtain a classification score vector Si=[s1 . . . , sN] for image i(i=1 . . . M), where sj indicates a classification score output from a classifier Cj by applying it to image i;
aggregate the M classification score vectors over all of the images of the second set of images;
derive a data construct that is descriptive of a preference profile of the person with respect to the sub-categories of the category of interest as a probability distribution over the N sub-categories; and
characterize by how much the person's profile differs from an average profile of a group of persons by assigning the person to a segment, where Pa represents a probability vector for the person, and calculating an average Psegment_i for each segment i, where a degree to which the person is a member of the segment i is a dot product of the two vectors:
Pa·Psegment_i/(|Pa||Psegment_i|).

US Pat. No. 10,169,370

NAVIGATION DATABASE CUSTOMIZATION

HERE Global B.V., Eindho...

1. A method implemented by a navigation system, the method comprising:analyzing, with a processor of the navigation system, a geographic database to determine database structure elements, wherein the database structure elements comprise road attributes or points of interest, wherein analyzing the geographic database comprises determining a hierarchy of database structure elements with the database structure elements arranged in groups within the hierarchy, and wherein determining the hierarchy comprises grouping database features into database attributes and grouping database attributes into larger database building blocks;
determining a selection of one or more first database structure elements that relate to a first set of drivers to include in a first customized compiled geographic database wherein at least one database structure element is omitted from the first customized compiled geographic database, wherein determining the selection of one or more first database structure elements comprises determining a selection of a greater hierarchical grouping including one or more subordinate database structure elements so as to thereby select each of the one or more subordinate database structure elements;
determining a selection of one or more second database structure elements that relate to a second set of drivers to include in a second customized compiled geographic database wherein at least one database structure element is omitted from the second customized compiled geographic database;
extracting the selected first database structure elements including the one or more database structure elements included in the hierarchical grouping that has been selected from the geographic database;
compiling with the processor, the first customized geographic database for the first set of drivers using the extracted first database structure elements;
extracting the selected second database structure elements from the geographic database; and
compiling with the processor, the second customized geographic database for the second set of drivers using the extracted second database structure elements, wherein the compiled second customized geographic database is distinct from the compiled first customized geographic database,
wherein the first and second customized geographic databases include geographic data used by the first and second sets of drivers, respectively, for a navigation-related application.

US Pat. No. 10,169,369

MEETING STORAGE REQUIREMENTS WITH LIMITED STORAGE RESOURCES

INTERNATIONAL BUSINESS MA...

1. A method for use in a distributed storage network (DSN), the method comprising:determining, at a managing unit, resource availability information, the resource availability information including information indicating a number of memory devices available to be used for storage of encoded data slices;
based on the resource availability information, choosing, at the management unit, dispersal parameters satisfying a performance threshold associated with storage of the encoded data slices in the DSN, subject to a constraint requiring a pillar width associated with the encoded data slices to be no larger than the number of memory devices available;
creating, at the management unit, a number of storage units based on the dispersal parameters, wherein the number of storage units is constrained to be greater than the pillar width, and wherein one or more of the number of memory devices is assigned to each of the number of storage units; and
instantiating, by the management unit, a DSN memory that includes the number of storage units.

US Pat. No. 10,169,368

INDEXING OF LINKED DATA

International Business Ma...

1. A computer program product comprising:one or more computer readable storage media and program instructions stored on the one or more computer readable storage media, the program instructions comprising:
program instructions to, responsive to a state change of a resource in a tracked resource set, create one or more update commands that describe the state change of the resource;
program instructions to create a change event for the resource in a change log, wherein the change event comprises the created one or more update commands that describe the state change of the resource, and the change event further comprises a version identifier of the resource before the state change and a version identifier of the resource after the state change; and
program instructions to, responsive to a state change of a second resource in the tracked resource set, determine, based on a relative cost of updating an indexed version of the second resource with the one or more update commands versus a relative cost of replacing an indexed resource of the second resource using an HTTP GET request to obtain triples comprising the second resource, to create one or more update commands describing the state change of the second resource in a change event for the second resource.

US Pat. No. 10,169,367

MANAGING OPPORTUNISTIC LOCKS IN A DISTRIBUTED FILE SYSTEM

Panzura, Inc., Campbell,...

1. A computer-implemented method for managing distributed opportunistic locks in a distributed filesystem, the method comprising:collectively managing data in the distributed file system using 2 or more cloud controllers, wherein collectively managing the data comprises storing the data for the distributed filesystem in one or more cloud storage systems, wherein the cloud controllers cache and ensure data consistency for data stored in the cloud storage systems;
receiving at a first cloud controller a request from a first client to access a file in the distributed filesystem, wherein the first client requests an opportunistic lock for the file from the first cloud controller, wherein the requested opportunistic lock requests shared read/write access permissions that are not exclusive to other client accesses, wherein the first cloud controller determines an owning cloud controller among the two or more cloud controllers that has been assigned to manage opportunistic locks for the file, wherein the owning cloud controller is distinct from the first cloud controller, wherein the owning cloud controller tracks multiple clients that have been granted opportunistic locks for the file via other cloud controllers that are distinct from the first cloud controller, wherein every cloud controller with clients presently accessing the file registers with the owning cloud controller to receive notifications of any updates to the file;
initiating via the owning cloud controller a sharing access check that determines that there are outstanding opportunistic locks that are presently being held by one or more other clients of the distributed filesystem that were granted via other distinct cloud controllers for the distributed filesystem and that at least one or more of the outstanding opportunistic locks are write locks, wherein the owning cloud controller sends a distributed oplock break request to the cloud controllers that manage granted outstanding opportunistic locks for the file, wherein cloud controllers receiving the distributed oplock break request send an opportunistic lock break notification to their respective clients that are caching the file to ensure that there are no outstanding unflushed modifications to the file, wherein upon receiving the opportunistic lock break notification said clients flush all buffered modifications for the file to their respective cloud controllers, wherein information describing the flushed modifications for the file is synchronized to the cloud storage systems and to all of the other cloud controllers that have registered to receive notifications of updates for the file; and
upon determining that none of the other outstanding client opportunistic locks for the file that remain granted via the other cloud controllers of the distributed filesystem are exclusive locks that conflict with the requested opportunistic lock and determining that all distributed modifications to the file have been synchronized via the distributed oplock break request to ensure that no client receives obsolete data for the file, granting the first client the requested opportunistic lock for the file, wherein multiple clients simultaneously hold opportunistic locks granting shared write access for the file via distinct cloud controllers.

US Pat. No. 10,169,366

DEDUPLICATED FILE SYSTEM

Red Hat, Inc., Raleigh, ...

1. A method comprising:receiving a request for allocating a first block of a file system to a file;
computing, by a processing device, a first hash value of the first block;
comparing, by the processing device, the first hash value with a plurality of hash values, wherein each of the plurality of hash values correspond to a block of a plurality of blocks stored in the file system;
determining that a match exists between the first hash value and a second hash value of the plurality of hash values in view of the comparing;
allocating, by the processing device, a corresponding block associated with the second hash value to the file in view of the match;
updating, by the processing device, a reference count in the first block in view of allocating the corresponding block; and
replacing, by the processing device, a mapping indicator stored by the file system to track allocations of the first block with a reference to the updated reference count in the first block.

US Pat. No. 10,169,365

MULTIPLE DEDUPLICATION DOMAINS IN NETWORK STORAGE SYSTEM

Hewlett Packard Enterpris...

1. A method comprising:identifying, by a processor, a plurality of deduplication domains for a storage system;
creating, by the processor, a fingerprint index for each deduplication domain, wherein each data block stored in the storage system is associated with one of the plurality of deduplication domains;
receiving, by the processor, a first data block at the storage system;
identifying, by the processor, a first deduplication domain from the plurality of deduplication domains corresponding to the first data block;
deduplicating, by the processor, the first data block within the first deduplication domain based on a first fingerprint index associated with the first deduplication domain;
determining, by the processor, whether a size of a global fingerprint buffer exceeds a predetermined threshold, the global fingerprint buffer including space for storing fingerprint buffers of the deduplication domains; and
based on a determination that the size of the global fingerprint buffer exceeds the predetermined threshold, selecting, by the processor, a deduplication domain of the plurality of deduplication domains and updating the fingerprint index of the selected deduplication domain with fingerprint mappings stored in the fingerprint buffer of the selected deduplication domain.

US Pat. No. 10,169,364

GAUGING ACCURACY OF SAMPLING-BASED DISTINCT ELEMENT ESTIMATION

International Business Ma...

1. A method for estimating deduplication rate of logical data units retrieved from a storage system, comprising:selecting a sampling ratio, and sampling a plurality of logical data units from the storage system in accordance with the sampling ratio;
calculating a hash value for each of the sampled logical data units;
computing a first histogram indicating a duplication count of each of the calculated hash values;
computing, based on respective frequencies of the calculated hash values, a second histogram indicating observed frequencies of each of the duplication counts in the first histogram;
deriving, based on the sampling ratio and the second histogram, a target function;
defining a range of acceptable results for the target function;
defining, based on the range of the acceptable results, a set of plausible duplication frequency histograms;
identifying a first given plausible duplication frequency histogram having a highest number of distinct logical data units;
identifying a second given plausible duplication frequency histogram having a lowest number of distinct logical data units; and
determining, from the first and the second given plausible duplication frequency histogram, an upper and a lower bounds for a deduplication rate of the logical data units.

US Pat. No. 10,169,363

STORING DATA IN A DISTRIBUTED FILE SYSTEM

INTERNATIONAL BUSINESS MA...

1. A hardware device for storing data in a distributed file system, the distributed file system including a plurality of nonvolatile deduplication storage devices, the device comprising:at least one memory storing computer-executable instructions; and
at least one processor configured to access the at least one memory and execute the computer-executable instructions to:
receive a request to store first data in the distributed file system;
determine a characteristic of the first data;
identify one of the plurality of nonvolatile deduplication storage devices of the distributed file system as a deduplication storage device for the first data based on the determined characteristic of the first data matching a characteristic of second data stored in the identified deduplication device;
determine that the first data is redundant to the second data based on the determined characteristic of the first data matching the characteristic of the second data; and
in response at least in part to determining that the first data is redundant to the second data, store the first data in the identified deduplication storage device such that the first data and the second data are redundantly stored in the identified deduplication storage device and are deduplicatable within the identified deduplication storage device after the first data is redundantly stored.

US Pat. No. 10,169,362

HIGH-DENSITY COMPRESSION METHOD AND COMPUTING SYSTEM

CROSS COMMERCE MEDIA, INC...

1. A method comprising:extracting, by a processor, a data sample from a set of uncompressed data;
compressing, by the processor, the data sample using a first compression filter configuration comprising a first plurality of different compression filters arranged in a first sequence;
calculating, by the processor, a first compression ratio associated with the first compression filter configuration;
compressing, by the processor, the data sample using a second compression filter configuration comprising a second plurality of different compression filters arranged in a second sequence;
calculating, by the processor, a second compression ratio associated with the second compression filter configuration;
comparing, by the processor, the first compression ratio with the second compression ratio;
selecting, by the processor, the first compression filter configuration or the second compression filter configuration based on the comparison of the first and second compression ratios to provide a selected compression filter configuration; and
compressing, by the processor, the set of uncompressed data using the selected compression filter configuration to provide a compressed data set.

US Pat. No. 10,169,361

COLUMNAR DATABASE COMPRESSION

International Business Ma...

1. A computer-implemented method of compressing data in a columnar database comprising at least one column partitioned into a plurality of partitions including at least one empty partition and a plurality of filled partitions each comprising data entries associated with a set of parameters having parameter values relevant to a recurrence frequency of the data entry in the partition, the data entries being compressed in accordance with a compression dictionary based on respective recurrence frequencies of the data entries in the filled partition, the computer-implemented method comprising:receiving forecasted parameter values for the set of parameters for an expected set of data entries to be stored in an empty partition of the column;
predicting a recurrence frequency of the data entries in the expected set using the forecasted parameter values by evaluating data entry ranking histories associated with the respective compression dictionaries of the filled partitions with a machine learning algorithm, wherein:
evaluating the data entry ranking histories associated with the respective compression dictionaries of the filled partitions with the machine learning algorithm comprises detecting a correlation between patterns in the parameter values associated with the respective compression dictionaries and the associated data entry ranking histories;
predicting the recurrence frequency of the data entries in the expected set further comprises detecting further patterns in the forecasted parameter values and comparing the detected further patterns with the patterns detected in the parameter values associated with the respective compression dictionaries;
generating a predictive compression dictionary for the expected set of data entries based on the predicted recurrence frequency of the data entries in the expected set;
receiving the expected set of data entries; and
compressing at least part of the received expected set of data entries using the predictive compression dictionary.

US Pat. No. 10,169,360

MIXING SOFTWARE BASED COMPRESSION REQUESTS WITH HARDWARE ACCELERATED REQUESTS

INTERNATIONAL BUSINESS MA...

1. A computer program product for data compression, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions being readable and executable by a processing circuit to cause the processing circuit to:execute software compression for first requests for data compression that have respective sizes below a predefined threshold at the processing circuit;
forward second requests for data compression having respective sizes above the predefined threshold to a hardware accelerator, which is configured to perform data compression faster than the processing circuit, and which is remote from the processing circuit whereby forwards of the second requests to the hardware accelerator are associated with time and processing costs that are amortizable by the predefined threshold being relatively large as compared to the respective sizes of the first requests;
maintain a persistence of a compression dictionary used for executing the second requests across executions of the first and second requests,
wherein maintenance of compression dictionary persistence comprises:
padding a compression dictionary with padding space in accordance with a size of a first request;
adjusting a compression dictionary starting location by the size of the first request and
keeping a running total of compression dictionary starting location adjustments each time a subsequent first request is executed and the compression dictionary is padded, and
the program instructions further cause the processing circuit to inform the hardware accelerator of an offset in accordance with the running total of the compression dictionary starting location adjustments; and
execute software compression for the second requests for data compression at the hardware accelerator with the offset.

US Pat. No. 10,169,359

DISTRIBUTION CONTENT-AWARE COMPRESSION AND DECOMPRESSION OF DATA

EMC IP Holding Company LL...

1. A method, comprising:obtaining a file chunk of a plurality of file chunks of a larger file, a start offset of the file chunk within the larger file, and a data descriptor indicating how to process the file chunk based on characteristics of the larger file;
classifying, using at least once processing device in a distributed system, data inside the file chunk as one or more of headers and samples;
compressing, using the at least once processing device, headers in said file chunk using one or more header compression techniques to obtain one or more compressed headers;
compressing, using the at least once processing device, samples in said file chunk using one or more sample compression techniques to obtain one or more compressed samples, wherein said one or more header compression techniques are distinct from said one or more sample compression techniques; and
packing the compressed headers and compressed samples into a single bit stream comprising a compressed version of the file chunk, wherein at least one processing device of one or more of a storage node and a compute node processes the start offset of the file chunk within the larger file and the data descriptor indicating how to process the file chunk based on characteristics of the larger file.

US Pat. No. 10,169,358

DATA DEDUPLICATION USING A SMALL HASH TABLE

International Business Ma...

1. A method for data deduplication comprising:for a data chunk, determining, by one or more computer processors, whether a hash value of the data chunk generated by a first hash function is present in a hash table;
determining, by one or more computer processors, whether a total capacity of the hash table is above a threshold capacity;
in response to determining that the total capacity of the hash table is above a threshold capacity, determining, by one or more computer processors, whether there is space in a write data area of a system, wherein the write data area is identified by a second hash function, and wherein the hash table is loaded to a main memory of the write data area;
in response to determining that there is not space in the write data area, performing, by one or more computer processors, a post-deduplication process for each data chunk in the write data area, wherein the post-deduplication process identifies and deletes duplicate data chunks in the write data area, frees space in the write data area, and increases a storage usage rate of the deduplicated data chunks; and
in response to determining, upon performing the post-deduplication process, that there is space in the write data area, writing, by one or more computer processors, the data chunk to the write data area identified by the second hash function.

US Pat. No. 10,169,357

METHODS AND SYSTEMS FOR DATA CLEANUP USING PHYSICAL IMAGE OF FILES ON STORAGE DEVICES

INTERNATIONAL BUSINESS MA...

1. A method of optimizing selection of files for eviction from a first storage pool to free up a predetermined amount of space in the first storage pool, the method comprising:analyzing an effective space occupied by each file of a plurality of files in the first storage pool;
selecting one or more of the plurality of files as one or more candidate files for eviction, based on an identified one or more data blocks;
evicting the one or more candidate files for eviction from the first storage pool to a second storage pool; and
after the step of analyzing, identifying, from the plurality of files, one or more data blocks making up a file to free up the predetermined amount of space based on the analysis of the effective space of each file of the plurality of files;
wherein identifying includes:
analyzing a clean-up subset of files included in the plurality of files;
after the plurality of files have undergone a deduplication process, determining whether the one or more data blocks is pointed to by another file other than an instant file of the plurality of files being examined;
examining whether the other file other than the instant file is included as part of the clean-up subset of files; and
choosing the instant file as the one or more candidate files for eviction, if the other file is included as part of the clean-up subset of files and the instant file occupies space equal to or greater than the predetermined amount of space.

US Pat. No. 10,169,356

INTELLIGENT DATA CACHING FOR TYPEAHEAD SEARCH

Facebook, Inc., Menlo Pa...

1. A computer-implemented method comprising:receiving a first search query from a user;
obtaining a plurality of first search results in response to the first search query from an index server;
determining whether the plurality of first search results are a substantially exhausted list of results for the first search query;
caching the plurality of first search results in a cache storage if the plurality of first search results are the substantially exhausted list of results for the first search query;
receiving a second search query from the user;
determining whether the second search query is a refined query of the first search query, wherein the determining comprises:
generating one or more prefix queries based on the second search query;
calculating prefix hashes for the prefix queries based on symbolic expressions for the prefix queries and a hash of the first search query based on a symbolic expression for the first search query; and
determining whether one of the prefix hashes matches the hash of the first search query; and
searching the plurality of first search results cached in the cache storage for at least one second search result in response to the second search query.

US Pat. No. 10,169,355

KNOWLEDGE REPRESENTATION IN A MULTI-LAYERED DATABASE

1. A system for storing data using a knowledge representation scheme in a multi-layered database, the system comprising:a processor;
an operation module coupled to the processor to:
receive attributes of a real world entity for storage in the multi-layered database, wherein the attributes characterize properties and relationships of the real world entity; and
store an object corresponding to the real world entity in an object database layer of the multi-layered database, wherein, based on the attributes of the real world entity, the object is associated with object properties that characterize the object, at least one object relationship that relates the object to at least one other object, and relationship properties that characterize the object relation, wherein the object and the at least one object relationship are manipulated independently; and
a decomposer coupled to the processor to:
decompose the object, the object properties, the object relationship, and the relationship properties into a node, node properties associated with the node, at least one edge, and edge properties associated with the edge, wherein the node properties are indicative of the object properties, the edge is indicative of the object relationship, and the edge properties are indicative of the relationship properties of the object;
store the node, the node properties, the edge, and the edge properties in a graph database layer of the multi-layered database, wherein the edge connects the node with at least one other node corresponding to the at least one other object;
decompose further the node, the node properties, the edge, and the edge properties into the data and metadata associated with the data; and
store the data and the metadata corresponding to the node of the graph database layer in a backend database layer of the multi-layered database, wherein the backend database layer is scalable in real-time, wherein the backend database layer further store the node properties as the data and store the edge properties as the metadata,
wherein the object database layer is pluggable over the graph database layer and the graph database layer is pluggable over the backend database layer to independently change configuration of each layer,
wherein with presence of the object database layer in the multi-layered database, changes in information of the object database layer is automatically incorporated into the nodes and edges in the graph database layer, and the object in the backend database layer,
wherein the object database layer facilitates adding a new real world entity to the graph database layer unaltering the node and the edge.

US Pat. No. 10,169,354

INDEXING AND SEARCH QUERY PROCESSING

Nook Digital, LLC, New Y...

1. A non-transitory computer readable storage medium having an inverted index structure stored thereon for access by a program configured to execute keyword searches, the inverted index structure comprising:a plurality of content words and bi words extracted from an unstructured text document, the biwords comprising consecutive single word terms;
for each of the content words and bi words, at least one document identifier containing information about an association between the respective content word and a logical section within the unstructured text document containing the content word or bi word;
for each of the document identifiers, at least one position identifier containing first information about the logical section in the unstructured text document containing the content word or bi word and second information about a paragraph in the logical section in the unstructured text document containing the content word or biword, the first information being distinct from the second information; and
for each of the position identifiers, at least one priority bit containing a priority of the content word or biword associated with the position identifier, wherein a higher weight is assigned to word or biword matching at the position identifier with the priority bits set than at another position identifier without the priority bits set.

US Pat. No. 10,169,353

GROUPING DOCUMENTS BASED ON DOCUMENT CONCEPTS

United Services Automobil...

1. A computer-implemented method executed by one or more processors, the method comprising:receiving at least one electronic document;
identifying, by the one or more processors, one or more words, phrases, or patterns used within the electronic document, the one or more words, phrases, or patterns based on a lexicon;
mapping, by the one or more processors using a concept library, the one or more words, phrases, or patterns to a concept intended to be conveyed by the one or more words, phrases, or patterns according to the lexicon, wherein the concept library comprises two or more lexicons each having a plurality of context entries, each context entry comprising a first set of one or more words, phrases, or patterns from a first lexicon and a second set of one or more different words, phrases, or patterns from a second lexicon, wherein both the first set and second set are mapped to at least one common concept intended to be conveyed by the respective sets of one or more words, phrases, or patterns;
generating, by the one or more processors, concept data based on the mapping; and
storing the concept data associated with the electronic document in a concept index comprising concept data associated with at least one other electronic document that conveys respective concepts according to a different lexicon from the lexicon of the at least one electronic document, the concept index comprising, for each electronic document represented in the concept index, an array of values where each value indicates a presence or absence of a given concept within a respective document irrespective of a particular lexicon used to convey the concept within the document.

US Pat. No. 10,169,352

SYSTEM FOR PERFORMING PARALLEL FORENSIC ANALYSIS OF ELECTRONIC DATA AND METHOD THEREFOR

Stroz Friedberg, LLC, Ne...

1. A system for conducting a forensic analysis of electronic data duplicated from an electronic storage device, the electronic data comprising a plurality of files and information indicative of a location of each of the plurality of files in the electronic storage device, the system comprising:a controller operatively coupled to a plurality of processors, wherein the controller is configured to:
characterize the electronic data based, at least in part, on the plurality of files and the information indicative of the location of each of the plurality of files to obtain a characterization; and
distribute a plurality of segments of the electronic data to the plurality of processors based, at least in part, on the characterization, each of the plurality of segments corresponding to at least one of the plurality of processors; and
wherein each one of the plurality of processors is configured to process each corresponding one of the plurality of segments to identify at least one characteristic of each corresponding one of the plurality of segments.

US Pat. No. 10,169,351

MERGING DIRECTORY INFORMATION FROM A USER DIRECTORY TO A COMMON DIRECTORY

INTERNATIONAL BUSINESS MA...

1. A system for merging directory information from a user directory to a common directory, the system comprising:a processor; and
computer program code, communicatively coupled to the processor, the computer program code comprising;
an extracting engine to, based on a rule associated with contents of a user directory of a local database, extract a department indicator from the user directory;
a mapping engine to map the department indicator to a corresponding user record in a common directory of a registry database;
a marking engine to, based on the department indicator, mark the user record in the common directory with a department that corresponds to the contents from the user directory with a department for controlling access to that user record in the registry database;
an assigning engine to, based on the department, assign access controls to an administrator for controlling the access to that user record in the registry database; and
a permitting engine to, based on the access controls, permit the administrator to access the user record in the registry database;
wherein the mapping engine maps the department indicator to the corresponding user record in the common directory of the registry database by:
based on a source field name associated with the contents of the user directory of the local database, determining the user directory;
sending a key field value associated with the contents to a rule engine to determine the department;
matching, via the rule, a regular expression pattern with a value associated with the source field name to determine the department indicator; and
based on the department indicator, establishing the department for the marking of the user record in the common directory that corresponds to the contents from the user directory.

US Pat. No. 10,169,350

INFORMATION PROCESSOR, NON-TRANSITORY COMPUTER READABLE MEDIUM, AND INFORMATION PROCESSING METHOD

FUJI XEROX CO., LTD., To...

1. An information processor comprising a central processing unit and associated memory configured to function as:a dividing part that divides a series of data pieces identified by an identification information piece into a plurality of data pieces; and
a providing part that provides, based on the number of digits of a total number of the plurality of data pieces resulting from the division by the dividing part, each of the plurality of data pieces with a corresponding, different identification information piece, the corresponding identification information piece including a code having digits the number of which is equal to or larger than the number of digits of the total number of the plurality of data pieces and indicating an order of placement of the data piece in the series of data pieces,
wherein for at least one of the plurality of data pieces whose order of placement is a number having less than the number of digits of the total number of the plurality of data pieces, the code of the corresponding identification information piece provided by the providing part has digits the number of which is equal to or larger than the number of digits of the total number of the plurality of data pieces, and
wherein in response to an increase in the number of digits of the total number of the plurality of data pieces, the providing part changes the code of the corresponding identification information piece of each of the plurality of data pieces to have digits the number of which is equal to the increased number of digits of the total number of the plurality of data pieces.

US Pat. No. 10,169,349

LIBRARY INDEXING SYSTEM AND METHOD

1. A method for creating a collective index for a plurality of documents, comprising the steps of:converting each document in a plurality of documents to a document file in common standard format;
identifying objects of interest, wherein objects of interest are not documents or sections of documents in said plurality of documents;
creating a list of names for each identified object of interest;
creating a single unique named object identifier tag for each named object of interest, wherein the single unique named object identifier tag does not identify any documents or sections of said documents in said plurality of documents;
processing all of the document files in common standard format, wherein said processing comprises:
searching each document to identify information pertinent to any identified object of interest, where the information has a type;
marking, in each document, information pertinent to an identified named object of interest with a unique identifier tag, said unique identifier tag comprising a combination of a form of the unique named object identifier tag for the named object of interest, and the type of information identified;
adding a destination to the document for that unique identifier tag; and overlaying the marked information within each document with a button;
constructing a plurality of menu files with multiple category levels for said collective index, wherein each type of object of interest belongs to a low category level, and each object of interest corresponds to a button in a menu file; and
inserting code text files into the document files and the plurality of menu files, wherein each code text file corresponds to the at least one of identified objects of interest, and comprises pointers to locations within the plurality of document files with information pertinent to the at least one of identified objects of interest, wherein the code text files inserted into the plurality of menu files cause one or more sub-menus to open in a window when a user clicks on a menu button for the particular identified object of interest, wherein the sub-menus present information options available for the particular identified object of interest, and cause the document file to open to the location for the selected information option.

US Pat. No. 10,169,348

USING A FILE PATH TO DETERMINE FILE LOCALITY FOR APPLICATIONS

Red Hat, Inc., Raleigh, ...

1. A method comprising:identifying a path name and a volume identifier of a file that is stored in a file system associated with a plurality of storage servers, the file being associated with a system call from a map/reduce-based application;
mounting the file system via a mount-point by using the volume identifier;
determining an extended attribute request by converting the system call from the map/reduce-based application to an executable routine to be used by the file system;
sending, by a processing device, the extended attribute request to the mount-point, the extended attribute request comprising the path name to a server computer system to identify a physical location of the file at a storage server of the plurality of storage servers in the file system, wherein the file system comprises a virtual extended attribute that identifies the physical location of the file in view of a hash value associated with the path name in the request;
receiving a response from the server computer system indicating the physical location of the file at the storage server in the file system in view of the hash value associated with the path name in the request, the received response comprising a directory name that is associated with the physical location of the file in the file system;
creating a job request for the file in view of a closeness of the physical location of the file in the file system from the received response to a physical location of another storage server to operate on the file at the storage server in the file system in view of the job request; and
sending the job request to a master storage server to combine results of an operation on the file with additional results associated with an additional job request.

US Pat. No. 10,169,347

LAYER IDENTIFICATION AND DEPENDENCY ANALYSIS FOR MANAGEMENT OF IMAGES

International Business Ma...

1. A computer-implemented method, comprising:extracting multiple layer files from an input image, wherein said input image is selected from a containerization platform repository, and wherein said extracting is carried out by at least one computing device;
identifying one or more software components in each of the multiple extracted layer files, wherein said identifying is carried out by the at least one computing device, and wherein said identifying comprises a first technique comprising:
processing each word in each of the multiple extracted layer file names;
constructing a word cloud that measures a frequency of occurrence of each unique word across the multiple extracted layer file names; and
identifying a pre-determined number of most frequently used words across the multiple extracted layer file names as software components;
manipulating the input image based on said identifying and one or more user-defined parameters, wherein said manipulating comprises (i) selecting a sub-set of one or more of the multiple layer files for retention, (ii) removing a sub-set of one or more of the multiple layer files, and (iii) modifying one or more of the layer files selected for retention and/or inserting one or more new layer files in place of one or more of the removed layer files, wherein said manipulating is carried out by the at least one computing device; and
outputting a modified version of the input image subsequent to said manipulating, wherein said modified version of the input image includes the sub-set of one or more of the multiple layer files selected for retention and any new layer files inserted in place of one or more of the removed layer files, wherein said outputting is carried out by the at least one computing device;
wherein (i) said extracting, (ii) said identifying, (iii) said manipulating, and (iv) said outputting are carried out offline.

US Pat. No. 10,169,346

FILE MIGRATION IN A HIERARCHICAL STORAGE SYSTEM

International Business Ma...

1. A method, executed by at least one processor, the method comprising:receiving a migration request for a plurality of files;
determining a file size threshold for the plurality of files based on an average recall time, average transfer speed for migrating a file, and an average migration overhead time to transfer the file;
assigning files of the plurality of files that are smaller than the file size threshold to one or more small-file secondary storage devices;
assigning files of the plurality of files that are larger than the file size threshold to one or more large-file secondary storage devices;
and initiating migration of the plurality of files front one or more primary storage devices to the secondary storage devices to which they are assigned.

US Pat. No. 10,169,345

MOVING DATA FROM LINEAR TAPE FILE SYSTEM STORAGE TO CLOUD STORAGE

Quantum Corporation, San...

1. A non-transitory computer-readable storage medium storing computer-executable instructions that when executed by a computer cause the computer to perform a method, the method comprising:accessing a Linear Tape File System (LTFS)-based repository that stores data associated with a file system or an application;
copying a piece of electronic data from the LTFS-based repository, wherein the piece of electronic data is in a first form associated with a LTFS-based format;
producing a piece of converted electronic data from the piece of electronic data, where the piece of converted electronic data is in a second form associated with a cloud-based repository, wherein the second form is distinct from the first form;
providing the piece of converted electronic data to the cloud-based repository;
storing a first address at which the piece of electronic data can be retrieved from the LTFS-based repository using a first addressing scheme associated with the LTFS-based repository;
storing a second address at which the piece of converted electronic data can be retrieved from the cloud-based repository using a second addressing scheme associated with the cloud-based repository, wherein the second addressing scheme is distinct from the first addressing scheme;
establishing a mapping between the first address and the second address;
selectively satisfying a request by the file system or the application for the piece of electronic data from either the LTFS-based repository or the cloud-based repository until a changeover event is detected;
upon detecting the changeover event, satisfying a request by the file system or the application for the piece of electronic data from the cloud-based repository; and
providing the second address to the file system or the application upon detecting the changeover event and marking the piece of electronic data from the LTFS-based repository as read-only,
where the file system or application run on a different computer than the method,
where the method is transparent to the file system or the application,
where the method is performed independent of the file system or application, and
where the method continues until a selected amount of data is moved from the LTFS-based repository to the cloud-based repository.

US Pat. No. 10,169,344

DELETING FILES WRITTEN ON TAPE

International Business Ma...

1. A method, comprising:receiving a request to delete a file from an application;
identifying a position of data of the file to be deleted on a basis of meta-information stored in an index partition;
identifying a number of a data set including the data of the file and dummy records;
acquiring a first head position of the data set including a head record of the file to be deleted, wherein the tape apparatus is a linear tape file system (LTFS), wherein the tape includes one or more files and dummy data interposed between each of the one or more files;
acquiring a second head position of a data set including a head record of a file written immediately after the file to be deleted, wherein records within a particular data set are interleaved using an interleaving function, wherein a maximum length of records of the file is 1 MB, and a file size larger than 1 MB is divided into a plurality of records; and
overwriting, physically, the data set using the high frequency pattern by writing a high frequency pattern from the first head position to the second head position.

US Pat. No. 10,169,343

DEFERRING THE COST OF VIRTUAL STORAGE

Microsoft Technology Lice...

1. A virtual storage system, comprising:one or more processors: and
a memory configured to cause the virtual storage system to maintain a file data set in a virtual hosting layer, including being configured to at least;
execute a runtime activity on the file data set on a virtual execution layer using runtime format file representing the file data set optimized to perform the runtime activity, wherein the runtime format file omits file metadata from the file data set that is unnecessary to execute the runtime activity;
create a differencing snapshot for an interchange format file that represents the file data set and has an interchange file metadata set additional to the runtime format file allowing the file data set to be used on multiple platforms; and
execute an interchange activity to migrate a file data set between data storages using the interchange format file.

US Pat. No. 10,169,342

FILTERING DOCUMENT SEARCH RESULTS USING CONTEXTUAL METADATA

International Business Ma...

1. A computer-implemented method for filtering document search results, the computer-implemented method comprising:receiving contextual data comprising a facial movement associated with an active document, an image of a face of a user reading the active document, a location where the user read the active document, a timestamp indicating when the user read the active document; and a timestamp indicating when the user edited the active document, wherein the contextual data is based, at least in part, on physical contexts of the user, wherein the physical contexts include movement of hands, movement of eyes, posture of the user, motion of the user's body, location of the user, facial expressions, identities of people proximate the user, and environmental characteristics;
detecting an emotional response associated with the active document based on the contextual data, wherein the emotional response is detected based, at least in part, on the shape and position of the mouth, nose, eyebrows, and facial lines in the forehead in relation to one another;
generating a contextual metadata tag based on the contextual data and the detected response to the active document, the contextual metadata tag including a movement tag indicating a movement of a device while the active document was read by the user and a movement of the device while the active document was edited by the user;
receiving a query comprising a contextual keyword corresponding to the contextual metadata tag;
filtering search results received in response to the query based on the contextual metadata tag; and
displaying a list of the filtered search results.

US Pat. No. 10,169,341

INTEGRATION OF CONTENT AND RECORDS MANAGEMENT SYSTEMS

Alfresco Software, Inc., ...

1. A computer program product comprising a non-transitory machine-readable storage medium storing instructions the instructions, when executed by at least one programmable processor, cause the at least one programmable processor to perform operations comprising:causing a content object to undergo one or more modifications initiated by one or more users of a content management system, the content object comprising content and metadata of a document maintained by the content management system within a first file structure, the first file structure of the content management system providing a first level of access to the document for the one or more users of the content management system, the first level of access comprising an ability to edit the content object;
providing the first level of access to the document within the first file structure for the one or more users of the content management system;
detecting a declaration of the document as a record;
assigning a location for the content object within a file plan of a records management system in response to the detecting the declaration of the document as the record, the records management system capturing and preserving records based upon one or more records management standards;
moving the content object from the first file structure to the location in the file plan;
creating, in response to the moving, a record marker in the first file structure, the record marker identifying a navigation path from the first file structure to the location of the content object in the file plan;
providing, for the one or more users of the content management system and via the record marker, a second level of access to the content object at the location in the file plan, the second level of access being limited relative to the first level of access, the second level of access comprising a view permission for the document from within the first file structure via a user interface of the content management system, the second level of access not including the ability to edit the content object from the file plan of the records management system; and
sending a notification to a records manager regarding the declaration of the document as the record.

US Pat. No. 10,169,340

INFORMATION PROVIDING APPARATUS AND INFORMATION PROVIDING SYSTEM

FUJI XEROX CO., LTD., To...

1. An information providing apparatus comprising:a moving unit that causes the information providing apparatus to move toward a specified destination or along a predetermined route;
an obtaining unit that obtains information associated with a user located around a current position of the information providing apparatus in accordance with moving of the moving unit; and
a presenting unit that presents the information obtained by the obtaining unit,
wherein the obtaining unit also obtains non-associated information that is not associated with the user located around the current position, and the presenting unit presents the non-associated information together with the information associated with the user located around the current position in a mixed manner.

US Pat. No. 10,169,339

CONTEXT-SENSITIVE QUERY ENRICHMENT

Elwha LLC, Bellevue, WA ...

1. A system comprising:circuitry for establishing an association between a first interface device and a second interface device;
circuitry for generating recognition data based at least in part on position of one or more portions of a person relative to one or more object portions;
circuitry for obtaining a second parameter from the second interface device based at least in part upon the recognition data;
circuitry for obtaining a first parameter from a first search task initiated at the first interface device;
circuitry for causing the second interface device to display the first parameter from the first search task initiated at the first interface device responsive to the obtaining the second parameter from the second interface device; and
circuitry for triggering a search task including at least transmitting a search expression to a search engine as a real time response to detecting a component of the search expression in a component of a vocalization, including at least circuitry for recognizing at least one search term of the search expression within the component of the vocalization without awaiting a corroborating indication or other confirmatory indication from a user.

US Pat. No. 10,169,337

CONVERTING DATA INTO NATURAL LANGUAGE FORM

INTERNATIONAL BUSINESS MA...

1. A method implemented in a computer infrastructure, comprising:obtaining document data from a document;
applying a first keyword translation to the document data;
translating, using a translation engine, a product of the first keyword translation to a natural language form;
applying a second keyword translation to a product of the natural language form translation, wherein the translation engine is provided with programming for determining how much document data is required for making a successful determination of data types prior to a translation to the natural language form; and
training a natural language engine by consuming the product of the second keyword translation.

US Pat. No. 10,169,336

TRANSLATING STRUCTURED LANGUAGES TO NATURAL LANGUAGE USING DOMAIN-SPECIFIC ONTOLOGY

International Business Ma...

1. A computer-implemented method, comprising steps of:determining one or more similarities among multiple natural language query interpretations derived from an input query;
determining one or more differences among the multiple natural language query interpretations derived from the input query;
generating one or more natural language descriptions of each of the multiple natural language query interpretations based on analysis of (i) the one or more determined similarities, (ii) the one or more determined differences, and (iii) the input query;
producing, for each of the multiple natural language query interpretations, a natural language string that represents one or more unambiguous interpretations of the input query, wherein said producing comprises consolidating the generated natural language descriptions; and
outputting each of the produced natural language strings to a user;
wherein the steps are carried out by at least one computing device.

US Pat. No. 10,169,335

CONTEXTUAL VALIDATION OF SYNONYMS IN OTOLOGY DRIVEN NATURAL LANGUAGE PROCESSING

International Business Ma...

1. A method for providing contextual validation of synonyms in ontology driven natural language processing, the method comprising the computer-implemented steps of:receiving, via at least one computing device, a user input of electronic text structured as a linear sequence of symbols;
determining, via at least one computing device, based on the linear sequence of symbols, a token that identifies a linguistic unit of the electronic text, the linguistic unit comprising at least one of a word, a punctuation symbol, a number, or a letter;
structuring, via at least one computing device, the user input into a semantic model comprising a set of classes each containing a set of related permutations of the token, wherein the semantic model is stored as data in memory of the at least one computing device;
quantifying, via at least one computing device, a linear distance between the token and a contextual token within the user input, wherein the linear distance is a quantity of additional tokens in between the token and the contextual token;
comparing, via at least one computing device, the linear distance to a pre-specified linear distance limit;
designating, via at least one computing device, the token as a synonym of one of the set of related permutations based on a result of the comparison;
annotating, via at least one computing device, the token with a class from the set of classes corresponding to the one of the set of related permutations;
when, based on the comparing, the quantified linear distance is within the pre-specified linear distance limit to the number of words,
assigning a high confidence level to the annotation, and
validating the annotation based on the high confidence level,
wherein the validating the annotation comprises restructuring, via at least one computing device, the semantic model to include a knowledge structure containing the contextual token, the linear distance, the pre-specified linear distance limit, and the designation of the token as a synonym of the one of the set of related permutations; and
when, based on the comparing, the quantified linear distance is not within the pre-specified linear distance limit to the number of words, assigning a low confidence level to the annotation.

US Pat. No. 10,169,334

SYSTEMATIC TUNING OF TEXT ANALYTIC ANNOTATORS WITH SPECIALIZED INFORMATION

International Business Ma...

1. A computer-implemented method of tuning one or more text analytic annotators comprising:generating, via a processor, a data structure including domain information and one or more information extraction rules, wherein the domain information includes one or more enumerators associated with one or more data types defining respective information categories of the domain, one or more text forms associated with one or more of the enumerators representing forms of the enumerators appearing in text, and one or more context patterns associated with one or more of the text forms, wherein the one or more extraction rules are associated with the enumerators, and wherein the domain information is generic with respect to requirements of more than one organization;
tuning, via the processor, the one or more extraction rules to a specified set of unannotated documents with specialized information including domain specific terminology of a particular organization, wherein the tuning includes:
identifying one or more additional new context patterns within the set of unannotated documents for the enumerators of the generic domain information of the data structure in a first iteration through the set of unannotated documents, wherein the first iteration:
determines exact matches between tokens within the set of unannotated documents and the one or more text forms associated with the enumerators of the generic domain information;
identifies enumerators of the generic domain information in the set of unannotated documents in response to context patterns of tokens of exact matches within the set of unannotated documents matching context patterns associated with the enumerators of the generic domain information; and
extracts the new context patterns from the set of unannotated documents for enumerators of the specialized information in response to context patterns of tokens of exact matches within the set of unannotated documents not matching context patterns associated with the enumerators of the generic domain information;
identifying one or more additional new context patterns and new text forms within the set of unannotated documents for enumerators of the specialized information in a second iteration through the set of unannotated documents, wherein the second iteration:
determines partial matches between tokens within the set of unannotated documents and the one or more text forms associated with enumerators of the generic domain information, wherein the partial matches are based on matching n-grams having a length less than the tokens and text forms;
extracts the new context patterns for tokens of the partial matches within the set of unannotated documents; and
identifies the additional new context patterns and text forms in response to the extracted context patterns for the partial matches matching one of: the context patterns of the enumerators of the generic domain information and the context patterns of the specialized information from the first iteration;
updating the data structure with the additional new context patterns and text forms from the first and second iterations without user intervention to expand the generic domain information to cover the specialized information; and
analyzing the set of unannotated documents based on the updated data structure and generating one or more additional extraction rules based on the analysis;
configuring, via the processor, one or more text analytic annotators for the specialized information based at least on the additional extraction rules, identified enumerators of the generic domain information, and enumerators of the specialized information; and
processing documents with the specialized information via the configured text analytic annotators.

US Pat. No. 10,169,333

SYSTEM, METHOD, AND RECORDING MEDIUM FOR REGULAR RULE LEARNING

INTERNATIONAL BUSINESS MA...

1. A regular rule learning system, comprising:a processor; and
a memory, the memory storing instructions to cause the processor to execute:
an analyzing circuit configured to analyze a corpus of sentences to discover lexical features of the sentences and to find semantic relationships between sentence constituents that are responsible for specific senses of words in that sentence by describing the semantic relationships and grammatical relations that are actuated in the sentence,
wherein the lexical features are unknown prior to the analyzing circuit discovering the lexical features.

US Pat. No. 10,169,332

DATA ANALYSIS FOR AUTOMATED COUPLING OF SIMULATION MODELS

International Business Ma...

1. A method linking variables within disparate simulation models, the method comprising:extracting, with a distributed processor, a first variable description associated with a first variable within a simulation input data structure comprising input data that is to be read and operated upon by a first simulation model;
extracting, with the distributed processor, a plurality of variable descriptions within an output data structure comprising output data that has been operated upon and written by a second simulation model;
determining, with the distributed processor, character strings within an information corpus that are similar to the first variable description;
ranking, with the distributed processor, the character strings in order of confidence levels, wherein each confidence level indicates a degree of similarity between an associated character string and the first variable description;
determining, with the distributed processor, a particular variable description of the plurality of variable descriptions within the output data structure is equal to a character string, wherein the particular variable description is associated with a second variable; and
linking, with the distributed processor, the first variable to the second variable if the rank of the equal character string is greater than a confidence level threshold.

US Pat. No. 10,169,331

TEXT MINING FOR AUTOMATICALLY DETERMINING SEMANTIC RELATEDNESS

INTERNATIONAL BUSINESS MA...

1. A computer-implemented method, comprising:by a text mining server that autonomously determines semantic relatedness of a plurality of semantic concepts:
establishing a network connection to one or more social networking platform servers;
identifying, by programmatically navigating at least one application programming interface (API) of at least one social networking application hosted by the one or more social networking platform servers, multiple reference documents and multiple test documents published by the one or more social networking platform servers;
applying a first text mining analysis on the reference documents and extracting a non-redundant set of reference concepts from the reference documents;
for each reference concept of the set of reference concepts, computing a reference co-occurrence frequency (RCCF), the RCCF indicating the frequency of co-occurrence of the reference concept with all other reference concepts within the reference documents;
applying a second text mining analysis on the test documents and extracting a non-redundant set of test concepts, the test concepts comprising one or more new concepts that are not elements of the set of reference concepts and the test concepts comprising one or more of the reference concepts;
computing an extended co-occurrence matrix indicating the frequency of co-occurrence of each new concept and each reference concept with all other new concepts and reference concepts within the test documents;
for each of the new concepts, computing a new concept relatedness score (NCRS) as a function of the co-occurrences of the new concept in the extended co-occurrence matrix, the NCRS representing the semantic relatedness of the new concept to a totality of the reference concepts;
for each of the test documents, computing a document similarity score (DSS) by aggregating the NCRS of each new concept and the RCCF of each reference concept contained in the test document, the DSS representing the semantic relatedness of the test document to the totality of the reference concepts;
automatically identifying any of the test documents with a computed DSS below a DSS threshold value; and
one or more of marking, blocking and removing any identified test documents with the computed DSS below the DSS threshold value.

US Pat. No. 10,169,330

ANTICIPATORY SAMPLE ANALYSIS FOR APPLICATION MANAGEMENT

Accenture Global Solution...

1. A device, comprising:one or more processors to:
receive a plurality of first samples of textual content;
identify a plurality of clusters of the plurality of the first samples,
a cluster, of the plurality of clusters, to be identified based on semantic similarity of samples included in the cluster;
identify a pattern of occurrence based on the plurality of clusters,
the pattern of occurrence to identify two or more clusters, of the plurality of clusters, based on an order in which samples associated with the two or more clusters were generated or received;
receive one or more second samples of textual content;
determine that the one or more second samples are semantically similar to one or more corresponding clusters associated with the pattern of occurrence;
identify a predicted sample based on the pattern of occurrence and the one or more corresponding clusters; and
perform an action based on identifying the predicted sample,
the action including reconfiguring another device to mitigate or prevent an event associated with the predicted sample,
reconfiguration of the other device including a modification of at least one of:
 a performance of the other device,
 a utilization of processor resources, or
 downtime of the other device.

US Pat. No. 10,169,329

EXEMPLAR-BASED NATURAL LANGUAGE PROCESSING

Apple Inc., Cupertino, C...

1. A non-transitory computer-readable storage medium for natural language processing comprising computer-executable instructions for causing a processor to:receive a speech input representing a user request;
generate a first text phrase corresponding to the speech input;
determine, with respect to a semantic space, a plurality of semantic edit distances between the first text phrase and a plurality of exemplar text phrases, wherein each exemplar text phrase of the plurality of exemplar text phrases is associated with a respective predetermined intent of a plurality of predetermined intents;
determine a plurality of centroid distances between a centroid position of the first text phrase in the semantic space and a plurality of centroid positions of the plurality of exemplar text phrases in the semantic space;
determine a plurality of degrees of semantic similarity between the first text phrase and the plurality of exemplar text phrases, wherein each degree of semantic similarity of the plurality of degrees of semantic similarity is determined based on a linear combination of a respective semantic edit distance of the plurality of semantic edit distances and a respective centroid distance of the plurality of centroid distances;
identify, based on the plurality of degrees of semantic similarity, a first exemplar text phrase of the plurality of exemplar text phrases, wherein the first exemplar text phrase is most semantically similar to the first text phrase among the plurality of exemplar text phrases, and wherein the first exemplar text phrase is associated with a first predetermined intent of the plurality of predetermined intents;
determine, based on the identified first exemplar text phrase, a user intent corresponding to the first text phrase, wherein the determined user intent corresponds to the first predetermined intent; and
in accordance with the determined user intent, perform one or more tasks responsive to the user request.

US Pat. No. 10,169,328

POST-PROCESSING FOR IDENTIFYING NONSENSE PASSAGES IN A QUESTION ANSWERING SYSTEM

International Business Ma...

1. A method, in a data processing system, for identifying nonsense passages, the method comprising:annotating, by an annotator in a nonsense identification component within a natural language processing pipeline configured to execute in the data processing system, an input passage with linguistic features to form an annotated passage;
counting, by metric counters component in the nonsense identification component, a number of instances of each type of linguistic feature in the annotated passage to form a set of feature counts;
determining, by the metric counters component, a value for a metric based on the set of feature counts;
comparing, by a comparator component of the nonsense identification component, the value for the metric to a predetermined model threshold;
determining, by a filter component of the nonsense identification component, whether the input passage is a nonsense passage based on a result of the comparison;
responsive to the filter component determining the given evidence passage is a nonsense passage, sending, by the filter component of the nonsense identification component, the input passage to a semi-structured data pipeline configured to execute in the data processing system and preventing the input passage from proceeding in the natural language processing pipeline; and
responsive to the filter component not determining that the input passage is a nonsense passage, passing, by the filter component, the input passage to the natural language processing pipeline.

US Pat. No. 10,169,327

COGNITIVE REMINDER NOTIFICATION MECHANISMS FOR ANSWERS TO QUESTIONS

International Business Ma...

1. A method, in a data processing system comprising a processor and a memory that operate to implement a natural language processing system, the method comprising:generating, by the natural language processing system implemented by the data processing system, a result of processing a natural language query;
determining, by the data processing system, that at least one of the natural language query or the result comprises a temporal characteristic;
in response to determining that at least one of the natural language query or the result comprises a temporal characteristic, generating a reminder notification data structure having an associated scheduled reminder notification time for outputting a reminder notification of the result generated for the natural language query;
storing the reminder notification data structure in a data storage device; and
at a later time from a time that the reminder notification data structure was stored in the data storage device, in response to the later time being equal to or later than the scheduled reminder notification time, outputting a reminder notification to a client device associated with a user, wherein the reminder notification specifies the result generated for the natural language query and a historical listing that specifies a history of changes to the result occurring from a time that the result was originally generated for the natural language query and the scheduled reminder notification time, wherein the historical listing includes at least one change from the time that the result was originally generated for the natural language query and the scheduled reminder notification time.

US Pat. No. 10,169,326

COGNITIVE REMINDER NOTIFICATION MECHANISMS FOR ANSWERS TO QUESTIONS

International Business Ma...

1. A computer program product comprising a computer readable storage medium having a computer readable program stored therein, wherein the computer readable program, when executed on a computing device implementing a natural language processing system, causes the computing device to:generate, by the natural language processing system, a result of processing a natural language query;
determine that at least one of the natural language query or the result comprises a temporal characteristic;
generate, in response to determining that at least one of the natural language query or the result comprises a temporal characteristic, a reminder notification data structure having an associated scheduled reminder notification time for outputting a reminder notification of the result generated for the natural language query;
store the reminder notification data structure in a data storage device; and
output, at a later time from a time that the reminder notification data structure was stored in the data storage device, in response to the later time being equal to or later than the scheduled reminder notification time, a reminder notification to a client device associated with a user, wherein the reminder notification specifies the result generated for the natural language query and a historical listing that specifies a history of changes to the result occurring from a time that the result was originally generated for the natural language query and the scheduled reminder notification time, wherein the historical listing includes at least one change from the time that the result was originally generated for the natural language query and the scheduled reminder notification time.

US Pat. No. 10,169,325

SEGMENTING AND INTERPRETING A DOCUMENT, AND RELOCATING DOCUMENT FRAGMENTS TO CORRESPONDING SECTIONS

INTERNATIONAL BUSINESS MA...

13. A computer program product comprising a non-transitory computer-readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to:receive a first item and a second item;
determine that the first item is a fragment matching a lexicon;
place the fragment in a first section of a document, the first section selected based on the matching lexicon;
segment the document into multiple sections, wherein each of the multiple sections corresponds to a respective section type of multiple section types;
segment items in a first section of multiple sections of the document into multiple fragments, wherein the first section corresponds to a first section type;
determine a section type of each of the multiple fragments in the first section;
determine whether the multiple fragments include fragments that correspond to different section types and that are interspersed among each other in even proportions; and
based on the multiple fragments in the first section including fragments that correspond to different section types and that are interspersed among each other in even proportions:
determine that the fragments that correspond to different section types and that are interspersed among each other in even proportions do not belong in the first section;
generate a new section corresponding to a section type that corresponds to a section type that is different than the multiple section types; and
re-locate the fragments that correspond to different section types and that are interspersed among each other in even proportions to the new section.

US Pat. No. 10,169,324

UNIVERSAL LEXICAL ANALYZERS

ENTIT SOFTWARE LLC, Sunn...

1. A non-transitory machine readable medium storing machine readable instructions comprising:lexical analyzer instructions that, when executed, form a universal lexical analyzer that is to lexically analyze an input program by evaluating a function that maps an input variable comprising a tuple of lexemes to an output variable comprising a tuple of tokens based on input probability parameters, wherein the universal lexical analyzer is configurable for any programming language by inputting a set of probability parameters for the respective programming language as the input probability parameters of the function; and
training instructions that are to generate a set of probability parameters configured to identify tokens for any programming language by:
receiving training programs that are in the respective programming language, each comprising a tuple of lexemes with associated tokens, wherein the tuple identifies an associated one of the tokens for each of the lexemes, and
determining the set of probability parameters for the respective programming language based on the identified token for each of the lexemes in the tuple in each of the training programs that are in the respective programming language,
wherein the probability parameters include:
q-values, each of which is a probability corresponding to a last token of a token-sequence in view of preceding tokens in the token-sequence; and
e-values, each of which corresponds to a probability for each lexeme in view of an identified token.

US Pat. No. 10,169,323

DIAGNOSING AUTISM SPECTRUM DISORDER USING NATURAL LANGUAGE PROCESSING

International Business Ma...

1. A method for evaluating a textual conversation, comprising:generating a machine learning (ML) model using training data comprising a first plurality of training examples, each example being a text of a conversation labeled as exhibiting at least one characteristic of autism;
receiving text of an ongoing conversation between a plurality of participants;
annotating the text of the conversation using natural language processing;
identifying features in the conversation using the annotations;
evaluating the features using the ML model to determine a measure of probability that a first one of the plurality of participants in the conversation falls on the autism spectrum; and
based on the measure of probability, outputting for display, during the conversation, a notice indicating that the first participant has exhibited a characteristic of autism.

US Pat. No. 10,169,322

PERSONAL DICTIONARY

Dinky Labs, LLC, Bartlet...

1. A method for controlling a user device including a processor and a display, the display including a graphical user interface, the method comprising steps:receiving, at the processor, a request from a user to construct a word entry of a word, wherein the processor is in data communication with one or more non-transitory memory mediums;
retrieving, by the processor, a user profile of the user from a non-transitory memory medium, wherein the user profile includes the user's native language and age;
compiling, by the processor, a list of one or more definition databases according to the user's native language and age, wherein the list is stored in a partition of a non-transitory memory medium by the processor;
ranking, by the processor, definitions of the word provided by the definition databases according to the user's native language and age, wherein the definition databases include a first, a second, and a third definition database,
if the first definition database is appropriate for both the native language and the age of the user profile, the first definition database ranks first,
if the second definition database is appropriate for the native language but not the age of the user profile, the second definition database ranks second,
if the third definition database is appropriate for the age but not the native language of the user profile, the third definition database ranks third;
retrieving, by the processor, a top ranked definition of the word from its corresponding definition database;
formatting, by the processor, the definitions retrieved from the definition databases according to a resolution of the display of the user device; and
displaying, by the processor, the formatted definitions on the graphical user interface of the display.

US Pat. No. 10,169,321

BROWSER EXTENSION FOR FIELD DETECTION AND AUTOMATIC POPULATION

CAPITAL ONE SERVICES, LLC...

1. A browser extension system comprising:a communication device configured to communicate with a computing device executing a browser extension application;
a memory storing instructions; and
a processor configured to execute the instructions to perform operations comprising:
generating a regular expression configured to detect a plurality of fields in a web page, wherein the regular expression is a sequence of characters defining a search pattern and the web page includes a merchant-provided payment process, and wherein the payment process includes a message;
providing the regular expression to the browser extension application;
receiving, from the browser extension application, an indication of an unrecognized field in the web page based on an execution of the browser extension application by the computing device, the execution comprising using the regular expression to detect a transaction field in a web page;
in response to the received indication of the at least one unrecognized field, providing, via a pop-up notification, suggested transaction data to the browser extension application based on:
(1) transaction data not used to automatically populate a recognized transaction field, and
(2) a characteristic of the unrecognized field detected by the regular expression, the characteristic comprising a number of characters required to populate the field, and one or more types of characters required to populate the field;
receiving, from the browser extension application, an indication of a selection of the suggested transaction data to populate the unrecognized field;
generating an updated regular expression configured to detect the unrecognized field in the web page based on the selection of the suggested transaction data;
providing the updated regular expression to the browser extension application; and
receiving, from the browser extension application, an indication of an additional transaction field detected in the message.

US Pat. No. 10,169,320

ASSISTIVE TECHNOLOGY FOR THE VISUALLY IMPAIRED

Open Text Holdings, Inc.,...

1. A method, comprising:receiving a first document including a first plurality of regions having a first spatial order;
identifying the first plurality of regions in the first document;
identifying a first type of the first document;
selecting a first template for the first document based on the first type of the first document, wherein the first template is a reusable component that includes first computer executable instructions for tagging the first plurality of regions with information indicating a logical order of the first plurality of the regions to generate a second document for documents of the first type;
generating the second document by executing the instructions of the first template to tag at least a subset of the first plurality of regions with information indicating the logical order of the first plurality of the regions, the tagged information conforming to at least one accessibility standard;
receiving a third document including a second plurality of regions having a second spatial order;
identifying the second plurality of regions in the third document;
identifying a second type of the third document;
selecting a second template for the third document based on the type of the third document, wherein the second template is a reusable component that includes second computer executable instructions for tagging the second plurality of regions with information indicating the logical order of the second plurality of the regions to generate a fourth document for documents of the second type; and
generating the fourth document by executing the instructions the second template to tag at least a subset of the second plurality of regions with information indicating the logical order of the second plurality of the regions, the tagged information conforming to the at least one accessibility standard.

US Pat. No. 10,169,319

SYSTEM, METHOD AND COMPUTER PROGRAM PRODUCT FOR IMPROVING DIALOG SERVICE QUALITY VIA USER FEEDBACK

INTERNATIONAL BUSINESS MA...

1. A computer-implemented dialog performance improvement method, the method comprising:computing a plurality of question classes and a confidence score for each of the question classes for a language input of a user;
comparing the confidence score to an upper threshold and a lower threshold for each of the question classes to determine which of at least one action to perform;
receiving a language feedback from the user for the performed action; and
adjusting at least one of the upper threshold and the lower threshold based on the language feedback from the user,
wherein the at least one action to perform includes a different action based on the confidence score being above, below, or in between the upper threshold and the lower threshold,
wherein, if the confidence score is between the upper threshold and the lower threshold, querying the user for a second language feedback, and decreasing the upper threshold to produce an updated upper threshold if the second language feedback includes a positive feedback or increasing the lower threshold to produce an updated lower threshold if the second language feedback includes a negative feedback, thereby to refine a distance between the upper threshold and the lower threshold in order to increase an accuracy of an answer to the plurality of question classes, and
wherein a confidence score of a next language input of the user is compared with the updated upper threshold or the updated lower threshold to determine which of the at least one action to perform.

US Pat. No. 10,169,318

FILTER AND SORT BY FORMAT

Microsoft Technology Lice...

1. A method executable on a computer system for organizing data cells, the computer system having a graphical user interface including a display device and one or more user interface selection devices, the method comprising:providing a sheet comprising a plurality of data cells, comprising:
at least a first data cell associated with a first format;
at least a second data cell associated with a second format; and
at least a third data cell associated with a third format;
receiving a selection of data cells within the plurality of data cells, wherein the selected data cells comprise at least the first data cell and the second data cell but not the third data cell, and wherein the selected data cells are not associated with the third format;
analyzing the selected data cells to identify one or more formats associated with the selected data cells, wherein analyzing the selected data cells includes identifying the first format and the second format but not the third format;
providing a menu, wherein the menu includes options for organizing the selected data cells, and wherein the options include the first format and the second format but not the third format;
organizing the selected data cells based on the first format;
displaying the organized data cells, including displaying at least the first data cell having the first format and at least the second data cell having the second format; and
simultaneously displaying at least the third data cell associated with the third format.

US Pat. No. 10,169,317

RENDERING COMMON CELL FORMATTING FOR ADJACENT CELLS

Apple Inc., Cupertino, C...

1. One or more non-transitory, tangible machine-readable media comprising instructions to:identify a set of adjacent cells in a table of cells that have at least one border edge in common with another cell in the set of adjacent cells and at least one type of cell formatting in common, wherein the at least one type of cell formatting comprises a fill pattern having a particular shape;
identify a contiguous border around the set of adjacent cells;
apply the fill pattern contiguously to an area inside the contiguous border; and
render on a display the set of adjacent cells in the table of cells with the cell formatting applied contiguously within the contiguous border, rendering the at least one type of cell formatting as a single entity instead of individually for each cell, such that the cell formatting is automatically rendered on the display to appear seamless between each cell in the set of adjacent cells by displaying the cell formatting without cell borders within the contiguous border.

US Pat. No. 10,169,316

METHOD AND SYSTEM TO CONVERT DOCUMENT SOURCE DATA TO XML VIA ANNOTATION

INTERNATIONAL BUSINESS MA...

1. A computer-implemented method comprising:providing a defined set of XML tags to a user for annotating a document;
receiving, by one or more computing systems and from the user, the document that includes source data and one or more annotations by the user regarding a subset of the source data, wherein the one or more annotations are selected from the defined set of XML tags and wherein each of the one or more annotations describe and delineate boundaries of the subset of the source data;
parsing, by the one or more computing systems, the document based on the one or more annotations, wherein parsing the document includes:
generating, based at least in part on the one or more annotations, one or more data structures corresponding to the subset of the source data; and
constructing, based at least in part on mapping of the one or more data structures, a target XML document that consists of information extracted from the subset of the source data, wherein the subset includes multiple distinct subsets of the source data, and wherein at least one of the distinct subsets includes a data table having a first number of columns that is distinct from a second number of columns included in a data table associated with at least one other of the distinct subsets.

US Pat. No. 10,169,315

REMOVING PERSONAL INFORMATION FROM TEXT USING A NEURAL NETWORK

ASAPP, INC., New York, N...

1. A computer-implemented method for removing personal information from text using a neural network, the method comprising:obtaining the neural network, wherein the neural network is configured to process the text and select a label from a plurality of possible labels for each word of the text, wherein each label corresponds to a class of words, and wherein at least one label corresponds to a class of words to be removed from the text;
receiving the text;
obtaining a word embedding for each word of the text, where a word embedding represents a word in a vector space;
computing a context vector for each word of the text by processing the word embeddings with a first layer of the neural network, where a context vector for a given word includes information about words before or after the given word;
computing label scores for each word of the text by processing each of the context vectors with a second layer of the neural network, wherein each label score indicates a match between a word and a class of words;
selecting a label for each word of the text by processing the label scores with a third layer of the neural network; and
generating redacted text by replacing a first word of the text with a first label corresponding to the first word.

US Pat. No. 10,169,314

SYSTEM AND METHOD FOR MODIFYING WEB CONTENT

1. A web server for modifying web content, comprising:a network interface configured to receive, via a network, a body of existing digital text web content from a tag that is embedded within and hosted by a web page having the body of digital text stored therein; and
a processor configured to
identify at least one keyword included within the body of the existing digital text,
determine supplemental digital text web content from a web page of a different website having content to add to the body of the existing digital text web content based on the identified at least one keyword, and
generate additional text to add to the body of the existing digital text web content, the generating comprising retrieving a string of additional words which include empty data fields interspersed therein, and filling-in the empty data fields with auto-detected keywords from the supplemental digital text web content of the web page of the different website to generate a filled-in string of words that comprises a description based on a position between the beginning and the end of the body of the existing digital text web content where the filled-in string of words are to be embedded,
wherein the network interface is further configured to transmit the filled-in string of words to the tag embedded within and hosted by the web page thereby integrating the filled-in string of words into the body of the existing digital text stored within the web page without removing text content from the body of the existing digital text web content.

US Pat. No. 10,169,313

IN-CONTEXT EDITING OF TEXT FOR ELEMENTS OF A GRAPHICAL USER INTERFACE

SAP SE, Walldorf (DE)

1. A non-transitory computer-readable medium having stored thereon computer-executable instructions for causing a computer system, when programmed thereby, to perform:receiving user input specifying a graphical user interface (“GUI”);
determining multiple GUI elements associated with the GUI;
retrieving code defining the multiple GUI elements, wherein, for at least a portion of the multiple GUI elements, the code defines multiple textual content items to be displayed in association with a respective GUI element;
rendering a display divided into a first, shell portion, and a second, editing portion, wherein the first and second portions are displayed such that GUI elements of the multiple GUI elements displayed in the first portion do not overlap or obscure, and are not overlapped or obscured by, GUI elements of the multiple GUI elements displayed in the second portion;
rendering for display the GUI in the first portion of the display, the GUI comprising the multiple GUI elements, based at least in part on the retrieved code, at least a portion of the multiple GUI elements being operable by a user;
concurrently rendering for display in the second portion of the display a first textual content item and at least a second textual content item associated with at least one GUI element, at least one of the first textual content item and the at least a second textual content item being concurrently displayed in the first portion of the display;
receiving user input from the user in the second portion of the display for the first textual content item of the at least one GUI element;
based at least in part on the user input, updating at least some of the text of the first textual content item specified by the at least one GUI element in the displayed GUI; and
updating the code defining the at least one GUI element with the updated text, wherein the updated text is displayed when the at least one GUI element is rendered in another display.

US Pat. No. 10,169,312

SYSTEM AND METHOD IN A SOCIAL NETWORKING SYSTEM FOR DISPLAYING UPDATES IN AN INFORMATION FEED

salesforce.com, inc., Sa...

1. A method of providing feed information from a database system associated with a social networking system, the method comprising:calculating, using the database system, for a plurality of information sources that provide updates to an information feed for a first user of a social networking system, an affinity score for each information source, the affinity score for each information source calculated based on interaction factors between the first user and the information source;
converting, using the database system, each affinity score to a transparency value;
assigning to each information source, by the database system, the transparency value that was converted from the affinity score calculated for the information source;
generating, using the database system, the information feed of the social networking system for the first user, the information feed including updates from the information sources;
sending to a web browser operated by the first user, by a database server in the database system, the information feed and the transparency value assigned to each information source; and
instructing, by the database server, the web browser to display each update at a transparency level that corresponds to the transparency value assigned to the information source that provided the update.

US Pat. No. 10,169,311

WORKFLOW SYSTEM AND METHOD FOR CREATING, DISTRIBUTING AND PUBLISHING CONTENT

Inkling Systems, Inc., S...

1. A method for publishing content updates for electronic content works, said works instantiated as a plurality of execution-environment-specific versions of the electronic content work on a plurality of end-user devices, each end-user device executing one or more software applications that provide respective execution environments for the plurality of end-user-device-execution-environment-specific versions of the electronic content work, the method comprising:receiving, at a content editor graphical user interface, content updates provided by an author, the graphical user interface being a component of an integration component of a pipelined publishing system;
integrating the content updates with an end-user-device-execution-environment-independent version of the electronic content work and storing an updated version of the end-user-device-execution-environment-independent version of the electronic content work in a storage device accessible to the pipelined publishing system;
collecting content elements associated with the updated end-user-device-execution-environment-independent version of the electronic content work, and building end-user-device-execution-environment-specific versions thereof for one or more of the plurality of end-user-device-execution environments; and
publishing the end-user-device-execution-environment-specific versions to end-user devices having a prior version of an end-user-device-execution-environment-specific version of the electronic content work stored thereon.

US Pat. No. 10,169,310

RICH TEXT HANDLING FOR A WEB APPLICATION

INTERNATIONAL BUSINESS MA...

1. A computer program product comprising a computer readable hardware storage memory device having readable program code embodied in the hardware storage memory device, the computer program product includes at least one component, the at least one component executed by a processor to:initialize a dictionary containing words;
create at least one signature for each dictionary word;
add each dictionary word to at least one list keyed by each of the at least one signatures for each dictionary word;
determine that a word is misspelled by checking the dictionary for the misspelled word resulting in a null value, the checking the dictionary comprising determining whether the misspelled word is present in the at least one list for a primary signature of the misspelled word, and when the misspelled word is not present in the at least one list, then the misspelled word is not spelled correctly resulting in the null value;
create substitution list for the misspelled word, when the misspelled word is not spelled correctly, which includes:
creating at least one signature associated with the misspelled word;
finding all the dictionary words in the at least one list keyed by the at least one signature associated with the misspelled word; and
selecting best matches to the misspelled word;
provide from the selected best matches at least one replacement word for the misspelled word in the documents having rich text,
wherein the dictionary is initialized from wordlists and then instantiated and serialized as a serialized hashtable,
the serialized hashtable of the dictionary comprises property files in Java code for a dictionary class,
the dictionary is stored on a server side in a hardware server memory for fast retrieval, and
the at least one component is executed in a servlet environment which includes server-side Java programs that are loaded and run within a framework of a web server.

US Pat. No. 10,169,309

GENERATION OF COMBINED DOCUMENTS FROM CONTENT AND LAYOUT DOCUMENTS BASED ON SEMANTICALLY NEUTRAL ELEMENTS

International Business Ma...

1. A method for managing markup documents each having a definition conforming to a pre-defined specification, the method comprising:receiving, by a software application executing on a web server, a request to access a web site hosted on the web server;
dispatching, by the software application, the request to a web application executing on the web server;
retrieving, by the web application, a definition of a content markup document from a web page repository that maintains web pages for the web site, the definition of the content markup document comprising a set of one or more content portions each enclosed within a content element of semantically neutral type and having a corresponding content identifier;
returning, by the web application, the definition of the content markup document to a combiner application executing on the web server;
retrieving, by the combiner application interacting with the web application, a definition of a layout markup document, the definition of the layout markup document comprising a set of one or more layout elements of semantically neutral type each having a corresponding layout identifier;
generating, by the combiner application, a definition of a combined markup document from the definition of the layout markup document and the definition of the content markup document, wherein generating the definition of the combined markup document comprises inserting the content portion enclosed within each content element of the content markup document into the definition of the layout markup document in correspondence to each layout element with the corresponding layout identifier matching the corresponding content identifier of the content element;
returning, by the combiner application, the definition of the combined markup document to the software application;
wherein each content element comprises a start metadata element for a start thereof and having a first attribute with a pre-defined start value and a second attribute whose value defines the content identifier, and an end metadata element for an end thereof and having a second attribute with a pre-defined end value, and wherein each layout element is a metadata element having a third attribute with a pre-defined layout value and a fourth attribute whose value defines the layout identifier;
determining the layout elements comprised in the definition of the layout markup document; and
storing an indication of the layout elements, wherein the step of generating the definition of the combined markup document comprises:
retrieving the stored indication of the layout elements; and
for the retrieved stored indication of each layout element of the layout elements, searching for each content element in the content markup document with the corresponding content identifier that matches the corresponding layout identifier of the layout element;
updating a placeholder repository comprising the indication of the layout elements if the definition of the layout markup document has been updated since a last use thereof, wherein updating the placeholder repository comprises:
scanning the layout markup document to search for potential placeholders; and
responsive to finding a placeholder in the layout markup document, adding a corresponding layout element to an entry for the layout markup document maintained in the placeholder repository;
wherein the definition of the layout markup document and the definition of the content markup document each comprise a header and a body, and wherein metadata elements are used to enclose the content portions in the header of the content page, and to define placeholders in the header of the layout page.

US Pat. No. 10,169,308

METHOD AND SYSTEM FOR CREATING AN ONLINE STORE

GOOGLE LLC, Mountain Vie...

1. A computer-implemented method to create online stores, comprising:receiving, by one or more computing systems, a request from a user via a first client device to generate an online store, the online store comprising a purchasing interface;
receiving, by the one or more computing systems and subsequent to receiving the request, information from the user via the first client device regarding: one or more products the user intends to offer for sale in the online store, and customization of the online store;
generating, by the one or more computing systems, computer-executable instructions that provide the online store according to: the received request, the received information regarding customization, and the received information regarding one or more products;
packaging, by the one or more computing systems, the generated computer-executable instructions as a web gadget, the generated computer-executable instructions comprising instructions presenting the purchasing interface of the online store on a customer client device;
transmitting, by the one or more computing systems, to the user via the first client device, the web gadget; and
embedding, by the first client device, the transmitted web gadget in a web site of the user.

US Pat. No. 10,169,307

METHOD AND SYSTEM FOR THE USE OF ADJUSTMENT HANDLES TO FACILITATE DYNAMIC LAYOUT EDITING

Wix.com Ltd., Tel Aviv (...

1. A website building system comprising:a database to store elements of a website, wherein a plurality of said elements have associated dynamic layout rules which define the relationships between one website element and at least one other secondary website element and wherein each element of said plurality of elements has at least one handle set, said set comprising at least first and second smart handles having different visual attributes;
a dynamic layout editor to provide at least one of said website elements being edited with said at least one handle set during an editing session, said first smart handle to not implement an associated dynamic layout rule implemented by said second smart handle;
a handle module to receive an event triggered by changes made to said at least one website element;
an updater to update said at least one website element according to said event, handle set, handle type and associated dynamic layout rules when not bypassed by said first smart handle and to display said at least one updated website element during said editing session; and
a processor and a memory unit, said processor to embody said dynamic layout editor, said handle module and said updater.

US Pat. No. 10,169,306

ENHANCED FAVORITES SERVICE FOR WEB BROWSERS AND WEB APPLICATIONS

Oath Inc., Dulles, VA (U...

1. A computer-implemented method for providing persistent access to a data feed listing in a web page, the method comprising the following operations performed by at least one processor:displaying, on a user device, a window of a web browser;
displaying, in the window of the web browser, a list linking to one or more feed-enabled pages;
receiving, via the user device, input specifying a user operation associated with at least one of the one or more feed enabled pages;
providing, to at least one server, data associated with the user operation;
caching, by the at least one server, the data associated with the user operation;
analyzing, by the at least one server, the data associated with the user operation for URL information;
matching, by the at least one server, the URL information with taxonomy path data in a database; and
in response to the user operation associated with at least one of the one or more feed-enabled pages, displaying a tearoff object configured to automatically provide updated feed information in a persistent window separate from the window of the web browser.

US Pat. No. 10,169,305

MARKING COMPARISON FOR SIMILAR DOCUMENTS

ABBYY Development LLC, M...

1. A method comprising:receiving, by a processing device, a target document comprising text content;
determining a set of similar documents using an index of stored documents, wherein the set of similar documents are similar to the target document;
selecting a first similar document from the set of similar documents, wherein the first similar document is most similar to the target document;
determining one or more portions of text content in the first similar document that are different from respective one or more portions of text content in the target document;
determining a first location of a first marking within the first similar document, wherein the first marking is associated with a first portion of the one or more different portions of the text content in the first similar document;
determining, by the processing device, a projected marking for the target document in view of one or more differences between the first portion of the text content in the first similar document and a respective portion of the text content in the target document, wherein the projected marking corresponds to the first marking within the first similar document; and
storing the projected marking for the target document.

US Pat. No. 10,169,304

PROVIDING DIFFERENT FONT HINTS BASED ON DEVICE, TEXT AND FONT CONTEXT

Amazon Technologies, Inc....

1. A method for a user device, the method comprising:receiving, at the user device, an electronic document comprising text in a first font of a plurality of fonts and a hint tag set comprising a suggested order of hint types for the first font, wherein a first hint type is arranged in the suggested order according to a corresponding quality score for the first hint type, the quality score indicating how closely characters from a generated simulated presentation of the text match a predefined presentation of the characters;
determining, by a processing device, a hint type for the first font from the suggested order of hint types and according to a capability of the user device; and
utilizing the hint type for a presentation of the text of the electronic document.

US Pat. No. 10,169,303

MANAGEMENT SYSTEM FOR MANAGING INFORMATION SYSTEM

Hitachi, Ltd., Tokyo (JP...

1. A non-transitory computer readable medium storing a management program causing at least one computer, coupled to an information system including a plurality of elements of a plurality of types, to execute acts comprising:(I) detecting the plurality of elements by collecting configuration information from the information system including the plurality of elements of the plurality of types;
(II) selecting a plurality of display target types from among the plurality of types;
(III) receiving a designation of one of the display target types serving as a key type for aggregated display from among the display target types; and
(IV) displaying information on the plurality of elements according to a horizontal relation view (HRV) format which is a multi-column display format having a plurality of display target columns corresponding to the respective display target types,
wherein (IV) displaying the information according to the HRV format includes:
(A1) selecting a plurality of key elements belonging to the key type;
(A2) displaying a plurality of key objects each being an object indicating information of the plurality of key elements selected in (A1), in a key column corresponding to the key type; and
(A3) for each key object and the display target type other than the key type:
(A3a) calculating aggregation information of a non-key element which belongs to the display target type and is related to the key element selected in (A1); and
(A3b) displaying an aggregation object which is an object indicating the aggregation information calculated in (A3a), so that at least a portion of the aggregation object is included in an area in which the display target column corresponding to the display target type crosses an area in which the key object displayed in (A2) is extended in a horizontal direction;
wherein the key column of key objects and multiple display target columns of aggregation objects are displayed; and
wherein in each display target column, for any given row, one or more non-key elements corresponding to the aggregation object in the given row are related to the key element represented by the key object on the same given row as the aggregation object.

US Pat. No. 10,169,302

METHOD AND SYSTEM FOR PAGE DISPLAY, SERVER-END DEVICE, CLIENT DEVICE AND STORAGE MEDIUM

TENCENT TECHNOLOGY (SHENZ...

1. A method for page display, wherein the method is operable in a server-end device and comprises:obtaining a first page content corresponding to a page to be displayed at a client device;
allocating a page identity information to the first page content, wherein the page identity information has a one-to-one correspondence relationship with the first page content, comprising:
obtaining a page identity information category corresponding to the first page content, the page identity information category is divided as size ranges, colors and background brightness of the page;
obtaining a current value of a visual business to customer tag (vb2ctag) corresponding to the first page content based on the page identity information category, wherein the vb2ctag is a 5-digit number representing different page identity information; and
increasing the current value of the vb2ctag by one as the page identity information of the first page content;
generating a first page representation information from the first page content and the page identity information allocated to the first page content, and storing the generated first page representation information in the server-end device;
generating page invoking information from the page identity information, wherein the page invoking information contains the page identity information and is used to invoke the first page representation information;
obtaining a second page representation information; and
obtaining a second page content and the page identity information corresponding to the second page content from the second page representation information,
wherein a process of obtaining the second page content and the page identity information from the second page representation information is inverse to a process of generating the first page representation information from the first page content and the page identity information, and
the first page content and the second page content correspond to the same page identity information.

US Pat. No. 10,169,301

INTEGRATED DOCUMENT EDITOR

8. The computing device according to claim 6 wherein said region is further defined based on at least one of said plurality of document locations as represented on the touch screen being within said region.

US Pat. No. 10,169,300

ADVANCED ZERO-KNOWLEDGE DOCUMENT PROCESSING AND SYNCHRONIZATION

Entefy Inc., Palo Alto, ...

8. A digital end-user device, comprising:a network interface;
a user interface;
a display element;
memory operatively coupled to the network interface, the user interface and the display element; and
one or more processors operatively coupled to the network interface, the user interface, the display element and the memory, the one or more processors configured to execute instructions stored in the memory to cause the digital end-user device to:
request, from a network-based server system and through the network interface, a converted document, wherein the converted document includes a plaintext portion and a cyphertext portion, the plaintext portion comprising a plaintext structural element, the plaintext structural element having a token, the cyphertext portion comprising the token and a corresponding cyphertext;
receive, through the network interface, the plaintext portion and an authorization request from the network-based server system in response to the request;
send, through the network interface, authorization credentials to the network-based server system in response to the authorization request;
receive, through the network interface, the cyphertext portion from the network-based server system in response to the authorization credentials;
decrypt the cyphertext to generate content;
identify a location in the plaintext portion based on the cyphertext's corresponding token;
replace the token in the plaintext portion with the content; and
display the converted document based on the plaintext structural element and the content.

US Pat. No. 10,169,299

ANALYZING DOCUMENT CONTENT AND GENERATING AN APPENDIX

International Business Ma...

1. A method for generating an appendix from document content comprising:analyzing a document to identify a structure of the document;
in response to identifying the structure of the document, extracting semantic relationships, wherein the extracting semantic relationships further comprises:
extracting a semantic relationship from each identified sentence using example statistical modeling, wherein the semantic relationship comprises a subject, a predicate, and an object;
responsive to extracting and identifying the semantic relationship, applying statistical distribution analysis to record a position where the subject and the object appear in the document;
identifying and eliminating semantic relationships that are trivial relations, wherein trivial relations are semantic relationships that do not have content relevant to a main topic of the document, and wherein the trivial relations are at least one of:
the subject being evenly distributed within a section of the document, wherein a section is selected from a group consisting of a sentence, a paragraph, a page, and a chapter; and
the object being evenly distributed within the section of the document; and
storing a relation as a candidate appendix topic in persistent storage for further evaluation for inclusion in the appendix, wherein the relation is a semantic relationship that is either the main topic of the document or does not have a subject or an object evenly distributed in the document;
in response to extracting semantic relationships, determining candidate appendix topics based on a degree of interdependency;
in response to determining candidate appendix topics, executing a web mining operation, wherein the web mining operation calculates a measure of relevance of the mined web page to the determined candidate appendix topics, and wherein the determining further comprises:
detecting at least one interdependency between two or more relations stored in the persistent storage;
graphing the at least one interdependency between the two or more relations, wherein the two or more relations comprise nodes of a graph, and the at least one interdependency comprise an edge of the graph; and
identifying candidate appendix topics, based on a degree of relatedness between the nodes of the graph, centrality, between-ness, and connected-ness;
storing the identified candidate appendix topics in persistent storage; and
formatting the appendix based on the mined intermediate results.

US Pat. No. 10,169,298

NATIVE TENSOR PROCESSOR, USING OUTER PRODUCT UNIT

NOVUMIND LIMITED, Grand ...

1. An outer product unit (OPU) that calculates a matrix multiplication A(i,k)×B(k,j)=C(i,j) by a sum of outer products, where i=1 . . . I and j=1 . . . J are free indices and k=1 . . . K is a contraction index, the OPU comprising:an input for receiving elements of the matrices A and B;
a plurality of atomic processing elements (APEs) that (a) calculate outer products ?×? where ? is an ?×1 column vector and ? is a 1×? row vector, and (b) accumulate the outer products ?×? over the contraction index k; wherein ?>1 and ?>1 and the APE performs ?×? scalar multiplications;
a distribution section coupling the input to the plurality of APEs, the distribution section partitioning the A×B matrix multiplication with respect to the free indices i,j into a plurality of ?×? outer products and directing the ?×? outer products to the APEs;
an output for transmitting elements of the product C; and
a collection section coupling the APEs to the output, the collection section merging the accumulated outer products calculated by the APEs into the product C;
wherein the outer product unit is implemented on a single integrated circuit.

US Pat. No. 10,169,297

RESISTIVE MEMORY ARRAYS FOR PERFORMING MULTIPLY-ACCUMULATE OPERATIONS

HEWLETT PACKARD ENTERPRIS...

1. A resistive memory array comprising:a number of resistive memory elements to receive a common-valued read signal, in which a resistance of a resistive memory element defines a value within a matrix;
a number of multiplication engines to perform a multiply operation by:
receiving a memory element output from a corresponding resistive memory element;
receiving an input signal; and
generating a multiplication output based on a received memory element output and a received input signal;
a conditioning resistor to condition the multiplication outputs; and
an accumulation engine to sum the multiplication outputs from the number of multiplication engines, in which the summed multiplication outputs represent a multiplication of the matrix and a number of input signals.

US Pat. No. 10,169,296

DISTRIBUTED MATRIX MULTIPLICATION FOR NEURAL NETWORKS

Intel Corporation, Santa...

1. An apparatus, comprising:a plurality of memory elements to store matrix data, wherein the matrix data comprises a plurality of input matrices; and
a plurality of processing elements to perform a matrix operation associated with the plurality of input matrices, wherein the plurality of processing elements is configured to:
partition the plurality of input matrices into a plurality of input partitions, wherein the plurality of input matrices is partitioned based on a number of available processing elements;
distribute the plurality of input partitions among the plurality of processing elements, wherein each input partition is distributed to a particular processing element of the plurality of processing elements;
perform a plurality of partial matrix operations using the plurality of processing elements;
transmit partial matrix data between the plurality of processing elements while performing the plurality of partial matrix operations; and
determine a result of the matrix operation based on the plurality of partial matrix operations.

US Pat. No. 10,169,295

CONVOLUTION OPERATION DEVICE AND METHOD

KNERON, INC., San Diego,...

1. A convolution operation device, comprising:a plurality of convolution operation modules, wherein each of the convolution operation modules has a plurality of convolution units, and each of the convolution units is configured to output a plurality of convolution results; and
an interleaving sum unit coupled to the convolution units of the convolution operation modules and configured to sum the convolution results of the convolution operation modules by interleaving so as to output sum results,
wherein the convolution units and the interleaving sum unit are optionally operated in a low-scale convolution mode or a high-scale convolution mode;
wherein, in the low-scale convolution mode, each of the convolution units is configured to output the convolution results, and the interleaving sum unit is configured to sum the convolution results of the convolution operation modules by interleaving so as to output sum results; and
wherein, in the high-scale convolution mode, each of the convolution units is configured to output a plurality of high-scale convolution results, and the interleaving sum unit outputs the high-scale convolution results.

US Pat. No. 10,169,294

CONFIGURABLE FFT ARCHITECTURE

Imagination Technologies ...

1. A device for performing a Fast Fourier Transform (FFT) on an input dataset, the device comprising:an FFT pipeline comprising a first stage configured to receive the input dataset, a plurality of intermediate stages and a final stage, each stage comprising: a stage input; a computational element; and a stage output;
a controller configured to select a size for the FFT;
a multiplexer configured to: receive data output from one of the intermediate stages and data output from the final stage; select one of the received outputs in dependence on the selected FFT size; and output said selection as a result of the FFT on the input dataset;
a complex multiplier configured to perform multiplication of data at a point in the FFT pipeline, wherein the controller is further configured to select a multiplication factor for performing the multiplication by the complex multiplier in dependence on the FFT size; and
a constant multiplier configured to perform multiplication of data at a point in the FFT pipeline, wherein the controller is further configured to select a value from a precomputed set of values for performing the multiplication by the constant multiplier, the value being selected in dependence on the FFT size.

US Pat. No. 10,169,292

STRING VARIABLES REPRSENTATION IN SOLVERS

International Business Ma...

1. A method for solving a Constraint Satisfaction Problem (CSP) having a constraint associated with at least one string variable, comprising:defining at least one string variable using a string domain data structure representing a domain of string values for string variables, wherein the string data structure represents the domain of string values as a Deterministic Finite Automaton (DFA), wherein the DFA comprising nodes and edges, wherein the nodes comprise an initial node and one or more accepting nodes, wherein the DFA has no back loops having size greater than 1, wherein the edges of the DFA represent one or more characters, wherein the domain of string values comprises each string for which a path in the DFA, according to characters in the edges of the path, exists beginning in the initial node and ending in one of the one or more accepting nodes;
defining a constraint for the CSP, wherein the constraint involves the at least one variable and wherein the constraint is to be complied with by a solution to the CSP;
invoking a CSP solver adapted to determine a solution to variables including the at least one string variable while complying with the constraint, and to invoke operations performed over the domain of the at least one string variable, wherein the CSP solver is configured to perform at least one of the following:
value propagation into the domain of string values, wherein the value propagation reduces a size of the domain; and
value selection of a value from the domain of string values, wherein the value selection reduces the domain, whereby value propagation to domains of one or more other variables is invoked by the CSP solver.

US Pat. No. 10,169,291

REUSABLE MODELING FOR SOLVING PROBLEMS

International Business Ma...

1. A computer program product comprising a non-transitory computer readable storage medium retaining program instructions configured to cause a processor to perform actions, which program instructions implement:a framework for creating a model of an NP-hard problem, wherein the model comprising at least one objective, a plurality of variables, and a plurality of constraints, wherein the model includes for each constraint a corresponding setting indicating whether the constraint is active or inactive, and wherein the framework provides methods for automatically transforming the model, comprising
at least one method for manipulating a status indication of the at least one objective;
at least one method for imposing or ignoring at least one of the constraints, by controlling the corresponding setting indicating whether the constraint is active or inactive; and
at least one method for setting values of one or more of the plurality of variables to specific fixed values; and
a solver configured to receive a model including for each constraint a corresponding setting indicating whether the constraint is active or inactive, from the framework and to solve the model created by the framework while ignoring constraints and objectives indicated as inactive by their corresponding setting, and holding values of variables that were set to specific fixed values, at the specific values to which they are fixed, so as to assign values to the variables such that the constraints indicated by their corresponding settings as active are met by the variable values and the objectives indicated as active are achieved,
wherein the framework is configured to allow creating an optimization flow defining a multi-stage process for solving the model, by setting for each stage a different set of objectives and constraints as active, providing the model with the set of active objectives and constraints to the solver, and setting values of variables of subsequent stages to values received as results of earlier stages.

US Pat. No. 10,169,290

DATA PROCESSING METHOD AND APPARATUS

Huawei Technologies Co., ...

1. A method for processing data by a data processing apparatus, the method comprising:acquiring historical data, by a network interface of the data processing apparatus, wherein the historical data belongs to a first level and a second level, and data corresponding to the first level comprises data corresponding to the second level;
generating, by a processor of the data processing apparatus, from the historical data, a first-granularity data set according to a first granularity;
generating, by the processor, from the historical data, a second-granularity data set according to a second granularity, wherein the first granularity and the second granularity respectively correspond to the first level and the second level;
performing, by the processor, modeling for a second-granularity forecasting model according to the first-granularity data set and the second-granularity data set;
performing, by the processor, an performing forecasting by using the second-granularity forecasting model; and
obtain, by the network interface, second-granularity forecast data.

US Pat. No. 10,169,289

MEMORY SYSTEM AND METHOD FOR ACCELERATING BOOT TIME

SK Hynix Inc., Gyeonggi-...

1. A memory system comprising:a plurality of memory channels, each of the plurality of memory channels includes a plurality of memory dies and a die processor, each of the plurality of memory dies includes a plurality of memory blocks; and
a memory controller including a monarch processor, coupled to the plurality of memory channels,
wherein the die processor on each of the plurality of memory channels is configured in parallel to:
process to find last written data within at least a predetermined block of the plurality of memory dies; and
provide information regarding the last written data to the monarch processor, the monarch processor determines which boot record to be used to identify firmware images based on the information.

US Pat. No. 10,169,288

NODE INTERCONNECT ARCHITECTURE TO IMPLEMENT HIGH-PERFORMANCE SUPERCOMPUTER

International Business Ma...

1. A computing system, comprising:a plurality N of computing groups which are optically connected to each other to form a computing system, wherein each computing group comprises:
a local group of N multi-processor modules;
a local group of N optical redistribution boxes;
a plurality (N×N) of local optical bundles which optically connect the local group of N multi-processor modules to the local group of N optical redistribution boxes; and
a plurality (N×N) of global optical bundles, wherein N of the global optical bundles optically connect the local group of N optical redistribution boxes to the local group of N multi-processor modules, and wherein (N×N)—N of the global optical bundles optically connect other local groups of optical redistribution boxes in other computing groups to the local group of N multi-processor modules.

US Pat. No. 10,169,287

IMPLEMENTING MODAL SELECTION OF BIMODAL COHERENT ACCELERATOR

International Business Ma...

1. A system for implementing modal selection of a bimodal coherent accelerator in a computer system comprising:a system processor;
a Peripheral Component Interconnect Express (PCIE) standard Vendor Specific Extended Capability (VSEC) structure or Coherently Attached Processor Interface (CAPI) VSEC data in the configuration space of a CAPI-capable PCIE adapter;
said system processor using the CAPI VSEC data in the configuration space of a CAPI-capable PCIE adapter and procedures defined in the Coherent Accelerator Interface Architecture (CAIA) to detect, enable and control a coherent coprocessor adapter over PCIE;
said system processor enabling the CAPI-capable PCIE adapter to be bimodal and operate in a conventional PCI-Express (PCIE) transaction mode or a CAPI mode utilizing CAIA coherence and programming interface capabilities;
configuration firmware in the computer system in which the PCIE adapter is installed; and
said CAPI-capable PCIE adapter is enabled to be selectively configured and enabled in either PCIE transaction mode or CAPI mode by the configuration firmware in the computer system in which the PCIE adapter is installed; and
said CAPI mode enabling CAPI coherent accelerator functions over PCIE utilizing a Coherent Accelerator Interface Architecture (CAIA) accelerator including the configuration space, a Processor Service Layer (PSL) and a plurality of Accelerator Function Units (AFUs).

US Pat. No. 10,169,286

DEVICES AND METHODS FOR PROVIDING REDUCED BANDWIDTH DISPLAYPORT COMMUNICATION

Icron Technologies Corpor...

1. A system comprising:a USB host controller or hub device;
a DisplayPort GPU;
a bandwidth reduction device;
a USB Type-C receptacle for use as a downstream facing port (DFP); and
a switching device communicatively coupled to the USB host controller or hub device, the DisplayPort GPU, the bandwidth reduction device, and the USB Type-C receptacle; wherein the switching device is configured to:
determine whether an upstream facing port (UFP) coupled to the USB Type-C receptacle supports reduced bandwidth transmission of DisplayPort information; and
in response to determining that the UFP does support reduced bandwidth transmission of DisplayPort information:
couple a first lane differential pair, a second lane differential pair, a third lane differential pair, and a fourth lane differential pair of the DisplayPort GPU to the bandwidth reduction device; and
couple one or more output differential pairs of the bandwidth reduction device to pins of the USB Type-C receptacle.

US Pat. No. 10,169,285

PORTABLE COMPUTING SYSTEM AND PORTABLE COMPUTER FOR USE WITH SAME

1. A computing system having a disconnected state and a connected state for operation, the computing system comprising:a portable computer comprising:
a processor;
a controller;
at least one integrated circuit for storing data; and
at least one connector,
the portable computer being no greater in size than 100 mm by 60 mm and no greater than 6 mm thick, a thermally conductive coating being disposed between the processor and an outer metallic case of the portable computer; and
a reader comprising:
a housing;
at least one input port;
at least one output port; and
at least one connector,
the reader having no user application processing CPU,
the portable computer and the reader comprising, in the connected state:
the at least one connector of the portable computer connected to the at least one connector of the reader;
the at least one input port and the at least one output port of the reader providing access to the portable computer, in order to access the stored data contained on the at least one integrated circuit of the portable computer; and
the reader routing signals between the at least one input port and the at least one output port of the reader and the portable computer, for accessing the stored data contained on the at least one integrated circuit of the portable computer; and
the portable computer and the reader comprising, in the disconnected state:
the at least one connector of the portable computer disconnected from the at least one connector of the reader; and
the at least one input port and the at least one output port of the reader providing no access to the at least one integrated circuit, so there is no ability to access the stored data contained in the at least one integrated circuit of the portable computer via the reader.

US Pat. No. 10,169,284

CONNECTOR WITH A TERMINATION MODULE

CommScope Technologies LL...

1. A communication device comprising:a processing device configured for communicating data via a data connection; and
a connector communicatively coupled to the processing device, the connector comprising:
at least one terminal configured for forming the data connection with at least one external terminal of a mating connector inserted in the connector, and
a sensing module configured for providing a termination signal to the processing device to terminate the data connection in response to detecting a movement associated with removing the mating connector from the connector;
wherein the processing device is configured for terminating data communication via the data connection in response to receiving the termination signal;
wherein the sensing module comprises:
an additional processing device;
a first conductive contact communicatively coupled to the additional processing device; and
a second conductive contact movable by the mating connector between a first position in which the first and second conductive contacts are electrically connected and a second position in which the first and second conductive contacts are electrically disconnected;
wherein the additional processing device is configured for providing the termination signal in response to the second conductive contact being moved between the first and second positions; and
wherein the second conductive contact is movable between the first position and the second position in response to the movement associated with removing the mating connector from the connector and the additional processing device is configured for providing the termination signal in response to the movement between the first position and the second position that is associated with removing the mating connector from the connector.

US Pat. No. 10,169,283

CUSTOM DATA TRANSFER CONNECTOR AND ADAPTER

ARRIS Enterprises LLC, S...

1. A system for transferring data between a first device and a second device, the system comprising:an adapter base, wherein the adapter base is attached to the first device, and wherein the adapter base is secured to an enclosure of the first device;
a data transfer adapter, wherein the data transfer adapter comprises a serial AT attachment adapter, wherein the data transfer adapter is attached to the adapter base, and wherein the data transfer adapter comprises a clip at each end of the data transfer adapter, the clips providing for an attachment of the data transfer adapter to the adapter base and for a removal of the data transfer adapter from the adapter base; and
a connector opening coupled to the second device, wherein the connector opening comprises a serial AT attachment connector, wherein the connector opening is mounted to the bottom of an enclosure of the second device, and wherein the connector opening comprises one or more connector ports positioned within the connector opening according to a first orientation;
wherein the data transfer adapter comprises a pinout configuration that mates with the one or more connector ports positioned within the connector opening according to the first orientation, wherein the pinout configuration of the data transfer adapter mates with the one or more connector ports positioned within the connector opening when the enclosure of the first device is temporarily attached to the enclosure of the second device.

US Pat. No. 10,169,282

BUS SERIALIZATION FOR DEVICES WITHOUT MULTI-DEVICE SUPPORT

International Business Ma...

1. A method comprising:providing, by a first communication hardware set, data communication between a first master device and a set of controlled device(s) through a set of bus communication line(s);
providing, by a second communication hardware set, data communication between the second master device and the set of controlled device(s) through the set of bus communication line(s);
during the pendency of a communication session, between the first master device and the set of controlled device(s) through the first communication hardware set, sending, by a control unit, a first signal to the second master device to cause the second master device to suspend, as a hardware response, any communication with the set of controlled device(s); and
during the pendency of a communication session, between the second master device and the set of controlled device(s) through the second communication hardware set, sending, by the control unit, a second signal to the first master device to cause the first master device to suspend, as a hardware response, any communication with the set of controlled device(s);
wherein:
the set of bus communication line(s) includes a two line Inter-Integrated Circuit (I2C) bus;
the first signal is a clock stretching signal;
the second signal is a clock stretching signal; and
the first hardware communication set includes a first serializer-master communication hardware set, a first switch and a first controlled-bus communication hardware set.

US Pat. No. 10,169,281

SWITCH SYSTEM AND OPERATION METHOD THEREOF

Inventec (Pudong) Technol...

9. An operation method for a switch system, comprising:transmitting a first control signal to a first multiplexer through a first multiplexer control channel by a baseboard management controller;
wherein the first control signal is configured to control the first multiplexer to electronically couple with a first electrically-erasable programmable read-only memory;
transmitting a first system parameter to the first multiplexer through the first serial peripheral interface bus by the baseboard management controller;
writing the first system parameter to the first electrically-erasable programmable read-only memory through the second serial peripheral interface bus by the first multiplexer;
loading a basic input/output system,
triggering a first switch by the basic input/output system to read the first system parameter stored in the first electrically-erasable programmable read-only memory through the first multiplexer; and
configuring at least one configuration value according to the first system parameter.

US Pat. No. 10,169,280

DATA PROCESSING APPARATUS AND TERMINAL

HUAWEI TECHNOLOGIES CO., ...

1. An apparatus, comprising:an input switching module;
a buffer module; and
an output switching module;
wherein the buffer module comprises N buffer units, and N is a positive integer greater than 1;
wherein a first input end to an Nth input end of the input switching module are respectively connected to a first input end to an Nth input end of the apparatus, and a first output end to an Nth output end of the input switching module respectively correspond to a first buffer unit to an Nth buffer unit comprised in the buffer module; and
wherein a first input end to an Nth input end of the output switching module respectively correspond to the first buffer unit to the Nth buffer unit, and a first output end to an Nth output end of the output switching module are respectively connected to a first output end to an Nth output end of the apparatus;
wherein the input switching module is configured to acquire target data transmitted by a target input end of the apparatus, wherein the target input end is one or more input ends of the apparatus;
wherein the apparatus further comprises a write arbiter, a read arbiter, and a rearranger;
wherein a control end of the write arbiter is connected to a control end of the input switching module, and the write arbiter is configured to control the input switching module to store the target data into a target buffer unit, wherein the target buffer unit is one or more buffer units of the N buffer units;
wherein a control end of the read arbiter is connected to a control end of the output switching module, and the read arbiter is configured to control the output switching module to read the target data from the target buffer unit;
wherein the first output end to the Nth output end of the output switching module are respectively connected to a first input end to an Nth input end of the rearranger;
wherein a first output end to an Nth output end of the rearranger are respectively connected to the first output end to the Nth output end of the apparatus;
wherein the read arbiter is further configured to control the output switching module to transmit the target data to a target input end of the rearranger, wherein the target input end is an input end of the rearranger that is used to transmit the data to a target output end of the rearranger, the target output end is an output end of the rearranger that is connected to a destination port of the target data, and a destination end of the target data is one or more output ends of the apparatus; and
wherein the rearranger is configured to, when there are a plurality of pieces of data that are in a storage space of the rearranger and whose destination ports are the same as the destination port of the target data, sort the plurality of pieces of data whose destination ports are the same, and then output the plurality of pieces of data whose destination ports are the same to the destination port according to a result of the sorting.

US Pat. No. 10,169,279

INPUT/OUTPUT CONTROL DEVICE, INPUT/OUTPUT CONTROL SYSTEM, AND INPUT/OUTPUT CONTROL METHOD FOR CONVERSION OF LOGICAL ADDRESS OF INSTRUCTION INTO LOCAL ADDRESS OF DEVICE SPECIFIED IN INSTRUCTION

NEC CORPORATION, Tokyo (...

1. An input/output control device connected to an input/output switch which transfers a received input/output instruction to an input/output device whose local address is specified in the input/output instruction, the input/output control device comprising:a memory that stores specific information about a processor as well as storing a conversion table for converting a logical address of the input/output device into the local address, with the specific information and the conversion table each being associated with a group ID (Identification) of a device group which includes the processor and the input/output device; and
circuitry which has a configuration to identify the group ID of the device group from the specific information about a processor of sender which information is obtained when an input/output instruction is received, convert the logical address included in the input/output instruction into the local address which is obtained from the conversion table for the identified group ID of the device group, and send the input/output instruction to the input/output switch,
wherein the local address is associated with an input/output device ID identifying the input/output device, the input/output device ID including a bus number representing a bus to which the input/output device is connected.

US Pat. No. 10,169,278

LIN BUS MODULE

INFINEON TECHNOLOGIES AG,...

1. A network node for connecting to a Local Interconnect Network (LIN), the network node comprising:a bus terminal operably coupled to a data line to receive a data signal representing serial data via the data line, the data signal having a high signal level and a low signal level;
a receiver circuit coupled to the bus terminal, the receiver circuit including a comparator having a first input coupled to the bus terminal and a second input configured to receive a reference signal, wherein the comparator is configured to compare the data signal with the reference signal, and the comparator generates a binary output signal representing a result of the comparison;
a measurement circuit having an input coupled to the bus terminal, the measurement circuit configured to measure an amplitude of the high signal level of the data signal and to provide a first voltage signal at an output of the measurement circuit, the first voltage signal having a voltage proportional to the high signal level of the data signal received on the data line via the bus terminal; and
a scaling circuit having an input coupled to the output of the measurement circuit and an output coupled to the second input of the comparator, the scaling circuit configured to generate the reference signal from the first voltage signal, wherein the reference signal is provided at the output of the scaling circuit, and the reference signal is proportional to the first voltage signal.

US Pat. No. 10,169,277

CAPABILITY DETERMINING METHOD, CAPABILITY CONFIGURATION METHOD, HOST, TERMINAL DEVICE, AND SYSTEM

Huawei Device (Shenzhen) ...

1. A method, comprising:acquiring, by a host, an indication from a terminal device, wherein the indication indicates a plurality of capabilities supported by the terminal device;
determining, by the host according to the plurality of capabilities supported by the terminal device that are indicated by the indication and a plurality of capabilities supported by the host, a plurality of capabilities supported by both the terminal device and the host, and using the plurality of capabilities supported by both the terminal device and the host as a plurality of overlapping capabilities, wherein the plurality of overlapping capabilities are used by the terminal device to perform capability configuration;
sending the plurality of overlapping capabilities to the terminal device;
in response to receiving a configuration success message sent by the terminal device, enumerating a plurality of sub-devices in the terminal device, each of the plurality of sub-devices being respectively configured with an overlapping capability of the plurality of overlapping capabilities; and
performing driver loading on each of the plurality of sub-devices, so that each of the plurality of sub-devices respectively implements a function corresponding to the plurality of overlapping capabilities.

US Pat. No. 10,169,276

DETECTING A COMMUNICATION MODE VIA INTERRUPTIONS

FEITIAN TECHNOLOGIES CO.,...

1. A method for recognizing a communication mode, comprising:step S1 comprising powering on a device, initializing, turning on an interruption and a timer, and the timer starting timing;
entering a clock interruption when a preset value is reached by timing of the timer, wherein the clock interruption comprises: turning off the timer, setting a time-out flag, turning on the timer, and exiting the clock interruption;
continuing to Step B1 when other interruption signals are detected, continuing to step S2 when no other interruption signals are detected;
step B1 comprising determining a type of an interruption, continuing to step B2 in the case that the interruption is a Universal Serial Bus (USB) interruption; continuing to step B6 in the case that the interruption is a serial port interruption;
step B2 comprising turning off the USB interruption;
step B3 comprising determining whether a communication mode is set, executing step B5 in the case that the communication mode is set; executing step B4 in the case that the communication mode is not set;
step B4 comprising setting the communication mode as USB interface communication, executing step B5;
step B5 comprising turning on the USB interruption, carrying out a USB enumeration, returning a USB interface communication protocol supported by the device to a host, exiting the USB interruption and continuing to step S2 after the USB enumeration is finished;
step B6 comprising turning off the serial port interruption;
step B7 comprising determining whether the communication mode is set, turning on the serial port interruption and exiting the serial port interruption and continuing to step S2 in the case that the communication mode is set; executing step B8 in the case that the communication mode is not set;
step B8 comprising setting the communication mode as serial communication according to a first data package which is received, turning on the serial port interruption, exiting the serial port interruption and continuing to step S2;
step S2 comprising detecting a type of the communication mode, turning off the timer and executing step S3 in the case that the communication mode is the USB interface communication;
turning off the timer and executing step S6 in the case that the communication mode is the serial communication; executing step S4 in the case that the communication mode is not set;
step S3 comprising waiting for an instruction sent by the host, when the instruction is received, processing an operation correspondingly according to the USB interface communication protocol supported by the device, and returning to step S3 after the operation is finished;
step S4 comprising determining whether the time-out flag is set, executing step S5 in the case that the time-out flag is set; returning to step S2 in the case that the time-out flag is not set;
step S5 comprising setting the communication mode as the serial communication, turning off the timer, resetting the time-out flag, executing step S6;
step S6 comprising waiting for an instruction sent by the host, when the instruction is received, processing an operation corresponding to the instruction according to a serial port protocol, and returning to step S6 after the operation is finished.

US Pat. No. 10,169,275

SYSTEM, METHOD, AND RECORDING MEDIUM FOR TOPOLOGY-AWARE PARALLEL REDUCTION IN AN ACCELERATOR

INTERNATIONAL BUSINESS MA...

1. A topology-aware parallel reduction system, comprising:a partitioning device configured to partition data in each accelerator of a plurality of accelerators into partitions that transfer data in a first and second directions based on a topology of connections between the plurality of accelerators;
a control device configured to control, based on the topology of connections between the plurality of accelerators, a type of parallel reduction of data to use; and
an intra-root reduction device configured to use a full-duplex configuration of a PCIe bandwidth such that each accelerator of the plurality of connected accelerators selectively transfers data either in either direction or in each direction simultaneously.

US Pat. No. 10,169,274

SYSTEM AND METHOD FOR CHANGING A SLAVE IDENTIFICATION OF INTEGRATED CIRCUITS OVER A SHARED BUS

QUALCOMM Incorporated, S...

1. A method for resetting a slave identification (SID) of an integrated circuit (IC) on a computing device, the method comprising:determining that a plurality of ICs in communication with a shared bus operating in a master/slave configuration have the same SID;
identifying a common memory address of the plurality of ICs where data stored in the common memory address of a first of the plurality of ICs is different than data stored in the common memory address of a second of the plurality of ICs;
receiving at each of the plurality of ICs over the shared bus a first new SID value and a second new SID value;
receiving at each of the plurality of ICs over the shared bus a match data;
comparing with logic at each of the plurality of the ICs the received match data with the data stored in the common memory address of the plurality of ICs; and
based on the comparison, when the received match data is the same as the data stored in the common memory address, changing the SID of the IC to the received first new SID value.

US Pat. No. 10,169,273

FORCED COMPRESSION OF SINGLE I2C WRITES

QUALCOMM Incorporated, S...

1. A method performed at a physical layer interface in a master device coupled to a serial bus, comprising:buffering a first single-byte transaction addressed to a first register at a first address in a slave device coupled to the serial bus in a first-in-first-out buffer of the physical layer interface;
receiving at the physical layer interface a second single-byte transaction addressed to a second register at a second address in the slave device coupled to the serial bus;
determining in the physical layer interface whether the second address is incrementally greater than the first address;
combining the second single-byte transaction with the first single-byte transaction to obtain a multi-byte transaction;
replacing the first single-byte transaction with the multi-byte transaction in the first-in-first-out buffer; and
transmitting a sequence of transactions output by the first-in-first-out buffer over the serial bus.

US Pat. No. 10,169,272

DATA PROCESSING APPARATUS AND METHOD

INTERNATIONAL BUSINESS MA...

1. A data processing apparatus comprising:a plurality of processor cores;
a shared processor cache, the shared processor cache being connected to each of the processor cores and to a main memory, wherein in operation, the shared processor cache receives a descriptor sent by one of the processor cores regarding a transfer of requested data indicated by the descriptor from the shared processor cache to an input/output (I/O) device;
a bus controller, the bus controller being connected to the shared processor cache and receiving from the shared processor cache the descriptor sent by the one or more processor cores regarding the transfer of the requested data to trigger the bus controller to perform a data transfer according to the descriptor, wherein the descriptor is passed through the shared processor cache to the bus controller in parallel with the shared processor cache initiating prefetching the requested data from the shared processor cache or main memory by performing a direct memory access, and wherein based on receipt of the descriptor, the bus controller generates a data request to the shared processor cache to transfer the requested data to the I/O device;
a bus unit, the bus unit being connected to the bus controller and facilitating transferring data to or from the I/O device; and
wherein, by operation of the bus controller, the requested data is transferred from the shared processor cache to the bus unit for transfer to the I/O device.

US Pat. No. 10,169,271

DIRECT MEMORY ACCESS DESCRIPTOR

XILINX, INC., San Jose, ...

1. A system comprising:a memory;
a first buffer;
a second buffer; and
a direct memory access circuit coupled to the memory and first and second buffers and configured to:
receive a data transfer request indicating a first descriptor and a second descriptor, wherein the first descriptor indicates a first set of addresses of the first buffer from which a set of data is to be read and the second descriptor indicates a second set of addresses of the second buffer to which the set of data is to be written;
wherein:
the first descriptor references a first linked list of descriptor blocks,
the second descriptor references a second linked list of descriptor blocks, and
each of the descriptor blocks is stored in a contiguous portion of the memory, each descriptor block stores a set of descriptor entries that references a plurality of addresses of the first or second sets of addresses, and each descriptor entry includes a marker;
in response to receiving the data transfer request, transfer the set of data from the first set of addresses in the first buffer to the second set of addresses in the second buffer by traversing the first and second linked lists of descriptor blocks;
in response to the marker in a descriptor entry of the first descriptor or the second descriptor being a pause marker, pausing the transfer of the set of data from the first set of addresses in the first buffer for a period of time until the pause marker is removed; and
in response to the marker in a descriptor entry of the first descriptor or the second descriptor being a stop marker, ending the transfer the set of data from the first set of addresses in the first buffer.

US Pat. No. 10,169,270

TECHNIQUES FOR HANDLING INTERRUPT RELATED INFORMATION IN A DATA PROCESSING SYSTEM

International Business Ma...

1. A method of handling queued interrupts, comprising:determining, by an interrupt presentation controller (IPC), whether a received memory mapped input/output (MMIO) store request is associated with preempting a virtual processor (VP) thread;
in response to determining the MMIO store request is associated with preempting the VP thread:
writing, by the IPC, interrupt context information of the VP thread to a specified location in memory;
determining, by the IPC, whether an interrupt context table (ICT) indicates an interrupt is currently pending for the VP thread; and
in response to determining the ICT indicates an interrupt is currently pending for the VP thread, issuing, by the IPC, a redistribute message for the interrupt that is currently pending that causes the interrupt to be reassigned to a different VP thread.

US Pat. No. 10,169,269

ARCHITECTURE AND METHOD FOR MANAGING INTERRUPTS IN A VIRTUALIZED ENVIRONMENT

INTEL CORPORATION, Santa...

1. A system to manage interrupts, comprising:a processor; and
a non-transitory computer readable medium to store a set of instructions for execution by the processor, the set of instructions to cause the processor to:
receive an interrupt for a virtual machine (VM);
determine whether the VM is in a first mode of operation or a second mode of operation;
route the interrupt directly to a processor core for the VM and bypass a hypervisor when the VM is in the first mode of operation;
route the interrupt to the hypervisor for the VM when the VM is in the second mode of operation;
receive an end-of-interrupt (EOI) for the interrupt, the EOI to indicate completion of interrupt processing of the interrupt by the VM; and
determine whether a VM exit event is to occur based on a bit value stored in a register in response to the received EOI, the VM exit event to transition execution of an instruction by the VM to execution by the processor core or the hypervisor.

US Pat. No. 10,169,268

PROVIDING STATE STORAGE IN A PROCESSOR FOR SYSTEM MANAGEMENT MODE

Intel Corporation, Santa...

1. A system comprising:a first processor including a first core to execute instructions and to enter a system management mode (SMM), a first indicator to indicate whether a thread executing on the first core is in a long flow operation, a second indicator to indicate whether the thread is in a system management interrupt (SMI)-inhibited state, and a storage unit, wherein upon entry to the SMM the first core is to store an active state present in a state storage of the first core into the storage unit and to store a SMM execution state into the state storage of the first core, the storage unit dedicated to storage of the active state of the first core during the SMM;
a second processor including a second core to execute instructions and to enter the SMM, a first indicator to indicate whether a second thread executing on the second core is in a long flow operation, a second indicator to indicate whether the second thread is in the SMI-inhibited state, and a second storage unit, wherein upon entry to the SMM the second core is to store an active state present in a state storage of the second core into the second storage unit and to store a SMM execution state into the state storage of the second core, the second storage unit dedicated to storage of the active state of the second core during the SMM; and
a dynamic random access memory (DRAM) coupled to the first and second processors, wherein a portion of the DRAM is a system management random access memory (SMRAM) for the system.

US Pat. No. 10,169,267

TRANSACTIONAL EXECUTION ENABLED SUPERVISOR CALL INTERRUPTION WHILE IN TX MODE

International Business Ma...

1. A computer implemented method for managing an interruption while a processor is executing a transaction in a transactional-execution (TX) mode, the method comprising:executing, by a processor initiated into a TX mode by the executing, a transaction in a program context;
detecting, by the processor in the TX mode, an interruption request for an interruption;
based on the interruption being a TX compatible routine, accepting the interruption by the processor to execute the TX compatible routine in a supervisor context for changing supervisor resources;
executing the TX compatible routine within the TX mode;
executing, by the processor in the TX mode, a supervisor call (SC) instruction for requesting a rescindable operation by a supervisor on a supervisor resource, execution of the SC instruction causing the interruption request; and
returning to the program context to complete execution of the transaction.

US Pat. No. 10,169,266

ADAPTIVE BUFFERING OF DATA RECEIVED FROM A SENSOR

InvenSense, Inc., San Jo...

1. A method of adaptive buffering in a mobile device having a host processor and a sensor processor coupled with said host processor:using said sensor processor to buffer data received from a sensor that is operated by said sensor processor, wherein said data is buffered by said sensor processor into a circular data buffer; and
responsive to said sensor processor detecting triggering data within said received data:
setting, by said sensor processor, a start-end marker relative to said triggering data in said circular data buffer, wherein said start-end marker delays overwriting said triggering data until completion of an action; and
sending a command to execute said action from said sensor processor to a second processor.

US Pat. No. 10,169,265

CONFIGURABLE INPUT / OUTPUT CONNECTOR IN A CAMERA

GoPro, Inc., San Mateo, ...

1. A method for configuring a USB3 input/output port in a camera, the method comprising:configuring the USB3 input/output port according to a default USB3 pin configuration;
detecting that a peripheral device is connected to the camera via the USB3 input/output port;
receiving, via a USB3 protocol, an identifier from the peripheral device, the identifier indicating whether the peripheral device is a USB3 device or a non-USB3 device;
responsive to the identifier indicating that the peripheral device is a USB3 device, communicating with the peripheral device via the USB3 protocol;
responsive to the identifier indicating that the peripheral device is a non-USB3 device, remapping pins of the USB3 input/output port to a first predefined port configuration associated with an I2C protocol by remapping a RX1? pin to communicate a first I2C signal and remapping a RX1+ pin to communicate a second I2C signal;
performing authentication between the camera and the peripheral device via the I2C protocol to determine if the peripheral device meets a specified criteria for an approved device;
responsive to successful authentication, enabling communication with the peripheral device and remapping the pins of the USB3 input/output port to a second predefined port configuration compatible with operation of the authenticated peripheral device by remapping a TX2+ pin to communicate a first general purpose input/output signal and remapping a TX2? pin to communicate a second general purpose input/output signal; and
responsive to unsuccessful authentication, disabling communication with the peripheral device and remapping the pins of the USB3 input/output port to the default USB3 pin configuration.

US Pat. No. 10,169,264

IMPLEMENTING ROBUST READBACK CAPTURE IN A PROGRAMMABLE INTEGRATED CIRCUIT

XILINX, INC., San Jose, ...

1. A memory circuit in a programmable integrated circuit (IC), the memory circuit comprising:a control port and a clock port;
a configurable random access memory (RAM) having a control input and a clock input;
input multiplexer logic coupled to the control input and the clock input; and
a state machine coupled to the input multiplexer logic and configuration logic of the programmable IC, the state machine configured to:
in response to being enabled by the configuration logic, control the input multiplexer logic to switch a connection of the control input from the control port to the state machine and, subsequently, switch a connection of the clock input from the clock port to a configuration clock source; and
in response to being disabled by the configuration logic, control the input multiplexer logic to switch the connection of the clock input from the configuration clock source to the clock port and, subsequently, switch the connection of the control input from the state machine to the control port.

US Pat. No. 10,169,263

MEMORY SUBSYSTEM AND COMPUTER SYSTEM

International Business Ma...

1. A method comprising:estimating an access request frequency from a CPU to a memory subsystem by counting a number of CPU access requests and a number of requests other than CPU access requests, wherein a CPU access request is counted as plus one (+1) and a request other than a CPU access request and a system bus idle state are each counted as minus one (?1), wherein the CPU is connected to the memory subsystem via a system bus, and the memory subsystem comprises a DDR memory and a memory controller connected to the system bus;
comparing the estimated access request frequency with a predetermined threshold value stored in a register;
generating a clock gate signal to decimate an operating clock of the memory controller in response to a result of comparing the estimated access request frequency with the predetermined threshold value;
generating a dummy cycle signal to delay the timing of signal data output from the memory controller to the system bus in response to the result of comparing the estimated access request frequency with the predetermined threshold value; and
generating a clock enable signal to decimate an operating clock of the DDR memory in response to the result of comparing the estimated access request frequency with the predetermined threshold value.

US Pat. No. 10,169,262

LOW-POWER CLOCKING FOR A HIGH-SPEED MEMORY INTERFACE

QUALCOMM Incorporated, S...

1. A method for operating a communication interface coupling a memory device and a memory controller, comprising:transmitting a first clock signal having a first frequency to the memory device;
using the first clock signal to control transmissions of commands to the memory device over a command bus of the communication interface;
using the first clock signal to control transmissions of first data over a data bus of the communication interface in a first mode of operation; and
in a second mode of operation,
transmitting a second clock signal having a second frequency greater than the first frequency to the memory device, and
using the second clock signal to control transmissions of second data over the data bus,
wherein the second clock signal is suppressed in the first mode of operation.

US Pat. No. 10,169,261

ADDRESS LAYOUT OVER PHYSICAL MEMORY

International Business Ma...

1. A computer system including an address translation device (ATD) configured to translate, within a main memory of the computer system, a physical address of a memory line to a storage location of the memory line, the main memory including a plurality of memory devices, each memory device of the plurality memory devices having a respective memory capacity, each of the respective memory capacities including at least one contiguous memory portion of a uniform size, the memory line being stored in one of the at least one contiguous memory portions, the ATD comprising:a first data table structure having a set of consecutive rows, each row of the set of consecutive rows configured to uniquely identify one of the at least one contiguous memory portions; and
a first index calculation unit configured to calculate, for the physical address, a first row index that identifies a row of the first data table structure that identifies a memory portion, of the at least one contiguous memory portions, that includes the storage location of the memory line.

US Pat. No. 10,169,260

MULTIPROCESSOR CACHE BUFFER MANAGEMENT

International Business Ma...

1. A method comprising:receiving, from a first processor in a set of processors sharing a bus, a request for a first set of data;
receiving, from a second processor in the set of processors sharing the bus, a request for a second set of data;
writing a first portion of the first set of data and a first portion of the second set of data to a buffer;
writing additional portions of the first set of data and additional portions of the second set of data to the buffer as each additional portion is received;
determining that a portion of the first set of data has a higher priority to the bus than a portion of the second set of data based on a priority scheme, wherein the priority scheme specifies priority to the bus based on a sequential order, wherein the sequential order comprises:
(a) one or more sets of data that have not yet returned any portions of data; and
(b) one or more sets of data that have only returned one portion of data; and
granting the portion of the first set of data access to the bus.

US Pat. No. 10,169,259

PATTERN-BASED SERVICE BUS ARCHITECTURE USING ACTIVITY-ORIENTED SERVICES

Savigent Software, Inc., ...

1. A pattern-based service bus comprising:a plurality of bus endpoints that interacts with bus participants external to the pattern-based service bus, each of the plurality of bus endpoints identified by a unique address, and type of interaction to be provided by the bus endpoint;
a bus-hosted service that implements patterns that define allowed interactions between each of the plurality of bus endpoints and the bus-hosted service, wherein the implemented patterns can be utilized by the plurality of bus endpoints to interact with the bus-hosted service and wherein the bus endpoints interact with the bus-hosted service without knowledge of one another;
a bus storage component that interacts with the bus-hosted service to store information relevant to operation of the pattern-based service bus; and
an access tool that provides an interface to allow an outside system and/or user to interact with the bus-hosted service and/or the bus storage component.

US Pat. No. 10,169,258

MEMORY SYSTEM DESIGN USING BUFFER(S) ON A MOTHER BOARD

Rambus Inc., Sunnyvale, ...

17. A system comprising:a processor coupled to one or more communication channels to communicate commands;
a first communication channel electrically coupling a first set of two or more dual in-line memory modules (DIMMs) and a first primary data buffer on a mother board, wherein at least one DIMM in said first set of two or more DIMMs comprises a first internal data buffer coupled to said first primary data buffer via said first communication channel;
a second communication channel electrically coupling a second set of two or more DIMMs and a second primary data buffer on said mother board, wherein at least one DIMM in said second set of two or more DIMMs comprises a second internal data buffer coupled to said second primary data buffer via said second communication channel; and
a third communication channel electrically coupling said first primary data buffer to said second primary data buffer, and coupling said first primary data buffer and said second primary data buffer to said processor, wherein said first primary data buffer and said second primary data buffer are configured to sample and retransmit data.

US Pat. No. 10,169,257

MODULE BASED DATA TRANSFER

Rambus Inc., Sunnyvale, ...

1. A method for transferring data between memory modules, the method comprising:sending a read request to a first memory module, the first memory module comprising one or more non-volatile memory devices;
sending a write request to a second memory module, the second memory module comprising one or more volatile memory devices, wherein the write request comprises an indicator that the second memory module is to capture data from a data bus, the data sent directly from the first memory module;
in response to the read request, sending data from the first memory module on the data bus, wherein the data bus electrically couples the first memory module, the second memory module, and a processor; and
in response to the write request, storing the data from the data bus into the second memory module.

US Pat. No. 10,169,256

ARBITRATING DIRECT MEMORY ACCESS CHANNEL REQUESTS

Silicon Laboratories Inc....

1. A method comprising:receiving a plurality of requests to perform accesses for associated DMA channels, each request being associated with a fixed priority and each request being associated with a priority weighting, wherein at least a first priority weighting of the associated priority weightings is different from a second priority weighting of the priority weightings; and
arbitrating the requests, the arbitrating comprising, for a given request of the plurality of requests:
identifying a number of arbitration slots in an arbitration cycle based at least in part on the priority weighting assigned to the given request;
assigning at least one arbitration slot in the arbitration cycle to the given request such that the identified number of arbitration slots is or are assigned to the given request, wherein the at least one arbitration slot comprises an arbitration slot concurrently assigned to both the given request and to another request of the plurality of requests; and
sequencing through the slots in the arbitration cycle, comprising for the arbitration slot concurrently assigned to both the given request and to the another request, selectively granting the given request based at least in part on the associated fixed priority of the given request and the associated fixed priority of the another request.

US Pat. No. 10,169,255

INFORMATION-SHARING DEVICE, METHOD, AND TERMINAL DEVICE FOR SHARING APPLICATION INFORMATION

Sony Corporation, Tokyo ...

1. An information-sharing device, comprising:circuitry configured to:
obtain, from a sound output device, first application information, wherein the first application information indicates at least one first application of the sound output device and types of audio source devices connected to the sound output device,
wherein each audio source device of the audio source devices corresponds to an audio source that outputs audio data to the sound output device;
obtain second application information that indicates at least one second application on the information-sharing device;
generate shared information that is shared between the sound output device and the information-sharing device,
wherein the shared information is generated in a form of a list, wherein the list includes an order of an arrangement of a plurality of icons associated with the at least one first application and the at least one second application, and
wherein the order includes an ordinal position of each of the plurality of icons in the list,
wherein the shared information is generated based on the first application information and the second application information;
transmit the generated shared information to the sound output device;
select a first icon of the plurality of icons based on operation information received from the sound output device, wherein the operation information indicates an ordinal position of the first icon that is displayed on the sound output device; and
control a display screen of the information-sharing device to display the selected first icon.

US Pat. No. 10,169,254

INCREASING VIRTUAL-MEMORY EFFICIENCIES

Intel Corporation, Santa...

1. An apparatus comprising:one or more computer processors; and
a virtual machine monitor to be operated by the one or more computer processors to:
cause a first core and a second core of a computer processor of the one or more computer processors to execute one or more first instructions in accordance with permissions from a first virtual memory page table;
determine the second core should operate with a different set of permissions; and
cause the second core of the computer processor to execute one or more second instructions in accordance with permissions from a second virtual memory page table contemporaneously with execution of the one or more first instructions by the first core.

US Pat. No. 10,169,253

CRYPTOGRAPHIC MULTI-SHADOWING WITH INTEGRITY VERIFICATION

1. In a computer system comprising a virtual machine monitor (VMM) running on system hardware and supporting a virtual machine (VM), a method of controlling access to a cloaked data page stored in a system memory, the method comprising:creating, by a first shim in an address space of an application and in coordination with the VMM, a first shadow context associated with the application;
receiving, by the VMM, a request for access to the cloaked data page;
responsive to determining the cloaked data page is plaintext and the request does not correspond to a first execution context associated with the application:
unmapping, by the VMM, the cloaked data page from any mapped references to the cloaked data page not corresponding to the first execution context associated with the application,
encrypting, by the VMM, data in the cloaked data page, and
mapping, by the VMM, a location of the cloaked data page into a second shadow context associated with an execution context to which the request corresponds; and
responsive to determining the cloaked data page is encrypted and the request does correspond to the first execution context associated with the application:
verifying, by the VMM, integrity of encrypted data in the cloaked data page, and
if the integrity of the encrypted data in the cloaked data page is verified: decrypting, by the VMM, the encrypted data in the cloaked data page and storing the decrypted cloaked data page; and
mapping, by the VMM, a location of the decrypted cloaked data page into the first shadow context associated with the application.

US Pat. No. 10,169,252

CONFIGURING FUNCTIONAL CAPABILITIES OF A COMPUTER SYSTEM

International Business Ma...

1. A computer program product for configuring functional capabilities of a computer system comprising two or more persistent memories and two or more replaceable functional units, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to perform a method comprising:transferring, in response to a repair action for a first functional unit, first enablement data stored on the first functional unit to a servicer, wherein the first enablement data stored on the first functional unit is in a first persistent memory of the first functional unit, wherein the first enablement data is associated with a first unique identification number that corresponds to the first functional unit, the first enablement data specifying one or more functional capabilities of the first functional unit, and wherein the one or more functional capabilities are enabled in the first functional unit;
erasing, after transferring the first enablement data in the first persistent memory to the servicer, the first enablement data from the first persistent memory;
obtaining, by the servicer, in response to a replacement action for the first functional unit, a second unique identification number that corresponds to a second functional unit;
transferring, from the servicer, the first unique identification number and the second unique identification number to a trusted environment in the computer system;
transforming, in the trusted environment, the first enablement data to second enablement data by replacing the first unique identification number with the second unique identification number; and
transferring the second enablement data to the second functional unit, wherein the second enablement data is stored in a second persistent memory of the second functional unit, wherein the second enablement data specifies one or more functional capabilities of the second functional unit, and wherein the one or more functional capabilities of the second functional unit are the same as the one or more functional capabilities of the first functional unit.

US Pat. No. 10,169,251

LIMTED EXECUTION OF SOFTWARE ON A PROCESSOR

Massachusetts Institute o...

1. A method for limiting execution of an encrypted computer program on a secure processor comprising:executing a first set of instructions encoding a test for determining whether a value of a register of the secure processor belongs to a set of valid register values encoded in the encrypted computer program, execution of the first set of instructions causing the secure processor to:
destructively read a first register value from the register of the secure processor, the register of the secure processor configured to provide a destructive read of its value such that repeated reads of a same value of the register are prevented, and
determining whether the first register value belongs to the set of valid register values encoded in the encrypted computer program; and
preventing execution of further instructions of the encrypted computer program based on a determination that the first register value does not belong to the set of valid register values encoded in the encrypted computer program,
wherein the set of valid register values is based on a value destructively read from the register prior to the destructive read of the first register value.

US Pat. No. 10,169,250

METHOD AND APPARATUS METHOD AND APPARATUS FOR CONTROLLING ACCESS TO A HASH-BASED DISK

TENCENT TECHNOLOGY (SHENZ...

1. A method for controlling access to a hash-based disk, the disk comprising a storage object, the storage object comprising a set of records and a hash value, the method comprising:constructing a Bloom filter for the storage object, the Bloom filter comprising an initial bit and a plurality of Bloom filter bits;
determining whether the storage object is accessed for a first time, wherein when the initial bit is a predefined value, the storage object is determined being accessed for the first time;
when the storage object is determined as not being accessed for the first time, reading the set of records in the storage object;
filtering an access request to the storage object using the Bloom filter;
counting a number of unnecessary accesses and a number of read accesses, wherein the number of unnecessary accesses is a number of access requests filtered out by the Bloom filter, and the number of read accesses is a number of access requests to the storage object;
calculating a ratio of unnecessary accesses to the storage object based on the number of unnecessary accesses and the number of read accesses, wherein the ratio of unnecessary accesses is calculated by dividing the number of unnecessary accesses by the number of read accesses; and
when the ratio of unnecessary accesses is within a threshold range, selecting the storage object and allocating the Bloom filter to a second storage object.

US Pat. No. 10,169,249

ADJUSTING ACTIVE CACHE SIZE BASED ON CACHE USAGE

INTERNATIONAL BUSINESS MA...

1. A computer program product for managing a cache in at least one memory device in a computer system to cache tracks stored in a storage, the computer program product comprising a computer readable storage medium having computer readable program code embodied therein that when executed performs operations, the operations comprising:maintaining an active cache list indicating tracks in an active cache comprising a first portion of the at least one memory device to cache the tracks in the storage during computer system operations;
maintaining an inactive cache list indicating tracks demoted from the active cache;
during caching operations, gathering information on active cache hits comprising access requests to tracks indicated in the active cache list and inactive cache hits comprising access requests to tracks indicated in the inactive cache list;
staging a track requested by an access request indicated in the inactive cache list from the storage to the active cache;
adding indication of the staged track to the active cache list; and
using the gathered information to determine whether to provision a second portion of the at least one memory device unavailable to cache user data to be part of the active cache for use to cache user data during the computer system operations.

US Pat. No. 10,169,248

DETERMINING CORES TO ASSIGN TO CACHE HOSTILE TASKS

INTERNATIONAL BUSINESS MA...

1. A computer program product for dispatching tasks in a computer system having a plurality of cores, wherein each core is comprised of a plurality of processing units and at least one cache memory shared by the processing units on the core to cache data from a memory, the computer program product comprising a computer readable storage medium having computer readable program code embodied therein that when executed performs operations, the operations comprising:processing a task to determine one of the cores on which to dispatch the task;
determining whether the processed task is classified as cache hostile, wherein a task is classified as cache hostile when the task accesses more than a threshold number of memory address ranges in the memory; and
dispatching the processed task to at least one of the cores assigned to process cache hostile tasks.

US Pat. No. 10,169,247

DIRECT MEMORY ACCESS BETWEEN AN ACCELERATOR AND A PROCESSOR USING A COHERENCY ADAPTER

International Business Ma...

8. An adapter for direct memory access (‘DMA’) between a processor and an accelerator, the processor coupled to the accelerator by the adapter, the adapter configured to carry out the steps of:providing, by the adapter, a translation tag (‘XTAG’) to the accelerator; and
responsive to receiving a DMA instruction for a DMA transfer, wherein the DMA instruction comprises the XTAG, generating, by the adapter, a DMA instruction comprising a real address based on the XTAG.

US Pat. No. 10,169,246

REDUCING METADATA SIZE IN COMPRESSED MEMORY SYSTEMS OF PROCESSOR-BASED SYSTEMS

QUALCOMM Incorporated, S...

1. A compressed memory system of a processor-based system, comprising:a metadata circuit comprising a plurality of metadata entries each having a bit size of N bits omitted from a bit size of a full physical address addressable to a system memory, the system memory comprising a plurality of 2N compressed data regions each comprising a plurality of memory blocks each associated with a full physical address, and a set of free memory lists of a plurality of 2N sets of free memory lists, each corresponding to a plurality of free memory blocks of the plurality of memory blocks;
the metadata circuit configured to associate a plurality of virtual addresses to a plurality of abbreviated physical addresses stored in the plurality of metadata entries, each abbreviated physical address among the plurality of abbreviated physical addresses omitting N upper bits from a corresponding full physical address addressable to the system memory; and
a compression circuit configured to:
receive a memory access request comprising a virtual address;
select a compressed data region of the plurality of 2N compressed data regions in the system memory, and a set of free memory lists of the plurality of 2N sets of free memory lists based on a modulus of the virtual address and 2N;
retrieve an abbreviated physical address corresponding to the virtual address from the metadata circuit; and
perform a memory access operation on a memory block of the plurality of memory blocks associated with the abbreviated physical address in the selected compressed data region.

US Pat. No. 10,169,245

LATENCY BY PERSISTING DATA RELATIONSHIPS IN RELATION TO CORRESPONDING DATA IN PERSISTENT MEMORY

Intel Corporation, Santa...

1. An apparatus comprising:a memory unit for a processor, the memory unit to include a prefetcher to:
detect a relationship between two or more addresses of a byte-addressable random access persistent memory based on an access pattern to the persistent memory by an application executed by the processor;
cause information to be stored in a pre-allocated portion of the persistent memory that indicates the relationship between the two or more addresses; and
retrieve the information stored in the pre-allocated portion when the application subsequently accesses an address from among the two or more addresses to cause data to be prefetched from the two or more addresses of the persistent memory based on the relationship indicated in the information.

US Pat. No. 10,169,244

CONTROLLING ACCESS TO PAGES IN A MEMORY IN A COMPUTING DEVICE

ADVANCED MICRO DEVICES, I...

1. A method for handling memory accesses by virtual machines in a computing device, the computing device including a reverse map table (RMT) and a separate guest accessed pages table (GAPT) for each virtual machine, the RMT including a plurality of entries, each entry including information for identifying a virtual machine that is permitted to access an associated page of data in a memory, and each GAPT including a record of pages being accessed by a corresponding virtual machine, the method comprising:receiving, in a table walker, a request to translate a virtual address to a system physical address, the request originating from a given virtual machine;
acquiring, from a corresponding guest page table, a guest physical address associated with the virtual address, and, from a nested page table, a system physical address associated with the virtual address;
checking, based on the guest physical address and the system physical address, at least one of the RMT and a corresponding GAPT to determine whether the given virtual machine has access to a corresponding page; and
when the given virtual machine does not have access to the corresponding page, terminating translating the virtual address to the system physical address.

US Pat. No. 10,169,243

REDUCING OVER-PURGING OF STRUCTURES ASSOCIATED WITH ADDRESS TRANSLATION

INTERNATIONAL BUSINESS MA...

1. A computer program product for managing purging of structure entries associated with address translation, said computer program product comprising:a computer readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising:
determining, by a processor, whether a block of memory of a computing environment for which a purge request has been received is backing an address translation structure, the block of memory having an address to identify the block of memory; and
based on determining the block of memory is not backing the address translation structure, performing an action to selectively purge from a structure associated with address translation entries created from translating the address that are at one level of address translation, wherein other entries at one or more other levels of address translation created from translating the address remain in the structure.

US Pat. No. 10,169,242

HETEROGENEOUS PACKAGE IN DIMM

SK Hynix Inc., Gyeonggi-...

1. A memory system comprising:a memory module including:
a first memory device including a first memory and a first memory controller controlling the first memory to store data; and
a second memory device including a second memory and a second memory controller controlling the second memory to store data; and
a processor executing an operating system (OS) and an application to access a data storage memory through the first and second memory devices,
wherein the first and second memories are separated from the processor,
wherein the processor accesses the second memory device through the first memory device,
wherein the first memory controller transfers a signal between the processor and the second memory device based on at least one of values of a memory selection field and a handshaking information field included in the signal,
wherein the memory module includes one or more memory stacks,
wherein one or more volatile memories as the first memory, one or more non-volatile memories as the second memory, and the first and second memory controllers are stacked in the memory stacks,
wherein the first and second memory devices stacked in the memory stacks are communicatively coupled to each other through a through-via,
wherein the first and second memory controllers interface with the first and second memories and the processor through the through-via.

US Pat. No. 10,169,241

MANAGING MEMORY ALLOCATION BETWEEN INPUT/OUTPUT ADAPTER CACHES

International Business Ma...

1. A method for managing memory allocation of caching storage input/output adapters (IOAs) in a redundant caching configuration, the method comprising:detecting a first cache of a first IOA storing a first amount of data that satisfies a memory shortage threshold of the first cache;
transmitting a first request for extra memory for the first cache in response to detecting that the first amount of data satisfying the memory shortage threshold, wherein the first request is transmitted to a plurality of IOAs;
detecting a second cache of a second IOA of the plurality of IOAs storing a second amount of data that satisfies a memory dissemination threshold of the second cache;
allocating memory from the second cache to the first cache in response to both the first request and detecting that the second amount of data satisfies the memory dissemination threshold; and
wherein the first cache has a memory dissemination threshold and the second cache has a memory shortage threshold, further comprising:
detecting the second cache storing a third amount of data that satisfies a memory shortage threshold of the second cache;
identifying an outstanding request for extra memory, wherein the outstanding request for extra memory is a prior request for extra memory from another IOA of the plurality of IOAs, wherein the prior request has not resulted in an allocation of memory to a cache of the requesting IOA; and
deferring a new request for extra memory for the second cache in response to identifying the outstanding request for extra memory from the another IOA.

US Pat. No. 10,169,240

REDUCING MEMORY ACCESS BANDWIDTH BASED ON PREDICTION OF MEMORY REQUEST SIZE

QUALCOMM Incorporated, S...

1. A method of managing memory access bandwidth, the method comprising:determining a size of a used portion of a first cache line stored in a first cache which is accessed by a processor, wherein the first cache is a level-two (L2) cache comprising at least a first accessed bit corresponding to a first half cache line size data of the first cache line and a second accessed bit corresponding to a second half cache line size data of the first cache line, wherein determining the size of the used portion of the first cache line is based on which one or more of the first accessed bit or second accessed bit is/are set;
determining which one or more of the first accessed bit or the second accessed bit is set when the first cache line is evicted from the L2 cache;
for a first memory region in a memory comprising the first cache line, selectively updating a prediction counter for making predictions of sizes of cache lines to be fetched from the first memory region, based on the size of the used portion, wherein selectively updating the prediction counter comprises:
incrementing the prediction counter by a first amount when only one of the first accessed bit or the second accessed bit is set when the first cache line is evicted from the L2 cache;
decrementing the prediction counter by a second amount when both the first accessed bit and the second accessed bit are set when the first cache line is evicted from the L2 cache; or
decrementing the prediction counter by a third amount when a request is received from the processor at the first cache for a portion of the first cache line which was not fetched; and
adjusting a memory access bandwidth between the processor and the memory to correspond to the sizes of the cache lines to be fetched, comprising at least one of:
adjusting the memory access bandwidth for fetching a second cache line from the first memory region to correspond to the half cache line size if the value of the prediction counter is greater than zero; or
adjusting the memory access bandwidth for fetching a second cache line from the first memory region to correspond to the full cache line size if the value of the prediction counter is less than or equal to zero.

US Pat. No. 10,169,239

MANAGING A PREFETCH QUEUE BASED ON PRIORITY INDICATIONS OF PREFETCH REQUESTS

INTERNATIONAL BUSINESS MA...

1. A computer program product for managing prefetch queues, said computer program product comprising:a computer readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising:
obtaining a prefetch request based on executing a prefetch instruction included within a program and determining that data at a memory location designated by the prefetch instruction is not located in a selected cache, the prefetch request having a priority assigned thereto, the priority indicating confidence by the program in whether the prefetch request will be used;
determining, based on obtaining the prefetch request, whether the prefetch request may be placed on a prefetch queue, the determining comprising:
determining whether the prefetch queue is full;
checking, based on determining the prefetch queue is full, whether the priority of the prefetch request is considered a high priority;
determining, based on the checking indicating the priority of the prefetch request is considered a high priority, whether another prefetch request on the prefetch queue may be removed;
removing the other prefetch request from the prefetch queue, based on determining the other prefetch request may be removed; and
adding the prefetch request to the prefetch queue, based on removing the other prefetch request.

US Pat. No. 10,169,238

MEMORY ACCESS FOR EXACTLY-ONCE MESSAGING

International Business Ma...

1. A computer-implemented method executed for enabling exactly-once messaging, the method comprising:transmitting a plurality of messages from a first location to a second location via read requests and write requests made to a memory;
controlling the read and write requests by a memory controller including a read queue, a write queue, and a lock address list, each slot of the lock address list associated with a lock bit;
initiating the read requests from the memory via the memory controller when associated lock bits are enabled;
initiating the write requests from the memory via the memory controller when associated lock bits are disabled; and
enabling and disabling the lock bits after the initiation of the write and read requests, respectively.

US Pat. No. 10,169,237

IDENTIFICATION OF A COMPUTING DEVICE ACCESSING A SHARED MEMORY

International Business Ma...

1. A method for identifying, in a system including two or more computing devices that are able to communicate with each other, with each computing device having a cache and connected to a corresponding memory, the computing device accessing one of the memories, the method comprising:monitoring memory access to any of the memories, wherein monitoring memory access comprises identifying respective computing devices that access respective memories, wherein monitoring memory access to any of the memories further comprises:
collecting an access time, a type of command, and a first memory address from a first memory read access to a first memory based on information acquired from a first probe attached to a first bus connecting the first memory to a first computing device, wherein the first memory is remote from the first computing device, and wherein a cache line in the first computing device is in an invalid state;
collecting a third access time, a third type of command, and a third memory address from a first memory write access to the first memory based on information acquired from the first probe, wherein the cache line in the first computing device enters a modified state;
monitoring cache coherency commands between computing devices, wherein monitoring cache coherency commands further comprises:
monitoring a first cache coherency command sent from the first computing device to at least a second computing device at a first cache coherency time based on information acquired from a second probe attached to a second interconnect connecting the first computing device and the second computing device, wherein the second probe collects the cache coherency time, a type of command, a second memory address, and an identification of the computing device issuing the first cache coherency command; and
identifying the computing device accessing one of the memories by using information related to the memory access and cache coherency commands, wherein identifying the computing device further comprises:
identifying the first computing device as the device that accessed the first memory based on the first memory address being equivalent to the second memory address, and further based on a difference between the access time and the first cache coherency time being smaller than a difference between the access time and any other cache coherency time;
wherein the first computing device is identified as the device performing the first memory write access based on the third memory address being identical to the first memory address and further based on the first computing device performing the first memory read access to the first memory;
wherein the system is configured in a non-uniform memory access (NUMA) design, wherein each memory comprises at least one dual in-line memory module (DIMM);
wherein the access time, the type of command, the first memory address, the cache coherency time, the second memory address, and the identification of the computing device issuing the first cache coherency command are stored in a hard disk drive (HDD) accessible by the system; and
wherein the system utilizes a modified, exclusive, shared, invalid (MESI) cache coherence protocol.

US Pat. No. 10,169,236

CACHE COHERENCY

ARM Limited, Cambridge (...

1. A cache coherency controller comprising:a directory indicating, for memory addresses cached by one or more of a group of one or more cache memories connectable in a coherent cache structure, which of the cache memories are caching those memory addresses; and
control circuitry configured to detect a directory entry relating to a memory address to be accessed so as to coordinate, amongst the cache memories, an access to a memory address by one of the cache memories or a coherent agent in instances when the directory entry indicates that another of the cache memories is caching that memory address;
the control circuitry being responsive to status data indicating whether each cache memory in the group is currently subject to cache coherency control so as to take into account, in the detection of the directory entry relating to the memory address to be accessed, only those cache memories in the group which are currently subject to cache coherency control.

US Pat. No. 10,169,235

METHODS OF OVERRIDING A RESOURCE RETRY

Apple Inc., Cupertino, C...

1. An apparatus, comprising:a memory configured to implement a first queue and a second queue, wherein the first queue has a plurality of entries, each configured to store a memory access instruction having one of a set of priority levels, wherein the second queue has fewer entries than the first queue, and wherein each entry in the second queue corresponds to one of the set of priority levels; and
a control circuit configured to:
determine an availability of a memory resource associated with a given memory access instruction, wherein the memory resource associated with the given memory access instruction is included in a plurality of memory resources;
determine a particular priority level of the given memory access instruction in response to a determination that the memory resource associated with the given memory access instruction is unavailable; and
add the given memory access instruction to the second queue in response to a determination that an entry in the second queue corresponding to the particular priority level is available, and that the particular priority level is greater than a respective priority level of each memory access instruction currently in the second queue.

US Pat. No. 10,169,234

TRANSLATION LOOKASIDE BUFFER PURGING WITH CONCURRENT CACHE UPDATES

International Business Ma...

1. A method for purging a translation lookaside buffer concurrently with cache updates in a computer system with a translation lookaside buffer and a primary cache memory having a first cache line that contains a virtual address field and a data field, the method comprising:initiating a translation lookaside buffer purge process;
initiating a cache update process;
determining that the translation lookaside buffer purge process and the cache update process each perform a write operation to the first cache line concurrently;
in response to the determining:
overwriting, by the cache update process, the data field of the first cache line of the primary cache memory,
restoring the translation lookaside buffer purge process from a current state to an earlier state, and
restarting the translation lookaside buffer process from the earlier state.

US Pat. No. 10,169,233

TRANSLATION LOOKASIDE BUFFER PURGING WITH CONCURRENT CACHE UPDATES

International Business Ma...

1. A computer program product for purging a translation lookaside buffer concurrently with cache updates in a computer system with a translation lookaside buffer and a primary cache memory having a first cache line that contains a virtual address field and a data field, comprising a computer readable storage medium having stored thereon program instructions programmed to perform:initiating a translation lookaside buffer purge process;
initiating a cache update process;
determining that the translation lookaside buffer purge process and the cache update process each perform a write operation to the first cache line concurrently;
in response to determining that the translation lookaside buffer purge process and the cache update process each perform a write operation to the first cache line concurrently:
overwriting, by the cache update process, the data field of the first cache line of the primary cache memory,
restoring the translation lookaside buffer purge process from a current state to an earlier state, and
restarting the translation lookaside buffer process from the earlier state.

US Pat. No. 10,169,232

ASSOCIATIVE AND ATOMIC WRITE-BACK CACHING SYSTEM AND METHOD FOR STORAGE SUBSYSTEM

Seagate Technology LLC, ...

1. A method for caching in a data storage subsystem, comprising:receiving a write request indicating one or more logical addresses and one or more data blocks to be written correspondingly to the one or more logical addresses;
in response to the write request, allocating one or more physical locations in a cache memory from a free list;
storing the one or more data blocks in the one or more physical locations;
determining a hash table slot in response to a logical address;
determining whether any of a plurality of entries in the hash table slot identifies the logical address;
storing identification information identifying the one or more physical locations in one or more data structures;
updating an entry in a hash table to include a pointer to the one or more data structures;
maintaining a count of data access requests, including read requests, pending against each physical location in the cache memory having valid data; and
returning a physical location to the free list when the count indicates no data access requests are pending against the physical location.

US Pat. No. 10,169,231

EFFICIENT AND SECURE DIRECT STORAGE DEVICE SHARING IN VIRTUALIZED ENVIRONMENTS

International Business Ma...

1. A method of providing direct storage device sharing in a virtualized environment, comprising:a storage controller assigning each of a plurality of virtual functions of a plurality of guests an associated memory area of a physical memory, including at a first boot of one of the guests, the storage controller receiving a request from the one of the guests, said request including an authentication key, and in response to the request, triggering an interrupt of a physical function to a hypervisor;
the storage controller providing the guests with direct access, via the authentication key and without intervention of the hypervisor, to a specified storage area in the storage device, including the storage controller receiving from the hypervisor a configuration command over the physical function, the configuration command setting up hardware in the storage controller to allocate storage in the storage device for said one of the guests and to provide a mapping function for the authentication key to provide the one of the guests with access to the specified storage area in the storage device; and
the guests directly accessing the specified storage area over the authentication key, including
said one of the guests directly accessing the storage device over the authentication key, including said one guest sending to the storage controller, over one of the virtual functions, the authentication key in a command block requesting access to the storage area allocated to said one guest; and
the storage controller receiving the command block requesting access from the one of the guests, and setting up a mapping for the authentication key to provide said one of the guests with direct access, without intervention of the hypervisor, only to the specified storage area in the storage device set up for the authentication key.

US Pat. No. 10,169,230

METHOD FOR ACCESS TO ALL THE CELLS OF A MEMORY AREA FOR PURPOSES OF WRITING OR READING DATA BLOCKS IN SAID CELLS

MORPHO, Issy-les-Mouline...

1. An access method to access to cells in a memory area of a card for purposes of writing or reading data blocks in said cells, the memory area comprising N+1 separately addressable, physically contiguous cells, where N is an integer greater than or equal to 0;the address of each cell being between 0 and N, where each address is unique;
wherein said method comprises:
for each access time to said cells in said memory area to be accessed, the total number of access times being N+1 per memory area, performing a process of determining an address of a cell of the memory area to be accessed at said access time, the address determined for an access time not being once again determined for another access time, the address determination process comprising:
pseudorandomly determining a pseudorandom bit which can thus take either a first value or a second value;
and testing the value taken by said pseudorandom bit that switches said process either to:
(1) in the event of the first value, determining an index as being equal to the value of a first index, followed by incrementing a unit of said first index modulo N+1, or
(2) in the event of the second value, determining said index as being equal to the value of a second index, followed by decrementing a unit of said second index modulo N+1, the value of said index being the value of said address of the cell of the memory area to be accessed at said access time.

US Pat. No. 10,169,229

PROTOCOLS FOR EXPANDING EXISTING SITES IN A DISPERSED STORAGE NETWORK

INTERNATIONAL BUSINESS MA...

1. A method for execution by computing device within a dispersed storage and task network (DSTN) including at least one site housing a plurality of current distributed storage and task (DST) execution units, the method comprising:determining that a plurality of new DST execution units are to be added to the at least one site;
in response to determining that the plurality of new DST execution units are to be added to the at least one site, assigning the new DST execution units to positions within the at least one site to limit a number of DST execution units through which data must be moved during migration of data to the new DST execution units to a maximum number, the maximum number being less than the number of current DST execution units included in the at least one site, wherein assigning the new DST execution units to positions within the at least one site includes:
obtaining first address ranges assigned to the plurality of current DST execution units;
determining a common magnitude of second address ranges to be assigned to the plurality of new DST execution units and the plurality of current DST execution units;
determining insertion points for each of the plurality of new DST execution units, wherein the insertion points are selected to intersperse the plurality of new DST execution units among the current DST execution units in a pattern arranged so that each current DST execution unit is no more than a predetermined number of current DST execution units distant from one of the plurality of new DST execution units;
determining transfer address ranges, where transfer address ranges correspond to at least a portion of the first address ranges to be transferred to the plurality of new DST execution units in accordance with the insertion points; and
facilitating transfer of address range assignments from particular current DST execution units to particular new DST execution units.

US Pat. No. 10,169,228

MULTI-SECTION GARBAGE COLLECTION

International Business Ma...

1. A computer program product for facilitating garbage collection within a computing environment, the computer program product comprising:a computer readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising:
obtaining processing control by a handler executing within a processor of the computer environment based on execution of a load instruction and a determination that an object pointer to be loaded indicates a location within a selected portion of memory undergoing a garbage collection process;
obtaining by the handler an image of the load instruction and calculating an object pointer address from the image, the object pointer address specifying a location of the object pointer, the object pointer indicating a location of an object pointed to by the object pointer;
determining by the handler whether the object pointer is to be modified;
modifying by the handler, based on determining the object pointer is to be modified, the object pointer to provide a modified object pointer; and
storing the modified object pointer in a selected location.

US Pat. No. 10,169,227

MEMORY CONTROLLER AND MEMORY SYSTEM INCLUDING THE SAME

Samsung Electronics Co., ...

1. A read method of a nonvolatile memory device, comprising:the nonvolatile memory device determining whether a read command input to the nonvolatile memory device is a read command for a word line having an upper page program state;
when the input read command is determined not to be a read command for a word line having an upper page program state, the nonvolatile memory device performing a first lower page read operation on the word line;
when the input read command is determined to be a read command for a word line having an upper page program state, the nonvolatile memory device determining whether a page address input together with the input read command is a lower page address;
when the page address input together with the input read command is determined to be the lower page address, the nonvolatile memory device performing a second lower page read operation on the word line; and
when the page address input together with the input read command is determined not to be the lower page address, the nonvolatile memory device performing an upper page read operation on the word line.

US Pat. No. 10,169,226

PERSISTENT CONTENT IN NONVOLATILE MEMORY

Micron Technology, Inc., ...

1. A method comprising:initiating an operation to freeze an application;
responsive to initiating the operation to freeze the application, migrating one or more pages of persistent storage from a volatile memory to a nonvolatile memory;
locking one or more page tables such that entries in the page tables refer only to pages of persistent storage in the nonvolatile memory; and
migrating the one or more frozen page tables to the nonvolatile memory.

US Pat. No. 10,169,225

MEMORY SYSTEM AND MEMORY-CONTROL METHOD WITH A PROGRAMMING STATUS

Silicon Motion, Inc., Jh...

1. A memory system with a programming status, comprising:at least one first memory, wherein each of the at least one first memory comprises a plurality of memory regions to store data;
at least one second memory, wherein each of the at least one second memory comprises a plurality of memory regions for programming the data from the at least one first memory, and the at least one second memory is a flash memory; and
a controller, coupled to the second memory and utilized to record a programming status of the data, wherein the controller checks whether the programming is successful or not by inquiring the programming status in response to the at least one first memory or the at least one second memory being going to be accessed, and the at least one first memory stores the data until the programming is checked to be successful.

US Pat. No. 10,169,224

DATA PROTECTING METHOD FOR PREVENTING RECEIVED DATA FROM LOSING, MEMORY STORAGE APPARATUS AND MEMORY CONTROL CIRCUIT UNIT

PHISON ELECTRONICS CORP.,...

1. A data protecting method for a memory storage apparatus, comprising:determining whether a first procedure which is about to be executed or being executed by the memory storage apparatus is a first type procedure according to a total executing time of the first procedure;
if the first procedure which is about to be executed or being executed by the memory storage apparatus is the first type procedure, temporarily stopping receiving a first data corresponding to a first write command from a host system to all buffers of the memory storage apparatus before the execution of the first procedure is finished; and
allowing the memory storage apparatus to receive the first data corresponding to the first write command only after the first procedure is finished.

US Pat. No. 10,169,223

IDENTIFYING COMMITS ASSOCIATED WITH FAILED TESTS

ENTIT SOFTWARE LLC, Sunn...

1. A method comprising:identifying pairs of commits in a set of builds, wherein at least one of the builds is associated with a failed test;
for each commit in the at least one build associated with the failed test:
for each file in the commit that was previously associated with the failed test, calculating, by a processor, a weighting factor based on a total number of times the file has been associated with the failed test;
for each file in the commit that was not previously associated with the failed test, calculating, by the processor, a weighting factor based on a total number of times the file appears with other files that are associated with the failed test; and
adding, by the processor, the weighting factors to compute a score for the commit, wherein the score is for ranking and ordering the commit; and
for each of the identified pairs of commits, logging files included in the pair of commits, the logging associated with the failed test.

US Pat. No. 10,169,222

APPARATUS AND METHOD FOR EXPANDING THE SCOPE OF SYSTEMS MANAGEMENT APPLICATIONS BY RUNTIME INDEPENDENCE

INTERNATIONAL BUSINESS MA...

1. A computer program product for automatic conversion of existing systems management software applications to run in multiple middleware runtime frameworks, the computer program product comprising:a non-transitory readable storage medium having stored thereon program instructions executable by a processor to cause the processor to:
scan the frameworks of system management components to form individual function modules;
map application program interface calls to a generic applicant program interface call layer by creating an association of the individual function modules;
perform runtime dependency analysis by generating ontology alignment mechanisms and outputting a mapping table of ontologies;
perform model unification by mapping runtime dependent functions to semantic counterparts using the ontology alignment mechanisms;
generate multiple runtime independent proxy components for the system management components; and
automatically refactor each of the system management components into two modules: a runtime independent module and a runtime dependent proxy module, wherein the runtime independent module replaces runtime dependent code with runtime independent code counterparts, wherein the model unification is dictionary-based, structure-based, or a combination thereof.

US Pat. No. 10,169,221

METHOD AND SYSTEM FOR WEB-SITE TESTING

ACCELERATE GROUP LIMITED,...

1. A testing service comprising:one or more testing-service computer systems connected to the Internet that
execute testing-service routines,
maintain one or more databases,
receive requests for modifications to a data-object-model representation of a web page under test from user computers, and
respond to a received request by selecting a web-page variant using a probability-based weight associated with the web-page variant and transferring, to the user computer from which the request was received, modifications to the data-object-model representation of the web page under test that direct a browser on the user computer to display the selected web-page variant; and
a client web server that serves web pages to users, the client web server storing a library of routines downloaded to the client web server by the testing service and storing encodings of web pages, the encoding of each web page tested by the testing service including modifications that direct a user's web browser to download the library of routines from the client web server and to request modifications to a data-object-model representation of the web page by calling a script-library routine.

US Pat. No. 10,169,220

PRIORITIZING RESILIENCY TESTS OF MICROSERVICES

INTERNATIONAL BUSINESS MA...

1. A system, comprising:a memory that stores computer executable components; and
a processor that executes the computer executable components stored in the memory, wherein the computer executable components comprise:
a test execution component that:
traverses an application program interface call subgraph of a microservices-based application in a depth first traversal pattern; and
during the traversal, performs resiliency testing of parent application program interfaces of the application program interface call subgraph according to a systematic resilience testing algorithm that reduces redundant resiliency testing of parent application program interfaces, the systematic resilience testing algorithm comprising:
during the traversal at a stop at a parent application program interface of the application program interface call subgraph:
in response to the parent application program interface having multiple dependent application program interfaces, calls to all direct and indirect dependent application program interfaces of the parent application program interface annotated as having been bounded retry pattern tested and circuit breaker pattern tested, and the parent application program interface not being annotated as having been bulkhead pattern tested, perform a bulkhead pattern test on the parent application program interface and annotate the parent application program interface as bulkhead pattern tested.

US Pat. No. 10,169,219

SYSTEM AND METHOD TO INFER CALL STACKS FROM MINIMAL SAMPLED PROFILE DATA

Nintendo Co., Ltd., Kyot...

1. A system for inferring call stacks from a software profile, comprising:a processing system having at least one processor, the processing system configured to:
monitor an executing program to create a sample profile of one or more executing functions to form a call stack database, wherein each function in the sample profile forms part of a respective call stack and each call stack having a call stack depth size;
after creating the call stack database:
for each function, attempt to match, under a first inference strategy, the function and associated call stack depth size to an entry in the call stack database;
infer a call stack for each function that matches to the entry in the call stack database based on the first inference strategy;
if the function does not match with any entry in the call stack database or if the function matches to more than one entry in the call stack database, determine, under a second inference strategy, one or more functions in a temporally adjacent sample; and
infer the call stack, under the second inference strategy, based on at least the temporally adjacent sample.

US Pat. No. 10,169,218

METHOD FOR AUTOMATICALLY VALIDATING DATA AGAINST A PREDEFINED DATA SPECIFICATION

ALSTOM TRANSPORT TECHNOLO...

1. A method for automatically validating data against a predefined data specification, said method comprises steps of:a) acquiring data to be validated, said data comprising a plurality of test objects;
b) acquiring a test database comprising a plurality of test files each defining a test scenario;
c) acquiring a predefined data specification against which the test objects must be validated;
d) automatically generating a plurality of test scripts, from the acquired test files and using relevant data from the test objects of the acquired predefined data specification;
e) for each generated test script, executing said test script on the test objects; and
f) automatically generating a test report comprising a test result,
wherein, during the step a) of acquiring data to be validated, the following sub-steps are carried out:
comparing two files of different versions,
filtering mismatching lines of the two files,
categorizing the mismatching lines into a plurality of corresponding categories, and
for each category, removing all mismatching lines of said category except for one mismatching line of said category.

US Pat. No. 10,169,217

SYSTEM AND METHOD FOR TEST GENERATION FROM SOFTWARE SPECIFICATION MODELS THAT CONTAIN NONLINEAR ARITHMETIC CONSTRAINTS OVER REAL NUMBER RANGES

GENERAL ELECTRIC COMPANY,...

1. A method comprising:receiving, at processing circuitry of a software test generation system, software specification models of software including at least one nonlinear arithmetic constraint over a Real number range;
generating, via the processing circuitry, satisfiable modulo theories (SMT) formulas that are semantically equivalent to the software specification models of the software including the at least one nonlinear arithmetic constraint over a Real number range;
analyzing, via the processing circuitry, the SMT formulas using at least one SMT solver of an analytical engine pool to generate test case data for each of the SMT formulas; and
post-processing, via the processing circuitry, the test case data to automatically generate one or more tests comprising inputs and expected outputs for testing the software including the at least one nonlinear arithmetic constraint over a Real number range;
wherein the generating the SMT formulas comprises flattening one or more state-based operations in the software specification models into SMT formulas that are stateless and capable of being analyzed by the at least one SMT solver;
wherein the post-processing comprises converting ranges of values indicated in the test case data into particular values for one or more input variables and one or more output variables of the software to be verified and the converting comprises truncating the ranges of values indicated in the test case data at a particular precision to yield the particular values.

US Pat. No. 10,169,216

SIMULATING SENSORS

ENTIT SOFTWARE LLC, Sunn...

1. A non-transitory computer-readable medium storing a set of instructions executable by a processing resource to:access sensory data from an application by hooking the application to record the sensory data by the application;
associate the sensory data with an automation instruction;
provide the automation instruction to a support device having an ability to perform a modification on the application, wherein the modification includes modifying a setting or executable code of the application;
automatically cause the support device to perform the modification on the application; and
automatically cause the support device to simulate a sensory input on the modified application using the sensory data by executing the automation instruction to cause the modified application to perform a function based on the simulated sensory input.

US Pat. No. 10,169,215

METHOD AND SYSTEM FOR ANALYZING TEST CASES FOR AUTOMATICALLY GENERATING OPTIMIZED BUSINESS MODELS

COGNIZANT TECHNOLOGY SOLU...

1. A computer-implemented method for analyzing one or more test case trees for automatically generating an optimized test tree model, the computer implemented method comprising:configuring a computer processor, the computer processor:
receiving the one or more test case trees as user input from a user interface, each tree having one or more nodes, each node corresponding to a functionality of a test case;
analyzing each of the received test case trees to identify a source tree and a target tree based on the length of the test case tree;
analyzing levels of each node of the source tree and the target tree for identifying a source node and a target node, the source node being the bottom most node of the source tree and the target node being the bottom most node of the target tree;
comparing the source node and the target node, based on one or more parameters, to obtain a match;
merging the source node with the target node when the match is obtained, else identifying a next source node and a next target node, and repeating the steps of comparing and merging the identified nodes;
optimizing the merged nodes by identifying and filtering out one or more invalid nodes and generating the optimized tree model by using the optimized nodes.

US Pat. No. 10,169,214

TESTING OF COMBINED CODE CHANGESETS IN A SOFTWARE PRODUCT

International Business Ma...

1. A method for testing changesets in a software product, the method comprising:determining, by one or more processors, whether there is sufficient building and testing capacity to test a single changeset individually, wherein a changeset is a set of changes to a software product; and
in response to determining that there is not sufficient building and testing capacity to test the single changeset individually:
selecting, by one or more processors, a first combination of changesets from multiple changesets;
calculating, by one or more processors and for each combination of two or more changesets from the multiple changesets, an interaction between changesets in said each combination, wherein the interaction is an overlapping of code found in two or more changesets;
determining, by one or more processors, that the first combination of changesets has a lower amount of overlapping of code than any other combination of changesets from the multiple changesets; and
selecting, by one or more processors, the first combination of changesets for building and testing, wherein said first combination of changesets has the lower amount of overlapping of code than any other combination of changesets from the multiple changesets; and
building and testing, by one or more processors, the first combination of changesets.

US Pat. No. 10,169,213

PROCESSING OF AN APPLICATION AND A CORRESPONDING TEST FILE IN A CONTENT REPOSITORY

Red Hat, Inc., Raleigh, ...

1. A method, comprising:retrieving, by a continuous integration module, a first application code and a test code corresponding to the first application code from an archive of a computing system, wherein a host operating system of the computing system comprises the continuous integration module and the host operating system provides a graphical user interface, wherein the continuous integration module is interfaced by a continuous integration application programming interface (API) to access the archive, wherein the archive is coupled with a software development tool that comprises a first application corresponding to the first application code and a test file corresponding to the test code;
installing, by the continuous integration module, the first application code and the test code in a content repository of a hardware platform of the computing system, wherein the test code is installed as metadata for the first application code in the content repository;
executing, by the continuous integration module, the test file corresponding to the test code to generate test results for the application code;
storing, by the continuous integration module, the test results in the metadata for the first application code in the content repository;
determining, by the continuous integration module, additional data related to the test file, wherein the additional data is at least one type of data selected from a group consisting of archive checksum, test success ratio, test fail ratio, build creator, and current date and time;
storing, by the continuous integration module, the additional data in the metadata for the first application code in the content repository, wherein the host operating system is to provide, via the graphical user interface, access to search content comprising the test results and the additional data independent of the first application corresponding to the first application code; and
integrating, by the continuous integration module, a second application code with the first application code in the content repository, wherein the second application code is a different version of the first application code or a different application code from the first application code, wherein the integrating comprises monitoring, by the continuous integration module, the archive for the second application code and updating the content repository in view of the second application code.

US Pat. No. 10,169,212

CODE COVERAGE THROUGH OVERLAY HOOKS

International Business Ma...

1. A computer system for utilizing overlay hooks to increase code coverage, the computer system comprising:one or more computer processors;
one or more computer readable storage media;
program instructions stored on the computer readable storage media for execution by at least one of the one or more processors, the program instructions comprising:
program instructions to compile a program code with branches broken apart to test only one possible condition state at each condition statement;
program instructions to analyze debug information to identify a location within the program code corresponding to a condition statement;
program instructions to exchange the condition statement for an overlay hook at the location within the program code;
program instructions to execute the program code;
upon reaching the overlay hook, program instructions to branch to a set of instructions operative to document an outcome state of the condition statement, wherein the outcome state of the condition statement is selected from the group consisting of true, false, less than, equal to, and greater than;
program instructions to execute the condition statement;
program instructions to record the outcome state of the condition statement and the location of the condition statement within the program code in a table;
program instructions to access the table;
program instructions to determine whether each possible outcome state of the condition statement has been recorded in the table;
responsive to determining that each possible outcome state of the condition statement has not been recorded in the table, program instructions to continue to execute the program code;
responsive to determining that each possible outcome state of the condition statement has been recorded in the table, program instructions to remove the overlay hook; and
program instructions to generate a report, wherein the report includes the recorded outcome state of the condition statement and the location within the program code corresponding to the condition statement.

US Pat. No. 10,169,211

APPLICATION PROGRAMMING INTERFACE TESTING SERVICES

Empire Technology Develop...

1. A method to provide an application programming interface (API) testing service, the method comprising:generating a plurality of test segments based on a plurality of API calls;
creating an API test module that includes the plurality of test segments;
transmitting, via a communication network, the API test module to a plurality of data centers that comprises a first data center and a second data center;
receiving test results from the plurality of data centers, wherein the received test results comprise a first set of test results based on the transmitted API test module that is executed on the first data center, and comprise a second set of test results based on the transmitted API test module that is executed on the second data center, and wherein the first set of test results and the second set of test results are indicative of whether execution of each respective one of the plurality of test segments is successful or returns an error;
comparing the first set of test results and the second set of test results; and
generating a report based on the comparison, wherein the report indicates which of the plurality of API calls are compatible with the plurality of data centers.

US Pat. No. 10,169,210

ASSOCIATION BETWEEN A TEST CASE AND SOURCE CODE

International Business Ma...

1. A computer-implemented method for associating one or more test cases with one or more source code parts for a test target comprising:obtaining historical data comprising one or more modification histories and one or more associated test operation histories, wherein a modification history comprises one or more modifications made in one or more source code parts, and a test operation history comprises one or more test processing parts corresponding to one or more test operations conducted on a test target after the one or more modifications;
for each of the historical data, determining whether a test operation history has one or more test processing parts which are identical or similar to test processing parts in one or more test cases;
associating the one or more test cases with one or more source code parts in one or more modification histories which have been associated with the test operation history responsive to determining that the test operation history has one or more test processing parts which are identical or similar to test processing parts in one or more test cases; and
assigning a degree of reliability to each of the plurality of associations between the one or more test cases and the one or more source code parts, wherein the degree of reliability is directly correlated with the presence of verification parts such that a degree of reliability is lower for each of the plurality of associations for which verification parts are not present than it is for other associations of the plurality of associations for which verification parts are present.

US Pat. No. 10,169,209

CONTAINER IMAGES BY COMPOSITION

Red Hat, Inc., Raleigh, ...

1. A system of creating containers by composition, the system comprising:a memory including a container image;
one or more processors, in communication with the memory; and
an image engine, executing on the one or more processors, wherein the containers include components to generate an isolated runtime environment for specific applications,
wherein the container image includes a plurality of layers, the plurality of layers including at least a first layer and a second layer that is built on the first layer, the image engine determines that the first layer and the second layer are at least one of read only and remain unmodified by the addition of any other layer of the plurality of layers, and each layer of the container image is in one of a broken state and an unbroken state,
wherein the image engine validates that each layer of the container image is associated with a respective identifying signature, the identifying signatures remain unmodified as long as the respective layers remain in the unbroken state, and any respective layer changing from the unbroken state to the broken state if any contents of the respective layer present at a time such respective layer was added to the container image are modified by at least one of an addition and an operation of any other layer of the container image,
wherein the image engine ensures that the plurality of layers adhere to a policy, the policy requiring that each compliant layer includes at least one attribute of (i) each respective compliant layer is read only with respect to each other layer in the container image, and (ii) at a time when each respective compliant layer is added to the container image, the respective layer does not modify the contents of any other layer, the policy also requiring that the updating of any respective compliant layer with a new version of the same respective compliant layer modifies only the contents of the respective compliant layer being replaced, and that each compliant layer remains in the unbroken state,
wherein each layer is designated a different respective location in the memory for the storage of data necessary for each respective layer, and each compliant layer is restricted from writing to a location designated for any other layer, and
wherein the image engine determines that the first layer and the second layer are both compliant layers and replaces the first layer with a third layer, wherein the third layer is an updated version of the first layer, and the second layer and the third layer are both compliant layers after the replacement of the first layer with the third layer, such that the plurality of layers, including the third layer, adhere to the policy.

US Pat. No. 10,169,208

SIMILARITY SCORING OF PROGRAMS

1. A method for generating a similarity score between a source program and a test program, the method comprising:generating a source abstract syntax tree (sAST) for a source program and a test abstract syntax tree (tAST) for a test program;
generating hash vectors for each abstract syntax tree (AST) by hashing subtrees of the sAST and tAST;
reducing the dimensionality hash vectors of the sAST;
forming a spatial data structure based on the reduced dimensionality hash vectors;
querying the spatial data structure with the hash vectors of the tAST to find candidate matching vectors;
searching among the candidate matching vectors for pairs of vectors that exceed a similarity threshold; and
reporting the pairs that exceed the similarity threshold.

US Pat. No. 10,169,207

SMART EMULATOR FOR WEARABLE DEVICES

International Business Ma...

1. A method for generating data for testing applications designed for wearable devices via an emulator, the method comprising:receiving, by one or more computer processors, an input of a video file, wherein:
the video file includes video of a test device being moved to mimic movements of a wearable device as worn by a user;
determining, by one or more computer processors, motion vector data, based on the video file, using video motion detection (VMD);
generating, by one or more computer processors, motion sensor data based on the determined motion vector data, wherein generating the motion sensor data based on the determined motion vector data comprises:
determining, by one more computer processors, an initial weight for each motion vector in the determined motion vector data, wherein the initial weight is determined based on an approach selected from the group consisting of: selecting equal weights, selecting random weights, user input, and historical data;
determining, by one or more computer processors, a final weight for each motion vector in the determined motion vector data, wherein:
a machine-learning algorithm is used to determine the final weight for each motion vector in the determined motion vector data;
the machine-learning algorithm is selected from the group consisting of: artificial neural networks, decision trees, random forests, nearest neighbors, and Apriori algorithm; and
the machine-learning algorithm is run iteratively starting with the initial weight for each motion vector in the determined motion vector data in order to determine the final weight; and
generating, by one or more computer processors, one or more rules that best fit the determined motion vector data, wherein:
the generated one or more rules are based on the final weight for each motion vector in the determined motion vector data;
the generated one or more rules allow for conversion of the motion vector data to the motion sensor data; and
generating the one or more rules that best fit the determined motion vector data comprises:
mapping, by one or more computer processors, existing motion vector data to motion sensor data, wherein the mapping is an offline labelling process using cognitive analysis;
labelling, by one or more computer processors, new motion vector data with corresponding motion sensor values based on a mapping of the existing motion vector data to motion sensor data; and
generating, by one or more computer processors, one or more rules that define a relationship between motion vector displacement and motion sensor displacement based on the new motion vector data labelled with corresponding motion sensor values;
determining, by one or more computer processors, one or more test results using the generated motion sensor data;
storing, by one or more computer processors, the video file, the motion vector data, and the motion sensor data, and the one or more rules;
receiving, by one or more computer processors, an indication of an application to be tested, wherein:
the application to be tested uses one or more motion sensors included in the wearable device; and
the application to be tested is a fitness application;
retrieving, by one or more computer processors, the motion sensor data associated with the application to be tested, wherein the association of the motion sensor data to the application to be tested is based on receiving the motion sensor data that corresponds to one or more sensors included in the wearable device;
causing, by one or more processors, an emulator to test the application, using the retrieved motion sensor data associated with the application to be tested, wherein the emulator uses respective motion sensor data, corresponding to each sensor that is used by the application;
determining, by one or more computer processors, one or more test results based on the retrieved motion sensor data; and
storing, by one or more computer processors, the one or more test results.

US Pat. No. 10,169,206

SIMULTANEOUS MULTI-PLATFORM TESTING

ACCENTURE GLOBAL SOLUTION...

1. A software testing system comprising:a web object repository to store web page objects of a web application and properties of the web page objects;
a test case repository to store test cases for testing the web application;
a test data repository to store test data for the test cases;
a testing device comprising a processor, connected to a memory, to execute machine readable instructions to:
receive a testing request to test the web application, wherein the testing request identifies
functionalities of the web application to test, and
platforms of different platform types on which the functionalities will be tested;
determine a first test package for testing a first functionality of the functionalities, the first test package for testing the first functionality on a first platform of the platforms, the determining comprising
selecting a first plurality of test cases from the test case repository for testing the first functionality,
creating, for the first plurality of test cases, a first map of key-value pairs for test data from the test data repository, and
identifying a first plurality of web objects from the web object repository that are for the first plurality of test cases;
determine a first driver for executing the first plurality of test cases on the first platform, wherein the first driver interacts with a first web application testing tool;
interact with the first driver to transmit the first test package to the first web application testing tool to execute the first plurality of test cases on the first platform, wherein the first test package includes the first plurality of test cases, the first map, and information for identifying the first plurality of web objects in the web application;
receive, via the first driver, first test results and first status information from the first web application testing tool executing the first plurality of test cases on the first platform;
determine a second test package for testing a second functionality of the functionalities in the testing request on a second platform of the platforms, the second platform being of a platform type that differs from the platform type of the first platform, the determining of the second test package for testing the second functionality comprising
selecting, using the first test results and first status information from the first web application testing tool, a second plurality of test cases from the test case repository for testing the second functionality on the second platform,
creating, for the second plurality of test cases, a second map of key-value pairs for test data from the test data repository, and
identifying a second plurality of web objects from the web object repository that are for the second plurality of test cases;
determine a second driver for executing the second plurality of test cases on the second platform, wherein the second driver interacts with a second web application testing tool;
interact with the second driver to transmit the second test package to the second web application testing tool to execute the second plurality of test cases on the second platform,
wherein the second test package includes
the second plurality of test cases,
the second map of key-value pairs, and
information for identifying the second plurality of web objects in the web application;
receive, via the second driver, second test results from the second web application testing tool executing the second plurality of test cases; and
generate a multiplatform view of the first and second test results.

US Pat. No. 10,169,205

AUTOMATED SYSTEM TESTING IN A COMPLEX SOFTWARE ENVIRONMENT

INTERNATIONAL BUSINESS MA...

1. A computer-implemented method for automated system testing in a complex software environment, comprising:obtaining one or more product code change sets for a product under test to run in the complex software environment, the one or more product code change sets comprising one or more code changes to one or more programs of the product under test;
collecting data during a test run of the product under test that involves multiple systems and resources, wherein the test run introduces the one or more product code change sets to the product under test, and wherein the collected data includes a product trace of the execution of the product under test at a product code level collected during the test run, the product trace indicating which programs are being invoked and what parameters the programs are being invoked with, and the collected data further includes system log data from the multiple systems and resources in which the test is run, and a test log of events and data relating to test execution;
storing last good collected data for the product under test, including a last good product trace;
based on the test run failing, comparing the test log and the system log data to identify an error test case;
obtaining a current product trace for the error test case;
based also on the test run failing, automatically determining whether the test run failing is likely related to the one or more product code change sets or to a test framework error, the automatically determining comprising:
comparing the current product trace for the error test case with the last good product trace;
determining a difference between the current product trace and the last good product trace and identifying a failing product program referenced in the current product trace;
determining whether a code change of the one or more product code changes is found for the failing product program, and if so, indicating that the error is likely to be in the code change set, and if not, indicating that the error is likely in the test framework; and
generating an appropriate defect prompt based, at least in part, on the automatically determining.

US Pat. No. 10,169,204

REAL-TIME USAGE CHECKING OF DYNAMICALLY GENERATED PROGRAM OUTPUT

International Business Ma...

1. A method comprising:receiving output dynamically generated by an executing program, with the output including an assembly of component parts generated and/or configured by the executing program as it runs;
usage checking the output for usage errors in real time via a debug build of the executing program, with the usage checking performed during run time of the executing program on every line of text as the line of text appears on a display to detect at least a first usage error; and
responsive to detection of the first usage error, providing notice of the error to a user, with the provision of notice including:
annotating the output substantially simultaneously with generation of the output by the executing program to provide a first annotation indicative of the first usage error, and
creating a record of the first usage error in a manner so that the usage record persists beyond termination of the executing program.

US Pat. No. 10,169,203

TEST SIMULATION FOR SOFTWARE DEFINED NETWORKING ENVIRONMENTS

1. A system comprising:a processor; and
a memory that stores computer-executable instructions that, when executed by the processor, cause the processor to perform operations comprising
receiving a service request comprising a request to instantiate a service,
creating a service order based on the service request, the service order comprising instructions to instantiate the service,
replicating the service order to obtain a replicated service order that comprises instructions to instantiate a replicated service in a test environment, the replicated service comprising a plurality of components,
testing, within the test environment and using a test simulator, paths and connections between the plurality of components of the replicated service,
testing, within the test environment and using the test simulator, device outage handling functionality of the replicated service,
testing, within the test environment and using the test simulator, network outage handling functionality of the replicated service, wherein testing the network outage handling functionality comprises
simulating a network outage using test scripts comprising extensible markup files, and
determining if network traffic is rerouted, by the replicated service, to a shortest available path in response to the replicated service detecting a simulated network outage,
if a determination that the network traffic is rerouted, by the replicated service, to the shortest available path, verifying the replicated service, and
initiating instantiation of the service requested by the service request.

US Pat. No. 10,169,202

CODE COMPONENT DEBUGGING IN AN APPLICATION PROGRAM

International Business Ma...

1. A computer-implemented method for debugging a set of code components of an application program, the method comprising:collecting, with respect to the application program, a set of defect data which indicates a set of defects, wherein the set of defect data is derived from a set of post-compilation users of the application program;
collecting, with respect to the application program, a set of test case data which indicates a set of user interface features of the application program, wherein the set of test case data is derived from a set of development tests of the application program;
determining, using both the set of defect data and the set of test case data, a set of fragility data for the set of code components of the application program; and
debugging, based on the set of fragility data for the set of code components of the application program, the set of code components of the application program.

US Pat. No. 10,169,201

DEBUG MANAGEMENT IN A DISTRIBUTED BATCH DATA PROCESSING ENVIRONMENT

International Business Ma...

1. A computer-implemented method for debug management in a distributed batch data processing environment which uses a shared pool of configurable computing resources, the method comprising:initiating, in the distributed batch data processing environment, a debug configuration to fire a breakpoint based on an achievement of a debug criterion;
detecting, in the distributed batch data processing environment, a data block;
analyzing, by a debug management engine, the data block with respect to the debug criterion;
determining, by the debug management engine, the achievement of the debug criterion by the data block;
firing, in response to determining the achievement of the debug criterion by the data block, the breakpoint based on the achievement of the debug criterion; and
firing the breakpoint with respect to a plurality of data block partitions.

US Pat. No. 10,169,200

CODE COMPONENT DEBUGGING IN AN APPLICATION PROGRAM

International Business Ma...

1. A computer program product for debugging a set of code components of an application program, the computer program product comprising one or more computer-readable storage media and program instructions stored on the one or more computer-readable storage media, the program instructions comprising:program instructions to collect, with respect to the application program, a set of defect data which indicates a set of defects, wherein the set of defect data is derived from a set of post-compilation users of the application program;
program instructions to collect, with respect to the application program, a set of test case data which indicates a set of user interface features of the application program, wherein the set of test case data is derived from a set of development tests of the application program;
program instructions to determine, using both the set of defect data and the set of test case data, a set of fragility data for the set of code components of the application program; and
program instructions to debug, based on the set of fragility data for the set of code components of the application program, the set of code components of the application program.

US Pat. No. 10,169,199

AUTOMATIC MODEL-SPECIFIC DEBUGGER EXTENSIONS

Microsoft Technology Lice...

1. A method which may be used to help application developers and other software developers configure a debugger for debugging software that was written using a particular programming model, the method comprising the steps of:providing a debugger that is architected to be extended by a debugger extension which includes debugger viewing routines that are specific to the particular programming model, the debugger extension providing functionality for viewing state information of a debuggee program while using the debugger, the particular programming model being one of multiple programming models, including programming models applicable with multiple programming languages which are not necessarily the same programming languages for each of the programming models, the particular programming models being within at least one of the following categories: coroutine programming models, multicore programming models, parallel programming models, game development programming models, custom hardware programming models, GUI programming models, presentation programming models, event-driven programming models, messaging framework programming models, wide area network programming models, web application programming models, rich internet application programming models, handheld device programming models, cell phone programming models, database programming models, managed execution environment programming models, native code programming models, script programming models; and
configuring the debugger to recognize debugger environment trigger event, thereby allowing automatic loading of the debugger extension for use with the debugger in response to occurrence of the trigger event in the debugger's execution environment.

US Pat. No. 10,169,198

AGGREGATING DATA FOR DEBUGGING SOFTWARE

International Business Ma...

1. A method for obtaining data to debug an issue that affects a software application, the method comprising:receiving, by one or more computer processors, a request to obtain data associated with an issue that affects an executing software application;
determining, by one or more computer processors, a set of memory spaces utilized by the executing software application and one or more processes supporting the executing software application, wherein determining the set of memory spaces utilized by the executing software application and one or more processes supporting the executing software application further comprises:
determining, by one or more computer processors, a first set of memory spaces utilized by the executing software application; and
determining, by one or more computer processors, a second set of memory spaces utilized by the one or more processes supporting the executing software application, wherein the second set of memory spaces are determined based on (i) one or more relationships between the executing software application and the one or more processes supporting the executing software application, and (ii) one or more relationships among the one or more processes supporting the executing software application;
initiating, by one or more computer processors, a dump function to obtain data within the memory spaces of the determined set of memory spaces; and
storing, by one or more computer processors, the data related to the dumped set of memory spaces, wherein storing the data related to the dumped set of memory spaces includes (i) high-speed capture and aggregation of data to volatile memory and (ii) spooling data within volatile memory to persistent memory.

US Pat. No. 10,169,197

TEMPORARY BREAKPOINTS DURING DEBUG PROCESS

International Business Ma...

1. A method of debugging an executable, comprising:receiving one or more breakpoints related to a call stack in the executable;
receiving an executable in a debug environment;
executing the executable until one or more breakpoints are hit;
upon detecting a breakpoint, temporarily halting executing comprising transferring control to an analysis tool within the debug environment to gather information related to execution of the executable up to the breakpoint,
wherein the analysis tool performs an operation to gather data relating to the execution of the executable without requiring user interaction, the operation comprising:
gathering information related to execution of the executable of the breakpoint;
analyzing the information that was gathered;
identifying one or more outliers within the information, wherein the one or more outliers are identified as one or more data values for one or more parameters within the information that exceed a predefined number of standard deviations for the one or more parameters; and
automatically logging the identified one or more outliers; and
receiving control back from the analysis tool to continue execution in response to the analysis tool collecting relevant information in the executable.

US Pat. No. 10,169,196

ENABLING BREAKPOINTS ON ENTIRE DATA STRUCTURES

Microsoft Technology Lice...

1. A computer system, comprising:one or more processors; and
one or more computer-readable media having stored thereon computer-executable instructions that are executable by the one or more processors to cause the computer system to set breakpoints on a plurality of memory addresses covered by a data structure, the computer-executable instructions including instructions that are executable to cause the computer system to perform at least the following:
receive a reference to a data structure for which breakpoints are requested;
based on receiving the reference to the data structure, identify a data structure layout of the data structure;
based on the data structure layout of the data structure, identify a plurality of memory addresses that are covered by the data structure; and
add the plurality of memory addresses to a list of breakpoints.