Posts
Latest notes
No posts yet.
@phnt @icedquinn @coolbean @vic
> fully compliant JSON-LD parsers for Python, Ruby, JavaScript and Elixir minimally,
https://json-ld.org/#developers lists all of those and more...
python: https://github.com/RDFLib/rdflib
ruby: https://github.com/ruby-rdf/json-ld/
javascript: https://github.com/digitalbazaar/jsonld.js
elixir: https://github.com/rdf-elixir/jsonld-ex
python and javascript probably have the best library support for this, with java and rust and c# not too far behind. php is lagging behind, though.
> there's exactly zero need for it
there's zero need for it *if you exclusively use only properties defined in activitystreams, exactly as https://www.w3.org/ns/activitystreams.jsonld describes them*. anything not defined there is ambiguous. there are 3 ways to make it unambiguous:
- use a jsonld processor to expand shorthand terms to full identifiers
- use pre-expanded full identifiers
- use a central registry that everyone agrees to use IANA-style, bound to some media type or profile (like how application/activity+json specifies the meaning of terms)
@icedquinn has it correct. mastodon uses properties like "featured" and "discoverable" which by default have no meaning whatsoever in AS2. you can't assume these terms are always being used the same way mastodon uses them. "featured" might be a boolean indicating that the current object should be promoted, instead of a reference to a collection of pinned posts. "discoverable" might imply different things depending on if you follow mastodon's interpretation or not (say for public timelines instead of for profile directories or search results).
the bigger problem is that even the official AS2 terms are being used in ways not according to their definition by mastodon, and other softwares also have different overloading of the terms. "to" being expected to always be an array or not, "attachment" being expected to be ordered when it isn't, etc etc etc etc... there's dozens of papercuts in how the same terms get used differently by different softwares, which should flat-out never happen ideally, but unfortunately linguistics is what it is.
even bigger than that: the vocabulary is only a foundation for describing activities, which don't have consistently agreed-upon behaviors, constraints, or expectations. this is assuming the softwares care about activities at all and aren't just fetching notes or articles from origin. and even *that* assumes they care about the notes and articles and aren't just transforming it into some bespoke internal representation which isn't shared by any other software.
honestly for fedi purposes it is mostly a mistake to try and standardize on one vocabulary and format because all it does is encourage people to bend and twist and break the standard to fit their own purposes, when what they really ought to be doing is developing their own controlled vocabularies to describe what they're *actually* doing -- and map equivalences between that and some eventual standard (that comes from surveying the landscape after it's less experimental). so for example, mastodon should be calling them Accounts and Statuses, namespaced within their own namespace, mirroring their codebase's models in app/models/status.rb and so on. this doesn't preclude them from *also* describing their entities with other vocabularies -- the same thing could be a mastodon:Status, as:Article, sioc:Post, you name it, if it fits it fits. treat it a lot more like an API than letting mastodon hollow out AS2 and use it as a rubberstamp for legitimacy.
> fully compliant JSON-LD parsers for Python, Ruby, JavaScript and Elixir minimally,
https://json-ld.org/#developers lists all of those and more...
python: https://github.com/RDFLib/rdflib
ruby: https://github.com/ruby-rdf/json-ld/
javascript: https://github.com/digitalbazaar/jsonld.js
elixir: https://github.com/rdf-elixir/jsonld-ex
python and javascript probably have the best library support for this, with java and rust and c# not too far behind. php is lagging behind, though.
> there's exactly zero need for it
there's zero need for it *if you exclusively use only properties defined in activitystreams, exactly as https://www.w3.org/ns/activitystreams.jsonld describes them*. anything not defined there is ambiguous. there are 3 ways to make it unambiguous:
- use a jsonld processor to expand shorthand terms to full identifiers
- use pre-expanded full identifiers
- use a central registry that everyone agrees to use IANA-style, bound to some media type or profile (like how application/activity+json specifies the meaning of terms)
@icedquinn has it correct. mastodon uses properties like "featured" and "discoverable" which by default have no meaning whatsoever in AS2. you can't assume these terms are always being used the same way mastodon uses them. "featured" might be a boolean indicating that the current object should be promoted, instead of a reference to a collection of pinned posts. "discoverable" might imply different things depending on if you follow mastodon's interpretation or not (say for public timelines instead of for profile directories or search results).
the bigger problem is that even the official AS2 terms are being used in ways not according to their definition by mastodon, and other softwares also have different overloading of the terms. "to" being expected to always be an array or not, "attachment" being expected to be ordered when it isn't, etc etc etc etc... there's dozens of papercuts in how the same terms get used differently by different softwares, which should flat-out never happen ideally, but unfortunately linguistics is what it is.
even bigger than that: the vocabulary is only a foundation for describing activities, which don't have consistently agreed-upon behaviors, constraints, or expectations. this is assuming the softwares care about activities at all and aren't just fetching notes or articles from origin. and even *that* assumes they care about the notes and articles and aren't just transforming it into some bespoke internal representation which isn't shared by any other software.
honestly for fedi purposes it is mostly a mistake to try and standardize on one vocabulary and format because all it does is encourage people to bend and twist and break the standard to fit their own purposes, when what they really ought to be doing is developing their own controlled vocabularies to describe what they're *actually* doing -- and map equivalences between that and some eventual standard (that comes from surveying the landscape after it's less experimental). so for example, mastodon should be calling them Accounts and Statuses, namespaced within their own namespace, mirroring their codebase's models in app/models/status.rb and so on. this doesn't preclude them from *also* describing their entities with other vocabularies -- the same thing could be a mastodon:Status, as:Article, sioc:Post, you name it, if it fits it fits. treat it a lot more like an API than letting mastodon hollow out AS2 and use it as a rubberstamp for legitimacy.
@icedquinn @coolbean @vic activitypub is impossible to implement because it's incomplete and everything you need to complete it is out of scope (authentication/authorization, trust model, etc etc)
fedi is a nightmare to interop with because everyone filled in the gaps differently and even worse they use the little that *was* specced in ambiguous and nonspecific ways instead of defining their own terms or using the terms as officially defined (and then the behaviors are basically totally undefined)
json-ld group is doing yaml-ld because believe it or not, some people actually asked for it and intend to implement it (as well as cbor-ld) so they have an actual mandate for doing this and didn't just decide to do it on their own
fedi is a nightmare to interop with because everyone filled in the gaps differently and even worse they use the little that *was* specced in ambiguous and nonspecific ways instead of defining their own terms or using the terms as officially defined (and then the behaviors are basically totally undefined)
json-ld group is doing yaml-ld because believe it or not, some people actually asked for it and intend to implement it (as well as cbor-ld) so they have an actual mandate for doing this and didn't just decide to do it on their own
@nicholas @shibao
> hoppe's argumentation ethics
wow i didn't think people could get this stupid
"let's just presuppose i'm right and if you disagree with me you prove me right" is supposed to be a compelling argument for ownership? as a proof-by-contradiction i don't see any contradiction being proven, i just see faulty premises
> hoppe's argumentation ethics
wow i didn't think people could get this stupid
"let's just presuppose i'm right and if you disagree with me you prove me right" is supposed to be a compelling argument for ownership? as a proof-by-contradiction i don't see any contradiction being proven, i just see faulty premises
@shibao well how do you measure moral truth values? any moral calculus depends on the values assigned. like, if your concept is only "one" and "many" then no, 2 doesn't exist until we reify 2. just like we reified 0
i think you are quoting the wrong bits of what i said because the operative part was the assignment of moral properties and values, not the rhetorical introduction via base case
i'm still waiting to hear about what the universal moral truth value is for homosexuality or for putting ice cream in your back pocket btw. which instrument would you use to determine this
i think you are quoting the wrong bits of what i said because the operative part was the assignment of moral properties and values, not the rhetorical introduction via base case
i'm still waiting to hear about what the universal moral truth value is for homosexuality or for putting ice cream in your back pocket btw. which instrument would you use to determine this
@sun the rigor is what kills me nowadays
@shibao i get that the bottom text is theoryslop but i was more commenting about the absurdity of the top text
@shibao maybe this is just the classical moral objectivist vs relativist argument but if you're a relativist the idea that morals are objective is already something you disagree with, and the idea that morals have a truth value is likewise inconsistent
being a relativist doesn't justify immoral actions, it just attributes them to something other than the universe. morals are ideals that require some kind of application to be effective. the very fact that people *can* disagree on what is moral is enough to disprove the idea that they are universal (if they were truly universal they would be self-evident and not require agreement)
this isn't even a marxist thing imo, it's just the realization that you aren't the universe (because it's pretty curious how the objective moral truth just so happens to be the thing i agree with)
being a relativist doesn't justify immoral actions, it just attributes them to something other than the universe. morals are ideals that require some kind of application to be effective. the very fact that people *can* disagree on what is moral is enough to disprove the idea that they are universal (if they were truly universal they would be self-evident and not require agreement)
this isn't even a marxist thing imo, it's just the realization that you aren't the universe (because it's pretty curious how the objective moral truth just so happens to be the thing i agree with)
@shibao i was making a social media post not a formal philosophical argument but okay 😇
btw "2" is a symbol that can represent anything linguistically, and the concepts that it represents doesn't have a truth value either (unless you count "truthiness" coercion in dynamic languages, where 0 is "false"). this is likewise not objective because "2" has to be contextualized like any other symbol in a processing context. trinitarian christians might say "three is one" and take that to be a profound universal truth, but even if you agree in-context, you might disagree arithmetically. try making that statement in a programming language and you get "false".
mostly the thing i am commenting on is the idealism and also the strange coincidence that the universal ideal just so happens to align with whoever is stating it. it's not me saying this, it's the universe which is objectively true and agrees with me and is my friend. i can't take responsibility for any of my beliefs or statements because i am only describing a universal truth. i'm just a messenger, i don't make the rules, etc.
btw "2" is a symbol that can represent anything linguistically, and the concepts that it represents doesn't have a truth value either (unless you count "truthiness" coercion in dynamic languages, where 0 is "false"). this is likewise not objective because "2" has to be contextualized like any other symbol in a processing context. trinitarian christians might say "three is one" and take that to be a profound universal truth, but even if you agree in-context, you might disagree arithmetically. try making that statement in a programming language and you get "false".
mostly the thing i am commenting on is the idealism and also the strange coincidence that the universal ideal just so happens to align with whoever is stating it. it's not me saying this, it's the universe which is objectively true and agrees with me and is my friend. i can't take responsibility for any of my beliefs or statements because i am only describing a universal truth. i'm just a messenger, i don't make the rules, etc.
@shibao 2 doesn't exist ontologically until you describe it. morals are much the same. if there were no persons in the universe then what morals exist? you introduce moral actors by ascribing moral properties to them, which require a context to be qualified
> i don't think the concept of the universe applying morality in the same way for all people is farfetched
what does the universe say morally about homosexuality or putting ice cream in your back pocket? who speaks for the universe?
i mean, when you fall off a cliff, you can reason about physics or gravity up until the point that you die. what does moral reasoning do in a universal sense? "civilization"? the morals of that civilization depend on the civilization's values. one civilization ends, another begins, there need not be moral continuity between the two
> i don't think the concept of the universe applying morality in the same way for all people is farfetched
what does the universe say morally about homosexuality or putting ice cream in your back pocket? who speaks for the universe?
i mean, when you fall off a cliff, you can reason about physics or gravity up until the point that you die. what does moral reasoning do in a universal sense? "civilization"? the morals of that civilization depend on the civilization's values. one civilization ends, another begins, there need not be moral continuity between the two
@sun @nyx these problems aren't insurmountable, it's just a question of whether they are worth the effort. neither are alternative technical solutions necessary if the problem is actually social (unless it makes it technically impossible to enforce those social constraints in a way that is cheaper than undoing the social constraints or routing around them)