A system comprising: at least one client computing device; at least one electroencephalography bio-signal sensor (102, 104, 106) at and in communication with the at least one client computing device; and at least one computer server in communication with the at least one computing device over a communications network; the at least one client computing device configured to: receive time-coded EEG bio-signal data of a user from the at least one EEG bio-signal sensor (102, 104, 106); obtain, from a user's input or from an external application accessible from the client computing device, time-coded feature event data representing an event when a user's mental response is observed; transmit the time-coded EEG bio-signal data and the time-coded feature event data to the at least one computer server, the at least one computer server configured to identify a pattern in at least part of the time-coded EEG bio-signal data that represents a response to a feature event determined from the time-coded feature event data at at least one respective time code; receive from the at least one computer server a user-response classification of at least part of the time-coded EEG bio-signal data based on the pattern identified in the at least part of the time-coded EEG bio-signal data and at least part of the time-coded feature event data at at least one respective time code; in accordance with a received input confirming the user-response classification, update a bio-signal interaction profile at the at least one client computing device with the user-response classification, the at least part of the time-coded EEG bio-signal data, and the at least part of the time-coded feature event data at the at least one respective time code. at least one client computing device; at least one electroencephalography bio-signal sensor (102, 104, 106) at and in communication with the at least one client computing device; and at least one computer server in communication with the at least one computing device over a communications network; the at least one client computing device configured to: receive time-coded EEG bio-signal data of a user from the at least one EEG bio-signal sensor (102, 104, 106); obtain, from a user's input or from an external application accessible from the client computing device, time-coded feature event data representing an event when a user's mental response is observed; transmit the time-coded EEG bio-signal data and the time-coded feature event data to the at least one computer server, the at least one computer server configured to identify a pattern in at least part of the time-coded EEG bio-signal data that represents a response to a feature event determined from the time-coded feature event data at at least one respective time code; receive from the at least one computer server a user-response classification of at least part of the time-coded EEG bio-signal data based on the pattern identified in the at least part of the time-coded EEG bio-signal data and at least part of the time-coded feature event data at at least one respective time code; in accordance with a received input confirming the user-response classification, update a bio-signal interaction profile at the at least one client computing device with the user-response classification, the at least part of the time-coded EEG bio-signal data, and the at least part of the time-coded feature event data at the at least one respective time code. receive time-coded EEG bio-signal data of a user from the at least one EEG bio-signal sensor (102, 104, 106); obtain, from a user's input or from an external application accessible from the client computing device, time-coded feature event data representing an event when a user's mental response is observed; transmit the time-coded EEG bio-signal data and the time-coded feature event data to the at least one computer server, the at least one computer server configured to identify a pattern in at least part of the time-coded EEG bio-signal data that represents a response to a feature event determined from the time-coded feature event data at at least one respective time code; receive from the at least one computer server a user-response classification of at least part of the time-coded EEG bio-signal data based on the pattern identified in the at least part of the time-coded EEG bio-signal data and at least part of the time-coded feature event data at at least one respective time code; in accordance with a received input confirming the user-response classification, update a bio-signal interaction profile at the at least one client computing device with the user-response classification, the at least part of the time-coded EEG bio-signal data, and the at least part of the time-coded feature event data at the at least one respective time code.