what you are seeing is direct instantiation.
First of all, entity is used to declare an entity, probably what you've seen a million times in all the books:
entity my_ent is...
direct instantiation allows you to instantiate an entity without a component declaration via this method:
ent_inst : entity some_library.some_entity
port map (
etc.
the local libary is work, so in your case you're seeing someone instantiate an entity from the same library this entity sits in.
The advantage of direct instantiation is that you dont need to maintain entity declarations and component declarations (basically the same thing) in two different places. Also, the code compiler will check the entity, rather than the component, so errors pop up immediatly rather than part way through synthesis.
This feature was brought into VHDL 1993, and as we all know there are many many many examples and VHDL engineers that even now refuse to acknowldge 20 years of VHDL advancement, and stick with legacy libraries and code ideas, mainly because its only in the last 10 years Vendors have pulled their finger out and started to embrace all the good ideas that came into the language. At least we're starting to see VHDL 2008 adoption now (over 2 years since the standard!)