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?) ..

      Link Preview Image
      activitypub-ontology/toot.ttl at main · steve-bate/activitypub-ontology

      This ontology is an unofficial version of an ActivityPub OWL ontology for experimentation and exploration purposes. It's based on an old Activity Streams ontology that was abandoned in favor of JSON-LD in ActivityPub. I also created a separate ontology for Mastodon (toot) extensions. - activitypub-ontology/toot.ttl at main · steve-bate/activitypub-ontology

      favicon

      GitHub (github.com)

      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?) ..

        Link Preview Image
        activitypub-ontology/toot.ttl at main · steve-bate/activitypub-ontology

        This ontology is an unofficial version of an ActivityPub OWL ontology for experimentation and exploration purposes. It's based on an old Activity Streams ontology that was abandoned in favor of JSON-LD in ActivityPub. I also created a separate ontology for Mastodon (toot) extensions. - activitypub-ontology/toot.ttl at main · steve-bate/activitypub-ontology

        favicon

        GitHub (github.com)

        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:

              Cookie monster!

              favicon

              (codeberg.org)

              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