Service - Comment: Difference between revisions

From Izara Wiki
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

Working documents

Comment