AFP-Medialab / defacto-rss

Defacto RSS + Schema.org pivot format
Creative Commons Attribution Share Alike 4.0 International
2 stars 1 forks source link

Interaction Type dans Creator #2

Open AFPMedialab opened 1 year ago

AFPMedialab commented 1 year ago

Proposition:

 "appearance": {
        "url": "https://twitter_tweet",
        "@type": "SocialMediaPosting",
        "identifier": null,
        "creator": {
            "action": {
                "@context": "https://schema.org",
                "@type": "CreateAction",
                "result": {
                    "@type": "ProfilePage",
                    "name": "Twitter account",
                    "dateCreated": null
                }
            },
            "interactionStatistic": [
                {
                    "@context": "https://schema.org",
                    "@type": "FollowAction",
                    "userInteractionCount": null,
                    "object": {
                        "@type": "Product",
                        "name": "Twitter"
                    }
                }
            ]
        },
        "datePublished": null
}
AFPMedialab commented 1 year ago

La propriété action n’existe pas dans la définition Creator. Quel est l’objectif de rajouter un objet Action dans creator ? Si c’est pour ajouter des informations sur le profile du créateur, je ne suis pas sur que les objects Action soient les plus appropriés.

kat-kel commented 1 year ago

La raison pour laquelle je l'ai ajouté est parce qu'il faut lier à Creator de l'information sur la création du compte par lequel l'individu / le groupe a publié le post, la vidéo, la chaîne, etc, et les entités Person et Organization n'ont pas de propriété comme "createdAt" ni "createdIn". Du coup, j'ai ajouté Action dans laquelle le créateur crée son compte d'utilisateur à une certaine date et dans un certain pays.

Rappelez-vous qu'on n'a pas de moyen de savoir quel type d'entité est le créateur. On ne sait pas si le compte qui a publié un Tweet, par exemple, est géré par un individu ou par une organisation. De plus, le concept d'une date de création (et un pays de création) n'est pas toujours pertinent si, par exemple, le contenu était publié dans un article classique sur un site web.

AFPMedialab commented 1 year ago

Comme il n'existe aucun element définissant ce concept dans Schema.org, tu pourrais utiliser une propriété de l'espace de nom defacto. La propriété pourrait être defacto:socialAccount dans laquelle tu peux mettre tout ce qui concerne un compte twitter, facebook, etc A voir où elle serait serait le mieux placé. Pour ma part je pense que cela devrait étendre l'objet SocialMediaPosting. Par example:

{
  "appearance": {
    "@context": [
      "https://schema.org",
      { "defacto": "https://github.com/AFP-Medialab/defacto-rss" }
    ],
    "@type": "SocialMediaPosting",
    "url": "https://twitter_tweet",
    "identifier": null,
    "defacto:socialAccount": {
      "@type": "defacto:TwitterAccount",  
      "action": {
        "@type": "CreateAction",
        "result": {
          "@type": "ProfilePage",
          "name": "Twitter account",
          "dateCreated": null
        }
      },
      "interactionStatistic": [
        {
          "@type": "InteractionCounter",
          "interactionType": "https://schema.org/FollowAction",
          "userInteractionCount": null,
          "object": {
            "@type": "Product",
            "name": "Twitter"
          }
        }
      ]
    },
    "datePublished": null,
    "text": null,
    "defacto:Hashtags": null
}
kat-kel commented 1 year ago

Que penses-tu de modifier le type de Creator pour être "@type" "defacto:SocialMediaAccount" où on peut nous permettre d'avoir les propriétés dateCreated et locationCreated ?

{
  "appearance": {
    "@context": [
      "https://schema.org",
      { "defacto": "https://github.com/AFP-Medialab/defacto-rss" }
    ],
    "@type": "SocialMediaPosting",
    "url": "https://twitter_tweet",
    "identifier": null,
    "Creator": {
      "@type": "defacto:SocialMediaAccount",  
      "dateCreated": null,
      "locationCreated": null,
      "interactionStatistic": [
        {
          "@type": "InteractionCounter",
          "interactionType": "https://schema.org/FollowAction",
          "userInteractionCount": null,
          "interactionService": {
            "@type": "website",
            "name": "Twitter"
          }
        }
      ]
    },
    "datePublished": null,
    "text": null,
    "defacto:Hashtags": null
}
kat-kel commented 1 year ago

Sais-tu s'il y a un moyen de regarder toutes les actions qui peuvent descendre de interactionStatistic ? Je cherche en ligne et dans la documentation de schema.org, mais je ne vois pas une liste complète de l'hérédité. J'en demande parce que je veux savoir si, sans créer quelque chose de nouveau, je pourrais rajouter les informations sur la création du compte dans le interactionStatistic du Creator en utilisant une action existante comme CreateAction. @kat-kel

AFPMedialab commented 1 year ago

Que penses-tu de modifier le type de Creator pour être "@type" "defacto:SocialMediaAccount" où on peut nous permettre d'avoir les propriétés dateCreated et locationCreated ?

{
  "appearance": {
    "@context": [
      "https://schema.org",
      { "defacto": "https://github.com/AFP-Medialab/defacto-rss" }
    ],
    "@type": "SocialMediaPosting",
    "url": "https://twitter_tweet",
    "identifier": null,
    "Creator": {
      "@type": "defacto:SocialMediaAccount",  
      "dateCreated": null,
      "locationCreated": null,
      "interactionStatistic": [
        {
          "@type": "InteractionCounter",
          "interactionType": "https://schema.org/FollowAction",
          "userInteractionCount": null,
          "interactionService": {
            "@type": "website",
            "name": "Twitter"
          }
        }
      ]
    },
    "datePublished": null,
    "text": null,
    "defacto:Hashtags": null
}

C'est une très bonne idée. A condition de préfixer les propriétés dateCreated et locationCreated. En partant du principe que le type "defacto:SocialMediaAccount" herite du type Person et/ou Organization, toutes les propriétés non préfixé restent dans le vocalbulaire Schema.org et tout les ajouts sont dans defacto.

Cela donnerai:

{
  "appearance": {
    "@context": [
      "https://schema.org",
      { "defacto": "https://github.com/AFP-Medialab/defacto-rss" }
    ],
    "@type": "SocialMediaPosting",
    "url": "https://twitter_tweet",
    "identifier": null,
    "Creator": {
      "@type": "defacto:SocialMediaAccount",  
      "defacto:dateCreated": null,
      "defacto:locationCreated": null,
      "interactionStatistic": [
        {
          "@type": "InteractionCounter",
          "interactionType": "https://schema.org/FollowAction",
          "userInteractionCount": null,
          "interactionService": {
            "@type": "website",
            "name": "Twitter"
          }
        }
      ]
    },
    "datePublished": null,
    "text": null,
    "defacto:Hashtags": null
}
AFPMedialab commented 1 year ago

Toute la hérachie est dans https://schema.org/Action. Si il n'y a rien qui répond au besoin, tu peux en créer un pour defacto.

kat-kel commented 1 year ago

J'ai un nouveau schéma à proposer pour le creator. Voici l'exemple d'une vidéo YouTube dont le creator est la chaîne qui l'a publié. J'ai adopté defacto:dateCreated et defacto:locationCreated pour les nouvelles properties de creator que nous voulons ajouter. Par contre, je me rends compte qu'un creator ne peut pas être de type WebPage. Il faut être soit Person soit Organization. Mais je veux pouvoir dire qu'une page YouTube est un WebPage.

"creator": {
                            "@type": "WebPage",
                            "defacto:dateCreated": "2018-09-24",
                            "defacto:locationCreated": "FR",
                            "identifier": "UCyamXi0qEQJghCjJbj__aWQ",
                            "name": "Chaîne officielle TVL",
                            "interactionStatistic": [
                                {
                                    "@type": "InteractionCounter",
                                    "interactionType": "SubscribeAction",
                                    "interactionService": {
                                        "@type": "website",
                                        "name": "YouTube"
                                    },
                                    "userInteractionCount": "698000"
                                },
                                {
                                    "@type": "InteractionCounter",
                                    "interactionType": "CreateAction",
                                    "interactionService": {
                                        "@type": "website",
                                        "name": "YouTube"
                                    },
                                    "userInteractionCount": "3351",
                                    "result": {
                                        "@type": "VideoObject"
                                    }
                                }
                            ]
                        },
AFPMedialab commented 1 year ago

Je pense que dans le cas d'un line youtube le mieux , pour représenter la chaine, serait d'utiliser la propriété isPartOf à la place de creator. Si le createur est identifié il vient en complément de la page du channel.

On aurait quelques choses comme cela:

{
    "appearance":
    {
        "@context":
        [
            "https://schema.org",
            {
                "defacto": "https://github.com/AFP-Medialab/defacto-rss"
            }
        ],
        "@type": "SocialMediaPosting",
        "url": "https://youtube_link",
        "identifier": "youtube_id",
        "isPartOf":
        {
            "@type": "WebPage",
            "dateCreated": "2018-09-24",
            "countryOfOrigin":
            {
                "@type": "Country",
                "name": "France"
            },
            "identifier": "UCyamXi0qEQJghCjJbj__aWQ",
            "name": "Chaîne officielle TVL",
            "interactionStatistic":
            [
                {
                    "@type": "InteractionCounter",
                    "interactionType": "SubscribeAction",
                    "interactionService":
                    {
                        "@type": "website",
                        "name": "YouTube"
                    },
                    "userInteractionCount": "698000"
                },
                {
                    "@type": "InteractionCounter",
                    "interactionType": "CreateAction",
                    "interactionService":
                    {
                        "@type": "website",
                        "name": "YouTube"
                    },
                    "userInteractionCount": "3351",
                    "result":
                    {
                        "@type": "VideoObject"
                    }
                }
            ]
        },
        "datePublished": "2022-09-24",
        "text": "",
        "defacto:Hashtags": ""
    }
}

Comme WebPage est de type CreativeWork, j'ai utilisé les propriétés défini par Schema.org à la place des propriété defacto.