verify_sdp_semantic_iris
verify_sdp_semantic_iris(
path,
report_path=None,
*,
requester=_request,
sleep_fn=time.sleep,
)Dereference exact selected HTTP semantic IRIs and persist every result.
GET follows redirects and reads response headers without downloading the final or redirect body. The default transport has a 30-second worker deadline, including startup, DNS, connection and redirects; an expired worker is killed and reaped. Injected requesters keep their own execution behavior. The default backend requires metasalmonpy[verify]; package imports and injected requesters remain available with core pandas + Requests alone. Only HTTP 408, 429, 5xx, or classified transient transport failures retry, at most three times, after delays of 0.1 and 0.25 seconds. Candidate suggestions, arbitrary data URLs and non-HTTP identifiers are excluded; manifest-bound SSSOM semantic references are included after validation. No model provider is called.
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| path | str or pathlib.Path | Existing Salmon Data Package directory. | required |
| report_path | str or pathlib.Path | Defaults to reproducibility/provenance/semantic-iri-dereference.csv inside the package. The default refuses symlinked output paths. |
None |
| requester | callable | Offline test hook receiving one exact IRI and returning a mapping with status and final_url; a status-less error may use error. |
_request |
| sleep_fn | callable | Offline test hook receiving the retry delay in seconds. | time.sleep |
Returns
| Name | Type | Description |
|---|---|---|
| pandas.DataFrame | UTF-8/C-sorted rows with iri, status, final_url, error and attempts. Stable CSV bytes contain no timestamps. |
Raises
| Name | Type | Description |
|---|---|---|
| ValueError | Invalid metadata, no selected HTTP IRI, or failed dereferences. For dereference failures, the complete report is atomically written before an aggregate exception names every failed IRI and final status. | |
| ImportError | The default requester was selected without the optional HTTPX backend. No request worker starts and an existing report is left unchanged. |
Notes
HTTP success proves resolution only. A fragment’s HTTP 200 does not prove RDF term presence or semantic suitability. An aborted atomic write keeps the prior report; atomic replacement does not promise crash durability. The default HTTPX/HTTPcore transport consumes HTTP 103 Early Hints before returning the complete final response headers. Redirects use the public manual flow so neither final nor redirect bodies need to arrive. Client cookies, origin-aware auth and proxy environment settings are preserved. Captured final URLs omit embedded userinfo before returning or persistence; the selected iri column and input metadata remain exact.