Wednesday, July 13, 2011

A conceptual model view of Google+

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).

image

Reviewing the diagram

  • A G+ profile may be associated with
    • Circles
      • 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.

No comments: