1 \section{Specification}
4 \newcommand{\parnum}{\textsuperscript{\arabic{parcount}}}
5 \newcommand{\p}{\refstepcounter{parcount} \parnum \hspace{1em}}
7 \p An \osl{} document is a valid \name{OWL} 2 document (as described in \cite{owl})
8 containing individuals and data that represent the OBDA specification,
9 as well as \name{OWL} properties that connect them.
10 The individuals and \name{OWL} properties are recognized and mapped to their roles
13 \p \label{spec_ignored} An \osl{} document may contain more \name{OWL} entities
14 (with IRIs not defined in this specification), which are ignored.
16 \p An \osl{} document has to declare all individuals having different IRIs as different
17 from each other (except those which are ignored, see Paragraph~\ref{spec_ignored}).\\
18 It is recommended to use the \texttt{owl:AllDifferent} \name{OWL}
19 statement for this purpose.
21 \p \label{spec_base} Unless stated otherwise, IRIs mentioned in the following are
22 IRIs relative to a base IRI chosen by the user being empty (which makes the IRIs
23 absolute \cite{xmlbase}) or ending with a hash character (`\#').\\
25 It is recommended to use that base IRI as \texttt{xml:base} XML attribute.\\
26 IRIs prefixed with \texttt{osl:} are IRIs relative to the IRI\\
30 \p An \osl{} document has to import the following ontology
31 (referred to as ``the \osl{} header'' in the following):\\
34 \p The \name{OWL} individuals described by the \osl{} document representing
35 the certain types of OBDA maps
36 must have the IRIs specified in table \ref{spec_tbl_indv_iris}
37 (for base IRIs, see Paragraph~\ref{spec_base}).
38 Here, \textit{$<$class URI$>$} refers\\
39 to the \texttt{OWL class URI} field of the respective entity map for entity maps,\\
40 to the \texttt{OWL class URI} field of the associated entity map for identifier maps,\\
41 to the \texttt{OWL class URI} field of the associated entity map for subtype maps and\\
43 to the \texttt{OWL class URI} field of the entity map associated with the respective subtype map
44 for translation tables of subtype maps.\\
45 Similarly, \textit{$<$property URI$>$} refers\\
46 to the \texttt{OWL property URI} field of the respective attribute map for attribute maps
47 (or, if it is empty, the value that would have been generated for it if it weren't empty),\\
48 to the \texttt{OWL property URI} field of the respective relation map for relation maps and\\
49 to the \texttt{OWL property URI} field of the respective attribute map
50 for translation tables of attribute maps (or, if it is empty, the value that would have
51 been generated for it if it weren't empty).
53 %\vspace{\spacebeforetable{}}
54 \KOMAoption{fontsize}{\smallerfontsize{}}
55 \begin{table}[]\begin{center}
57 \textbf{Map type} & \textbf{\name{OWL} IRI} \\ \hline
58 Entity map & \textit{$<$class URI$>$}\texttt{\_\_ENTITY\_MAP} \\
59 Attribute map & \textit{$<$property URI$>$}\texttt{\_\_ATTRIBUTE\_MAP} \\
60 Identifier map & \textit{$<$class URI$>$}\texttt{\_\_IDENTIFIER\_MAP} \\
61 Relation map & \textit{$<$property URI$>$}\texttt{\_\_RELATION\_MAP} \\
62 Subtype map & \textit{$<$class URI$>$}\texttt{\_\_SUBTYPE\_MAP} \\
63 Translation table of attribute map &
64 \textit{$<$property URI$>$}\texttt{\_\_ATTRIBUTE\_MAP\_\_TRANSLATION\_TABLE} \\
65 Translation table of subtype map &
66 \textit{$<$class URI$>$}\texttt{\_\_SUBTYPE\_MAP\_\_TRANSLATION\_TABLE} \\
68 \caption{\name{OWL} individual IRIs in \osl{}}
69 \label{spec_tbl_indv_iris}
70 \end{center}\end{table}
71 \KOMAoption{fontsize}{\myfontsize{}}
73 \p The \name{OWL} individuals described by the \osl{} document representing
74 the certain types of OBDA maps
75 must be of the \name{OWL} types specified in table \ref{spec_tbl_types}
76 (for base IRIs, see Paragraph~\ref{spec_base}).
78 %\vspace{\spacebeforetable{}}
79 \begin{table}[]\begin{center}
81 \textbf{Map type} & \textbf{\name{OWL} class IRI} \\ \hline
82 Entity map & \texttt{osl:EntityMap} \\
83 Attribute map & \texttt{osl:AttributeMap} \\
84 Identifier map & \texttt{osl:IdentifierMap} \\
85 Relation map & \texttt{osl:RelationMap} \\
86 Subtype map & \texttt{osl:SubtypeMap} \\
87 Translation table & \texttt{osl:TranslationTable} \\
89 \caption{\name{OWL} class membership of map representations in \osl{}}
90 \label{spec_tbl_types}
91 \end{center}\end{table}
93 \p The \name{OWL} properties described by the \osl{} document representing
94 the fields of the certain OBDA maps
95 must have the IRIs specified in table \ref{spec_tbl_prop_iris}
96 (for base IRIs, see Paragraph~\ref{spec_base}).
98 %\vspace{\spacebeforetable{}}
99 %\KOMAoption{fontsize}{\smallerfontsize{}}
100 \begin{table}[]\begin{center}
101 \begin{tabular}{l|l|l|l}
102 \textbf{Map type} & \textbf{Field label} & \textbf{Field name} & \textbf{\name{OWL} IRI} \\ \hline
103 Entity map & \texttt{E1} & \texttt{Table name} & \texttt{osl:em\_\_tableName} \\
104 Entity map & \texttt{E2} & \texttt{Label} & \texttt{osl:em\_\_label} \\
105 Entity map & \texttt{E3} & \texttt{Identifier map} & \texttt{osl:em\_\_identifierMap} \\
106 Entity map & \texttt{E4} & \texttt{Attribute maps...} & \texttt{osl:em\_\_attributeMaps} \\
107 Entity map & \texttt{E5} & \texttt{OWL class URI} & \texttt{osl:em\_\_owlClassURI} \\
108 Entity map & \texttt{E6} & \texttt{Description} & \texttt{osl:em\_\_description} \\ \hline
109 Attribute map & \texttt{A1} & \texttt{Column name} & \texttt{osl:am\_\_columnName} \\
110 Attribute map & \texttt{A2} & \texttt{SQL datatype} & \texttt{osl:am\_\_sqlDatatype} \\
111 Attribute map & \texttt{A3} & \texttt{Mandatory} & \texttt{osl:am\_\_mandatory} \\
112 Attribute map & \texttt{A4} & \texttt{Label} & \texttt{osl:am\_\_label} \\
113 Attribute map & \texttt{A5} & \texttt{OWL property URI} & \texttt{osl:am\_\_owlPropertyURI} \\
114 Attribute map & \texttt{A6} & \texttt{Property type} & \texttt{osl:am\_\_propertyType} \\
115 Attribute map & \texttt{A7} & \texttt{Translation} & \texttt{osl:am\_\_translation} \\
116 Attribute map & \texttt{A8} & \texttt{URI pattern} & \texttt{osl:am\_\_uriPattern} \\
117 Attribute map & \texttt{A9} & \texttt{RDF language} & \texttt{osl:am\_\_rdfLanguage} \\
118 Attribute map & \texttt{A10} & \texttt{XSD datatype} & \texttt{osl:am\_\_xsdDatatype} \\
119 Attribute map & \texttt{A11} & \texttt{Description} & \texttt{osl:am\_\_description} \\ \hline
120 Identifier map & \texttt{I1} & \texttt{Entity map} & \texttt{osl:im\_\_entityMap} \\
121 Identifier map & \texttt{I2} & \texttt{Attribute maps...} & \texttt{osl:im\_\_attributeMaps} \\
122 Identifier map & \texttt{I3} & \texttt{URI pattern} & \texttt{osl:im\_\_uriPattern} \\ \hline
123 Relation map & \texttt{R1} & \texttt{Source entity map} & \texttt{osl:rm\_\_sourceEntityMap} \\
124 Relation map & \texttt{R2} & \texttt{Source column} &
125 \texttt{osl:rm\_\_sourceColumn\textcolor{red}{\textbf{s}}} \\
126 Relation map & \texttt{R3} & \texttt{Target entity map} & \texttt{osl:rm\_\_targetEntityMap} \\
127 Relation map & \texttt{R4} & \texttt{Target column} &
128 \texttt{osl:rm\_\_targetColumn\textcolor{red}{\textbf{s}}} \\
129 Relation map & \texttt{R5} & \texttt{OWL property URI} & \texttt{osl:rm\_\_owlPropertyURI} \\ \hline
130 Subtype map & \texttt{S1} & \texttt{Entity Map} & \texttt{osl:sm\_\_entityMap} \\
131 Subtype map & \texttt{S2} & \texttt{Column Name} & \texttt{osl:sm\_\_columnName} \\
132 Subtype map & \texttt{S3} & \texttt{OWL superclass URI} & \texttt{osl:sm\_\_owlSuperclassURI} \\
133 Subtype map & \texttt{S4} & \texttt{Prefix} & \texttt{osl:sm\_\_prefix} \\
134 Subtype map & \texttt{S5} & \texttt{Suffix} & \texttt{osl:sm\_\_suffix} \\
135 Subtype map & \texttt{S6} & \texttt{Translation} & \texttt{osl:sm\_\_translation} \\ \hline
136 Translation table & \texttt{T1} & \texttt{Source value...} &
137 \texttt{osl:tt\_\_sourceValue\textcolor{red}{\textbf{s}}} \\
138 Translation table & \texttt{T2} & \texttt{RDF ressource...} &
139 \texttt{osl:tt\_\_rdfRessource\textcolor{red}{\textbf{s}}} \\
141 \caption{\name{OWL} property IRIs in \osl{}}
142 \label{spec_tbl_prop_iris}
143 \end{center}\end{table}
144 %\KOMAoption{fontsize}{\myfontsize{}}
147 \p The following \name{OWL} properties in the \osl{} document refer
148 to lists of elements:
150 \item[] \texttt{osl:rm\_\_sourceColumns}
151 \item[] \texttt{osl:rm\_\_targetColumns}
152 \item[] \texttt{osl:tt\_\_sourceValues}
153 \item[] \texttt{osl:tt\_\_rdfRessources}
155 Therefore, they have the \name{OWL} class \texttt{osl:StringListNode}
156 as their range, as is required by the \osl{} header.
157 They must connect the respective individual to an
158 \texttt{osl:StringListNode} individual in every case.
159 This ``root node'' must \emph{not} have an \texttt{osl:hasValue} property.\\
160 If the represented list is not empty, the list elements are represented by other
161 \texttt{osl:StringListNode} individuals connected seriatim by the property
162 \texttt{osl:nextNode}, with the first individual being connected to the root node.
163 The node representing the last list element must not have an
164 \texttt{osl:nextNode} property.\\
165 All nodes except the root node \emph{may} have an \texttt{osl:hasValue} property
166 connecting them to their values.
167 The actual list consists of exactly these values, thus, nodes without values
169 It is recommended to enumerate the node IRIs, using $0$ for the root node.