US Pat. No. 9,092,224

METHOD AND SYSTEM TO AUTOMATICALLY ENFORCE A HYBRID BRANCHING STRATEGY

NOBLIS, INC., Falls Chur...

1. A method for automatically enforcing a hybrid branching strategy, the method comprising:
receiving, using at least one microprocessor of a computing device, a changeset from a source branch designated for a merge
branch;

in response to receiving the changeset, automatically determining whether a head conflict exists, the head conflict existing
when the source branch lacks a latest changeset for the merge branch or lacks a latest changeset for a protected branch associated
with the merge branch;

upon determining that no head conflict exists, pushing the changeset to the merge branch and automatically initiating execution
of a continuous integration testing pipeline, the continuous integration testing pipeline including a series of tests applied
to the changeset; and

if the changeset passes the series of tests, automatically merging the changeset with the associated protected branch.

US Pat. No. 9,177,051

METHOD AND SYSTEM FOR PERSONAL INFORMATION EXTRACTION AND MODELING WITH FULLY GENERALIZED EXTRACTION CONTEXTS

Noblis, Inc., Falls Chur...

1. A method for extracting information from a set of documents, the method comprising:
receiving a set of documents;
receiving a first concept, the first concept representing first information for extraction from the set of documents, wherein
the first concept comprises a plurality of trigger phrases related to the first concept;

updating the first concept into a first subset and a second subset, the first subset comprising one or more of the plurality
of trigger phrases of the first concept, the second subset comprising remaining trigger phrases of the plurality of trigger
phrases of the first concept;

creating a second concept based on the first concept, the second concept having a definitional dependency from the first concept,
the definitional dependency providing a contextual relationship to the second concept such that the second concept represents
second information within a context of the first information;

updating the second concept into a third concept and a fourth concept, the third concept depending on the first subset of
the first concept, the fourth concept depending on the second subset of the first concept;

selecting the second concept; and
based on the selection of the second concept, extracting from the set of documents, the second information within the context
of the first information.

US Pat. No. 9,405,965

VECTOR-BASED FACE RECOGNITION ALGORITHM AND IMAGE SEARCH SYSTEM

Noblis, Inc., Falls Chur...

1. A method, performed by an ingestion system including one or more servers for enrollment and web crawling, for creating
a searchable database of feature vectors representing images of a faces, the method comprising:
receiving an image of a face;
detecting landmarks on the image of the face and associating the detected landmarks with points;
subjecting the points to a transformation;
aligning a portion of the image of the face in accordance with the transformation;
performing texture mapping on the portion of the image of the face;
computing a first vector based on the portion of the image of the face;
creating a second vector based on a similarity of the first vector to each of a predetermined number of a first plurality
of vectors;

generating a feature vector by concatenating the second vector with a second plurality of vectors, wherein the second vector
and each of the second plurality of vectors each correspond to a respective portion of the image of the face; and

storing the feature vector, along with associated metadata as part of a gallery file, in a database.

US Pat. No. 9,595,143

SYSTEMS, APPARATUS, AND METHODS FOR CONTINUOUS AUTHENTICATION

Noblis, Inc., Falls Chur...

1. A method of continuously authenticating an individual, comprising:
acquiring first biometric authentication information from an individual;
comparing the acquired first biometric authentication information to stored first biometric information to identify the individual;
linking the identified individual with a device carried by the individual, the device including a wavelength-adjustable light
source and a wavelength-adjustable light sensor for acquiring second biometric authentication information from the individual;

continuously acquiring second biometric authentication information from the individual using the wavelength-adjustable light
source and the wavelength-adjustable light sensor of the device, wherein continuously acquiring includes:

irradiating, by the wavelength-adjustable light source, a skin part of the individual at a peak irradiation wavelength corresponding
to a skin molecule; and

detecting, by the wavelength-adjustable light sensor, within a peak detection wavelength band corresponding to the skin molecule,
at least one of an intensity of reflection or an intensity of absorbance associated with the irradiated skin part;

comparing the continuously acquired second biometric authentication information, acquired in accordance with the irradiating
and the detecting at least one of the intensity of reflection or the intensity of absorbance, to stored second biometric information
which includes stored data related to the skin molecule that corresponds to the identified individual; and

authenticating the identified individual based on the comparison.

US Pat. No. 9,767,348

VECTOR-BASED FACE RECOGNITION ALGORITHM AND IMAGE SEARCH SYSTEM

NOBLIS, INC., Reston, VA...

17. A system for creating a searchable database of feature vectors representing images of faces, comprising:
an enrollment server configured to:
receive an image of a face;
compute a first vector based on a portion of the image of the face,
create a second vector based on a similarity of the first vector to each of a predetermined number of a first plurality of
vectors, and

generate a feature vector by concatenating the second vector with a second plurality of vectors; and
a database configured to store the feature vector, along with associated metadata as part of a gallery file.

US Pat. No. 10,304,267

SYSTEMS, APPARATUS, AND METHODS FOR CONTINUOUS AUTHENTICATION

NOBLIS, INC., Reston, VA...

1. A device for determining whether to grant access comprising:a first sensor configured to acquire biometric authentication information, wherein the first sensor is a wavelength-adjustable light sensor;
a second sensor configured to acquire location authentication information;
a wavelength adjustable light-source;
a processor; and
memory storing one or more programs executable by the processor, the one or more programs including instructions for:
linking an identified individual with the device, wherein the device is carried by the individual, and wherein the linking comprises identifying the individual based on first biometric authentication information stored in a database, wherein the first biometric authentication information is biometric authentication information of a first type;
continuously acquiring second biometric authentication information from the individual using the first sensor of the device and the wavelength adjustable light-source, wherein the second biometric authentication information is biometric authentication information of a second type distinct from the first type;
continuously acquiring location authentication information from the individual using the second sensor of the device;
determining whether to grant access or to deny access to the identified individual based on the second biometric authentication information and the location authentication information indicating whether the identified individual has been present in a predefined location for less than a predefined amount of time, wherein denying access to the identified individual comprises deactivating a communication device, in the device, such that it cannot be energized when proximate to an access point.

US Pat. No. 10,061,688

METHOD AND SYSTEM TO AUTOMATICALLY ENFORCE A HYBRID BRANCHING STRATEGY

Noblis, Inc., Falls Chur...

1. A computer-implemented method for automatically enforcing a hybrid branching strategy, the method comprising:receiving, using at least one micro-processor, a changeset from a source branch designated for a protected branch, wherein each branch has stored in a memory an associated ordered list of changesets and a latest changeset for a branch is a most recently added changeset;
in response to receiving the changeset, determining, using the at least one micro-processor, whether a merge conflict exists by determining whether the ordered list of changesets for the source branch lacks the latest changeset in the ordered list of changesets for the protected branch;
responsive to determining that a merge conflict exists:
attempting to merge the source branch with the protected branch in a staging branch, and
responsive to determining that the merge did not succeed, preventing pushing the staging branch to the protected branch;
responsive to successful merging of the source branch with the protected branch, performing a series of tests on the staging branch; and
responsive to the staging branch passing the series of tests, pushing, using the at least one micro-processor, the staging branch to the protected branch.

US Pat. No. 10,331,902

DATA LOSS PREVENTION

NOBLIS, INC., Reston, VA...

1. A computer system for storing data, comprising:one or more processors; and
memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for:
implementing a packing algorithm configured to determine a plurality of locations at which to store a first set of files in a first file system, wherein one or more of the locations is selected so as to increase an amount of slack space on a storage medium, wherein the slack space comprises unused space in the storage medium between the end of a file in the first set of files and the end of a cluster allocated by the first file system to store the file, wherein the cluster is a predetermined minimum amount of contiguous space that can be allocated by the first file system, and wherein:
implementing the packing algorithm comprises replacing a default packing algorithm with the packing algorithm;
the default packing algorithm is configured to create a minimized amount of slack space; and
increasing an amount of slack space on a storage medium comprises creating an increased amount of slack space that is greater than the minimized amount of slack space;
receiving a request to store data on the storage medium; and
in response to receiving the request:
determining whether to use the first file system or a second file system to store the data, wherein the second file system is configured to store a second set of files in the slack space of the first file system;
in response to determining to use the second file system, determining, based on an index of the second set of files that are stored in the slack space, a location in the slack space on the storage medium in which to store the data; and
storing the data at the determined location in the slack space.

US Pat. No. 10,560,552

COMPRESSION AND TRANSMISSION OF GENOMIC INFORMATION

NOBLIS, INC., Reston, VA...

1. A method for communicating compressed genomic information, comprising:receiving information comprising input data representing a nucleic acid sequence, wherein the nucleic acid sequence is an entire genome and the received information comprises one or more nucleotide base indicators and one or more wildcard base indicators;
identifying a plurality of portions in the input data, wherein each portion of the plurality of portions comprises a predetermined number of sequential bases, wherein the predetermined number is equal to or greater than 8, and wherein identifying the plurality of portions comprises sequentially moving along the nucleic acid sequence by one base at a time;
identifying, for each of the plurality of portions, an element in an index that corresponds to the respective portion, wherein the index comprises a plurality of elements corresponding to reference permutations of nucleic acid sequence portions, wherein the index comprises one element each for every mathematically possible permutation of four bases and a wildcard base indicator for nucleic acid sequence portions of the predetermined number of bases;
determining, for each of the plurality of portions, a position in the nucleic acid sequence of the respective portion;
storing, for each of the plurality of portions, as part of a compressed representation of the nucleic acid sequence, information comprising a reference to the respective identified element, and information indicating the determined position of the respective portion, wherein the compressed representation does not include the index; and
transmitting the compressed representation of the nucleic acid sequence over a computer network.

US Pat. No. 10,191,929

SYSTEMS AND METHODS FOR SNP ANALYSIS AND GENOME SEQUENCING

NOBLIS, INC., Reston, VA...

1. A system for determining whether a single-nucleotide polymorphism is indicated in a data structure digitally representing a genomic sequence, comprising;a processor; and
a memory storing instructions executable by the processor to cause the system to:
receive data comprising a plurality of first data structures, each of the plurality of first data structures representing a respective one of a plurality of nucleic acid sequences;
modify one or more of the received first data structures to align the corresponding one or more nucleic acid sequences, wherein modifying the one or more of the received first data structures comprises:
identifying, in the portion of the received data associated with a first one of the plurality of nucleic acid sequences, a subsequence of the first nucleic acid sequence;
computing a hash of the subsequence to determine a corresponding element of an index, wherein the corresponding element includes position data reflecting one or more positions of a reference nucleic acid sequence containing a part of the subsequence, and wherein the index comprises elements corresponding to potential permutations of the first nucleic acid sequence, wherein the elements of the index are limited, based on statistical methods regarding which permutations are most likely to occur, to less than a total possible number of permutations;
comparing the subsequence with the reference nucleic acid sequence at the one or more positions of the reference nucleic acid sequence;
determining, based on the comparison, whether a number of bases greater than a predetermined threshold number of bases are mismatched; and
determining, when the number of mismatched bases is less than the predetermined threshold number of bases, that the subsequence is aligned with the reference nucleic acid sequence;
store, on a computer storage medium, a second data structure representing the occurrences of nucleic acid bases at a plurality of aligned positions in the plurality of nucleic acid sequences;
generate, based on the plurality of nucleic acid sequences, a third data structure digitally representing a consensus sequence, wherein the data structure comprises a representation of an element of the consensus sequence associated with one of the plurality of aligned positions and a representation of a confidence level associated with the element;
if the system determines that the confidence level associated with the element is less than a first predetermined confidence threshold, modify the consensus sequence to indicate that the confidence level associated with the element is less than a first predetermined confidence threshold, and otherwise do not modify the consensus sequence to indicate that the confidence level associated with the element is less than a first predetermined confidence threshold;
compare the consensus sequence with a third data structure digitally representing the reference nucleic acid sequence, wherein the comparing comprises determining whether the element of the consensus sequence matches a corresponding element of the reference nucleic acid sequence; and
determine, when the element of the consensus sequence and the corresponding element of the reference nucleic acid sequence are mismatched, and when the confidence level associated with the element exceeds a second predetermined confidence threshold, that the element of the consensus sequence is a single nucleotide polymorphism, wherein the second predetermined confidence threshold is different from the first predetermined confidence threshold.

US Pat. No. 10,482,007

MEMORY ALLOCATION ON NON-VOLATILE STORAGE

NOBLIS, INC., Reston, VA...

1. A computer system comprising:one or more processors;
a RAM storage medium; and
a non-volatile storage medium storing first instructions configured to be executed by the one or more processors to cause the system to:
receive program code including a first memory allocation function for causing the program code to allocate, during execution of the program code, memory in the RAM storage medium;
determine, based on an amount of memory to be allocated for executing the program code, whether the first memory allocation function in the program code should be replaced with a second memory allocation function for causing the program code to allocate, during execution of the program code, memory in the non-volatile storage medium;
in response to determining to replace the first memory allocation function in the program code, modify the program code to replace the first memory allocation function with the second memory allocation function for causing the program code to allocate, during execution of the program code, memory in the non-volatile storage medium; and
execute the modified program code including the second memory allocation function to allocate memory in the non-volatile storage medium.

US Pat. No. 10,482,336

FACE RECOGNITION AND IMAGE SEARCH SYSTEM USING SPARSE FEATURE VECTORS, COMPACT BINARY VECTORS, AND SUB-LINEAR SEARCH

NOBLIS, INC., Reston, VA...

1. A method, performed by a search system including one or more servers for enrollment and searching, for searching a database of gallery binary vectors representing gallery images of faces, comprising:receiving an input image of a face;
processing the received input image of the face, comprising:
processing through a plurality of layers of a deep neural network (DNN) to generate a k-dimensional feature vector; and
binarizing the feature vector to generate a k-dimensional binary vector by converting respective values in the feature vector to corresponding values of 0 or 1 in the binary vector, wherein the conversion is based on whether respective values in the feature vector satisfy predefined criteria;
dividing the binary vector into a plurality of sub-strings;
creating a plurality of hash tables based on gallery sub-strings of gallery binary vectors; and
comparing one or more of the sub-strings of the binary vector to the one or more of the hash tables to identify a subset of the gallery binary vectors that are closest matches to the binary vector.

US Pat. No. 10,924,502

NETWORK SECURITY USING INFLATED FILES FOR ANOMALY DETECTION

NOBLIS, INC., Reston, VA...

18. A method for creating one or more files for data exfiltration detection, performed at a computer system comprising one or more processors and memory, the method comprising:selecting a data size for a file to be stored on a storage medium of the system, wherein the selected data size is selected based on a volume of data transmitted over a computer network as indicated by a model of network traffic created based on one or more characteristics of traffic of the computer network associated with the system, wherein the volume of data transmitted comprises a volume of outbound network traffic data traversing an interface between the computer network and a wide network to which the computer network is connected; and
after selecting the selected data size and based on the selected data size, storing the file having the selected data size on the storage medium of the system, wherein the file comprises one or more indicators that the file includes sensitive data that is not included in the file.

US Pat. No. 10,915,654

DATA LOSS PREVENTION

NOBLIS, INC., Reston, VA...

1. A computer system for storing data, comprising:one or more processors; and
memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for:
implementing a packing algorithm configured to store a first set of files in a first file system to create an amount of slack space on a storage medium, wherein the slack space comprises space in the storage medium between the end of a file in the first set of files and the end of a cluster allocated by the first file system to store the file, wherein the cluster is a predetermined minimum amount of contiguous space that can be allocated by the first file system;
receiving a request to store data on the storage medium; and
in response to receiving the request:
determining whether to use the first file system or a second file system to store the data, wherein the second file system is configured to store a second set of files in the slack space of the first file system, wherein determining whether to use the first file system or the second file system is based on one or more of a file size of the data, an amount of storage space available on one or both of the first file system and the second file system, a file type of the data, whether the data contains secure information, and a level of security of information contained in the data;
in response to determining to use the second file system, determining, based on an index of the second set of files that are stored in the slack space, a location in the slack space on the storage medium in which to store the data; and
storing the data at the determined location in the slack space.