trwnh.com/unified.test.hugo/content/monologues/micropub-data-model/index.md

4.2 KiB

+++ title = "revisiting micropub" summary = "i can't make any sense of the micropub data model. the more i think about it the more confused i get. now, the api itself seems to do a lot of things generally well, but big-picture idk [...] there seem to be a lot of behaviors that the server is possibly or expected to carry out, but it's never entirely clear what those behaviors are because the underlying microformats are so freeform [...] it's unclear what value implementing my own micropub server is supposed to get me" date = 2024-10-18T09:32:00-05:00 source = "https://mastodon.social/@trwnh/113331744143221451" +++

i always kinda vaguely thought micropub was okay but rereading it just now with far more experience than the last time i read it (years ago), i am realizing it's actually quite hairy and it's not immediately clear what the data model even is supposed to be. there's a reliance on microformats of course but it seems to be almost linked-data-lite with a resource management aspect because the examples have you create an h-card for a venue, then doing a checkin referencing that location... what???

at least in activitypub the data model generally assumes that your AP server will be carrying out side effects for certain activities, so you can do CRUD and collection management using the AS2 vocab, and it's mostly coherent from a surface level. it's not terribly hard to imagine a CMS built on top of AP. but i can't make any sense of the micropub data model. the more i think about it the more confused i get. now, the api itself seems to do a lot of things generally well, but big-picture idk...

my main criticism here is that there seem to be a lot of behaviors that the server is possibly or expected to carry out, but it's never entirely clear what those behaviors are because the underlying microformats are so freeform and there's a lot of stuff that's auxiliary -- syndicating to other platforms, for example. i'm not personally interested in much if any of that stuff, so it's unclear what value implementing my own micropub server is supposed to get me.

so i'm wondering if the course of action might be to just develop an api that's even more basic (inb4 nanopub)

of course before i actually get to that point, i need to figure out a data model that makes sense first. it's possible that whatever i come up with can be mostly transformed or serialized into other existing data models but so far i'm not finding any that feel appropriate -- AS2 could be contorted to fit but i don't think it actually works well for this bc it overly relies on types...

...and one of the things that i've come to realize while working on my website recently is that types actually do not matter, for the most part. the data model of the web is resource-based, but in most cases you don't actually care what type those resources are. it probably matters more if you're trying to build an overlay network or linked data set, but if you're not doing that, then it's kinda pointless to spend so much time boxing yourself into that additional data model.


micropub is ok

i get html and microformats but i see no value in micropub for my use case, because it's bringing in a lot of assumptions that i don't feel like adopting. this post was made because i initially thought micropub could fit my use case when i was looking at it years ago. in rereading the micropub spec, i must conclude that it does not actually fit my use case.

this doesn't actually have anything to do with LD or AP, which also do not fit my use case. at least, not this one.


yeah micropub and microsub are both super-lacking in a lot of ways

i really want to collect a list of user stories and use cases that have been neglected by existing protocols and find a way to address them in whatever i end up doing.

i'm not opposed to urls as references but i think that you ideally want relative urls, and then you resolve them against a variable base (which gets you portability and location-independence as long as your data model is locked in and doesn't change)

part of why i'm engaging in this renewed push of updating my website is because i want to hammer out the data model that makes sense for me, and hopefully it makes sense for other people too.