Notation for field access in Algorithm
Not everyone follows the same conventions, but I'll describe the ones I see most commonly.  Your experience may vary.


If $a$ is an array, $a[i]$ is typically used, but not $a_i$.
If $(a_1,\dots,a_n)$ is a sequence, $a_i$ is typically used, but not $a[i]$.  Usually sequences are not updateable.
If $a$ is a string, you might see either $a[i]$ or $a_i$; both are common, in my experience.
I have most commonly seen $s.p$ used for property access.  Sometimes I have seen people use $p(s)$ used.


Different sources may follow different conventions.  There is no one right answer.  A good approach is to find a textbook that you like (e.g., CLRS), and then follow the same conventions they use.  Odds are that they have put some thought into choosing consistent and understandable conventions, so they probably have chosen something reasonable.