CONTENT ATTRIBUTES DEPICTED IN A SOCIAL NETWORK

An example operation may include a method comprising one or more of receiving, by a server, a proposed update to data, wherein the data is one or more of a process, and a document, determining keywords based on a parsing of the proposed update, determining a criticalness of the proposed update, based on the keywords, determining a user related to the data; and notifying the user when the criticalness exceeds a threshold.

Skip to: Description  ·  Claims  · Patent History  ·  Patent History
Description
TECHNICAL FIELD

This application generally relates to content changes and more specifically relates to the automatic notification of critical events related to documents via communication in a social network.

BACKGROUND

The current application builds upon existing functionality and determines the relationship of data (e.g. a document, a message, etc.) in the system such that data may be compared against at least one other data in the system to determine the amount of relevance therein. Data such as messages and/or document updates are scanned via the current application to determine the criticalness of the effect of the data. In some embodiments, document owners are notified of the modifications and/or potential modifications to the document.

SUMMARY

An example operation may include a method comprising one or more of receiving, by a server, a proposed update to data, wherein the data is one or more of a process, and a document, determining keywords based on a parsing of the proposed update, determining a criticalness of the proposed update, based on the keywords, determining a user related to the data; and notifying the user when the criticalness exceeds a threshold.

Another example operation may include a system comprising a server including a processor and memory, wherein the processor is configured to perform one or more of receive a proposed update to data, wherein the data is one or more of a process, and a document, determine keywords based on a parsing of the proposed update, determine a criticalness of the proposed update, based on the keywords, determine a user related to the data, and notify the user when the criticalness exceeds a threshold.

A further example operation may include a non-transitory computer readable medium comprising instructions, that when read by a processor, cause the processor to perform one or more of receiving, by a server, a proposed update to data, wherein the data is one or more of a process, and a document, determining keywords based on a parsing of the proposed update, determining a criticalness of the proposed update, based on the keywords, determining a user related to the data, and notifying the user when the criticalness exceeds a threshold.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a system diagram in one embodiment of the current application.

FIG. 1A is a snapshot of a GUI component in one embodiment of the current application.

FIG. 2 is a graphical representation of the relationship of documents in one embodiment of the current application.

FIG. 3 is a graphical representation of the relationship of documents showing document details in one embodiment of the current application.

FIG. 4 is another graphical representation of the relationship of documents in one embodiment of the current application.

FIG. 5 is a further graphical representation of the relationship of documents in one embodiment of the current application.

FIG. 6 is a yet further graphical representation of the relationship of documents in one embodiment of the current application.

FIG. 7 is a message flow of the current functionality of one embodiment of the current application.

FIG. 8 is a second system diagram in one embodiment of the current application.

FIG. 9 is a flowchart of the system notifying the driver in one embodiment of the current application.

DETAILED DESCRIPTION

It will be readily understood that the instant components and/or steps, as generally described and illustrated in the figures herein, may be arranged and designed in a wide variety of different configurations. Thus, the following detailed description of the embodiments of at least one of a method, system, component and non-transitory computer readable medium, as represented in the attached figures, is not intended to limit the scope of the application as claimed but is merely representative of selected embodiments.

The instant features, structures, or characteristics as described throughout this specification may be combined in any suitable manner in one or more embodiments. For example, the usage of the phrases “example embodiments”, “some embodiments”, or other similar language, throughout this specification refers to the fact that a particular feature, structure, or characteristic described in connection with the embodiment may be included in at least one embodiment. Thus, appearances of the phrases “example embodiments”, “in some embodiments”, “in other embodiments”, or other similar language, throughout this specification do not necessarily all refer to the same group of embodiments, and the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.

In addition, while the term “message” may have been used in the description of embodiments, the application may be applied to many types of network data, such as, packet, frame, datagram, etc. The term “message” also includes packet, frame, datagram, and any equivalents thereof. Furthermore, while certain types of messages and signaling may be depicted in exemplary embodiments they are not limited to a certain type of message, and the application is not limited to a certain type of signaling.

FIG. 1 illustrates a system diagram in one embodiment of the current application 100 in accordance with the present disclosure.

There exist two main entities in the system diagram: a list of client devices 102 and a system 106. The client devices may be at least one of a mobile device 102, a tablet 102, a laptop device 102c and/or a personal desktop computer 102d. The client device is communicably coupled to the network 104, which is also communicably coupled to a system 106.

It should be noted that other types of devices might be used with the present application. For example, a PDA, an MP3 player, or any other wireless device, a gaming device (such as a hand held system or home based system), any computer wearable device, and the like (including a P.C. or other wired device) that may transmit and receive information may be used with the present application. The client device may execute a user browser used to interface with the network 104, an email application used to send and receive emails, a text application used to send and receive text messages, and many other types of applications. Communication may occur between the client device and the network 104 via applications executing on said device and may be applications downloaded via an application store or may reside on the client device by default. Additionally, communication may occur on the client device wherein the client device's operating system performs the logic to communicate without the use of either an inherent or downloaded application.

System 106 may be a data center that supports or hosts an online application or service that features a community or network of users, such as a social network or a professional network. Users of system 106 may be termed members because they may be required to register with the system in order to use the application or service.

Members may be identified and differentiated by username, electronic mail address, telephone number, and/or some other unique identifier. Users/members of a service or services hosted by system 106 connect to the system via client devices such as mobile devices (e.g., smart phone, tablet computer, laptop computer), stationary (e.g., desktop computer, workstation) or via any other device containing a processor and memory such as wearable devices. In order to interact with the system, the client devices operate suitable client applications, such as a browser program or an application designed specifically to access a service offered by system 106.

Client devices 102 may be coupled to system 106 via direct channels and/or one or more networks 104 or other shared channels, which may include the Internet, intranets, and/or other networks such a internal Internet or Intranet, and may incorporate wired and/or wireless communication links.

Interactive user/member sessions are generally made through portal 112, which may comprise an application server, a web server, and/or some other gateway or entry point. The portal through which a given session is established may depend on the member\'s device or method of connection. For example, a user of a mobile client device may connect to system 112 via a different portal (or set of portals) than a user of a desktop or workstation computer.

There are at least 3 additional elements in the System 106: a profile server 108, illustration server 112, and a database such as a data storage system 114, which may be a distributed data storage system. Database 114 and/or components of the database include appropriate data storage devices (e.g., disks, solid-state drives).

Illustration server 112 maintains a graph representing the user/member community or communities that make use of services offered by system 106. The graph may be stored within database 114 or may be stored remotely to the system 106 such that messaging between the system and the remote location occurs through the network 104. Within the graph, nodes represent members (either or both individual members and organizations) and are coupled to other nodes via edges. Nodes have attributes (and values for those attributes) corresponding to the members they represent, and an edge may also have attributes related to the connection it represents between two members (e.g., when the members were connected, how they were connected, a strength of the connection). The network of members of a service offered by system 106 may illustratively number in the tens or hundreds of millions.

Profile server 108 maintains profiles of members of the service(s) hosted by system 106, which may be stored in the database 114 and/or elsewhere. An individual member\'s profile may include or reflect any number of attributes or characteristics of the member, including personal (e.g., gender, age or age range, interests, hobbies, member ID), professional (e.g., employment status, job title, employer or associated organization, industry, functional area or role, skills, endorsements, professional awards), social (e.g., organizations the user is a member of, geographic area of residence, friends), educational (e.g., degree(s), university attended, other training), among other similar data. A member\'s profile, or attributes or dimensions of a member\'s profile, may be used in various ways by system components (e.g., to identify who sent a message, to identify a recipient of a status update, to select content to serve to the member or an associated member, to record a content-delivery event, to provide insight regarding the member\'s connections). Some or all profile data of a member may be retained permanently or for a long period of time.

Organizations may also be members of the service (i.e., in addition to individuals), and may have associated descriptions or profiles comprising attributes such as industry (e.g., information technology, manufacturing, finance), size, location, goal, etc. An organization may be a company, a corporation, a partnership, a firm, a government agency or entity, a not-for-profit entity, a group or collection of associated members, or some other entity formed for virtually any purpose (e.g., professional, social, educational). Either or both organizations and individual members may “follow” and/or be followed by other members.

Every action or step described herein is fully and/or partially performed by at least one of any element depicted and/or described herein.

In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. It will be apparent, however, that the present disclosure may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present disclosure. Modifiers such as “first”, “second”, and “third” may be used to differentiate elements, but the modifiers do not necessarily indicate any particular order. For example, a first party may be so named although, in reality, it may be a second, third, and/or fourth party.

In the US patent application 2016/0277527, henceforth referred to as the '527 application, the attributes of a visual representation (referred to as a graphing of the data) are altered such that the strength of the connection is visually altered to reflect the attribute of the connection. This modification may be implemented as a different line between two or more entities such as a darker line for a stronger connection, or a different font such as a larger font for connections that are stronger and smaller font for connections with a weaker connection.

The current application is related to the '527 patents but provides embodiments that depict the relationship among content in a social network in a very efficient manner. Furthermore, the amount of content in a given data may not reflect the importance of the content, but what the content means to an entity, wherein an entity may be a person, a group of people, a project, etc.

The current application determines the relationship of data (e.g. a document, a message, etc.) in the system such that data may be compared against at least one other data in the system to determine the amount of relevance therein, henceforth referred to as the “relevant connection”.

Data is scanned via the system 106 wherein the data may be stored in the database 114, and the current application may be executing on any of the depicted servers in the system diagram 110, 108, 112, a separate server as part of the system 106, or in the client device 102. In another embodiment, the current application may be executing on another computer, such as a remote server (not depicted), coupled to the system 106 and client device 102 via the network 104.

Natural language processing, or NLP is a branch of artificial intelligence that has many important implications on the way that computers and humans interact. Human language, developed over thousands and thousands of years, has become a nuanced form of communication that carries a wealth of information that often transcends the words alone. NLP allows, through processing of text, to obtain the meaning behind the words and allows the system to gather the meaning behind what is there.

There are many applications of NLP in use today and the current disclosure will depict a subset of the more interesting examples.

For example, Semantria, a cloud-based text and sentiment analysis API can extract the keywords, named entities, and phrases from input. Semantria has used Wikipedia's ontology to build a concept matrix that can understand context and extract and tag keywords in articles of text. With Semantria it is also possible to identify and pull common keywords from a collection of texts including their sentiment using what is called facets.

The following code is an example using Semantria in the C# language to process some sample text, followed by the processed output:

using System; using System.Collections.Generic; using System.Linq; using Semantria.Com; namespace Quickstart {   class Program   {    static void Main(string[ ] args)    {      // Replace with your API key and secret      string API_KEY = “”;      string API_SECRET = “”;      // Some sample text      List<String> myText = new List<string>( );
    • myText.Add(“Lisa—there's 2 Skinny cow coupons available $5 skinny cow ice cream coupons on special k boxes and Printable FPC from facebook—a teeny tiny cup of ice cream. I printed off 2 (1 from my account and 1 from dh's). I couldn't find them instore and i'm not going to walmart before the 19th. Oh well sounds like i'm not missing much . . . lol”);
    • myText.Add(“In Lake Louise—a guided walk for the family with Great Divide Nature Tours rent a canoe on Lake Louise or Moraine Lake go for a hike to the Lake Agnes Tea House. In between Lake Louise and Banff—visit Marble Canyon or Johnson Canyon or both for family friendly short walks. In Banff a picnic at Johnson Lake rent a boat at Lake Minnewanka hike up Tunnel Mountain walk to the Bow Falls and the Fairmont Banff Springs Hotel visit the Banff Park Museum. The \“must-do\” in Banff is a visit to the Banff Gondola and some time spent on Banff Avenue—think candy shops and ice cream. Have a Fanta while you're there.”);
    • myText.Add(“On this day in 1786—In New York City commercial ice cream was manufactured for the first time.”);

      // Instantiate a Semantria session       ISerializer serializer = new Semantria.Com.Serializers.JsonSerializer( );       Semantria.Com.Session mySession = Semantria.Com.Session.CreateSession(API_KEY, API_SECRET,         serializer);       // Generate Semantria Document list to send for processing       List<Semantria.Com.Mapping.Document> myOutgoingDocuments = new         List<Semantria.Com.Mapping.Document>(myText.Count);       foreach (string aText in myText)       {         string DocId = Guid.NewGuid( ).ToString( );         Semantria.Com.Mapping.Document aDocument = new Semantria.Com.Mapping.Document( ){Id = DocId,    Text = aText};      myOutgoingDo cuments.Add(aDocument);    }    // Queue a batch of documents    mySession.QueueBatchOfDocuments(myOutgoingDocuments);    // Prepare a list for results    List<Semantria.Com.Mapping.Output.DocAnalyticData> myResults = new   List<Semantria.Com.Mapping.Output.DocAnalyticData>( );    foreach (Semantria.Com.Mapping.Document aDocument in   myOutgoingDocuments)    {      Semantria.Com.Mapping.Output.DocAnalyticData aResult = new   Semantria.Com.Mapping.Output.DocAnalyticData( );       aResult.Id = aDocument.Id;       aResult.Status = Semantria.Com.TaskStatus.QUEUED;       myResults.Add(aResult);      }      // Poll for results until we've got results for everything we sent      while (myResults.Any(item => item.Status == TaskStatus.QUEUED))      {       // Wait 3 seconds in between each poll for results         System.Threading.Thread.Sleep(3000);         // Check for results         IList<Semantria.Com.Mapping.Output.DocAnalyticData>          myIncomingResults = my Session.GetProcessedDocuments( );         foreach (Semantria.Com.Mapping.Output.DocAnalyticData       aIncomingResult in myIncomingResults)         {          for (int i = 0; i < myResults.Count; i++)          {            if (myResults[i].Id == aIncomingResult.Id)            {             myResults[i] = aIncomingResult;            break;          }         }       }      }    }   } }

Below is the output from the above C# code:

“64f5abc2fe604890a6e730ad0b8e3ff6” document queued successfully.

“3c5231606f874770b340393eb124b8cd” document queued successfully.

“94d304bf9eb44f28975f5113d394efea” document queued successfully.

Retrieving your processed results . . . .

Document 64f5abc2fe604890a6e730ad0b8e3ff6 Sentiment score: −0.36575

Document themes:

    • skinny cow ice cream coupons (sentiment: −0.3)
    • Skinny cow coupons (sentiment: −0.3)
    • tiny cup (sentiment: −0.36071876)

Document 3c5231606f874770b340393eb124b8cd Sentiment score: 0.54

Document themes:

    • guided walk (sentiment: 0.57000005)
    • short walks (sentiment: 0.52500004)
    • Banff Gondola (sentiment: 0.26250002)
    • candy shops (sentiment: 0.13125001)
    • ice cream (sentiment: 0.065625004)

Entities:

    • Lake Louise: Place (sentiment: 1.2)
    • Banff Avenue: Place (sentiment: 0.4)
    • Moraine Lake: Place (sentiment: 0.6)
    • Agnes Tea House: Place (sentiment: 0.6)
    • Fairmont Banff Springs Hotel: Company (sentiment: 0.0)

Document 94d304bf9eb44f28975f5113d394efea Sentiment score: 0.18291481

Document themes:

    • commercial ice cream (sentiment: 0.18291481)

Entities:

    • New York City: Place (sentiment: 0.152429)

As can be determined from examining the output from the code, the Semantria code is able to determine the theme of the sample text, as well as elements such as location, business entities, etc. The use of code similar to the above example, it is possible to examine documents and pull out themes, concepts, and overall topics of documents. The themes, concepts, and overall topics may be compared amongst multiple documents to obtain their relationship to each other and ascertain an overall understanding of the relationship between them.

Documents with diagrams and/or graphs may be scanned in addition to text-based documents. For example, graphs usually have x and y axes, which are usually labeled in the graph. These labels may be used as data such that the scanning of the document obtains the information related to the graph, even if the particular details of the data inside the graph is not examined.

It stands to reason that the more detail the search, the more qualified the results will be. If a document has multiple pages of text, the scanning of the document will produce a greater level of details that a document with little text as there is less data in the analysis.

The system scans document 1 and document 2 and determines from the scanning of the documents that the first document has a theme of “project plan 2017 deliverable”. Scanning the data in the document and obtaining the themes, concepts, and overall topics of documents determine this. The second document has the theme of “project plan location-based billing module 2017 deliverable”.

The results of the scanned data are compared, and it is determined that due to the similarities of the scanned data of the two documents, they are related. Both documents are related to a project plan, for example.

The system 106 is kept aware of the data (e.g. messages and modifications to data such as files) in the environment. This is performed via the system interacting with data through APIs of messaging applications such as email and text messages, for example. The system may scan outgoing messages from the client device 102 such that either all of the messages, or a subset of the messages are scanned.

In another embodiment, the system 106 performs a scan of the data associated with the user, such as the timestamp of files associated with the user.

For example, in a Linux-based system, the “stat” command returns that last time that the file was updated.

As a software design example, using an API of the source control application, it is possible to determine all files in the system sorted according to a specific time period such that one can easily determine all files in the system which have been updated since a particular time.

The system scans the data of the users. The data may be present on the local file system of the client device 102, or may reside in the server 106, the database 114, or remote locations such as remote data in the cloud or network 104.

In another embodiment, there are two phases of obtaining the data in the system, the initial scan and the updated scan. The initial scan is performed upon application initialization wherein the process to scan the user's data may process for an extended amount of time. Therefore, through the use of threads, the current application spans off a process that allows the scanning of the user's data to be performed in the background.

Initial scan. This is performed upon the first use of the system, and the data of the user is determined by the scanning of the data of the user, wherein the data includes the messages and local and remote documents. The process of scanning the documents is further detailed herein and the output from the scans are the themes, concepts, and overall topics of the data, henceforth referred to as scan data. The scan data is stored in the system 106, such as in the database 114, for example.

Updated scan. As data is modified, such as existing data being altered or additional data introduced, these changes are determined in the above method wherein the additional scan data is added to the previously stored scan data. The determination of what data has been updated from a given time period is further disclosed herein. For example, the system maintains a list of all data in the system, ordered by last date modified. This list is generated on a periodic basis, such as every 2 days. The data at the top of the list is the data that has been most recently modified. These files are scanned (or rescanned) wherein the scan data is stored as in the previous step.

In another embodiment, particular parts of the device's data, such as directories in the file system, may be excluded by the system wherein the processing of the data does not occur. For example, personal files in a business scenario would not need to be scanned, as the data does not pertain to the organization. The configuration module (as depicted herein) offers the ability to specify parts of the file system (either locally or remotely) for the system to avoid when scanning for data. This is provided by the depiction of the file system using a component that shows the file structure such as JTree in the Java programming language. The organization of the files in a tree component are displayed wherein directories and sub-directories may be selected by checking a checkbox component, for example. When the system is scanning data, the directories and/or sub-directories that have been previously excluded in the configuration module are skipped.

The current application requests access to the user's data. This may be provided upon application installation or first-time execution, as is normally provided for applications installed on a device, such as a mobile device 102a. A notification is presented, displaying the access that the installed application seeks. By continuing the current application will maintain the access verified. The application requests access to the local file system and access to file management applications thereby retaining access to the user's local data in the current device and access to remotely stored files, such as those stored in the cloud, or network 104, as well as data stored beyond the cloud such as in the database 114.

The application also requests access to the user's messaging application to scan the messages, such as email, chat, etc. The user's messages are accessed through Application Program Interfaces (APIs) of the messaging applications thereby gaining access to messages send and/or received.

In another embodiment, a configuration module is accessible via the current system. For example, the current system executing on the client device 102 contains a menu wherein the navigation of different parts of the application is possible. This navigation element may be implemented by many various Graphical User Interface (GUI) components, such as dropdown components, tabbed components, voice detection, etc. The configuration module allows for the creation of preferable elements to determine the impact of the relationship of data.

FIG. 1A shows a Graphical User Interface (GUI) of a configuration module in one implementation of the current application 120 executing on the client device 102. The GUI screenshot depicts the configuration options for configuring elements of the preferable relationships among data in the system. The configurable elements are hardcoded in the software of the current application. Other elements may be configured using various GUI components wherein other elements may be configured in a similar manner without deviating from the scope of the current application.

The configuration module contains one component 122 wherein the configurable elements reside. A title “Elements of Importance for Data Modifications” informs the reader of the category of configuration.

There are 4 components listed that specify whether the system 106 will determine a higher priority when determining importance or criticalness of a data modification 126. Clickable button components 124 are selected via a pointing device for those elements that are to be considered a higher priority. The buttons are not radio button components and more than one button may be selected at the same time.

A first item, “Time of Day” specifies whether the time of the data modification is considered important when analyzing a data modification.

In another embodiment, another popup window is display upon selection of the “Time of Day” component such that the specific time of day deemed more important may be entered [not depicted].

A second item, “Organizational Hierarchy” specifies whether the person's organizational position in the environment should part of the calculation of the criticalness of the modification. As previously depicted, the system 106 may interface with a database of people in the environment, or interface with the organization's HR application via APIs to determine the organizational hierarchy.

A third item, “Project Slip” specifies whether the mentioning of a project slip, or other variations of that phrase causes the data modification to be of a critical nature.

A final item, “Base Code Change” specifies whether the modification of a code file or text indicating the modification of a code change wherein the code file is considered a “base” level code file is considered to be of a critical nature. There exists a listing of all code files and/or code areas composing the base or lower level of the code structure of which the mentioned code file is compared against.

In another embodiment, other important keywords may be introduced in the configuration module (not depicted), wherein scan data containing those input keywords are deemed as high priority by the system.

The list of configuration elements listed above serve to introduce some of the possible areas that may be configured. One versed in computer design and development may easily be able to implement other areas of configurable elements without deviating from the scope of the current application.

A “Submit” button 128 exists on the bottom of the window wherein the selected entries are submitted and stored in the current application.

When determining the criticalness of a data modification, consensus rules. Thus, the historical natures of the data change affects whether a data modification is considered critical.

In a project plan scenario, the historical characteristics of a successful project plan are built into the logic of the current application when determining the data modification. For example, if historically such as in the user's past work environment, the following have impacted project plans:

    • features initiated late in the project cycle
    • poor quality insurance
    • employee attrition
    • failure of timely submissions (without bugs) for critical features
    • etc.

These items will be deemed of high importance when gauging the criticalness of the data modification. In calculating the determination of data modifications, the historical impact of categories is built into the logic of the system 106.

In another embodiment, the keywords that the user believes are critical are entered into a text field component in the configuration module [not depicted]. These added keywords are used in calculation of the criticalness of data modifications.

Graphical displays of the relationships are shown in the following figures, in multiple implementations of the current application. The relationships are determined by the scanning of documents in the system such as documents stored locally in the client device 102 or remotely as coupled with the network 104. The system 106 scans the data of the user, including files and/or messages.

The related content is determined as related to document “X”, which is the comparative document in the following figures. The content in document “X” is first scanned by the system 106 wherein keywords and theme of the document is stored by the system. As the other documents in the system are scanned, they either relates entirely, relate partially, or do not relate to the document “X”.

The amount of relation to document “X” is visually depicted herein. The amount of related data does not determine the strength of the relationship to document “X” only, but the content of the related document. Thus, a single line in a document may cause a high relationship where in another document; pages of data may be present obtaining a lower relationship.

The amount of impact of the relationship of data is most important in building relationships among data in a system.

To determine impact, the system determines scan data as further disclosed herein. The scan data is prioritized according to the important keywords as determined in the configuration module, such as those elements contained in the configuration section “Elements of Importance for Data Modifications”

In one embodiment, the important keywords and areas of data as configured in the configuration module, and those keywords that the user may have entered in as determined to be of high priority when examining data and/or data modifications.

In another embodiment, the user sending the data, for example a message or the person modifying a document, is considered when determining the impact of a change to data. The system 106 has obtained a hierarchy of the users in the environment. This is determined via the interaction with organizational data such as a database (e.g. database 114) containing the employee data in the organization, or API interactions with the organization's HR application, for example.

For example, if a person updating the data is higher in the organization's hierarchy, then the probable impact of the data modification is higher than a person lower in the organization's hierarchy.

FIG. 2 shows a graphical representation of the relationships of documents in the system as related to document “X” in one implementation of the current application 200.

The graphical representation is presented in the current application executing on the client device, such as devices 102a, 102b, 102c, 102d.

There are 6 documents 202 that have a relationship to document “X” 204, and 2 documents that have a different relationship to document “X” 206. This different relationship is content in document X 204 matches the 2 documents 206 than the content matching the 6 documents 202.

Even though there are only 2 documents matching content 206, the strength of the relationship between these documents is higher than the strength of the relationship of the 6 documents 202, as noted by the darker circle 206.

FIG. 3 shows a graphical representation of the details of a document in one implementation of the current application 300.

The popup 302 may be displayed upon the pointing device hovering over a document icon, wherein after a timeout set in the code, an event is thrown, and a method is called to show the popup window 302 such that the details of the document is presented on the user interface (UI).

There exists an “Open” button 304 that executes the application related to the document type of the document.

In another embodiment, the lines and circles are clickable wherein additional information may be displayed, such as the line between document X 204 and the group of documents 206. When the lines/circles are clicked on, the current application is presented the scan data of the data as obtained when the documents were scanned. The scan data is obtained from the stored data of the current application, such as from database 114 (not depicted).

FIG. 4 shows a second graphical representation of the relationships of documents in the system as related to document “X” in another implementation of the current application 400.

In the current depiction, the documents on the left 402 have been altered in size to reflect each document's relationship to document “X” wherein the larger the size of the document, the greater the relationship to document “X”, and the less the size of the document, the smaller the relationship to document “X”.

FIG. 5 shows a third graphical representation of the relationships of documents in the system as related to document “X” in another implementation of the current application 500.

The strength of the relationship of the documents in relation to document “X” is indicated by the thickness of the connection line 502.

Since there are multiple documents within the circle of documents, the line 502 reflects the overall relation to document “X” for the documents as a whole.

FIG. 6 shows a fourth graphical representation of the relationships of documents in the system as related to document “X” in another implementation of the current application 600.

In addition to the thicker line between the two documents, and the display of the modified sizes of the documents icons, the thickness of an extended line from the thick line 502 to the document icon *602, 604) also indicates the strength of relationship between the document and document “X”.

The ownership of data can be understood by software logic. For example, files stored in an operating system file structure contain the owner of the file, or the sender of a message such as an email is the owner of the message. In software design and development, the owner of a file (or the person assigned as having ownership of a code file) may be obtained via Application Program Interfaces (APIs) of source control programs. Therefore, it is possible for the system 106 to obtain the owner of a given document.

When documents are altered, according to the modification made to a given document, it may be necessary to inform the owner of the document of the said change, especially in circumstances wherein the update is of a critical nature.

This notification is performed by the system 106, based on the criticalness of the modification made. To determine the criticalness of the change, the document is scanned by the system, and the impact of the change is calculated by the logic of the current application.

FIG. 7 is a flow of the overall functionality of the current application in one implementation 700. The system 106 scans the data (e.g. messages and files) of the users of the current application 708 wherein the system is aware of data that has been updated. The scanning of data is further disclosed herein.

A user of the current application sends a message such as an email or text message 710 using a device 702. This data update is determined by the system such that the message is routed through the system 106, or the system detects the message via access to the message application executing on the device 702 through an API of the messaging application.

For example, the current application obtains the latest data updates by obtaining a list of all data modified in the system, ordered by latest data listed first. The messages are included in this data and include the messages sent/received by the user since the last time the request was executed.

The system 106 receives all messages sent/received by the user from the messaging application. The current application may send a copy of the outgoing/incoming messages to the system 106 in one embodiment. In another embodiment, the messages are obtained via access to the message data through APIs that provides access to the message data.

The data is scanned, both files and message data wherein the result is the scan data and is further disclosed herein

The system scans the message 714 wherein the theme and keywords are detected through functionality further disclosed herein. The system determines that the message a high priority data modification by analyzing the theme and keyword(s) of the message 716 and determines the related data and owner of the data to the message 718, such as a file in the system 704.

The text of the message is added to the document 720. This may be adding the text of the message at the top of the document 704, or interacting with the application associated with the document, such as through APIs.

The current application, ascertaining the owner of the data (document or message), may notify the owner of the data via a notification message. The data owner may be determined by determining the “created by” element of a file, or by determining the sender of message data as obtained in the API of the messaging application.

The owner of the document 702 is notified by the system wherein a notification message is sent to the owner with text indicating the document that has been automatically updated 722.

In another embodiment, the text of the message 710 is also included in the notification message 722, allowing the document owner to quickly view the message originating the document update.

As a first example, User A sends a message with the following content:

    • [Email]
    • Subject: Location Based Billing Module Project
    • Message: Hello Jim,
    • Due to an unforeseen issue with the linking problem, a restructure of the module DME_Billing_21 is necessary. I believe that the current project will be delayed a minimum of 4 weeks. Please give me a call to determine the impact. Bob

The message is scanned via the system 106 and the following keywords are determined:

    • Location-Based Billing Module Project
    • module DME_Billing_21
    • project delayed 4 weeks

The system 106 determines that the message is important from the keyword “delayed” as a delay to a schedule is a critical issue that may affect many people in an organization. As a result, the message is added to the project-planning document.

In one embodiment, the text of the message is added to the top of the project-planning document. In another embodiment, the text of the message is added as a note through the API of the project planning application.

In addition, the owner of the project-planning document is sent a notification with the text of the notification being the message text.

As a second example, User A sends a message with the following content:

[Text Message]

Jim, what are we going to do to handle the callData module errors? I believe a meeting between you and I and the team is necessary. Bob

The message is scanned via the system 106 and the following keywords are determined:

    • callData module
    • errors

The system 106 determines that the message is important from the keyword “callData module” and “errors” as the callData module is a base code module, therefore the system 106 notifies the owner of the callData module as is determined by the system interfacing with the source code organization application.

As a third example, the system obtains the following data as a call to User A receives wherein the speech-to-text data is stored and obtained by the current system 106.

    • [Call—Speech_to_Text]
    • Jim, this is Bob, I wanted to give you a heads up on the changes requested in the transferCDR module, the impact may be significant. Give me a call when you get a chance.

The message is scanned via the system 106 and the following keywords are determined:

    • changes
    • transferCDR

The system 106 determines that the message is important from the keyword “transferCDR” and “changes” as the transferCDR module is a base code module, therefore the system 106 notifies the owner of the transferCDR module as is determined by the system interfacing with the source code organization application.

Currently, it is estimated that 330,000 of transport-related accidents are the result of texting while behind the wheel of a transport. The following are some of the most current statistics in the matter:

The National Safety Council reports that cell phone use while driving leads to 1.6 million crashes each year. Nearly 330,000 injuries occur each year from accidents caused by texting while driving. 1 out of every 4 transport accidents in the United States is caused by texting and driving. Texting while driving is 6× more likely to cause an accident than driving drunk. Answering a text takes away your attention for about five seconds. Traveling at 55 mph, that's enough time to travel the length of a football field. Texting while driving causes a 400% increase in time spent with eyes off the road. Of all cell phone related tasks, texting is by far the most dangerous activity. 94% of drivers support a ban on texting while driving. 74% of drivers support a ban on hand-held cell phone use.

In a transportation related embodiment of the current invention, the current system seeks to provide notification to the driver of a transport if the current transport system determines that the driver may be utilizing their mobile device. While texting may be the worst activity while driving, utilization of the device in any manner raises the potential for an accident. What are actions of a driver when the driving is accompanied by mobile phone usage?

FIG. 8 is a system diagram of the current application 800. At least one device is located in a transport 802, which communicates with a network 808. The network communicates with a server 810.

The transport 802 contains a device such as an in-transport navigation system or entertainment system, or any device including a processor and memory 804, henceforth referred to as the transport system and acts as the main communication device for the current application, and/or a client device 806, and an image/video camera 807, which communicates with the transport system 804. The client device being a device may communicate with the transport system 804 or may directly connect with the network 808. Transport system 804 contains a processor and memory. The processor receives input, analyzes/parses the input, and provides an output to one or more systems, modules, and/or devices.

The client device may be least one of a mobile device, a tablet, or a laptop device. It should be noted that other types of devices might be used with the present application. For example, a PDA, an MP3 player, or any other wireless device, a gaming device (such as a hand held system or home based system), any computer wearable device, and the like (including personal computer or other wired device) that may transmit and receive information may be used with the present application. The client device and/or the in-transport navigation system may execute a user browser used to interface with the network 808, an email application used to send and receive emails, a text application used to send and receive text messages, and many other types of applications. Communication may occur between the client device and/or the in-transport navigation system and the network 808 via applications executing on said device and may be applications downloaded via an application store or may reside on the client device by default. Additionally, communication may occur on the client device wherein the client device's operating system performs the logic to communicate without the use of either an inherent or downloaded application.

A server 810 exists in the system, communicably coupled to the network 808, and may be implemented as multiple instances wherein the multiple instances may be joined to form a complete cryptocurrency wallet or may be singular in nature. Furthermore, the server may be connected to a database (not depicted) wherein tables in the database are utilized to contain the elements of the system and may be accessed via queries to a database, such as Structured Query Language (SQL), for example. The database may reside remotely to the server coupled to the network 808 and may be redundant in nature.

Notification Details

Driver's head Driver's head is tilted downward looking at a mobile device Driver holding a Mobile device I front of the driver. Hand holding mobile device the mobile device Eyes not on the road Driver's eyes are off of the road for a period of time, (e.g. greater than 4 seconds) Driver looking at a Driver's eyes focusing to a mobile device mobile device Driver using a One or both hands holding or providing input to a mobile device mobile device

Each of the above items may be tracked via the use of a device used to monitor occupants in a transport, such as monitoring camera 807, as an example.

The movement signals are received from the monitoring camera 807, which sends images/video to the transport system 804 for processing. The transport system tracks the movements of the occupants' head in real-time, providing the ability for the altering of the direction of the headrest speakers as the occupants' head move.

In one embodiment, if the image/video received from the monitoring camera 807 at the transport system 804 shows the user holding a mobile device such as client device 806, it is determined that the user is driving while using a mobile device. The current speed of the transport is examined and if the speed is greater than the threshold speed wherein the threshold speed is the speed of the transport determined to be a speed wherein use of a mobile device is not recommended, then a notification is sent to the occupant.

The notification may be at least one of the following:

System Notification

Transport System - An audio message sent from the transport system Audio 804 through the speakers of the transport. The audio message is: “Use of a mobile device is not recommended.” Driver's seat The vibration of the driver's seat. Transport System - The lowering of the audio in the transport such Audio that the audio is not at a listening volume. The audio in the transport is returned to a previous level when the transport system 804 determines that the mobile device is no longer in possession of the driver. Transport Alert A warning light is displayed on the driver's System control panel. Transport Alert A warning light is displayed on the driver's HUD. System - HUD

FIG. 9 is a flowchart of the system notifying the driver while it is determined that the driver is using a mobile device while driving in one implementation of the current application 900.

The transport system 804 receives data from a transport device, such as a monitoring device 807. The analysis of the data, e.g. image and/or video, determines that the driver is utilizing a mobile device as further disclosed herein 902.

A check is made to determine the transport's current speed 904. The current speed is compared against a threshold speed wherein the threshold speed is the speed that is hardcoded in the logic of the transport system 804 and is the speed of the transport determined to be safe for utilization of a mobile device, e.g. 0 (zero) miles per hour. If the current speed is less than or equal to the threshold speed the process ends and no further processing is performed.

If the current speed of the transport is greater than the threshold speed, the driver is notified. The notification is at least one of the following:

    • An audio message played through the sound system 906.
    • The driver's seat is vibrated 908.
    • The volume of the audio in the transport is lowered 910.
    • A warning light is displayed on the control panel of the transport 912.
    • A warning light is displayed on the HUD of the transport 914.

Other notifications may be designed and developed by others and do not deviate from the scope of the current application.

Claims

1. A method, comprising:

receiving, by a server, a proposed update to data, wherein the data is one or more of a process, and a document;
determining keywords based on a parsing of the proposed update;
determining a criticalness of the proposed update, based on the keywords;
determining a user related to the data; and
notifying the user when the criticalness exceeds a threshold.

2. The method of claim 1, wherein the proposed update is comprised of one or more of:

a scanning of the document; and
a message received, by the server, related to the proposed update, by a device.

3. The method of claim 2, comprising determining the proposed update by comparing an initial scan of the document and an updated scan of the document.

4. The method of claim 1, wherein the user is one or more of:

an owner of the document; and
a person responsible for the process.

5. The method of claim 1, wherein the criticalness is determined by comparing the keywords with a list of critical keywords.

6. The method of claim 1, wherein the threshold is one or more of:

a number of modified lines in the document;
a modification to predetermined portions of the document; and
a modification to predetermined words of the document.

7. The method of claim 1, wherein the notifying includes the proposed update.

8. A system, comprising:

a server including a processor and memory, wherein the processor is configured to perform: receive a proposed update to data, wherein the data is one or more of a process, and a document; determine keywords based on a parsing of the proposed update; determine a criticalness of the proposed update, based on the keywords; determine a user related to the data; and notify the user when the criticalness exceeds a threshold.

9. The system of claim 8, wherein the proposed update is comprised of one or more of:

a scan of the document; and
a message received, by the server, related to the proposed update, by a device.

10. The system of claim 9, comprising determine the proposed update by a comparison of an initial scan of the document and an updated scan of the document.

11. The system of claim 8, wherein the user is one or more of:

an owner of the document; and
a person responsible for the process.

12. The system of claim 8, wherein the criticalness is determined by a comparison of the keywords with a list of critical keywords.

13. The system of claim 8, wherein the threshold is one or more of:

a number of modified lines in the document;
a modification to predetermined portions of the document; and
a modification to predetermined words of the document.

14. The system of claim 8, wherein the notifying includes the proposed update.

15. A non-transitory computer readable medium comprising instructions, that when read by a processor, cause the processor to perform:

receiving, by a server, a proposed update to data, wherein the data is one or more of a process, and a document;
determining keywords based on a parsing of the proposed update;
determining a criticalness of the proposed update, based on the keywords;
determining a user related to the data; and
notifying the user when the criticalness exceeds a threshold.

16. The non-transitory computer readable medium of claim 15, wherein the proposed update is comprised of one or more of:

a scanning of the document; and
a message received, by the server, related to the proposed update, by a device.

17. The non-transitory computer readable medium of claim 16, comprising determining the proposed update by comparing an initial scan of the document and an updated scan of the document.

18. The non-transitory computer readable medium of claim 15, wherein the user is one or more of:

an owner of the document; and
a person responsible for the process.

19. The non-transitory computer readable medium of claim 15, wherein the criticalness is determined by comparing the keywords with a list of critical keywords.

20. The non-transitory computer readable medium of claim 15, wherein the threshold is one or more of:

a number of modified lines in the document;
a modification to predetermined portions of the document; and
a modification to predetermined words of the document.
Patent History
Publication number: 20200026696
Type: Application
Filed: Jun 17, 2019
Publication Date: Jan 23, 2020
Inventor: David Gerard Ledet (Allen, TX)
Application Number: 16/442,878
Classifications
International Classification: G06F 16/23 (20060101); G06F 16/93 (20060101); G06F 17/24 (20060101);