w3c / activitystreams

Activity Streams 2.0
https://www.w3.org/TR/activitystreams-core/
Other
278 stars 62 forks source link

How to indicate that a message is a translation of another message #463

Open Changaco opened 6 years ago

Changaco commented 6 years ago

Please Indicate One:

Please Describe the Issue:

Is there a standard way to express that an object is a translation of another object? The Activity Vocabulary specification defines an inReplyTo property for replies, but no isTranslationOf for translations.

evanp commented 6 years ago

Are you looking for natural language values?

https://www.w3.org/TR/activitystreams-core/#naturalLanguageValues

You can use, for example, a contentMap to show translations of the same message in different languages.

Changaco commented 6 years ago

No, maps are for including multiple languages in a single object, right? What I'm looking for is a way to link two distinct objects together, with a property indicating that the second object is a translation of the first object.

For example this toot is a French translation of that one, and we want to encode this fact into the toot's metadata so that we can avoid showing "duplicate" messages to people.

nightpool commented 6 years ago

are there any social networks that currently implement this feature? it seems very speculative.

On Thu, Mar 29, 2018, 3:16 AM Charly C. notifications@github.com wrote:

No, maps are for including multiple languages in a single object, right? What I'm looking for is a way to link two distinct objects together, with a property indicating that the second object is a translation of the first object.

For example this toot https://mastodon.xyz/@Liberapay/99751255368634883 is a French translation of that one https://mastodon.xyz/@Liberapay/99751124600550302, and we want to encode this fact into the toot's metadata so that we can avoid showing "duplicate" messages to people.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/w3c/activitystreams/issues/463#issuecomment-377145273, or mute the thread https://github.com/notifications/unsubscribe-auth/AAORV5SaXGKOJHcFQ349cs7F9_n5UbMoks5tjIpngaJpZM4S9Xtf .

Changaco commented 6 years ago

I don't know of any social network that fully supports multilingualism, and I've never seen one that allows adding a translation after a message has been published.

evanp commented 6 years ago

I think FB will let users improve a machine translation, but I'm not sure if they surface that translation to other users.

Maybe look at rdf or dc properties?

nclm commented 6 years ago

Facebook does have a multilingual post system, you can define the language of a post when writing and add translations to it. You author them at the same time though, and the result is a unique multilingual post rather than separate posts linked together.

screenshot

(sorry for the white overlay on the screenshot)

Changaco commented 6 years ago

Since there doesn't appear to be a standard way to express that a message is a translation of another one, should I open a pull request to discuss the possible future standardization of an isTranslationOf property?

nightpool commented 6 years ago

I can't speak for everyone, but I think that if you want to model this, the best way to do so would be an Edit to the exiting Note that adds a translation using the contentMap property. I don't think making them separate posts is appropriate. Then the creator of the Note can either endorse or reject the Edit as they wish, via whatever semantics the data interchange layer uses to authenticate these sort of things.

Changaco commented 6 years ago

That's a good suggestion. However messages that are translations of other messages already exist and I think it would be good to have a property to describe that reality. Also, introducing isTranslationOf wouldn't break anything, any software which doesn't know about it would simply continue to show all messages.

Changaco commented 6 years ago

Adding translations to an already-published message would also be problematic in that the message's date would no longer be accurate.

evanp commented 6 months ago

I think this is an interesting relationship. If the translation and the original are "the same object", we use the language map mechanism. If they are "not the same object", for example, they have different authors, or some other major difference, having a looser relationship makes sense. This seems like a good topic for a FEP. I'm going to mark this is as needs-fep, and waiting for commenter.

bumblefudge commented 6 months ago

I would also note that in the community extensions to the ActivityPub extensions to ActivityStreams, there is a fep called FEP-bad1 which includes previous versions of an edited object-- not sure this is the best way to model it, but if Object 2 is a translation of Object 1, there might be a way to point back to the original (with its distinct timestamp) from the translation as an entry in its object history, the way an object can point to its prior id /home after an export/import-to-new-server? Possibly a red herring but thought I'd mention it to any future FEP authors who read this thread.

tesaguri commented 5 months ago

I think you can use the hreflang property in FEP-fffd (Proxy Objects) instead of inventing a new property.