Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 14

Sphinx

a user-friendly assertion language

David North
Senior Developer, CoreFiling
Eurofiling Workshop, Luxembourg, December 2013
What is Sphinx?
• Domain-specific language for making
assertions about XBRL facts
• High-level, semantic, based on an n-
dimensional world
• Not XML
• Designed for humans to write and edit directly
• Proprietary
History
• 2009 – first prototypes
• 2011 – stable language reaches 1.0
• 2012 – version 2.0 incorporating real-world
feedback requiring breaking changes
• 2013 – (later abandoned) attempt to offer the
Sphinx IP to XBRL International
The requirements Sphinx grew
from
• XBRL US (XUSI) – development of the
XBRL US Consistency Checks for
quality/consistency of SEC filings
• CIMA – regulator needing to check
quality/consistency of incoming instances
• Replaced a stopgap spreadsheet-based solution
Who uses it?
• XUSI
• CIMA
• HMRC
Proprietary: Disadvantages
• Not an XII standard
• Fewer options for implementations
• Difficult for a regulator to mandate its usage
by filers
• Can't be part of DTS
Proprietary: Advantages
• High quality tools available from CoreFiling
• Fast evolution of the language in response to
customer feedback
What can it be used for?
• Rapid creation of business and accounting
rules
• Typical checks might include:
– X must be reported
– Co-constraints (if X is reported, Y must be too)
– Comparing data across dimensions
The language
• Based on item expressions
• The most basic: [ ]
• Represents the table of all items in the
instance. Operations on it apply to every cell
in turn
• Restrict by axes (“aspects” in XBRL formula)
– FooConcept[ ] – restriction to facts with
FooConcept
– [Geography=UK, Product=Cheese] – restricts
dimensions
Lining up

How is the following expression evaluated?

Revenue[ ] = SalesRevenue[ ] +
RentRevenue[ ]
Examples
Please refer to accompanying file
“Sphinx Examples.txt”
Tools
• Rules authored in SpiderMonkey, potentially
alongside taxonomy development
– Can test against instances here
• Can plug authored “rulebase” into other
CoreFiling tools both for GUI-based instance
validation and command-line/web based
validation (e.g. filter gateway).
Sphinx vs XBRL formula
• Sphinx does lining up (implicit filtering) by
default
• Sphinx cannot do fact creation
• Sphinx cannot use XPath
• User-defined Sphinx functions are in-language
only (no ability to make them implementation-
defined)
Questions?

You might also like