├── .gitignore
├── Documentation
├── figures
│ ├── 02-ARB.pdf
│ ├── agentrole.pdf
│ ├── aggregation.pdf
│ ├── event.pdf
│ ├── explicit.pdf
│ ├── figure_sources
│ │ ├── agentrole.graphml
│ │ ├── aggregation.graphml
│ │ ├── event.graphml
│ │ ├── explicit.graphml
│ │ ├── identifier.graphml
│ │ ├── name.graphml
│ │ ├── participantrole.graphml
│ │ ├── partonymy.graphml
│ │ ├── provenance.graphml
│ │ ├── quantities.graphml
│ │ ├── reification.graphml
│ │ ├── sequence.graphml
│ │ ├── spatial.graphml
│ │ ├── ste.graphml
│ │ ├── stubs.graphml
│ │ ├── temporal.graphml
│ │ ├── trajectory.graphml
│ │ └── tree.graphml
│ ├── identifier.pdf
│ ├── name.pdf
│ ├── participantrole.pdf
│ ├── partonymy.pdf
│ ├── placeholder.png
│ ├── provenance.pdf
│ ├── quantities.pdf
│ ├── reification.pdf
│ ├── sequence.pdf
│ ├── spatial.pdf
│ ├── ste.pdf
│ ├── stubs.pdf
│ ├── temporal.pdf
│ ├── trajectory.pdf
│ └── tree.pdf
├── introduction.tex
├── lit.bib
├── main.tex
├── patterns.tex
├── patterns
│ ├── agentrole.tex
│ ├── aggregation.tex
│ ├── event.tex
│ ├── explicit.tex
│ ├── identifier.tex
│ ├── name.tex
│ ├── participantrole.tex
│ ├── partonymy.tex
│ ├── provenance.tex
│ ├── quantities.tex
│ ├── reification.tex
│ ├── sequence.tex
│ ├── spatial.tex
│ ├── ste.tex
│ ├── stubs.tex
│ ├── temporal.tex
│ ├── trajectory.tex
│ └── tree.tex
├── preamble.tex
├── prelims.tex
└── scripts
│ └── pattern.py
├── MODL 1.0
├── MODL_Documentation.pdf
└── MODL_v1.0.zip
├── MODL.owl
├── MODL
├── agentrole.owl
├── aggregation.owl
├── event.owl
├── explicittyping.owl
├── identifier.owl
├── name.owl
├── participantrole.owl
├── provenance.owl
├── quantities.owl
├── reification.owl
├── sequence.owl
├── spatialextent.owl
├── spatiotemporalextent.owl
├── stub.owl
├── temporalextent.owl
├── trajectory.owl
└── tree.owl
├── README.md
└── license.txt
/.gitignore:
--------------------------------------------------------------------------------
1 | *.log
2 | *.aux
3 | *.bibl
4 | *.bbl
5 | *.blg
6 | *.out
7 | *.synctex*
8 | *.toc
9 | *.lof
10 | Documentation/main.pdf
--------------------------------------------------------------------------------
/Documentation/figures/02-ARB.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Data-Semantics-Laboratory/modular-ontology-design-library/a33774fb161714a6a1140ddc0d46007f2aa6d57f/Documentation/figures/02-ARB.pdf
--------------------------------------------------------------------------------
/Documentation/figures/agentrole.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Data-Semantics-Laboratory/modular-ontology-design-library/a33774fb161714a6a1140ddc0d46007f2aa6d57f/Documentation/figures/agentrole.pdf
--------------------------------------------------------------------------------
/Documentation/figures/aggregation.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Data-Semantics-Laboratory/modular-ontology-design-library/a33774fb161714a6a1140ddc0d46007f2aa6d57f/Documentation/figures/aggregation.pdf
--------------------------------------------------------------------------------
/Documentation/figures/event.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Data-Semantics-Laboratory/modular-ontology-design-library/a33774fb161714a6a1140ddc0d46007f2aa6d57f/Documentation/figures/event.pdf
--------------------------------------------------------------------------------
/Documentation/figures/explicit.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Data-Semantics-Laboratory/modular-ontology-design-library/a33774fb161714a6a1140ddc0d46007f2aa6d57f/Documentation/figures/explicit.pdf
--------------------------------------------------------------------------------
/Documentation/figures/figure_sources/agentrole.graphml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | Agent
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 | AgentRole
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 | Thing
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 | TemporalExtent
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 | performsAgentRole
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 | providesAgentRole
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 | hasTemporalExtent
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
--------------------------------------------------------------------------------
/Documentation/figures/figure_sources/aggregation.graphml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | Bag
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 | Collection
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 | BagItem
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 | itemOf
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
--------------------------------------------------------------------------------
/Documentation/figures/figure_sources/event.graphml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | SpatiotemporalExtent
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 | Event
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 | ParticipantRole
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 | hasSpatiotemporalExtent
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 | providesParticipantRole
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 | subEventOf
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
--------------------------------------------------------------------------------
/Documentation/figures/figure_sources/explicit.graphml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | Type
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 | Thing
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 | hasType
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/Documentation/figures/figure_sources/name.graphml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | NameStub
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 | xsd:string
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 | nameAsString
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/Documentation/figures/figure_sources/partonymy.graphml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | Thing
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 | RelationInstance
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 | PO-Component-Type
46 | PO-Member-Type
47 | PO-Portion-Type
48 | PO-Stuff-Type
49 | PO-Feature-Type
50 | PO-Place-Type
51 | PO-Part-Of-Type
52 | Spatially-Located-In-Type
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 | isPartOf
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 | hasWhole
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 | part-of,
92 | spatially-located-in
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
--------------------------------------------------------------------------------
/Documentation/figures/figure_sources/sequence.graphml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | FirstItem
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 | ListItem
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 | LastItem
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 | hasNext,
85 | hasSuccessor
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
--------------------------------------------------------------------------------
/Documentation/figures/figure_sources/stubs.graphml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | Stub
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 | xsd:AnyValue
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 | hasValue
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/Documentation/figures/identifier.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Data-Semantics-Laboratory/modular-ontology-design-library/a33774fb161714a6a1140ddc0d46007f2aa6d57f/Documentation/figures/identifier.pdf
--------------------------------------------------------------------------------
/Documentation/figures/name.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Data-Semantics-Laboratory/modular-ontology-design-library/a33774fb161714a6a1140ddc0d46007f2aa6d57f/Documentation/figures/name.pdf
--------------------------------------------------------------------------------
/Documentation/figures/participantrole.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Data-Semantics-Laboratory/modular-ontology-design-library/a33774fb161714a6a1140ddc0d46007f2aa6d57f/Documentation/figures/participantrole.pdf
--------------------------------------------------------------------------------
/Documentation/figures/partonymy.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Data-Semantics-Laboratory/modular-ontology-design-library/a33774fb161714a6a1140ddc0d46007f2aa6d57f/Documentation/figures/partonymy.pdf
--------------------------------------------------------------------------------
/Documentation/figures/placeholder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Data-Semantics-Laboratory/modular-ontology-design-library/a33774fb161714a6a1140ddc0d46007f2aa6d57f/Documentation/figures/placeholder.png
--------------------------------------------------------------------------------
/Documentation/figures/provenance.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Data-Semantics-Laboratory/modular-ontology-design-library/a33774fb161714a6a1140ddc0d46007f2aa6d57f/Documentation/figures/provenance.pdf
--------------------------------------------------------------------------------
/Documentation/figures/quantities.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Data-Semantics-Laboratory/modular-ontology-design-library/a33774fb161714a6a1140ddc0d46007f2aa6d57f/Documentation/figures/quantities.pdf
--------------------------------------------------------------------------------
/Documentation/figures/reification.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Data-Semantics-Laboratory/modular-ontology-design-library/a33774fb161714a6a1140ddc0d46007f2aa6d57f/Documentation/figures/reification.pdf
--------------------------------------------------------------------------------
/Documentation/figures/sequence.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Data-Semantics-Laboratory/modular-ontology-design-library/a33774fb161714a6a1140ddc0d46007f2aa6d57f/Documentation/figures/sequence.pdf
--------------------------------------------------------------------------------
/Documentation/figures/spatial.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Data-Semantics-Laboratory/modular-ontology-design-library/a33774fb161714a6a1140ddc0d46007f2aa6d57f/Documentation/figures/spatial.pdf
--------------------------------------------------------------------------------
/Documentation/figures/ste.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Data-Semantics-Laboratory/modular-ontology-design-library/a33774fb161714a6a1140ddc0d46007f2aa6d57f/Documentation/figures/ste.pdf
--------------------------------------------------------------------------------
/Documentation/figures/stubs.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Data-Semantics-Laboratory/modular-ontology-design-library/a33774fb161714a6a1140ddc0d46007f2aa6d57f/Documentation/figures/stubs.pdf
--------------------------------------------------------------------------------
/Documentation/figures/temporal.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Data-Semantics-Laboratory/modular-ontology-design-library/a33774fb161714a6a1140ddc0d46007f2aa6d57f/Documentation/figures/temporal.pdf
--------------------------------------------------------------------------------
/Documentation/figures/trajectory.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Data-Semantics-Laboratory/modular-ontology-design-library/a33774fb161714a6a1140ddc0d46007f2aa6d57f/Documentation/figures/trajectory.pdf
--------------------------------------------------------------------------------
/Documentation/figures/tree.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Data-Semantics-Laboratory/modular-ontology-design-library/a33774fb161714a6a1140ddc0d46007f2aa6d57f/Documentation/figures/tree.pdf
--------------------------------------------------------------------------------
/Documentation/introduction.tex:
--------------------------------------------------------------------------------
1 | \chapter{Introduction}
2 |
3 | \section*{Motivation}
4 | The Information Age is an apt description for these modern times; between the World Wide Web and the Internet of Things an unfathomable amount of information is accessible to humans and machines, but the sheer volume and heterogeneity of the data have their drawbacks. Humans have difficulty drawing \emph{meaning} from large amounts of data. Machines can parse the data, but do not \emph{understand} it. Thus, in order to bridge this gap, data would need to be organized in such a way that some critical part of the human conceptualization is preserved. Ontologies are a natural fit for this role, as they may act as a vehicle for the sharing of \emph{understanding} \cite{gruber}.
5 |
6 | Unfortunately, published ontologies have infrequently lived up to such a promise, hence the recent emphasis on FAIR (Findable, Accessible, Interoperable, and Reusable) data practices \cite{fair}. More specifically, many ontologies are not interoperable or reusable. This is usually due to incompatible ontological commitments: strong---or very weak---ontological committments lead to an ontology that is really only useful for a specific use-case, or to an ambiguous model that is almost meaningless by itself.
7 |
8 | To combat this, we have developed a methodology for developing so-called modular ontologies \cite{chess}. In particular, we are especially interested in pattern-based modules \cite{momtut}. A modularized ontology is an ontology that individual users can easily adapt to their own use-cases, while still preserving relations with other versions of the ontology; that is, keeping it \emph{interoperable} with other ontologies. Such ontologies may be so adapted due to their ``plug-and-play'' nature; that is, one module may be swapped out for another developed from the same pattern.
9 |
10 | An ontology design pattern is, essentially, a small self-contained ontology that addresses a general problem that has been observed to be invariant over different domains or applications \cite{odpbook}. By tailoring a pattern to a more specific use-case, an ontology engineer has developed a \emph{module}. This modelling paradigm moves much of the cost away from the formalization of a conceptualization (i.e. the logical axiomatization). Instead, pattern-based modular ontolody design (PBMOD) is predicated upon knowledge of available patterns, as well as being aware of the use-cases it addresses and its ontological commitments.
11 |
12 | Thus, in order to address the findability and accessibility aspects of PBMOD, we have developed MODL: a modular ontology design library, which is herein described.
13 |
14 | \section*{Overview}
15 | MODL is a curated collection of well-documented ontology design patterns. Some of the patterns are novel, but many more have been extracted from existing ontologies and streamlined for use in a general manner. MODL, as an artefact, is distributed online as a collection of annotated OWL files and this technical report.
16 |
17 | There are two different ways to use MODL---for use in ontology modelling and for use in tools. In both cases, MODL is distributed as a ZIP archive of the patterns' OWL files and accompanying documentation. In the case of the Ontology Engineer, it is simply used as a resource while building an ontology, perhaps by using Modular Ontology Modelling or eXtreme Design methodologies. For the tool developer, we also supply an ontology consisting of exactly the OPLa annotations from each pattern that pertain to \textsf{OntologicalCollection}. As OPLa is fully specified in OWL, these annotations make up an ontology of patterns and their relations. One particular use-case that we foresee is a tool developer querying the ontology for which patterns are related to the current pattern, or looking for a pattern based on keywords or similarity to competency questions.
18 |
19 | \section*{Organization}
20 | \subsection*{Namespaces}
21 | For MODL we currently use the namespace \url{https://archive.org/services/purl/purl/modular_ontology_design_library//}.
22 |
23 | \subsection*{Current Patterns}
24 |
25 | \begin{enumerate}
26 | \item Metapatterns
27 | \begin{enumerate}
28 | \item Explicit Typing
29 | \item Property Reification
30 | \item Stubs
31 | \end{enumerate}
32 | \item Organization of Data
33 | \begin{enumerate}
34 | \item Aggregation, Bag, Collection
35 | \item Sequence, List
36 | \item Tree
37 | \end{enumerate}
38 | \item Space, Time, and Movement
39 | \begin{enumerate}
40 | \item Spatiotemporal Extent
41 | \item Spatial Extent
42 | \item Temporal Extent
43 | \item Trajectory
44 | \item Event
45 | \end{enumerate}
46 | \item Agents and Roles
47 | \begin{enumerate}
48 | \item AgentRole
49 | \item ParticipantRole
50 | \item Name Stub
51 | \end{enumerate}
52 | \item Description and Details
53 | \begin{enumerate}
54 | \item Quantities and Units
55 | \item Partonymy/Meronymy
56 | \item Provenance
57 | \item Identifier
58 | \end{enumerate}
59 | \end{enumerate}
60 |
61 | \subsection*{Categories}
62 | \noindent\textbf{Metapatterns} This category contains patterns that can be considered to be ``patterns for patterns.'' In other literature, notably \cite{odp1}, they may be called \emph{structural ontology design patterns}, as they are independent of any specific context, i.e. they are content-independent. This is particularly true for the metapattern for property reification, which, while a modelling strategy, is also a workaround for the lack of $n$-ary relationships in OWL. The other metapatterns address structural design choices frequently encountered when working with domain experts. They present a best practice to non-ontologists for addressing language specific limitations.
63 |
64 | \noindent\textbf{Organization of Data} This category contains patterns that pertain to how data might be organized. These patterns are necessarily highly abstract, as they are ontological reflections of common data structures in computer science. The pattern for aggregation, bag, or collection is a simple model for connecting many concepts to a single concept. Analogously, for the list and tree pattterns, which aim to capture ordinality and acyclicity, as well. More so than other patterns in this library, these patterns provide an axiomatization as a high-level framework that must be specialized (or modularized) to be truly useful.
65 |
66 | \noindent\textbf{Space, Time, and Movement} This category contains patterns that model the movement of a thing through a space or spaces and a general event pattern. The semantic trajectory pattern is a more general pattern for modelling the discrete movements along some dimensions. The spatiotemporal extent pattern is a trajectory along the familiar dimensions of time and space. Both patterns are included for convenience.
67 |
68 | \noindent\textbf{Agents and Roles} This category contains patterns that pertain to agents interacting with things. Here, we consider an agent to be anything that performs some action or role. This is important, as it decouples the role of an agent from the agent itself. For example, a \textsf{Person} may be \textsf{Husband} and \textsf{Widower} at some point, but should not be both simultaneously. These patterns enable the capture of this data. In fact, the agent role and participante role patterns are convenient specializations of property reification that have evolved into a modelling practice writ large. In this category, we also include the name stub, which is a convenient instantiation of the stub metapattern; it allows us to acknowledge that a name is a complicated thing, but sometimes we only really need the string representation.
69 |
70 | \noindent\textbf{Description and Details} This category contains patterns that model the description of things. These patterns are relatively straightforward, models for capturing ``how much?'' and ``what kind?'' for a particular thing; patterns that are derived from Winston's part-whole taxonomy \cite{partof}; a pattern extracted from PROV-O \cite{provo}, perhaps to be used to answer ``where did this data come from?''; and a pattern for associating an identifier with something.
--------------------------------------------------------------------------------
/Documentation/main.tex:
--------------------------------------------------------------------------------
1 | \documentclass[11pt,oneside, letterpaper]{memoir}
2 |
3 | \input{preamble}
4 | \sloppy
5 |
6 | \counterwithin*{equation}{section}
7 |
8 | \begin{document}
9 |
10 | \frontmatter
11 | \begin{titlingpage}
12 | \titleBWF
13 | \end{titlingpage}
14 |
15 | {\small
16 | \tableofcontents{}
17 | \newpage
18 | \listoffigures{}
19 | }
20 |
21 | \mainmatter
22 |
23 | \input{introduction}
24 | \input{prelims}
25 | \input{patterns}
26 |
27 | \bibliographystyle{abbrv}
28 | \bibliography{lit}
29 |
30 | \end{document}
--------------------------------------------------------------------------------
/Documentation/patterns.tex:
--------------------------------------------------------------------------------
1 | \chapter{Patterns}
2 | \label{sec:pats}
3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4 |
5 | \input{patterns/explicit}
6 | \input{patterns/reification}
7 | \input{patterns/stubs}
8 | \input{patterns/aggregation}
9 | \input{patterns/sequence}
10 | \input{patterns/tree}
11 | \input{patterns/ste}
12 | \input{patterns/spatial}
13 | \input{patterns/temporal}
14 | \input{patterns/trajectory}
15 | \input{patterns/event}
16 | \input{patterns/agentrole}
17 | \input{patterns/participantrole}
18 | \input{patterns/name}
19 | \input{patterns/quantities}
20 | \input{patterns/partonymy}
21 | \input{patterns/provenance}
22 | \input{patterns/identifier}
23 |
--------------------------------------------------------------------------------
/Documentation/patterns/agentrole.tex:
--------------------------------------------------------------------------------
1 | \section{AgentRole}
2 | \label{sec:AgentRole}
3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4 | \begin{figure}[h!]
5 | \begin{center}
6 | \includegraphics[width=.8\textwidth]{figures/agentrole}
7 | \end{center}
8 | \caption{Schema Diagram for the AgentRole Pattern. The visual notation is explained in Chapter \ref{chap:prelims}.}
9 | \label{fig:AgentRole}
10 | \end{figure}
11 | \subsection{Summary}
12 | \label{sum:AgentRole}
13 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
14 | The \textsf{AgentRole} pattern is essentially a reification of association with something. That is, it's very unlikely that an Agent will be associated with something for all time. Thus, the association relation is not binary, perhaps $\textit{associated}(x,y,t)$, agent $x$ is associated with thing $y$ at time $t$. Thus, the reification. The association becomes a concept in its own right and has a temporal extent, allowing an \textsf{Agent} to be associated to a \textsf{Thing} (e.g. \textsf{Event}, Section \ref{sec:Event}) for some \textsf{TemporalExtent}.
15 |
16 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17 | \subsection{Axiomatization}
18 | \label{axs:AgentRole}
19 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
20 | \begin{align}
21 | % General
22 | \textsf{AgentRole} &\sqsubseteq \text{=1}\textsf{isPerformedBy.Agent} \\
23 | \textsf{AgentRole} &\sqsubseteq \text{=1}\textsf{hasTemporalExtent.TemporalExtent} \\
24 | % Domain and Range Restrictions
25 | \exists\textsf{isPerformedBy.Agent} &\sqsubseteq \textsf{AgentRole} \\
26 | \textsf{AgentRole} &\sqsubseteq \forall\textsf{isPerformedBy.Agent} \\
27 | \exists\textsf{hasTemporalExtent.TemporalExtent} &\sqsubseteq \textsf{AgentRole} \\
28 | \top &\sqsubseteq \forall\textsf{hasTemporalExtent.TemporalExtent} \\
29 | \top &\sqsubseteq \forall\textsf{providesAgentRole.AgentRole} \\
30 | % Inverses
31 | \textsf{isPerformedBy} &\equiv \textsf{performsAgentRole}^- \\
32 | \textsf{isProvidedBy} &\equiv \textsf{providesAgentRole}^-
33 | \end{align}
34 |
35 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
36 | \subsection{Explanations}
37 | \label{exp:AgentRole}
38 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
39 | \begin{enumerate}
40 | \item Exactly one \textsf{Agent} performs an \textsf{AgentRole}.
41 | \item An \textsf{AgentRole} has exactly one \textsf{TemporalExtent}.
42 | \item Scoped Domain: the scoped domain of \textsf{isPerformedBy}, scoped by \textsf{Agent}, is \textsf{AgentRole}.
43 | \item Scoped Range: the scoped range of \textsf{isPerformedBy}, scoped by \textsf{AgentRole}, is \textsf{Agent}.
44 | \item Scoped Domain: the scoped domain of \textsf{hasTemporalExtent}, scoped by \textsf{TemporalExtent}, is \textsf{AgentRole}.
45 | \item Range: the range of \textsf{hasTemporalExtent} is \textsf{TemporalExtent}.
46 | \item Range: the range of \textsf{providesAgentRole} is \textsf{AgentRole}.
47 | \item Inverse Alias.
48 | \item Inverse Alias.
49 | \end{enumerate}
50 |
51 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
52 | \subsection{Competency Questions}
53 | \label{cqs:AgentRole}
54 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
55 | \begin{enumerate}[CQ1.]
56 | \item When was Cogan Shimizu a student at Wright State University?
57 | \item Who was the lead actor for the movie, Sharknado?
58 | \item Who was on the World Cup winning team in 2017?
59 | \end{enumerate}
60 |
61 | \newpage
62 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
63 | % End Section
64 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
65 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--------------------------------------------------------------------------------
/Documentation/patterns/aggregation.tex:
--------------------------------------------------------------------------------
1 | \section{Aggregation, Bag, Collection}
2 | \label{sec:Aggregation,}
3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4 | \begin{figure}[h!]
5 | \begin{center}
6 | \includegraphics[width=.8\textwidth]{figures/aggregation}
7 | \end{center}
8 | \caption{Schema Diagram for the Aggregation, Bag, Collection Pattern. The visual notation is explained in Chapter \ref{chap:prelims}.}
9 | \label{fig:Aggregation,}
10 | \end{figure}
11 | \subsection{Summary}
12 | \label{sum:Aggregation,}
13 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
14 | The pattern for an Aggregation, Bag, or Collection is relatively simple. The Bag is a type of unordered collection. This pattern was included in this library for demonstrating a more approachable interface for the partonymy pattern, with respect to membership. For example, we may use this pattern to represent a committee. In this case, the committee member is the\textsf{BagItem}, the committee is the \textsf{Bag}, and the \textsf{itemOf} property is a sub-property to the \textsf{po-member} property found in the Partonymy/Meronymy pattern (Section \ref{sec:Partonymy}). This pattern was adapted from the Bag ontology design pattern and be found at \url{http://ontologydesignpatterns.org/wiki/Submissions:Bag}. Some language is borrowed from the description.
15 |
16 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17 | \subsection{Axiomatization}
18 | \label{axs:Aggregation,}
19 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
20 | \begin{align}
21 | % General Axioms
22 | \textsf{Bag} &\sqsubseteq \textsf{Collection} \\
23 | \textsf{itemOf} &\sqsubseteq \textsf{po-member} \\
24 | % Domain and Range Restrictions
25 | \exists\textsf{itemOf.BagItem} &\sqsubseteq \textsf{Bag} \\
26 | \textsf{Bag} &\sqsubseteq \forall\textsf{itemOf.BagItem} \\
27 | % Inverse Aliases (if any)
28 | \end{align}
29 |
30 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
31 | \subsection{Explanations}
32 | \label{exp:Aggregation,}
33 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
34 | \begin{enumerate}
35 | \item Subclass: a \textsf{Bag} is a \textsf{Collection}
36 | \item Subproperty: \textsf{itemOf} is a subproperty to \textsf{po-member} from the Partonymy Pattern (Section \ref{sec:Partonymy}).
37 | \item Scoped Domain: the scoped domain of \textsf{itemOf}, scoped by \textsf{BagItem}, is \textsf{Bag}.
38 | \item Scoped Range: the scoped range of \textsf{itemOf}, scoped by \textsf{Bag}, is \textsf{BagItem}.
39 | \end{enumerate}
40 |
41 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
42 | \subsection{Competency Questions}
43 | \label{cqs:Aggregation,}
44 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
45 | \begin{enumerate}[CQ1.]
46 | \item What bag is this item an element of?
47 | \item What resource does this item refer to?
48 | \item What are the items contained in this bag?
49 | \end{enumerate}
50 |
51 | \newpage
52 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
53 | % End Section
54 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
55 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--------------------------------------------------------------------------------
/Documentation/patterns/event.tex:
--------------------------------------------------------------------------------
1 | \section{Event}
2 | \label{sec:Event}
3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4 | \begin{figure}[h!]
5 | \begin{center}
6 | \includegraphics[width=.8\textwidth]{figures/event}
7 | \end{center}
8 | \caption{Schema Diagram for the Event Pattern. The visual notation is explained in Chapter \ref{chap:prelims}.}
9 | \label{fig:Event}
10 | \end{figure}
11 | \subsection{Summary}
12 | \label{sum:Event}
13 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
14 | The purpose of this pattern is to provide a minimalistic model of an event where it is not always possible to separate its spatial and the temporal aspects, thus can model events that move or possess discontinuous temporal extent. Events, according to this model, have at least one participant, attached via a \textsf{ParticipantRole} (Section \ref{sec:ParticipantRole}). A more thorough examination of the pattern and some additional (optional) axioms can be found in \cite{event}. Some language is borrowed from \url{http://ontologydesignpatterns.org/wiki/Submissions:EventCore}.
15 |
16 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17 | \subsection{Axiomatization}
18 | \label{axs:Event}
19 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
20 | \begin{align}
21 | % General Axioms
22 | \textsf{subEventOf} \circ \textsf{subEventOf} &\sqsubseteq \textsf{subEventOf} \\
23 | % Domain and Range Restrictions
24 | \textsf{Event} &\sqsubseteq \text{=1} \textsf{hasSpatiotemporalExtent.SpatiotemporalExtent} \\
25 | \textsf{Event} &\sqsubseteq \exists \textsf{providesParticipantRole.ParticipantRole} \\
26 | \top &\sqsubseteq \forall \textsf{hasSpatiotemporalExtent.SpatiotemporalExtent} \\
27 | \top &\sqsubseteq \forall \textsf{providesParticipantRole.ParticipantRole} \\
28 | \exists \textsf{subEventOf.}\top &\sqsubseteq \textsf{Event} \\
29 | \top &\sqsubseteq \forall \textsf{subEventOf.Event}
30 | % Inverse Aliases (if any)
31 | \end{align}
32 |
33 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
34 | \subsection{Explanations}
35 | \label{exp:Event}
36 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
37 | \begin{enumerate}
38 | \item Role Chain: \textsf{subEventOf} is transitive.
39 | \item \textsf{Event} has exactly one \textsf{SpatiotemporalExtent}.
40 | \item \textsf{Event} provides at least one \textsf{ParticipantRole}.
41 | \item Range: the range of \textsf{hasSpatiotemporalExtent} is \textsf{SpatiotemporalExtent}.
42 | \item Range: the range of \textsf{providesParticipantRole} is \textsf{ParticipantRole}.
43 | \item Domain: the domain of \textsf{subEventOf} is \textsf{Event}.
44 | \item Range: the range of \textsf{subEventOf} is \textsf{Event}.
45 | \end{enumerate}
46 |
47 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
48 | \subsection{Remarks}
49 | \label{rem:Event}
50 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
51 | It is also possible to equip the pattern with the following rule.
52 | \begin{equation}
53 | \textsf{Event}(x) \wedge \textsf{providesParticipantRole}(x,p) \wedge \textsf{subEventOf}(x,y) \rightarrow \textsf{providesParticipantRole}(y,p)
54 | \end{equation}
55 | This rule can be converted into OWL DL through \emph{rolification} \cite{KrisnadhiMH11}.This results in the following axioms.
56 | \begin{align}
57 | \textsf{Event} &\equiv \exists R_\textsf{Event}.\textsf{Self} \\
58 | \textsf{subEventOf}^- \circ R_\textsf{Event} \circ \textsf{providesParticipantRole} &\sqsubseteq \textsf{providesParticipantRole}
59 | \end{align}
60 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
61 | \subsection{Competency Questions}
62 | \label{cqs:Event}
63 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
64 | \begin{enumerate}[CQ1.]
65 | \item Where and when did the 1990 World Chess Championship Match take place?
66 | \item Who were involved in the 1990 World Chess Championship Match?
67 | \end{enumerate}
68 | \newpage
69 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
70 | % End Section
71 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
72 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--------------------------------------------------------------------------------
/Documentation/patterns/explicit.tex:
--------------------------------------------------------------------------------
1 | \section{Explicit Typing}
2 | \label{sec:Explicit}
3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4 | \begin{figure}[h!]
5 | \begin{center}
6 | \includegraphics[width=.7\textwidth]{figures/explicit}
7 | \end{center}
8 | \caption{Schema Diagram for the Explicit Typing Pattern. The visual notation is explained in Chapter \ref{chap:prelims}.}
9 | \label{fig:Explicit}
10 | \end{figure}
11 | \subsection{Summary}
12 | \label{sum:Explicit}
13 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
14 | The pattern for explicit typing is very straightforward. Indeed, it is merely a representation of what we consider to be a "best practice." This pattern is used when there is a finite, but mutable number of types of a thing. We find this easier to maintain than a series of subclass relationships.
15 |
16 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17 | \subsection{Axiomatization}
18 | \label{axs:Explicit}
19 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
20 | \begin{align}
21 | \top &\sqsubseteq \forall\textsf{hasType.Type}
22 | \end{align}
23 |
24 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
25 | \subsection{Explanations}
26 | \label{exp:Explicit}
27 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
28 | \begin{enumerate}
29 | \item Range: the range of \textsf{hasType} is \textsf{Type}.
30 | \end{enumerate}
31 |
32 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
33 | \subsection{Competency Questions}
34 | \label{cqs:Explicit}
35 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
36 | \begin{enumerate}[CQ1.]
37 | \item What is the type of Event?
38 | \item Which type of apparatus is that?
39 | \end{enumerate}
40 |
41 | \newpage
42 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
43 | % End Section
44 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
45 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--------------------------------------------------------------------------------
/Documentation/patterns/identifier.tex:
--------------------------------------------------------------------------------
1 | \section{Identifier}
2 | \label{sec:Identifier}
3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4 | \begin{figure}[h!]
5 | \begin{center}
6 | \includegraphics[width=.7\textwidth]{figures/identifier}
7 | \end{center}
8 | \caption{Schema Diagram for the Identifier Pattern. The visual notation is explained in Chapter \ref{chap:prelims}.}
9 | \label{fig:Identifier}
10 | \end{figure}
11 | \subsection{Summary}
12 | \label{sum:Identifier}
13 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
14 | This pattern is used for associating some sort of identifier and metadata with a thing. One could view this pattern as a reification of the \textsf{ExplicitType} Pattern as found in Section \ref{sec:Explicit}. In this case, we wish to associate additional information aside from its type with a thing, e.g. an identifier may be a URL or a primary key value in a database. We believe that this pattern meshes well with the \textsf{EntityWithProvenance} Pattern which may be found in Section \ref{sec:Provenance}.
15 |
16 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17 | \subsection{Axiomatization}
18 | \label{axs:Identifier}
19 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
20 | \begin{align}
21 | % General Axioms
22 | % Domain and Range restrictions
23 | \top &\sqsubseteq \forall \textsf{hasIdentifier.Identifier} \\
24 | \exists \textsf{hasIdentifierType.}\top &\sqsubseteq \textsf{Identifier} \\
25 | \top &\sqsubseteq \forall \textsf{hasIdentifierType.IDType} \\
26 | \top &\sqsubseteq \forall \textsf{identifierAsText.xsd:string}
27 | % Inverse Aliases (if any)
28 | \end{align}
29 |
30 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
31 | \subsection{Explanations}
32 | \label{exp:Identifier}
33 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
34 | \begin{enumerate}
35 | \item Range: the range of \textsf{hasIdentifier} is \textsf{Identifier}.
36 | \item Domain: the domain of \textsf{hasIdentifierType} is \textsf{Identifier}.
37 | \item Range: the range of \textsf{hasIdentifierType} is \textsf{IDType}.
38 | \item Range: the range of \textsf{identifierAsText} is \textsf{xsd:string}.
39 | \end{enumerate}
40 |
41 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
42 | \subsection{Competency Questions}
43 | \label{cqs:Identifier}
44 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
45 | \begin{enumerate}[CQ1.]
46 | \item The merchant is assigned what identifier in this historical databse?
47 | \item Where can this information be validated/obtained?
48 | \end{enumerate}
49 |
50 | \newpage
51 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
52 | % End Section
53 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
54 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--------------------------------------------------------------------------------
/Documentation/patterns/name.tex:
--------------------------------------------------------------------------------
1 | \section{Name Stub}
2 | \label{sec:Name}
3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4 | \begin{figure}[h!]
5 | \begin{center}
6 | \includegraphics[width=.7\textwidth]{figures/name}
7 | \end{center}
8 | \caption{Schema Diagram for Name Stub. The visual notation is explained in Chapter \ref{chap:prelims}.}
9 | \label{fig:Name}
10 | \end{figure}
11 | \subsection{Summary}
12 | \label{sum:Name}
13 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
14 | The \textsf{NameStub} Pattern is a specialization of the \textsf{Stub} Pattern found in Section \ref{sec:Stubs}. It is included here for convenience as it is has been frequently encountered in our modelling experiences.
15 |
16 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17 | \subsection{Axiomatization}
18 | \label{axs:Name}
19 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
20 | \begin{align}
21 | \top &\sqsubseteq \forall \textsf{nameAsString.xsd:string}
22 | \end{align}
23 |
24 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
25 | \subsection{Explanations}
26 | \label{exp:Name}
27 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
28 | \begin{enumerate}
29 | \item Range: the range of \textsf{nameAsString} is \textsf{xsd:string}.
30 | \end{enumerate}
31 |
32 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
33 | \subsection{Competency Question}
34 | \label{cqs:Name}
35 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
36 | \begin{enumerate}[CQ1.]
37 | \item What is the name of the lecturer?
38 | \end{enumerate}
39 |
40 | \newpage
41 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
42 | % End Section
43 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
44 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--------------------------------------------------------------------------------
/Documentation/patterns/participantrole.tex:
--------------------------------------------------------------------------------
1 | \section{ParticipantRole}
2 | \label{sec:ParticipantRole}
3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4 | \begin{figure}[h!]
5 | \begin{center}
6 | \includegraphics[width=.8\textwidth]{figures/participantrole}
7 | \end{center}
8 | \caption{Schema Diagram for the ParticipantRole Pattern. The visual notation is explained in Chapter \ref{chap:prelims}.}
9 | \label{fig:ParticipantRole}
10 | \end{figure}
11 | \subsection{Summary}
12 | \label{sum:ParticipantRole}
13 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
14 | The \textsf{ParticipantRole} Pattern is a specialization of the \textsf{AgentRole} Pattern, which can be found in Section \ref{sec:AgentRole}; many axioms are inherited due to this. We include it for convenience as it occurs frequently in our modelling experiences. This pattern has additional synergies with the \textsf{Event} Pattern \cite{event,enslave}.
15 |
16 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17 | \subsection{Axiomatization}
18 | \label{axs:ParticipantRole}
19 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
20 | \begin{align}
21 | \textsf{ParticipantRole} &\sqsubseteq \textsf{AgentRole} \\
22 | \textsf{providesParticipantRole} &\sqsubseteq \textsf{providesAgentRole} \\
23 | \top &\sqsubseteq \forall \textsf{providesParticipantRole.ParticipantRole} \\
24 | \textsf{AgentRole} &\sqsubseteq \text{=1}\textsf{isPerformedBy.Agent} \\
25 | \textsf{AgentRole} &\sqsubseteq \text{=1}\textsf{hasTemporalExtent.TemporalExtent} \\
26 | % Domain and Range Restrictions
27 | \exists\textsf{isPerformedBy.Agent} &\sqsubseteq \textsf{AgentRole} \\
28 | \textsf{AgentRole} &\sqsubseteq \forall\textsf{isPerformedBy.Agent} \\
29 | \exists\textsf{hasTemporalExtent.TemporalExtent} &\sqsubseteq \textsf{AgentRole} \\
30 | \top &\sqsubseteq \forall\textsf{hasTemporalExtent.TemporalExtent} \\
31 | \top &\sqsubseteq \forall\textsf{providesAgentRole.AgentRole} \\
32 | % Inverses
33 | \textsf{isPerformedBy} &\equiv \textsf{performsAgentRole}^- \\
34 | \textsf{isProvidedBy} &\equiv \textsf{providesAgentRole}^-
35 | \end{align}
36 |
37 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
38 | \subsection{Explanations}
39 | \label{exp:ParticipantRole}
40 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
41 | \begin{enumerate}
42 | \item Subclass: every \textsf{ParticipantRole} is an \textsf{AgentRole}.
43 | \item Subproperty: \textsf{providesParticipantRole} is a subproperty of \textsf{providesAgentRole}.
44 | \item Range: the range of \textsf{providesParticipantRole} is \textsf{ParticipantRole}.
45 | \item Exactly one \textsf{Agent} performs an \textsf{AgentRole}.
46 | \item An \textsf{AgentRole} has exactly one \textsf{TemporalExtent}.
47 | \item Scoped Domain: the scoped domain of \textsf{isPerformedBy}, scoped by \textsf{Agent}, is \textsf{AgentRole}.
48 | \item Scoped Range: the scoped range of \textsf{isPerformedBy}, scoped by \textsf{AgentRole}, is \textsf{Agent}.
49 | \item Scoped Domain: the scoped domain of \textsf{hasTemporalExtent}, scoped by \textsf{TemporalExtent}, is \textsf{AgentRole}.
50 | \item Range: the range of \textsf{hasTemporalExtent} is \textsf{TemporalExtent}.
51 | \item Range: the range of \textsf{providesAgentRole} is \textsf{AgentRole}.
52 | \item Inverse Alias.
53 | \item Inverse Alias.
54 | \end{enumerate}
55 |
56 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
57 | \subsection{Competency Questions}
58 | \label{cqs:ParticipantRole}
59 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
60 | \begin{enumerate}[CQ1.]
61 | \item Who were the participants in this event?
62 | \item Which students attended the lecture?
63 | \item Who were the passengers on the cruise?
64 | \end{enumerate}
65 |
66 | \newpage
67 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
68 | % End Section
69 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
70 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--------------------------------------------------------------------------------
/Documentation/patterns/partonymy.tex:
--------------------------------------------------------------------------------
1 | \section{Partonymy/Meronymy}
2 | \label{sec:Partonymy}
3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4 | \begin{figure}[h!]
5 | \begin{center}
6 | \includegraphics[width=.7\textwidth]{figures/partonymy}
7 | \end{center}
8 | \caption{Schema Diagram for Partonymy.}
9 | \label{fig:Partonymy}
10 | \end{figure}
11 | \subsection{Summary}
12 | \label{sum:Partonymy}
13 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
14 | Part-whole relations are of fundamental importance for how we organize concepts. This pattern follows an approach laid out by Winston in his 1987 landmark paper on ``A Taxonomy of Part-Whole Relations'' \cite{citeulike:171338} which was based on linguistic considerations, but also provided for logical characterizations and axiomatics, and, as such, inform the pattern.
15 |
16 | Essentially, we distinguish between different, interacting partonomies. For example, a component may be part of an engine, which is part of a plane, which belongs to a fleet. These are all part-hood relationships, but they are not transitive.
17 |
18 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19 | \subsection{Axiomatization}
20 | \label{axs:Partonymy}
21 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
22 | \begin{align}
23 | \poComObj \circ \poComObj &\sqsubseteq \poComObj \label{ax:trans1}\\
24 | \poMemCol \circ \poMemCol &\sqsubseteq \poMemCol \\
25 | \poPorMas \circ \poPorMas &\sqsubseteq \poPorMas \\
26 | \poStuObj \circ \poStuObj &\sqsubseteq \poStuObj \\
27 | \poFeaAct \circ \poFeaAct &\sqsubseteq \poFeaAct \\
28 | \poPlaAre \circ \poPlaAre &\sqsubseteq \poPlaAre \label{ax:trans6}\\
29 | \text{AsymmetricObjectProperty}&(\poComObj) \label{ax:asym1}\\
30 | \text{AsymmetricObjectProperty}&(\poMemCol)\\
31 | \text{AsymmetricObjectProperty}&(\poPorMas)\\
32 | \text{AsymmetricObjectProperty}&(\poStuObj)\\
33 | \text{AsymmetricObjectProperty}&(\poFeaAct)\\
34 | \text{AsymmetricObjectProperty}&(\poPlaAre) \label{ax:asym6}\\
35 | \poComObj &\sqsubseteq \partOf \label{ax:subpof1}\\
36 | \poMemCol &\sqsubseteq \partOf\\
37 | \poPorMas &\sqsubseteq \partOf\\
38 | \poStuObj &\sqsubseteq \partOf\\
39 | \poFeaAct &\sqsubseteq \partOf\\
40 | \poPlaAre &\sqsubseteq \partOf \label{ax:subpof6}\\
41 | \spatialLocIn \circ \spatialLocIn &\sqsubseteq \spatialLocIn \label{ax:transloc}\\
42 | \text{ReflexiveObjectProperty}&(\spatialLocIn)\\
43 | \poComObj\circ\spatialLocIn&\sqsubseteq \spatialLocIn \label{ax:spatial1}\\
44 | \spatialLocIn\circ \poComObj&\sqsubseteq\spatialLocIn\\
45 | \poMemCol\circ\spatialLocIn&\sqsubseteq \spatialLocIn\\
46 | \spatialLocIn\circ \poMemCol&\sqsubseteq\spatialLocIn\\
47 | \poPorMas\circ\spatialLocIn&\sqsubseteq \spatialLocIn\\
48 | \spatialLocIn\circ \poPorMas&\sqsubseteq\spatialLocIn\\
49 | \poStuObj\circ\spatialLocIn&\sqsubseteq \spatialLocIn\\
50 | \spatialLocIn\circ \poStuObj&\sqsubseteq\spatialLocIn\\
51 | \poFeaAct\circ\spatialLocIn&\sqsubseteq \spatialLocIn\\
52 | \spatialLocIn\circ \poFeaAct&\sqsubseteq\spatialLocIn\\
53 | \poPlaAre\circ\spatialLocIn&\sqsubseteq \spatialLocIn\\
54 | \spatialLocIn\circ \poPlaAre&\sqsubseteq\spatialLocIn\\
55 | \textsf{Po-Component-Type} &\sqsubseteq \textsf{RelationInstance} \\
56 | \textsf{Po-Member-Type} &\sqsubseteq \textsf{RelationInstance} \\
57 | \textsf{Po-Portion-Type} &\sqsubseteq \textsf{RelationInstance} \\
58 | \textsf{Po-Stuff-Type} &\sqsubseteq \textsf{RelationInstance} \\
59 | \textsf{Po-Feature-Type} &\sqsubseteq \textsf{RelationInstance} \\
60 | \textsf{Po-Place-Type} &\sqsubseteq \textsf{RelationInstance} \\
61 | \textsf{Po-Part-Of-Type} &\sqsubseteq \textsf{RelationInstance} \\
62 | \textsf{Spatially-Located-In-Type} &\sqsubseteq \textsf{RelationInstance}
63 | \end{align}
64 |
65 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
66 | \subsection{Explanations}
67 | \label{exp:Partonymy}
68 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
69 | \begin{enumerate}
70 | \item Transitivity.
71 | \item Transitivity.
72 | \item Transitivity.
73 | \item Transitivity.
74 | \item Transitivity.
75 | \item Transitivity.
76 | \item Asymmetric Object Property.
77 | \item Asymmetric Object Property.
78 | \item Asymmetric Object Property.
79 | \item Asymmetric Object Property.
80 | \item Asymmetric Object Property.
81 | \item Asymmetric Object Property.
82 | \item Subclass.
83 | \item Subclass.
84 | \item Subclass.
85 | \item Subclass.
86 | \item Subclass.
87 | \item Subclass.
88 | \item Transitivity.
89 | \item Reflexive Object Property.
90 | \item Role Chain: the concatenation of \poComObj{} and \spatialLocIn{} is \spatialLocIn{}.
91 | \item Role Chain: the concatenation of \spatialLocIn{} and \poComObj{} is \spatialLocIn{}.
92 | \item Role Chain: the concatenation of \poMemCol{} and \spatialLocIn{} is \spatialLocIn{}.
93 | \item Role Chain: the concatenation of \spatialLocIn{} and \poMemCol{} is \spatialLocIn{}.
94 | \item Role Chain: the concatenation of \poPorMas{} and \spatialLocIn{} is \spatialLocIn{}.
95 | \item Role Chain: the concatenation of \spatialLocIn{} and \poPorMas{} is \spatialLocIn{}.
96 | \item Role Chain: the concatenation of \poStuObj{} and \spatialLocIn{} is \spatialLocIn{}.
97 | \item Role Chain: the concatenation of \spatialLocIn{} and \poStuObj{} is \spatialLocIn{}.
98 | \item Role Chain: the concatenation of \poFeaAct{} and \spatialLocIn{} is \spatialLocIn{}.
99 | \item Role Chain: the concatenation of \spatialLocIn{} and \poFeaAct{} is \spatialLocIn{}.
100 | \item Role Chain: the concatenation of \poPlaAre{} and \spatialLocIn{} is \spatialLocIn{}.
101 | \item Role Chain: the concatenation of \spatialLocIn{} and \poPlaAre{} is \spatialLocIn{}.
102 | \item Subclass.
103 | \item Subclass.
104 | \item Subclass.
105 | \item Subclass.
106 | \item Subclass.
107 | \item Subclass.
108 | \item Subclass.
109 | \item Subclass.
110 | \end{enumerate}
111 |
112 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
113 | \subsection{Competency Question}
114 | \label{cqs:Partonymy}
115 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
116 | \begin{enumerate}[CQ1.]
117 | \item Is the Everglades part of Florida?
118 | \item Is the plane in the Warehouse?
119 | \item What are all engine components?
120 | \item Is he part of the family?
121 | \end{enumerate}
122 |
123 | \newpage
124 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
125 | % End Section
126 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
127 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--------------------------------------------------------------------------------
/Documentation/patterns/provenance.tex:
--------------------------------------------------------------------------------
1 | \section{Provenance}
2 | \label{sec:Provenance}
3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4 | \begin{figure}[h!]
5 | \begin{center}
6 | \includegraphics[width=.7\textwidth]{figures/provenance}
7 | \end{center}
8 | \caption{Schema Diagram for the Provenance Pattern. The visual notation is explained in Chapter \ref{chap:prelims}.}
9 | \label{fig:Provenance}
10 | \end{figure}
11 | \subsection{Summary}
12 | \label{sum:Provenance}
13 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
14 | The \textsf{EntityWithProvenance} Pattern is extracted from the PROV-O ontology. At the pattern level, we do not want to make the ontological committment to a full-blown ontology. It suffices to align a sub-pattern to the core of PROV-O \cite{provo}.
15 |
16 | The \textsf{EntityWithProvenance} class is any item of interest to which a developer would like to attach provenance information. That is they are interested in capturing, who or what created that item, what was used to derive it, and what method was used to do so. The ``who or what'' is captured by using the \textsf{Agent} class. The property, \textsf{wasDerivedFrom} is eponymous---it denotes that some set of resources was used during the \textsf{ProvenanceActivity} to generate the \textsf{EntityWithProvenance}.
17 |
18 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19 | \subsection{Axiomatization}
20 | \label{axs:Provenance}
21 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
22 | \begin{align}
23 | \exists\textsf{attributedTo}.\textsf{Agent} &\sqsubseteq \textsf{EntityWithProvenance}\\
24 | \textsf{EntityWithProvenance} &\sqsubseteq \forall\textsf{attributedTo}.\textsf{Agent}\\
25 | \exists\textsf{generatedBy}.\textsf{ProvenanceActivity} &\sqsubseteq \textsf{EntityWithProvenance}\\
26 | \textsf{EntityWithProvenance} &\sqsubseteq \forall\textsf{generatedBy}.\textsf{ProvenanceActivity}\\
27 | \exists\textsf{used}.\textsf{EntityWithProvenance} &\sqsubseteq \textsf{ProvenanceActivity}\\
28 | \textsf{ProvenanceActivity} &\sqsubseteq \forall\textsf{used}.\textsf{EntityWithProvenance}\\
29 | \exists\textsf{performedBy}.\textsf{Agent} &\sqsubseteq \textsf{ProvenanceActivity}\\
30 | \textsf{ProvenanceActivity} &\sqsubseteq \forall\textsf{performedBy}.\textsf{Agent}
31 | \end{align}
32 |
33 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
34 | \subsection{Explanations}
35 | \label{exp:Provenance}
36 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
37 | \begin{enumerate}
38 | \item Scoped Domain:The scoped domain of \textsf{attributedTo}, scoped by \textsf{Agent}, is \textsf{EntityWithProvenance}.
39 | \item Scoped Range: The scoped range of \textsf{attributedTo}, scoped by \textsf{EntityWithProvenance}, is \textsf{Agent}.
40 | \item Scoped Domain:The scoped domain of \textsf{generatedBy}, scoped by \textsf{ProvenanceActivity}, is \textsf{EntityWithProvenance}.
41 | \item Scoped Range: The scoped range of \textsf{generatedBy}, scoped by \textsf{EntityWithProvenance}, is \textsf{ProvenanceActivity}.
42 | \item Scoped Domain:The scoped domain of \textsf{used}, scoped by \textsf{EntityWithProvenance}, is \textsf{ProvenanceActivity}
43 | \item Scoped Range: The scoped range of \textsf{used}, scoped by \textsf{ProvenananceActivity}, is \textsf{EntityWithProvenance}.
44 | \item Scoped Domain:The scoped domain of \textsf{performedBy}, scoped by \textsf{Agent}, is \textsf{ProvenanceActivity}.
45 | \item Scoped Range: The scoped range of \textsf{performedBy}, scoped by \textsf{ProvenanceActivity}, is \textsf{Agent}.
46 | \end{enumerate}
47 |
48 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
49 | \subsection{Competency Questions}
50 | \label{cqs:Provenance}
51 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
52 | \begin{enumerate}[CQ1.]
53 | \item Who are the contributors to this Wikidata page?
54 | \item From which database is this entry taken?
55 | \item Which method was used to generate this chart and from which spreadsheet did the data originate?
56 | \item Who provided this research result?
57 | \end{enumerate}
58 |
59 | \newpage
60 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
61 | % End Section
62 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
63 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--------------------------------------------------------------------------------
/Documentation/patterns/quantities.tex:
--------------------------------------------------------------------------------
1 | \section{Quantities and Units}
2 | \label{sec:Quantities}
3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4 | \begin{figure}[h!]
5 | \begin{center}
6 | \includegraphics[width=.7\textwidth]{figures/quantities}
7 | \end{center}
8 | \caption{Schema Diagram for Quantities and Units. The visual notation is explained in Chapter \ref{chap:prelims}.}
9 | \label{fig:Quantities}
10 | \end{figure}
11 | \subsection{Summary}
12 | \label{sum:Quantities}
13 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
14 | This pattern is heavily adapted from QUDT\footnote{\url{http://www.qudt.org/release2/qudt-catalog.html}} and \cite{momtut}. This pattern allows a developer to express a quantity of some stuff. The nature of quantities is rather complex, due to the fact that there are a multitude of dimensions, unit types, and ways to measure quantities. The \textsf{Quantity} class is used to express the nature of the quantity via its \textsf{QuantityKind}. This is intended to be a controlled vocabulary. We direct the reader to QUDT's documentation for further exploration. A \textsf{QuantityValue} expresses the magnitude of the \textsf{Quantity} via an \textsf{xsd:double} and a \textsf{Unit}. Unit is also recommended to be a controlled vocabulary. Both \textsf{hasQuantityKind} and \textsf{hasUnit} are instances of the Explicit Typing Pattern (Section \ref{sec:Explicit}).
15 |
16 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17 | \subsection{Axiomatization}
18 | \label{axs:Quantities}
19 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
20 | \begin{align}
21 | \top &\sqsubseteq \forall \textsf{hasQuantityKind.QuantityKind} \\
22 | \top &\sqsubseteq \forall \textsf{hasQuantityValue.QuantityValue} \\
23 | \top &\sqsubseteq \forall \textsf{hasUnit.Unit} \\
24 | \top &\sqsubseteq \forall \textsf{hasNumericalValue.xsd:double}
25 | \end{align}
26 |
27 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
28 | \subsection{Explanations}
29 | \label{exp:Quantities}
30 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
31 | \begin{enumerate}
32 | \item Range: the range of \textsf{hasQuantityKind} is \textsf{QuantityKind}.
33 | \item Range: the range of \textsf{hasQuantityValue} is \textsf{QuantityValue}.
34 | \item Range: the range of \textsf{hasUnit} is \textsf{Unit}.
35 | \item Range: the range of \textsf{hasNumericValue} is \textsf{xsd:double}.
36 | \end{enumerate}
37 |
38 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
39 | \subsection{Competency Questions}
40 | \label{cqs:Quantities}
41 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
42 | \begin{enumerate}[CQ1.]
43 | \item How much does an elephant weigh in kilograms?
44 | \item How long is Jupiter from the Sun, at its farthest, in furlongs?
45 | \item How long ago was the Mezazoic Era?
46 | \end{enumerate}
47 |
48 | \newpage
49 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
50 | % End Section
51 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
52 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--------------------------------------------------------------------------------
/Documentation/patterns/reification.tex:
--------------------------------------------------------------------------------
1 | \section{Property Reification}
2 | \label{sec:Property}
3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4 | \begin{figure}[h!]
5 | \begin{center}
6 | \includegraphics[width=.7\textwidth]{figures/reification}
7 | \end{center}
8 | \caption{Schema Diagram for Property Reification. The visual notation is explained in Chapter \ref{chap:prelims}. Additioanlly, we use the dotted line with solid arrow to indicate which property is being reified. This relation has no bearing on the below axioms.}
9 | \label{fig:Property}
10 | \end{figure}
11 | \subsection{Summary}
12 | \label{sum:Property}
13 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
14 | In OWL, unfortunately, it is not possible to directly represent $n$-ary relationships. However, it is still possible to capture that information. This notion is called reification. The \textsf{Property Reification} pattern is essentially a metapattern; it could be better considered to be a modelling practice. Here, though, we present a set of axioms that will allow a developer to quickly reify a concept by specializing the framework.
15 |
16 | Consider that we would like to relate two \textsf{Things} together via some \textsf{propertyToBeReified} given some \textsf{Context} information that also needs to be captured. To do so, we create a \textsf{ReifiedProperty} and attach the information to this concept. A more concrete example of this can be seen in the \textsf{AgentRole} and \textsf{ParticipantRole} patterns (Sections \ref{sec:AgentRole} and {\ref{sec:ParticipantRole}).
17 |
18 | The axioms below are minimalistic, because it is hard to make claims about the domain and range at the most general case. It should be safe to say that there is certain some connection between the first object of interest and the reified property itself. But, perhaps, the second reified property is reused from some other pattern or part of the ontology---we cannot make any statements about it at this level. Furthermore, concept of ``context'' is loose and open to interpretation by the developer. Could it be subclassed during specialization or use of this pattern, perhaps? Is it necessary, perhaps not. It does, however, suffice to show \emph{how} reification with context works.
19 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
20 | \subsection{Axiomatization}
21 | \label{axs:Property}
22 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
23 | \begin{align}
24 | \top &\sqsubseteq \forall \textsf{reifiedProperty1.ReifiedProperty} \\
25 | \top &\sqsubseteq \forall \textsf{hasContext.Context} \\
26 | \top &\sqsubseteq \exists \textsf{hasContext.Context} \\
27 | \end{align}
28 |
29 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
30 | \subsection{Explanations}
31 | \label{exp:Property}
32 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
33 | \begin{enumerate}
34 | \item Range: the range of \textsf{reifiedProperty1} is \textsf{ReifiedProperty}.
35 | \item Range: the range of \textsf{hasContext} is \textsf{Context}.
36 | \item Existential: a \textsf{ReifiedProperty} should have at least some contextual information, otherwise, it wouldn't need to be reified.
37 |
38 | \end{enumerate}
39 |
40 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
41 | \subsection{Competency Questions}
42 | \label{cqs:Property}
43 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
44 | \begin{enumerate}[CQ1.]
45 | \item What was the street named during the Great Depression?
46 | \item From what years was Al Gore Vice President?
47 | \item What is the unit of measurement was used to weigh the elephant?
48 | \end{enumerate}
49 |
50 | \newpage
51 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
52 | % End Section
53 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
54 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--------------------------------------------------------------------------------
/Documentation/patterns/sequence.tex:
--------------------------------------------------------------------------------
1 | \section{Sequence, List}
2 | \label{sec:Sequence}
3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4 | \begin{figure}[h!]
5 | \begin{center}
6 | \includegraphics[width=.8\textwidth]{figures/sequence}
7 | \end{center}
8 | \caption{Schema Diagram for the Sequence and List Pattern. The visual notation is explained in Chapter \ref{chap:prelims}.}
9 | \label{fig:Spatiotemporal}
10 | \label{fig:Sequence,}
11 | \end{figure}
12 | \subsection{Summary}
13 | \label{sum:Sequence}
14 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
15 | The \textsf{Sequence} Pattern is a way of imposing order upon items of interest; it follows the conceptualization of a Linked List from computer science. This pattern is a simplified view of the \textsf{Tree} Pattern (as found in Section \ref{sec:Tree}) and is adapted from \cite{tree}. While this pattern seems very abstract, it is both easy to specialize and occurs very frequently. In this resource, the pattern occurs in the \textsf{Trajectory} Pattern (a sequence of Fixes), the \textsf{SpatiotemporalExtent} Pattern (a sequence of \textsf{Place}, \textsf{Time} pairs), and \textsf{SpatialExtent} (a sequence of \textsf{PointsInSpace}.
16 |
17 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18 | \subsection{Axiomatization}
19 | \label{axs:Sequence,}
20 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
21 | \begin{align}
22 | \textsf{FirstItem} &\sqsubseteq \textsf{ListItem} \\
23 | \textsf{LastItem} &\sqsubseteq \textsf{ListItem} \\
24 | \textsf{ListItem} &\sqsubseteq \forall \textsf{hasNext.ListItem} \\
25 | \textsf{ListItem} &\sqsubseteq \forall \textsf{hasNext}^-\textsf{.ListItem} \\
26 | \textsf{ListItem} \sqcap \lnot \textsf{LastItem} &\equiv \textsf{ListItem} \sqcap \mathord{=1}\textsf{hasNext.ListItem} \\
27 | \textsf{ListItem} \sqcap \lnot \textsf{FirstItem} &\equiv \textsf{ListItem} \sqcap \mathord{=1}\textsf{hasNext}^- \textsf{.ListItem} \\
28 | \textsf{FirstItem} &\equiv \textsf{ListItem} \sqcap \lnot \exists \textsf{hasNext}^-\textsf{.}\top \\
29 | \textsf{LastItem} &\equiv \textsf{ListItem} \sqcap \lnot \exists \textsf{hasNext.}\top \\
30 | \textsf{hasNext} &\sqsubseteq \textsf{hasSuccessor} \\
31 | \textsf{hasNext} \circ \textsf{hasSuccessor} &\sqsubseteq \textsf{hasSuccessor} \\
32 | \text{Irreflexive}&(\textsf{hasSuccessor})
33 | \end{align}
34 |
35 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
36 | \subsection{Explanations}
37 | \label{exp:Sequence}
38 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
39 | \begin{enumerate}
40 | \item Subclass: the \textsf{FirstItem} is a \textsf{ListItem}.
41 | \item Subclass: the \textsf{LastItem} is a \textsf{ListItem}.
42 | \item Scoped Range: the range of \textsf{hasNext}, scoped by \textsf{ListItem}, is \textsf{ListItem}.
43 | \item Scoped Range: the range of \textsf{hasNext}$^-$, scoped by \textsf{ListItem}, is \textsf{ListItem}.
44 | \item A \textsf{ListItem} that is not the \textsf{LastItem} has exactly one next \textsf{ListItem}.
45 | \item A \textsf{ListItem} that is not the \textsf{FirstItem} has exactly one previous \textsf{ListItem}.
46 | \item The \textsf{FirstItem} does not have have a predecessor.
47 | \item The \textsf{LastItem} does not have a next \textsf{ListItem}.
48 | \item Subproperty: \textsf{hasNext} is a subproperty to \textsf{hasSuccessor}.
49 | \item Role Chain: the successor of a \textsf{ListItem}'s next \textsf{ListItem} is its successor.
50 | \item Irreflexivity.
51 | \end{enumerate}
52 |
53 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
54 | \subsection{Competency Questions}
55 | \label{cqs:Sequence}
56 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
57 | \begin{enumerate}[CQ1.]
58 | \item What is the first element of the list?
59 | \item What is the last element of the list?
60 | \item Is $x$ a predecessor of $y$?
61 | \end{enumerate}
62 |
63 | \newpage
64 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
65 | % End Section
66 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
67 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--------------------------------------------------------------------------------
/Documentation/patterns/spatial.tex:
--------------------------------------------------------------------------------
1 | \section{Spatial Extent}
2 | \label{sec:Spatial}
3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4 | \begin{figure}[h!]
5 | \begin{center}
6 | \includegraphics[width=.8\textwidth]{figures/spatial}
7 | \end{center}
8 | \caption{Schema Diagram for Spatial Extent. The visual notation is explained in Chapter \ref{chap:prelims}.}
9 | \label{fig:Spatial}
10 | \end{figure}
11 | \subsection{Summary}
12 | \label{sum:Spatial}
13 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
14 | The \textsf{SpatialExtent} pattern is characterized by a set of \textsf{Interiors}, which are in turn characterized by a \textsf{PointInSpace-Sequence}. A \textsf{PointInSpace-Sequence} consists of \textsf{PointInSpace-SequenceElements}, which are constituted by \textsf{PointInSpace}. A \textsf{PointInSpace} is described by a value and a reference system. \textsf{PIS-Sequence} is a specialization of the \textsf{Sequence} Pattern (Section \ref{sec:Sequence}). We also further choose to use the Explicit Typing Pattern for \textsf{PointInSpace} and \textsf{ReferenceSystem}.
15 |
16 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17 | \subsection{Axiomatization}
18 | \label{axs:Spatial}
19 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
20 | \begin{align}
21 | \textsf{SpatialExtent} &\sqsubseteq \mathord{=}n \textsf{contains.Interior} \\
22 | \textsf{Interior} &\sqsubseteq \mathord{=}1 \textsf{isDefinedBy.PIS-Sequence} \\
23 | \textsf{PIS-Sequence} &\sqsubseteq \mathord{=}1 \textsf{hasFirst.PIS-SequenceElement} \\
24 | \textsf{PIS-Sequence} &\sqsubseteq \mathord{=}1 \textsf{hasLast.PIS-SequenceElement} \\
25 | \textsf{PIS-SequenceElement} &\sqsubseteq \mathord{=}1 \textsf{hasNext.PIS-SequenceElement} \\
26 | \textsf{PIS-SequenceElement} &\sqsubseteq \mathord{=}1 \textsf{constitutedBy.PointInSpace} \\
27 | \textsf{PointInSpace} &\sqsubseteq \mathord{=}1 \textsf{hasReferenceSystem.ReferenceSystem} \\
28 | \textsf{PointInSpace} &\sqsubseteq \mathord{=}1 \textsf{hasValue.Value}
29 | \end{align}
30 |
31 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
32 | \subsection{Explanations}
33 | \label{exp:Spatial}
34 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
35 | \begin{enumerate}
36 | \item Numerical Restriction: a \textsf{SpatialExtent} \textsf{contains} exactly $n$ \textsf{Interiors}. See the following section.
37 | \item Numerical Restriction: a \textsf{Interior} \textsf{isDefinedBy} exactly 1 \textsf{PIS-Sequence}.
38 | \item Numerical Restriction: a \textsf{PIS-Sequence} has exactly 1 first \textsf{PIS-SequenceElement}.
39 | \item Numerical Restriction: a \textsf{PIS-Sequence} has exactly 1 last \textsf{PIS-SequenceElement}.
40 | \item Numerical Restriction: a \textsf{PIS-SequenceElement} has exactly 1 next \textsf{PIS-SequenceElement}.
41 | \item Numerical Restriction: a \textsf{PIS-SequenceElement} \textsf{isConstitutedBy} exactly 1 \textsf{PointInSpace}.
42 | \item Numerical Restriction: a \textsf{PointInSpace} has exactly 1 \textsf{ReferenceSystem}.
43 | \item Numerical Restriction: a \textsf{PointInSpace} has exactly 1 \textsf{Value}.
44 | \end{enumerate}
45 |
46 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
47 | \subsection{Remarks}
48 | \label{rem:Spatial}
49 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
50 | We would also like the pattern to be able to express that a \textsf{SpatialExtent} consists of exactly some \textsf{Interiors} and no others. This is done by equipping the pattern with an axiom that must be tailored to the use-case and two rules for generating a set of assertions.
51 |
52 | \begin{equation}
53 | \textsf{SpatialExtent} \sqsubseteq \mathord{=}n\textsf{contains.Interior}
54 | \end{equation}
55 | where $n$ is the number of expected \textsf{Interiors}. Next,
56 | $$\textit{contains}(\textsf{spatialExtent, interior}_k) \text{ for } k=1,...,n$$
57 | and
58 | $$\textsf{interior}_i \not = \textsf{interior}_j \text{ for } i \not = j$$
59 | This allows us to express a \textsf{SpatialExtent} as a set of \textsf{Interiors}.
60 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
61 | \subsection{Competency Questions}
62 | \label{cqs:Spatial}
63 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
64 | \begin{enumerate}[CQ1.]
65 | \item Where was the Battle of Manassas?
66 | \item What path did the moose take to Canada?
67 | \item Where is the largest prairie in the United States?
68 | \end{enumerate}
69 |
70 | \newpage
71 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
72 | % End Section
73 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
74 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--------------------------------------------------------------------------------
/Documentation/patterns/ste.tex:
--------------------------------------------------------------------------------
1 | \section{Spatiotemporal Extent}
2 | \label{sec:Spatiotemporal}
3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4 | \begin{figure}[h!]
5 | \begin{center}
6 | \includegraphics[width=.8\textwidth]{figures/ste}
7 | \end{center}
8 | \caption{Schema Diagram for the Spatiotemporal Extent Pattern. The visual notation is explained in Chapter \ref{chap:prelims}.}
9 | \label{fig:Spatiotemporal}
10 | \end{figure}
11 | \subsection{Summary}
12 | \label{sum:Spatiotemporal}
13 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
14 | The \textsf{SpatiotemporalExtent} pattern wraps the \textsf{Trajectory} Pattern (Section \ref{sec:Trajectory}). Essentially, it uses the \textsf{Trajectory} Pattern's ability to capture discrete snapshots of something moving along some dimension, but casts it into the familiar three physical dimensions, plus time. This is done by adding the \textsf{atPlace} and \textsf{atTime} properties that hang off of \textsf{Fix}. This pattern is more fully described in \cite{ste}. The \textsf{SpatiotemporalExtent} is primarily used when it is difficult to separate space and time when talking about a concept.
15 |
16 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17 | \subsection{Axiomatization}
18 | \label{axs:Spatiotemporal}
19 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
20 | \begin{align}
21 | \top &\sqsubseteq \forall \textsf{hasSpatiotemporalExtent.SpatiotemporalExtent} \\
22 | \top &\sqsubseteq \forall \textsf{hasTrajectory.Trajectory} \\
23 | \textsf{SpatiotemporalExtent} &\sqsubseteq \exists \textsf{hasTrajectory.Trajectory} \\
24 | \top &\sqsubseteq \forall \textsf{atPlace.Place} \\
25 | \top &\sqsubseteq \forall \textsf{atTime.Time} \\
26 | \textsf{Segment} &\sqsubseteq \mathord{=1}\textsf{startsFrom.Fix}\\
27 | \textsf{Segment} &\sqsubseteq \mathord{=1}\textsf{endsAt.Fix} \\
28 | \textsf{Segment} &\sqsubseteq \exists \textsf{hasSegment}^-\textsf{.Trajectory} \\
29 | \textsf{startsFrom}^- \circ \textsf{endsAt} &\sqsubseteq \textsf{hasNext} \\
30 | \textsf{hasNext} &\sqsubseteq \textsf{hasSuccessor} \\
31 | \textsf{hasSuccessor} \circ \textsf{hasSucessor} &\sqsubseteq \textsf{hasSucessor} \\
32 | \textsf{hasNext}^- &\equiv \textsf{hasPrevious} \\
33 | \textsf{hasSuccessor}^- &\equiv \textsf{hasPredecessor} \\
34 | \textsf{Fix} \sqcap \lnot\exists\textsf{endsAt}^-\textsf{.Segment} &\sqsubseteq \textsf{StartingFix} \\
35 | \textsf{Fix} \sqcap \lnot\exists\textsf{startsFrom}^-\textsf{.Segment} &\sqsubseteq \textsf{EndingFix} \\
36 | \textsf{Trajectory} &\sqsubseteq \exists\textsf{hasSegment.Segment} \\
37 | \textsf{hasSegment} \circ \textsf{startsFrom} &\sqsubseteq \textsf{hasFix} \\
38 | \textsf{hasSegment} \circ \textsf{endsAt} &\sqsubseteq \textsf{hasFix} \\
39 | \exists \textsf{hasSegment.Segment} &\sqsubseteq \textsf{Trajectory} \\
40 | \exists \textsf{hasSegment}^-\textsf{.Trajectory} &\sqsubseteq \textsf{Segment} \\
41 | \exists \textsf{hasFix.Segment} &\sqsubseteq \textsf{Trajectory} \\
42 | \exists \textsf{hasFix}^-\textsf{.Trajectory} &\sqsubseteq \textsf{Fix}
43 | \end{align}
44 |
45 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
46 | \subsection{Explanations}
47 | \label{exp:Spatiotemporal}
48 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
49 | \begin{enumerate}
50 | \item Range: the range of \textsf{hasSpatiotemporalExtent} is \textsf{SpatiotemporalExtent}.
51 | \item Range: the range of \textsf{hasTrajectory} is \textsf{hasTrajectory}.
52 | \item Existential: a \textsf{SpatiotemporalExtent} has at least one \textsf{Trajectory}.
53 | \item Range: the range of \textsf{atPlace} is \textsf{Place}.
54 | \item Range: the range of \textsf{atTime} is \textsf{Time}.
55 | \item \textsf{Segment} \textsf{startFrom} exactly one \textsf{Fix}.
56 | \item \textsf{Segment} \textsf{endsAt} exactly one \textsf{Fix}.
57 | \item Existential: A \textsf{Segment} belongs to at least one \textsf{Trajectory}.
58 | \item Role Chain: the concatenation of \textsf{startsFrom}$^-$ and \textsf{endsAt} is \textsf{hasNext}.
59 | \item Subproperty: \textsf{hasNext} is a subproperty to \textsf{hasSuccessor}.
60 | \item Role Chain: \textsf{hasSuccessor} is transitive.
61 | \item Inverse Alias.
62 | \item Inverse Alias.
63 | \item A \textsf{Fix} that is not where a segment ends is a \textsf{StartingFix}.
64 | \item A \textsf{Fix} that is not where a segment starts is a \textsf{EndingFix}.
65 | \item Existential: a \textsf{Trajectory} has at least one \textsf{Segment}.
66 | \item Role Chain: the concatenation of \textsf{hasSegment} and \textsf{startsFrom} is \textsf{hasFix}.
67 | \item Role Chain: the concatenation of \textsf{hasSegment} and \textsf{endsAt} is \textsf{hasFix}.
68 | \item Scoped Domain: the domain of \textsf{hasSegment}, scoped by \textsf{Segment}, is \textsf{Trajectory}.
69 | \item Scoped Domain: the domain of \textsf{hasSegment}$^-$, scoped by \textsf{Trajectory}, is \textsf{Segment}.
70 | \item Scoped Domain: the domain of \textsf{hasFix}, scoped by \textsf{Segment}, is \textsf{Trajectory}.
71 | \item Scoped Domain: the domain of \textsf{hasFix}$^-$, scoped by \textsf{Trajectory}, is \textsf{Fix}.
72 | \end{enumerate}
73 |
74 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
75 | \subsection{Competency Question}
76 | \label{cqs:Spatiotemporal}
77 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
78 | \begin{enumerate}[CQ1.]
79 | \item Show which birds stop at $x$ and $y$.
80 | \item Show the trajectories which cross national parks.
81 | \item Show the trajectories of birds which are less than one year old.
82 | \end{enumerate}
83 |
84 | \newpage
85 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
86 | % End Section
87 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
88 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--------------------------------------------------------------------------------
/Documentation/patterns/stubs.tex:
--------------------------------------------------------------------------------
1 | \section{Stubs}
2 | \label{sec:Stubs}
3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4 | \begin{figure}[h!]
5 | \begin{center}
6 | \includegraphics[width=.4\textwidth]{figures/stubs}
7 | \end{center}
8 | \caption{Schema Diagram for Stubs. The visual notation is explained in Chapter \ref{chap:prelims}.}
9 | \label{fig:Stubs}
10 | \end{figure}
11 | \subsection{Summary}
12 | \label{sum:Stubs}
13 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
14 | Stubs are a very minimal pattern that could also be described as a technique or best practice. Essentially, during modelling, there are frequently times when developers recognize that a concept is complex, but also out of the scope of an ontology or knowledge graph. However, the developer would like to keep the ontology extensible or allow others to build off of the ontology at that point. One example of this is Name or Title. In many cases, there is no reason to store more than a string for a name or title. However, names and titles are not necessarily inherent to a thing at all times. Yet, delving into those details may be unnecessary for a use-case. To account for this, a developer may want to use as stub. That is, acknowledge the complexity of a concept, but also include the information that is useful. This metapattern is described in more detail in \cite{stub}.
15 |
16 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17 | \subsection{Axiomatization}
18 | \label{axs:Stubs}
19 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
20 | \begin{align}
21 | \top &\sqsubseteq \forall \textsf{hasValue.xsd:AnyValue} //
22 | \textsf{Stub} &\sqsubseteq \exists \textsf{hasValue.xsd:AnyValue}
23 | \end{align}
24 |
25 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
26 | \subsection{Explanations}
27 | \label{exp:Stubs}
28 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
29 | \begin{enumerate}
30 | \item Range: the range of \textsf{hasValue} is any xsd datatype. We use AnyValue in the above axiom to indicate that any datatype will suffice.
31 | \item Existential: the \textsf{Stub} must have a value.
32 | \end{enumerate}
33 |
34 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
35 | \subsection{Competency Questions}
36 | \label{cqs:Stubs}
37 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
38 | \begin{enumerate}[CQ1.]
39 | \item Which street is that?
40 | \item What is the title of Alfred Tennyson?
41 | \end{enumerate}
42 |
43 | \newpage
44 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
45 | % End Section
46 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
47 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--------------------------------------------------------------------------------
/Documentation/patterns/temporal.tex:
--------------------------------------------------------------------------------
1 | \section{Temporal Extent}
2 | \label{sec:Temporal}
3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4 | \begin{figure}[h!]
5 | \begin{center}
6 | \includegraphics[width=.8\textwidth]{figures/temporal}
7 | \end{center}
8 | \caption{Schema Diagram for Temporal Extent. The visual notation is explained in Chapter \ref{chap:prelims}.}
9 | \label{fig:Temporal}
10 | \end{figure}
11 | \subsection{Summary}
12 | \label{sum:Temporal}
13 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
14 | A \textsf{TemporalExtent} is composed of a number of \textsf{ComplexTimeIntervals}, which may be intervals of non-zero length (i.e. \textsf{TimeIntervals}) or intervals of length 0 (i.e. \textsf{PointsInSpace}).
15 |
16 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17 | \subsection{Axiomatization}
18 | \label{axs:Temporal}
19 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
20 | \begin{align}
21 | \textsf{TemporalExtent} &\sqsubset \mathord{=}n \textsf{contains.ComplexTemporalExtent} \\
22 | \textsf{TimeInterval} &\sqsubset \textsf{ComplexTemporalExtent} \\
23 | \textsf{TimeInterval} &\sqsubset \mathord{=}1 \textsf{startsFrom.PointInTime} \\
24 | \textsf{TimeInterval} &\sqsubset \mathord{=}1 \textsf{endsAt.PointInTime} \\
25 | \textsf{PointInTime} &\sqsubset \textsf{ComplexTemporalExtent} \\
26 | \textsf{PointInTime} &\sqsubset \mathord{=}1 \textsf{hasReferenceSystem.ReferenceSystem} \\
27 | \textsf{PointInTime} &\sqsubset \mathord{=}1 \textsf{hasValue.Value}
28 | \end{align}
29 |
30 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
31 | \subsection{Explanations}
32 | \label{exp:Temporal}
33 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
34 | \begin{enumerate}
35 | \item Numerical Restriction: a \textsf{TemporalExtent} \textsf{contains} exactly $n$ \textsf{ComplexTemporalExtents}. See below remarks.
36 | \item Subclass: every \textsf{TimeInterval} is a \textsf{ComplexTemporalExtent}.
37 | \item Numerical Restriction: a \textsf{TimeInterval} \textsf{startsAt} exactly 1 \textsf{PointInTime}.
38 | \item Numerical Restriction: a \textsf{TimeInterval} \textsf{endsAt} exactly 1 \textsf{PointInTime}.
39 | \item Subclass: every \textsf{PointInTime} is a \textsf{ComplexTemporalExtent}.
40 | \item Numerical Restriction: a \textsf{PointInTime} has exactly 1 \textsf{ReferenceSystem}.
41 | \item Numerical Restriction: a \textsf{PointInTime} has exactly 1 \textsf{Value}.
42 | \end{enumerate}
43 |
44 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
45 | \subsection{Remarks}
46 | \label{rem:Temporal}
47 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
48 | We would also like the pattern to be able to express that a \textsf{TemporalExtent} consists of exactly some \textsf{TimeIntervals} or \textsf{PointsInTime} and no other things. This is done by equipping the pattern with an axiom that must be tailored to the use-case and two rules for generating a set of assertions.
49 |
50 | \begin{equation}
51 | \textsf{TemporalExtent} \sqsubseteq \mathord{=}n\textsf{contains.Interior}
52 | \end{equation}
53 | where $n$ is the number of expected \textsf{ComplextimeIntverals}. Next,
54 | $$\textit{contains}(\textsf{temporalExtent, complexTimeInterval}_k) \text{ for } k=1,...,n$$
55 | and
56 | $$\textsf{complexTimeInterval}_i \not = \textsf{complexTimeInterval}_j \text{ for } i \not = j$$
57 | This allows us to express a \textsf{TemporalExtent} as a set of \textsf{ComplexTimeIntervals}.
58 |
59 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
60 | \subsection{Competency Questions}
61 | \label{cqs:Temporal}
62 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
63 | \begin{enumerate}[CQ1.]
64 | \item Which dates did World War II span?
65 | \item What era was the ice age?
66 | \end{enumerate}
67 |
68 | \newpage
69 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
70 | % End Section
71 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
72 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--------------------------------------------------------------------------------
/Documentation/patterns/trajectory.tex:
--------------------------------------------------------------------------------
1 | \section{Trajectory}
2 | \label{sec:Trajectory}
3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4 | \begin{figure}[h!]
5 | \begin{center}
6 | \includegraphics[width=.8\textwidth]{figures/trajectory}
7 | \end{center}
8 | \caption{Schema Diagram for the Trajectory Pattern. The visual notation is explained in Chapter \ref{chap:prelims}.}
9 | \label{fig:Spatiotemporal}
10 | \label{fig:Trajectory}
11 | \end{figure}
12 | \subsection{Summary}
13 | \label{sum:Trajectory}
14 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
15 | The \textsf{Trajectory} Pattern allows a developer to track something moving through some space. This is, of course, very abstract and is intended to be a starting point for capturing any movement that occurs at discrete points in a space. Intuitively, there is the notion of moving through time and space and those captured discrete points in space may be GPS position recordings. This sort of data may be best captured with the \textsf{SpatiotemporalExtent} Pattern (Section \ref{sec:Spatiotemporal}), which extends the \textsf{Trajectory} Pattern. This pattern may be also used as a starting point for modelling procedures (i.e. steps are discrete points in procedure space) or chemical reactions (we can really only be sure of what our sensors tell us, and they only tell us things at their polling rates). This pattern is an abstraction of the Semantic Trajectory pattern found in \cite{traj}.
16 |
17 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18 | \subsection{Axiomatization}
19 | \label{axs:Trajectory}
20 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
21 | \begin{align}
22 | \textsf{Segment} &\sqsubseteq \mathord{=1}\textsf{startsFrom.Fix}\\
23 | \textsf{Segment} &\sqsubseteq \mathord{=1}\textsf{endsAt.Fix} \\
24 | \textsf{Segment} &\sqsubseteq \exists \textsf{hasSegment}^-\textsf{.Trajectory} \\
25 | \textsf{startsFrom}^- \circ \textsf{endsAt} &\sqsubseteq \textsf{hasNext} \\
26 | \textsf{hasNext} &\sqsubseteq \textsf{hasSuccessor} \\
27 | \textsf{hasSuccessor} \circ \textsf{hasSucessor} &\sqsubseteq \textsf{hasSucessor} \\
28 | \textsf{hasNext}^- &\equiv \textsf{hasPrevious} \\
29 | \textsf{hasSuccessor}^- &\equiv \textsf{hasPredecessor} \\
30 | \textsf{Fix} \sqcap \lnot\exists\textsf{endsAt}^-\textsf{.Segment} &\sqsubseteq \textsf{StartingFix} \\
31 | \textsf{Fix} \sqcap \lnot\exists\textsf{startsFrom}^-\textsf{.Segment} &\sqsubseteq \textsf{EndingFix} \\
32 | \textsf{Trajectory} &\sqsubseteq \exists\textsf{hasSegment.Segment} \\
33 | \textsf{hasSegment} \circ \textsf{startsFrom} &\sqsubseteq \textsf{hasFix} \\
34 | \textsf{hasSegment} \circ \textsf{endsAt} &\sqsubseteq \textsf{hasFix} \\
35 | \exists \textsf{hasSegment.Segment} &\sqsubseteq \textsf{Trajectory} \\
36 | \exists \textsf{hasSegment}^-\textsf{.Trajectory} &\sqsubseteq \textsf{Segment} \\
37 | \exists \textsf{hasFix.Segment} &\sqsubseteq \textsf{Trajectory} \\
38 | \exists \textsf{hasFix}^-\textsf{.Trajectory} &\sqsubseteq \textsf{Fix}
39 | \end{align}
40 |
41 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
42 | \subsection{Explanations}
43 | \label{exp:Trajectory}
44 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
45 | \begin{enumerate}
46 | \item \textsf{Segment} \textsf{startFrom} exactly one \textsf{Fix}.
47 | \item \textsf{Segment} \textsf{endsAt} exactly one \textsf{Fix}.
48 | \item Existential: A \textsf{Segment} belongs to at least one \textsf{Trajectory}.
49 | \item Role Chain: the concatenation of \textsf{startsFrom}$^-$ nad \textsf{endsAt} is \textsf{hasNext}.
50 | \item Subproperty: \textsf{hasNext} is a subproperty to \textsf{hasSuccessor}.
51 | \item Role Chain: \textsf{hasSuccessor} is transitive.
52 | \item Inverse Alias.
53 | \item Inverse Alias.
54 | \item A \textsf{Fix} that is not where a segment ends is a \textsf{StartingFix}.
55 | \item A \textsf{Fix} that is not where a segment starts is a \textsf{EndingFix}.
56 | \item Existential: a \textsf{Trajectory} has at least one \textsf{Segment}.
57 | \item Role Chain: the concatenation of \textsf{hasSegment} and \textsf{startsFrom} is \textsf{hasFix}.
58 | \item Role Chain: the concatenation of \textsf{hasSegment} and \textsf{endsAt} is \textsf{hasFix}.
59 | \item Scoped Domain: the domain of \textsf{hasSegment}, scoped by \textsf{Segment}, is \textsf{Trajectory}.
60 | \item Scoped Domain: the domain of \textsf{hasSegment}$^-$, scoped by \textsf{Trajectory}, is \textsf{Segment}.
61 | \item Scoped Domain: the domain of \textsf{hasFix}, scoped by \textsf{Segment}, is \textsf{Trajectory}.
62 | \item Scoped Domain: the domain of \textsf{hasFix}$^-$, scoped by \textsf{Trajectory}, is \textsf{Fix}.
63 | \end{enumerate}
64 |
65 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
66 | \subsection{Competency Questions}
67 | \label{cqs:Trajectory}
68 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
69 | \begin{enumerate}[CQ1.]
70 | \item What is the first step of the procedure?
71 | \item What was the cruise's final stop?
72 | \end{enumerate}
73 |
74 | \newpage
75 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
76 | % End Section
77 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
78 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--------------------------------------------------------------------------------
/Documentation/patterns/tree.tex:
--------------------------------------------------------------------------------
1 | \section{Tree}
2 | \label{sec:Tree}
3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4 | \begin{figure}[h!]
5 | \begin{center}
6 | \includegraphics[width=.8\textwidth]{figures/tree}
7 | \end{center}
8 | \caption{Schema Diagram for the Tree Pattern. The visual notation is explained in Chapter \ref{chap:prelims}.}
9 | \label{fig:Tree}
10 | \end{figure}
11 | \subsection{Summary}
12 | \label{sum:Tree}
13 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
14 | The \textsf{Tree} pattern allows a developer to organize data into a tree data structure. An ontological tree, however, is subtly different from those that occur in other parts of computer science; these trees should be viewed as static---something to be queried, not manipulated. For example, a motivating use case is the organization of organisms into a phylogenetic tree. Such examples and more information may be found in \cite{tree}, from where this pattern is adapted.
15 |
16 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17 | \subsection{Axiomatization}
18 | \label{axs:Tree}
19 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
20 | \begin{align}
21 | \textsf{LeafNode} &\sqsubseteq \textsf{TreeNode} \\
22 | \textsf{RootNode} &\sqsubseteq \textsf{TreeNode} \\
23 | \textsf{TreeNode} &\sqsubseteq \forall \textsf{hasOutDegree.xsd:positiveInteger} \\
24 | \textsf{TreeNode} &\sqsubseteq \mathord{=1}\textsf{hasOutDegree.xsd:positiveInteger} \\
25 | \textsf{LeafNode} &\equiv \textsf{TreeNode} \sqcap \forall \textsf{hasOutDegree.} \{ 0 \textsf{\^{}\^{}xsd:positiveInteger}\} \\
26 | \textsf{TreeNode} \sqcap \lnot \textsf{LeafNode} &\equiv \textsf{TreeNode} \sqcap \forall \textsf{hasOutDegree.}\{ x\textsf{\^{}\^{}xsd:positiveInteger} | 1 \leq x\} \\
27 | \textsf{hasChild} &\equiv \textsf{hasParent}^- \\
28 | \textsf{hasDescendant} &\equiv \textsf{hasAncestor}^- \\
29 | \textsf{hasChild} &\sqsubseteq \textsf{hasDescendant} \\
30 | \textsf{hasDescendant} \circ \textsf{hasDescendant} &\sqsubseteq \textsf{hasDescendant} \\
31 | \textsf{TreeNode} &\sqsubseteq \forall \textsf{hasChild.TreeNode} \\
32 | \textsf{TreeNode} \sqcap \lnot \textsf{LeafNode} &\equiv \textsf{TreeNode} \sqcap \exists \textsf{hasChild.TreeNode} \\
33 | \textsf{TreeNode} &\sqsubseteq \forall \textsf{hasDescendant.TreeNode} \\
34 | \textsf{TreeNode} &\sqsubseteq \forall \textsf{hasParent.TreeNode} \\
35 | \textsf{TreeNode} &\sqsubseteq \forall \textsf{hasSibling.TreeNode} \\
36 | \textsf{TreeNode} \sqcap \lnot \textsf{RootNode} &\equiv \textsf{TreeNode} \sqcap \mathord{=1}\textsf{hasParent.}\top \\
37 | \textsf{TreeNode} &\sqsubseteq \forall \textsf{hasAncestor.TreeNode} \\
38 | \textsf{RootNode} &\equiv \textsf{TreeNode} \sqcap \lnot\exists \textsf{hasParent.}\top \\
39 | \textsf{LeafNode} &\equiv \textsf{TreeNode} \sqcap \lnot\exists \textsf{hasChild.}\top \\
40 | \text{Irreflexive}&(\textsf{hasChild}) \\
41 | \text{Irreflexive}&(\textsf{hasParent}) \\
42 | \text{Irreflexive}&(\textsf{hasDescendant}) \\
43 | \text{Irreflexive}&(\textsf{hasAncestor}) \\
44 | \textsf{hasSibling} &\equiv \textsf{hasSibling}^- \\
45 | \text{Irreflexive}&(\textsf{hasSibling})
46 | \end{align}
47 |
48 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
49 | \subsection{Explanations}
50 | \label{exp:Tree}
51 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
52 | \begin{enumerate}
53 | \item Subclass: every \textsf{LeafNode} is a \textsf{TreeNode}.
54 | \item Subclass: the \textsf{RootNode} is a \textsf{TreeNode}.
55 | \item Scoped Range: the range of \textsf{hasOutDegree}, scoped by \textsf{TreeNode}, is \textsf{xsd:positiveInteger}.
56 | \item Existential: a \textsf{TreeNode} has exactly one \textsf{hasOutDegree}.
57 | \item A \textsf{LeafNode} is a \textsf{TreeNode} that has an out degree of 0.
58 | \item A \textsf{TreeNode} that is not a \textsf{LeafNode} has at least out degree of 1.
59 | \item Inverse Alias
60 | \item Inverse Alias
61 | \item Subproperty: \textsf{hasChild} is subproperty of \textsf{hasDescendant}.
62 | \item Role Chain: \textsf{hasDescendant} is transitive.
63 | \item Scoped Range: the range of \textsf{hasChild}, scoped by \textsf{TreeNode}, is \textsf{TreeNode}.
64 | \item A \textsf{TreeNode} that is not a \textsf{LeafNode} has a child that is a \textsf{TreeNode}.
65 | \item Scoped Range: the range of \textsf{hasDescendant}, scoped by \textsf{TreeNode}, is \textsf{TreeNode}.
66 | \item Scoped Range: the range of \textsf{hasParent}, scoped by \textsf{TreeNode}, is \textsf{TreeNode}.
67 | \item Scoped Range: the range of \textsf{hasSibling}, scoped by \textsf{TreeNode}, is \textsf{TreeNode}.
68 | \item A \textsf{TreeNode} that is not the \textsf{RootNode} has a \textsf{TreeNode} that is its parent.
69 | \item Scoped Range: the range of \textsf{hasAncestor}, scoped by \textsf{TreeNode}, is \textsf{TreeNode}.
70 | \item \textsf{RootNode} does not have a \textsf{TreeNode} that is its parent.
71 | \item \textsf{LeafNodes} do not have \textsf{TreeNodes} that are its children.
72 | \item Irreflexivity
73 | \item Irreflexivity
74 | \item Irreflexivity
75 | \item Irreflexivity
76 | \item Inverse Alias
77 | \item Irreflexivity
78 | \end{enumerate}
79 |
80 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
81 | \subsection{Competency Questions}
82 | \label{cqs:Tree}
83 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%
84 | We remark that these competency questions are as general as the pattern. See \cite{tree} for more information.
85 | \begin{enumerate}[CQ1.]
86 | \item Determine the root.
87 | \item Determine all ancestors of a given node.
88 | \item Determine all leaves.
89 | \item Determine all descendants of a given node.
90 | \item Determine all descendants of a given node which are leaves.
91 | \item Given two nodes, determine whether one is a descendant of the other.
92 | \item given two nodes, determine all common ancestors.
93 | \item Given two nodes, determine the latest common ancestor.
94 | \item Given two nodes $x$ and $y$, determine the earliest ancestor of $x$ which not an ancestor of $y$.
95 | \end{enumerate}
96 |
97 | \newpage
98 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
99 | % End Section
100 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
101 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--------------------------------------------------------------------------------
/Documentation/prelims.tex:
--------------------------------------------------------------------------------
1 | \chapter{Preliminaries}
2 | \label{chap:prelims}
3 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4 | We list the individual patterns contained in MODL, together with their axioms and explanations thereof. Schema diagrams are provided throughout, but the reader should keep in mind that while schema diagrams are very useful for understanding an ontology \cite{odp-documentation}, they are also inherently ambiguous.
5 |
6 | \section*{Primer on Ontology Axioms}
7 |
8 | Logical axioms are presented (mostly) in description logic notation, which can be directly translated into the Web Ontology Language OWL \cite{FOST}. We use description logic notation because it is, in the end, easier for humans to read than any of the other serializations.\footnote{Preliminary results supporting this claim can be found in \cite{ShimizuMS}.}
9 |
10 | Logical axioms serve many purposes in ontology modeling and engineering \cite{HitzlerK16}; in our context, the primary reason why we choose a strong axiomatization is to disambiguate the ontology.
11 |
12 | Almost all axioms which are part of the Enslaved Ontology are of the straightforward and local types. We will now describe these types in more detail, as it will make it much easier to understand the axiomatization of the Enslaved Ontology.
13 |
14 | \bigskip
15 |
16 | \begin{figure}[tb]
17 | \begin{center}
18 | \includegraphics[width=.3\textwidth]{figures/02-ARB}
19 | \caption{Generic node-edge-node schema diagram for explaining systematic axiomatization}\label{fig:rec-ARB}
20 | \end{center}
21 | \end{figure}
22 |
23 | There is a systematic way to look at each node-edge-node triple in a schema diagram in order to decide on some of the axioms which should be added: Given a node-edge-node triple with nodes $A$ and $B$ and edge $R$ from $A$ to $B$, as depicted in Figure \ref{fig:rec-ARB}, we check all of the following axioms whether they should be included.\footnote{The OWLAx Prot\'eg\'e plug-in \cite{SarkerKH16} provides a convenient interface for adding these axioms.} We list them in natural language, see Figure \ref{fig:generic-triple-axioms-DL} for the formal versions in description logic notation, and Figure \ref{fig:generic-triple-axioms-Manchester} for the same in Manchester syntax, where we also list our names for these axioms.
24 | \begin{compactenum}
25 | \item $A$ is a subClass of $B$.
26 | \item $A$ and $B$ are disjoint.
27 | \item The domain of $R$ is $A$.
28 | \item For every $B$ which has an inverse $R$-filler, this inverse $R$-filler is in $A$. In other words, the domain of $R$, scoped by $B$, is $A$.
29 | \item The range of $R$ is $B$.
30 | \item For every $A$ which has an $R$-filler, this $R$-filler is in $B$. In other words, the range of $R$, scoped by $A$, is $B$.
31 | \item For every $A$ there has to be an $R$-filler in $B$.
32 | \item For every $B$ there has to be an inverse $R$-filler in $A$.
33 | \item $R$ is functional.
34 | \item $R$ has at most one filler in $B$.
35 | \item For every $A$ there is at most one $R$-filler.
36 | \item For every $A$ there is at most one $R$-filler in $B$.
37 | \item $R$ is inverse functional.
38 | \item $R$ has at most one inverse filler in $A$.
39 | \item For every $B$ there is at most one inverse $R$-filler.
40 | \item For every $B$ there is at most one inverse $R$-filler in $A$.
41 | \item An $A$ may have an $R$-filler in $B$.
42 | \end{compactenum}
43 |
44 | Domain and range axoims are items 2--5 in this list. Items 6 and 7 are extistential axioms. Items 8--15 are about variants of functionality and inverse functionality. All axiom types except disjointness and those utilizing inverses also apply to datatype properties.
45 |
46 | \begin{figure}[tb]
47 | \begin{center}
48 | \begin{minipage}{.3\textwidth}
49 | \begin{compactenum}
50 | \item $A \sqsubseteq B$
51 | \item $A\sqcap B\sqsubseteq \bot$
52 | \item $\exists R.\top \sqsubseteq A$
53 | \item $\exists R.B\sqsubseteq A$
54 | \item $\top \sqsubseteq \forall R.B$
55 | \item $A\sqsubseteq \forall R.B$
56 | \end{compactenum}
57 | \end{minipage}
58 | \begin{minipage}{.3\textwidth}
59 | \begin{compactenum}
60 | \setcounter{enumi}{5}
61 | \item $A\sqsubseteq R.B$
62 | \item $B\sqsubseteq R^-.A$
63 | \item $\top \sqsubseteq \mathord{\leq} 1 R.\top$
64 | \item $\top \sqsubseteq \mathord{\leq} 1 R.B$
65 | \item $A\sqsubseteq \mathord{\leq} 1 R.\top$
66 | \item $A\sqsubseteq \mathord{\leq} 1 R.B$
67 | \end{compactenum}
68 | \end{minipage}
69 | \begin{minipage}{.3\textwidth}
70 | \begin{compactenum}
71 | \setcounter{enumi}{10}
72 | \item $\top \sqsubseteq \mathord{\leq} 1 R^-.\top$
73 | \item $\top \sqsubseteq \mathord{\leq} 1 R^-.A$
74 | \item $B \sqsubseteq \mathord{\leq} 1 R^-.\top$
75 | \item $B \sqsubseteq \mathord{\leq} 1 R^-.A$
76 | \item $A \sqsubseteq \mathord{\geq 0} R.B$
77 | \end{compactenum}
78 | \end{minipage}
79 | \caption{Most common axioms which could be produced from a single edge $R$ between nodes $A$ and $B$ in a schema diagram: description logic notation.}\label{fig:generic-triple-axioms-DL}
80 | \end{center}
81 | \end{figure}
82 |
83 | \begin{figure}[tb]
84 | \begin{compactenum}
85 | \item $A$ \textsf{SubClassOf} $B$ \hfill (subClass)
86 | \item $A$ \textsf{DisjointWith} $B$ \hfill (disjointness)
87 | \item $R$ \textsf{some} \texttt{owl:Thing} \textsf{SubClassOf} $A$ \hfill (domain)
88 | \item $R$ \textsf{some} $B$ \textsf{SubClassOf} $A$ \hfill (scoped domain)
89 | \item \texttt{owl:Thing} \textsf{SubClassOf} $R$ \textsf{only} $B$ \hfill (range)
90 | \item $A$ \textsf{SubClassOf} $R$ \textsf{only} $B$ \hfill (scoped range)
91 | \item $A$ \textsf{SubClassOf} $R$ \textsf{some} $B$ \hfill (existential)
92 | \item $B$ \textsf{SubClassOf inverse} $R$ \textsf{some} $A$ \hfill (inverse existential)
93 | \item \texttt{owl:Thing} \textsf{SubClassOf} $R$ \textsf{max} $1$ \texttt{owl:Thing} \hfill (functionality)
94 | \item \texttt{owl:Thing} \textsf{SubClassOf} $R$ \textsf{max} $1$ $B$ \hfill (qualified functionality)
95 | \item $A$ \textsf{SubClassOf} $R$ \textsf{max} $1$ \texttt{owl:Thing} \hfill (scoped functionality)
96 | \item $A$ \textsf{SubClassOf} $R$ \textsf{max} $1$ $B$ \hfill (qualified scoped functionality)
97 | \item \texttt{owl:Thing} \textsf{SubClassOf inverse} $R$ \textsf{max} $1$ \texttt{owl:Thing} \hfill (inverse functionality)
98 | \item \texttt{owl:Thing} \textsf{SubClassOf inverse} $R$ \textsf{max} $1$ $A$ \hfill (inverse qualified functionality)
99 | \item $B$ \textsf{SubClassOf inverse} $R$ \textsf{max} $1$ \texttt{owl:Thing} \hfill (inverse scoped functionality)
100 | \item $B$ \textsf{SubClassOf inverse} $R$ \textsf{max} $1$ $A$ \hfill (inverse qualified scoped functionality)
101 | \item $A$ \textsf{SubClassOf} $R$ \textsf{min} $0$ $B$ \hfill (structural tautology)
102 | \end{compactenum}
103 | \caption{Most common axioms which could be produced from a single edge $R$ between nodes $A$ and $B$ in a schema diagram: Manchester syntax.}\label{fig:generic-triple-axioms-Manchester}
104 | \end{figure}
105 |
106 | Structural tautologies are, indeed, tautologies, i.e., they do not carry any formal logical content. However as argued in \cite{HitzlerK16} they can help humans to understand the ontology, by indicating \emph{possible} relationships, i.e., relationships intended by the modeler which, however, cannot be cast into non-tautological axioms.
107 |
108 | \section*{Explanations Regarding Schema Diagrams}
109 |
110 | We utilize schema diagrams to visualize the ontology. In our experience, simple diagrams work best for this purpose. The reader needs to bear in mind, though, that these diagrams are ambiguous and incomplete visualizations of the ontology (or module), as the actual ontology (or module) is constituted by the set of axioms provided.
111 |
112 | We use the following visuals in our diagrams:
113 |
114 | \begin{description}
115 | \item[rectangular box with solid frame and orange fill:] a class
116 | \item[rectangual box with dashed frame and blue fill:] a module, which is described in more detail elsewhere in the document
117 | \item[rectangular box with dashed frame and purple fill:] a set of URIs constituting a controlled vocabulary
118 | \item[oval with solid frame and yellow fill:] a data type
119 | \item[arrow with white head and no label:] a subClass relationship
120 | \item[arrow with solid tip and label:] a relationship (or property) other than a subClass relationship
121 | \end{description}
--------------------------------------------------------------------------------
/Documentation/scripts/pattern.py:
--------------------------------------------------------------------------------
1 | pattern_name = input("Enter name of pattern (include capitalization): ").strip()
2 | file_name = input("Enter name for file (pattern_name used as default): ").strip()
3 | figure_name = input("Enter figurename (Enter nothing for placeholder image): ").strip()
4 |
5 | if figure_name == "":
6 | figure_name = "placeholder"
7 |
8 | if file_name == "":
9 | file_name = pattern_name
10 |
11 | file_name = file_name.lower();
12 |
13 | loc_file_name = "patterns/{file_name}".format(file_name=file_name)
14 | file_name = "../patterns/" + file_name + ".tex"
15 | barrier = """%%%%%%%%%%%%%%%%%%%%%%%%%%%%"""
16 |
17 |
18 | with open(file_name, 'w') as f:
19 | # Create Section Header
20 | f.write("\\section{"+pattern_name+"}\n")
21 | label = pattern_name.split(" ")[0]
22 | f.write("\\label{sec:"+label+"}\n")
23 | f.write(barrier * 2 + "\n")
24 |
25 | # Create Figure
26 | f.write("\\begin{figure}[h!]\n")
27 | f.write("\\begin{center}\n")
28 | f.write("\\includegraphics[width=.8\\textwidth]{figures/"+figure_name+"}\n")
29 | f.write("\\end{center}\n")
30 | f.write("\\caption{Schema Diagram for the " + pattern_name +" Pattern. The visual notation is explained in Chapter \\ref{chap:prelims}.}\n")
31 | f.write("\\label{fig:"+label+"}\n")
32 | f.write("\\end{figure}\n")
33 |
34 | # Create Summary
35 | f.write("\\subsection{Summary}\n")
36 | f.write("\\label{sum:"+label+"}\n")
37 | f.write(barrier+"\n")
38 | f.write("I am some summary text.\n")
39 | f.write("\n")
40 |
41 | # Create axiomatization
42 | f.write(barrier * 2 + "\n")
43 | f.write("\\subsection{Axiomatization}\n")
44 | f.write("\\label{axs:"+label+"}\n")
45 | f.write(barrier+"\n")
46 | f.write("\\begin{align}\n")
47 | f.write("% General Axioms")
48 | f.write("\\top &\sqsubseteq \\forall\\textsf{place.Holder} \\\\ \n")
49 | f.write("\\exists\\textsf{place.Holder} &\sqsubseteq \\top \n")
50 | f.write("% Domain and Range Restrictions")
51 | f.write("\\top &\sqsubseteq \\forall\\textsf{place.Holder} \\\\ \n")
52 | f.write("\\exists\\textsf{place.Holder} &\sqsubseteq \\top \n")
53 | f.write("% Inverse Aliases (if any)")
54 | f.write("placeholder &\equiv holderplace^- \n")
55 | f.write("\\end{align}\n")
56 | f.write("\n")
57 |
58 | # Create explanations
59 | f.write(barrier * 2 + "\n")
60 | f.write("\\subsection{Explanations}\n")
61 | f.write("\\label{exp:"+label+"}\n")
62 | f.write(barrier+"\n")
63 | f.write("\\begin{enumerate}\n")
64 | f.write("\\item temporary item\n")
65 | f.write("\\end{enumerate}\n")
66 | f.write("\n")
67 |
68 | # Create explanations
69 | f.write(barrier * 2 + "\n")
70 | f.write("\\subsection{Competency Questions}\n")
71 | f.write("\\label{cqs:"+label+"}\n")
72 | f.write(barrier+"\n")
73 | f.write("\\begin{enumerate}[CQ1.]\n")
74 | f.write("\\item temporary item\n")
75 | f.write("\\end{enumerate}\n")
76 | f.write("\n")
77 | f.write("\\newpage\n")
78 |
79 | # Creat end document
80 | f.write(barrier * 2 + "\n")
81 | f.write("% End Section" + "\n")
82 | f.write(barrier * 2 + "\n")
83 | f.write(barrier * 2)
84 |
85 |
86 | with open("../patterns.tex",'a') as f:
87 | f.write("\\input{"+loc_file_name+"}\n")
88 |
89 | print(pattern_name)
90 | print(file_name)
--------------------------------------------------------------------------------
/MODL 1.0/MODL_Documentation.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Data-Semantics-Laboratory/modular-ontology-design-library/a33774fb161714a6a1140ddc0d46007f2aa6d57f/MODL 1.0/MODL_Documentation.pdf
--------------------------------------------------------------------------------
/MODL 1.0/MODL_v1.0.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Data-Semantics-Laboratory/modular-ontology-design-library/a33774fb161714a6a1140ddc0d46007f2aa6d57f/MODL 1.0/MODL_v1.0.zip
--------------------------------------------------------------------------------
/MODL/agentrole.owl:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | https://archive.org/services/purl/domain/modular_ontology_design_library/temporalextent
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 | #Agent
113 | https://archive.org/services/purl/domain/modular_ontology_design_library/agentrole
114 |
115 |
116 |
117 | #Agent
118 | ofExternalType
119 |
120 |
121 |
122 | #AgentRole
123 | https://archive.org/services/purl/domain/modular_ontology_design_library/agentrole
124 |
125 |
126 |
127 | #TemporalExtent
128 | https://archive.org/services/purl/domain/modular_ontology_design_library/agentrole
129 |
130 |
131 |
132 | #TemporalExtent
133 | ofExternalType
134 |
135 |
136 |
137 | #hasTemporalExtent
138 | https://archive.org/services/purl/domain/modular_ontology_design_library/agentrole
139 |
140 |
141 |
142 | #isPerformedBy
143 | https://archive.org/services/purl/domain/modular_ontology_design_library/agentrole
144 |
145 |
146 |
147 | #isProvidedBy
148 | https://archive.org/services/purl/domain/modular_ontology_design_library/agentrole
149 |
150 |
151 |
152 | #performsAgentRole
153 | https://archive.org/services/purl/domain/modular_ontology_design_library/agentrole
154 |
155 |
156 |
157 | #providesAgentRole
158 | https://archive.org/services/purl/domain/modular_ontology_design_library/agentrole
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
--------------------------------------------------------------------------------
/MODL/aggregation.owl:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | http://ontologydesignpatterns.org/wiki/Submissions:Bag
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 | #Bag
69 | https://archive.org/services/purl/domain/modular_ontology_design_library/bag
70 |
71 |
72 |
73 | #Bag
74 | ofExternalType
75 |
76 |
77 |
78 | #BagItem
79 | https://archive.org/services/purl/domain/modular_ontology_design_library/bag
80 |
81 |
82 |
83 | #Collection
84 | https://archive.org/services/purl/domain/modular_ontology_design_library/bag
85 |
86 |
87 |
88 | #Collection
89 | ofExternalType
90 |
91 |
92 |
93 | #itemOf
94 | https://archive.org/services/purl/domain/modular_ontology_design_library/bag
95 |
96 |
97 |
98 | #po-member
99 | https://archive.org/services/purl/domain/modular_ontology_design_library/partonomy
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
--------------------------------------------------------------------------------
/MODL/event.owl:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | https://archive.org/services/purl/domain/modular_ontology_design_library/participantrole
19 |
20 |
21 |
22 | https://archive.org/services/purl/domain/modular_ontology_design_library/spatiotemporalextent
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 | #Event
103 | https://archive.org/services/purl/domain/modular_ontology_design_library/event
104 |
105 |
106 |
107 | #ParticipantRole
108 | https://archive.org/services/purl/domain/modular_ontology_design_library/event
109 |
110 |
111 |
112 | #ParticipantRole
113 | ofExternalType
114 |
115 |
116 |
117 | #SpatiotemporalExtent
118 | https://archive.org/services/purl/domain/modular_ontology_design_library/event
119 |
120 |
121 |
122 | #SpatiotemporalExtent
123 | ofExternalType
124 |
125 |
126 |
127 | #hasSpatiotemporalExtent
128 | https://archive.org/services/purl/domain/modular_ontology_design_library/event
129 |
130 |
131 |
132 | #providesParticipantRole
133 | https://archive.org/services/purl/domain/modular_ontology_design_library/event
134 |
135 |
136 |
137 | #subEventOf
138 | https://archive.org/services/purl/domain/modular_ontology_design_library/event
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
--------------------------------------------------------------------------------
/MODL/explicittyping.owl:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 | #Type
35 | https://archive.org/services/purl/domain/modular_ontology_design_library/explicittyping
36 |
37 |
38 |
39 | #hasType
40 | https://archive.org/services/purl/domain/modular_ontology_design_library/explicittyping
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/MODL/identifier.owl:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | https://archive.org/services/purl/domain/modular_ontology_design_library/reification
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 | #IDType
72 | https://archive.org/services/purl/domain/modular_ontology_design_library/identifier
73 |
74 |
75 |
76 | #Identifier
77 | https://archive.org/services/purl/domain/modular_ontology_design_library/identifier
78 |
79 |
80 |
81 | #hasIdentifier
82 | https://archive.org/services/purl/domain/modular_ontology_design_library/identifier
83 |
84 |
85 |
86 | #hasIdentifierType
87 | https://archive.org/services/purl/domain/modular_ontology_design_library/identifier
88 |
89 |
90 |
91 | #identifierAsText
92 | https://archive.org/services/purl/domain/modular_ontology_design_library/identifier
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
--------------------------------------------------------------------------------
/MODL/name.owl:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | https://archive.org/services/purl/domain/modular_ontology_design_library/stub
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 | #NameStub
42 | https://archive.org/services/purl/domain/modular_ontology_design_library/namestub
43 |
44 |
45 |
46 | #nameAsString
47 | https://archive.org/services/purl/domain/modular_ontology_design_library/namestub
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/MODL/provenance.owl:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 | #Agent
105 | https://archive.org/services/purl/domain/modular_ontology_design_library/provenance
106 |
107 |
108 |
109 | #Agent
110 | ofExternalType
111 |
112 |
113 |
114 | #EntityWithProvenance
115 | https://archive.org/services/purl/domain/modular_ontology_design_library/provenance
116 |
117 |
118 |
119 | #ProvenanceActivity
120 | https://archive.org/services/purl/domain/modular_ontology_design_library/provenance
121 |
122 |
123 |
124 | #ProvenanceActivity
125 | ofExternalType
126 |
127 |
128 |
129 | #attributedTo
130 | https://archive.org/services/purl/domain/modular_ontology_design_library/provenance
131 |
132 |
133 |
134 | #generatedBy
135 | https://archive.org/services/purl/domain/modular_ontology_design_library/provenance
136 |
137 |
138 |
139 | #performedBy
140 | https://archive.org/services/purl/domain/modular_ontology_design_library/provenance
141 |
142 |
143 |
144 | #used
145 | https://archive.org/services/purl/domain/modular_ontology_design_library/provenance
146 |
147 |
148 |
149 | #wasDerivedFrom
150 | https://archive.org/services/purl/domain/modular_ontology_design_library/provenance
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
--------------------------------------------------------------------------------
/MODL/quantities.owl:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 | #Quantity
77 | https://archive.org/services/purl/domain/modular_ontology_design_library/quantities
78 |
79 |
80 |
81 | #QuantityKind
82 | https://archive.org/services/purl/domain/modular_ontology_design_library/quantities
83 |
84 |
85 |
86 | #QuantityKind
87 | ofExternalType
88 |
89 |
90 |
91 | #QuantityValue
92 | https://archive.org/services/purl/domain/modular_ontology_design_library/quantities
93 |
94 |
95 |
96 | #Unit
97 | https://archive.org/services/purl/domain/modular_ontology_design_library/quantities
98 |
99 |
100 |
101 | #Unit
102 | ofExternalType
103 |
104 |
105 |
106 | #hasNumericValue
107 | https://archive.org/services/purl/domain/modular_ontology_design_library/quantities
108 |
109 |
110 |
111 | #hasQuantityKind
112 | https://archive.org/services/purl/domain/modular_ontology_design_library/quantities
113 |
114 |
115 |
116 | #hasQuantityValue
117 | https://archive.org/services/purl/domain/modular_ontology_design_library/quantities
118 |
119 |
120 |
121 | #hasUnit
122 | https://archive.org/services/purl/domain/modular_ontology_design_library/quantities
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
--------------------------------------------------------------------------------
/MODL/reification.owl:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 | #Context
57 | https://archive.org/services/purl/domain/modular_ontology_design_library/reification
58 |
59 |
60 |
61 | #ReifiedProperty
62 | https://archive.org/services/purl/domain/modular_ontology_design_library/reification
63 |
64 |
65 |
66 | #hasContext
67 | https://archive.org/services/purl/domain/modular_ontology_design_library/reification
68 |
69 |
70 |
71 | #reifiedProperty1
72 | https://archive.org/services/purl/domain/modular_ontology_design_library/reification
73 |
74 |
75 |
76 | #reifiedProperty2
77 | https://archive.org/services/purl/domain/modular_ontology_design_library/reification
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
--------------------------------------------------------------------------------
/MODL/sequence.owl:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | https://archive.org/services/purl/domain/modular_ontology_design_library/tree
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 | #FirstItem
140 | https://archive.org/services/purl/domain/modular_ontology_design_library/list
141 |
142 |
143 |
144 | #LastItem
145 | https://archive.org/services/purl/domain/modular_ontology_design_library/list
146 |
147 |
148 |
149 | #ListItem
150 | https://archive.org/services/purl/domain/modular_ontology_design_library/list
151 |
152 |
153 |
154 | #hasNext
155 | https://archive.org/services/purl/domain/modular_ontology_design_library/list
156 |
157 |
158 |
159 | #hasSuccessor
160 | https://archive.org/services/purl/domain/modular_ontology_design_library/list
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
--------------------------------------------------------------------------------
/MODL/stub.owl:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 | #Stub
112 | https://archive.org/services/purl/domain/modular_ontology_design_library/stub
113 |
114 |
115 |
116 | #hasValue
117 | https://archive.org/services/purl/domain/modular_ontology_design_library/stub
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
--------------------------------------------------------------------------------
/MODL/temporalextent.owl:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | https://archive.org/services/purl/domain/modular_ontology_design_library/sequence
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 | #ComplexTemporalExtent
101 | https://archive.org/services/purl/domain/modular_ontology_design_library/temporalextent
102 |
103 |
104 |
105 | #PointInTime
106 | https://archive.org/services/purl/domain/modular_ontology_design_library/temporalextent
107 |
108 |
109 |
110 | #ReferenceSystem
111 | https://archive.org/services/purl/domain/modular_ontology_design_library/temporalextent
112 |
113 |
114 |
115 | #TemporalExtent
116 | https://archive.org/services/purl/domain/modular_ontology_design_library/temporalextent
117 |
118 |
119 |
120 | #TimeInterval
121 | https://archive.org/services/purl/domain/modular_ontology_design_library/temporalextent
122 |
123 |
124 |
125 | #Value
126 | https://archive.org/services/purl/domain/modular_ontology_design_library/temporalextent
127 |
128 |
129 |
130 | #contains
131 | https://archive.org/services/purl/domain/modular_ontology_design_library/temporalextent
132 |
133 |
134 |
135 | #endsAt
136 | https://archive.org/services/purl/domain/modular_ontology_design_library/temporalextent
137 |
138 |
139 |
140 | #hasReferenceSystem
141 | https://archive.org/services/purl/domain/modular_ontology_design_library/temporalextent
142 |
143 |
144 |
145 | #hasValue
146 | https://archive.org/services/purl/domain/modular_ontology_design_library/temporalextent
147 |
148 |
149 |
150 | #startsFrom
151 | https://archive.org/services/purl/domain/modular_ontology_design_library/temporalextent
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # MODL: Modular Ontology Design Library
2 | https://dase.cs.wright.edu/content/modl-modular-ontology-design-library
3 |
4 | DOI for v1.0 [](https://zenodo.org/badge/latestdoi/178051913)
5 |
6 | ## Documentation
7 | 1. Motivation
8 | 2. Overview
9 | 3. Patterns
10 | 1. Schema Diagram
11 | 2. Summary
12 | 3. Axiomatization
13 | 4. Explanations
14 | 5. Competency Questions
15 |
16 | Note: When tracking the provenance of the changes, there was an accidental blanket commit that can't be reverted. Sorry for the confusion during the intial commit period. (Specifically commits 7cbeaad and bd3bb76).
17 |
18 | ## MODL
19 | Here be OWLs.
20 |
21 | ## OPLa Ontology
22 | MODL.owl
23 |
--------------------------------------------------------------------------------