English Language & Usage Stack Exchange is a question and answer site for linguists, etymologists, and serious English language enthusiasts. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Is there an abstraction for the following three words?

  • Order confirmation
  • Quotation
  • Invoice

I want to create a base class for them but I can't find a word that describes all three.

share|improve this question
Is this English Language or Programming? Just call it a TransactionTracker. – FumbleFingers Apr 28 '11 at 10:54
@FumbleFingers English language. Just thought I'd be nice if I told what I'm going to use the synonym for. – Kevin Apr 28 '11 at 10:58
With respect, you don't actually want a synonym, you want an abstraction that encompasses the general case. You say as much yourself when you mention "base class". – Ed Guiness Apr 28 '11 at 12:46
@Ed Guiness: Thanks for the comment, I've updated my question. – Kevin Apr 28 '11 at 12:55
The technical term is hypernym. I have added that tag. – RegDwigнt Apr 28 '11 at 12:57
up vote 4 down vote accepted

With respect, you don't actually want a synonym, you want an abstraction that encompasses the general case. You say as much yourself when you talk about a "base class".

So why not look at what is common in these three things?

Each of them is a communication of information about an order, between two or more parties. Each of them will have a date, a sender, an order reference, and one or more recipients.

Sounds awfully like we are talking about a letter. Or more generally, a communication. Or maybe correspondence.

As a programmer, I'd probably go for something like order-correspondence. Then, when I realise that I also need a class for receipt I've got a ready-made base class.

On the other hand, given such a problem, I'd probably go back to the design board and have a good think about what data I have to deal with, and for what purposes, and hope that having a serious think about the design would lead me naturally to the identification of good entity names.

In other words, if the names aren't obvious, the design probably needs more thought.

share|improve this answer
You're implying that a good programming base should be clearly identifiable using readily-available words from standard English, but that's not at all the case. OP's class is almost certainly what he needs, and I bet he pretty much knows what kind of functionality & attributes it will have. He's just getting hung up on the name. – FumbleFingers Apr 28 '11 at 17:26
@FumbleFingers I will admit that some constructs, the minority, have no convenient English names, but I also submit that these few exceptions prove the general rule. Even a random collection of properties can be called a "bag" etc. We may have to agree to differ on this one. – Ed Guiness Apr 29 '11 at 7:38
As you will. Personally I think not only does software not automatically map to the real world - it often conflicts with our default ways of thinking. Which is one of the reasons why AI and computerised natural language processing haven't exactly got far despite all the efforts in recent years. – FumbleFingers Apr 29 '11 at 16:45

Though we can see relations between these three, I doubt you'll find a satisfying synonym to encompass the meaning of all since, similarities aside, they actually do stand for quite different things.

The closest I could posit might be receipt, since each of these have the same property of being received by the person going through the order process.

So, in terms of programming a base class, this could make sense, but I guess we might need more information and a different location to discuss this aspect in much more detail.

share|improve this answer
I actually liked the word you gave in the comment above. 'Transaction', that somewhat describes it. – Kevin Apr 28 '11 at 11:29
@Kevin: That wasn't me, but I can see how you might adopt the word in this context, but it does differ slightly from what you say you want, as nothing is really being exchanged in all instances. Though in terms of conducting proceedings, you could get away with it. – Grant Thomas Apr 28 '11 at 11:32
Sorry for the confusion, can't see how I missed that. Thanks for your comment and answer. – Kevin Apr 28 '11 at 11:38
Related: Noun for “receive”? – Callithumpian Apr 28 '11 at 13:42

How about paper trail?

the records left by a person or organization in the course of activities.


share|improve this answer
  • statement sounds to me like the common concept to these, and it has a particular usage in the domain you seem to be covering (business accounting?)

  • a good way to look for more general superclass names (in object oriented programming) which is a synonym of hypernym which RegDwight mentioned, is to look in a thesaurus (online or off). Even though a thesaurus is nominally for synonyms (nearby words on roughly the same semantic plane) they tend to give some generalizing terms (hypernyms) and more specific terms (hyponyms), too.

  • another good source for such vocabulary is to ask the domain experts. You're probably developing for someone or a group that already has a lot of technical vocabulary about the domain, they will be more likely to have the word that you're looking for. Ask them.

share|improve this answer

Your program should obviously match the business model of the process it's supposed to facilitate / record. So call the base class SALE.

It's still 'potentially' a sale even at the Quotation stage, and the business itself only cares about that stage if it leads to an actual sale anyway.

share|improve this answer

How about procurement phase or procurement paperwork?

share|improve this answer
This is really a comment, not an answer to the question. Please use "add comment" to leave feedback for the author. – tchrist Aug 18 '12 at 12:37

Though answered already, some may find that a relevant hypernym for their case is:

Memoranda / Memorandum

the singular and plural forms.

share|improve this answer

They all sound like documents to me. So, I would use document.

share|improve this answer
By that logic, "document" would be the base class for just about everything. I think Borland C++ Builder had "Object" as its lowest-level base class, but such things are really a bit too general for app-level programming. – FumbleFingers May 1 '11 at 2:43
That is true, but given that we don't know the biz domain, that was my best guess since those usually get genned as printable docs. OrderCorrespondence, maybe...but now we're off EL&U and over to SO. There's always "Stuff" :) – JeffSahol May 1 '11 at 11:30
I gotta be honest, I have in the past created classes called QWERTY, MYCLASS, ZZZ, etc. And eventually renamed them to something more meaningful after writing enough calling code to find out what they actually do. – FumbleFingers May 1 '11 at 23:58

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.