pfefferle, (edited ) German
@pfefferle@notiz.blog avatar

It’s a Thing!

Das Fediverse tut sich schwer, das volle Potential der verschiedenen Activity-Objects auszunutzen, hauptsächlich aus Angst, sie falsch oder schlecht darzustellen und deshalb teilen die meisten großen Netzwerke leider nur Notes.

Dabei könnte es so einfach sein!

@deadsuperhero schreibt auf seinem Blog, dass er eigentlich gerne Articles veröffentlichen will, aber (hauptsächlich) durch Mastodon zu Note gezwungen wird, wenn er sicher gehen will, dass der Text vollständig dargestellt wird.

Here’s the problem, though: the biggest player in the space, Mastodon, does a poor job of supporting Article. Instead, every post Mastodon uses is instead a Note. From a semantic point of view, it might not seem like there’s a lot of difference between the two: both are effectively texts posts that can contain some formatting markup, both can hold an arbitrary amount of characters, and both can effectively be used to represent a full article.

A Content-Fallback Mechanism for the Fediverse

Ironischerweise zeigt Mastodon eine föderierte Note vollständig an, auch wenn der Text weit über die eigentlich erlaubten 500 Zeichen hinaus geht, bei einem Article wird statt dessen aber nur die kurze summary benutzt.

Seine Idee: Ein Content-Fallback Mechanismus!

Das heißt jede Aktivität, egal von welchem Typ, liefert zusätzlich zu dem spezifischen Objekt, eine standardisierte Note (content-fallback):

<span><code class="hljs language-json">{  <span class="hljs-attr">"@context"</span>:[    <span class="hljs-string">"https://www.w3.org/ns/activitystreams"</span>,    {      <span class="hljs-attr">"Hashtag"</span>:<span class="hljs-string">"as:Hashtag"</span>    }  ],  <span class="hljs-attr">"id"</span>:<span class="hljs-string">"https://wedistribute.org/2024/04/iftas-dsa-guide/"</span>,  <span class="hljs-attr">"type"</span>:<span class="hljs-string">"Article"</span>,  <span class="hljs-attr">"content-fallback"</span>: {    <span class="hljs-attr">"content"</span>:<span class="hljs-string">"IFTAS, the dedicated Trust & Safety organization ..."</span>,    <span class="hljs-attr">"mediaType"</span>:<span class="hljs-string">"text/plain"</span>,    <span class="hljs-attr">"summary"</span>:<span class="hljs-string">""</span>,    <span class="hljs-attr">"tag"</span>:[{      <span class="hljs-attr">"href"</span>:<span class="hljs-string">"https://wedistribute.org/tags/fediverse"</span>,      <span class="hljs-attr">"name"</span>:<span class="hljs-string">"#fediverse"</span>,      <span class="hljs-attr">"type"</span>:<span class="hljs-string">"Hashtag"</span>    }],    <span class="hljs-attr">"type"</span>:<span class="hljs-string">"Note"</span>,    <span class="hljs-attr">"updated"</span>:<span class="hljs-string">"2024-04-11T20:55:29Z"</span>  }}</code></span><small class="shcb-language" id="shcb-language-1"><span class="shcb-language__label">Code-Sprache:</span> <span class="shcb-language__name">JSON / JSON mit Kommentaren</span> <span class="shcb-language__paren">(</span><span class="shcb-language__slug">json</span><span class="shcb-language__paren">)</span></small>

Ich verstehe das Problem und finde die Idee generell nicht schlecht, aber eigentlich bietet ActivityPub alles Nötige schon von Haus aus! ActivityPub oder besser ActivityStreams ist so aufgebaut, dass alle Objekte von einem Art Base-Object abgeleitet werden. Das heißt Article, Note, Event oder Place, haben ein gleiches Minimal-Set an Attributen:

  • <a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-attachment">attachment</a>
  • <a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-attributedto">attributedTo</a>
  • <a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-audience">audience</a>
  • <a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-content">content</a>
  • <a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-context">context</a>
  • <a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-name">name</a>
  • <a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-icon">icon</a>
  • <a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-image">image</a>
  • <a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-inreplyto">inReplyTo</a>
  • <a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-published">published</a>
  • <a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-replies">replies</a>
  • <a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-summary">summary</a>
  • <a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-tag">tag</a>
  • <a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-updated">updated</a>
  • <a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-url">url</a>
  • <a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-to">to</a>
  • <a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-bto">bto</a>
  • <a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-cc">cc</a>
  • <a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-bcc">bcc</a>
  • <a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-mediatype">mediaType</a>
  • …und mehr

Und auch wenn beispielsweise Place oder Event einige spezifische Eigenschaften haben, die nicht jede Plattform „kennt“ und „versteht“, sollte es immer möglich sein, die Beschreibung (content oder summary) und den Titel (name) anzuzeigen.

Das Prinzip ist ähnlich wie, wenn nicht sogar inspiriert durch, schema.org/Thing. Auch hier basieren alle Objekte letztendlich auf einem Thing und trotz der wesentlich größeren Anzahl1 an Objekten und Attributen, können Suchmaschinen sich immer sicher sein, dass es zumindest einen name, eine description und eine url zum Anzeigen gibt.

Bevor wir über also über ein content-fallback nachdenken, sollten wir (meiner Meinung nach) erst einmal dafür sorgen, dass die vorhanden Möglichkeiten richtig genutzt werden.

  1. The vocabulary currently consists of 806 Types, 1474 Properties 14 Datatypes, 90 Enumerations and 480 Enumeration members. – https://schema.org/docs/schemas.html ↩︎
pfefferle,
@pfefferle@mastodon.social avatar

@pfefferle @deadsuperhero Nice Article!

heluecht,

@pfefferle @deadsuperhero Ich habe schon 2018 ein Issue im Repository von Mastodon erstellt, dass sich um die Problematik kümmert: github.com/mastodon/mastodon/i…

Im Issue github.com/mastodon/mastodon/i… (auch von 2018) gibt es diesen Kommentar:

I believe what we do now is convert an Article object into title + URL to the original, so you can view the post as it's supposed to be, rather than trying to display it internally. So, I think this is resolved.

Ich würde mich sehr freuen, wenn sich da etwas ändern würde. Aber ich sehe es nicht als Aufgabe, dass wir um Mastodon herumarbeiten. Es gibt augenscheinlich Mastodon-Forks, die Article unterstützen. Vielleicht kann jemand einen diesbezüglichen PR stellen.

linos,
@linos@graz.social avatar

@heluecht @pfefferle @deadsuperhero Ich stimme @Gargron da auch immer noch zu. Vielleicht wäre ein UI-Hinweis auf Mastodon-Seite, dass das Objekt konvertiert und wohl unvollständig ist eine denkbare Verbesserung.

Aus Sicht der Blogger wäre es vielleicht eine interessante Erweiterung per Post den Objekt-Typ definieren zu können. Manche Beiträge lassen sich gut zur Gänze auf Plattformen wie Mastodon lesen, andere vielleicht auch nicht so gut.

pfefferle,
@pfefferle@notiz.blog avatar

🙄

naturzukunft,
@naturzukunft@mastodon.social avatar

@pfefferle @deadsuperhero Das ist übel, wird sich aber nicht vermeiden lassen. Ich hatte mal erwähnt, dass ich gerne eine Instanz fragen möchte, welche Typen sie denn versteht/akzeptiert, dann könnte "mein" Server reagieren und entsprechend übersetzen. Theoretisch würde es reichen, wenn ich Erfahre Mastondon in Version x.y, der Rest könnte statisch sein. Eine weitere Idee wäre eine "zentrale" (natürlich nicht, aber das geht noch nicht in meinen Kopf) zu haben, die Mapping Infos bereitstellt ;-)

pfefferle,
@pfefferle@notiz.blog avatar

Das ist ein bisschen die Idee von @deadsuperhero, dass der Sender beeinflusst wie der Empfänger es anzeigen soll. In meinen Augen ist das aber gegen die Idee vom Fediverse. Als Sender sollte ich meine Inhalte „nur“ semantisch korrekt auszeichnen müssen und der Rest liegt beim Empfänger.

Deshalb ist es mir wichtig, dass Mastodon & Co. die Typen besser berücksichtigt als sie es jetzt gerade tun.

jan,

Does Mastodon actually use summary? (Or does it only do so for Notes? I thought Articles just got a link and nothing else.)

(My main gripe with Mastodon isn’t that it doesn’t support Article, it is that is a pretty bad feed reader. There are much better readers for long-form posts.)

I currently also “disguise” my Articles as Notes, and include only a title—marked up “incorrectly,” alas—excerpt, and permalink.

But I’d love it if Mastodon (rather than try and become a full-fledged feed reader) would be able to “natively” recognize Articles’ (titles and) summaries!

/cc @deadsuperhero

(https://bddz.be/Xbb)

morph,
@morph@morphnet.de avatar

@jan Matthias says Mastodon handles it differently when the chars are below or above 500 chars. I didn't know that. o_O
@pfefferle @deadsuperhero

linos,
@linos@graz.social avatar

@pfefferle Da bin ich ganz deiner Meinung.

Dass Mastodon und andere Anwendungen entscheiden, was vollständig und was nur (mittels summary, title, url...) konvertiert dargestellt wird, finde ich auch richtig. Schließlich wird ja auch die gesamte User Experience danach gestaltet.

Aber es bleibt die Frage: Wie geht man mit noch unbekannten Typen um? Wie macht man deutlich, dass z.B. eine PodcastEpisode auch eine Erweiterung des Basistyps ist? Oder muss man das gar nicht?

pfefferle,
@pfefferle@notiz.blog avatar

Genau…

Trotzdem nutzt Mastodon die Typen vollkommen inkonsequent. Schreibe ich einen Artikel unter 500 Zeichen, nimmt Mastodon trotzdem die unformatierte „Summary“. Schreibe ich dagegen eine 5000 Zeichen lange „Note“ wird sie trotz der lokalen Limitierung vollständig angezeigt.

Das heißt dass Mastodon die „Note“ wie einen“Article“ behandelt und den „Article“ wie eine „Note“…

linos,
@linos@graz.social avatar

@pfefferle Verstehe ich. Die andere Perspektive wäre dennoch: eine Note sollte i.d.R. kürzer als ein Paragraph sein (lange Notes werden eingeklappt). Typischerweise enthält diese wenig Markup. Das Ziel ist es, dass man das prima in Mastodon lesen kann. Etwaige Bilder gehören zum ganzen Text.

Ein Artikel könnte schnell auch mal mehr Bilder haben, die auch zu bestimmten Textstellen gehören, und mehr Markup. Mastodon sagt: in unserer UI liest man das besser nicht, sondern auf der Originalseite.

linos,
@linos@graz.social avatar

@pfefferle Ich glaube es gibt einfach mehr Unterschiede, die eine Rolle spielen, als die reine Länge.

linos, (edited )
@linos@graz.social avatar

@pfefferle Und dass Mastodon immer noch die unformatierte Summary benutzt, ist ja hoffentlich nicht mehr lange so :)

Dennoch ist es leider erschreckend, wie viel Einfluss Mastodon, ohne es überhaupt zu wollen, hier auf andere Entwicklungen hat.

NickBohle,
@NickBohle@mastodon.social avatar

@pfefferle @hamiller_friendica @wolf Blöde Frage, warum verlinkt ihr @Gargron nicht?

pfefferle, (edited )
@pfefferle@notiz.blog avatar

Ich glaube @Gargron weiß bescheid und die Community arbeitet ja auch dran es schrittweise zu verbessern…

heluecht,

@linos Das Spannende ist ja, dass - wie @pfefferle bereits erwähnt hat, eine Note komplett dargestellt wird. D.h. es würde vollkommen ausreichen, wenn ein Article einfach genauso wie eine Note behandelt würde.

BTW: Mich würde interessieren, wie Threads damit umgehen wird.

linos,
@linos@graz.social avatar

@heluecht @pfefferle Meiner Ansicht nach wäre es in vielen Fällen ausreichend, aber leider eben nicht in allen. Wichtig ist, wenn die empfangende Anwendung den "content" darstellt, dass dieser möglichst genauso informativ ist wie im original. Wenn also z.B. eine Tabelle verworfen wird ist das blöd und es sollte lieber verlinkt werden. Es hängt schon auch davon ab, wie komplex der Inhalt ist.

heluecht,

@pfefferle @linos Es gibt immer den Link zum Originalpost. D.h. wenn ein Inhalt mal etwas blöde formatiert aussieht, kann man immer noch auf den Originalbeitrag gehen. Aber es ist doch unumstritten, dass es für einen Großteil der Beiträge gut funktionieren würde.

linos,
@linos@graz.social avatar

@heluecht @pfefferle Ich sehe das ähnlich und würde auch eher dazu tendieren das einfach zu machen. Ein mögliches Gegenargument ist nur, dass ein "misslungener" Einzelfall vielleicht mehr Vertrauensverlust verursacht, bei Menschen die das Fediverse nutzen, als ein noch nicht vorhandenes Feature.

Vielleicht gab es ja eh schon Diskussionen auf SocialHub oder so, was ein Artikel alles mindestens können sollte (auf der Empfängerseite).

linos, (edited )
@linos@graz.social avatar

@heluecht Threads kann momentan doch nur senden, und noch nicht empfangen, oder?

wolf,

@pfefferle @deadsuperhero wie ist es bei anderen Serversoftware (Friendica, Pleroma, Hubzilla, den xxx-keys…)?

pfefferle,
@pfefferle@notiz.blog avatar

Auf Friendi.ca und Pixelfed sehen Article aus wie sie sollen! Die anderen hab ich schon lange nicht mehr getestet.

morph,
@morph@morphnet.de avatar

@pfefferle Ist denn dein Post jetzt als Article oder Note verpackt? Er kommt ja bestens formatiert an.

pfefferle,
@pfefferle@notiz.blog avatar

Rate mal ☺️

morph,
@morph@morphnet.de avatar

@pfefferle Öhm ... du hast in den Settings was geändert. o.O
Es gibt nur noch Notes und WordPress Format. Da war vorher mehr. Ich hab immer nur Notes belassen, damit kein Salat rauskommt.

pfefferle,
@pfefferle@notiz.blog avatar

Ich hab’s aktuell auch auf „Note“, genau aus dem Grund!

linos,
@linos@graz.social avatar
dominik,
@dominik@nona.social avatar

@pfefferle auch spannend: ich bekomme alle deine Antworten in den Stream gespült, aber nicht, worauf du antwortest.

pfefferle,
@pfefferle@notiz.blog avatar

🤔

morph,
@morph@morphnet.de avatar

@dominik @pfefferle Ja, der Thread ist vogelwild. 😄

pfefferle,
@pfefferle@notiz.blog avatar

Was denn, was denn? Das passt doch alles!?!

  • All
  • Subscribed
  • Moderated
  • Favorites
  • fediverse
  • PowerRangers
  • DreamBathrooms
  • thenastyranch
  • magazineikmin
  • Durango
  • Youngstown
  • osvaldo12
  • slotface
  • ngwrru68w68
  • rosin
  • khanakhh
  • kavyap
  • tsrsr
  • InstantRegret
  • normalnudes
  • mdbf
  • vwfavf
  • cubers
  • GTA5RPClips
  • everett
  • tacticalgear
  • hgfsjryuu7
  • ethstaker
  • tester
  • cisconetworking
  • modclub
  • Leos
  • anitta
  • All magazines