#ActivityStreams

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

"@context": [
"w3.org/ns/activitystreams",
{
"Quotation": "as:Quotation",
"citation": "as:citation",
"quotation": "as:quotation"
},
],

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to @reiver ⊼ (Charles) :batman:'s post

@reiver

There are examples of the extensions makes, which are on the (commonly taken) path of protocol decay and whack-a-mole programming by their non-conformance, unfortunately.

Yet that means there's opportunity for 's if there are more parties. 😃

Here's an example of Quotation, which has no LD context:

github.com/bookwyrm-social/boo

And here of Edition which is incorrectly placed in context:

github.com/bookwyrm-social/boo

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

4/

Apparently, Bookwyrm stores quotations with:

type="Quotation"

And if one Bookwyrm server talks to another Bookwyrm server, then — the ActivityPub / ActivityStreams representation of the quotation will have:

type="Quotation"

...

BUT — if a non-Bookwyrm server talks to a Bookwyrm server, then — the ActivityPub / ActivityStreams representation of the quotation will have:

type="Note"

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

3/

Apparently the Bookwyrm developer had the exact same idea!

(Which isn't too surprising.)

Here is how it works —

...

Object types

•  Note: On services like Mastodon, Notes are the primary type of status. They contain a message body, attachments, can mention users, and be replies to statuses of any type. Within BookWyrm, Notes can only be created as direct messages or as replies to other statuses.

• Review: A review is a status in response to a book (indicated by the inReplyToBook field), which has a title, body, and numerical rating between 0 (not rated) and 5.

•  Comment: A comment on a book mentions a book and has a message body.

• Quotation: A quote has a message body, an excerpt from a book, and mentions a book.
ALT text detailsObject types • Note: On services like Mastodon, Notes are the primary type of status. They contain a message body, attachments, can mention users, and be replies to statuses of any type. Within BookWyrm, Notes can only be created as direct messages or as replies to other statuses. • Review: A review is a status in response to a book (indicated by the inReplyToBook field), which has a title, body, and numerical rating between 0 (not rated) and 5. • Comment: A comment on a book mentions a book and has a message body. • Quotation: A quote has a message body, an excerpt from a book, and mentions a book.
@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

2/

How could you represent a quotation in ActivityPub‽

...

I suppose there are 2 major approaches.

Either use an existing Object Type. Maybe:

type="Note"

Or create a new Object Type:

type="Quotation"

...

Here is the interesting thing though —

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

Quotations & the Fediverse / ActivityPub

1/

One thing I used to do a lot on social-media is — post quotations.

Sometimes I was reading a book. And, I would quote things from the book and post it on social-media.

Or I was reading a scholarly paper, or reading a blog post, or watching a video, or listening to a podcast, etc.

...

I was thinking — how could you represent a quotation in ActivityPub‽

“[And yet another book that made an argument that was in favor of human universals is] Brent Berlin and Paul Kay’s [book] "Basic Color Terms: Their Universality and Evolution" (1969).”

“by the early 1970s two independent lines of psychological research, culminating in studies conducted among preliterate peoples of New Guinea, had shown that there are universal facial expressions of emotions.”

“Berlin and Kay show that although color classification does vary, it also shows remarkable uniformities: particularly in the sequence in which basic color terms are added to the lexicon.”

“Anthropologists and linguists had long known that the way colors are classified varies from language to language. Careful studies conducted by anthropologists after World War II, such as Harold Conklin’s (1955) study of Hanunóo color words, made the point very clearly.”

“The different sets of words for color in various languages …”
ALT text details“[And yet another book that made an argument that was in favor of human universals is] Brent Berlin and Paul Kay’s [book] "Basic Color Terms: Their Universality and Evolution" (1969).” “by the early 1970s two independent lines of psychological research, culminating in studies conducted among preliterate peoples of New Guinea, had shown that there are universal facial expressions of emotions.” “Berlin and Kay show that although color classification does vary, it also shows remarkable uniformities: particularly in the sequence in which basic color terms are added to the lexicon.” “Anthropologists and linguists had long known that the way colors are classified varies from language to language. Careful studies conducted by anthropologists after World War II, such as Harold Conklin’s (1955) study of Hanunóo color words, made the point very clearly.” “The different sets of words for color in various languages …”
“[And yet another book that made an argument that was in favor of human universals is] Brent Berlin and Paul Kay’s [book] "Basic Color Terms: Their Universality and Evolution" (1969).”

“by the early 1970s two independent lines of psychological research, culminating in studies conducted among preliterate peoples of New Guinea, had shown that there are universal facial expressions of emotions.”

“Berlin and Kay show that although color classification does vary, it also shows remarkable uniformities: particularly in the sequence in which basic color terms are added to the lexicon.”

“Anthropologists and linguists had long known that the way colors are classified varies from language to language. Careful studies conducted by anthropologists after World War II, such as Harold Conklin’s (1955) study of Hanunóo color words, made the point very clearly.”

“The different sets of words for color in various languages …”
ALT text details“[And yet another book that made an argument that was in favor of human universals is] Brent Berlin and Paul Kay’s [book] "Basic Color Terms: Their Universality and Evolution" (1969).” “by the early 1970s two independent lines of psychological research, culminating in studies conducted among preliterate peoples of New Guinea, had shown that there are universal facial expressions of emotions.” “Berlin and Kay show that although color classification does vary, it also shows remarkable uniformities: particularly in the sequence in which basic color terms are added to the lexicon.” “Anthropologists and linguists had long known that the way colors are classified varies from language to language. Careful studies conducted by anthropologists after World War II, such as Harold Conklin’s (1955) study of Hanunóo color words, made the point very clearly.” “The different sets of words for color in various languages …”
@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

4/

Apparently, Bookwyrm stores quotations with:

type="Quotation"

And if one Bookwyrm server talks to another Bookwyrm server, then — the ActivityPub / ActivityStreams representation of the quotation will have:

type="Quotation"

...

BUT — if a non-Bookwyrm server talks to a Bookwyrm server, then — the ActivityPub / ActivityStreams representation of the quotation will have:

type="Note"

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to @reiver ⊼ (Charles) :batman:'s post

@reiver

There are examples of the extensions makes, which are on the (commonly taken) path of protocol decay and whack-a-mole programming by their non-conformance, unfortunately.

Yet that means there's opportunity for 's if there are more parties. 😃

Here's an example of Quotation, which has no LD context:

github.com/bookwyrm-social/boo

And here of Edition which is incorrectly placed in context:

github.com/bookwyrm-social/boo

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

4/

Apparently, Bookwyrm stores quotations with:

type="Quotation"

And if one Bookwyrm server talks to another Bookwyrm server, then — the ActivityPub / ActivityStreams representation of the quotation will have:

type="Quotation"

...

BUT — if a non-Bookwyrm server talks to a Bookwyrm server, then — the ActivityPub / ActivityStreams representation of the quotation will have:

type="Note"

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

Quotations & the Fediverse / ActivityPub

1/

One thing I used to do a lot on social-media is — post quotations.

Sometimes I was reading a book. And, I would quote things from the book and post it on social-media.

Or I was reading a scholarly paper, or reading a blog post, or watching a video, or listening to a podcast, etc.

...

I was thinking — how could you represent a quotation in ActivityPub‽

“[And yet another book that made an argument that was in favor of human universals is] Brent Berlin and Paul Kay’s [book] "Basic Color Terms: Their Universality and Evolution" (1969).”

“by the early 1970s two independent lines of psychological research, culminating in studies conducted among preliterate peoples of New Guinea, had shown that there are universal facial expressions of emotions.”

“Berlin and Kay show that although color classification does vary, it also shows remarkable uniformities: particularly in the sequence in which basic color terms are added to the lexicon.”

“Anthropologists and linguists had long known that the way colors are classified varies from language to language. Careful studies conducted by anthropologists after World War II, such as Harold Conklin’s (1955) study of Hanunóo color words, made the point very clearly.”

“The different sets of words for color in various languages …”
ALT text details“[And yet another book that made an argument that was in favor of human universals is] Brent Berlin and Paul Kay’s [book] "Basic Color Terms: Their Universality and Evolution" (1969).” “by the early 1970s two independent lines of psychological research, culminating in studies conducted among preliterate peoples of New Guinea, had shown that there are universal facial expressions of emotions.” “Berlin and Kay show that although color classification does vary, it also shows remarkable uniformities: particularly in the sequence in which basic color terms are added to the lexicon.” “Anthropologists and linguists had long known that the way colors are classified varies from language to language. Careful studies conducted by anthropologists after World War II, such as Harold Conklin’s (1955) study of Hanunóo color words, made the point very clearly.” “The different sets of words for color in various languages …”
“[And yet another book that made an argument that was in favor of human universals is] Brent Berlin and Paul Kay’s [book] "Basic Color Terms: Their Universality and Evolution" (1969).”

“by the early 1970s two independent lines of psychological research, culminating in studies conducted among preliterate peoples of New Guinea, had shown that there are universal facial expressions of emotions.”

“Berlin and Kay show that although color classification does vary, it also shows remarkable uniformities: particularly in the sequence in which basic color terms are added to the lexicon.”

“Anthropologists and linguists had long known that the way colors are classified varies from language to language. Careful studies conducted by anthropologists after World War II, such as Harold Conklin’s (1955) study of Hanunóo color words, made the point very clearly.”

“The different sets of words for color in various languages …”
ALT text details“[And yet another book that made an argument that was in favor of human universals is] Brent Berlin and Paul Kay’s [book] "Basic Color Terms: Their Universality and Evolution" (1969).” “by the early 1970s two independent lines of psychological research, culminating in studies conducted among preliterate peoples of New Guinea, had shown that there are universal facial expressions of emotions.” “Berlin and Kay show that although color classification does vary, it also shows remarkable uniformities: particularly in the sequence in which basic color terms are added to the lexicon.” “Anthropologists and linguists had long known that the way colors are classified varies from language to language. Careful studies conducted by anthropologists after World War II, such as Harold Conklin’s (1955) study of Hanunóo color words, made the point very clearly.” “The different sets of words for color in various languages …”
@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

Quotations & the Fediverse / ActivityPub

1/

One thing I used to do a lot on social-media is — post quotations.

Sometimes I was reading a book. And, I would quote things from the book and post it on social-media.

Or I was reading a scholarly paper, or reading a blog post, or watching a video, or listening to a podcast, etc.

...

I was thinking — how could you represent a quotation in ActivityPub‽

“[And yet another book that made an argument that was in favor of human universals is] Brent Berlin and Paul Kay’s [book] "Basic Color Terms: Their Universality and Evolution" (1969).”

“by the early 1970s two independent lines of psychological research, culminating in studies conducted among preliterate peoples of New Guinea, had shown that there are universal facial expressions of emotions.”

“Berlin and Kay show that although color classification does vary, it also shows remarkable uniformities: particularly in the sequence in which basic color terms are added to the lexicon.”

“Anthropologists and linguists had long known that the way colors are classified varies from language to language. Careful studies conducted by anthropologists after World War II, such as Harold Conklin’s (1955) study of Hanunóo color words, made the point very clearly.”

“The different sets of words for color in various languages …”
ALT text details“[And yet another book that made an argument that was in favor of human universals is] Brent Berlin and Paul Kay’s [book] "Basic Color Terms: Their Universality and Evolution" (1969).” “by the early 1970s two independent lines of psychological research, culminating in studies conducted among preliterate peoples of New Guinea, had shown that there are universal facial expressions of emotions.” “Berlin and Kay show that although color classification does vary, it also shows remarkable uniformities: particularly in the sequence in which basic color terms are added to the lexicon.” “Anthropologists and linguists had long known that the way colors are classified varies from language to language. Careful studies conducted by anthropologists after World War II, such as Harold Conklin’s (1955) study of Hanunóo color words, made the point very clearly.” “The different sets of words for color in various languages …”
“[And yet another book that made an argument that was in favor of human universals is] Brent Berlin and Paul Kay’s [book] "Basic Color Terms: Their Universality and Evolution" (1969).”

“by the early 1970s two independent lines of psychological research, culminating in studies conducted among preliterate peoples of New Guinea, had shown that there are universal facial expressions of emotions.”

“Berlin and Kay show that although color classification does vary, it also shows remarkable uniformities: particularly in the sequence in which basic color terms are added to the lexicon.”

“Anthropologists and linguists had long known that the way colors are classified varies from language to language. Careful studies conducted by anthropologists after World War II, such as Harold Conklin’s (1955) study of Hanunóo color words, made the point very clearly.”

“The different sets of words for color in various languages …”
ALT text details“[And yet another book that made an argument that was in favor of human universals is] Brent Berlin and Paul Kay’s [book] "Basic Color Terms: Their Universality and Evolution" (1969).” “by the early 1970s two independent lines of psychological research, culminating in studies conducted among preliterate peoples of New Guinea, had shown that there are universal facial expressions of emotions.” “Berlin and Kay show that although color classification does vary, it also shows remarkable uniformities: particularly in the sequence in which basic color terms are added to the lexicon.” “Anthropologists and linguists had long known that the way colors are classified varies from language to language. Careful studies conducted by anthropologists after World War II, such as Harold Conklin’s (1955) study of Hanunóo color words, made the point very clearly.” “The different sets of words for color in various languages …”
@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

4/

Apparently, Bookwyrm stores quotations with:

type="Quotation"

And if one Bookwyrm server talks to another Bookwyrm server, then — the ActivityPub / ActivityStreams representation of the quotation will have:

type="Quotation"

...

BUT — if a non-Bookwyrm server talks to a Bookwyrm server, then — the ActivityPub / ActivityStreams representation of the quotation will have:

type="Note"

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

4/

Apparently, Bookwyrm stores quotations with:

type="Quotation"

And if one Bookwyrm server talks to another Bookwyrm server, then — the ActivityPub / ActivityStreams representation of the quotation will have:

type="Quotation"

...

BUT — if a non-Bookwyrm server talks to a Bookwyrm server, then — the ActivityPub / ActivityStreams representation of the quotation will have:

type="Note"

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

3/

Apparently the Bookwyrm developer had the exact same idea!

(Which isn't too surprising.)

Here is how it works —

...

Object types

•  Note: On services like Mastodon, Notes are the primary type of status. They contain a message body, attachments, can mention users, and be replies to statuses of any type. Within BookWyrm, Notes can only be created as direct messages or as replies to other statuses.

• Review: A review is a status in response to a book (indicated by the inReplyToBook field), which has a title, body, and numerical rating between 0 (not rated) and 5.

•  Comment: A comment on a book mentions a book and has a message body.

• Quotation: A quote has a message body, an excerpt from a book, and mentions a book.
ALT text detailsObject types • Note: On services like Mastodon, Notes are the primary type of status. They contain a message body, attachments, can mention users, and be replies to statuses of any type. Within BookWyrm, Notes can only be created as direct messages or as replies to other statuses. • Review: A review is a status in response to a book (indicated by the inReplyToBook field), which has a title, body, and numerical rating between 0 (not rated) and 5. • Comment: A comment on a book mentions a book and has a message body. • Quotation: A quote has a message body, an excerpt from a book, and mentions a book.
@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

2/

How could you represent a quotation in ActivityPub‽

...

I suppose there are 2 major approaches.

Either use an existing Object Type. Maybe:

type="Note"

Or create a new Object Type:

type="Quotation"

...

Here is the interesting thing though —

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

Quotations & the Fediverse / ActivityPub

1/

One thing I used to do a lot on social-media is — post quotations.

Sometimes I was reading a book. And, I would quote things from the book and post it on social-media.

Or I was reading a scholarly paper, or reading a blog post, or watching a video, or listening to a podcast, etc.

...

I was thinking — how could you represent a quotation in ActivityPub‽

“[And yet another book that made an argument that was in favor of human universals is] Brent Berlin and Paul Kay’s [book] "Basic Color Terms: Their Universality and Evolution" (1969).”

“by the early 1970s two independent lines of psychological research, culminating in studies conducted among preliterate peoples of New Guinea, had shown that there are universal facial expressions of emotions.”

“Berlin and Kay show that although color classification does vary, it also shows remarkable uniformities: particularly in the sequence in which basic color terms are added to the lexicon.”

“Anthropologists and linguists had long known that the way colors are classified varies from language to language. Careful studies conducted by anthropologists after World War II, such as Harold Conklin’s (1955) study of Hanunóo color words, made the point very clearly.”

“The different sets of words for color in various languages …”
ALT text details“[And yet another book that made an argument that was in favor of human universals is] Brent Berlin and Paul Kay’s [book] "Basic Color Terms: Their Universality and Evolution" (1969).” “by the early 1970s two independent lines of psychological research, culminating in studies conducted among preliterate peoples of New Guinea, had shown that there are universal facial expressions of emotions.” “Berlin and Kay show that although color classification does vary, it also shows remarkable uniformities: particularly in the sequence in which basic color terms are added to the lexicon.” “Anthropologists and linguists had long known that the way colors are classified varies from language to language. Careful studies conducted by anthropologists after World War II, such as Harold Conklin’s (1955) study of Hanunóo color words, made the point very clearly.” “The different sets of words for color in various languages …”
“[And yet another book that made an argument that was in favor of human universals is] Brent Berlin and Paul Kay’s [book] "Basic Color Terms: Their Universality and Evolution" (1969).”

“by the early 1970s two independent lines of psychological research, culminating in studies conducted among preliterate peoples of New Guinea, had shown that there are universal facial expressions of emotions.”

“Berlin and Kay show that although color classification does vary, it also shows remarkable uniformities: particularly in the sequence in which basic color terms are added to the lexicon.”

“Anthropologists and linguists had long known that the way colors are classified varies from language to language. Careful studies conducted by anthropologists after World War II, such as Harold Conklin’s (1955) study of Hanunóo color words, made the point very clearly.”

“The different sets of words for color in various languages …”
ALT text details“[And yet another book that made an argument that was in favor of human universals is] Brent Berlin and Paul Kay’s [book] "Basic Color Terms: Their Universality and Evolution" (1969).” “by the early 1970s two independent lines of psychological research, culminating in studies conducted among preliterate peoples of New Guinea, had shown that there are universal facial expressions of emotions.” “Berlin and Kay show that although color classification does vary, it also shows remarkable uniformities: particularly in the sequence in which basic color terms are added to the lexicon.” “Anthropologists and linguists had long known that the way colors are classified varies from language to language. Careful studies conducted by anthropologists after World War II, such as Harold Conklin’s (1955) study of Hanunóo color words, made the point very clearly.” “The different sets of words for color in various languages …”
@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

Quotations & the Fediverse / ActivityPub

1/

One thing I used to do a lot on social-media is — post quotations.

Sometimes I was reading a book. And, I would quote things from the book and post it on social-media.

Or I was reading a scholarly paper, or reading a blog post, or watching a video, or listening to a podcast, etc.

...

I was thinking — how could you represent a quotation in ActivityPub‽

“[And yet another book that made an argument that was in favor of human universals is] Brent Berlin and Paul Kay’s [book] "Basic Color Terms: Their Universality and Evolution" (1969).”

“by the early 1970s two independent lines of psychological research, culminating in studies conducted among preliterate peoples of New Guinea, had shown that there are universal facial expressions of emotions.”

“Berlin and Kay show that although color classification does vary, it also shows remarkable uniformities: particularly in the sequence in which basic color terms are added to the lexicon.”

“Anthropologists and linguists had long known that the way colors are classified varies from language to language. Careful studies conducted by anthropologists after World War II, such as Harold Conklin’s (1955) study of Hanunóo color words, made the point very clearly.”

“The different sets of words for color in various languages …”
ALT text details“[And yet another book that made an argument that was in favor of human universals is] Brent Berlin and Paul Kay’s [book] "Basic Color Terms: Their Universality and Evolution" (1969).” “by the early 1970s two independent lines of psychological research, culminating in studies conducted among preliterate peoples of New Guinea, had shown that there are universal facial expressions of emotions.” “Berlin and Kay show that although color classification does vary, it also shows remarkable uniformities: particularly in the sequence in which basic color terms are added to the lexicon.” “Anthropologists and linguists had long known that the way colors are classified varies from language to language. Careful studies conducted by anthropologists after World War II, such as Harold Conklin’s (1955) study of Hanunóo color words, made the point very clearly.” “The different sets of words for color in various languages …”
“[And yet another book that made an argument that was in favor of human universals is] Brent Berlin and Paul Kay’s [book] "Basic Color Terms: Their Universality and Evolution" (1969).”

“by the early 1970s two independent lines of psychological research, culminating in studies conducted among preliterate peoples of New Guinea, had shown that there are universal facial expressions of emotions.”

“Berlin and Kay show that although color classification does vary, it also shows remarkable uniformities: particularly in the sequence in which basic color terms are added to the lexicon.”

“Anthropologists and linguists had long known that the way colors are classified varies from language to language. Careful studies conducted by anthropologists after World War II, such as Harold Conklin’s (1955) study of Hanunóo color words, made the point very clearly.”

“The different sets of words for color in various languages …”
ALT text details“[And yet another book that made an argument that was in favor of human universals is] Brent Berlin and Paul Kay’s [book] "Basic Color Terms: Their Universality and Evolution" (1969).” “by the early 1970s two independent lines of psychological research, culminating in studies conducted among preliterate peoples of New Guinea, had shown that there are universal facial expressions of emotions.” “Berlin and Kay show that although color classification does vary, it also shows remarkable uniformities: particularly in the sequence in which basic color terms are added to the lexicon.” “Anthropologists and linguists had long known that the way colors are classified varies from language to language. Careful studies conducted by anthropologists after World War II, such as Harold Conklin’s (1955) study of Hanunóo color words, made the point very clearly.” “The different sets of words for color in various languages …”
@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

1/

I have spending time thinking of ways you could automatically create ActivityPub / ActivityStreams data from HTML and Markdown

Most people will probably write in plain UTF-8 text, or Markdown, or HTML

How to do you take that and get it onto the Fediverse and Social Web‽

This isn't just a question of how to technically do it — but also a question of user-experience (UX)

I.e., what are "good" ways of doing it‽

...

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

9/

A regular users might write Markdown like this:

"""
# Hello!

How do you do?
"""

Or write HTML like this:

"""
<article>
<h1>Hello!</h1>
<p>How do you do?</p>
</article>
"""

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

8/

REMEMBER: this is for power-users, not regular users

How would you get ActivityPub / ActivityStreams into HTML using RDFa‽

Like this:

<div vocab="w3.org/ns/activitystreams#" typeof="Note">
<p property="name">Hello!</p>
<p>How do you do?</p>
</div>

AGAIN, REMEMBER: this is for power-users, not regular users.

Regular users can just write Markdown or HTML and Retejo will figure this out automatically for you

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

8/

REMEMBER: this is for power-users, not regular users

How would you get ActivityPub / ActivityStreams into HTML using RDFa‽

Like this:

<div vocab="w3.org/ns/activitystreams#" typeof="Note">
<p property="name">Hello!</p>
<p>How do you do?</p>
</div>

AGAIN, REMEMBER: this is for power-users, not regular users.

Regular users can just write Markdown or HTML and Retejo will figure this out automatically for you

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

7/

If you are wondering what RDFa is —

You might be more familiar with OpenGraph.

ogp.me/

OpenGraph is usually the thing that causes "preview cards" to be showed for links shared on social-media.

OpenGraph is written in RDFa. Which, in practice, is some special HTML elements added to the page.

For example:

<meta property="og:image" content="example.com/img/preview.png" />

So what about ActivityPub‽ —

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

1/

I have spending time thinking of ways you could automatically create ActivityPub / ActivityStreams data from HTML and Markdown

Most people will probably write in plain UTF-8 text, or Markdown, or HTML

How to do you take that and get it onto the Fediverse and Social Web‽

This isn't just a question of how to technically do it — but also a question of user-experience (UX)

I.e., what are "good" ways of doing it‽

...

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

6/

Obviously, beginners are NOT going to do this, but — some power-users may want this level of control.

There are different way this could be done, but — one way might be that power-users could use RDFa to explicitly specify what data from the HTML gets into the ActivityPub / ActivityStreams data.

Again, beginners and typical users would NOT do this.

But a power-user might want to.

Here is an example —

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

6/

Obviously, beginners are NOT going to do this, but — some power-users may want this level of control.

There are different way this could be done, but — one way might be that power-users could use RDFa to explicitly specify what data from the HTML gets into the ActivityPub / ActivityStreams data.

Again, beginners and typical users would NOT do this.

But a power-user might want to.

Here is an example —

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

5/

So, what would be a good user-experience (UX) for power-users be — in a system that automatically creates ActivityPub / ActivityStreams data from HTML and Markdown‽

One thought I had is that power-users could explicitly mark what data from their HTML gets into the ActivityPub / ActivityStreams data (if they want to).

I'll explain —

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

5/

So, what would be a good user-experience (UX) for power-users be — in a system that automatically creates ActivityPub / ActivityStreams data from HTML and Markdown‽

One thought I had is that power-users could explicitly mark what data from their HTML gets into the ActivityPub / ActivityStreams data (if they want to).

I'll explain —

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

1/

I have spending time thinking of ways you could automatically create ActivityPub / ActivityStreams data from HTML and Markdown

Most people will probably write in plain UTF-8 text, or Markdown, or HTML

How to do you take that and get it onto the Fediverse and Social Web‽

This isn't just a question of how to technically do it — but also a question of user-experience (UX)

I.e., what are "good" ways of doing it‽

...

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

4/

I think one mistake some software does is — they create a good experience for beginners, but have a poor experience for power-users.

And keep in mind that — some beginners become power-users later on.

I think it is important to design for power-users, too, in addition to beginners.

...

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

3/

If a typical user is writing in Markdown, and their Markdown file has a level-1 heading right at the beginning, then —

That could go into the ActivityPub "name" field.

And, similar could be done for HTML, too.

...

But what about power users —

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

3/

If a typical user is writing in Markdown, and their Markdown file has a level-1 heading right at the beginning, then —

That could go into the ActivityPub "name" field.

And, similar could be done for HTML, too.

...

But what about power users —

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

2/

What are "good" ways of automatically creating ActivityPub / ActivityStreams data from HTML and Markdown‽

I think the answer depends on who, for example, is writing HTML, and how they are writing it.

For example, is this a typical user? Is this a power-user? Do they know HTML? And if they do know HTML, how well do they know it? Etc?

I will show you what I mean —

...

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

2/

What are "good" ways of automatically creating ActivityPub / ActivityStreams data from HTML and Markdown‽

I think the answer depends on who, for example, is writing HTML, and how they are writing it.

For example, is this a typical user? Is this a power-user? Do they know HTML? And if they do know HTML, how well do they know it? Etc?

I will show you what I mean —

...

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

1/

I have spending time thinking of ways you could automatically create ActivityPub / ActivityStreams data from HTML and Markdown

Most people will probably write in plain UTF-8 text, or Markdown, or HTML

How to do you take that and get it onto the Fediverse and Social Web‽

This isn't just a question of how to technically do it — but also a question of user-experience (UX)

I.e., what are "good" ways of doing it‽

...

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

1/

I have spending time thinking of ways you could automatically create ActivityPub / ActivityStreams data from HTML and Markdown

Most people will probably write in plain UTF-8 text, or Markdown, or HTML

How to do you take that and get it onto the Fediverse and Social Web‽

This isn't just a question of how to technically do it — but also a question of user-experience (UX)

I.e., what are "good" ways of doing it‽

...

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

1/

I have spending time thinking of ways you could automatically create ActivityPub / ActivityStreams data from HTML and Markdown

Most people will probably write in plain UTF-8 text, or Markdown, or HTML

How to do you take that and get it onto the Fediverse and Social Web‽

This isn't just a question of how to technically do it — but also a question of user-experience (UX)

I.e., what are "good" ways of doing it‽

...

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

Retejo

I have been working on a new type of web-server for serving static web-sites.

I started working on it recently — on August 23rd. But, have had the idea for it for a number of years.

...

What is different about this web-server for static web-sites‽

Well, of course, it supports HTML.

But, it also supports Markdown, and ActivityPub natively!

codeberg.org/reiver/retejo

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

1/

If you are curious about where the "Retejo" name comes from —

The way the name "retejo" was chosen was inspired by how the name "forgejo" chosen.

...

RE: mastodon.social/@reiver/115203

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

2/

"forgejo" comes from the Esperanto word "forĝejo".

"retejo" is (also) an Esperanto word.

The meaning of the Esperanto word "retejo" can be understood as follows:

ret-: The root for "net" or "web".
-ej-: A suffix meaning "place" or "site".
-o: The noun ending.

codeberg.org/reiver/retejo

RE: mastodon.social/@reiver/115203

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

1/

If you are curious about where the "Retejo" name comes from —

The way the name "retejo" was chosen was inspired by how the name "forgejo" chosen.

...

RE: mastodon.social/@reiver/115203

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

1/

Probably the biggest thing that motivated me to create Retejo now (as I've had the idea for this for a number of year) is —

...

RE: mastodon.social/@reiver/115203

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

4/

So, I thought — what if I just ran my own web-server to server files from Codeberg.

And thus, Retejo was born.

codeberg.org/reiver/retejo

...

But, while I am at it, I can also add automatic ActivityPub / ActivityStreams support to it.

RE: mastodon.social/@reiver/115203

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

4/

So, I thought — what if I just ran my own web-server to server files from Codeberg.

And thus, Retejo was born.

codeberg.org/reiver/retejo

...

But, while I am at it, I can also add automatic ActivityPub / ActivityStreams support to it.

RE: mastodon.social/@reiver/115203

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

3/

№1:

The software powering Codeberg Pages seems like it isn't being maintained anymore beyond minor fixes

№2:

Although Codeberg is pretty reliable, Codeberg Pages doesn't that reliable.

...

So, I thought —

...

RE: mastodon.social/@reiver/115203

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

2/

Although I've had a Codeberg account for a number of years — I recently started the process of migrating over to Codeberg (from GitHub).

Codeberg has something similar to GitHub Pages — called Codeberg Pages

codeberg.page/

However —

...

RE: mastodon.social/@reiver/115203

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

1/

Probably the biggest thing that motivated me to create Retejo now (as I've had the idea for this for a number of year) is —

...

RE: mastodon.social/@reiver/115203

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

2/

Retejo pulls its data from a Forgejo / Gitea site — such as Codeberg.

That means I can write things using whatever text-editor I want by editing a file.

And then push that file to Codeberg — or any other Forgejo / Gitea site — using git

And then, it automatically shows up on my Retejo site

codeberg.org/reiver/retejo

RE: mastodon.social/@reiver/115203

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

1/

Another motivation for creating Retejo is this:

mastodon.social/@reiver/114076

I want to be able to write long-form articles using whatever text-editor I choose to use, editing a file, and using git.

Not everyone will want to create long-form content this way — but I want to create long-form content this way.

...

RE: mastodon.social/@reiver/115203

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

3/

I kept that type of user in mind when designing Retejo —

That some people want to write in Markdown rather than HTML.

So, Retejo has native support for Markdown.

And, in particular, CommonMark with the GitHub Flavored Markdown (GTM) extensions that most people expect nowadays.

codeberg.org/reiver/retejo

.

RE: mastodon.social/@reiver/115203

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

2/

One thing I noticed about the Gemini-Protocol community is that —

Some of the people who are attracted to Gemini are attracted to it, because — they want a Web that was based on Markdown instead of HTML.

And, the Gemini-Protocol + gemtext seemed close to being a Markdown-based Web.

mastodon.social/@reiver/111180

...

RE: mastodon.social/@reiver/115203

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

1/

One of my other passions, in addition to the Fediverse and Social Web, is — small-net.

One of the popular protocols in small-net is — the Gemini-Protocol.

geminiprotocol.net/

...

RE: mastodon.social/@reiver/115203

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

1/

One of my other passions, in addition to the Fediverse and Social Web, is — small-net.

One of the popular protocols in small-net is — the Gemini-Protocol.

geminiprotocol.net/

...

RE: mastodon.social/@reiver/115203

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

Retejo

I have been working on a new type of web-server for serving static web-sites.

I started working on it recently — on August 23rd. But, have had the idea for it for a number of years.

...

What is different about this web-server for static web-sites‽

Well, of course, it supports HTML.

But, it also supports Markdown, and ActivityPub natively!

codeberg.org/reiver/retejo

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

Retejo

I have been working on a new type of web-server for serving static web-sites.

I started working on it recently — on August 23rd. But, have had the idea for it for a number of years.

...

What is different about this web-server for static web-sites‽

Well, of course, it supports HTML.

But, it also supports Markdown, and ActivityPub natively!

codeberg.org/reiver/retejo

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

Retejo

I have been working on a new type of web-server for serving static web-sites.

I started working on it recently — on August 23rd. But, have had the idea for it for a number of years.

...

What is different about this web-server for static web-sites‽

Well, of course, it supports HTML.

But, it also supports Markdown, and ActivityPub natively!

codeberg.org/reiver/retejo

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Today I discovered an interesting inconsistency in Activity Streams specs while investigating a Fedify issue.

The question: How should we interpret URLs like "icon": "https://example.com/avatar.png"?

JSON-LD context (https://www.w3.org/ns/activitystreams): @type: "@id" → “This is an IRI reference, dereference it to fetch an ActivityStreams object.”

Activity Streams Primer: “assume that a bare string is the href of a Link object, not an id” (no dereferencing)

Result: JSON-LD processor-based implementations try to parse PNG files as JSON and fail.

Turns out w3c/activitystreams#595 already discusses the same issue for href properties. I added a note that icon, image, etc. have the same problem.

Once again reminded of how tricky spec work can be…

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Today I discovered an interesting inconsistency in Activity Streams specs while investigating a Fedify issue.

The question: How should we interpret URLs like "icon": "https://example.com/avatar.png"?

JSON-LD context (https://www.w3.org/ns/activitystreams): @type: "@id" → “This is an IRI reference, dereference it to fetch an ActivityStreams object.”

Activity Streams Primer: “assume that a bare string is the href of a Link object, not an id” (no dereferencing)

Result: JSON-LD processor-based implementations try to parse PNG files as JSON and fail.

Turns out w3c/activitystreams#595 already discusses the same issue for href properties. I added a note that icon, image, etc. have the same problem.

Once again reminded of how tricky spec work can be…

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Today I discovered an interesting inconsistency in Activity Streams specs while investigating a Fedify issue.

The question: How should we interpret URLs like "icon": "https://example.com/avatar.png"?

JSON-LD context (https://www.w3.org/ns/activitystreams): @type: "@id" → “This is an IRI reference, dereference it to fetch an ActivityStreams object.”

Activity Streams Primer: “assume that a bare string is the href of a Link object, not an id” (no dereferencing)

Result: JSON-LD processor-based implementations try to parse PNG files as JSON and fail.

Turns out w3c/activitystreams#595 already discusses the same issue for href properties. I added a note that icon, image, etc. have the same problem.

Once again reminded of how tricky spec work can be…

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Today I discovered an interesting inconsistency in Activity Streams specs while investigating a Fedify issue.

The question: How should we interpret URLs like "icon": "https://example.com/avatar.png"?

JSON-LD context (https://www.w3.org/ns/activitystreams): @type: "@id" → “This is an IRI reference, dereference it to fetch an ActivityStreams object.”

Activity Streams Primer: “assume that a bare string is the href of a Link object, not an id” (no dereferencing)

Result: JSON-LD processor-based implementations try to parse PNG files as JSON and fail.

Turns out w3c/activitystreams#595 already discusses the same issue for href properties. I added a note that icon, image, etc. have the same problem.

Once again reminded of how tricky spec work can be…

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Today I discovered an interesting inconsistency in Activity Streams specs while investigating a Fedify issue.

The question: How should we interpret URLs like "icon": "https://example.com/avatar.png"?

JSON-LD context (https://www.w3.org/ns/activitystreams): @type: "@id" → “This is an IRI reference, dereference it to fetch an ActivityStreams object.”

Activity Streams Primer: “assume that a bare string is the href of a Link object, not an id” (no dereferencing)

Result: JSON-LD processor-based implementations try to parse PNG files as JSON and fail.

Turns out w3c/activitystreams#595 already discusses the same issue for href properties. I added a note that icon, image, etc. have the same problem.

Once again reminded of how tricky spec work can be…

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

How happy is the marriage between and ? 🤔

github.com/w3c/activitypub/iss

OptionVoters
💔 → ❤️3 (25%)
❤️ → 💕4 (33%)
💕 → 💞3 (25%)
❤️ | 💕 | 💞 → 💔2 (17%)
just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

How happy is the marriage between and ? 🤔

github.com/w3c/activitypub/iss

OptionVoters
💔 → ❤️3 (25%)
❤️ → 💕4 (33%)
💕 → 💞3 (25%)
❤️ | 💕 | 💞 → 💔2 (17%)
just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

How happy is the marriage between and ? 🤔

github.com/w3c/activitypub/iss

OptionVoters
💔 → ❤️3 (25%)
❤️ → 💕4 (33%)
💕 → 💞3 (25%)
❤️ | 💕 | 💞 → 💔2 (17%)
just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to silverpill's post

@silverpill @mariusor

I don't think you can say that. AS has more uses than with AP. I know of at least:

- Linked Data Event Streams
- DCAT-AP and DCAT-AP Feeds
- Linked Data Event Notifications

And as for relation to I'd say - and it is the argument I make in the GH issue - that we have a vocabulary without good grammar and language rules. The AS social primitives are loose words, and you can construct any gibberish with them and try to make it popular slang.

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

How happy is the marriage between and ? 🤔

github.com/w3c/activitypub/iss

OptionVoters
💔 → ❤️3 (25%)
❤️ → 💕4 (33%)
💕 → 💞3 (25%)
❤️ | 💕 | 💞 → 💔2 (17%)
just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

:blobhyperthink:

is peanuts, right? All peanuts, all varieties, shapes and sizes. Isn't it peculiar then that six years after AP became a recommendation we are still all mostly eating from 1 small ingredient package of the primitive variety. One small bag to cook with, and supply us with rich peanut butter. Isn't that becoming somewhat bland and boring?

Which recipe do you cook tomorrow?

OptionVoters
Activystreams, the coca cola of the fediverse8 (80%)
Hell, no! I am going wild and crazy this time!2 (20%)
just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Oblomov's post

@oblomov

@pukkamustard did some interesting experiments in this area, when migrating CPub from to + and supporting vocabulary, in the openEngiadina project.

See: inqlab.net/2022-04-14-geopub-d

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to :mastodon: Mike Amundsen's post

@mamund thank you. I will also give the linked article on agentic systems a read.

Note that here on the has this need to discover and introspect the capabilities of actor endpoints on the network.

This entirely missing. With endlessly versatile, a player on the fediverse can freely invent their own flavours on-the-fly, introducing protocol decay and makes harder.

Whack-a-mole driven development to moving targets ensues.

infinite love ⴳ's avatar
infinite love ⴳ

@trwnh@mastodon.social · Reply to infinite love ⴳ's post

let's demo this with a simple case. say you want to `tag` something that is a `Movie` described by schema.org. the `Movie` declares that it has an `actor` who performed in it.

this is redefining the term `actor` as defined at the top-level by -- where `actor` means who performed an `Activity`, not who performed in a `Movie`.

if the activitystreams context was protected, then this would be a fatal error for any validator. you cannot be sure which `actor` was meant!

3/?

infinite love ⴳ's avatar
infinite love ⴳ

@trwnh@mastodon.social · Reply to infinite love ⴳ's post

say you have a generic property whose range is relatively unbounded -- a grab-bag where anything goes. something like how `attachment` or `tag` are used in . using multiple contexts at the top-level introduces a potential conflict in terms. you could reconcile any conflicts with a custom context, but that prevents reuse / understanding a more well-known context.

unfortunately, due to context propagation, terms defined earlier on can "leak" into the naively merged subgraph.

2/?

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

5/

So, not just Decentralized Social (DeSo), but instead —

Decentralized Social (DeSo), Federated Social (FeSo), Localized Social (LoSo)

The goal is 'social' that is simultaneously — 'Decentralized', 'Federated', and 'Localized', all at the same time.

RE: mastodon.social/@reiver/114551

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

4/

Federation is the word we use to describe that act of bringing together and connecting these separate Decentralized, Localized communities.

This is where protocols such as ActivityPub, ActivityStreams, etc come into play.

Federation is a voluntary choice.
But, so too is Defederation, if desired.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

5/

So, not just Decentralized Social (DeSo), but instead —

Decentralized Social (DeSo), Federated Social (FeSo), Localized Social (LoSo)

The goal is 'social' that is simultaneously — 'Decentralized', 'Federated', and 'Localized', all at the same time.

RE: mastodon.social/@reiver/114551

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

5/

So, not just Decentralized Social (DeSo), but instead —

Decentralized Social (DeSo), Federated Social (FeSo), Localized Social (LoSo)

The goal is 'social' that is simultaneously — 'Decentralized', 'Federated', and 'Localized', all at the same time.

RE: mastodon.social/@reiver/114551

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

4/

Federation is the word we use to describe that act of bringing together and connecting these separate Decentralized, Localized communities.

This is where protocols such as ActivityPub, ActivityStreams, etc come into play.

Federation is a voluntary choice.
But, so too is Defederation, if desired.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

A reasonable ActivityPub / ActivityStreams API to schedule something to be posted in the future might be — to HTTP POST something to an account's outbox with the `published` field set to a date-time in the future.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

A reasonable ActivityPub / ActivityStreams API to schedule something to be posted in the future might be — to HTTP POST something to an account's outbox with the `published` field set to a date-time in the future.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

A reasonable ActivityPub / ActivityStreams API to schedule something to be posted in the future might be — to HTTP POST something to an account's outbox with the `published` field set to a date-time in the future.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

A reasonable ActivityPub / ActivityStreams API to schedule something to be posted in the future might be — to HTTP POST something to an account's outbox with the `published` field set to a date-time in the future.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

Currently, the way I am determining if content is valid ActivityPub / ActivityStreams content is —

№1:

Determining if it is valid JSON.

№2:

Checking if it has a "type" field.

And that is it.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

Dealing with JSON-LD would be easier in many ways if everything was defined inline.

Rather than having to get the content from a URL in the context, parse it, etc.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

"Activities addressed to this special [public address] URI shall be accessible to all users, without authentication."

w3.org/TR/activitypub/#public-

The "public address" is:
w3.org/ns/activitystreams#Publ

(Yes, I am posting this for a reason.)

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

2/

I think there is a need for a "dumb" document format.

HTML is no longer that.

Markdown probably isn't it.

No one really uses enriched-text (IETF RFC 1896).

(I prefer wiki like formats, for various reasons, but —)

I don't think there is an obvious choice for a "dumb" document format, right now.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

1/

I think HTML being the default content type for ActivityPub / ActivityStreams is unfortunate in some ways.

HTML was originally a "dumb" document format. But, it is now a "smart" application format — with privacy & security concerns.

mastodon.social/@reiver/108237

You should NOT just take whatever HTML is in the 'content', and put it in the web-browser to view it.

You have to sanitize it. Or, render (unsafe) HTML to (safe) HTML.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

Previews in ActivityPub / ActivityStreams is what should bind the disparate software and user-experiences on the Fediverse.

Not the ActivityStreams 'Note'.

...

Previews using 'icon', 'image', 'name', 'summary', etc.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

3/

A good file-extension for ActivityPub / ActivityStream files might be:

.activity

And maybe also:

.jsonactivity

Those could be used to trigger a web-server to respond with the Content-Type "application/activity+json".

.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

2/

.json isn't sufficient, since it would produce a Content-Type of "application/json" rather than "application/activity+json".

ActivityPub / ActivityStream files need their own file-extension.

...

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

1/

A file-extension for ActivityPub /ActivityStream files.

...

On many web-servers, the Content-Type returned when serving a file is based on the file-extension of the file.

Ex: .txt for text files, .gz for gzip files, .gmni for gemtext files, etc.

I am not aware of a widely used file-extension for ActivityStreams / ActivityPub files.

...

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

4/

This needs some testing to see what extant Fediverse software actually does.

For example — with the extant Fediverse software —

Does the avatar image, the (actor) name, etc show up with the post?

Does the post show up?

Etc?

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

3/

Now, this would probably break like counts, share counts, a replies to some degree.

But, if you didn't care about that, I think it should work.

...

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

2/

For example, at:

http;//example·com/object/123

You might have the activity-JSON (application/activity+json):

{

....

"attributedTo": "https;//mastodon·social/users/reiver",

...

}

I.e., a Note or Article or whatever is saying that the author is NOT an actor on the same server host (example·com), but an actor over on the server host mastodon·social.

...

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

1/

You could have a post on one server host attribute and account on another server host as its author.

All you have to do is set the "attributedTo" field appropriately.

w3.org/TR/activitystreams-voca

For example....

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

Is SpaceBar adding AcitivtyPub support?

SpaceBar (formlery called "Fosscord") is an open-source alternative to Discord.

spacebar.chat/

github.com/spacebarchat

github.com/spacebarchat/activi

RE: mastodon.social/@reiver/114070

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

ActivityPub outboxes are the new RSS / Atom / WebFeed.

You can just read from them to get a JSON feed of someone's posts.

I.e., you do NOT have to implement the full suite of Fediverse protocols, or Follow, or run your own server, or anything else to get someone's posts on the Fediverse — just read from their outbox.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

ActivityPub outboxes are the new RSS / Atom / WebFeed.

You can just read from them to get a JSON feed of someone's posts.

I.e., you do NOT have to implement the full suite of Fediverse protocols, or Follow, or run your own server, or anything else to get someone's posts on the Fediverse — just read from their outbox.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

3/

ActivityPub & ActivityStreams are based on JSON-LD — a format that is not (non-programmer) human-legible & human-writable

Maybe we need an alternative way of encoding ActivityPub & ActivityStreams in situations where (non-programmer) humans might read it or write it

Maybe the INI file data format? Or something else that is friendly to (non-programmer) humans?

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

2/

I agree that an open protocol is better and more important than just an application.

But I also think that an open file data format is better and more important than just an open protocol.

I.e.,:

file data format ≫ protocol ≫ app

...

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

1/

JSON-LD is not (non-programmer) human-legible format because — JSON is not (non-programmer) human-legible format.

JSON-LD and JSON are both also not (non-programmer) human-writable.

...

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

ActivityPub outboxes are the new RSS / Atom / WebFeed.

You can just read from them to get a JSON feed of someone's posts.

I.e., you do NOT have to implement the full suite of Fediverse protocols, or Follow, or run your own server, or anything else to get someone's posts on the Fediverse — just read from their outbox.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

ActivityPub outboxes are the new RSS / Atom / WebFeed.

You can just read from them to get a JSON feed of someone's posts.

I.e., you do NOT have to implement the full suite of Fediverse protocols, or Follow, or run your own server, or anything else to get someone's posts on the Fediverse — just read from their outbox.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

What if a (new type of) Fediverse server automagically created an ActivityPub actor for each hash-tag.

So, for example, if someone on the server used:

⋕banana

(Then if the domain of the server is "example.com") then we would automagically have the actor:

@banana@example·com

Probably a group actor.

And it boosted any local post with that hash-tag.

Then you could follow a hash-tag on a server.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

ActivityPub outboxes are the new RSS / Atom / WebFeed.

You can just read from them to get a JSON feed of someone's posts.

I.e., you do NOT have to implement the full suite of Fediverse protocols, or Follow, or run your own server, or anything else to get someone's posts on the Fediverse — just read from their outbox.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

This feels so wasteful —

Including the same content twice — once in "content" and again in "contentMap".

  "content": "<p><a href=\"https://mastodon.social/tags/GreatApe\" class=\"mention hashtag\" rel=\"tag\">#<span>GreatApe</span></a></p><p>.</p>",
  "contentMap": {
    "en": "<p><a href=\"https://mastodon.social/tags/GreatApe\" class=\"mention hashtag\" rel=\"tag\">#<span>GreatApe</span></a></p><p>.</p>"
  },
ALT text details "content": "<p><a href=\"https://mastodon.social/tags/GreatApe\" class=\"mention hashtag\" rel=\"tag\">#<span>GreatApe</span></a></p><p>.</p>", "contentMap": { "en": "<p><a href=\"https://mastodon.social/tags/GreatApe\" class=\"mention hashtag\" rel=\"tag\">#<span>GreatApe</span></a></p><p>.</p>" },
@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

9/

And just for the record —

Just like everyone else I contacted about their 'discoverable' flag being defaulted to 'false' —

He wasn't aware of the 'discoverable' flag existing (just like everyone else I contacted).

He didn't want to be hidden (just like everyone else I contacted).

He changed it to 'true' (just like everyone else I contacted).

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

8/

As it is now, I think the 'discoverable' flag is broken.

And, I think the whole user-experience (UX) around the 'discoverable' flag is poor.

And, I think Fediverse software treating a 'false' value for 'discoverable' as "not discoverable" (rather than "not discoverable" or "no choice made") has hugely negative consequences for the user-experience (UX) of the Fediverse

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

7/

So now I have to DM Ben to tell him that his 'discoverable' flag is set to false

He (just like everyone else I contacted) will likely not even be aware that the 'discoverable' flag exists

And (just like everyone else I contacted) wished it wasn't set to false

And then (just like everyone else I contacted) struggle to find where he can set it to true

And then set it

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

6/

As it is now, the 'discoverable' flag seems broken to me.

Because 'false' doesn't actually mean 'false'.

'false' (in practice) means both "not discoverable" and "no choice made". And this is a very unfortunate situation —

Because the idea of a 'discoverable' flag is a good idea — but this problem with the meaning of 'false' and the UX consequences a big deal.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

5/

JSON and has a 'null'. That could have been used for the 'discoverable' flag.

We could have had so that:

'discoverable' set to 'true' meant that the user explicitly chose to be discoverable.

'discoverable' set to 'false' meant that the user explicitly chose to not be discoverable.

And 'discoverable' set to 'null' meant that the user has not explicitly made a choice.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

4/

With other conceptions, this lack of choice — this lack of setting a value — isn't as muddled.

With optional-types (which are also called "option-types" and "maybe-types") when something isn't assigned a value it is represented as 'nothing' / 'none'.

In relation-databases, this is represented as 'null'.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

3/

As it is right now, the 'discoverable' flag does not communicate whether the user actually made a 'true' or 'false' choice.

If it is 'true' we know they made a choice.

But if it is 'false' it either means the user chose 'false' or the user didn't make a choice. BUT WE CANNOT TELL THE DIFFERENCE.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

2/

There are a HUGE number of people who (unknown to them) have their 'discoverable' flags set to 'false' who —

№2:

Do NOT know that they have a 'discoverable' flag —

And do NOT know that their 'discoverable' flag was automagically set to 'false' —

And do not understand the consequence of having their 'discoverable' flag set to false.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

1/

A problem with the 'discoverable' flag (in Mastodon and any other Fediverse software that added it) is —

There are a HUGE number of people who (unknown to them) have their 'discoverable' flags set to 'false' who —

№1:

Did NOT set their 'discoverable' to 'false' themselves.

Mastodon assigned it for them without ever asking them before hand and getting consent.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

8/

As it is now, I think the 'discoverable' flag is broken.

And, I think the whole user-experience (UX) around the 'discoverable' flag is poor.

And, I think Fediverse software treating a 'false' value for 'discoverable' as "not discoverable" (rather than "not discoverable" or "no choice made") has hugely negative consequences for the user-experience (UX) of the Fediverse

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

7/

So now I have to DM Ben to tell him that his 'discoverable' flag is set to false

He (just like everyone else I contacted) will likely not even be aware that the 'discoverable' flag exists

And (just like everyone else I contacted) wished it wasn't set to false

And then (just like everyone else I contacted) struggle to find where he can set it to true

And then set it

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

6/

As it is now, the 'discoverable' flag seems broken to me.

Because 'false' doesn't actually mean 'false'.

'false' (in practice) means both "not discoverable" and "no choice made". And this is a very unfortunate situation —

Because the idea of a 'discoverable' flag is a good idea — but this problem with the meaning of 'false' and the UX consequences a big deal.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

5/

JSON and has a 'null'. That could have been used for the 'discoverable' flag.

We could have had so that:

'discoverable' set to 'true' meant that the user explicitly chose to be discoverable.

'discoverable' set to 'false' meant that the user explicitly chose to not be discoverable.

And 'discoverable' set to 'null' meant that the user has not explicitly made a choice.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

4/

With other conceptions, this lack of choice — this lack of setting a value — isn't as muddled.

With optional-types (which are also called "option-types" and "maybe-types") when something isn't assigned a value it is represented as 'nothing' / 'none'.

In relation-databases, this is represented as 'null'.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

3/

As it is right now, the 'discoverable' flag does not communicate whether the user actually made a 'true' or 'false' choice.

If it is 'true' we know they made a choice.

But if it is 'false' it either means the user chose 'false' or the user didn't make a choice. BUT WE CANNOT TELL THE DIFFERENCE.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

2/

There are a HUGE number of people who (unknown to them) have their 'discoverable' flags set to 'false' who —

№2:

Do NOT know that they have a 'discoverable' flag —

And do NOT know that their 'discoverable' flag was automagically set to 'false' —

And do not understand the consequence of having their 'discoverable' flag set to false.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

1/

A problem with the 'discoverable' flag (in Mastodon and any other Fediverse software that added it) is —

There are a HUGE number of people who (unknown to them) have their 'discoverable' flags set to 'false' who —

№1:

Did NOT set their 'discoverable' to 'false' themselves.

Mastodon assigned it for them without ever asking them before hand and getting consent.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

Could ActivityPub / ActivityStreams be used to synchronize files across separate machines / computers / devices‽

I think the answer is, YES.

The inbox-outbox system could enable you to send messages between separate machines / computers / devices.

The 'messages' transfer the changed 'blocks' / 'chunks' that make up a file, notify about deletions, file creations, etc

Existing Activity Types might be sufficient to do this

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

Is any Fediverse software using or generating the 'View' activity-type?

w3.org/TR/activitystreams-voca

You could create view-counts on posts, profiles, etc, using this.

Of course, there are privacy concerns with this.

And, also, what counts as a "view".

Although, I sometimes use a "Like" to indicate I viewed something. If a 'View' was something manual (such a pressing a button) that could be more semantically clean.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

To me, it feels like the Activity Types should have been past-tense verbs, rather than present-tense verbs.

I.e.:

• "Accepted" rather than "Accept"
• "Added" rather than "Add"
• "Announced" rather than "Announce"
• "Arrived" rather than "Arrive"
• "Blocked" rather than "Block"
• "Created" rather than "Create"
• etc

Present-tense verbs feel like commands.

Past-tense verbs feel like events.

Activities are events not commands.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

To me, it feels like the Activity Types should have been past-tense verbs, rather than present-tense verbs.

I.e.:

• "Accepted" rather than "Accept"
• "Added" rather than "Add"
• "Announced" rather than "Announce"
• "Arrived" rather than "Arrive"
• "Blocked" rather than "Block"
• "Created" rather than "Create"
• etc

Present-tense verbs feel like commands.

Past-tense verbs feel like events.

Activities are events not commands.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

To me, it feels like the Activity Types should have been past-tense verbs, rather than present-tense verbs.

I.e.:

• "Accepted" rather than "Accept"
• "Added" rather than "Add"
• "Announced" rather than "Announce"
• "Arrived" rather than "Arrive"
• "Blocked" rather than "Block"
• "Created" rather than "Create"
• etc

Present-tense verbs feel like commands.

Past-tense verbs feel like events.

Activities are events not commands.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

3/

However, "orderedItems" is mentioned in the ActivityStreams Core spec:

w3.org/TR/activitystreams-core/

Maybe the closest thing to a definition is:

"Collection are represented using the 'items' property while ordered items are represented using the 'orderedItems' property."

So, "orderedItems" is just like "items":

w3.org/TR/activitystreams-voca

... except renamed and the interpretation is different

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

2/

"orderedItems" also isn't in the ActivityPub spec:

w3.org/TR/activitypub/

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

1/

"orderedItems" shows up in the examples in the ActivityStreams Vocabulary spec:

w3.org/TR/activitystreams-voca

But, I don't see a definition for "orderedItems" in there (in the ActivityStreams Vocabulary spec).

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to just small circles 🕊's post

@frankstrater @dansup @peertube

Other than that.. I started calling current AS/AP fedi the "as soon as possible" fediverse, where necessarily early app implementations served as the de-facto reference implementations for the and open standards.

At serious cost: Ever increasing and subsequent i.e. retaining app-by-app interop pipes against moving release targets.

When is Video domain getting standardized? That's my question.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I'm looking for your opinions from the developers of the fediverse.

A common HTML web page can contain related links via the <link> tag. I would like to do the same for Activity Streams objects, for example:

{
  "@context": "https://www.w3.org/ns/activitystreams",
  "id": "https://writings.hongminhee.org/ap/2024/12/a-year-with-the-fediverse.json",
  "type": "Article",
  "name": "A year with the fediverse",
  "content": "2024 was truly a year where I was deeply immersed in the fediverse. …",
  "url": "https://writings.hongminhee.org/2024/12/a-year-with-the-fediverse/",
  "attachment": [
    {
      "type": "Link",
      "rel": "alternate",
      "hreflang": "ko",
      "href": "https://writings.hongminhee.org/2024/12/a-year-with-the-fediverse/index.ko-hang-kr.html",
      "mediaType": "text/html"
    },
    {
      "type": "Link",
      "rel": "alternate",
      "hreflang": "ja",
      "href": "https://writings.hongminhee.org/2024/12/a-year-with-the-fediverse/index.ja.html",
      "mediaType": "text/html"
    }
  ]
}

Do you think this makes sense, and would it be appropriate to put Link objects in the attachment?

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I'm looking for your opinions from the developers of the fediverse.

A common HTML web page can contain related links via the <link> tag. I would like to do the same for Activity Streams objects, for example:

{
  "@context": "https://www.w3.org/ns/activitystreams",
  "id": "https://writings.hongminhee.org/ap/2024/12/a-year-with-the-fediverse.json",
  "type": "Article",
  "name": "A year with the fediverse",
  "content": "2024 was truly a year where I was deeply immersed in the fediverse. …",
  "url": "https://writings.hongminhee.org/2024/12/a-year-with-the-fediverse/",
  "attachment": [
    {
      "type": "Link",
      "rel": "alternate",
      "hreflang": "ko",
      "href": "https://writings.hongminhee.org/2024/12/a-year-with-the-fediverse/index.ko-hang-kr.html",
      "mediaType": "text/html"
    },
    {
      "type": "Link",
      "rel": "alternate",
      "hreflang": "ja",
      "href": "https://writings.hongminhee.org/2024/12/a-year-with-the-fediverse/index.ja.html",
      "mediaType": "text/html"
    }
  ]
}

Do you think this makes sense, and would it be appropriate to put Link objects in the attachment?

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

Fediverse Labeler update:

I have been working on a site that anyone can use to see Fediverse Labelers in action.

This is what it looks like if the user it looks up doesn't provide an avatar image or a header image.

I.e., this (in the screenshot) shows the default avatar image and header image.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

3/

Although what I mentioned here doesn't resolve the problem with changing ones username.

That problem still exists with this technique.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

2/

For example —

If the "username" is part of it, then there is a straightforward unique ID for this user as an acct-URL:

acct:joeblow@example·com

But there are many ways an HTTP-URL as an ID gets represented. Ex:

• http;//example·com/users/joeblow
• http;//example·com/user/joeblow
• http;//example·com/api/users/joeblow
• http;//example·com/api/user/joeblow
• http;//example·com/~joeblow
• etc

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

1/

If ActivityPub and ActivityStreams used acct-URI rather than HTTP-URL to identify users, then there would less problems with switching between different Fediverse software.

(Different Fediverse software represent users with different style HTTP-URLs — which creates the problem.)

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

For previous posts on Fediverse Labelers, see:

mastodon.social/@reiver/113833

And:

mastodon.social/@reiver/113825

And:

mastodon.social/@reiver/113822

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

Fediverse Labeler update:

I have been working on a site that anyone can use to see Fediverse Labelers in action.

This is what it looks like if the user it looks up doesn't provide an avatar image or a header image.

I.e., this (in the screenshot) shows the default avatar image and header image.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

2/

For discussion on some of the technical / programming side of Fediverse Labelers, see:

mastodon.social/@reiver/113822

.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

1/

More on Fediverse Labelers —

Here is how text-labels from multiple Fediverse Labelers could appear in an application on a person's profile.

...

In this example, the application pulled in 7 labels from 4 different Fediverse Labelers.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

For previous threads on Fediverse Labelers see:

mastodon.social/@reiver/113825

And:

mastodon.social/@reiver/113822

.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

For previous threads on Fediverse Labelers see:

mastodon.social/@reiver/113825

And:

mastodon.social/@reiver/113822

.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

Fediverse Labeler update:

I have been working on site that anyone can use to see Fediverse Labelers in action.

I am hoping to get it done soon. (Maybe by the weekend or next week.)

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

3/

This screen mock-up only shows text-labels.

Other types of labels can exist — image labels of different types, virtual object labels, space-time labels, etc.

And labels can have different use-case (in addition to human-readable text) — more on that later.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

2/

For discussion on some of the technical / programming side of Fediverse Labelers, see:

mastodon.social/@reiver/113822

.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

1/

More on Fediverse Labelers —

Here is how text-labels from multiple Fediverse Labelers could appear in an application on a person's profile.

...

In this example, the application pulled in 7 labels from 4 different Fediverse Labelers.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

3/

This screen mock-up only shows text-labels.

Other types of labels can exist — image labels of different types, virtual object labels, space-time labels, etc.

And labels can have different use-case (in addition to human-readable text) — more on that later.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

2/

For discussion on some of the technical / programming side of Fediverse Labelers, see:

mastodon.social/@reiver/113822

.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

1/

More on Fediverse Labelers —

Here is how text-labels from multiple Fediverse Labelers could appear in an application on a person's profile.

...

In this example, the application pulled in 7 labels from 4 different Fediverse Labelers.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

4/

Note that even in this example, that there are different types of labels!

I have some examples of text labels.

But I also have some examples of Icon labels.

(Other types of labels could exist, too.)

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

3/

The "describes" field would point to the thing being labelled.

The "attributedTo" field would point to the person or machine that create these label.

And the "attachment" field would be a list of labels.

The (top level) "icon" field would be an icon that would be shown next to the label in the user-interface (UI).

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

2/

A Fediverse Labeler would output a separate ActivityStreams "Profile" Object for each thing it wants to label.

Each of these should be at a separate URL.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

1/

This is how a Fediverse Labeler could work.

In particular, This is how a Fediverse Labeler could be represented as ActivityPub / ActivityStreams / JSON-LD data.

{
  "@context": [
    "https://www.w3.org/ns/activitystreams"
  ],
  "type": "Profile",
  "describes": "acct:reiver@mastodon.social",
  "attributedTo": "https://example.com/apps/ratel",
  "icon": {
    "type": "Icon",
    "mediaType": "image/png",
    "url": "https://example.com/apps/ratel/img/icon.png"
  },
  "attachment": [
    {
      "type": "Label",
      "name": "Programmer"
    },
    {
      "type": "Label",
      "name": "Canadian"
    },
    {
      "type": "Icon",
      "mediaType": "image/png",
      "url": "https://example.com/pfp/751f76ed540a40a3b4caae50e50cc867.png"
    },
    {
      "type": "Icon",
      "mediaType": "image/png",
      "url": "https://example.com/pfp/45f7b459257940f490133070a975924b.png"
    }
  ]
}
ALT text details{ "@context": [ "https://www.w3.org/ns/activitystreams" ], "type": "Profile", "describes": "acct:reiver@mastodon.social", "attributedTo": "https://example.com/apps/ratel", "icon": { "type": "Icon", "mediaType": "image/png", "url": "https://example.com/apps/ratel/img/icon.png" }, "attachment": [ { "type": "Label", "name": "Programmer" }, { "type": "Label", "name": "Canadian" }, { "type": "Icon", "mediaType": "image/png", "url": "https://example.com/pfp/751f76ed540a40a3b4caae50e50cc867.png" }, { "type": "Icon", "mediaType": "image/png", "url": "https://example.com/pfp/45f7b459257940f490133070a975924b.png" } ] }
@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

Is any Fediverse (or other) software using or returning an ActivityStreams 'Profile'?

w3.org/TR/activitystreams-voca

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

litepub

What is the motivation for encouraging LitePub implementors to "supply a locally hosted version of the LitePub JSON-LD Context"?

Is it just for people using full-out JSON-LD parsers?

Won't this create problems for people using parsers that do NOT go download and interpret context-URIs? And instead just hard-code the vocabulary in their code?

LitePub for ActivityPub Implementors

JSON-LD context

LitePub implementations are not required to use @context properties on their messages. A conformant ActivityPub implementation is required to process these messages with an injected @context of "https://www.w3.org/ns/activitystreams" as described in the ActivityStreams 2.0 Core Specification

However, the LitePub Core Vocabulary differs from the ActivityStreams 2.0 Vocabulary. It is suggested that LitePub implementations supply a locally hosted version of the LitePub JSON-LD Context as their @context. It may be useful to inject a local copy of the LitePub JSON-LD Context instead of the default ActivityStreams 2.0 context when a message is received without a @context as it defines the full LitePub Core Vocabulary in a way that is useful to JSON-LD processors.

Signatures

LitePub implementations MUST use HTTP Signatures to verify the authenticity of messages being delivered to or from peering nodes. The details surrounding the way HTTP Signatures are implemented in LitePub are discussed on the Overview page.
ALT text detailsLitePub for ActivityPub Implementors JSON-LD context LitePub implementations are not required to use @context properties on their messages. A conformant ActivityPub implementation is required to process these messages with an injected @context of "https://www.w3.org/ns/activitystreams" as described in the ActivityStreams 2.0 Core Specification However, the LitePub Core Vocabulary differs from the ActivityStreams 2.0 Vocabulary. It is suggested that LitePub implementations supply a locally hosted version of the LitePub JSON-LD Context as their @context. It may be useful to inject a local copy of the LitePub JSON-LD Context instead of the default ActivityStreams 2.0 context when a message is received without a @context as it defines the full LitePub Core Vocabulary in a way that is useful to JSON-LD processors. Signatures LitePub implementations MUST use HTTP Signatures to verify the authenticity of messages being delivered to or from peering nodes. The details surrounding the way HTTP Signatures are implemented in LitePub are discussed on the Overview page.
@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

I wish Mastodon handled ActivityStreams "type":"Video" as well as "type":"Note" with a Video attachment.

They could be rendered the same. But they (currently) aren't.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

Interesting. PeerTube content (in their "application/activity+json") can be Markdown.

(Reference: curl -H 'Accept: application/activity+json' tube.archworks.co/videos/watch )

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

It seems to be common now to put JSON-LD in the HTML source code.

ActivityPub and ActivityStreams files (application/activity+json) are JSON-LD files.

You could put ActivityPub and ActivityStreams in the HTML source code.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

I wish Mastodon handled ActivityStreams "type":"Video" as well as "type":"Note" with a Video attachment.

They could be rendered the same. But they (currently) aren't.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I'm looking for your opinions from the developers of the fediverse.

A common HTML web page can contain related links via the <link> tag. I would like to do the same for Activity Streams objects, for example:

{
  "@context": "https://www.w3.org/ns/activitystreams",
  "id": "https://writings.hongminhee.org/ap/2024/12/a-year-with-the-fediverse.json",
  "type": "Article",
  "name": "A year with the fediverse",
  "content": "2024 was truly a year where I was deeply immersed in the fediverse. …",
  "url": "https://writings.hongminhee.org/2024/12/a-year-with-the-fediverse/",
  "attachment": [
    {
      "type": "Link",
      "rel": "alternate",
      "hreflang": "ko",
      "href": "https://writings.hongminhee.org/2024/12/a-year-with-the-fediverse/index.ko-hang-kr.html",
      "mediaType": "text/html"
    },
    {
      "type": "Link",
      "rel": "alternate",
      "hreflang": "ja",
      "href": "https://writings.hongminhee.org/2024/12/a-year-with-the-fediverse/index.ja.html",
      "mediaType": "text/html"
    }
  ]
}

Do you think this makes sense, and would it be appropriate to put Link objects in the attachment?

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

actor model & activitypub, programming

1/

I like the Actor-Model.

A friend who is a Scala programmer introduced it to me.

I used it when programming in — Erlang and Scala. Later, I implemented the Actor-Model in Go. I even implemented Erlang's supervision-tree in Go.

ActivityPub is maybe better understood through the lens of the Actor-Model — rather than a HTTP REST API.

However —

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

As I mentioned before — I think the Fediverse version of Follow-Packs / Starter-Packs should be some type of ActivityPub / ActivityStreams object.

It could look a lot like the "following" and "followers" URLs look.

RE: mastodon.social/@reiver/113629

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

1/

There are now multiple efforts to create a Fediverse version of Follow-Packs / Starter-Packs.

A starter-pack gives you a collection of people and other users to follow

They help new users find people to follow — so they don't have an empty home-feed. But they also help existing users find more people to follow.

🧵

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

json-ld

Someone created a list of all the JSON-LD properties used in the Fediverse:

jsonld.bovine.social/

(I haven't tried confirming the accuracy of this list. But, it is interesting.)

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

json-ld

How much Fediverse software can read the expanded form of JSON-LD?

Or are they making hard-coded assumptions about what the JSON names will be?

I.e.,:

"indexable" : true

Versus:

"http;//joinmastodon·org/ns#indexable" : true

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

json-ld

In some ways, I think it might have been "better" if the Fediverse didn't use JSON-LD and instead just used URLs as key names.

I.e., if it didn't use the "@context" stuff.

"@context" adds a certain type of complexity.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

There are a lot of different types in the ActivityStreams Vocabulary.

w3.org/TR/activitystreams-voca

But because Mastodon only supports 8 of them (with only 2 of them being supported properly), there is "pressure" on other Fediverse software to restrict themselves to these 8.

docs.joinmastodon.org/spec/act

Because they want to be compatible with Mastodon.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

The ActivityPub Client-Server API

w3.org/TR/activitypub/#client-

Kingsley Uyi Idehen's avatar
Kingsley Uyi Idehen

@kidehen@mastodon.social


I am an open data access (, , and ), integration (), and data management ( and/or ) technologist, enthusiast, and entrepreneur.

I am passionate about open standards for , , , ( & ), and data de-silo-fication initiatives (e.g. , , , , and ).

I don't like any kind of silo!