| bibo | <http://purl.org/ontology/bibo/> |
| dc | <http://purl.org/dc/elements/1.1/> |
| deo | <http://purl.org/spar/deo/> |
| doco | <http://purl.org/spar/doco/> |
| foaf | <http://xmlns.com/foaf/0.1/> |
| mod | <https://w3id.org/mod#> |
| ns | <http://www.w3.org/2003/06/sw-vocab-status/ns#> |
| orb | <http://purl.org/orb/1.0/> |
| owl | <http://www.w3.org/2002/07/owl#> |
| pattern | <http://www.essepuntato.it/2008/12/pattern#> |
| rdf | <http://www.w3.org/1999/02/22-rdf-syntax-ns#> |
| rdfs | <http://www.w3.org/2000/01/rdf-schema#> |
| schema | <https://schema.org/> |
| skos | <http://www.w3.org/2004/02/skos/core#> |
| sro | <http://salt.semanticauthoring.org/ontologies/sro#> |
| terms | <http://purl.org/dc/terms/> |
| vann | <http://purl.org/vocab/vann/> |
| vocab | <https://w3id.org/widoco/vocab#> |
| xml | <http://www.w3.org/XML/1998/namespace> |
| xsd | <http://www.w3.org/2001/XMLSchema#> |
The Document Components Ontology (DoCO) is an OWL 2 DL ontology that provides a general-purpose structured vocabulary of document elements. DoCO has been designed as a general unifying ontological framework for describing different aspects related to the content of scientific and other scholarly texts. Its primary goal has been to improve the interoperability and shareability of academic documents (and related services) when multiple formats are actually used for their storage.
The creation of DoCO was undertaken by studying different corpora of documents (mainly scientific literature and web documents on different topics) and publishers' guidelines, from two perspectives – the structural and the rhetorical. In addition, some informal interviews have been done with researchers in different fields and with academic publishers, in order to gather as much information as possible about document components and their use.
DoCO imports the Pattern Ontology that describes structural patterns (introduced in the paper entitled Dealing with structural patterns of XML documents), and the Discourse Element Ontology (DEO), which was developed with DoCO and describes rhetorical components.
Additionally, it also defines hybrid classes describing elements that are both structural and rhetorical in nature, such as paragraph (doco:Paragraph), section (doco:Section) or list (doco:List). DoCO is also aligned with the SALT Rhetorical Ontology and the Ontology of Rhetorical Blocks (ORB).
A concise summary of the main DoCO classes and its imported ontologies is shown in the following figure.

In the following subsections, we introduce some examples to showcase how to use DoCO.
The prefixes that are used in all the examples provided below are defined as follows:
@prefix : <http://www.sparontologies.net/example/> .
@prefix doco: <http://purl.org/spar/doco/> .
@prefix deo: <http://purl.org/spar/deo/> .
@prefix po: <http://www.essepuntato.it/2008/12/pattern#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix fabio: <http://purl.org/spar/fabio/> .
@prefix co: <http://purl.org/co/> .
@prefix c4o: <http://purl.org/spar/c4o> .
DoCO can be used for describing several parts of a document such as a journal article (defined through the FaBiO class fabio:JournalArticle) connecting then by means of the object property po:contains.
It can be also used in combination with C4O and the Collections Ontology (CO) for describing its textual content and the particular order in which the various components appear.
In particular, the actual textual content of each component can be specified through the property c4o:hasContent, while the order can be described by using the entities related with the class co:List.
:paper a fabio:JournalArticle ;
po:contains
:front-matter ,
:body-matter ,
:back-matter ;
co:firstItem [
co:itemContent :front-matter ;
co:nextItem [
co:itemContent :body-matter ;
co:nextItem [
co:itemContent :back-matter ] ] ] .
:body-matter a doco:BodyMatter ;
po:contains
:section-introduction ,
:section-related-work ,
:section-document-components ,
:section-adoption ,
:section-conclusions ;
co:firstItem [
co:itemContent :section-introduction ;
co:nextItem [
co:itemContent :section-related-work ;
co:nextItem [
co:itemContent :section-document-components ;
co:nextItem [
co:itemContent :section-adoption ;
co:nextItem [
co:itemContent :section-conclusions ] ] ] ] ] .
:section-introduction a doco:Section , deo:Introduction ;
po:containsAsHeader :section-introduction-title ;
po:contains
:paragraph-1 ,
:paragraph-2 ,
:paragraph-3 ,
:paragraph-4 ;
co:firstItem [
co:itemContent :section-introduction-title ;
co:nextItem [
co:itemContent :paragraph-1 ;
co:nextItem [
co:itemContent :paragraph-2 ;
co:nextItem [
co:itemContent :paragraph-3 ;
co:nextItem [
co:itemContent :paragraph-4 ] ] ] ] ] .
:section-introduction-title a doco:SectionTitle ;
c4o:hasContent 'Introduction' .
:paragraph-1 a doco:Paragraph ;
po:contains
:sentence-1 ,
:sentence-2 ,
:sentence-3 ,
:sentence-4 ,
:sentence-5 ,
:sentence-6 ,
:sentence-7 ;
co:firstItem [
co:itemContent :sentence-1 ;
co:nextItem [
co:itemContent :sentence-2 ;
co:nextItem [
co:itemContent :sentence-3 ;
co:nextItem [
co:itemContent :sentence-4 ;
co:nextItem [
co:itemContent :sentence-5 ;
co:nextItem [
co:itemContent :sentence-6 ] ] ] ] ] ] .
:sentence-1 a doco:Sentence ;
c4o:hasContent 'One of the most important criteria for the
evaluation of a scientific contribution is the coherent
organisation of the textual narrative that describes it,
most often published as a scientific article or book.' .
Among the various parts of a paper, describing references to other objects of the paper, such as bibliographic references, can be of some interest for keeping track, for instance, the number of times a particular publication is actually cited within a paper. DoCO allows one to describe all these parts and to link them together.
:sentence a doco:Sentence ;
c4o:hasContent 'For instance, a recent report by Beck [3]
explains the requirements for an XML vocabulary of
scientific journals to be acceptable for inclusion
in PubMed Central.' ;
po:contains :reference-to-3 .
:reference-to-3 a deo:Reference ;
c4o:hasContent '[3]' ;
dcterms:references :bibliographic-reference-3 .
:bibliographic-reference-3 a deo:BibliographicReference ;
c4o:hasContent '[3] Beck, J. (2010). Report from the Field:
PubMed Central, an XML-based Archive of Life Sciences
Journal Articles. In Proceedings of the International
Symposium on XML for the Long Haul: Issues in the Long-term
Preservation of XML.
OA at http://dx.doi.org/10.4242/BalisageVol6.Beck01.' .
DoCO can be used for answering several questions related to documents and their structural and rethorical elements.
In the following subsections, some of them are introduced together with their respective SPARQL queries.
The prefixes that are used in all the SPARQL queries provided below are defined as follows:
PREFIX : <http://www.sparontologies.net/example/>
PREFIX doco: <http://purl.org/spar/doco/>
PREFIX deo: <http://purl.org/spar/deo/>
PREFIX po: <http://www.essepuntato.it/2008/12/pattern#>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX fabio: <http://purl.org/spar/fabio/>
PREFIX co: <http://purl.org/co/>
PREFIX c4o: <http://purl.org/spar/c4o>
What are all the sections contained within the article's body matter, and in which sequential order do they appear?
SELECT ?section ?sectionType
WHERE {
?bodyMatter a doco:BodyMatter ;
co:firstItem ?item .
?item co:itemContent ?section .
?item co:nextItem* ?next .
?next co:itemContent ?section .
OPTIONAL { ?section a ?sectionType . }
}
What is the literal textual content of the first sentence belonging to the first paragraph of the introduction section?
SELECT ?sentenceText
WHERE {
?introSection a deo:Introduction .
?introSection co:firstItem ?headerItem .
?headerItem co:nextItem ?firstParagraphItem .
?firstParagraphItem co:itemContent ?firstParagraph .
?firstParagraph a doco:Paragraph .
?firstParagraph co:firstItem ?firstSentenceItem .
?firstSentenceItem co:itemContent ?firstSentence .
?firstSentence c4o:hasContent ?sentenceText .
}
Which in-text references are contained within a specific sentence, and what are their literal textual markers?
SELECT ?reference ?textMarker
WHERE {
?sentence a doco:Sentence ;
po:contains ?reference .
?reference c4o:hasContent ?textMarker .
}
What is the full bibliographic text of the reference cited by a specific inline citation marker?
SELECT ?inlineMarker ?fullBibliographicText
WHERE {
?reference a deo:Reference ;
c4o:hasContent ?inlineMarker ;
dcterms:references ?bibReference .
?bibReference a deo:BibliographicReference ;
c4o:hasContent ?fullBibliographicText .
}
IRI: http://purl.org/spar/doco/Abstract
:my-abstract a doco:Abstract ;
c4o:hasContent 'The history of abstracting dates back to the point when it was felt necessary to summarise the content of documents in order to make the information contained in them more accessible.'@en ;
dcterms:isPartOf :my-front-matter .
IRI: http://purl.org/spar/doco/Afterword
:my-afterword a doco:Afterword ;
dcterms:isPartOf :my-back-matter .
IRI: http://purl.org/spar/doco/Appendix
:my-appendix a doco:Appendix ;
dcterms:isPartOf :my-back-matter .
IRI: http://purl.org/spar/doco/BackMatter
:my-back-matter a doco:BackMatter ;
pattern:contains :my-bibliography .
IRI: http://purl.org/spar/doco/BibliographicReferenceList
:my-bibliographic-reference-list a doco:BibliographicReferenceList ;
pattern:contains :my-bibliographic-reference-01, :my-bibliographic-reference-02 .
IRI: http://purl.org/spar/doco/Bibliography
:my-bibliography a doco:Bibliography ;
dcterms:hasPart :my-bibliographic-reference-01 .
IRI: http://purl.org/spar/doco/BlockQuotation
:my-block-quotation a doco:BlockQuotation ;
c4o:hasContent '''
Now, in reality, the world have paid too great a compliment to critics, and
have imagined them men of much greater profundity than they really are.
From this complaisance the critics have been emboldened to assume a dictatorial
power, and have so far succeeded that they are now become the masters, and have
the assurance to give laws to those authors from whose predecessors they
originally received them.
'''@en .
IRI: http://purl.org/spar/doco/BodyMatter
:my-body-matter a doco:BodyMatter ;
pattern:contains :my-chapter .
IRI: http://purl.org/spar/doco/CaptionedBox
:my-captioned-box a doco:CaptionedBox ;
dcterms:hasPart :my-caption .
IRI: http://purl.org/spar/doco/Chapter
:my-chapter a doco:Chapter ;
pattern:contains :my-section .
IRI: http://purl.org/spar/doco/ChapterLabel
:my-chapter-label a doco:ChapterLabel ;
c4o:hasContent 'Chapter 1'@en ;
dcterms:isPartOf :my-chapter .
IRI: http://purl.org/spar/doco/ChapterSubtitle
:my-chapter-subtitle a doco:ChapterSubtitle ;
c4o:hasContent 'Or: The beginning of this book'@en ;
dcterms:isPartOf :my-chapter .
IRI: http://purl.org/spar/doco/ChapterTitle
:my-title a doco:ChapterTitle ;
c4o:hasContent 'The First Chapter'@en ;
pattern:isContainedByAsHeader :my-chapter .
IRI: http://purl.org/spar/doco/Colophon
:my-colophon a doco:Colophon ;
c4o:hasContent 'O most gracious reader, wash your hands and touch the book only like this: turn the pages softly and keep your fingers far away from the text'@en ;
dcterms:isPartOf :my-back-matter .
IRI: http://purl.org/spar/doco/ComplexRunInQuotation
:my-complex-run-in-quotation a doco:ComplexRunInQuotation ;
c4o:hasContent 'Carol said “Go ahead“ when I asked her if the launcher was ready.'@en .
IRI: http://purl.org/spar/doco/Figure
:my-figure a doco:Figure .
IRI: http://purl.org/spar/doco/FigureBox
:my-figure-box a doco:FigureBox ;
dcterms:hasPart :my-figure, :my-caption .
IRI: http://purl.org/spar/doco/FigureLabel
:my-figure-label a doco:FigureLabel ;
c4o:hasContent 'Figure 1'@en ;
dcterms:isPartOf :my-figure-box .
IRI: http://purl.org/spar/doco/Footnote
:my-footnote a doco:Footnote ;
c4o:hasContent '1. ^ Hayes, Andrea (2011). Language Toolkit for New Zealand 2. Cambridge University Press. p. 17. ISBN 9781107624702.'@en .
IRI: http://purl.org/spar/doco/Foreword
:my-foreword a doco:Foreword ;
dcterms:isPartOf :my-front-matter .
IRI: http://purl.org/spar/doco/Formula
:my-formula a doco:Formula ;
c4o:hasContent 'a^2 * b^2 = a^2b^2' .
IRI: http://purl.org/spar/doco/FormulaBox
:my-formula-box a doco:FormulaBox ;
dcterms:hasPart :my-formula .
IRI: http://purl.org/spar/doco/FrontMatter
:my-front-matter a doco:FrontMatter ;
pattern:contains :my-table-of-contents .
IRI: http://purl.org/spar/doco/Glossary
:my-glossary a doco:Glossary ;
dcterms:isPartOf :my-back-matter .
IRI: http://purl.org/orb/1.0/Header
IRI: http://purl.org/spar/doco/Index
:my-index a doco:Index ;
dcterms:isPartOf :my-back-matter ;
pattern:contains :my-list-of-references .
IRI: http://purl.org/spar/doco/Label
:my-label a doco:Label ;
c4o:hasContent 'Chapter One'@en .
IRI: http://purl.org/spar/doco/Line
:my-line a doco:Line ;
c4o:hasContent 'Tyger Tyger, burning bright,'@en .
IRI: http://purl.org/spar/doco/List
:my-list a doco:List ;
pattern:contains :my-item .
IRI: http://purl.org/spar/doco/ListOfAgents
:my-list-of-agents a doco:ListOfAgents .
IRI: http://purl.org/spar/doco/ListOfAuthors
:my-list-of-authors a doco:ListOfAuthors .
IRI: http://purl.org/spar/doco/ListOfContributors
:my-list-of-contributors a doco:ListOfContributors .
IRI: http://purl.org/spar/doco/ListOfFigures
:my-list-of-figures a doco:ListOfFigures ;
dcterms:isPartOf :my-front-matter ;
pattern:contains :my-list-of-references .
IRI: http://purl.org/spar/doco/ListOfOrganizations
:my-list-or-organizations a doco:ListOfOrganizations .
IRI: http://purl.org/spar/doco/ListOfReferences
:my-list-of-references a doco:ListOfReferences ;
pattern:contains :my-reference-01 , :my-reference-02 .
IRI: http://purl.org/spar/doco/ListOfTables
:my-list-of-tables a doco:ListOfTables ;
dcterms:isPartOf :my-front-matter ;
pattern:contains :my-list-of-references .
IRI: http://purl.org/spar/doco/Paragraph
:my-paragraph a doco:Paragraph ;
pattern:contains :my-sentence .
IRI: http://purl.org/spar/doco/Part
:my-part a doco:Part ;
pattern:contains :my-chapter-01 , :my-chapter-02 .
IRI: http://purl.org/spar/doco/Preface
:my-preface a doco:Preface ;
dcterms:isPartOf :my-front-matter .
IRI: http://purl.org/spar/doco/Section
:my-section a doco:Section ;
pattern:contains :my-paragraph .
IRI: http://purl.org/spar/doco/SectionLabel
:my-section-label a doco:SectionLabel ;
c4o:hasContent 'Section 1'@en ;
dcterms:isPartOf :my-section .
IRI: http://purl.org/spar/doco/SectionSubtitle
:my-section-subtitle a doco:SectionSubtitle ;
c4o:hasContent 'The first section of the book'@en ;
dcterms:isPartOf :my-section .
IRI: http://purl.org/spar/doco/SectionTitle
:my-section-title a doco:SectionTitle ;
c4o:hasContent 'Another Beginning'@en ;
pattern:isContainedByAsHeader :my-section .
IRI: http://purl.org/spar/doco/Sentence
:my-sentence a doco:Sentence ;
c4o:hasContent 'The most straightforward and widely adopted approach reduces the concept of an identifier to a simple literal string or an URI, attaching it directly to the described resource.'@en .
IRI: http://purl.org/spar/doco/SimpleRunInQuotation
:my-simple-run-in-quotation a doco:SimpleRunInQuotation ;
c4o:hasContent 'The Minister said, “Prospects for growth are not good.”'@en .
IRI: http://purl.org/spar/doco/Stanza
:my-stanza a doco:Stanza ;
pattern:contains :my-line-01, :my-line-02 .
IRI: http://purl.org/spar/doco/Subtitle
:my-subtitle a doco:Subtitle ;
c4o:hasContent 'The Modern Prometheus'@en .
IRI: http://purl.org/spar/doco/Table
:my-table a doco:Table ;
pattern:contains :my-container .
IRI: http://purl.org/spar/doco/TableBox
:my-table-box a doco:TableBox ;
dcterms:hasPart :my-table .
IRI: http://purl.org/spar/doco/TableLabel
:my-table-label a doco:TableLabel ;
c4o:hasContent 'Table 1'@en ;
dcterms:isPartOf :my-table-box .
IRI: http://purl.org/spar/doco/TableOfContents
:my-table-of-contents a doco:TableOfContents ;
dcterms:isPartOf :my-front-matter .
IRI: http://purl.org/spar/doco/TextBox
:my-text-box a doco:TextBox ;
c4o:hasContent 'Using a text box, you can create a block of text that appears above, below, or around pictures, charts, or other objects.'@en .
IRI: http://purl.org/spar/doco/TextChunk
:my-text-chunk a doco:TextChunk ;
c4o:hasContent 'The most straightforward and widely adopted approach reduces the concept of an identifier [...]'@en .
IRI: http://purl.org/spar/doco/Title
:my-title a doco:Title ;
c4o:hasContent 'Frankenstein'@en ;
pattern:isContainedByAsHeader :my-header-container .
The authors would like to thank Silvio Peroni for developing LODE, a Live OWL Documentation Environment, which is used for representing the Cross Referencing Section of this document and Daniel Garijo for developing Widoco, the program used to create the template used in this documentation.