namespace java com.twitter.simclusters_v2.thriftjava namespace py gen.twitter.simclusters_v2.evaluation #@namespace scala com.twitter.simclusters_v2.thriftscala #@namespace strato com.twitter.simclusters_v2 /** * Surface area at which the reference tweet was displayed to the user **/ enum DisplayLocation { TimelinesRecap = 1, TimelinesRectweet = 2 }(hasPersonalData = 'false') struct TweetLabels { 1: required bool isClicked = false(personalDataType = 'EngagementsPrivate') 2: required bool isLiked = false(personalDataType = 'EngagementsPublic') 3: required bool isRetweeted = false(personalDataType = 'EngagementsPublic') 4: required bool isQuoted = false(personalDataType = 'EngagementsPublic') 5: required bool isReplied = false(personalDataType = 'EngagementsPublic') }(persisted = 'true', hasPersonalData = 'true') /** * Data container of a reference tweet with scribed user engagement labels */ struct ReferenceTweet { 1: required i64 tweetId(personalDataType = 'TweetId') 2: required i64 authorId(personalDataType = 'UserId') 3: required i64 timestamp(personalDataType = 'PublicTimestamp') 4: required DisplayLocation displayLocation 5: required TweetLabels labels }(persisted="true", hasPersonalData = 'true') /** * Data container of a candidate tweet generated by the candidate algorithm */ struct CandidateTweet { 1: required i64 tweetId(personalDataType = 'TweetId') 2: optional double score(personalDataType = 'EngagementScore') // The timestamp here is a synthetically generated timestamp. // for evaluation purpose. Hence left unannotated 3: optional i64 timestamp }(hasPersonalData = 'true') /** * An encapsulated collection of candidate tweets **/ struct CandidateTweets { 1: required i64 targetUserId(personalDataType = 'UserId') 2: required list recommendedTweets }(hasPersonalData = 'true') /** * An encapsulated collection of reference tweets **/ struct ReferenceTweets { 1: required i64 targetUserId(personalDataType = 'UserId') 2: required list impressedTweets }(persisted="true", hasPersonalData = 'true') /** * A list of candidate tweets **/ struct CandidateTweetsList { 1: required list recommendedTweets }(hasPersonalData = 'true')