summaryrefslogtreecommitdiff
path: root/mockup/article.osml
blob: ca3d89110a724474ffdb04402c4777474e088795 (plain)
1
2
3
4
5
6
7
8
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
%{
    Ousía -- Standard Ontology Library
    Copyright (C) 2015  Benjamin Paaßen, Andreas Stöckel

    This file is licensed under the Creative CommonsAttribution-ShareAlike 4.0
    International (CC BY-SA 4.0) license.

    See http://creativecommons.org/licenses/by-sa/4.0/ for more information.
}%

%{!
    The "article" ontology contains elements used to write articles as found on
    websites, in scientific journals, in magazines or (as a collection of
    articles) in books.

    \author{Andreas Stöckel}{astoecke@techfak.uni-bielefeld.de}
}%
\begin{ontology#article}

\import[ontology]{./base.osml}
\import[ontology]{./meta.osml}

% Forward elements from "base"
\struct#section[isa=base.section]
\struct#subsection[isa=base.subsection]
\struct#subsubsection[isa=base.subsubsection]
\struct#text[isa=base.text]

%{
    Sectioning elements
}%

% Root article class
\struct#article[root=true,isa=sectioning]{
	\field#content{
		\childRef[ref=article.section]
		\childRef[ref=block]
	}
}

%{
    Inline elements
}%

% Speech
\struct#speech[isa=inline]{
	\syntax{
		\open{<<}
		\close{>>}
	}
	\field{
		\childRef[ref=inline]
	}
}

% Hyperlinks
\struct#href[isa=inline]{
	\primitive#url[type=string,subtree=true,optional=false]
	\field[optional=true]{
		\childRef[ref=inline]
	}
}

% Inline code
\struct#inlineCode[isa=inline]{
	\attributes{
		\attribute#lang[type=string]
	}
	\syntax{
		\open{`}
		\close{`}
	}
	\primitive[type=string]
}

%{
    Block elements
}%

\struct#paragraph[isa=block,transparent=true]{
	\field#title[subtree=true,optional=true]{
		\childRef[ref=inline]
	}
	\field#content{
		\childRef[ref=inline]
	}
}

\struct#quote[isa=block]{
	\field{
		\childRef[ref=block]
	}
}

\struct#aside[isa=block]{
	\field{
		\childRef[ref=block]
	}
}

\struct#figure[isa=block]{
	\field{
		\childRef[ref=figureElement]
	}
}

\struct#figureElement

\struct#img[isa=figureElement,cardinality={0-1}]{
	\primitive#src[optional=false,subtree=true,type=string]
	\field{
		\childRef[ref=imgMeta]
	}
}

\struct#img[transparent=true]{
	\field{
		
	}
}

% Emphasis annotation
\annotation#em

\end{ontology}