hi Yudong,
The use of the "profile" attribute as a means to convey a Profile URI has been formally defined for certain media types and not others. For example:
For other media types, such as application/xml, the use of the "profile" attribute has not been formally defined. However, RFC8288 that specifies Web Linking, which is the basis for Signposting, allows for the definition of extension attributes, see
https://datatracker.ietf.org/doc/html/rfc8288#section-3.4.2. As such, Signposting introduces the convention to also use the "profile" attribute for media types for which it has not formally been defined.
Use of the "profile" attribute is not mandatory. But in many cases, it can be very helpful. Media types such as "application/ld+json" and "application/xml" come in many flavours and use of the "profile" attribute by a server can help the client pick the flavour it prefers out of various links with the same media type. For example, various links with the "application/xml" media type but one pointing at Dublin Core, the other at MODS, etc, etc. A nice is example is at
https://signposting.org/adopters/#biblio. Note that the example shows an abbreviated response. If you check out the live response many more links are shown, including several more using the "profile" attribute.
The value for a "profile" attribute must be a Profile URI. Obviously, things become meaningful when a single Profile URI is used to refer to a specific flavour of a media type. Profile URIs can be agreed upon within specific communities. But they can also be registered in a central IANA registry at
https://www.iana.org/assignments/profile-uris/profile-uris.xhtml. Although the registry doesn't seem to be very successful (yet), it has two entries from the research community.
Greetings
Herbert