Skip to content

Signposting#

B2SHARE implements Signposting Level 1, exposing scholarly web navigation links in HTTP response headers. Any HTTP client — harvester, crawler, or browser extension — can discover metadata and related resources for a record without parsing HTML.

Information on how to enable it is also available in invenio-rdm documentation.


What it does#

Every HTTP GET or HEAD request to a record landing page (/records/<id>) returns a Link header. The header contains typed links that point to:

Relationship What it points to
cite-as Canonical PID (DOI) for the record
describedby Metadata representations in multiple formats
item Individual files attached to the record
license License URL
type Schema.org type(s) for the resource
linkset Machine-readable link set document (application/linkset+json)

Example#

curl -sSI https://b2share.eudat.eu/records/0qapg-nx505 \
  | grep -i '^link:'
link:
  <https://doi.org/10.23728/b2share.0qapg-nx505> ; rel="cite-as" ,
  <https://b2share.eudat.eu/api/records/0qapg-nx505> ; rel="describedby" ; type="application/dcat+xml" ,
  <https://b2share.eudat.eu/api/records/0qapg-nx505> ; rel="describedby" ; type="application/json" ,
  <https://b2share.eudat.eu/api/records/0qapg-nx505> ; rel="describedby" ; type="application/ld+json" ,
  <https://b2share.eudat.eu/api/records/0qapg-nx505> ; rel="describedby" ; type="application/marcxml+xml" ,
  <https://b2share.eudat.eu/api/records/0qapg-nx505> ; rel="describedby" ; type="application/vnd.datacite.datacite+json" ,
  <https://b2share.eudat.eu/api/records/0qapg-nx505> ; rel="describedby" ; type="application/vnd.datacite.datacite+xml" ,
  <https://b2share.eudat.eu/api/records/0qapg-nx505> ; rel="describedby" ; type="application/vnd.inveniordm.v1+json" ,
  <https://b2share.eudat.eu/api/records/0qapg-nx505> ; rel="describedby" ; type="application/x-bibtex" ,
  <https://b2share.eudat.eu/api/records/0qapg-nx505> ; rel="describedby" ; type="application/x-dc+xml" ,
  ... (further formats) ,
  <https://b2share.eudat.eu/records/0qapg-nx505/files/README.md> ; rel="item" ; type="text/markdown" ,
  <https://b2share.eudat.eu/records/0qapg-nx505/files/judges.json> ; rel="item" ; type="application/json" ,
  <https://creativecommons.org/licenses/by/4.0/> ; rel="license" ,
  <https://schema.org/Dataset> ; rel="type" ,
  <https://b2share.eudat.eu/api/records/0qapg-nx505> ; rel="linkset" ; type="application/linkset+json"

Available metadata formats (describedby)#

MIME type Format
application/dcat+xml DCAT
application/json Generic JSON
application/ld+json JSON-LD
application/ld+json + DataPackage profile Frictionless Data Package
application/marcxml+xml MARC XML
application/vnd.citationstyles.csl+json CSL-JSON
application/vnd.datacite.datacite+json DataCite JSON
application/vnd.datacite.datacite+xml DataCite XML
application/vnd.geo+json GeoJSON
application/vnd.inveniordm.v1+json InvenioRDM native JSON
application/vnd.inveniordm.v1.full+csv InvenioRDM full CSV
application/vnd.inveniordm.v1.simple+csv InvenioRDM simple CSV
application/x-bibtex BibTeX
application/x-dc+xml Dublin Core XML
text/x-bibliography Formatted bibliography (APA)

Fetch any format directly:

curl -s -H "Accept: application/vnd.datacite.datacite+json" \
  https://b2share.eudat.eu/api/records/0qapg-nx505

The linkset relationship points to a structured document containing all the same links in JSON:

curl -s -H "Accept: application/linkset+json" \
  https://b2share.eudat.eu/api/records/0qapg-nx505

Further reading#