Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
We Distribute
  1. Home
  2. Technical Discussion
  3. Deleting a post vs deleting an entire comment tree

Deleting a post vs deleting an entire comment tree

Scheduled Pinned Locked Moved Technical Discussion
deletionthreadiverseactivitypub
66 Posts 15 Posters 41 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • trwnh@mastodon.socialT trwnh@mastodon.social

    @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 spam

    the intent could be clearer...

    trwnh@mastodon.socialT This user is from outside of this forum
    trwnh@mastodon.socialT This user is from outside of this forum
    trwnh@mastodon.social
    wrote on last edited by
    #33

    @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@activitypub.spaceJ 1 Reply Last reply
    0
    • trwnh@mastodon.socialT trwnh@mastodon.social

      @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@activitypub.spaceJ This user is from outside of this forum
      julian@activitypub.spaceJ This user is from outside of this forum
      julian@activitypub.space
      wrote on last edited by
      #34

      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

      1 Reply Last reply
      0
      • jenniferplusplus@hachyderm.ioJ This user is from outside of this forum
        jenniferplusplus@hachyderm.ioJ This user is from outside of this forum
        jenniferplusplus@hachyderm.io
        wrote on last edited by
        #35

        @julian @mariusor @helge
        fwiw, letterbook is fine with that
        https://github.com/Letterbook/Letterbook/blob/6bf60b1b3d37a8b5d49a1d2554bfd5e4468f00de/Source/Letterbook.Api/ActivityPub/ActorController.cs#L309

        1 Reply Last reply
        1
        • trwnh@mastodon.socialT This user is from outside of this forum
          trwnh@mastodon.socialT This user is from outside of this forum
          trwnh@mastodon.social
          wrote on last edited by
          #36

          @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.

          trwnh@mastodon.socialT 1 Reply Last reply
          0
          • trwnh@mastodon.socialT trwnh@mastodon.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.

            trwnh@mastodon.socialT This user is from outside of this forum
            trwnh@mastodon.socialT This user is from outside of this forum
            trwnh@mastodon.social
            wrote on last edited by
            #37

            @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.

            trwnh@mastodon.socialT 1 Reply Last reply
            0
            • trwnh@mastodon.socialT trwnh@mastodon.social

              @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.

              trwnh@mastodon.socialT This user is from outside of this forum
              trwnh@mastodon.socialT This user is from outside of this forum
              trwnh@mastodon.social
              wrote on last edited by
              #38

              @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@activitypub.spaceJ 1 Reply Last reply
              0
              • trwnh@mastodon.socialT trwnh@mastodon.social

                @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@activitypub.spaceJ This user is from outside of this forum
                julian@activitypub.spaceJ This user is from outside of this forum
                julian@activitypub.space
                wrote on last edited by julian@activitypub.space
                #39

                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)

                1 Reply Last reply
                0
                • trwnh@mastodon.socialT This user is from outside of this forum
                  trwnh@mastodon.socialT This user is from outside of this forum
                  trwnh@mastodon.social
                  wrote on last edited by
                  #40

                  @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@activitypub.spaceJ 1 Reply Last reply
                  0
                  • trwnh@mastodon.socialT trwnh@mastodon.social

                    @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@activitypub.spaceJ This user is from outside of this forum
                    julian@activitypub.spaceJ This user is from outside of this forum
                    julian@activitypub.space
                    wrote on last edited by julian@activitypub.space
                    #41

                    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) or Delete(Object)+with_replies.

                    1 Reply Last reply
                    1
                    • trwnh@mastodon.socialT This user is from outside of this forum
                      trwnh@mastodon.socialT This user is from outside of this forum
                      trwnh@mastodon.social
                      wrote on last edited by
                      #42

                      @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?

                      1 Reply Last reply
                      0
                      • trwnh@mastodon.socialT trwnh@mastodon.social

                        @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)

                        mariusor@metalhead.clubM This user is from outside of this forum
                        mariusor@metalhead.clubM This user is from outside of this forum
                        mariusor@metalhead.club
                        wrote on last edited by
                        #43

                        @trwnh I'm not sure how much time you spent thinking about this, but I have and I *do* think that it makes sense, thank you for your input. Also it does not violate any constraints in the specification, though if you know of one I'd love to hear it.

                        The advantage of having all ancestors there is that the object can be disseminated to all the instances in that list, and be added to all the replies collections of its ancestors. As such when you retrieve any of those ancestor replies collections you have the full thread from their point downwards and you don't need to fetch other replies collections up the chain.

                        @julian @helge

                        trwnh@mastodon.socialT 1 Reply Last reply
                        0
                        • mariusor@metalhead.clubM mariusor@metalhead.club

                          @trwnh I'm not sure how much time you spent thinking about this, but I have and I *do* think that it makes sense, thank you for your input. Also it does not violate any constraints in the specification, though if you know of one I'd love to hear it.

                          The advantage of having all ancestors there is that the object can be disseminated to all the instances in that list, and be added to all the replies collections of its ancestors. As such when you retrieve any of those ancestor replies collections you have the full thread from their point downwards and you don't need to fetch other replies collections up the chain.

                          @julian @helge

                          trwnh@mastodon.socialT This user is from outside of this forum
                          trwnh@mastodon.socialT This user is from outside of this forum
                          trwnh@mastodon.social
                          wrote on last edited by
                          #44

                          @mariusor @julian @helge i'm saying you should define an "ancestors" property for this instead of misusing "inReplyTo". if i am responding to specific posts, i am not necessarily responding to something 20 recursive replies upward.

                          mariusor@metalhead.clubM 1 Reply Last reply
                          0
                          • trwnh@mastodon.socialT trwnh@mastodon.social

                            @mariusor @julian @helge i'm saying you should define an "ancestors" property for this instead of misusing "inReplyTo". if i am responding to specific posts, i am not necessarily responding to something 20 recursive replies upward.

                            mariusor@metalhead.clubM This user is from outside of this forum
                            mariusor@metalhead.clubM This user is from outside of this forum
                            mariusor@metalhead.club
                            wrote on last edited by
                            #45

                            @trwnh ok, that's a valid opinion to have, but I disagree with it, and as long as you can't offer me a specification quote which contradicts my point of view "misuse" is just like your opinion, man.

                            Also, please stop reply guying every time I offer my input to somebody else.

                            @julian @helge

                            trwnh@mastodon.socialT 1 Reply Last reply
                            0
                            • mariusor@metalhead.clubM mariusor@metalhead.club

                              @trwnh ok, that's a valid opinion to have, but I disagree with it, and as long as you can't offer me a specification quote which contradicts my point of view "misuse" is just like your opinion, man.

                              Also, please stop reply guying every time I offer my input to somebody else.

                              @julian @helge

                              trwnh@mastodon.socialT This user is from outside of this forum
                              trwnh@mastodon.socialT This user is from outside of this forum
                              trwnh@mastodon.social
                              wrote on last edited by
                              #46

                              @mariusor @julian @helge i got here via a discussion on activitypub.space, not via your profile.

                              in any case, per https://www.w3.org/TR/activitystreams-vocabulary/#dfn-inreplyto

                              > Indicates one or more entities for which this object is considered a response.

                              if A says something and B responds to what A said, then C responds to what B said, it is not universally true that C is always responding to A as well.

                              A: What's your favorite pie?
                              B: I like apple pie.
                              😄 Hey B, wanna try my apple pie this weekend?

                              C is not a response to A.

                              mariusor@metalhead.clubM 1 Reply Last reply
                              0
                              • trwnh@mastodon.socialT trwnh@mastodon.social

                                @mariusor @julian @helge i got here via a discussion on activitypub.space, not via your profile.

                                in any case, per https://www.w3.org/TR/activitystreams-vocabulary/#dfn-inreplyto

                                > Indicates one or more entities for which this object is considered a response.

                                if A says something and B responds to what A said, then C responds to what B said, it is not universally true that C is always responding to A as well.

                                A: What's your favorite pie?
                                B: I like apple pie.
                                😄 Hey B, wanna try my apple pie this weekend?

                                C is not a response to A.

                                mariusor@metalhead.clubM This user is from outside of this forum
                                mariusor@metalhead.clubM This user is from outside of this forum
                                mariusor@metalhead.club
                                wrote on last edited by
                                #47

                                @trwnh I dislike to have to get into the semantics of what "a reply" is, but from my point of view the definition matches any downstream element in a discussion. Why? Because in a discussion context matters, both on a comprehension level and on the pragmatic ActivityPub level, as we can see from the work the threadiverse does. So yes, it's not an immediate reply to its ancestors but it is in the "reply chain" of its ancestors, and that is sufficient for me.

                                If your worry is about how to deal with this programmatically, check JWZ's message threading algorithm, which gives good solutions even with multiple ancestors.

                                @julian @helge

                                mariusor@metalhead.clubM 1 Reply Last reply
                                0
                                • mariusor@metalhead.clubM mariusor@metalhead.club

                                  @trwnh I dislike to have to get into the semantics of what "a reply" is, but from my point of view the definition matches any downstream element in a discussion. Why? Because in a discussion context matters, both on a comprehension level and on the pragmatic ActivityPub level, as we can see from the work the threadiverse does. So yes, it's not an immediate reply to its ancestors but it is in the "reply chain" of its ancestors, and that is sufficient for me.

                                  If your worry is about how to deal with this programmatically, check JWZ's message threading algorithm, which gives good solutions even with multiple ancestors.

                                  @julian @helge

                                  mariusor@metalhead.clubM This user is from outside of this forum
                                  mariusor@metalhead.clubM This user is from outside of this forum
                                  mariusor@metalhead.club
                                  wrote on last edited by
                                  #48

                                  @trwnh an example
                                  for threading based on multiple elements for inReplyTo (using vanilla JavaScript): https://git.sr.ht/~mariusor/oni/tree/master/item/src/js/items-threading.js

                                  This is my last contribution to this discussion, with apologies for the spamming to all that have been dragged into it inadvertently.

                                  @julian @helge

                                  trwnh@mastodon.socialT 1 Reply Last reply
                                  0
                                  • mariusor@metalhead.clubM mariusor@metalhead.club

                                    @trwnh an example
                                    for threading based on multiple elements for inReplyTo (using vanilla JavaScript): https://git.sr.ht/~mariusor/oni/tree/master/item/src/js/items-threading.js

                                    This is my last contribution to this discussion, with apologies for the spamming to all that have been dragged into it inadvertently.

                                    @julian @helge

                                    trwnh@mastodon.socialT This user is from outside of this forum
                                    trwnh@mastodon.socialT This user is from outside of this forum
                                    trwnh@mastodon.social
                                    wrote on last edited by
                                    #49

                                    @mariusor @julian @helge

                                    i'd rather have an actual context for tracking context. from the point of view of being understood, if you said "What's your favorite pie?" and i said "Julian is invited to my house this weekend", then this is a non sequitur.

                                    a real example of multi-reply:

                                    inReplyTo: [
                                    - AT&T tells the FTC it is a common carrier and the FTC has no jurisdiction
                                    - AT&T tells the FCC that it is not a common carrier and is not subject to net neutrality
                                    ]
                                    content: AT&T is doublespeaking

                                    1 Reply Last reply
                                    0
                                    • mat@friendica.exon.nameM This user is from outside of this forum
                                      mat@friendica.exon.nameM This user is from outside of this forum
                                      mat@friendica.exon.name
                                      wrote on last edited by
                                      #50
                                      @trwnh @julian This is a trust and safety issue, so it's more than just "do what you will". People post things that may endanger themselves or others, and when the details are repeated in the discussion tree deleting the original post is ineffective. Servers that handle this badly can and should be sanctioned - so yes, collectively we can and probably will enforce behaviour. It's pretty important that the intent is explicit.
                                      trwnh@mastodon.socialT 1 Reply Last reply
                                      1
                                      • mat@friendica.exon.nameM mat@friendica.exon.name
                                        @trwnh @julian This is a trust and safety issue, so it's more than just "do what you will". People post things that may endanger themselves or others, and when the details are repeated in the discussion tree deleting the original post is ineffective. Servers that handle this badly can and should be sanctioned - so yes, collectively we can and probably will enforce behaviour. It's pretty important that the intent is explicit.
                                        trwnh@mastodon.socialT This user is from outside of this forum
                                        trwnh@mastodon.socialT This user is from outside of this forum
                                        trwnh@mastodon.social
                                        wrote on last edited by
                                        #51

                                        @mat @julian i understand the situation you're describing, but what kind of notification are you trying to send regarding this? are there any expected behaviors from your audience? there is a far larger problem here: you don't have any consistency guarantees within the distributed system that is the fediverse, precisely because everyone has a different understanding. what are you trying to get your peers to understand?

                                        typically, publishers can Delete, and forum mods can Remove from the thread.

                                        trwnh@mastodon.socialT 1 Reply Last reply
                                        0
                                        • trwnh@mastodon.socialT trwnh@mastodon.social

                                          @mat @julian i understand the situation you're describing, but what kind of notification are you trying to send regarding this? are there any expected behaviors from your audience? there is a far larger problem here: you don't have any consistency guarantees within the distributed system that is the fediverse, precisely because everyone has a different understanding. what are you trying to get your peers to understand?

                                          typically, publishers can Delete, and forum mods can Remove from the thread.

                                          trwnh@mastodon.socialT This user is from outside of this forum
                                          trwnh@mastodon.socialT This user is from outside of this forum
                                          trwnh@mastodon.social
                                          wrote on last edited by
                                          #52

                                          @mat @julian if the redaction is coming from the author, they can send a Delete to anywhere they expect to have stored a copy.

                                          if the redaction is coming from the aggregator, they can send a Remove to anywhere relevant.

                                          but these are always going to be best-effort, because of 2 main reasons:

                                          - you don't have a way to track everyone who has a copy.
                                          - your peers might not agree with what "badly" means.

                                          generally, the answer to "how do i delete a tree" is "you can't", because trees aren't real.

                                          trwnh@mastodon.socialT mat@friendica.exon.nameM 2 Replies Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          Powered by NodeBB Contributors
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups