So the library Oraclize if I understand correctly, allows you on solidity to get a result from a URL inside a callback.
But I also read that you can't communicate with the external world in Ethereum (because it's non-deterministic), so I don't understand how Oraclize manages to call URLs although Oraclize is itself a smart-contract.