Loading ...
Sorry, an error occurred while loading the content.

terminology question

Expand Messages
  • Jacob Schroeder
    Hello, I m just trying to understand the terms representation and variant . After reading the spec for a while I suspect that every possible entity from a
    Message 1 of 10 , Apr 5, 1999
    • 0 Attachment
      Hello,

      I'm just trying to understand the terms
      "representation" and "variant".

      After reading the spec for a while I suspect that
      every possible entity from a given resource is a
      "variant" and if content negotiation comes into play
      it is termed "representation" as well.

      If I have a document that changes only over time (eg CGI output), then
      are the different entities termed as different "variants"
      of the same resource as well? Or is it only sensible at a given
      instant? Is there any practical explanation available?

      Any help is appreciated very much.

      Thanks a lot in advance,

      Jacob
    • Scott Lawrence
      ... I would rephrase that to make one distinction - every possible entity returned for a resource is a variant of that resource. Any particular entity
      Message 2 of 10 , Apr 6, 1999
      • 0 Attachment
        > From: Jacob Schroeder [mailto:js@...]
        > Subject: terminology question

        > I'm just trying to understand the terms
        > "representation" and "variant".
        >
        > After reading the spec for a while I suspect that
        > every possible entity from a given resource is a
        > "variant" and if content negotiation comes into play
        > it is termed "representation" as well.

        I would rephrase that to make one distinction - every possible entity
        returned for a resource is a variant of that resource. Any particular
        entity returned for a particular request is a representation of that
        resource.

        > If I have a document that changes only over time (eg CGI output), then
        > are the different entities termed as different "variants"
        > of the same resource as well?

        Only in some theoretical sense, I guess.

        Is there some particular rule that seems ambiguous for your case that hinges
        on the definition of these terms?
      • Roy T. Fielding
        ... Nope, that s backwards. Each possible entity from a resource is a representation of that resource at the time the message originated. A representation
        Message 3 of 10 , Apr 6, 1999
        • 0 Attachment
          >After reading the spec for a while I suspect that
          >every possible entity from a given resource is a
          >"variant" and if content negotiation comes into play
          >it is termed "representation" as well.

          Nope, that's backwards. Each possible entity from a resource is
          a "representation" of that resource at the time the message originated.
          A representation is a variant if, at origination time, the set of
          possible representations has a membership greater than one. It is called
          a variant because the chosen representation varies based on the request
          parameters (content negotiation).

          >If I have a document that changes only over time (eg CGI output), then
          >are the different entities termed as different "variants"
          >of the same resource as well? Or is it only sensible at a given
          >instant? Is there any practical explanation available?

          A resource is a mapping function based on time, so its value set is
          based on the given instant.

          A more extensive explanation is in my web architecture paper (submitted
          to ESEC/FSE99, so I can't give people a copy right now).

          ....Roy
        • mogul@pa.dec.com
          ... A resource is a mapping function based on time, so its value set is based on the given instant. I ve suggested the term instance as a way to describe a
          Message 4 of 10 , Apr 6, 1999
          • 0 Attachment
            "Roy T. Fielding" <fielding@...> writes:

            >If I have a document that changes only over time (eg CGI output), then
            >are the different entities termed as different "variants"
            >of the same resource as well? Or is it only sensible at a given
            >instant? Is there any practical explanation available?

            A resource is a mapping function based on time, so its value set is
            based on the given instant.

            I've suggested the term "instance" as a way to describe a member
            of this instantaneous value set:

            The entity that would be returned in a status-200
            response to a GET request, at the current time, for
            the selected variant of the specified resource, but
            without the application of any content-coding or
            transfer-coding.

            (see http://www.ietf.org/internet-drafts/draft-mogul-http-digest-01.txt)

            Without such a definition, it's fairly difficult to precisely specify
            mechanisms such as delta encoding.

            -Jeff
          • Jacob Schroeder
            Thank you (all) very much for answering so promptly! So it seems at least to be consesus, that the definition in the actual HTTP/1.1 document is obsolete :( ,
            Message 5 of 10 , Apr 8, 1999
            • 0 Attachment
              Thank you (all) very much for answering so promptly!

              So it seems at least to be consesus, that the definition in the actual HTTP/1.1
              document is obsolete :( , but since the terms seem to be used consistently
              there, this does not much harm to the document itself.

              I'm writing on a text covering some parts of HTTP and CN and I don't want
              to use the terms "wrongly".

              On Tue, Apr 06, 1999 at 06:52:48AM -0700, Roy T. Fielding wrote:
              > >After reading the spec for a while I suspect that
              > >every possible entity from a given resource is a
              > >"variant" and if content negotiation comes into play
              > >it is termed "representation" as well.
              >
              > Nope, that's backwards. Each possible entity from a resource is
              > a "representation" of that resource at the time the message originated.
              > A representation is a variant if, at origination time, the set of
              > possible representations has a membership greater than one. It is called
              > a variant because the chosen representation varies based on the request
              > parameters (content negotiation).
              >
              So the different possible entities produced by some CGI script (maybe
              including the remote IP address) would be termed "variant" as well, and this
              could be considered a special case of content negotiation? (I know this sounds
              theoretically, but this kind of questions are the ones that help me most)

              Thanks a lot

              Jacob

              > ...
            • Roy T. Fielding
              ... If they are all for the same resource, yes. A CGI script is a handler for a (possibly infinite) number of resources, so it depends on how the script binds
              Message 6 of 10 , Apr 8, 1999
              • 0 Attachment
                >So the different possible entities produced by some CGI script (maybe
                >including the remote IP address) would be termed "variant" as well, and this
                >could be considered a special case of content negotiation? (I know this sounds
                >theoretically, but this kind of questions are the ones that help me most)

                If they are all for the same resource, yes. A CGI script is a handler
                for a (possibly infinite) number of resources, so it depends on how the
                script binds URI to representations.

                ....Roy
              • Koen Holtman
                ... I don t see how the 1.1 terms would be obsolete. It is true that some concepts needed when one is to extend HTTP are not defined as terms in HTTP/1.1. ...
                Message 7 of 10 , Apr 9, 1999
                • 0 Attachment
                  Jacob Schroeder:
                  >
                  >Thank you (all) very much for answering so promptly!
                  >
                  >So it seems at least to be consesus, that the definition in the actual HTTP/1.1
                  >document is obsolete :( , but since the terms seem to be used consistently
                  >there, this does not much harm to the document itself.

                  I don't see how the 1.1 terms would be obsolete. It is true that some
                  concepts needed when one is to extend HTTP are not defined as terms in
                  HTTP/1.1.

                  >On Tue, Apr 06, 1999 at 06:52:48AM -0700, Roy T. Fielding wrote:
                  >> Nope, that's backwards. Each possible entity from a resource is
                  >> a "representation" of that resource at the time the message originated.

                  The best way to think of an entity, in my opinion, is to consider it
                  to be a _copy_ of a representation which was made at some time. A
                  representation exists internally in a server. An entity exists in a
                  HTTP response (or request).

                  >> A representation is a variant if, at origination time, the set of
                  >> possible representations has a membership greater than one.

                  No, this is not how the 1.1 spec defines it. I would say that in 1.1,
                  'representation' and 'variant' are synonymous terms. A cut-and-paste
                  of the definition:

                  variant
                  A resource may have one, or more than one, representation(s)
                  associated with it at any given instant. Each of these
                  representations is termed a `variant.' Use of the term `variant'
                  does not necessarily imply that the resource is subject to
                  content negotiation.

                  All this means that the term 'variant' is not very useful when
                  defining details of content negotiation. Changing the meaning of
                  'variant' from the 1.1 definition, so that it signifies something more
                  specific than 'representation', is not the way to go. Jeff defined a
                  term 'instance' to mean something more specific in his work, and I
                  defined another term 'variant resource' for transparent content
                  negotiation (rfc2295), also to mean something more specific.

                  [...]

                  >So the different possible entities produced by some CGI script (maybe
                  >including the remote IP address) would be termed "variant" as well, and this
                  >could be considered a special case of content negotiation? (I know this sounds
                  >theoretically, but this kind of questions are the ones that help me most)

                  Due to their usage in various specs and discussions (rather than their
                  definitions in 1.1), the terms 'variant' and 'content negotiation'
                  imply, for most readers, that a choice is being made between a few
                  different representations which are present _at one point in time_.

                  If a CGI script constructs a completely different entity from scratch
                  for every remote IP address, it is better to call this 'dynamic
                  content' or a 'dynamic resource', and not talk about content
                  negotiation. One would say that the script computes 'representations'
                  or 'entities', not 'variants'.

                  While one could theoretically say that dynamic content is a special
                  case of, or the same as, content negotiation, doing so in practice
                  would dilute the term content negotiation, and would be more confusing
                  than helpful.

                  >
                  >Thanks a lot
                  >
                  >Jacob

                  Koen.
                • Roy T. Fielding
                  ... The representation is the information you get when the entity is extracted from the HTTP message -- it is the data transferred, not the internal machine
                  Message 8 of 10 , Apr 10, 1999
                  • 0 Attachment
                    >>> Nope, that's backwards. Each possible entity from a resource is
                    >>> a "representation" of that resource at the time the message originated.
                    >
                    >The best way to think of an entity, in my opinion, is to consider it
                    >to be a _copy_ of a representation which was made at some time. A
                    >representation exists internally in a server. An entity exists in a
                    >HTTP response (or request).

                    The representation is the information you get when the entity is
                    extracted from the HTTP message -- it is the data transferred, not
                    the internal machine representation on the server.

                    >>> A representation is a variant if, at origination time, the set of
                    >>> possible representations has a membership greater than one.
                    >
                    >No, this is not how the 1.1 spec defines it. I would say that in 1.1,
                    >'representation' and 'variant' are synonymous terms. A cut-and-paste
                    >of the definition:
                    >
                    > variant
                    > A resource may have one, or more than one, representation(s)
                    > associated with it at any given instant. Each of these
                    > representations is termed a `variant.' Use of the term `variant'
                    > does not necessarily imply that the resource is subject to
                    > content negotiation.
                    >
                    >All this means that the term 'variant' is not very useful when
                    >defining details of content negotiation.

                    No, it means the definition in the spec is wrong, as I said a couple
                    hundred times in our teleconferences. You cannot make a wrong thing right
                    just because I was outvoted. These are terms defined by the architectural
                    model of the Web, not defined by HTTP.

                    ....Roy
                  • Koen Holtman
                    ... [Roy:] ... [Koen:] ... [Roy:] ... Roy, I was not aware that you were somehow advocating a right , but different definition of the term variant all along.
                    Message 9 of 10 , Apr 11, 1999
                    • 0 Attachment
                      Roy T. Fielding:
                      >

                      [Roy:]
                      >>>> A representation is a variant if, at origination time, the set of
                      >>>> possible representations has a membership greater than one.
                      >>
                      [Koen:]
                      >>No, this is not how the 1.1 spec defines it. I would say that in 1.1,
                      >>'representation' and 'variant' are synonymous terms. A cut-and-paste
                      >>of the definition:
                      >>
                      >> variant
                      >> A resource may have one, or more than one, representation(s)
                      >> associated with it at any given instant. Each of these
                      >> representations is termed a `variant.' Use of the term `variant'
                      >> does not necessarily imply that the resource is subject to
                      >> content negotiation.
                      >>
                      >>All this means that the term 'variant' is not very useful when
                      >>defining details of content negotiation.

                      [Roy:]
                      >No, it means the definition in the spec is wrong, as I said a couple
                      >hundred times in our teleconferences. You cannot make a wrong thing right
                      >just because I was outvoted. These are terms defined by the architectural
                      >model of the Web, not defined by HTTP.

                      Roy,

                      I was not aware that you were somehow advocating a 'right', but
                      different definition of the term variant all along. I don't recall
                      any big fuss about the term any teleconference, but then again I was
                      not in all teleconferences.

                      It is generally not a good idea to redefine terms, even if the
                      original definition is somehow wrong. Having two incompatible
                      definitions of 'variant' around can only lead to confusion. If you
                      have some interesting concept you want to define a term for, there are
                      plenty of other, uncontaminated, words you could pick.

                      >....Roy

                      Koen.
                    • Roy T. Fielding
                      ... I agree. From the Merriam Webster online dictionary: variant noun Date: 1848 ... usually slight differences: as a : one that exhibits variation from a
                      Message 10 of 10 , Apr 11, 1999
                      • 0 Attachment
                        >It is generally not a good idea to redefine terms, even if the
                        >original definition is somehow wrong. Having two incompatible
                        >definitions of 'variant' around can only lead to confusion. If you
                        >have some interesting concept you want to define a term for, there are
                        >plenty of other, uncontaminated, words you could pick.

                        I agree. From the Merriam Webster online dictionary:

                        variant

                        noun
                        Date: 1848

                        : one of two or more persons or things exhibiting
                        usually slight differences: as a : one that exhibits
                        variation from a type or norm b : one of two or
                        more different spellings (as labor and labour) or
                        pronunciations (as of economics \ek-, Ek-\) of the
                        same word c : one of two or more words (as
                        geographic and geographical) or word elements
                        (as mon- and mono-) of essentially the same
                        meaning differing only in the presence or absence
                        of an affix

                        It makes absolutely no sense whasoever to use the term variant to
                        describe a singleton representation. The HTTP spec does so because
                        somebody wanted a shortcut and didn't like the word "representation".
                        The HTTP spec only needs to be self-consistent, so this is not a
                        technical error -- it is just confusing. I refuse to allow that confusion
                        to propagate into anything else I write about the Web, including e-mail.

                        ....Roy
                      Your message has been successfully submitted and would be delivered to recipients shortly.