Meta tags:
Headings (most frequently used words):
data, syntax, subjects, and, tuple, twitter, introduction, other, considerations, authors, reviewers, how, it, works, why, goals, terms, tuples, simple, namespaces, message, retweeting, role, function, of, hashtags, binary, size, atomicity, transactional, semantics, semantic, web, applicability, more, details, recency, reserved, names, comments, on, implicit, explicit,
Text of the page (most frequently used words):
the (182), data (73), and (67), twitter (66), #message (60), with (54), tuple (54), for (49), this (47), that (46), subject (39), are (32), #tuples (32), messages (32), may (28), value (26), applications (25), proposal (19), name (18), not (18), frame (18), values (17), example (17), use (17), should (16), more (16), subjects (16), other (15), semantics (15), some (13), non (12), single (12), embedded (12), following (12), frames (11), names (11), dollar (11), because (10), syntax (10), humans (10), one (10), characters (10), however (10), implicit (10), sign (10), character (10), normal (9), used (9), multiple (9), considered (9), way (9), appear (9), they (9), hashtags (9), namespaces (9), can (9), time (8), without (8), useful (8), case (8), will (8), from (8), using (8), community (8), human (7), over (7), note (7), there (7), does (7), delimiter (7), all (7), which (7), retweeting (7), interpretation (7), namespace (7), simple (7), space (7), dominant (7), text (7), name1 (7), any (6), stream (6), specify (6), send (6), than (6), readable (6), cases (6), apply (6), interpreted (6), reserved (6), twitterdata (6), spaces (6), then (6), value1 (6), first (5), same (5), format (5), intended (5), streams (5), only (5), would (5), have (5), these (5), order (5), most (5), person (5), search (5), must (5), within (5), binary (5), users (5), their (5), part (5), either (5), retweeted (5), thus (5), such (5), convention (5), present (5), identifier (5), vote (5), where (5), but (5), code (5), terminated (5), read (4), also (4), messaging (4), particularly (4), size (4), them (4), allows (4), platform (4), last (4), otherwise (4), 140 (4), limits (4), user (4), subjectless (4), understand (4), compatible (4), explicitly (4), when (4), define (4), start (4), machine (4), application (4), explicit (4), like (4), letter (4), underscore (4), our (4), alphanumeric (4), long (4), open (4), encoding (4), examples (4), new (4), literal (4), structured (4), about (4), home (4), furthermore (3), making (3), encoded (3), machines (3), its (3), semantic (3), version (3), restriction (3), sending (3), efficiently (3), number (3), determine (3), instead (3), given (3), containing (3), mechanism (3), whether (3), undefined (3), see (3), usefulness (3), end (3), sent (3), amounts (3), make (3), often (3), described (3), above (3), special (3), processing (3), tag (3), original (3), reduces (3), conjunction (3), beyond (3), scope (3), uri (3), allow (3), nearest (3), left (3), outside (3), defined (3), called (3), very (3), therefore (3), available (3), possible (3), below (3), specifically (3), content (3), notation (3), stock (3), symbols (3), exclusive (3), likes (3), how (3), name2 (3), value2 (3), extract (3), police (3), car (3), embedding (3), forum (3), blog (3), faq (3), email (2), 2025 (2), exceptions (2), 2026 (2), what (2), friendly (2), robust (2), representation (2), terse (2), readability (2), ugly (2), low (2), bandwidth (2), high (2), while (2), similar (2), multicast (2), point (2), additional (2), top (2), discuss (2), later (2), lack (2), fit (2), across (2), through (2), need (2), help (2), typically (2), recent (2), respect (2), atomic (2), transactional (2), another (2), groups (2), though (2), common (2), latest (2), rests (2), specific (2), truncated (2), requirement (2), set (2), receive (2), invalid (2), included (2), general (2), discourage (2), largely (2), equivalent (2), particular (2), limited (2), purpose (2), terms (2), necessarily (2), sender (2), addressed (2), senders (2), determination (2), feedback (2), before (2), implicitly (2), normally (2), change (2), different (2), graph (2), question (2), instance (2), separate (2), topic (2), based (2), amount (2), namespacing (2), default (2), true (2), unique (2), conventions (2), leave (2), strongly (2), shortened (2), urls (2), via (2), sends (2), follow (2), rule (2), hashtag (2), subject_name (2), specified (2), form (2), usually (2), want (2), formal (2), embed (2), natural (2), even (2), reserve (2), symbol (2), contain (2), well (2), php (2), short (2), snippets (2), collision (2), foo (2), bar (2), commonly (2), choice (2), too (2), seems (2), here (2), could (2), works (2), expect (2), namespaced (2), mph (2), just (2), love (2), each (2), recency (2), quotes (2), escaped (2), tbd (2), why (2), ways (2), begin (2), strings (2), contains (2), doubling (2), you (2), semi (2), interact (2), mining (2), social (2), language (2), consumed (2), information (2), near (2), interesting (2), map (2), real (2), followers (2), client (2), published (2), 2009 (2), jiri (2), kopsa (2), com (2), todd (2), work, licensed, under, creative, commons, license, protected, llms, budget, small, smart, specialized, finance, teams, reconciliations, controls, security, camera, shopping, bulgaria, every, buyer, know, choosing, llc, service, saas, founders, brazil, suitable, injected, debugged, vein, http, json, convenient, flexible, constraints, sizes, compact, sacrificing, avoid, overwhelming, terseness, latency, mobile, networks, seem, indicate, focus, services, instant, conferences, sms, broadcast, infrastructure, restrictions, applicability, designed, eye, layering, structures, possibilities, web, delivery, free, optimize, arranging, fewest, truncation, looseness, streamed, duplicate, relevant, respecified, collections, consider, collection, group, said, appearance, ordered, head, nominally, novelty, ability, varying, delivered, call, virtual, consolidation, around, criteria, query, differing, atomicity, specification, terminating, optional, aware, ensure, check, attempt, span, collectively, limit, introduce, means, spanning, harms, interoperability, inconvenient, unavoidable, less, serialization, base64, suited, require, streaming, large, exchanged, rate, combined, unsuitable, transferring, significant, speeds, semantically, consistent, unchanged, interepreted, agents, contrast, role, function, automatically, incongruity, casing, simply, acknowledging, probably, neatly, appreciate, final, somewhat, subtle, has, effect, act, inserts, inclusion, author, consideration, necessary, considering, ideally, propogate, receivers, central, independently, thoroughly, future, considerations, potentially, saving, valuable, filtered, recipients, sense, might, strictly, appealing, compared, syntactically, larger, completely, generally, tags, class, task, consumption, feeds, elect, filter, presentation, wish, partition, encouraged, bit, unlikely, collide, casual, conveniently, link, itself, rfc, 3986, classes, comprising, ambiguity, clearer, communication, channel, easy, getting, bogged, down, hard, remember, verbose, formalisms, makes, easier, hey, determining, straightforward, definition, meant, practice, interpret, until, further, prefer, determinable, freely, purports, guarantees, misinterpretation, handling, filtering, unexpected, sections, governed, context, closest, many, relative, object, concrete, abstract, entity, explained, determined, addition, intent, presence, precise, comprise, portion, preceding, greater, rules, key, capability, strict, discussing, msft, orcl, java, upper, justification, lowercase, programmers, express, issue, term, precaution, issues, doesn, interfere, much, partial, searches, relatively, scripting, languages, justifications, main, driver, engine, namely, treats, formalize, alternate, comments, developed, regard, exclusivity, driving, oops, hit, wall, now, hate, obvious, compare, describe, momentary, states, movies, once, applies, rightmost, imply, prior, depending, additive, leading, required, quoted, double, url, forms, relation, receiving, standard, quoting, excluded, null, trivial, reasoning, twofold, usage, overlaps, second, accidental, uses, trailing, noted, ascii, camel, lowercased, helps, preclude, existing, writing, affect, reasonable, utf, details, advise, confused, name3, value3, allowed, properly, appears, terminator, begins, immediately, followed, previous, preceeded, unescaped, separated, termination, despite, between, shows, pairs, simplest, distinct, dimension, pair, datum, max, length, programs, publishing, invite, peer, review, spark, debate, gather, consensus, think, good, idea, hope, your, vet, proposing, goal, turn, into, mere, transport, layer, mixed, fluidly, ends, chosen, conceptually, resembles, albeit, reasonably, goals, formally, enormous, opportunities, distribution, intelligent, behavior, unlimited, technology, best, richness, everyone, both, amazing, constantly, changing, unstructured, locked, infinite, complexity, inability, easily, attaching, metadata, distributing, shared, difficult, solve, public, timeline, process, consume, build, showing, locations, reports, clients, listen, presented, recorded, show, pin, location, distributed, her, includes, watch, out, saw, san, francisco, airport, lat, 612804, 122, 381687, knows, display, voting, widget, right, hand, column, page, piece, yet, transmitted, received, powerful, kinds, built, chars, lets, people, bits, tweets, computers, cool, stuff, introduction, originally, chun, xia, hao, thai, ted, leung, mike, gionfriddo, reviewers, fast, authors, contributors,
Text of the page (random words):
more spaces these spaces are not considered part of the name or the value values start with the first non space character following the termination of the name with a space therefore this example is equivalent to the one above despite the number of spaces between name and value name1 value1 spaces within values are literal and unescaped name1 some long value multiple tuples can appear in a single message frame where the value of the previous tuple is terminated by the start of a new tuple name preceeded by a space name1 value1 name2 value2 if a tuple appears at the end of the message then the value terminator is implicit if the tuple is embedded in the message with non data text the last tuple s value before the text begins must be terminated by a dollar sign delimiter following the last character of the last value immediately followed by a space some text name1 value1 name2 value2 some more text multiple groups of tuples are allowed as long as they are each properly terminated some text name1 value1 name2 value2 some more text name3 value3 if a tuple value contains the literal dollar sign character the literal character must be escaped by doubling the character to if non data message text contains the literal dollar sign character we advise doubling the value where it may otherwise be confused with the tuple syntax more syntax details tuple names begin with a dollar sign delimiter and are terminated by the first space or non alphanumeric character with the exceptions of underscore _ or as noted below tuple names must begin with an ascii letter or underscore and by convention use camel case with the first letter lowercased this convention helps preclude namespace collision with existing use of the dollar sign in normal messages when writing either dollar amounts or stock symbols tbd how does character encoding in twitter affect this is it reasonable for utf 8 strings to be used as tuple names tuple values are terminated by the start of a new name delimiter a single value trailing delimiter or the end of the message frame note tuples without a value are considered invalid and should be excluded from processing by applications specifically there is no formal representation of tuples with null values if a tuple is present it must have a value however trivial our reasoning for this restriction is twofold first that such usage overlaps with the semantics of twitter hashtags and second that it limits the amount of accidental interpretation by applications of non twitter data message content that uses the dollar sign notation in other ways if leading spaces are required in a value the value should typically be quoted with single or double quotes or the space characters would be escaped for example with url encoding 20 however quotes or other encoded forms are considered part of the tuple value and interpretation of them in relation to the value rests with the receiving applications this proposal does not specify a standard mechanism for quoting or encoding values tbd why not tuple recency the same tuple name may appear more than once in the same message frame if each tuple applies to a separate subject then normal semantics apply if all tuples apply to the same subject then the rightmost tuple should be considered the more recent note that recency does not necessarily imply that a tuple value is exclusive with a prior tuple value depending on the semantics of the tuple and or subject multiple tuple values over time may be additive for example in the following message frame likes movies likes twitter it seems obvious that the likes tuples should be non exclusive compare to these examples in which tuples should be exclusive because they describe momentary states of the subject i love twitterdata vote 1 but now i hate it vote 1 driving mph 65 oops just hit a wall mph 0 the interpretation and semantics of any tuple values that appear in a message frame or over time in a message stream is beyond the scope of this proposal we expect the semantics of commonly defined tuples with regard to exclusivity of multiple values to be addressed by community convention reserved tuple names we expect tuple names to be used by the community following community developed conventions however this proposal does reserve all un namespaced tuple names of a single letter or underscore specifically the following un namespaced tuple names are reserved and should not be used by applications a b c d e f g h i j k l m n o p q r s t u v w x y z _ foo bar comments on syntax some may question the use of the dollar sign as a tuple delimiter one main driver for this choice is that there is a very limited set of non alphanumeric characters that are compatible with twitter s search engine namely twitter search treats most non alphanumeric characters in a special way that limits their usefulness in conjunction with this proposal note this could change if twitter works with the community to formalize use of an alternate character here are some of our justifications for using similar syntax to php and other scripting languages the use of the character in this way seems to be relatively unique on twitter and thus is available for use for encoding data compatible with twitter search making it possible to use for partial searches with other characters in conjunction it is human readable and doesn t interfere too much with normal readability so that twitter data message frames can be useful to humans as well as machines there are some open issues with this choice however the dollar sign notation is used by php programmers to express short code snippets on twitter the namespace collision may or may not be an issue over the long term as a precaution we have reserved the foo and bar tuple names because they commonly appear in code snippets the dollar sign notation is also used by twitter users discussing stock symbols for example msft orcl java usually the stock symbols are in upper case which is part of the justification for twitter data to default to lowercase tuple names simple namespaces namespacing is a key capability that allows twitter data tuples to be interpreted with strict well defined semantics the namespace syntax is the following namespace name value namespaces comprise the portion of the tuple name following the name delimiter and preceding the greater than symbol symbol they follow all syntax rules as described above and thus may not contain spaces or other non alphanumeric characters only one namespace may appear in a tuple name our intent is that the presence of namespaces allow the community to define more precise semantics for interpretation of tuples it is beyond the scope of this proposal to define the semantics or content of any particular namespaces at this time however this proposal does reserve all namespaces of a single letter or underscore in addition to the td namespace specifically the following namespaces are reserved and should not be used by applications a b c d e f g h i j k l m n o p q r s t u v w x y z _ td message subjects in many cases it is useful for data in twitter data messages to be interpreted relative to a general topic or subject a subject is a person object message stream or other concrete or abstract entity to which one or more tuples in the message frame apply as explained below subjects may be implicitly determined by applications or explicitly specified in the message more than one subject may appear in a message frame but any given tuple is governed by only a single subject called its dominant subject by convention tuples are interpreted within the context of their dominant subject if present a dominant subject is the subject that is closest to a tuple the nearest subject identifier to the left of a tuple and outside a tuple value is the dominant subject for that tuple where a subject identifier is either implicit or explicit as described in the sections below in message frames without a determinable subject the subject is considered undefined and tuples may be freely interpreted by any application that purports to understand them however there are no semantic guarantees in this case and misinterpretation is possible applications should therefore be robust in handling and filtering unexpected tuple values which is true even in the case where a subject is present while tuples in message frames without a subject are not by definition meant to apply to the message sender in practice they often do we understand that this is a very natural way to interpret subjectless tuples but until further feedback is available from the community we prefer to leave this to applications interpretation implicit subjects subjects are often implicit in a message particularly in messages sent by humans the rule for determining the implicit subject of a message frame is straightforward the nearest implicit subject identifier to the left of a tuple and outside a tuple value is the dominant subject for that tuple where an implicit subject identifier is one of the following a hashtag for example twitterdata a person tag for example therefore in the following example the implicit subject is twitterdata hey i like the latest twitterdata proposal vote 1 implicit subjects make it very easy for humans to embed data in messages without getting bogged down in hard to remember and verbose formalisms furthermore it makes messages with embedded data easier to read for humans and reduces the number of characters in a message frame explicit subjects in some cases it reduces ambiguity or is clearer to explicitly specify a subject usually it will be applications sending messages with embedded data that will want to explicitly specify a subject in order to define a formal communication channel subjects are specified using a tuple of the following form comprising the reserved tuple name s and a uri value called the subject name s subject_name the subject_name may be either a uri as defined in rfc 3986 a twitter person tag or a twitter hashtag we strongly discourage use of other classes of values explicit subjects follow the same dominant subject rule as implicit subjects the nearest explicit subject identifier to the left of a tuple and outside a tuple value is the dominant subject for that tuple applications that wish to partition their message streams from other applications are strongly encouraged to use subject tuples with uri values such as shortened urls for example shortened via bit ly that are unlikely to collide with other casual subject name use such urls also conveniently allow the application to link to itself in the messages it sends by convention messages that start with the reserved subject tuple s may be considered by applications as intended for machine only consumption applications that present twitter feeds to users may elect to filter these messages from presentation it is beyond the scope of this proposal to define conventions for common subjects such as tags as a class of subjects or specific hashtags we will leave this task to the community note the use of subjects potentially reduces the amount of namespacing thus saving valuable characters and allows messages to be filtered more efficiently by message recipients in this sense subjects might be considered a default namespace for all tuples within a message frame though this is not strictly true furthermore subjects may be appealing because they are more unique and terse compared to simple namespaces because the space of subject values is syntactically larger than that of simple namespaces however namespaces and subjects are completely compatible and will generally be used in conjunction with one another other considerations retweeting special consideration is necessary when considering the semantics of data embedded in retweeted messages ideally retweeting should not change the interpretation of retweeted message frames the purpose of retweeting is to propogate a message through a different graph of receivers and so the central question is whether that instance of a message should be considered separate from the original instance and thus whether it should be interpreted independently from the original we will discuss this topic more thoroughly based on use cases for retweeted data in a future version of this proposal the determination of a subject for a message is somewhat more subtle in the case of retweeted messages for messages that either implicitly or explicitly specify a subject retweeting has no effect on the interpretation of the message frame however in the case of subjectless messages the act of retweeting normally inserts a subject with the inclusion of a person tag of the original author as described above a subjectless message frame does not automatically or necessarily apply to the message sender we understand that this is an incongruity that may be addressed by either special casing the processing of retweeted messages or by simply acknowledging that subjectless messages probably apply to message senders and thus the semantics of subject determination are neatly compatible with retweeting we would appreciate community feedback before making a final proposal role and function of hashtags use of hashtags in twitter data is largely unchanged if hashtags appear in tuple values they may be interepreted as normal hashtags in the normal way by humans and user agents and have undefined semantics in terms of this proposal by contrast hashtags may not appear as part of tuple names hashtags will often be use as subjects of messages which is semantically consistent with their intended purpose binary data this proposal is not suited to use cases that require streaming binary data or large amounts of data to be exchanged in particular rate limits of messages on twitter combined with the limited message size make twitter data unsuitable for transferring significant amounts of data at high speeds in general we discourage applications from using binary data with twitter data largely because it harms interoperability and is inconvenient for users using twitter to send human readable messages however binary data is unavoidable in some cases and may be less ugly than the equivalent human readable serialization if binary data is sent it should be base64 encoded data size a single tuple may not span more than one message frame of 140 characters however multiple tuples may be included in a single message frame with the requirement that all included tuples fit collectively within the message frame size limit on twitter 140 characters note we may introduce a means of frame spanning in a later proposal this specification does not specify a way to determine if tuple values are truncated at the end of a message frame because the requirement of terminating the set of tuples with a delimiter is optional applications that receive tuples must be aware of this restriction and ensure that they check for invalid values applications that send tuples should instead attempt to send additional message fram...
|