<?xml version="1.0"?> 
<!--
		************************************************************
		Ontology for Business Reporting
		Version: .4 (DRAFT)
		************************************************************
		Creative Commons Attribution 3.0 United States License 
		http://creativecommons.org/licenses/by/3.0/us/
		
		Authors:

		Charles Hoffman, CPA (CharlesHoffman@olywa.net)
		************************************************************
-->
<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
  xmlns:owl="http://www.w3.org/2002/07/owl#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:xs="http://www.w3.org/2001/XMLSchema#"

  xmlns="http://www.xbrlsite.com/Demos/Ontologies/2010-08-01/Ontology-BusinessReportingLogicalModel.xml#"
  xml:base="http://www.xbrlsite.com/Demos/Ontologies/2010-08-01#"
>

<!-- This ontology describes the Business Reporting Logical Model  -->
<!-- Currently the Financial Reporting Logical Model components are contained in this file but they will eventually be moved to a seperate file.  -->


<!-- Objects  -->
<owl:Class rdf:ID="Reports">
  <rdfs:label>Business reports</rdfs:label>
  <rdfs:comment>Class of business reports</rdfs:comment>
  <dc:title>Ontology for Business Reports</dc:title>
  <dc:creator>Charles Hoffman, CPA</dc:creator>
  <dc:description>Ontology for business reports.</dc:description>
  <dc:date>2009-12-24</dc:date>
  <dc:rights>http://creativecommons.org/licenses/by/3.0/us/</dc:rights>
</owl:Class>

<owl:Class rdf:ID="ReportSet">
  <rdfs:label>Report Set</rdfs:label>
  <rdfs:comment>A report set may contain 1 to many reports.</rdfs:comment>
</owl:Class>

<owl:Class rdf:ID="Report">
  <rdfs:label>Report</rdfs:label>
  <rdfs:comment>A report is a set of business information which is being reported.</rdfs:comment>
</owl:Class>

<owl:Class rdf:ID="Flow">
  <rdfs:label>Flow</rdfs:label>
  <rdfs:comment>A report has a flow which describes the sequence of the report.</rdfs:comment>
</owl:Class>

<owl:Class rdf:ID="BusinessRule">
  <rdfs:label>Business Rule</rdfs:label>
  <rdfs:comment>A report has 0 to many business rules which articulate numeric and other types of relations between Facts in a Report.</rdfs:comment>
</owl:Class>

<owl:Class rdf:ID="Computation">
  <rdfs:label>Computation</rdfs:label>
  <rdfs:comment>Class of business rule. Expresses a numeric relation.</rdfs:comment>
  <rdfs:subClassOf rdf:resource="#BusinessRule"/>
</owl:Class>

<owl:Class rdf:ID="ReportabilityRule">
  <rdfs:label>Reportability Rule</rdfs:label>
  <rdfs:comment>Class of business rule. Expresses a relation between two Facts.</rdfs:comment>
  <rdfs:subClassOf rdf:resource="#BusinessRule"/>
</owl:Class>

<owl:Class rdf:ID="FactGroup">
  <rdfs:label>Fact Group</rdfs:label>
  <rdfs:comment>A report has 1 to many Fact Groups.  A Fact Group is a set of Facts which goes together for some specific purpose.</rdfs:comment>
</owl:Class>

<owl:Class rdf:ID="Fact">
  <rdfs:label>Fact</rdfs:label>
  <rdfs:comment>A fact is a single, observable, reported piece of information. A Fact may be numeric, string, narrative, etc.</rdfs:comment>
</owl:Class>

<owl:Class rdf:ID="Measure">
  <rdfs:label>Measure</rdfs:label>
  <rdfs:comment>A Measure is a collection of information properties which describe the meaning and context of a Fact. The Measure collection describes the Fact.</rdfs:comment>
</owl:Class>

<owl:Class rdf:ID="MeasureRelation">
  <rdfs:label>Measure Relation</rdfs:label>
  <rdfs:comment>Relationships across the properties of a Measure.</rdfs:comment>
</owl:Class>

<owl:Class rdf:ID="Value">
  <rdfs:label>Value</rdfs:label>
  <rdfs:comment>The Value of a Fact. Value is an abstract notion which is broken into two possible types of Values: Numeric Value and Non-Numeric Value.</rdfs:comment>
</owl:Class>

<owl:Class rdf:ID="NumericValue">
  <rdfs:subClassOf rdf:resource="#Value"/>
  <rdfs:label>Numeric Value</rdfs:label>
  <rdfs:comment>A Value which is numeric per the XBRL specification. A Numeric Value is a Value which must have a unitRef and decimals attributes.</rdfs:comment>
</owl:Class>

<owl:Class rdf:ID="NonNumericValue">
  <rdfs:subClassOf rdf:resource="#Value"/>
  <rdfs:label>Non-numeric Value</rdfs:label>
  <rdfs:comment>A Value which is non-numeric per the XBRL specification. A Non-numeric Value is a Value which is not Numeric as defined above.</rdfs:comment>
</owl:Class>

<owl:Class rdf:ID="MeasureConcept">
  <rdfs:subClassOf rdf:resource="#Measure"/>
  <rdfs:label>Measure Concept</rdfs:label>
  <rdfs:comment>Collection of Measures which can be used as Concepts.  Measure Concepts contain a data type, a period type, and may have a balance type.</rdfs:comment>
</owl:Class>

<owl:Class rdf:ID="MeasureContext">
  <rdfs:subClassOf rdf:resource="#Measure"/>
  <rdfs:label>Measure Context</rdfs:label>
  <rdfs:comment>Collection of Measures which are expressed within an XBRL context.</rdfs:comment>
</owl:Class>

<owl:Class rdf:ID="MeasureCharacteristic">
  <rdfs:subClassOf rdf:resource="#Measure"/>
  <rdfs:label>Measure Characteristic</rdfs:label>
  <rdfs:comment>Collection of Measures which are not Measure Concepts or Measure Contexts.</rdfs:comment>
</owl:Class>

<owl:Class rdf:ID="Concept">
  <rdfs:subClassOf rdf:resource="#MeasureConcept"/>
  <rdfs:label>Concept</rdfs:label>
  <rdfs:comment>Collection of Concepts. Concept includes financial reporting and non-financial reporting concepts.</rdfs:comment>
</owl:Class>

<owl:Class rdf:ID="ReportingEntity">
  <rdfs:subClassOf rdf:resource="#MeasureContext"/>
  <rdfs:label>Reporting Entity</rdfs:label>
  <rdfs:comment>The XBRL context entity scheme/identifier of a Fact.</rdfs:comment>
</owl:Class>

<owl:Class rdf:ID="CalendarTime">
  <rdfs:subClassOf rdf:resource="#MeasureContext"/>
  <rdfs:label>Calendar Time</rdfs:label>
  <rdfs:comment>The period of a Fact.</rdfs:comment>
</owl:Class>




<owl:Class rdf:ID="InformationModel">
  <rdfs:subClassOf rdf:resource="#MeasureRelation"/>
  <rdfs:label>Information Model</rdfs:label>
  <rdfs:comment>An Information Model is Measure Relations for Measure Concepts.</rdfs:comment>
</owl:Class>

<owl:Class rdf:ID="RollForward">
  <rdfs:label>Roll Forward</rdfs:label>
  <rdfs:comment>Class of roll forward</rdfs:comment>
  <rdfs:comment>Represented by an XML schema element which has a substitutionGroup value of xbrldt:item.  Also has a standard label with the marker [Roll Forward] at the end.</rdfs:comment>
  <rdfs:subClassOf rdf:resource="#InformationModel"/>
  <rdfs:isDefinedBy>http://xbrl.us/Documents/SECOFM-USGAAPT-Architecture-20080428.pdf</rdfs:isDefinedBy>
  <!-- 
  		[Roll Forward] MUST have one and only one beginning balance;
  		[Roll Forward] MUST have one and only one ending balance;
  		[Roll Forward] MUST have one or more sets of changes which reconcile the beginning balance to the ending balance, each set of changes is a [Roll Up];
  		[Roll Forward] MUST have at least one [Roll up] which MUST be a set of numeric concepts which are all durations;
   -->
</owl:Class>

<owl:Class rdf:ID="RollUp">
  <rdfs:label>Roll up</rdfs:label>
  <rdfs:subClassOf rdf:resource="#InformationModel"/>
  <rdfs:isDefinedBy>http://xbrl.us/Documents/SECOFM-USGAAPT-Architecture-20080428.pdf</rdfs:isDefinedBy>
  <rdfs:seeAlso>US GAAP Calculation</rdfs:seeAlso>
  <!-- 
  		[Roll Up] MUST have one and only one total;
  		[Roll UP] MAY have other [Roll Up]s nested within them;
  		[Roll Up] concepts MUST all be of the same XML Schema type;
  		[Roll Up] MUST NOT contain other meta patterns;
   -->
</owl:Class>

<owl:Class rdf:ID="Hierarchy">
  <rdfs:label>Hierarchy</rdfs:label>
  <rdfs:subClassOf rdf:resource="#InformationModel"/>
  <rdfs:isDefinedBy>http://xbrl.us/Documents/SECOFM-USGAAPT-Architecture-20080428.pdf</rdfs:isDefinedBy>
  <rdfs:seeAlso>US GAAP Hierarchy</rdfs:seeAlso>
  <!-- 
  		[Hierarchy] MAY have concepts;
  		[Hierarchy] MAY have [Abstract];
  		[Hierarchy] MAY have [Text Block];
  		[Hierarchy] MUST NOT contain other meta patterns;
  		[Hierarchy] MAY contain a [Roll Up];
   -->
</owl:Class>

<owl:Class rdf:ID="Adjustment">
  <rdfs:label>Adjustment</rdfs:label>
  <rdfs:comment>Class of Adjustment</rdfs:comment>
  <rdfs:subClassOf rdf:resource="#InformationModel"/>
  <!-- 
  		[Adjustment] reconciles an instant with another instant when the Report Date Measure is changing;
   -->
</owl:Class>

<owl:Class rdf:ID="Variance">
  <rdfs:label>Variance</rdfs:label>
  <rdfs:subClassOf rdf:resource="#InformationModel"/>
  <!-- 
  		[Variance] reconciles an instant or duration with another like period type when the Reporting Scenario Measure is changing;
   -->
</owl:Class>


<owl:Class rdf:ID="Domain">
  <rdfs:label>Domain</rdfs:label>
  <rdfs:subClassOf rdf:resource="#MeasureRelation"/>
  <rdfs:isDefinedBy>http://xbrl.us/Documents/SECOFM-USGAAPT-Architecture-20080428.pdf</rdfs:isDefinedBy>
  <rdfs:seeAlso>http://www.xbrl.org/Specification/XDT-REC-2006-09-18+Corrected-Errata-2009-09-07.rtf</rdfs:seeAlso>
  <!-- 
  		[Measure] has exactly one [Domain];
  		[Domain] MUST exist only as part of a [Measure];
   -->
</owl:Class>

<owl:Class rdf:ID="Member">
  <rdfs:label>Member</rdfs:label>
  <rdfs:comment>Class of member</rdfs:comment>
  <rdfs:subClassOf rdf:resource="#MeasureRelation"/>
  <rdfs:isDefinedBy>http://xbrl.us/Documents/SECOFM-USGAAPT-Architecture-20080428.pdf</rdfs:isDefinedBy>
  <rdfs:seeAlso>http://www.xbrl.org/Specification/XDT-REC-2006-09-18+Corrected-Errata-2009-09-07.rtf</rdfs:seeAlso>
  <!-- 
  		[Domain] may have one or more [Member]s;
  		[Member] MUST exist only as part of a [Domain];
   -->
</owl:Class>


<!-- Properties -->
<owl:ObjectProperty rdf:about="#hasReports">
  <rdfs:domain rdf:resource="#ReportSet"/>
  <rdfs:comment>A Report Set has 1 to many Reports.</rdfs:comment>
</owl:ObjectProperty>

<owl:ObjectProperty rdf:about="#hasFlow">
  <rdfs:domain rdf:resource="#Report"/>
  <rdfs:comment>A Report has 0 to many Flows.</rdfs:comment>
</owl:ObjectProperty>

<owl:ObjectProperty rdf:about="#hasBusinessRules">
  <rdfs:domain rdf:resource="#Report"/>
  <rdfs:comment>A Report has 1 to many Business Rules.</rdfs:comment>
</owl:ObjectProperty>

<owl:ObjectProperty rdf:about="#hasSchedules">
  <rdfs:domain rdf:resource="#Report"/>
  <rdfs:domain rdf:resource="#Schedule"/>
  <rdfs:comment>A Report has 0 to many Schedules. A Schedule has 0 to many Schedules.</rdfs:comment>
</owl:ObjectProperty>

<owl:ObjectProperty rdf:about="#hasFactGroups">
  <rdfs:domain rdf:resource="#Schedule"/>
  <rdfs:comment>A Schedule has 1 to many Schedules.</rdfs:comment>
</owl:ObjectProperty>

<owl:ObjectProperty rdf:about="#hasFacts">
  <rdfs:domain rdf:resource="#FactGroup"/>
  <rdfs:comment>A Fact Group has 1 to many Facts.</rdfs:comment>
</owl:ObjectProperty>

<owl:ObjectProperty rdf:about="#hasMeasureRelations">
  <rdfs:domain rdf:resource="#FactGroup"/>
  <rdfs:comment>A Fact Group has 0 to many collections of Measure Relations.</rdfs:comment>
</owl:ObjectProperty>

<owl:ObjectProperty rdf:about="#hasMeasures">
  <rdfs:domain rdf:resource="#Fact"/>
  <rdfs:comment>A Fact has 1 to many Measures.</rdfs:comment>
</owl:ObjectProperty>

<owl:ObjectProperty rdf:about="#hasValues">
  <rdfs:domain rdf:resource="#Fact"/>
  <rdfs:comment>A Fact has exactly 1 Value.</rdfs:comment>
</owl:ObjectProperty>




<!-- These are actually pieces of the Financial Reporting Logical Model which will be moved to a separate file eventually -->

<owl:Class rdf:ID="ReportDate">
  <rdfs:label>Report Date</rdfs:label>
  <rdfs:subClassOf rdf:resource="#MeasureCharacteristic"/>
  <rdfs:comment>Date of a financial report, usually the date of the audit report.</rdfs:comment>
</owl:Class>

<owl:Class rdf:ID="FiscalPeriod">
  <rdfs:label>Fiscal Period</rdfs:label>
  <rdfs:subClassOf rdf:resource="#MeasureCharacteristic"/>
  <rdfs:comment>Fiscal period of the fact. The fiscal period of an entity might not be the same as the Calendar Time.</rdfs:comment>
</owl:Class>

<owl:Class rdf:ID="LegalEntity">
  <rdfs:label>Legal Entity</rdfs:label>
  <rdfs:subClassOf rdf:resource="#MeasureCharacteristic"/>
  <rdfs:comment>The entity to which the reported fact relates. The legal breakdown of a potentially larger entity.</rdfs:comment>
</owl:Class>

<owl:Class rdf:ID="BusinessSegment">
  <rdfs:label>Business Segment</rdfs:label>
  <rdfs:subClassOf rdf:resource="#MeasureCharacteristic"/>
  <rdfs:comment>The business segment of a reporting entity.  Management or operating perspective. Business breakdown as seen by management. For example, the consolidated entity, the software segment, etc.</rdfs:comment>
</owl:Class>

<owl:Class rdf:ID="MeasurementBasis">
  <rdfs:label>Measurement Basis</rdfs:label>
  <rdfs:subClassOf rdf:resource="#MeasureCharacteristic"/>
  <rdfs:comment>Indicates the measurement basis of a Fact. For example, historical cost, amortized cost, fair value are all measurement basis.</rdfs:comment>
</owl:Class>

<owl:Class rdf:ID="ReportingScenario">
  <rdfs:label>Reporting Scenario</rdfs:label>
  <rdfs:subClassOf rdf:resource="#MeasureCharacteristic"/>
  <rdfs:comment>The scenario under which a Fact is reported. For example, actual, budgeted, forecast.</rdfs:comment>
</owl:Class>

<owl:Class rdf:ID="ThirdPartyVerification">
  <rdfs:label>Third Party Verification</rdfs:label>
  <rdfs:subClassOf rdf:resource="#MeasureCharacteristic"/>
  <rdfs:comment>Level of third party verification provided for a Fact.  For example, audited, reviewed, compiled.</rdfs:comment>
</owl:Class>

<owl:Class rdf:ID="GeographicArea">
  <rdfs:label>Geographic Area</rdfs:label>
  <rdfs:subClassOf rdf:resource="#MeasureCharacteristic"/>
  <rdfs:comment>Breakdown of an entity by geographic area. For example, breaking down sales by North America, Europe, Asia, etc.</rdfs:comment>
</owl:Class>

</rdf:RDF>
