@93a8f0c3 Yep. And different RIRs may have different requirements around what data is present in what format. So yes, my gripe is not with RDAP the protocol, but with the lack of a forced structure of the data the protocol makes available, I guess.
@79ea8cd4 Just for fun, here is a #jq script to extract the registrant (but, as you noticed, the biggest problem is in the lack of consistency of data):
.entities [] | select(.roles[] | select(. == "registrant")) | .vcardArray[1] | map(select(.[0] == "fn"))[0][3]
Use it like:
curl -s https://rdap.nic.fr/domain/egis.fr | jq -f rdap.jq