-
Notifications
You must be signed in to change notification settings - Fork 14
/
albums-walls.tex
136 lines (107 loc) · 8.79 KB
/
albums-walls.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
\subsection{Forum}
\label{sec:forum}
\label{sec:hasModerator}
A \tForum is a meeting point where people post \tMessages.
There exists three categories of \tForums:
Wall ($\eForum_\textsf{w}$),
Album ($\eForum_\textsf{a}$),
and Group ($\eForum_\textsf{g}$).
Each \tForum has a set of \tPersons connected via \tHasMember edges, a set of \tTags connected via \tHasTag edges, a single moderator connected by a \tHasModerator edge and a set of \tMessages (discussed in Section \ref{sec:message}).
For all \tForums the outgoing \tHasTag edges get their creation date and deletion date from $\varc{\eForum}$ and $\vard{\eForum}$, respectively.
\subsubsection{Groups}
Groups are public places for people that share interests, any \tPerson can create a Group $\eForum_\textsf{g}$ during their lifespan. A Group can be deleted anytime after it was created.
\begin{itemize}
\item $\varc{\eForum}_{\mathsf{g}} \in \interval{\varc{\ePerson} + \Delta}{\min (\vard{\ePerson}, \xSE)}$
\item $\vard{\eForum}_{\mathsf{g}} \in \interval{\varc{\eForum}_{\mathsf{g}} + \Delta}{\xNC}$
\end{itemize}
\paragraph{Group Moderator}
The initial \tHasModerator $\eHasModerator_{\mathsf{g}}$ is the Group creator. If the moderator leaves the Group, the Group will have no moderator (this is allowed in the schema of version 0.4.0+, see \autoref{fig:schema}).
\begin{itemize}
\item $\varc{\eHasModerator}_{\mathsf{g}} \in \interval{\varc{\eForum}_{\mathsf{g}} + \Delta}{\min (\vard{\eForum}_{\mathsf{g}}, \vard{\ePerson}, \xSE)}$
\item $\vard{\eHasModerator}_{\mathsf{g}} \in \interval{ \varc{\eHasModerator}_{\mathsf{g}} + \Delta}{\min (\vard{\eForum}_{\mathsf{g}}, \vard{\ePerson})}$
\end{itemize}
\paragraph{Group Membership}
Any \tPerson $\ePerson$ can become a member of a given group. The \tHasMember $\eHasMember_{\mathsf{g}}$ creation is generated from the interval in which the \tPerson and \tForum lifespans overlap. The deletion date is generated from the interval between the membership creation date (incremented by $\Delta$) and the minimum of the \tPerson and \tForum deletion dates.
\begin{itemize}
\item $\varc{\eHasMember}_{\mathsf{g}} \in \interval{\max ( \varc{\eForum}_{\mathsf{g}}, \varc{\ePerson}) + \Delta}{\min (\vard{\eForum}, \vard{\ePerson}, \xSE)} $
\item $\vard{\eHasMember}_{\mathsf{g}} \in \interval{\varc{\eHasMember}_{\mathsf{g}} + \Delta}{\min (\vard{\eForum}_{\mathsf{g}}, \vard{\ePerson})}$
\end{itemize}
\subsubsection{Walls}
Every \tPerson $\ePerson$, has a Wall $\eForum_\textsf{w}$ which is created when the \tPerson joins the social network. The wall is deleted when the \tPerson is deleted.
\begin{itemize}
\item $\varc{\eForum}_{\mathsf{w}} = \varc{\ePerson} + \Delta$
\item $\vard{\eForum}_{\mathsf{w}} = \vard{\ePerson}$
\end{itemize}
\paragraph{Wall Moderator}
Each \tPerson has a \tHasModerator $\eHasModerator_{\mathsf{w}}$ edge to their wall, which gets the creation date (incremented by $\Delta$) and deletion date from $\eForum_\textsf{w}$.
Note, only the moderator can create \tPost nodes on the wall and the connecting \tTag nodes are set based on the interest of the moderator.
\begin{itemize}
\item $\varc{\eHasModerator}_{\mathsf{w}} = \varc{\eForum}_{\mathsf{w}} + \Delta$
\item $\vard{\eHasModerator}_{\mathsf{w}} = \vard{\eForum}_{\mathsf{w}}$
\end{itemize}
\paragraph{Wall Membership}
For a \tPerson $p_i$, all their friends $p_j$ (\tPerson nodes connected via a \tKnows edge) become members of $\eForum_\textsf{w}$ at the time the \tKnows edge is created. Hence, a \tHasMember $\eHasMember_{\mathsf{w}}$ edge gets the creation date of \tKnows incremented by $\Delta$. The deletion date is derived from the minimum of the \tForum deletion date and \tKnows deletion date.
\begin{itemize}
\item $\varc{\eHasMember}_{\mathsf{w}} = \varc{\eKnows_{i,j}} + \Delta$
\item $\vard{\eHasMember}_{\mathsf{w}} = \min(\vard{\eForum}_{\mathsf{w}}, \vard{\eKnows_{i,j}})$
\end{itemize}
\subsubsection{Albums}
A \tPerson can create multiple Albums ($\eForum_\textsf{a}$) containing a set of \tPhotos{}. Albums can be created and then deleted at any point during the lifespan of the \tPerson.
\begin{itemize}
\item $\varc{\eForum}_\textsf{a} \in \interval{\varc{\ePerson} + \Delta}{\min (\vard{\ePerson}, \xSE)}$
\item $\vard{\eForum}_\textsf{a} \in \interval{ \varc{\eForum}_\textsf{a} + \Delta}{\vard{\ePerson}}$
\end{itemize}
\paragraph{Album Moderator}
The \tPerson is the moderator for any Album they create. Album ownership cannot change hence \tHasModerator $\eHasModerator_{\mathsf{a}}$ gets the creation date (incremented by $\Delta$) and deletion date from $\varc{\eForum}_\textsf{a}$ and $\vard{\eForum}_\textsf{a}$ respectively.
\begin{itemize}
\item $\varc{\eHasModerator}_{\mathsf{a}} = \varc{\eForum}_{\mathsf{a}} + \Delta$
\item $\vard{\eHasModerator}_{\mathsf{a}} = \vard{\eForum}_{\mathsf{a}}$
\end{itemize}
\paragraph{Album Membership}
Only friends $\ePerson_i$ of a \tPerson $\ePerson_j$ can become members of Albums created by $\ePerson_j$. The \tHasMember $\eHasMember_{\mathsf{a}}$ edge creation date is derived from the Album and $\type{knows}$ creation dates. The deletion is derived from the $\type{Forum}$ and $\type{knows}$ deletion dates.
\begin{itemize}
\item $\varc{\eHasMember}_\textsf{a} = \max ( \varc{\eForum}_\textsf{a}, \varc{\eKnows}_{i,j} ) + \Delta $
\item $\vard{\eHasMember}_{\mathsf{w}} = \min ( \vard{\eForum}_\textsf{a}, \vard{\eKnows}_{i,j} ) $
\end{itemize}
\subsection{Message}
\label{sec:message}
A \tMessage is an abstract entity that represents a message created by a \tPerson.
There are two \tMessage subtypes: \tPost and \tComment.
A \tPost is created in a \tForum and a \tComment represents a comment made by a \tPerson to an existing \tMessage (either a \tPost or a \tComment).
In a \tForum the set of \tMessage nodes form a \emph{tree} with a \tPost node at the root and \tComment nodes for the rest.
\subsubsection{Post}
A \tPost can be created by a \tPerson in a \tForum.
Only the moderator (\ie owner) can post on a Wall or in an Album (\tHasModerator),
whereas all members including the moderator (\tHasMember/\tHasModerator) can post in a Group.
These relationships are captured with the $\eHasMember$ variable in the formulas.
\tPosts are divided in three categories, \emph{regular posts}, \emph{photos}, and \emph{flashmob posts}.
\paragraph{Regular Posts and Photos}
Regular posts capture the standard daily activity in a Group or on a Wall.
Photos are created in Albums. (Interaction with Photos is limited to \tLikes, see details in \autoref{sec:likes}). The creation date for these is determined as follows:
$$\varc{\ePost} \in \interval{\varc{\eHasMember} + \Delta}{\min (\vard{\eHasMember}, \xSE) }$$
\paragraph{Flashmob Posts}
Flashmob posts are generated around events that attract significant interest
(such as elections) that result in a spike in activity.
These events span a $2\phi$-hour time window centered around a specific event time, flashmob event $\eFlashmobEvent$, in the middle of the window; there are $\phi$ hours each side of the specific event time.
$$
\varc{\ePost} \in \interval{\max(\varc{\eHasMember} + \Delta,\eFlashmobEvent - \phi\textrm{\,h})}{\min (\vard{\eHasMember},\eFlashmobEvent + \phi\textrm{\,h},\xSE)}
$$
The deletion dates for all categories of \tPosts are determined as:
$$\vard{\ePost} \in \interval{\varc{\ePost} + \Delta}{\vard{\eHasMember}}$$
\paragraph{containerOf edge}
Each \tPost node has an incoming $\type{containerOf}$ edge which gets the same lifespan attributes as the \tPost.
\subsubsection{Comment}
A \tComment $\eComment$ is created by \tPerson $\ePerson$ as a reply to \tMessage $\eMessage$. \tComments are only made in Walls and Groups. \tComment always occur within $\gamma$~days of their parent message following a power-law distribution with mean 6.85 hours.
\begin{itemize}
\item $\varc{\eComment} \in \interval{\max (\varc{\eMessage}, \varc{\eHasMember}) + \Delta}{\min (\vard{\eMessage}, \vard{\eHasMember}, \varc{\eMessage} + \gamma\textrm{\,d}, \xSE)}$
\item $\vard{\eComment} \in \interval{\varc{\eComment} + \Delta}{\min (\vard{\eMessage}, \vard{\eHasMember})}$
\end{itemize}
\paragraph{replyOf edge}
\tComments always have an outgoing \tReplyOf edge with containment semantics, \ie the target \tMessage contains the \tComment. These edges get the same lifespan as their source \tComment.
\subsubsection{likes}
\label{sec:likes}
A \tLikes edge $\eLikes$ can exist between \tPerson $\ePerson$ and \tMessage $\eMessage$. Messages can only receive likes during a $\mu$-day window after their creation at which point no more activity is generated.
\begin{itemize}
\item $\varc{\eLikes} \in \interval{\max(\varc{\ePerson}, \varc{\eMessage}) + \Delta}{\min (\vard{\ePerson}, \vard{\eMessage}, \varc{\eMessage} + \mu\textrm{\,d}, \xSE)}$
\item $\vard{\eLikes} \in \interval{\varc{\eLikes} + \Delta}{\min (\vard{\ePerson}, \vard{\eMessage})}$
\end{itemize}