The Pattern Ontology
Describing documents by means of their structural components

IRI:
http://purl.org/spar/po
Date:
16/07/2013
Current version:
1.4.2
Previous version:
http://dwellonit.svn.sourceforge.net/viewvc/dwellonit/StructuralPattern/Pattern-1_4.owl (visualise it with LODE)
Backward compatible with:
http://dwellonit.svn.sourceforge.net/viewvc/dwellonit/StructuralPattern/Pattern-1_4.owl (visualise it with LODE)
Authors:
Angelo Di Iorio
Fabio Vitali
Silvio Peroni

Abstract

An ontology defining formally patterns for segmenting a document into atomic components, in order to be manipulated independently and re-flowed in different contexts.

Table of Content

  1. Introduction
  2. Classes
  3. Object Properties
  4. Data Properties
  5. Annotation Properties
  6. General Axioms
  7. SWRL Rules
  8. Namespace Declarations

Introduction

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.

Classes

atom elementc back to ToC or Class ToC

IRI: http://www.essepuntato.it/2008/12/pattern#Atom

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.
is equivalent to
flat elementc and (is contained byop only block elementc or inline elementc)
has super-classes
is contained byop some block elementc or inline elementc
is disjoint with
field elementc

block elementc back to ToC or Class ToC

IRI: http://www.essepuntato.it/2008/12/pattern#Block

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
is equivalent to
mixed elementc and (is contained byop only container elementc or popup elementc)
has super-classes
containsop only atom elementc or inline elementc or milestone elementc or popup elementc
is disjoint with
inline elementc

bucket elementc back to ToC or Class ToC

IRI: http://www.essepuntato.it/2008/12/pattern#Bucket

The class of elements that can contain other elements but no text nodes.
has super-classes
non-textual elementc
structured elementc
is disjoint with
marker elementc

container elementc back to ToC or Class ToC

IRI: http://www.essepuntato.it/2008/12/pattern#Container

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.
is equivalent to
bucket elementc and (is contained byop only container elementc or popup elementc)
has super-classes
containsop only block elementc or container elementc or field elementc or meta elementc
is disjoint with
popup elementc

field elementc back to ToC or Class ToC

IRI: http://www.essepuntato.it/2008/12/pattern#Field

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.
is equivalent to
flat elementc and (is contained byop only container elementc or popup elementc)
is disjoint with
atom elementc

flat elementc back to ToC or Class ToC

IRI: http://www.essepuntato.it/2008/12/pattern#Flat

The class of elements that can contain text nodes but no elements.
has super-classes
non-structured elementc
textual elementc
is disjoint with
mixed elementc

headed-container elementc back to ToC or Class ToC

IRI: http://www.essepuntato.it/2008/12/pattern#HeadedContainer

This class describes container elements whose content model need to begin with one or more block elements (the heading), specified through the property containsAsHeader.
has super-classes
container elementc and (contains as headerop only block elementc)
is disjoint with
record elementc, table elementc

inline elementc back to ToC or Class ToC

IRI: http://www.essepuntato.it/2008/12/pattern#Inline

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).
is equivalent to
mixed elementc and (is contained byop only block elementc or inline elementc)
has super-classes
is contained byop some block elementc or inline elementc
containsop only atom elementc or inline elementc or milestone elementc or popup elementc
is disjoint with
block elementc

marker elementc back to ToC or Class ToC

IRI: http://www.essepuntato.it/2008/12/pattern#Marker

The class of elements that can contain neither text nodes nor elements.
has super-classes
non-structured elementc
non-textual elementc
is disjoint with
bucket elementc

meta elementc back to ToC or Class ToC

IRI: http://www.essepuntato.it/2008/12/pattern#Meta

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.
is equivalent to
marker elementc and (is contained byop some container elementc or popup elementc)
is disjoint with
milestone elementc

milestone elementc back to ToC or Class ToC

IRI: http://www.essepuntato.it/2008/12/pattern#Milestone

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.
is equivalent to
marker elementc and (is contained byop only block elementc or inline elementc)
has super-classes
is contained byop some block elementc or inline elementc
is disjoint with
meta elementc

mixed elementc back to ToC or Class ToC

IRI: http://www.essepuntato.it/2008/12/pattern#Mixed

The class of elements that can contain other elements and text nodes.
has super-classes
structured elementc
textual elementc
is disjoint with
flat elementc

non-structured elementc back to ToC or Class ToC

IRI: http://www.essepuntato.it/2008/12/pattern#NonStructured

The class of elements that cannot contain other elements.
is equivalent to
not (structured elementc)
has super-classes
pattern-based elementc
has sub-classes
flat elementc, marker elementc
is disjoint with
structured elementc

non-textual elementc back to ToC or Class ToC

IRI: http://www.essepuntato.it/2008/12/pattern#NonTextual

The class of elements that cannot have textual content in their content models.
is equivalent to
not (textual elementc)
has super-classes
pattern-based elementc
has sub-classes
bucket elementc, marker elementc
is disjoint with
textual elementc

pattern-based elementc back to ToC or Class ToC

IRI: http://www.essepuntato.it/2008/12/pattern#Pattern

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.
has super-classes
thingc
has sub-classes
non-structured elementc, non-textual elementc, structured elementc, textual elementc

popup elementc back to ToC or Class ToC

IRI: http://www.essepuntato.it/2008/12/pattern#Popup

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.
is equivalent to
bucket elementc and (is contained byop only block elementc or inline elementc)
has super-classes
is contained byop some block elementc or inline elementc
containsop only block elementc or container elementc or field elementc or meta elementc
is disjoint with
container elementc

record elementc back to ToC or Class ToC

IRI: http://www.essepuntato.it/2008/12/pattern#Record

This class describes container elements that can only contain heterogeneous and non repeatable elements.
is equivalent to
container elementc and (can contain heteronymous elementsdp value true) and (can contain homonymous elementsdp value false)
is disjoint with
headed-container elementc, table elementc

structured elementc back to ToC or Class ToC

IRI: http://www.essepuntato.it/2008/12/pattern#Structured

The class of elements that can contain other elements.
has super-classes
pattern-based elementc
has sub-classes
bucket elementc, mixed elementc
is in domain of
can contain heteronymous elementsdp, can contain homonymous elementsdp, containsop
is disjoint with
non-structured elementc

table elementc back to ToC or Class ToC

IRI: http://www.essepuntato.it/2008/12/pattern#Table

This class describes container elements that must contain only homogeneous elements (but they can be repeated).
is equivalent to
container elementc and (can contain heteronymous elementsdp value false) and (can contain homonymous elementsdp value true)
is disjoint with
headed-container elementc, record elementc

textual elementc back to ToC or Class ToC

IRI: http://www.essepuntato.it/2008/12/pattern#Textual

The class of elements that can have textual content in their content models.
has super-classes
pattern-based elementc
has sub-classes
flat elementc, mixed elementc
is disjoint with
non-textual elementc

Object Properties

containsop back to ToC or Object Property ToC

IRI: http://www.essepuntato.it/2008/12/pattern#contains

A structured element contains another generic element.
has sub-properties
contains as headerop
has domain
structured elementc
is inverse of
is contained byop

contains as headerop back to ToC or Object Property ToC

IRI: http://www.essepuntato.it/2008/12/pattern#containsAsHeader

A structured element contains another generic element as part of its header.
has super-properties
containsop
is inverse of
is contained by as headerop

is contained byop back to ToC or Object Property ToC

IRI: http://www.essepuntato.it/2008/12/pattern#isContainedBy

An element that is contained by another structured element.
has sub-properties
is contained by as headerop
is inverse of
containsop

is contained by as headerop back to ToC or Object Property ToC

IRI: http://www.essepuntato.it/2008/12/pattern#isContainedByAsHeader

An element is contained by another structured element as part of its header.
has super-properties
is contained byop
is inverse of
contains as headerop

Data Properties

can contain heteronymous elementsdp back to ToC or Data Property ToC

IRI: http://www.essepuntato.it/2008/12/pattern#canContainHeteronymousElements

A hierarchical-based entity contains al least two entities having different names.

has characteristics: functional

has domain
structured elementc
has range
boolean

can contain homonymous elementsdp back to ToC or Data Property ToC

IRI: http://www.essepuntato.it/2008/12/pattern#canContainHomonymousElements

A hierarchical-based entity contains al least two entities that share the same name.

has characteristics: functional

has domain
structured elementc
has range
boolean

has namedp back to ToC or Data Property ToC

IRI: http://www.essepuntato.it/2008/12/pattern#hasName

The name of a particular element.

has characteristics: functional

has range
string

Annotation Properties

commentap back to ToC or Annotation Property ToC

IRI: http://www.w3.org/2000/01/rdf-schema#comment

creatorap back to ToC or Annotation Property ToC

IRI: http://purl.org/dc/elements/1.1/creator

dateap back to ToC or Annotation Property ToC

IRI: http://purl.org/dc/elements/1.1/date

descriptionap back to ToC or Annotation Property ToC

IRI: http://purl.org/dc/elements/1.1/description

labelap back to ToC or Annotation Property ToC

IRI: http://www.w3.org/2000/01/rdf-schema#label

titleap back to ToC or Annotation Property ToC

IRI: http://purl.org/dc/elements/1.1/title

version infoap back to ToC or Annotation Property ToC

IRI: http://www.w3.org/2002/07/owl#versionInfo

General Axioms

All Disjoint Classes back to ToC

headed-container elementc, record elementc, table elementc

SWRL rules

Rule #1back to ToC

inline elementc(?x) , has namedp(?x,?s) , has namedp(?y,?s) -> inline elementc(?y)

Rule #2back to ToC

containsop(?p,?x) , containsop(?p,?y) , has namedp(?x,?s) , has namedp(?y,?s) -> can contain homonymous elementsdp(?p,"true"^^boolean)

Rule #3back to ToC

block elementc(?x) , has namedp(?x,?s) , has namedp(?y,?s) -> block elementc(?y)

Rule #4back to ToC

meta elementc(?x) , has namedp(?x,?s) , has namedp(?y,?s) -> meta elementc(?y)

Rule #5back to ToC

container elementc(?x) , has namedp(?x,?s) , has namedp(?y,?s) -> container elementc(?y)

Rule #6back to ToC

pattern-based elementc(?y) , textual elementc(?x) , has namedp(?x,?g) , has namedp(?y,?g) -> textual elementc(?y)

Rule #7back to ToC

record elementc(?x) , has namedp(?x,?s) , has namedp(?y,?s) -> record elementc(?y)

Rule #8back to ToC

milestone elementc(?x) , has namedp(?x,?s) , has namedp(?y,?s) -> milestone elementc(?y)

Rule #9back to ToC

containsop(?p,?x) , containsop(?p,?y) , has namedp(?x,?s) , has namedp(?y,?t) , notEqual(?s,?t) -> can contain heteronymous elementsdp(?p,"true"^^boolean)

Rule #10back to ToC

table elementc(?x) , containsop(?x,?y) , containsop(?x,?z) , has namedp(?z,?s) -> has namedp(?y,?s)

Rule #11back to ToC

field elementc(?x) , has namedp(?x,?s) , has namedp(?y,?s) -> field elementc(?y)

Rule #12back to ToC

table elementc(?x) -> can contain heteronymous elementsdp(?x,"false"^^boolean)

Rule #13back to ToC

record elementc(?x) -> can contain homonymous elementsdp(?x,"false"^^boolean)

Rule #14back to ToC

table elementc(?x) , has namedp(?x,?s) , has namedp(?y,?s) -> table elementc(?y)

Namespace Declarations back to ToC

default namespace
http://www.essepuntato.it/2008/12/pattern#
12
http://www.essepuntato.it/2008/12/
dc
http://purl.org/dc/elements/1.1/
owl
http://www.w3.org/2002/07/owl#
rdf
http://www.w3.org/1999/02/22-rdf-syntax-ns#
rdfs
http://www.w3.org/2000/01/rdf-schema#
structuralpattern
http://dwellonit.svn.sourceforge.net/viewvc/dwellonit/StructuralPattern/
swrl
http://www.w3.org/2003/11/swrl#
swrlb
http://www.w3.org/2003/11/swrlb#
xsd
http://www.w3.org/2001/XMLSchema#

This HTML document was obtained by processing the OWL ontology source code through LODE, Live OWL Documentation Environment, developed by Silvio Peroni.