Using quads instead of triples, to allow the relations/arcs/edges themselves to have attributes?

I had an idea, which I found wasn't new. My idea is described more or less in the following article:

Basically, representing semantic data with triples (be they RDF triples or whatever) allows only nodes to to posses attributes. ("Bob", "has a", "Car"); you know how it goes. The problem is there's no place to store information about the triple. For example, consider the questions: When did we first learn that Bob had a car? Who told us Bob had a car?

As I understand, with Named Graphs you label several triples with the same name, and then you can refer to these triples collectively. Is that right? What [then] if I want more fine grained identifiers for those triples? For example, say an organization release some semantic data (triples); lets say a small graph of three triples, t1, t2, and t3. Those three triples are all "named" with the same URI. What if later additional information is available that says t1, and t2 were created by John, and t3 was created by Mary? How can I assign this new information to the individual triples, when they're all grouped together with a single "named graph" identifier? (Maybe I've drifted to far here; maybe I don't really understand what named graphs are?)

Ultimately, my question is what standard methods are there for giving triples (or edges, or arcs, or whatever you call them) themselves attributes and data? Is there any standards that would facilitate the "named graph" scenario I described above?

Well, one solution is to just use several named graphs. There is nothing to stop you adding a triple to more than one named graph. The named graph mechanism is agnostic to the semantics of the named graph itself, it's by and large just a group tagging mechanism. So you can have:

 :namedGraph1 { t1, t2, t3 }

:namedGraph2 { t1, t2 }
:namedGraph3 { t3 }

:namedGraph2 rdfs:label "Triples created by John" .
:namedGraph3 rdfs:label "Triples created by Mary" .

Just to mention (while supporting Jeen's answer) that reification ( allows one to give identifiers to statements. There are, however, problems: this means a blow up of four times the number of statements (since the triple still needs to be directly asserted - its reified form is not subject to the semantics), and moreover people just plain do not like reification.

One solution is to use N-Quads. N-Quads is a very simple syntax whre you write things like this:

subject  predicate  object  context .

where subject predicate object forms a normal RDF triple, and context is either a URI, a bnode or a litteral. This element is called context, but you can just see it as an identifier for the triple. Moreover, this fourth element is optional, so you can use normal RDF triples as well.

But just like the Named graph solution, there is no clealy established semantics for this, so one could write things like:

:me  rdf:type  foaf:Person  :me .
:me  rdfs:label  "This is a triple" .

or, with named graphs:

:me { :me  rdf:type  foaf:Person }
:me  rdfs:label  "This is a triple" .

There is no agreement on what this should mean.

There is a - patented - very interesting approach for structuring information thanks to quadruplet (named HIPlet). See :