SchemeDirectedDocumentLoader¶
Document loader that dispatches to per-scheme loaders.
Constructed as keyword arguments mapping each URL scheme name to a
DocumentLoader instance. Non-identifier scheme names can be passed via
SchemeDirectedDocumentLoader(**{'view-source': loader}).
An unregistered scheme raises JsonLdError with code
loading document failed and details naming the registered schemes.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
loaders
|
DocumentLoader
|
keyword mapping of scheme name to document loader. |
{}
|
Compose per-scheme loaders so a local document can resolve a remote @context:
Example scheme_directed.py
import json
from pathlib import Path
from pyld import (
SchemeDirectedDocumentLoader,
FileDocumentLoader,
FrozenDocumentLoader,
jsonld,
)
person = (
Path(__file__).resolve().parent.parent / 'data' / 'person_remote_context.jsonld'
)
http = FrozenDocumentLoader(
documents={
'https://example.com/context': {
'@context': {'name': 'http://schema.org/name'},
},
}
)
loader = SchemeDirectedDocumentLoader(
file=FileDocumentLoader(),
http=http,
https=http,
)
result = jsonld.expand(
person.as_uri(),
options={'documentLoader': loader},
)
print(json.dumps(result, indent=2))
Source person_remote_context.jsonld