Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • 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 (Cyborg)
  • No Skin
Collapse
Brand Logo

CIRCLE WITH A DOT

  1. Home
  2. Uncategorized
  3. So, an interesting issue came up in the #Fedify repo that I've been thinking about: [#629].

So, an interesting issue came up in the #Fedify repo that I've been thinking about: [#629].

Scheduled Pinned Locked Moved Uncategorized
as2fepfedifyfedidevfediverse
7 Posts 5 Posters 0 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.
  • hongminhee@hollo.socialH This user is from outside of this forum
    hongminhee@hollo.socialH This user is from outside of this forum
    hongminhee@hollo.social
    wrote last edited by
    #1

    So, an interesting issue came up in the #Fedify repo that I've been thinking about: #629.

    You know how every #fediverse server uses schema:PropertyValue in actor attachment for profile metadata fields (like “Website”, “GitHub”, etc.)? Turns out, strict #AS2 validators like browser.pub reject it, because the AS2 spec says attachment should only contain Object or Link—and PropertyValue is a schema.org type, not an Activity Streams 2.0 type.

    The thing is, we can't just drop the type like we did with Endpoints (#576), because Mastodon and others rely on seeing "type": "PropertyValue" to render profile fields. But at the same time, it's technically not spec-compliant.

    I'm leaning towards writing a #FEP to formalize this existing practice rather than trying to invent a new type (like toot:PropertyValue extending Object), which would be a nightmare to migrate across the whole fediverse.

    What do you all think? Has anyone else run into this? Would love to hear thoughts from implementers and spec folks.

    #fedidev #ActivityPub #ActivityStreams #ActivityStreams2 #AS2 #PropertyValue

    1 Reply Last reply
    1
    0
    • R relay@relay.an.exchange shared this topic
    • smallcircles@social.coopS This user is from outside of this forum
      smallcircles@social.coopS This user is from outside of this forum
      smallcircles@social.coop
      wrote last edited by
      #2

      @hongminhee

      Something to cc @trwnh and @evan on. And @steve who wrote an ontology for the `toot` namespace (is this elsewhere defined differently?) ..

      https://github.com/steve-bate/activitypub-ontology/blob/main/toot.ttl

      Options:

      - Break spec compliance with a pragmatic FEP hack. Acknowledging that the installed base creates the protocol and/or app (as the delineation is unclear) specs on-the-fly i.e. by means of follow the leader post-facto interoperability.

      - Create a type that extends `Object`. What is the best-practice here? In what ways is this done already?

      - Go multi-type, type property as a set. There are examples in AS2 specs, but it is unclear to me and I think never clearly defined how this works. Plus multi-type isn't widely supported on fedi either atm, I think.

      For last option see e.g. Example 103 in AS2 Vocab spec:

      `"type": ["Activity", "http://www.verbs.example/Check"]`

      In this example btw, the "result" property, defined as Object or Link is of type "http://www.types.example/flightstatus"

      smallcircles@social.coopS 1 Reply Last reply
      0
      • smallcircles@social.coopS smallcircles@social.coop

        @hongminhee

        Something to cc @trwnh and @evan on. And @steve who wrote an ontology for the `toot` namespace (is this elsewhere defined differently?) ..

        https://github.com/steve-bate/activitypub-ontology/blob/main/toot.ttl

        Options:

        - Break spec compliance with a pragmatic FEP hack. Acknowledging that the installed base creates the protocol and/or app (as the delineation is unclear) specs on-the-fly i.e. by means of follow the leader post-facto interoperability.

        - Create a type that extends `Object`. What is the best-practice here? In what ways is this done already?

        - Go multi-type, type property as a set. There are examples in AS2 specs, but it is unclear to me and I think never clearly defined how this works. Plus multi-type isn't widely supported on fedi either atm, I think.

        For last option see e.g. Example 103 in AS2 Vocab spec:

        `"type": ["Activity", "http://www.verbs.example/Check"]`

        In this example btw, the "result" property, defined as Object or Link is of type "http://www.types.example/flightstatus"

        smallcircles@social.coopS This user is from outside of this forum
        smallcircles@social.coopS This user is from outside of this forum
        smallcircles@social.coop
        wrote last edited by
        #3

        @hongminhee @trwnh @evan @steve

        Regarding the option to create a spec-breaking FEP.. this is only one occurrence, of something that is a more general issue of protocol extensibility best practices to follow.

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

          @hongminhee @trwnh @evan @steve

          Regarding the option to create a spec-breaking FEP.. this is only one occurrence, of something that is a more general issue of protocol extensibility best practices to follow.

          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 last edited by
          #4

          @smallcircles @hongminhee @evan @steve browser.pub is incorrect here -- having a range of Object or Link doesn't mean that schema PropertyValue is not allowed. it means that the value is inferred to be an Object or a Link *in addition to* a PropertyValue. there is no problem as long as there are no conflicting statements being made.

          cc @js

          trwnh@mastodon.socialT 1 Reply Last reply
          2
          0
          • R relay@relay.mycrowd.ca shared this topic
          • trwnh@mastodon.socialT trwnh@mastodon.social

            @smallcircles @hongminhee @evan @steve browser.pub is incorrect here -- having a range of Object or Link doesn't mean that schema PropertyValue is not allowed. it means that the value is inferred to be an Object or a Link *in addition to* a PropertyValue. there is no problem as long as there are no conflicting statements being made.

            cc @js

            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 last edited by
            #5

            @smallcircles @hongminhee @evan @steve @js also, https://w3id.org/fep/fb2a exists for Actor metadata, and https://w3id.org/fep/e229 describes best practices for extensibility (although that one needs an update per the discussion thread)

            1 Reply Last reply
            1
            0
            • ? Offline
              ? Offline
              Guest
              wrote last edited by
              #6

              @hongminhee +1 for formalizing the existing practice in a FEP.

              PropertyValue is covered in FEP-fb2a, but it proposes an alternative representation which implementers must support:

              https://codeberg.org/fediverse/fep/src/branch/main/fep/fb2a/fep-fb2a.md

              1 Reply Last reply
              0
              • 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 last edited by
                #7

                Yup do as @trwnh@mastodon.social and @silverpill@mitra.social say and implement fb2a.

                It is supported by NodeBB and WordPress already.

                1 Reply Last reply
                1
                0
                Reply
                • Reply as topic
                Log in to reply
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes


                • Login

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