This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2019-75192, filed on Apr. 10, 2019, the entire contents of which are incorporated herein by reference.
The embodiments discussed herein are related to an information control program, an information control method, and an information control device.
These days, the amount of information that can be accessed by humans, like billions of Web sites, is so large that it is difficult for a person to view all of the information even over a lifetime. According to a recent survey, the number of Web sites is increasing by 100 million annually. For this reason, information control for providing information that matches each user is normally performed.
As a conventional technique for providing information that matches each user, there are communication devices and a communication system with which liking matching among people in the same space and time is performed so that information of interest already owned by users are exchanged. There are also information exchange devices capable of selecting information to be transmitted in accordance with the situation on the transmission side.
For example, Japanese Laid-open Patent Publication No. 2001-67400, Japanese Laid-open Patent Publication No. 2008-129886, and others are disclosed as related art.
According to an aspect of the embodiments, a non-transitory computer-readable storage medium storing a program that causes a processor included in a computer to execute a process, the process includes transmitting a first profile indicating a feature of a first user to a device, acquiring a second profile indicating a feature of a second user from the device, establishing communication with the device, in accordance with association between the first profile and the acquired second profile, and notifying the device having the communication established of event information corresponding to a context indicating a state of the first user.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention.
By a conventional technology, information exchange is limited to information existing in the same time and space, and information that matches a user is not obtained from among many and unspecified pieces of information. Furthermore, if persons who have exchanged information become farther apart in terms of distance, it is not possible for the persons to exchange deeply-associated information that will be generated in the future.
One aspect aims to provide an information control program, an information control method, and an information control device that enable the followings not only in the past and present but also in the future: finding out, from among unknown and unspecified many people, persons who have a demand-supply relationship, an acquaintance relationship, or commonality in interests and concerns, and allowing the persons having association with one another to quickly exchange useful information with one another.
According to one embodiment, in a case where a demand-supply relationship is formed in the present or the future, or where commonality is found in interests and concerns, it is possible to establish a communicable relationship even between unknown and unspecified persons, without causing anyone trouble. Paradoxically, useless communication between persons who are not interested in each other can be reduced. As a communicable state has been established beforehand between persons having a high degree of association with each other, a state and a change in the state around each of the persons can be promptly reported as needed. Further, when finding association from exchanged profiles, a user can change the granularity of important attributes and concepts. Thus, a person can adjust the criteria for determining association between agents.
Hereinafter, an information control program, an information control method, and an information control device according to embodiments will be described with reference to the accompanying drawings. The components with like functions in the embodiments are denoted by like reference numerals, and will not be repeatedly explained. Note that the information control program, the information control method, and the information control device described in the following embodiments are merely examples, and do not limit embodiments. Further, the respective embodiments described below may be combined as appropriate, as long as there are no contradictions.
In this embodiment, information processing not to be handled by a person is left to software (an agent) serving as a virtual self of the target person, and the agent providing information matching the target person is interpreted as information control. Note that an agent will be sometimes referred to as a “virtual self” in the description below. Further, a target person having a virtual self may be in the position of a user who uses services, goods, and skills to be provided, or may be in the position of a provider who provides services, goods, and skills to users. The reason why the term “target persons” is used herein is that a “virtual self” profiles the features of an “individual” such as a person, an item, and a service, and serves as a virtual self (an agent) of the “individual” in processing information. In this embodiment, a target person is the employer (client) of a virtual self.
An information control device that serves as an agent that is a virtual self of a user in performing processing may be a processor existing in reality, such as a smartphone, a tablet terminal, or a personal computer (PC) owned by the user, for example, or may be a processor in a data center or in an edge router in edge computing.
Note that, in the example cases to be described in this embodiment, terminal devices such as smartphones possessed by respective users are used as information control devices that serve as agents in performing processing. However, examples of application of information control devices are not limited to terminal devices possessed by the respective users, as described above. For example, information control devices may also be any appropriate devices in a system, such as nodes in a network or servers in a data center. In an example, in a system configuration in which terminal devices (clients) to be used directly by users are separate from a server device, the server device may provide a function as an information control device. In such a system configuration, the server device functioning as an information control device serves as an agent in performing processing, and outputs information to be provided to the users to the terminal devices.
In this embodiment, the client (employer) of an information control device that serves as an agent in performing processing may be both a user who is provided with services, skills, and information, and a provider who provides services, skills, and information. In the description below, for each purpose that changes from moment to moment, the target person who uses a supplied item is called a user, and the target person who provides a service is called a provider. Further, in a case where no distinction is made between users, the term “user (provider)” is used.
In this embodiment, a profile indicating the features of the user (provider) is set beforehand in each agent. Each agent then performs profile exchange, to exchange set profiles with one or a plurality of other agents.
Each agent that has performed the profile exchange compares the profile of another agent acquired through the profile exchange with its own profile, and determines whether these agents are the agents of users (providers) having association (commonality) with each other's features. On the basis of the results of this evaluation, each agent acquires an access method from the other agent having association (commonality), and establishes a relationship in which the agents having association (commonality) can communicate with each other.
Each agent then notifies the other agent having a relationship established of an event based on a context indicating the state of the user (provider), such as a change in the context, for example.
The context indicating the state of the user (provider) is dynamic, changes in a short period of time. The context is divided into an external context and an internal context, for example. An example of the external context is an environment surrounding the user (provider), and changes regardless of the intention of the user. The external context may be temperature, humidity, weather, season, and the like, for example. The external context also includes the location of the user (provider), the current time, and the state of the user (provider) (during working hours, driving a car, remaining business hours until closing, or the like), for example. Further, changes in the external context include not only the occurrence of an emergency, such as the occurrence of a disaster, an accident, or an incident, but also an input of data or information to the user (provider).
Meanwhile, an example of the internal context indicates the physical condition and the emotion of the target person. The internal context includes information relating to physical conditions, such as whether the user (provider) is tired or energetic, or is sick or healthy, for example. The internal context also includes information relating to emotions, such as whether the user (provider) is in a good mood or is depressed, or wants to go home early or wants to act more, for example.
Each agent acquires a context indicating the state of the user (provider). For example, each agent acquires an external context from the results of detection performed by a sensor or the like, or from the results of an inquiry to a weather site or the like. Each agent also acquires an internal context from the contents of the user's (provider's) posting to a social networking service (SNS), an interview survey with the user (provider), the web service usage status (search words used on search sites) of the user (provider), or the like, for example.
When there is a change in the acquired context, each agent then notifies an agent having a relationship established of the contents of the changed context as an event. The agent notified of the event outputs the reported event to a display or the like, and notifies the user (provider) of the event.
For example, in a case where there is a change in the environment (temperature, humidity, and weather) surrounding the user (provider), the state (during working hours, driving a car, remaining business hours until closing, or the like) of the user (provider), the physical condition (illness, health condition, or the like), and the emotional state (in good mood, depressed, or the like), each agent issues a notification of the changed context as an event. Data inputs that affect users (providers) are also handled as events. The notified agent outputs the contents of the event (a change in the state of the user (provider) of the agent that has issued the event notification) to a display or the like, if needed.
In this manner, each agent constructs a relationship that enables communication between agents having association (commonality) with each other's features by exchanging profiles. Each agent then notifies the other agent having a relationship established of an event based on the state (context) of the user (provider). In a case where there is a notification of an event from another agent having a relationship established, each agent also outputs the reported event. Thus, the user (provider) of an agent may establish a relationship in which the user (provider) can communicate even with an unspecified and unknown person who has a demand-supply relationship, has commonality in interests and concerns, or has a possibility that the relationship or the commonality/association becomes stronger not only in the past and the present but also in the future. Dynamic states and changes in the states around the respective persons can be promptly reported to, each other. Not only between known persons but also between unspecified and unknown persons, it is possible to find useful services, skills, and information, without bothering the target person. Further, event notifications are transmitted only to persons having association with each other. Thus, it is possible to reduce communication traffic between persons not interested in each other.
[Configuration of an Information Control Device]
The communication unit 10 controls communication with other computers and the like, such as information control devices 1a, 1b, 1c, and the like, regardless of whether wired or wireless. The communication unit 10 is a communication interface or the like, such as a network interface card (NIC), for example.
The storage unit 20 stores various kinds of data and the like, such as a program to be executed by the control unit 30, profile information 21, context information 22, and association information 23, for example. The storage unit 20 is equivalent to a semiconductor memory element such as a random access memory (RAM), a read only memory (ROM), or a flash memory, or a storage device such as a hard disk drive (HDD).
The profile information 21 is a data file or the like that stores a profile of a user (a provider) of the information control device 1.
As illustrated in
Further, each attribute in the profile information 21 has a hierarchical structure including lower-level attributes (intermediate attribute items in the drawing) under higher-level attributes (greater, attribute items in the drawing).
Also, as illustrated in
As illustrated in
As illustrated in
As described above, in the profile information 21a, 21b, 21c, and 21d, each lower-level attribute (for example, the Japanese food category) has a structure in which the attribute value of the higher-level attribute (for example, a broad category) is specified.
Returning back to
The association information 23 is data file or the like indicating the agents of the other ends (associates) with which a relationships has been established. For example, the association information 23 stores, in text format, the network addresses, the access methods, and the like of the information control devices 1a, 1b, 1c, and the like related to the agents which a relationship has been established.
The control unit 30 is a processing unit that controls the overall processing to be performed by the information control device 1. The control unit 30 is formed with a central processing unit (CPU), a micro processing unit (MPU), or the like executing a program stored in an internal storage device using the RAM as a work area, for example. Alternatively, the control unit 30 may be formed with an integrated circuit such as an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA), for example.
The control unit 30 includes an acquisition unit 31, a profile exchange unit 32, a relationship construction unit 33, a notification unit 34, and an output unit 35. Note that the acquisition unit 31, the profile exchange unit 32, the relationship construction unit 33, the notification unit 34, and the output unit 35 are an example of an electronic circuit included in a processor and an example of a process to be executed by the processor.
The acquisition unit 31 is a processing unit that acquires a profile and a context relating to the user (provider) of the information control device 1.
Specifically, the acquisition unit 31 receives an information input (an input of the attribute values of the respective attributes, for example) relating to the profile of the user (provider) via a graphical user interface (GUI) or the like. The acquisition unit 31 then turns the input attribute values of the respective attributes into a hierarchical structure based on the information input relating to the profile, and stores the hierarchical structure as the profile information 21 into the storage unit 20. In other words, the acquisition unit 31 is an example of a generation unit that generates the profile information 21.
Note that, when information about a profile is input through a GUI or the like, the acquisition unit 31 may acquire the profile information 21 as a template from another information control device 1a, 1b, 1c, or the like, and receive an input of the attribute values of the respective attributes based on the acquired profile information 21, For example, the acquisition unit 31 acquires the profile information 21c (see
The acquisition unit 31 also acquires the state (during working hours, driving a car, remaining business hours until closing, or the like) and the physical condition (illness, health condition, or the like) of the user (provider), from the results of detection performed by a sensor (not illustrated) or the like. The acquisition unit 31 also acquires the environment (temperature, humidity, and weather) surrounding the user (provider), from the results of an inquiry make to a weather site or the like. The acquisition unit 31 further acquires the state and the emotion (in good mood, depressed, or the like) of the user (provider), from the contents of the user's (provider's) post on an SNS, an interview with the user (provider), the Web service usage status of the user (provider), and the like. The acquisition unit 31 then stores the acquired contexts as the context information 22 into the storage unit 20.
The profile exchange unit 32 is a processing unit that exchanges profiles to notify the agent(s) of one or a plurality of the information control devices 1a, 1b, 1c, and the like, of the profile information 21.
Specifically, the profile exchange unit 32 issues a profile exchange request to many and unspecified information control devices 1a, 1b, 1c, and the like, using a broadcast or multicast function of a lower layer protocol, for example, via the communication unit 10. The profile exchange unit 32 then establishes communication with the information control devices 1a, 1b, 1c, and the like that have responded to the request, and notifies the information control devices 1a, 1b, 1c, and the like of the profile information 21 read from the storage unit 20. The profile exchange unit 32 also acquires profile information from the other party (the information control devices 1a, 1b, 1c, and the like) with which communication has been established. The profile exchange by the profile exchange unit 32 may be performed at any appropriate time preset by the user (provider) in a memory or the like, or may be performed at predetermined intervals (once a week, for example) that are set in advance.
The relationship construction unit 33 is a processing unit that constructs a relationship with one or a plurality of agents having a profile related to the user (provider) of the information control device 1 among the agents of the information control devices 1a, 1b, 1c, and the like, in accordance with the profile information acquired by the profile exchange unit 32.
Specifically, the relationship construction unit 33 compares the profile, of another agent acquired through the profile exchange with its own profile in the profile information 21, As a result of this comparison, the relationship construction unit 33 determines whether the agent of the user (provider) and the agent of the other agent have association (commonality) to each other's features. On the basis of the evaluation results, the relationship construction unit 33 constructs a relationship that enables communication with another agent having association (commonality).
For example, prior to relationship construction, the relationship construction unit 33 confirms the construction of the relationship with the user (provider) using a GUI or the like. If a confirmation is obtained, the relationship construction unit 33 issues an access right request (an access method request) to the agent (the information control device 1a, 1b, 1c, or the like) for which a relationship is to be constructed. The relationship construction unit 33 then acquires an access method as a response to the access right request, and stores the acquired access method as the association information 23, together with the information about the address of the other side, into the storage unit 20.
Note that, in a case where a relationship construction request has been received, the relationship construction unit 33 receives an access right request (an access method request) from the agent (the information control device 1a, 1b, 1c, or the like) on the other side. Using a GUI or the like, the relationship construction unit 33 then requests the user (provider) of the information control device 1 to grant an access right for enabling communication with another agent in a case where an access right is granted, the relationship construction unit 33 notifies the agent (the information control device 1a, 1b, 1c, or the like) on the other side from which the access right request has been issued, of the access method.
The notification unit 34 is a processing unit that issues an event notification based on the context information 22 indicating the state of the user (provider) to another agent (the information control device 1a, 1b, 1c, or the like) for which a relationship has been constructed.
Specifically, the notification unit 34 sequentially reads the context information 22 from the storage unit 20, and checks an alteration (a change) in the contents (context). In a case where there is a change in the context, the notification unit 34 obtains the contents of the context after the change as an event. The notification unit 34 then notifies the other agent (the information control device 1a, 1b, 1c, or the like) of the obtained event, in accordance with the address information and the access method indicated in the association information 23.
Note that the notification unit 34 may set conditions for a change in a context notified as an event. Specifically, in a case where a change in a context satisfies a condition (a condition for an event to actively issue a notification, for example) that has been set beforehand by the user (provider), the notification unit 34 notifies another agent (the information control device 1a, 1b, 1c, or the like) of the change as an event. Note that, if the condition is not satisfied, the notification unit 34 discards the change in a context, without repotting the change as an event.
In an example case where a change in a context relating to the current position of the user (provider) is set beforehand as a condition for issuing a notification, the notification unit 34 notifies another agent of an event indicating a change in the current position of the user (provider).
The output unit 35 is a processing unit that outputs a reported event in a case where there is an event notification from another agent (the information control device 1a, 1b, 1c, or the like) for which a relationship has been constructed. Specifically, the output unit 35 outputs the contents of an event reported from another agent to a display (not illustrated), and notifies the user (provider) of the information control device 1 of the contents of the event.
Note that the output unit 35 may set conditions for an event to be output. Specifically, in a case where a reported event satisfies a condition (a condition for an event to actively make an output, for example) that has been set beforehand by the user (provider) and the like, the output unit 35 outputs the reported event to a display or the like. Note that, if the condition is not satisfied, the output unit 35 discards the notification of the event, without outputting the event to a display or the like.
In an example case where an event relating to the current position of the user (provider) is set beforehand as a condition for making an output, the notification unit 34 outputs a reported event relating to the current position of the user (provider).
[Processing Flow]
Note that, in a case where the agents 100a through 100h are not specifically distinguished from one another, the agents 100a through 100h are referred to as the agents 100. Likewise, in a case where the users 200a through 200d and the providers 200e through 200h are not specifically distinguished from one another, the users 200a through 200d and the providers 200e through 200h are referred to as the users (providers) 200.
As illustrated in
Likewise, in S1, each of the providers 200e through 200h on the supplier side that provides information inputs features (attributes and attribute values) relating to services, information, and skills that can be provided. As a result, profiles (the profile information 21) relating to supplies such as services, skills, and information on the supplier side are set in the agents 100e through 100h.
The profile exchange unit 32 then exchanges profiles 21 between the users and the providers via the network N. At this stage, as will be described later (
The relationship construction unit 33 then constructs a relationship with one or a plurality of agents 100 having a profile related to the user (provider) 200 of the information control device 1 among the agents 100 of the information control devices 1a, 1b, 1c, and the like, in accordance with the acquired profile information 21 (S4).
For example, in the example illustrated in the drawing, as for the agent 100a, a match is established after the agents 100e and 100g are determined to have association (commonality) with the agent 100. Accordingly, the agent 100a constructs a relationship with each of the agents 100e and 100g.
Example processes relating to relationship construction are now described in detail. It is desirable that a person (target person) such as a user or a provider can adjust which word appearing in a profile is emphasized to determine whether there is a relationship. Here, a plurality of evaluation axes exists in terms of which word is emphasized when a person checks words for a match/mismatch. In view of this,
First, a first example process relating to relationship construction is described. As illustrated in
The relationship construction unit 33 then receives an input of word strings to be compared at the hierarchical level of the depth (L) in the sets of the profile, information 21 to be compared with each other (S11). By doing so, the relationship construction unit 33 obtains the attribute values (word strings) of the same hierarchical level from the respective sets of the profile information 21 to be compared.
The relationship construction unit 33 compares the word strings input from the sets of the profile information 21 to be compared with each other, and performs attribute evaluation to determine an evaluation value (P) (S12). Specifically, the relationship construction unit 33 determines whether the word strings match each other in the common nouns. If the word strings do not match, the relationship construction unit 33 determines the evaluation value to be P=P+f(L)ngu (S12a). If the common nouns match, on the other hand, the relationship construction unit 33 determines the evaluation value to be P=P+f(L)ngm (S12b).
Here, f(L) is a function depending on the depth (L) in the hierarchical structure of the attribute, and f(L)=X{circumflex over ( )}L, for example. If importance, is placed on word matching at a deep hierarchical level, a higher score is given to matching words, where X>1.0, and L has a greater value. conversely, if importance is placed on broadness, the weight on matching words is greater, where X<1.0, and L is smaller. Meanwhile, ngu and ngm are evaluation scores depending on the match/mismatch between the common nouns. The evaluation scores depending on the match/mismatch between the common nouns are set by the user (provider) 200 or the like, as appropriate. For example, 0 is set to ngu, and 2 is set to ngm, so that the added score is large only when they match.
The relationship construction unit 33 then increments L to be L=L+1 (S13), and determines whether the evaluation score (P) exceeds a predetermined threshold (T) (P>T?) (S14). The threshold (T) is a value that has been set beforehand as a criterion for determining relevancy (commonality) by the user (provider) 200 or the like.
If the evaluation score (P) exceeds the predetermined threshold (T) (S14: Yes), the relationship construction unit 33 moves on to S21. If the evaluation score (P) does not exceed the predetermined threshold (T) (S14: No), the relationship construction unit 33 returns to S12.
After S13, the relationship construction unit 33 also, performs attribute value evaluation by comparing word strings input from the sets of the profile, information 21 to be compared with each other (S15). Specifically, the relationship construction unit 33 performs character analysis on the respective word strings, and determines whether the word strings are common nouns, proper nouns, or numerical values (logics).
In the case of common nouns, the relationship construction unit 33 determines whether the word strings match each other in the common nouns. If the word strings do not match, the relationship construction unit 33 determines the evaluation value to be P=P+f(L)ngu (S15a). If the common nouns match, on the other hand, the relationship construction unit 33 determines the evaluation value to be P=P+f(L)ngm (S15b). Further, in the case of proper nouns/numerical values (logics), the relationship construction unit 33 determines whether the word strings match each other in the proper nouns/numerical values (logics). If the word strings do not match, the relationship construction unit 33 determines the evaluation value to be P=P+f(L)nsu (S15c). If the proper nouns/numerical values (logics) match, the relationship construction unit 33 also determines the evaluation value to be P=P+f(L)nsm (S15d).
Here, nsu and nsm represent evaluation scores depending on the proper nouns/numerical values (logics). The evaluation scores depending on the proper nouns/numerical values (logics) are set by a user (provider) 200 or the like, as appropriate. For example, 0 is set to nsu, and 3 is set to nsm, so that any score is not, added in the case of a mismatch, and a higher score (ngm<nsm) is added to matching proper nouns/numerical values than matching common nouns. Thus, importance can be placed on matching proper nouns/numerical values (logics) being evaluated.
After S15, the relationship construction unit 33 determines whether all the attributes and attribute values in the sets of the profile information 21 to be compared with each other have been checked (whether attribute evaluation and attribute value evaluation have been completed) (S16). If all the attributes and attribute values have been checked (S16: Yes), the relationship construction unit 33 moves on to S17. If not all the attributes and attribute values have been checked (S16: No), on the other hand, the relationship construction unit 33 returns to S12.
In S17, the relationship construction unit 33 determines whether all the word strings to be compared have been checked. If all the word strings to be compared have been checked (S17: Yes), the relationship construction unit 33 moves on to S18. If not all the word strings to be compared have been checked (S17: No), on the on the other hand, the relationship construction unit 33 returns to S11.
In S18, the relation hip construction unit 33 determines whether the evaluation score (P) exceeds the predetermined threshold (T) (P>T?). If the evaluation score (P) does not exceed the predetermined threshold (T) (S18: No), the relationship construction unit 33 determines that the agents 100 of the sets of the profile information 21 compared with each other have no association (commonality) or is “not associated” (S19). The relationship construction unit 33 then discards the information about the agent 100 determined to be “not associated”, without performing relationship construction (S20), and ends the process.
If the evaluation score (P) exceeds the predetermined threshold (T) (S18: Yes), the relationship construction unit 33 determines that the agents 100 of the sets of the profile information 21 compared with each other have association (commonality) or is “associated” (S21). The relationship construction unit 33 then performs confirmation (an access right request) from the target person (user (provider) 200) to the agents 100 determined to be “associated” (S22). The relationship construction unit 33 then performs relationship construction, and ends the process.
Next, a second example process relating to relationship construction is described. As illustrated in
The relationship construction unit 33 then compares the word strings input from the sets of the profile information 21 to be compared with each other, determines whether the words and the concepts of the words match, and performs attribute evaluation to determine an evaluation value (P) (S32).
Specifically, the relationship construction unit 33 compares the words in the respective word strings, and determines whether the words match. If the words do not match, the relationship construction unit 33 determines whether the concepts of the words match. If the concepts do not match, the relationship construction unit 33 determines the evaluation value to be P=P+f(L)n1 (S32a). If the concepts match, on the other hand, the relationship construction unit 33 determines the evaluation value to be P=P+f(L)n2 (S32b).
Note that, in concept determination, dictionary data showing the meanings, concepts, and the like of respective words is referred to, and the concepts of the words are compared, to determine whether the concepts match.
Likewise, if the words match, the relationship construction unit 33 determines whether the concepts of the words match. If the concepts do not match, the relationship construction unit 33 determines the evaluation value to be P=P+f(L)n3 (S32c). If the concepts match, on the other hand, the relationship construction unit 33 determines the evaluation value to be P=P+f(L)n4 (S32d).
Here, n1 and n2 are evaluation scores depending on whether the concepts match in a case where words do not match. Further, n3 and n4 are evaluation scores depending on whether the concepts match in a case where words match. These evaluation scores are set by a user (provider) 200 or the like, as appropriate. For example, 0 is set to n1 and 2 is set to n2, so that evaluation scores can be given as long as concepts match even if words do not match. Further, 0 is set to n3, and 3 is set to n4, so that high evaluation is not made when the concepts do not match even though the words match, and the highest evaluation can be made when the words and the concepts both match.
The relationship construction unit 33 then increments L to be L=L+1 (S33), and determines whether the evaluation score (P) exceeds a predetermined threshold (T) (P>T?) (S34).
If the evaluation score (P) exceeds the predetermined threshold (T) (S34: Yes), the relationship construction unit 33 moves on to S41. If the evaluation score (P) does not exceed the predetermined threshold (T) (S53: No), the relationship construction unit 33 returns to S32.
After S33, the relationship construction unit 33 also performs attribute value evaluation by comparing word strings input from the sets of the profile information 21 to be compared with each other (S35). Specifically, the relationship construction unit 33 compares the word strings with each other, and determines whether the word strings have a word mismatch, a logic mismatch, or a word/numerical value mismatch.
In the case of a word mismatch, the relationship construction unit 33 determines the evaluation value to be P P+f(L)n5 (S35a). In the case of a logic match, however, the relationship construction unit 33 determines the evaluation value to be P=P+f(L)n6 (S35b). Further, in the case of a word/numerical value match, the relationship construction unit 33 determines the evaluation value to be P=P+f(L)n7 (S35c).
Here, n5, n6, and n7 are evaluation scores depending on a word mismatch, a logic match (for example, equal to or greater than ∘, within Δ, or the like), and a word/numerical value match, respectively. These evaluation scores are set by a user (provider) 200 or the like, as appropriate. For example, 0 is set to n5, 3 is, set to n6, and 4 is set to n7, so that the weight of a word/numerical value match can be made greater than that of a logic match.
After S35, the relationship construction unit 33 determines whether all the attributes and attribute values in the sets of the profile information 21 to be compared with each other have been checked (whether attribute evaluation and attribute value evaluation have been completed) (S36). If all the attributes and attribute values have been checked (S36: Yes), the relationship construction unit 33 moves on to S37. If not all the attributes and attribute values have been checked (S36: No), on the other hand, the relationship construction unit 33 returns to S32.
In S37, the relationship construction unit 33 determines whether all the word strings to be compared have been checked. If all the word strings to be compared have been checked (S37: Yes), the relationship construction unit 33 moves on to S38. If not all the word strings to be compared have been checked (S37: No) on the other hand, the relationship construction unit 33 returns to S31.
In S38, the relationship construction unit 33 determines whether the evaluation score (P) exceeds the predetermined threshold (T) (P>T?). If the evaluation score (P) does not exceed the predetermined threshold (T) (S38: No), the relationship construction unit 33 determines that the agents 100 of the sets of the profile information 21 compared with each other have no association (commonality) or is “not associated” (S39). The relationship construction unit 33 then discards the information about the agent 100 determined to be “not associated”, without performing relationship construction (S40), and ends the process.
If the evaluation score (P) exceeds the predetermined threshold (T) (S38: Yes), the relationship construction unit 33 determines that the agents 100 of the sets of the profile information 21 compared with each other have association (commonality) or is “associated” (S41). The relationship construction unit 33 then performs confirmation (an access right request) from the target person (user (provider) 200) to the agents 100 determined to be “associated” (S42). The relationship construction unit 33 then performs relationship construction, and ends the process.
Next, a third example process relating to relationship construction is described. When a profile indicating individual features is formed with pairs of an attribute and an attribute value, there are cases where attention is paid only to a small number of attributes and attribute values in finding commonality. The third example process is an example in which importance is placed on matching words appearing in the attribute of interest and its attribute value. As illustrated in
The relationship construction unit 33 then compares a word with an attribute # k in the sets of profile information 21 to be compared with each other (S51). Here, the attribute # k means the number of the attribute. For example, an attribute #3 corresponds to an attribute number 3.
The relationship construction unit 33 then determines whether the attribute # k and the word match (S52). If the word and the attribute # k match (S52: Yes), the relationship construction unit 33 determines the evaluation value to be P=P+g(k)·A (S54). If the attribute # k and the word do not match (S52: No), the relationship construction unit 33 determines whether the concept of the attribute matches by referring to dictionary data (S53). If the concept matches (S53: Yes), the relationship construction unit 33 determines the evaluation value to be P=P+g(k)·A (S54).
Here, g(k) is a function of the weight at the attribute number # k. For example, in a case where the attribute number #3 is evaluated, and other attribute numbers are not evaluated, 1 is set to g(3), and 0 is set to g(i) (i≠3). Meanwhile, “·” is the symbol meaning multiplication. Further, A is the value to be multiplied in the case of attribute matching (including the concept). The function and the multiplying value are set by a user (provider) 200 or the like, as appropriate.
If the concept does not match (S53: No), the relationship construction unit 33 determines whether k=K (S55). If k is not K (S55: No) the relationship construction unit 33 increments k (S56), and returns to S51. If k=K (S55: Yes), the relationship construction unit 33 moves on to S64.
After S54, the relationship construction unit 33 compares a word with an attribute value # j in the sets of profile information 21 to be compared with each other (S57). Here, j is the number (an integer from 1 to J) of each attribute value at the same hierarchical level in the hierarchical structure. The attribute value # j means an attribute value whose attribute value number is j.
The relationship construction unit 33 then determines whether the attribute value # j and a word/logic match (S58). If the attribute value # j and the word/logic match (S58: Yes), the relationship construction unit 33 determines the evaluation value to be P=P+g(k)·B (S60). If the attribute value # j and the word/logic do not match (S58: No), the relationship construction unit 33 determines whether the concept of the attribute value matches by referring to the dictionary data (S59). If the concept matches (S59: Yes), the relationship construction unit 33 determines the evaluation value to be P=P+g(k)·C (S61). If the concept does not, match (S59; No), the relationship construction unit 33 increments j, and returns to S57.
Here, B is the value to be multiplied in a case where an attribute value and a word/logic match. Further, C is the value to be multiplied in a case where the concept of an attribute value matches. These multiplying values are set by a user (provider) 200 or the like, as appropriate.
After S60 and S61, the relationship construction unit 33 determines whether j=J (S63). If j is not J (S63: No), the relationship construction unit 33 increments j (S62), and returns to S57. If j=J (S63: Yes), the relationship construction unit 33 moves on to S64.
In S64, the relationship construction unit 33 determines whether the evaluation score (P) exceeds a predetermined threshold (T) (P>T?). If the evaluation score (P) does not exceed the predetermined threshold (T) (S64; No), the relationship construction unit 33 determines that the agents 100 of the sets of the profile information 21 compared with each other have no association (commonality) or is “not associated” (S65). The relationship construction unit 33 then discards the information about the agent 100 determined to be “not associated”, without performing relationship construction (S66), and ends the process.
If the evaluation score (P) exceeds the predetermined threshold (T) (S64: Yes), the relationship construction unit 33 determines that the agents 100 of the sets of the profile information 21 compared with each other have association (commonality) or is “associated” (S67). The relationship construction unit 33 then performs confirmation (an access right request) from the target person (user (provider) 200) to the agents 100 determined to be “associated” (S68). The relationship construction unit 33 then performs relationship construction, and ends the process.
Referring back to
Referring back to
Note that the output unit 35 may output, an event that matches a preset condition. For example, in response to an event notification from the agent 100d to the agents 100f and 100h, the agent 100h outputs an event as a result of a match, and the agent 100f does not output an event as a result of a mismatch. The events to be output may be sorted out in this manner in advance.
[Specific Example Cases]
For example, as illustrated in
Also, a profile indicating “elderly facility” and the like is set in the agent 100e. Likewise, a profile indicating “event planning” and the like is set in the agent 100f. Also, a profile indicating “real estate business” and the like is set in the agent 100g. Likewise, a profile indicating “tomato producer” and the like is set in the agent 100h. Also, a profile indicating “trading company” and the like is set in the agent 100i. Likewise, a profile indicating “programmer” and the like is set in the agent 100j.
The agents 100a through 100j exchange the respective set profiles, to establish communicable relationships (relationship formation) between persons having high association (commonality). For example, the agent 100a constructs a relationship with each of the agents 100e and 100g that have been determined to be associated with the agent 100a in accordance with an attribute value match or a concept match based on “in need of care”, “40 minutes to Shibuya”, and the like.
For example, in a case where there is a change such as “available apartment” in the state (context) of the provider 200g of the agent 100g having a relationship formed with the agent 100a, the agent 100g notifies the agent 100a of an event (apartment available in Nakayama). Having received the event notification, the agent 100a outputs the event from the agent 100g to the user 200a in a case where the condition for an output is satisfied. Thus, the user 200a can easily know about the available apartment status and the like.
The agents 100d and 100j also have a formed relationship with each other, and both the user 200d and the provider 200j have a change in the state (context), For example, on the side of the user 200d of the agent 100d, there is a state (context) change such as “SMC order receipt”. On the side of the provider 200j of the agent 100j, there is a state (context) change such as “quitting previous job”. In such a case, a notification and an output of events such as “open recruitment” and “resume” are promptly performed. Thus, matching between supply and demand is quickly aided.
Accordingly, in S4 or the like, the agent 100a establishes a relationship with the agent 100f associated with “Kyoto”, When there is a change in the state (context) of the user 200a, the agent 100a then sends an event push (an event notification) to the agent 100f having the relationship established. For example, the agent 100a notifies the agent 100f of an event such as “arriving at Karasuma Exit in 5 minutes” corresponding to a context such as “about to arrive in Kyoto, heavy rain”, The agent 100a also obtains an event corresponding to the state (context) of the provider 200f from the agent 100f that has the relationship established. For example, the agent 100f notifies the agent 100a of an event such as “10 taxis waiting at Kyoto Karasuma Exit”. As a result, the user 200a can easily obtain useful information relating to his/her situation.
When there is a change such as “transfer to XXX” in the state (context) of the user 200a, the agent 100a then sends an event push (an event notification) to the agent 100f having the relationship established. For example, the agent 100a notifies the agent 100f of an event such as “searching for 3-bedroom apartment near XXX” corresponding to a context such as “transfer to XXX”.
When there is a change such as “available apartment” in the state (context) of the provider 200f in response to the event notification, the agent 100f sends an event push (an event notification) to the agent 100a having the relationship established. For example, the agent 100f notifies the agent 100a of an event such as “3-bedroom apartment available in XXX” corresponding to a context such as “available apartment”.
Accordingly, in S4 or the like, the agent 100e establishes a relationship with the agent 100a having association with “job category: Python development”. When there is a change in the state (context) of the provider 200e, the agent 100e then sends an event push (an event notification) to the agent 100a having the relationship established.
For example, the agent 100e notifies the agent 100a of an event such as “job seeking: Python experience” corresponding to a context such as “quitting previous job”. The agent 100e also obtains an event corresponding to the state (context) of the user 200a from the agent 100a that has the relationship established. For example, the agent 100a notifies the agent 100e of an event such as “wanted: Python professional”.
When there is a change such as “tomato harvest start” in the state (context) of the provider 200e, the agent 100e then sends an event push (an event notification) to the agent 100a having the relationship established. For example, the agent 100e notifies the agent 100a of an event such as “tomato harvest start”.
When there is a change such as “receipt of mass order for ketchup” in the state (context) of the user 200a in response to the event notification, the agent 100a sends an event push (an event notification) to the agent 100e having the relationship established. For example, the agent 100a notifies the agent 100e of an event such as “in urgent need of tomatoes” corresponding to a context such as “receipt of mass order for ketchup”.
[Response Time Designation]
The profile exchange unit 32 and the relationship construction unit 33 may designate a response time beforehand in a notification regarding profile exchange or relationship construction, and may retransmit the notification or performs a time-out on the process.
As illustrated in
Here, if there is no response at the response time (ACK TIME), the profile exchange unit 32 retransmits the profile request (request+RECEIPT) (S71). The time width at the response time (ACK TIME2) at the time of the retransmission may be different from the time width at the first response time (ACK TIME).
If there is no response to the retransmission either, the profile exchange unit 32 then Performs a time-out on the Process of exchanging Profiles with the agent 100e. Specifically, the process is temporarily stopped (suspended), or the process is forcibly ended.
For example, if there is no response to the retransmission, the profile, exchange unit 32 requests a profile from another agent 100f, to obtain a profile (S72). The profile exchange unit 32 then resumes the suspended process of exchanging profiles with the agent 100e (S73).
[Effects]
As described above, the information control device 1 includes the profile exchange unit 32, the relationship construction unit 33, the notification unit 34, and the output unit 35. The profile exchange unit 32 notifies one or a plurality of agents 100 of the profile information 21 indicating the features of the user (provider) 200, and performs profile exchange to acquire the profile information 21 about the user(s) (provider(s)) 200 of one or a plurality of agents 100. In accordance with the acquired profile information 21, the relationship construction unit 33 constructs a relationship with an agent 100 that has a profile having association with the user (provider) 200 from one or a plurality of agents 100. The notification unit 34 notifies the agent 100 having the relationship established of an event based on the context information 22 indicating the state of the user (provider) 200. When there is an event notification from the agent 100 having the relationship established, the output unit 35 outputs the reported event.
As described above, in the information control device 1, agents 100 that have established a relationship through profile exchange issue event notifications based on the context information 22. Thus, information may be exchanged as appropriate among many and unspecified agents 100 having high interest in and association with one another.
The profile exchange unit 32 also performs profile exchange based on a preset timing. Thus, the information control device 1 may exchange profiles at any appropriate timing that has been set by the user (provider) 200.
Further, in a case where there is no acquisition of a profile from one or a plurality of agents 100 within a predetermined time in response to a notification of the profile information 21, the profile exchange unit 32 retransmits the notification of the profile information 21 or performs a time-out on the process. Thus, in the information control device 1, even if communication or the like is interrupted, for example, profile exchange with one or a plurality of agents 100 will not be delayed.
Meanwhile, the relationship construction unit 33 notifies an agent 100 of a confirmation prior to relationship construction, and constructs a relationship, in accordance with a response to the confirmation notification. Thus, the information control device 1 may establish a relationship with an agent 100 that has responded to a confirmation notification.
Further, in a case where there is no response to a confirmation notification within a predetermined time, the relationship construction unit 33 retransmits the confirmation notification or performs a time-out on the process. Thus, in the information control device 1, even if communication or the like is interrupted, for example, construction of a relationship with one or a plurality of agents 100 will not be delayed.
The relationship construction unit 33 also checks with the user (provider) 200 prior to relationship construction, and, when a confirmation from the user (provider) 200 and a confirmation from an agent 100 are obtained, the relationship construction unit 33 constructs a relationship. Thus, in the information control device 1, when confirmations are obtained from the user (provider) 200 and one or a plurality of agents 100, a relationship may be constructed.
Meanwhile, in a case where, a change in the context information 22 satisfies a predetermined condition, the notification unit 34 issues a notification of the event corresponding to the change in the context information 22. Thus, when there is a predetermined change in the user (provider) 200, the information control device 1 may notify each agent 100 having a relationship constructed of the event corresponding to the change.
Meanwhile, in a case where a reported event satisfies a predetermined condition, the output unit 35 outputs the reported event. Thus, the information control device 1 may notify the user (provider) 200 of an event that satisfies a predetermined condition from among many events reported from the agents 100 each having a relationship constructed.
Meanwhile, the profile information 21 indicates the features of the user (provider) 200 with attribute values of respective attributes, and each attribute has a hierarchical structure including the lower-level attributes under the higher-level attributes. Thus, the profile information 21 may indicate the features of the user (provider) 200 with the attribute value at the respective hierarchical levels in hierarchical structures including lower-level attributes under the higher-level attributes.
Further, in the profile information 21, the attribute values of the respective attributes are written as at least one of a common noun, a proper noun, and a numerical value. Thus, the profile information 21 may indicate the features of the user (provider) 200 through the writing of at least one of a common noun, a proper noun, and a numerical value.
The information control device 1 further includes the acquisition unit 31 that generates the profile information 21 indicating the features of the user (provider) 200 in accordance with inputs from the user (provider) 200. In accordance with the profiles of one or a plurality of agents 100 in the other information control device(s) (1a through 1c and the like), the acquisition unit 31 receives inputs of the attribute values of the respective attributes included in the profile information 21 from the user (provider) 200. Thus, hi the information control device 1, the attribute values of the respective attributes included in the profile information 21 may be input in accordance with the hierarchical structures of the attributes in the profile(s) of one or a plurality of agents 100, for example.
The relationship construction unit 33 also compares the attribute values of the respective attributes in the acquired profile information 21 with the attribute values of the respective attributes in the profile information 21 indicating the features of the user (provider) 200. The relationship construction unit 33 then changes the weight to be used in determining an agent 100 to have a profile having association with the user (provider) 200, depending on which one of a common noun, a proper noun, and a numerical value the matching attribute values are of. Thus, the information control device 1 may determine an agent 100 that has a profile having association with the user (provider) 200, on the basis of the weight depending on which one of a common noun, a proper noun, and a numerical value the matching attribute values are of.
Further, in comparing the attribute values of the respective attributes, the relationship construction unit 33 changes the weight in accordance with the number of matches or mismatches of attribute values, and/or the number of matches or mismatches of concepts represented by attribute values, and/or the hierarchical positions of matching attribute values in the hierarchical structure. Thus, the information control device 1 may determine an agent 100 that has a profile having association with the user (provider) 200, on the basis of the weight depending on the number of matches or mismatches of attribute values, the number of matches or mismatches of concepts represented by attribute values, the hierarchical positions of matching attribute values in the hierarchical structure, and the like.
Further, profile exchange or event notification in the information control device 1 is performed by broadcast or multicast to one or a plurality of agents 100 or an agent 100 having a relationship established. Thus, the information control device 1 may perform profile exchange or event notification by broadcast or multicast.
[Other Aspects]
Note that each of the constituent elements of the respective components illustrated in the drawings is not necessarily physically designed as illustrated in the drawings. In other words, specific aspects of separation and integration of the respective components are not limited to the illustrated forms, and all or some of the components may be functionally or physically separated and integrated in any appropriate unit depending on various loads, usage states, or the like. For example, the profile exchange unit 32 and the relationship construction unit 33, or the notification unit 34 and the output unit 35 may be integrated. Furthermore, the order of the respective processes illustrated in the drawings is not limited to the order described above, and the processes may be concurrently performed or may be performed in different order, as long as there is no contradiction in the process contents.
Further, all or some of the various processing functions to be executed by each device may be executed by a CPU (or a microcomputer such as an MPU or a micro controller unit (MCU)). Furthermore, it is needless to say that all or some of the various processing functions may be executed in a program to be analyzed and executed by a CPU (or a microcomputer, such as an MPU or an MCU), or in hardware formed with wired logics.
[Hardware Configuration]
The various processing functions described above in the embodiment may be realized by execution of a prepared program in a computer. Therefore, in the description below, an example of a computer that executes a program having the same functions are those of the above embodiment will be described.
As illustrated in
The hard disk device 308 stores an information control program 308A having the same functions as the respective processing units: the acquisition unit 31, the profile exchange unit 32, the relationship construction unit 33, the notification unit 34, and the output unit 35 illustrated in
The CPU 301 reads the information control program 308A stored in the hard disk device 308, and loads the information control program 308A into the RAM 307. The CPU 301 then executes the information control program 308A, to perform various kinds of processes. The information control program 308A may also cause the computer 300 to function as the acquisition unit 31, the profile exchange unit 32, the relationship construction unit 33, the notification unit 34, and the output unit 35 illustrated in
Note that the information control program 308A described above is not necessarily stored in the hard disk device 308. For example, the computer 300 may read and execute the information control program 308A stored in a storage medium that can be read by the computer 300. The storage medium that can be read by the computer 300 corresponds to a portable recording medium such as a compact disc (CD)-ROM, a digital versatile disc (DVD), or a universal serial bus (USB) memory, a semiconductor memory such as a flash memory, a hard disk drive, or the like, for example. Furthermore, the information control program 308A may be stored in a device connected to a public line, the Internet, a LAN, or the like, and, the computer 300 may read and execute the information control program 308A from the device.
All examples and, conditional language provided herein are intended for the pedagogical purposes of aiding the reader in understanding the invention and the concepts contributed by the inventor to further the art, and are not to be construed as limitations to such specifically recited examples and conditions nor does the or of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although one or more embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2019-075192 | Apr 2019 | JP | national |