When studying OOP, mainly java, these two concepts are always linked, but I see no real relationship or similarity between them. Correct my if I'm wrong but:
Abstraction is to identify key parts of an object and ignore everything else, used in interfaces. Encapsulation just describes how data is protected and hided, it affects permissions.
I don't see a real relation between the two, is there one? Also a simple description for each if mine were bad in any way would help.
Those two concepts serve the same goal, in a way, even that Abstraction is more about the design, and encapsulation is more about the implementation
(there are no fields and data when discussing Abstraction).
This common goal is to give the user a simple and well defined interface to work with, so he doesn't need to bother about the details, but only about what it does and how he connects with it.
As an example, if you look at on/off switch, Abstraction will define it's two conditions, and the way to switch between them, and encapsulation will choose to hide the wires and stuff inside the switch, and will let you see the familiar switch we all know. The common is that it's usage is simple and standard, thanks to these two concepts.
There is more to say about each of these concepts, but this is what I can tell you about the relation between them.