Wanna know the specification which defines a certain target triple string

Hello List,

I've got a basic question about the target triple.

"The TRIPLE record (code 2) contains a variable number of values
representing the bytes of the target triple specification string."

The statement above is written on BitCodeFormat.html.

And from this statement, I became to wonder what specification defines
such and such target triple strings.
I believe several of the triple strings are
- arm-linux-gnueabi
- i386-linux-gnu

I know that this triples identify each toolchains.
But In my knowledge the triples function as a directory name for the
library and header files for each toolchains. I wonder what other
property each triples have.... And what actually they mean.

Thank you as always.