A DSNP Content URI is formed by using the creator's DSNP User Id and the content hash of the referenced content.
However, it provides no context as to where (or when) the content appears.
Because DSNP specifies that Activity Content Notes contain a timestamp (the published field) with second-level precision (xsd:dateTime type), it is unlikely that two Notes from the same user, even if they contain the same content, will generate the same hash.
Problem Scenarios
Misattribution
However, a malicious user or poorly implemented application could certainly create this scenario:
- A posts "I like puppies". B posts "I like Nazis".
- C constructs a reply Note that says "I agree". C announces the Note twice -- once as a reply to A, once as a reply to B.
- D comes along and sees the "I like puppies" thread. D replies to C's "I agree" with "Me too"
Does D's "Me too" get included in the "I like Nazis" thread? An outside observer can't tell.
Over-tombstoning
Consider a similar case where the same content is posted twice in two different contexts within the same published second.
If C wants to delete the reply to B, but not the reply to A, he has no ability to do so.
Options
- Leave as is. The likelihood of this scenario occurring is low.
- Leave as is, but add instructions to implementers on heuristics to deal with these situations (e.g. don't allow the same DSNP Content URI to be used as a Reply in two different threads.)
- Add further context to DSNP Content URI in an attempt to make it more unique.
- (Similar to 3.) Add further fields to Activity Content Note in an attempt to make it hash more uniquely in different contexts.
- Change resolution of timestamp in
published field to milliseconds
A note on 3 (and possibly 4) -- what happens if a user replies to a specific item with the same text, over and over again? Should this be allowed, or should it be de-duped?
A DSNP Content URI is formed by using the creator's DSNP User Id and the content hash of the referenced content.
However, it provides no context as to where (or when) the content appears.
Because DSNP specifies that Activity Content Notes contain a timestamp (the
publishedfield) with second-level precision (xsd:dateTime type), it is unlikely that two Notes from the same user, even if they contain the samecontent, will generate the same hash.Problem Scenarios
Misattribution
However, a malicious user or poorly implemented application could certainly create this scenario:
Does D's "Me too" get included in the "I like Nazis" thread? An outside observer can't tell.
Over-tombstoning
Consider a similar case where the same content is posted twice in two different contexts within the same
publishedsecond.If C wants to delete the reply to B, but not the reply to A, he has no ability to do so.
Options
publishedfield to millisecondsA note on 3 (and possibly 4) -- what happens if a user replies to a specific item with the same text, over and over again? Should this be allowed, or should it be de-duped?