Function registry:
Recommendation overview
Recommendation dated 2009-06-22
This document:
	Function-Registry-Overview-REC-2009-06-22.rtf
is non-normative.
Editors
Geoff Shuetrim	geoff@galexy.net	Galexy Pty. Limited	
Abstract
This document provides and overview of the function registry Recommendation (REC) for the function registry.  It does not address the specifications of the syntax used to express the function registry.  They have been published as a separate Recommendation to facilitate comprehension of the function registry.  This overview explains the materials that constitute the function registry REC and it addresses the specific requirements that need to be met by proposed recommendations.
Status
Circulation of this Recommendation is unrestricted.  Recipients are invited to submit comments to formula-feedback@xbrl.org, and to submit notification of any relevant patent rights of which they are aware and to provide supporting documentation.

Table of Contents
1Introduction	3
2Requirements	3
3Specifications	3
4Supporting XML resources	3
5Schemas	3
6Function registry	4
7Changes since the previous PWD	5
A.Intellectual Property Status (non-normative)	5
B.Document History (non-normative)	5
C.Approval process (non-normative)	5

1	Introduction
This document provides an overview of the Release (REC).  It describes the various materials included in the REC by the Formula Working Group (FWG).  Along with the function registry itself and related documents provided with this candidate recommendation, this overview addresses the specific requirements that need to be met by candidate recommendations.
This REC covers the functions contained in the function registry, not the specifications of the syntax used to express the function registry.  Those specifications are not intended to be recommendations but are published as Public Working Drafts to ensure access to the information necessary to correctly interpret and work with the function registry.
Each function definition in the registry has its own conformance suite.  These conformance suites form part of the registry itself.
This REC includes:
•	This overview;
•	The registry of function definitions, a single XML file; and
•	A directory containing each function definition file (they constitute entries in the function registry), along with the conformance suite summary file for that function definition and the set of files comprising the conformance suite itself for that function definition.
The function registry document provides links to each function definition.  Each function definition, in turn, provides links to the relevant conformance suite summary.  Each conformance suite summary provides links to the files that constitute the relevant conformance suite.  This facilitates analysis of the function registry materials using an XSLT 1.0 enabled  web browser or other software.
2	Relationship to existing international standards and related work outside of XBRL International
The functions in the function registry simplify the XPath expressions that would otherwise be required to express XBRL formulae and business rules.
They fall into three categories:
●	Those simplifying access to information in XBRL instances (mostly derived from a 2007 XBRL Function Specification Public Working Draft [XBRLFUNC]);
●	Those providing access to information contained in the Discoverable Taxonomy Set supporting an XBRL instance (largely supporting and simplifying the design of filters such as the concept filters and dimension filters); and
●	Those providing convenience for operations on values with data types such as the one allowing the union of date and dateTime to be used to represent moments in time.
This approach, of extending the standard Xquery 1.0 and XPath 2.0 functions with extension functions that encapsulate otherwise complicated XPath and Xquery logic, has been anticipated by the Xquery 1.0 and XPath 2.0 Function specification [XFUNC] which includes an appendix of suggested extension functions defined in an example function namespace.
This approach of adding to the expressive power of XPath 2.0 [XPATH2] and XQuery 1.0 [XQUERY] has been adopted by many Xquery/XPath 2.0 implementations including (only listing a selection of open source implementations):
●	The Saxon XSLT and XQuery processor (http://sourceforge.net/projects/saxon)
●	The Oracle Berkeley XML database (http://www.oracle.com/database/berkeley-db/xml/index.html) and
●	The eXist XML database (http://exist-db.org/)
Moreover, many XQuery/XSLT processors allow users to extend the set of custom functions, beyond the set provided as a part of the base application.  The XBRL function registry defines a set of extension functions that users of XBRL will find useful to have available when working with XQuery and XSLT processors.
3	Dependencies with other working groups
There are no changes in the dependencies of these specifications on the product of other working groups since the previous public release of the function registry.
The changes in the function registry support the changes in the formula and related specifications and, to the extend that those specifications are depended upon by other working group products (such as the internal working draft of the rendering linkbase) the function registry changes support those other working group products.
Care has been taken not to eliminate generally useful functions from the function registry in situations where the direct dependency on those functions by the formula and related specifications has been eliminated in response to feedback on the previous public release.
While the functions in the function registry have been developed using the formula and related specifications to motivate them, they are more broadly useful to those working with XBRL in other ways.  Moreover, the extensibility of the function registry means that as XBRL technical and best practices working groups identify logic that will be useful to encapsulate the function registry will be possible to extend with the addition of new function definitions.
4	Formal objections
No objections to the function registry (formal or otherwise) have been registered with the FWG.
5	Requirements
The function registry is not accompanied by a formal requirements document.  This is because it is expected to be expanded over time as new function requirements are identified.  The functions that are currently in the function registry are motivated either by the need to simplify the implied XPath expressions used in the formula and related specifications or by the need to simplify the XPath expressions that users of the formula specifications will find it necessary to include in their own formulae.  In such cases, the motivation for the functions is contained by the specification(s) that use the functions.
As necessary, the function definitions themselves will include explanations of the requirements motivating the functions.  In reviewing the function registry REC, if there are areas where function requirements require additional explanation please raise the need in your feedback on the REC.
6	Function registry
The XBRL function registry REC is published at:
http://www.xbrl.org/functionregistry/functionregistry.xml
It is supported by style-sheets that enable the example registry and the specific function definitions and their conformance suite tests to be explored in a web browser.
7	
Changes since the previous public release
There have been a number of changes since the previous public release of the function registry.  These are motivated by the feedback on the formula and related specifications.  No specific feedback was received by the FWG on the functions in the function registry, in isolation from those specifications.
The majority of the changes are responses to modifications to the explicit and typed dimension filters, where dimension aspects no longer distinguish between those expressed in the segment and those expressed in the scenario.
In a small number of cases, the error codes required to be thrown when executing functions and receiving incorrect function inputs have been simplified on the basis of developments in the Base Specification Working Group in relationship to the XBRL Dimensions Specification [XDT].
A number of new functions have been added to the function registry to encapsulate common logic required in the XPath expressions used in formulae by formula authors.  These have been motivated by experience with production usage of XBRL formulae.
The conformance suites for the function definitions have been extended and refined on the basis of implementation work by vendors.
Several new functions that are not Proposed Recommendation, but Internal Working Drafts (IWD) were added.  The nature of the function registry is that the index file denotes the status of individual functions, which is where REC and IWD statuses are noted.
A.	
References

[XBRLFUNC]	Functions 1.0
XBRL International Public Working Draft 3 August 2007
http://www.xbrl.org/Specification/XF-PWD-2006-12-07.rtf	
[XDT]	XBRL Dimensions 1.0
Recommendation, dated 2006-09-18
http://www.xbrl.org/Specification/XDT-REC-2006-09-18.rtf	
[XFUNC]	XQuery 1.0 and XPath 2.0 Functions and Operators
W3C Recommendation 23 January 2007
http://www.w3.org/TR/xpath-functions/	
[XQUERY]	XQuery 1.0: An XML Query Language
W3C Recommendation 23 January 2007
http://www.w3.org/TR/xquery/	
[XPATH1]	XML Path Language (XPath) Version 1.0
W3C Recommendation 16 November 1999
http://www.w3.org/TR/xpath	
[XPATH2]	XML Path Language (XPath) 2.0
W3C Recommendation 23 January 2007
http://www.w3.org/TR/xpath20/	
[XBRL]	Extensible Business Reporting Language (XBRL) 2.1 Recommendation with corrected errata to 2006-12-18.
http://www.xbrl.org/Specification/XBRL-RECOMMENDATION-2003-12-31+Corrected-Errata-2008-07-02.rtf	

B.	
Intellectual Property Status (non-normative)
This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works.  However, this document itself may not be modified in any way, such as by removing the copyright notice or references to XBRL International or XBRL organizations, except as required to translate it into languages other than English.  Members of XBRL International agree to grant certain licenses under the XBRL International Intellectual Property Policy (www.xbrl.org/legal).
This document and the information contained herein is provided on an "AS IS" basis and XBRL INTERNATIONAL DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
The attention of users of this document is directed to the possibility that compliance with or adoption of XBRL International specifications may require use of an invention covered by patent rights. XBRL International shall not be responsible for identifying patents for which a license may be required by any XBRL International specification, or for conducting legal inquiries into the legal validity or scope of those patents that are brought to its attention. XBRL International specifications are prospective and advisory only. Prospective users are responsible for protecting themselves against liability for infringement of patents.  XBRL International takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights.  Members of XBRL International agree to grant certain licenses under the XBRL International Intellectual Property Policy (www.xbrl.org/legal).
C.	
Document History (non-normative)
Date	Editor	Summary	
2008-02-14	Geoff Shuetrim	First draft.	
2008-04-08	Geoff Shuetrim	Updated for second PWD.	
2008-11-12	Geoff Shuetrim	Updated for Candidate Release	
2009-03-31	Herm Fischer	Updated for Proposed Release	

D.	
Approval process (non-normative)
This document will not be released as a part of any final recommendation.