How to get "from" address in Locked Event in EIP 5088?

I have checked EIP 5058 and found it's good idea.

But when I am trying to implement I found some problems.

function lock(uint256 tokenId, uint256 expired) external; event Locked(address indexed operator, address indexed from, uint256 indexed tokenId, uint256 expired);

The lock function will emit the event Locked. And Locked function has parameter as an address of "from", which is not exist in lock function. How can I get the address of "from"? (I am thinking "from" is the address of marketplace that lock that NFT.)

Either it would be the msg.sender (although i think that is the operator) or the owner of the nft which you can receive from the ownerOf(uint256 tokenId) function.

Thanks for your reply.
Reading your post, I got one quetion.
When I implement EIP5058, is it for NFT itself?

I mean, do I need to implement lockable NFT implementing EIP5058 and EIP?
Or EIP 5058 is just for locking contract that lock/unlock typical ERC721?

EIP-5058 is designed to self lock nfts instead of delegating it to another contract. So it would be part of the nft itself