Service - Comment: Difference between revisions
Jump to navigation
Jump to search
(Created page with "= Overview = A single comment made by a user. A comment can be part of a conversation thread (or perhaps many), or perhaps standalone or connected to any object in the project. = Repository = * not yet made: https://bitbucket.org/izara-conversations/izara-conversations-comment = DynamoDB tables = == LogicalResults == Standard LogicalResults Per Service = Graph database = == Nodes == <syntaxhighlight lang="JavaScript"> { nodeLabel: "{CommentLib.COMMENT_GRAP...") |
No edit summary |
||
Line 33: | Line 33: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<syntaxhighlight lang="JavaScript"> | |||
{ | |||
nodeLabel: "{CommentLib.COMMENT_LINK_GRAPH_NODE_LABEL}", // "commentLink" | |||
schema: { | |||
identifier: true, | |||
restrictProperties: true, | |||
restrictRelationships: true, | |||
properties: { | |||
commentLinkId: { | |||
identifier: true, // create unique id from request params and uniqueMessageId | |||
}, | |||
}, | |||
} | |||
} | |||
</syntaxhighlight> | |||
* Is a node in between a comment and another object, eg replying to a comment | |||
* Set as it's own node so can create relationships to the links (eg when a user traverses the link, so we can create weights for links) | |||
== Relationships == | == Relationships == | ||
Line 48: | Line 66: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<syntaxhighlight lang="JavaScript"> | |||
{ | |||
relationshipType: "{CommentLib.COMMENT_HAS_REFERENCE_GRAPH_REL_TYPE}", // "commentHas_Reference" | |||
schema: { | |||
immutable: true, | |||
restrictProperties: true, | |||
properties: { | |||
originTimestamp: //timestamp the request to create/change this relationship was sent | |||
}, | |||
} | |||
} | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="JavaScript"> | |||
{ | |||
relationshipType: "{CommentLib.COMMENT_HAS_REPLY_GRAPH_REL_TYPE}", // "commentHas_Reply" | |||
schema: { | |||
immutable: true, | |||
restrictProperties: true, | |||
properties: { | |||
originTimestamp: //timestamp the request to create/change this relationship was sent | |||
}, | |||
} | |||
} | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="JavaScript"> | |||
{ | |||
relationshipType: "{CommentLib.COMMENT_HAS_NEXT_COMMENT_GRAPH_REL_TYPE}", // "commentHas_NextComment" | |||
schema: { | |||
immutable: true, | |||
restrictProperties: true, | |||
properties: { | |||
originTimestamp: //timestamp the request to create/change this relationship was sent | |||
}, | |||
} | |||
} | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="JavaScript"> | |||
{ | |||
relationshipType: "{CommentLib.COMMENT_HAS_REPLY_GRAPH_REL_TYPE}", // "commentHas_Quote" | |||
schema: { | |||
immutable: true, | |||
restrictProperties: true, | |||
properties: { | |||
originTimestamp: //timestamp the request to create/change this relationship was sent | |||
startChar: ##, // when the quote starts in the comment | |||
endChar: ##, // when the quote ends in the comment | |||
}, | |||
} | |||
} | |||
</syntaxhighlight> | |||
* Connect to commentLinks, which in turn connect to other objects | |||
<syntaxhighlight lang="JavaScript"> | |||
{ | |||
relationshipType: "{CommentLib.COMMENTLINKTO_OBJECT_GRAPH_REL_TYPE}", // "commentLinkTo_Object" | |||
schema: { | |||
immutable: true, | |||
restrictProperties: true, | |||
properties: { | |||
originTimestamp: //timestamp the request to create/change this relationship was sent | |||
}, | |||
} | |||
} | |||
</syntaxhighlight> | |||
* Connects a commentLink to an object | |||
<syntaxhighlight lang="JavaScript"> | |||
{ | |||
relationshipType: "{CommentLib.COMMENTVIEWED_BY_USER_GRAPH_REL_TYPE}", // "commentViewedBy_User" | |||
schema: { | |||
immutable: true, | |||
restrictProperties: true, | |||
properties: { | |||
originTimestamp: //timestamp the request to create/change this relationship was sent | |||
viewSource: "xx" // "directView"|"replyLink"|"chronologicalLink" how the user came to view this comment, maybe also add identifier for eg replyLink | |||
}, | |||
} | |||
} | |||
</syntaxhighlight> | |||
* Each time a user views a comment add a link | |||
* Could add other metrics like view time | |||
= Working documents = | = Working documents = |
Latest revision as of 14:47, 22 September 2023
Overview
A single comment made by a user. A comment can be part of a conversation thread (or perhaps many), or perhaps standalone or connected to any object in the project.
Repository
- not yet made:
https://bitbucket.org/izara-conversations/izara-conversations-comment
DynamoDB tables
LogicalResults
Standard LogicalResults Per Service
Graph database
Nodes
{
nodeLabel: "{CommentLib.COMMENT_GRAPH_NODE_LABEL}", // "comment"
schema: {
identifier: true,
restrictProperties: true,
restrictRelationships: true,
properties: {
commentId: {
identifier: true, // create unique id from request params and uniqueMessageId
},
},
}
}
{
nodeLabel: "{CommentLib.COMMENT_LINK_GRAPH_NODE_LABEL}", // "commentLink"
schema: {
identifier: true,
restrictProperties: true,
restrictRelationships: true,
properties: {
commentLinkId: {
identifier: true, // create unique id from request params and uniqueMessageId
},
},
}
}
- Is a node in between a comment and another object, eg replying to a comment
- Set as it's own node so can create relationships to the links (eg when a user traverses the link, so we can create weights for links)
Relationships
{
relationshipType: "{CommentLib.IN_REPLY_TO_GRAPH_REL_TYPE}", // "inReplyTo_Comment"
schema: {
immutable: true,
restrictProperties: true,
properties: {
originTimestamp: //timestamp the request to create/change this relationship was sent
},
}
}
{
relationshipType: "{CommentLib.COMMENT_HAS_REFERENCE_GRAPH_REL_TYPE}", // "commentHas_Reference"
schema: {
immutable: true,
restrictProperties: true,
properties: {
originTimestamp: //timestamp the request to create/change this relationship was sent
},
}
}
{
relationshipType: "{CommentLib.COMMENT_HAS_REPLY_GRAPH_REL_TYPE}", // "commentHas_Reply"
schema: {
immutable: true,
restrictProperties: true,
properties: {
originTimestamp: //timestamp the request to create/change this relationship was sent
},
}
}
{
relationshipType: "{CommentLib.COMMENT_HAS_NEXT_COMMENT_GRAPH_REL_TYPE}", // "commentHas_NextComment"
schema: {
immutable: true,
restrictProperties: true,
properties: {
originTimestamp: //timestamp the request to create/change this relationship was sent
},
}
}
{
relationshipType: "{CommentLib.COMMENT_HAS_REPLY_GRAPH_REL_TYPE}", // "commentHas_Quote"
schema: {
immutable: true,
restrictProperties: true,
properties: {
originTimestamp: //timestamp the request to create/change this relationship was sent
startChar: ##, // when the quote starts in the comment
endChar: ##, // when the quote ends in the comment
},
}
}
- Connect to commentLinks, which in turn connect to other objects
{
relationshipType: "{CommentLib.COMMENTLINKTO_OBJECT_GRAPH_REL_TYPE}", // "commentLinkTo_Object"
schema: {
immutable: true,
restrictProperties: true,
properties: {
originTimestamp: //timestamp the request to create/change this relationship was sent
},
}
}
- Connects a commentLink to an object
{
relationshipType: "{CommentLib.COMMENTVIEWED_BY_USER_GRAPH_REL_TYPE}", // "commentViewedBy_User"
schema: {
immutable: true,
restrictProperties: true,
properties: {
originTimestamp: //timestamp the request to create/change this relationship was sent
viewSource: "xx" // "directView"|"replyLink"|"chronologicalLink" how the user came to view this comment, maybe also add identifier for eg replyLink
},
}
}
- Each time a user views a comment add a link
- Could add other metrics like view time