X-Git-Url: http://git.uio.no/git/?p=u%2Fphilim%2Fdb2osl_thesis.git;a=blobdiff_plain;f=program_interface.tex;h=6dc6a8adc64fafaa0c55aa97b6cf38b7b715a51f;hp=9b5846a0049b83f7bc7baa4e795babdd3b36c956;hb=b96bb723df3650601ea6441843efa78c6b3ce84d;hpb=002fa020c426993dea3b4cef5b246dcfaaa87a45 diff --git a/program_interface.tex b/program_interface.tex index 9b5846a..6dc6a8a 100644 --- a/program_interface.tex +++ b/program_interface.tex @@ -1,9 +1,10 @@ \section{Interface and usage} \label{interface} This section describes the interface to the operating system and the user interface. -For information on programming interfaces, see section \fullref{arch}. +For information on programming interfaces, see Section~\fullref{arch}. \subsection{User interaction and configuration} +\label{usage} \subsubsection{Basic usage} \label{basic} Currently, the only user interface of \myprog{} is a command-line interface. @@ -128,15 +129,16 @@ Thus, a parameter defined for one operation (like the password in the example) will have no effect on other operations. This ensures that typical errors are prevented when merging several invocations of \myprog{} into one (or vice versa) -and allows for a straight-forward and comprehensive implementation. +and allows for a straight-forward and comprehensible implementation. \subsubsection{Advanced modifications} +\label{advanced} Since \osl{} specifications are plain text files, a user can edit them in any desired text editor if he wants to change them in ways that go beyond the functionality \myprog{} provides or that can be achieved by scripts or programs modifying their input automatically. Because of \osl{} being a subset of \name{OWL} (see the specification -of \osl{} in section \ref{osl_spec}), he can thereby take advantage of editors +of \osl{} in Section~\ref{osl_spec}), he can thereby take advantage of editors supporting syntax highlighting or other features making the handling of the respective \name{OWL} serialization more comfortable. @@ -145,11 +147,16 @@ specification automatically or manually. Doing so, care has to be taken to make the ontology remain a conforming \osl{} specification. However, since the restrictions imposed by \osl{} are rather small and intuitive, this is easily achieved. -Furthermore, upcoming tools supporting \osl{} (see section \fullref{future}) most +One of the most popular ontology editors \cite{protegepopular}, \name{Protégé}, +is an open, \name{Java} based platform supporting plug-ins \cite{protege}; +for a habitual \name{Protégé} user it should be an easy task to write an +\osl{} plugin. +Furthermore, upcoming tools supporting \osl{} (see Section~\fullref{future}) most likely will be able to check input files for conformity with the \osl{} definition. \subsection{Integration into systems} -Besides the use cases described in section ``\nameref{basic}'', +Besides the use cases described in Paragraph~``\nameref{basic}'' +and in Paragraph~``\nameref{advanced}'' in the previous Section~\ref{usage}, there are many other ways in which \myprog{} can be used. For example, a database can be periodically checked for changes that make a re-bootstrapping necessary: @@ -173,13 +180,6 @@ that bootstraps all databases on a server: \ind regex="\`{} printf \%s "\$regex" | sed -e "s,\textbackslash\textbackslash\textbackslash\textbackslash\$,\$|\$dbname\$," \`{}"\\ done} -Newer versions than version 1.0 described here provide a command-line parameter -\code{-a} (or, alternatively, \code{\textendash \textendash all)} -which makes \myprog{} bootstrap \emph{all} databases matching the given -regular expression. -However, using this approach, all bootstrapped specifications will be output -to one single file. - Since the programming language used to implement \myprog{} is \name{Java}, it is possible to deploy it on all platforms offering the \name{Java} Runtime Environment TODO. @@ -188,7 +188,7 @@ Additionally, it is possible to deploy it as a Web application TODO. To simplify integration on the code level, the architecture of \myprog{} was designed to be highly modular and to cleanly separate code with different areas of responsibility into different packages -(for details about the structuring of \myprog{}, see section \fullref{arch}). +(for details about the structuring of \myprog{}, see Section~\fullref{arch}). This modularity, besides facilitating understanding the code, allows for a high degree of code reusability.