Post B4BrxlWdKyNQOe81yq by phnt@fluffytail.org
 (DIR) More posts by phnt@fluffytail.org
 (DIR) Post #B4BILnfDRRDrd3Iuhs by w3c@w3c.social
       0 likes, 3 repeats
       
       The JSON-LD Working Group published today a First Public Working Draft of YAML-LD 1.0. [JSON-LD11] is a JSON-based format to serialize Linked Data. In recent years, [YAML] has emerged as a more concise format to represent information that had previously been serialized as [JSON], including API specifications, data schemas, and Linked Data. #LinkedData #MachineReadable #WebStandardshttps://www.w3.org/news/2026/first-public-working-draft-yaml-ld-1-0/
       
 (DIR) Post #B4BYWyqPoLYAkztals by chjara@akko.tuxcrafting.xyz
       4 likes, 0 repeats
       
       @w3c You're a few weeks too early for April 1st.
       
 (DIR) Post #B4BaXYHOGR00Z6ugXQ by natty@astolfo.social
       0 likes, 0 repeats
       
       @w3c@w3c.social wrong date, April is in three weeks
       
 (DIR) Post #B4BazaooPwQGY3uuvY by icedquinn@blob.cat
       3 likes, 4 repeats
       
       :neofox_gun: do not use yaml. do not support the propagation of yaml. say no to 300 page specs for fucking plain text storage god damnRE: https://w3c.social/@w3c/116216070362563670
       
 (DIR) Post #B4Bb7rlLItSlPrEtF2 by LivingCooki@void.lgbt
       0 likes, 0 repeats
       
       Fedi server contributors: JSON-LD is the worst thing ever createdw3c: Is that a challenge?RE: https://w3c.social/@w3c/116216070362563670
       
 (DIR) Post #B4Bb7rxOa56W1EsW1o by natty@astolfo.social
       0 likes, 0 repeats
       
       @LivingCooki@void.lgbt people actually joked about YAML LD
       
 (DIR) Post #B4Bb7ufQVLVsQNUhw8 by LivingCooki@void.lgbt
       0 likes, 0 repeats
       
       I like how I refresh my timeline after posting this to see another post right below it that quotes the same post and makes a very similar joke
       
 (DIR) Post #B4BbVGUVWv9glpWQwy by icedquinn@blob.cat
       0 likes, 0 repeats
       
       @vic i had an anneurism seeing this. the spec for json is like 1 page.if you must go whitespace then consider nestedtext. it doesn't have embarassing issues like the norway problem.
       
 (DIR) Post #B4BbWFopVyekyWV1ay by kopper@not-brain.d.on-t.work
       1 likes, 0 repeats
       
       @natty @LivingCooki tbf this was in the making for ages, i've definitely talked about that when brain.d.on-t.work was online
       
 (DIR) Post #B4BbZ3CYsjQuiDvv6W by kopper@not-brain.d.on-t.work
       1 likes, 0 repeats
       
       @LivingCooki @natty i honestly thought at the time it was just one guy doing a bit (the discussion was around a ruby software and ruby people like yaml) but more and more people kept talking about yaml-ld since so it was only a matter of time
       
 (DIR) Post #B4Bbjlbgdg4HKQnMS8 by volpeon@icy.wyvern.rip
       1 likes, 0 repeats
       
       @w3c Never thought the day would come I'd say "I'd rather stick with JSON-LD"
       
 (DIR) Post #B4BcPGAhu8Jnzqxe7c by kirby@freerobuxextremist.com
       0 likes, 0 repeats
       
       @w3c
       
 (DIR) Post #B4Bd8JvOnUDefTHsAK by coolbean@brain.worm.pink
       0 likes, 0 repeats
       
       @icedquinn @vic AND json5 already exists to fill this exact niche while also having other neat upsides (backwards compatibility with regular json data and using perfectly valid ecmascript syntax)
       
 (DIR) Post #B4Bd8KInOUvzq2EYdM by coolbean@brain.worm.pink
       0 likes, 0 repeats
       
       @icedquinn @vic i mean fuck its the json-ld working group i shouldve expected this they're the reason activitypub is impossible to implement right
       
 (DIR) Post #B4Bd8KceCgoWpbWPZo by icedquinn@blob.cat
       0 likes, 0 repeats
       
       @coolbean @vic i don't like LD but i'd probably flame mastodon more about that one.
       
 (DIR) Post #B4BdNmjVyFXAMK6QHg by icedquinn@blob.cat
       0 likes, 0 repeats
       
       @coolbean @vic afaik the big crime with that is that people are parsing the json as-is and the ld tags are just for show. which means its basically not ld, since namespace resolution isn't being done, which is also basically what happened to xmlns.there is more spec than i like to json-ld but its also basically working around json's lack of metadata and trying to tape namespacing on in a couple ways, so.if it were up to me we would just store the triplets and maybe a prefix reference.
       
 (DIR) Post #B4BejW7QWU3x9iDJkO by phnt@fluffytail.org
       0 likes, 0 repeats
       
       @icedquinn @coolbean @vic >afaik the big crime with that is that people are parsing the json as-is and the ld tags are just for show. which means its basically not ld, since namespace resolution isn't being done,JSON-LD in ActivityPub is entirely optional and always was. You are supposed to be able to use it as plain JSON. If it was forced, most of the implementations would not exist these days, because parsers for JSON-LD barely exist. Those that try to make their own (Friendica and Iceshrimp notably) have constant issues with it especially in performance and when new contexts get added as extensions. It's a shitshow that only the LD fetishists in the WGs support, of which there are few.This also creates subtle issues with representations for both LD and non-LD consumers. Completely valid ActivityPub documents may look different to LD consumers compared to pure JSON consumers.What the AP writers did was, replace XML which was much better at this completely unnecessary linked data thing, with something that is far worse at it and almost impossible to implement properly. Honestly, JSON-LD in ActivityPub should just die, there's exactly zero need for it.
       
 (DIR) Post #B4BejWJ7ozQ7jzgeyu by icedquinn@blob.cat
       1 likes, 0 repeats
       
       @phnt @coolbean @vic xml was always fine people just misunderstood it
       
 (DIR) Post #B4BetlSeKrLRdQ1jUG by phnt@fluffytail.org
       0 likes, 0 repeats
       
       @icedquinn @coolbean @vic Unless someone can give me fully compliant JSON-LD parsers for Python, Ruby, JavaScript and Elixir minimally, I consider the format as a dead format that should never be used in the ActivityPub context.
       
 (DIR) Post #B4Betm5zyYovbSR9ou by coolbean@brain.worm.pink
       0 likes, 0 repeats
       
       @phnt @icedquinn @vic there we go, someone thats felt the painmay i ask you how do you feel about websub and using it to enable like minimal federation on a more self-hosted level
       
 (DIR) Post #B4BetmN0xIQoSEOkLI by icedquinn@blob.cat
       0 likes, 0 repeats
       
       @coolbean @phnt @vic pedantically speaking its more of a translation pass than a parser. its basically defining how to read some json constructs in a way that results in the original RDF turtles.i just happen to disagree that its a problem that needed to be solved. just fucking use turtle :blobfoxgooglynomlog:
       
 (DIR) Post #B4Betn5gHEA0glIPxo by coolbean@brain.worm.pink
       0 likes, 0 repeats
       
       @phnt @icedquinn @vic cause in my brain i always go "websub would fix this" but im actually fucking clueless on this topic i dont know what im doing
       
 (DIR) Post #B4BfFzhA5tjk9TPmQC by coolbean@brain.worm.pink
       1 likes, 0 repeats
       
       @icedquinn @phnt @vic everytime im forced to write it by hand i want to tear off my arms
       
 (DIR) Post #B4BfFzrnSMFAgSOGzw by icedquinn@blob.cat
       1 likes, 0 repeats
       
       @coolbean @phnt @vic the problem with XML is that it makes sense within the SGML lineage which is not how most people experienced it.SGML was this massive gigaspec where the culture developed a self awareness that you kind of cherry pick which parts fit your budget. it had a lot of human aids to make ex. writing recipes easier. but because it was a gigaspec, and not everyone implements all of it, they decided what if we removed a lot of the customization and just made a dialect with a lot of fixed decisions that people could implement as an exchange format.that format is XML.the correct use of XML per greybeards is in the middle of conversion tools. like i posted last year, its like this:- my cool key checking daemon only supports a single hardened XML parser for configs- some domain specific language gets used to actually configure it or a GUI- a translator turns the cool human version in to the XML document, after processing out all of the aids in to a single verbose document that is plainly (if tediously) understoodSun didn't follow instructions and everyone else met XML through Sun. Thus begins the generational trauma to reinvent XML-but-Worse (JSON) or XML-but-cute (KDL)
       
 (DIR) Post #B4BfRpe1HvLySHadQe by icedquinn@blob.cat
       0 likes, 0 repeats
       
       @coolbean @phnt @vic basically the correct use of computers is that json/xml lives on the invisible side of a parser to program pipeline and everyone failed to understand the assignment.thats the whole xml story.
       
 (DIR) Post #B4BfiObj42kBWZPnw8 by phnt@fluffytail.org
       0 likes, 0 repeats
       
       @coolbean @icedquinn @vic No comment on websub, haven't looked into it.
       
 (DIR) Post #B4BfiP0Bb6JGkQrL3w by phnt@fluffytail.org
       0 likes, 0 repeats
       
       @coolbean @icedquinn @vic Although I will say that I don't mind ActivityPub as a protocol, the "spec" sucks and might as well not exist, but the protocol isn't that bad. It is rather simple in nature and mostly suffers from unbounded extensibility which leads to devs doing dumb things or reinventing what is already there in new and interesting (pejorative) ways.
       
 (DIR) Post #B4BfiPEMkNeVSPUfAG by icedquinn@blob.cat
       0 likes, 0 repeats
       
       @phnt @coolbean @vic thats sort of fine as long as the extensions are clearly marked/negotiated.the best tech tends to have a forerunner period where people fill out new things through x-field negotiation and after enough time in the wild someone comes by and notes down the parts that everyone collectively agreed on and drafts a new spec version. it's healthy bottom-up authority.some of the best of the design by committee languages were made this way (lisp, ada)
       
 (DIR) Post #B4Bfkd7k40Lp7pSK00 by sun@shitposter.world
       1 likes, 0 repeats
       
       @phnt @icedquinn @coolbean @vic you know what else would be great:a floss triple store that supports json-ld and is generically queryable (and DOES NOT SUCK)
       
 (DIR) Post #B4BfvbRQew8v5nte5o by icedquinn@blob.cat
       0 likes, 0 repeats
       
       @sun @coolbean @phnt @vic terminusdb looked interesting but seemed to be built for single laptop loads.i think triple stores are always going to be bad, but graph databases do exist so what do i know.
       
 (DIR) Post #B4Bg72mtKLaP5gOITo by fiore@brain.worm.pink
       0 likes, 0 repeats
       
       one billion  new  bug  bountiesRE: https://w3c.social/@w3c/116216070362563670
       
 (DIR) Post #B4BgFvM0KoTQdr36ZM by agatha@snkrgirl.cfd
       1 likes, 0 repeats
       
       @fiore YAML and LD? oh this is going to be good
       
 (DIR) Post #B4BgNbx0MKtwmS1NKK by p@raru.re
       0 likes, 0 repeats
       
       I bet you thought XML namespaces were a good idea...@w3c
       
 (DIR) Post #B4BhD8wRSXrdrvKXWi by a@layer02.net
       0 likes, 0 repeats
       
       @icedquinn @vic nestedtext-ld
       
 (DIR) Post #B4BhD99YfmM8WbT0yG by icedquinn@blob.cat
       0 likes, 0 repeats
       
       @a @vic i mean. i'd hate it but you could."LD" is basically just pattern replacement grammar for mapping shit to and from rdf triplets.
       
 (DIR) Post #B4BhkUQiaTG24OOPBo by a@layer02.net
       0 likes, 0 repeats
       
       @icedquinn @vic the fact that everything is a string is actually really good because rdf is basically that for anything that isn't a reference (except it has datatyping to sort of "cast" values from string to something else)
       
 (DIR) Post #B4BhkUcPsycCefrkQK by icedquinn@blob.cat
       0 likes, 0 repeats
       
       @a @vic i have a feeling LD would do better if they realized what it actually is (just a translation grammer from subject-verb-object to "not that") and just... did that very well.that is exactly what it is, but its trying to act like its something else. :blobcatshrug2:
       
 (DIR) Post #B4BhtILcsTblCiD33Y by a@layer02.net
       1 likes, 0 repeats
       
       @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
       
 (DIR) Post #B4BhtIZ64ONpsUVo3M by icedquinn@blob.cat
       1 likes, 0 repeats
       
       @a @coolbean @vic cbor is slightly overengineered but tolerable.yaml is a crime.
       
 (DIR) Post #B4Bk1PFpHcuwqhUZiC by phnt@fluffytail.org
       0 likes, 0 repeats
       
       @sun @icedquinn @coolbean @vic Brb, making another PostgreSQL extension. This one will be it, I promise.
       
 (DIR) Post #B4Bk1PTeSDybXZxcGG by i@declin.eu
       2 likes, 0 repeats
       
       @phnt @icedquinn @coolbean @vic @sun
       
 (DIR) Post #B4BmUL2YEKKy5MCrS4 by a@layer02.net
       0 likes, 0 repeats
       
       @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/rdflibruby: https://github.com/ruby-rdf/json-ld/javascript: https://github.com/digitalbazaar/jsonld.jselixir: https://github.com/rdf-elixir/jsonld-expython 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 itthere'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.
       
 (DIR) Post #B4BmULdQ1FpNvhSIuu by sun@shitposter.world
       0 likes, 0 repeats
       
       @a @icedquinn @coolbean @phnt @vic I was building a system in elixir and the json-ld lib there isn't sufficient for various reasons.
       
 (DIR) Post #B4BmX8176eysYzrejI by a@layer02.net
       1 likes, 0 repeats
       
       @coolbean @icedquinn @phnt @vic websub would fix Follow activities being broken, at least
       
 (DIR) Post #B4Bng0KX9fLxHekD2W by phnt@fluffytail.org
       0 likes, 0 repeats
       
       @sun @icedquinn @coolbean @a @vic At least you can use it on top of Jason. I expected some complete abomination. Still would be interesting to look at how those listed were fully compliant or even usable at the time AP was finalized.
       
 (DIR) Post #B4Bng0ZmEzXw2vsNnc by sun@shitposter.world
       0 likes, 0 repeats
       
       @phnt @icedquinn @coolbean @a @vic it's one minor point off latest version of json-ld incidentally.
       
 (DIR) Post #B4BnkJxm6OOBKg9om0 by p@raru.re
       0 likes, 0 repeats
       
       🥱 @jak2k
       
 (DIR) Post #B4BrxkTPFUCX8LbwJM by phnt@fluffytail.org
       0 likes, 0 repeats
       
       @a @icedquinn @coolbean @vic >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 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)This is the only sane solution because it comes with the potential of documenting the extensions. And we mostly have FEPs for that currently. The all three AP-related specs should honestly be rewritten to clearly define what they wanted to define and describe exactly how to extend the protocol. In other words, this is how Activity X MUST look like, this is how Object of type Y MUST look like, here's where you MUST add your extension JSON fields. Anything else is not a valid ActivityPub document, period. If you cannot satisfy these requirement when creating extensions, you MUST create new types. The almost unbounded extensibility of the documents along with the free-for-all nature of basic representations of basic Activities is something that should have never been made into a W3C recommendation. The current specifications aren't specifications, they are recipes for how you build your own protocol from scratch.>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).Yes, this is why all extensions should have been documented from the start in a central place for the eventual addition to the specs if need to be. But since Mastodon was de-facto the only implementation at that time when AP was being finalized, they all let it fly. Including the subject->CW hijack, which is why I'm very skeptical of Mastodon joining the W3C. For how extremely bad Nostr is in so many ways, they nailed the extending it part. They have a list of extensions, some mandatory, with examples how they exactly must look like in most cases. That's how it should have been done with ActivityPub from the start.>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.Yes, this is a real problem. One example I fixed recently, alsoKnownAs in Actors usually is an array, but it is an extension, so Hubzilla decided that it should be a string. But again this would not have been a problem if a central place for documenting and creating extensions existed.
       
 (DIR) Post #B4BrxlWdKyNQOe81yq by phnt@fluffytail.org
       0 likes, 0 repeats
       
       @a @coolbean @icedquinn @vic >here's where you MUST add your extension JSON fields.This also comes with potentional of mandating how the extension fields should be named. In other words, you can directly enforce in the specification that all fields must be labeled as <software project name>:<name of field>, or mastodon:featured.
       
 (DIR) Post #B4BrxllASw0F7ivddQ by icedquinn@blob.cat
       0 likes, 0 repeats
       
       @phnt @coolbean @a @vic the way xmlns works is the namespace is canonically an arbitrary URI and its nicknamed in the file. you tell it that "shit = http://fuckit.examples.com"; and you are meant to understand this when processing the doc. people just don't.otherwise you do something like "x-iceworks": ... idk. it's not a huge issue
       
 (DIR) Post #B4BsW2HXXjwQDCPTyi by phnt@fluffytail.org
       0 likes, 0 repeats
       
       @icedquinn @coolbean @a @vic The point of doing it like I described is that you don't need a fancy LD parser, you don't need context, you only need to understand what "mastodon:featured": "asdf" means in a specific place in the whole document. If you don't, you ignore it. The need for loading some remote file for understanding what you just received is gone.
       
 (DIR) Post #B4BsW2V0jeiUsyiEyW by icedquinn@blob.cat
       0 likes, 0 repeats
       
       @phnt @coolbean @a @vic okay. which is how xmlns and x-names work too?
       
 (DIR) Post #B4Buq4E6DtErwVTpPU by mia@shrimptest.0x0.st
       1 likes, 0 repeats
       
       @agatha @fiore i fucking hate yaml so muchoverly ambiguous garbage. yeah i love it when there’s a space character too many on line 302 and it’s a valid document but the shitty rails app that consumes it blows up and doesn’t even know why
       
 (DIR) Post #B4BurI4UEWhvAhZDyi by mia@shrimptest.0x0.st
       1 likes, 0 repeats
       
       @fiore @agatha and even with obvious errors there is not a single validator that will actually get the correct line number
       
 (DIR) Post #B4C71Z8KqnjMR0285Q by a@layer02.net
       0 likes, 0 repeats
       
       @phnt @icedquinn @coolbean @vic this kind of "lite" namespacing makes the problem less bad but still has issues of authority/consensus on who gets to define which terms. https identifiers are used mostly as a hack to bind authority using dns, and the ideal is that the documentation / term definition is served there too. i guess you could have the IANA or whatever assign urn:mastodon to the mastodon organization or whatever, in the same way urn:ieft:rfc: exists?really most of what the jsonld processor does is take a term like "actor" and expand it to either https://www.w3.org/ns/activitystreams#actor or http://schema.org/actor or whatever. if you don't use jsonld processing you substitute it with some other out-of-band knowledge, like the Content-Type in http. the best practice is not to load remote files but to bake them into a media type which injects the preloaded context. this is how we got application/did application/cid application/vc application/vp and so on (and it's what application/activity+json does in theory if people didn't constantly misunderstand the term definitions)you can do something really cursed to fix misunderstandings, which is to sniff the software name + version from nodeinfo and then ignore their context entirely and inject a corrected one. i hate that this is even remotely a thing one would ever consider doing, but it's the only surefire way to deal with software using terms incorrectly. application/activity+json isn't enough to tell you that it's specifically mastodon 4.4 and the difference between the two is non-zero. this is only really needed if you're dealing with multiple disparate data sources though... which is exactly what fedi is in reality except fedi has a collective delusion that we're all doing the same thing (we aren't)the other thing you could do is define an actual profile with actual tests and conformance / compliance for a subset that has an actual schema and processing model included. i might write a fep for one i've been playing around with since a few days ago
       
 (DIR) Post #B4C71ZdsxUy40qnKGO by icedquinn@blob.cat
       0 likes, 0 repeats
       
       @a @coolbean @phnt @vic i think you were intended to store your schema DTD at the url given but this convention was cooked even back then.for RDF the IRI is completely arbitrary. it can be blobcat://mewmew/bongos for all it cares. its simply a long string identifier with some funny shape rules.
       
 (DIR) Post #B4CEG2yVOfhqifHuCm by a@layer02.net
       0 likes, 0 repeats
       
       @icedquinn @coolbean @phnt @vic rdf doesn't care what the reference is literally (it can be any opaque string) but linked data inherits the http web architecture. funnily enough this makes identifiers not fully opaque anymore because you need to extract scheme and authority for trust reasons (tls etc)