]> git.uio.no Git - u/philim/db2osl_thesis.git/blobdiff - program_interface.tex
Major change
[u/philim/db2osl_thesis.git] / program_interface.tex
index 3180b009bbaf7eef014f683eb13783416a9f9507..9b5846a0049b83f7bc7baa4e795babdd3b36c956 100644 (file)
@@ -7,20 +7,20 @@ For information on programming interfaces, see section \fullref{arch}.
 \subsubsection{Basic usage}
 \label{basic}
 Currently, the only user interface of \myprog{} is a command-line interface.
-Since the program is supposed to bootstrap the OBDA Specification automatically and
+Since the program is supposed to bootstrap the OBDA specification automatically and
 thus there is little interaction, but a lot of output, this was considered ideal.
 Basically, one invocation of \myprog{} will initiate the automatic, non-interactive
 bootstrapping of exactly one \osl{} specification written to the standard output,
 a behavior which can be modified via command-line arguments.
 Because of its ability to write to the standard output (which is also the default
 behavior), it is easy to pipe the output of \myprog{} directly into a program that
-handles it in a Unix-/POSIX-like fashion TODO:
+handles it in a Unix-/POSIX-like fashion \cite{unix}:
 \codepar{db2osl myserver.org | osl2onto myserver.org}
 
 (supposed \name{osl2onto} is a tool that reads an \osl{} specification from its
 standard input and uses it to bootstrap an ontology from the database
 specified on its command line).\\
-This scheme is known as ``filter-pattern'' TODO.
+This scheme is known as ``Pipes and Filters architectural pattern'' \cite{patterns}.
 
 By inserting additional ``filters'', the bootstrapping process can be customized
 without changing any of the involved programs:
@@ -31,7 +31,7 @@ a given \osl{} specification in the way the user desires).
 
 \subsubsection{Configuration via command-line arguments}
 The behavior of \myprog{} itself can be adjusted via command-line arguments (only).
-The syntax for their application follows the POSIX standard TODO.
+%The syntax for their application follows the POSIX standard \cite{posix} (no!).
 Most features can be configured via short options (as, for example, \code{-P}).
 To allow for enhanced readability of \myprog{} invocations, each feature can (also)
 be configured via a long option (like \code{\textendash\textendash password}).
@@ -40,7 +40,7 @@ seen as unnecessary complicating
 while not addressing any real difficulties.
 
 The command-line arguments \myprog{} currently supports are
-described in table \ref{if_tbl_arguments_desc},
+described in table \ref{if_tbl_arguments_desc};
 their default values are listed in table \ref{if_tbl_arguments_def}.
 There is currently no switch to set the output format, since the only supported
 output format, besides \osl{}, is a low-level output format for debugging purposes.
@@ -128,15 +128,15 @@ 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, comprehensive and clean implementation.
+and allows for a straight-forward and comprehensive implementation.
 
 \subsubsection{Advanced modifications}
 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 defined to be a subset of \name{OWL} (see the specification
-of \osl{} in section \ref{oslspec}), he can thereby take advantage of editors
+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
 supporting syntax highlighting or other features making the handling of
 the respective \name{OWL} serialization more comfortable.
 
@@ -145,8 +145,8 @@ 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}) are very
-likely to be able to check their input for conformity with the \osl{} definition.
+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}'',
@@ -155,13 +155,13 @@ For example, a database can be periodically checked for changes that make a
 re-bootstrapping necessary:
 \codepar{db2osl -d mydb myserver.org | sha256sum >oldsum\\
        cp oldsum newsum\\
-       while diff oldsum newsum; do\\
+       while diff oldsum newsum; do\ \ \# while checksums are the same\\
        \ind sleep 3600\ \ \# wait 1 hour\\
        \ind db2osl -d mydb myserver.org | sha256sum >newsum\\
        done\\
        rm oldsum newsum\\
        \# notify web admin via e-mail:\\
-       mutt -s "Re-bootstrapping necessary" web-admin@myserver.org}
+       date | mutt -s "Re-bootstrapping necessary" web-admin@myserver.org}
 
 Another possible example is the integration of \myprog{} into a shell script
 that bootstraps all databases on a server:
@@ -182,7 +182,7 @@ 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.
+\name{Java} Runtime Environment TODO.
 Additionally, it is possible to deploy it as a Web application TODO.
 
 To simplify integration on the code level, the architecture of \myprog{} was
@@ -203,6 +203,6 @@ If the accruing information shall be used in another way than being output or lo
 this of course has to be implemented.
 If not, it is sufficient to replace the used \code{Logger} object by anohter one
 providing the desired behavior, since the \code{Logger} class is part of the
-\name{Java} API and widely used TODO.
+\name{Java} API and widely used \cite{log}.
 This is a good example of how using well-known and commonly used classes can
 greatly improve modularity and reusability.