pattern ontology
An ontology defining formally patterns for segmenting a document into atomic components, in order to be manipulated independently and re-flowed in different contexts.
The Pattern Ontology Describing documents by means of their structural components
The idea of using patterns to produce reusable and high-quality assets is not new in the literature. Software engineers, architects (as Alexander who first introduced this term) and designers very often use – or rather reuse – patterns to handle problems which recur over and over. Patterns have also been studied to modularize and customize web ontologies (http://ontologydesignpatterns.org). They guarantee the flexibility and maintainability of concepts and solutions in several heterogeneous scenarios. We've been investigating patterns for XML documents for some time. The overall goal of this research is to understand how the structure of digital documents can be segmented into atomic components, that can be manipulated independently and re-flowed in different contexts. Instead of defining a large number of complex and diversified structures, we have identified a small number of structures/patterns that are sufficient to express what most users need. Our idea is that a low number of patterns are enough to capture the most relevant document structures.
contains
A structured element contains another generic element.
contains as header
A structured element contains another generic element as part of its header.
is contained by
An element that is contained by another structured element.
is contained by as header
An element is contained by another structured element as part of its header.
can contain heteronymous elements
A hierarchical-based entity contains al least two entities having different names.
can contain homonymous elements
A hierarchical-based entity contains al least two entities that share the same name.
has name
The name of a particular element.
atom element
This class is defined to describe literal text that is part of the document body. Moreover, similarly to Inline, elements following the Atom pattern can only be contained within block or inline elements (and consequently they also cannot be used as root elements of documents). It can contain textual content and no other elements.
block element
This class organise the document content as a sequence of nestable elements and text nodes. In particular, elements following this pattern can contain text and other elements compliant with the patterns Inline, Atom, Milestones and Popup, which will be introduced in the following. Furthermore, it is a requirement that block elements are contained only by container and popup elements
bucket element
The class of elements that can contain other elements but no text nodes.
container element
This class concerns the structural organization of a document. Elements following this pattern contain no textual content and contain only elements compliant with the patterns: Meta, Field, Block and any subtype of Container. It is disjointed with the pattern Popup, although they share the same content model.
field element
This class is defined to describe literal metadata or text that is not really part of the document body, contrarily to its disjointed sibling Atom. Its main difference with Meta is that Field can contain textual content.
flat element
The class of elements that can contain text nodes but no elements.
headed-container element
This class describes container elements whose content model need to begin with one or more block elements (the heading), specified through the property containsAsHeader.
inline element
This class has the same use and content model of the pattern Block, but differing primarily because a) inline elements can contain other elements compliant with the same pattern while block elements cannot, and b) inline elements must always be contained by other block or inline elements and by no other type of element. These constraints also imply that inline elements cannot be used as root elements of documents and that the class Block is disjoint with the class Inline (i.e., a markup element cannot be a block and an inline at the same time).
marker element
The class of elements that can contain neither text nodes nor elements.
meta element
This class describes elements that contain neither other elements nor textual content. Contrarily to the pattern Milestone, which was meant to describe markup elements that impact the document because of their location, the main feature of its disjoint sibling is the mere existence, independently from the position it has within the document. Meta elements convey metadata information about the document or part of it, independently of where they are. Thus, meta elements can be contained only within container elements.
milestone element
This class describe elements that contain neither other elements nor textual content. Moreover, similarly to Inline, elements following the Milestone pattern can only be contained within block or inline elements (and consequently they also cannot be used as root elements of documents). The distinctive characteristic of the pattern Milestone is the location it assumes within the document.
mixed element
The class of elements that can contain other elements and text nodes.
non-structured element
The class of elements that cannot contain other elements.
non-textual element
The class of elements that cannot have textual content in their content models.
pattern-based element
A structural pattern is an atomic component of a document, that is able to capture a recurrent and well knwon structure of a document. Any entity belonging to this class is compliant with exactly one structural pattern.
popup element
This class defines bucket elements that are only present within block and inline elements. Popup elements are used whenever complex structures need to be placed within content elements such as paragraphs.
record element
This class describes container elements that can only contain heterogeneous and non repeatable elements.
structured element
The class of elements that can contain other elements.
table element
This class describes container elements that must contain only homogeneous elements (but they can be repeated).
textual element
The class of elements that can have textual content in their content models.