Deleting a post vs deleting an entire comment tree
-
@nutomic > Make the target of the Delete an array
It technically is because of JSON-LD (everything can be an array), however, software may not support it because it's pretty common for devs to treat AP as JSON instead of JSON-LD, so doing an assessment of compatibility would be suggested
@thisismissem @nutomic it's not a JSON-LD thing. it's the lack of schematic constraint within the Activity Vocabulary. any property not defined as "functional" can have more than one value.
-
@julian as long as it's in the spec, I don't really care.
If we all bow to inferior implementations the ecosystem will stagnate. Mastodon's quirks have done enough damage in my opinion. My choice is to be brave and build for the future.
PS. Not to brag or anything (🤞) but my implementation can operate on activities with arrays as object, actor, etc.
One thing where you can lead the way (because the threadiverse would really benefit from it) is to accept arrays in inReplyTo (where you put all the ancestors of the current post, not just the parent).
@mariusor @julian @helge i don't think "all the ancestors" makes sense for inReplyTo. by doing that, you are claiming that your post is a response to every post in the thread above it. multiple inReplyTo still makes sense but should be used only where you are actually responding to certain things. if you want ancestors, define a property "ancestors" which is a list of ancestors ordered in a specific way (like in the mastodon api)
-
@julian @rimu @nutomic @melroy @BentiGorlich is this a problem? it seems to only be a problem if you require the others to behave exactly as you do. the same "issue" applies to any activity in general. say you send a Delete; the others can do what they want:
- purge all children
- orphan all backlinked objects
- replace with a tombstone
- rewrite content to say "this post is deleted"
- ignore your activity as unauthorized or invalid or spamthe intent could be clearer...
-
@julian @rimu @nutomic @melroy @BentiGorlich is this a problem? it seems to only be a problem if you require the others to behave exactly as you do. the same "issue" applies to any activity in general. say you send a Delete; the others can do what they want:
- purge all children
- orphan all backlinked objects
- replace with a tombstone
- rewrite content to say "this post is deleted"
- ignore your activity as unauthorized or invalid or spamthe intent could be clearer...
@julian @rimu @nutomic @melroy @BentiGorlich the complicating factor here is not what other people do, but that you would be using the terms incorrectly or imprecisely according to their definition. this happens all the time in natural language where people sometimes use words they don't fully understand or use them with definitions not matching consensus. it's how we get people saying "literally" for things that are not literal, and other such slang.
-
@julian @rimu @nutomic @melroy @BentiGorlich the complicating factor here is not what other people do, but that you would be using the terms incorrectly or imprecisely according to their definition. this happens all the time in natural language where people sometimes use words they don't fully understand or use them with definitions not matching consensus. it's how we get people saying "literally" for things that are not literal, and other such slang.
trwnh@mastodon.social it's less so that I want receivers to do what I want (the ship has sailed on that), but rather that we have the opportunity to provide some guidance on preferred behaviour.
What's clear here is that there are going to be two separate actions, "Delete object and all children, recursively", or "Delete object but retain children".
We're discussing the best way to represent those two actions.
cc rimu@piefed.social nutomic@lemmy.ml silverpill@mitra.social
-
-
@julian @rimu @nutomic @silverpill well, you typically have no authority over "children", so you can't actually delete them. you can treat them as deleted locally (equivalent to garbage collection for orphan references), but as far as the outside world is concerned, you just deleted one object.
i think people should be more aware that orphaned references can and will happen. i'd personally leave them be. link rot is a thing, and those links aren't necessarily invalid, they're just stale.
-
@julian @rimu @nutomic @silverpill well, you typically have no authority over "children", so you can't actually delete them. you can treat them as deleted locally (equivalent to garbage collection for orphan references), but as far as the outside world is concerned, you just deleted one object.
i think people should be more aware that orphaned references can and will happen. i'd personally leave them be. link rot is a thing, and those links aren't necessarily invalid, they're just stale.
@julian @rimu @nutomic @silverpill put another way, there is no difference between a link that doesn't resolve because the resource was deleted and a link that doesn't resolve because the server was down or a link that doesn't resolve because you don't have authorization to see it. it's just a link that doesn't resolve, as far as you're concerned.
the same thing applies to moderation, not just deletion. a direct link might resolve, but the link is omitted from a curated view.
-
@julian @rimu @nutomic @silverpill put another way, there is no difference between a link that doesn't resolve because the resource was deleted and a link that doesn't resolve because the server was down or a link that doesn't resolve because you don't have authorization to see it. it's just a link that doesn't resolve, as far as you're concerned.
the same thing applies to moderation, not just deletion. a direct link might resolve, but the link is omitted from a curated view.
@julian @rimu @nutomic @silverpill essentially the difference between the two actions only exists internally, not externally.
whether to use a Delete or a Remove is a separate issue of semantics and authority.
whether to use an array of objects is a separate issue of batching and partial failure. semantically, there is no issue. "john deleted 10 posts" makes sense as a statement.
-
@julian @rimu @nutomic @silverpill essentially the difference between the two actions only exists internally, not externally.
whether to use a Delete or a Remove is a separate issue of semantics and authority.
whether to use an array of objects is a separate issue of batching and partial failure. semantically, there is no issue. "john deleted 10 posts" makes sense as a statement.
trwnh@mastodon.social nobody's deleting anything. We're only dealing with removing content.
(Which I now realize I worded incorrectly in OP, heh)
That it's a Delete is incidental (and unfortunate wording)
-
@julian you used the word Delete throughout, so i used the same word. either way, you might consider a policy of treating a context deletion as orphaning all items in the context and then you can optionally garbage-collect them. or not. it's up to you, really!
-
@julian you used the word Delete throughout, so i used the same word. either way, you might consider a policy of treating a context deletion as orphaning all items in the context and then you can optionally garbage-collect them. or not. it's up to you, really!
trwnh@mastodon.social yes that's the point. I can't enforce behaviour from anyone but we can signal intent.
That's all this discussion is about. Whether we should
Remove(Context)orDelete(Object)+with_replies. -
trwnh@mastodon.social yes that's the point. I can't enforce behaviour from anyone but we can signal intent.
That's all this discussion is about. Whether we should
Remove(Context)orDelete(Object)+with_replies.@julian with_replies doesn't make sense, but neither does Remove(Context). if the intent is to signal "we locally cleared our cache" then i'm not sure that's relevant to anyone else?