HACKER Q&A
📣 niob

Does macOS create a behavioral analytics database with your contacts?


I am curious why the SQLite structures in ~/Library/IntelligencePlatform/ have attracted only little attention so far. They are created by Apple's intelligenceplatformd respectively knowledgeconstructiond - which actually come with a manpage:

  apropos intelligenceplatformd knowledgeconstructiond
  > intelligenceplatformd(8) - A daemon that analyzes content on the device to build and query a general purpose knowledge graph
  > knowledgeconstructiond(8) - A daemon that analyzes content on the device to build a general purpose knowledge graph
let me propose the following command line:

  find ~/Library/IntelligencePlatform/ -name "*.db" -type f -exec echo {} \; -exec sqlite3 {} .dump \;
 
Here are some examples of the tables defined in ~/Library/IntelligencePlatform/ontology.db

  INSERT INTO class VALUES('CS36','religion relationship type');
  INSERT INTO predicate VALUES('PS424','member of political party',NULL);
  INSERT INTO class VALUES('CS25','type of profession');
 
Obviously the tables in ~/Library/IntelligencePlatform/views.db define signals to indicate relationships between entities in the graph:

  INSERT INTO view_config_hash VALUES('personToPersonInteractionSignals', /* Hash value removed for privacy */ '****');
  INSERT INTO view_config_hash VALUES('familyNameEquivalencyFeature', /* Hash value removed for privacy */ '****');
  INSERT INTO view_config_hash VALUES('soundAnalysisSignal', /* Hash value removed for privacy */ '****');
  INSERT INTO view_config_hash VALUES('sameEmployerSignal', /* Hash value removed for privacy */ '****');
  INSERT INTO view_config_hash VALUES('physicalSocialSignal', /* Hash value removed for privacy */ '****');
In general, these types of data could be used to build a detailed profile of an individual, including their habits, preferences, relationships, and more. They could also be used to analyze and predict a person's behavior, and to understand the structure and dynamics of their social network. In addition the structures in ~/Library/IntelligencePlatform/behaviours.db explicitly define histograms, suggesting the tracking of various features over time.

It will most likely not come to your surprise, that Apple embedded your contacts in this framework:

Phone Numbers

  sqlite3 ~/Library/IntelligencePlatform/graph.db .dump \; | grep -E '\+\d{8,12}'
E-Mail Addresses

  sqlite3 ~/Library/IntelligencePlatform/graph.db .dump \; | grep -E "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b"
  
What thoughts or additional documentation would you like to share concerning these graphs routinely created by MacOS?


  👤 julienreszka Accepted Answer ✓
When I use the find command I get Operation not permitted how do you do it?

👤 pndy
Could be this a part of new Health app feature - mood tracking?

Whatever this is and how long it exist, sounds like it will provide a valuable data for predicting customer behavior. Three letter agencies may also benefit from this - in theory.