- From: Dave Raggett <dsr@w3.org>
- Date: Sat, 20 Sep 2008 16:39:14 +0100 (BST)
- To: Bob DuCharme <bob@snee.com>
- cc: semantic-web@w3.org
Hi Bob,
Since my last email, I have managed to get my XBRL to RDF converter
to translate linkbases, using target namespace and element names for
concepts in place of relative URIs the point to the declaration of
the concept in the XBRL XML schema files. For XLink, the latter is
satisfactory, but for RDF, I think we should use URIs for concepts
that are independent on which machine the XBRL happens to be on.
The translation to RDF directly models the XBRL semantics, including
the representation of taxonomy overrides. This will pose a
significant challenge for reasoning over the RDF data set.
Further work is needed to extract more semantics from the schemas,
which should open the way to experiments on validation. The draft
rendering linkbase is interesting in that it defines relationships
between rendering resources and will require special treatment.
I am now looking forward to some experiments with the Sesame RDF
data store, e.g. work on creating web-based tools to browse the
taxonomy and to generate various kinds of views on to the data.
There is also an opportunity to explore the use of Owl to relate
different XBRL taxonomies, which could be valuable for comparing
company reports from different parts of the World where different
reporting rules apply.
When applied to the full US GAAP taxonomy [1] a test run shows that
turtle generation took 2.84 seconds, and found 0 facts, 12800
concepts, 61649 links, 738 xlinks, 61649 arcs, 62264 locators and
14119 resources, resulting a pretty big turtle file (20Mb). I am
hoping to get permission to release this tool as open source, but it
may take a little while to get permission from my employer.
[1] http://xbrl.us/documents/XBRLUSGAAPTaxonomies-2008-03-31.zip
Here are some sample extracts from autogenerated turtle:
# a concept
mr:AuditorInformationParagraph [
rdf:type xbrli:stringItemType;
xbrli:periodType "duration".
].
# a relationship between concepts
_:link61648 arcrole:parent-child [
xl:type xl:link;
xbrl:role role4:CommonDomainMembers;
xbrl:order "210.0"^^xsd:decimal;
xbrl:from us-gaap:ClassOfStockDomain;
xbrl:to us-gaap:SeriesGPreferredStockMember.
].
# a label in US English
_:link2730 arcrole:concept-label [
xl:type xl:link;
xbrl:role role1:link;
xlink:role role1:label;
rdf:lang "en-US";
xbrl:order "1.0"^^xsd:decimal;
xbrl:from us-gaap:EnergyMarketingContractsAssetsCurrent;
xbrl:resource """Energy Marketing Contracts
Assets, Current"""@en-US.
].
# a context from an instance file with an XML Literal
# and date range. Further work is needed to move XML
# namespace declarations into the XML Fragment
_:context_c002 [
xl:type xbrli:context;
xbrli:entity [
xbrli:identifier "none";
xbrli:scheme <http://www.myurl.com>.
];
xbrli:scenario """
<asi:scenarioName>Actual</asi:scenarioName>
"""^^rdf:XMLLiteral;
xbrli:period (
[ xbrli:startDate "2007-01-01"^^xsd:date;
xbrli:endDate "2007-03-31"^^xsd:date. ]
).
].
# some units
_:unit_u002 xbrli:measure iso4217:USD.
_:unit_u003 xbrli:measure xbrli:shares.
# a numeric fact with XBRL's approach to monetary values
_:fact103 [
xl:type xbrli:fact;
rdf:type usfr-pte:TotalCurrentAssets;
rdf:value "1569000000"^^xsd:integer;
xbrli:decimals "-6"^^xsd:integer;
xrbli:unit _:unit_u001;
xrbli:context _:context_c003.
].
Turtle is *much* easier to read than the original XML syntax which
is very opaque. It is a shame that Turtle wasn't around when
XBRL.org started work, but that's history for you.
Dave Raggett <dsr@w3.org> http://www.w3.org/People/Raggett
Received on Saturday, 20 September 2008 15:50:12 UTC