The diagram below is a first-draft attempt at capturing the Google+ conceptual model. I find this type of diagram useful, when exploring topic domains, and I plan to continue to refine it, and to add similar model diagrams for Facebook and Twitter, in order to compare/contrast the tools/services.
The modeling technique is explained in Mastering Data Modeling: A User-Driven Approach; here’s a brief overview:
- Rectangles are entities – any type of thing we wish to describe
- Entities have attributes, such as G+ profile name, introduction, and occupation, in the diagram below
- Entities participate in relationships, depicted by lines between entities; relationships may be 1:1, many:1, 1:many, or many:many (e.g., a G+ profile may be associated with multiple circles, while a G+ post has a 1:1 relationship with resource – can be considered a specialization of a resource)
- Each entity must have at least one identifier; identifiers may be composed of attributes and relationship descriptors, and are depicted by underlined attributes and/or crossed lines in relationship descriptors (e.g., G+ profile is identified by G+ profile id; resource is identified by URI; circle is identified by circle name and the associated G+ profile; G+ post is identified by its resource relationship – by the URI of the related resource)
The draft diagram below is incomplete in several respects (e.g., it’s missing a bunch of attributes for privacy preferences, and circles may include people identified by email id rather than G+ profile id), but, for the first draft, I wanted to keep it simple. There are also some Google+ constraints that aren’t easy to depict in conceptual model diagrams, such as the fact that a Google+ post comment thread can’t be nested more than one level (you can comment on others’ posts, but you can’t directly comment on others’ comments – that isn’t easy to express in the modeling technique).
Reviewing the diagram
- A G+ profile may be associated with
- Each circle has one or more circle person/members
- Sparks (essentially interest term-based search queries, and unrelated to the social networking aspects of Google+ unless someone creates a G+ post by sharing a resource from a spark result; even then there is no persistent relationship between a spark and G+ posts shared from the spark search results)
- G+ posts
- Each post is also a resource, and is identified by the associated URI
- +1 instances – resources they “like,” in Facebook’s vocabulary (the +1 action is not limited to G+ posts; any resource can be +1’d)
- Some other G+ profile-related details
- A G+ post may be muted by a G+ profile – this is like ignoring a conversation in Outlook, for example (you won’t see any past or future comments associated with the G+ post in your stream)
- G+ profiles may
- Block other profiles (their posts won’t appear in your stream)
- Report profiles as inappropriate for some reason (tbd what Google does with such reports)
What have I missed? Corrections/suggestions/etc. welcomed.