diff --git a/xproc/src/main/xml/specification.xml b/xproc/src/main/xml/specification.xml
index 7fdf7dd2d..d01c3f9d8 100644
--- a/xproc/src/main/xml/specification.xml
+++ b/xproc/src/main/xml/specification.xml
@@ -2586,6 +2586,49 @@ how to load function libraries of that type, this function returns
normally during static analysis.
+
+Lookup URI
+
+The p:lookup-uri function
+attempts to determine what URI would be dereferenced if an attempt was made
+to retrieve a resource.
+
+
+
+xs:anyURI
+p:lookup-uri
+xs:anyURIhref
+
+
+Many systems employ some form of URI resolver. A URI resolver allows one
+resource to be substituted for another, perhaps loading
+file:/system/xml/doc.rng when
+https://example.com/schemas/doc.rng is requested. It is
+implementation-defined which kinds of URI resolvers a
+processor supports, if any, and how they are configured.
+
+If the processor has a URI resolver, the p:lookup-uri
+function allows the pipeline to “peek” at what URI will be used in the request
+if an attempt is made to retrieve $href
. If the URI resolver
+maps A.xml
to B.xml
, then
+p:lookup-uri('A.xml')
should return B.xml
.
+
+If the processor can’t determine what the mapping is (because the resolver
+being used doesn’t provide an API to do so, for example), or doesn’t support a resolver,
+the function
+should return the original URI.
+
+The implementation must not attempt to dereference the
+resource in order to identify the mapping. Consequently, this function cannot
+determine if one or more server side redirects may occur and it has no
+insight into what caching proxies may be involved if the request accesses the
+network.
+
+The p:lookup-uri function behaves
+normally during static analysis but note that it is possible that a processor
+might use different resolvers at compile-time and run-time.
+
+
Other XPath Extension Functions
It is implementation-defined if the processor supports