[TASK] Generic commit.

This commit is contained in:
Jan Philipp Timme 2016-08-03 14:47:53 +02:00
parent ca7ee9638d
commit aca68b6877

View File

@ -461,11 +461,10 @@ Hier wird jetzt mal wirklich C-SPARQL verwendet.
\end{itemize}
\section{grobes Konzept}
Ähm. Ich glaube, der Part ist redundant mit dem groben C-SPARQL Abschnitt im vorherigen Kapitel?
\section{Nutzung der C-SPARQL Engine in Java}
\section{Hello-World mit C-SPARQL Engine in Java}
\subsection{Initialisieren der Engine}
Erst einmal die Instanz der Engine erzeugen und initialisieren (mit true, damit f:timestamp zur Verfügung steht).
\begin{lstlisting}
@ -473,15 +472,11 @@ CsparqlEngine engine = new CsparqlEngineImpl();
engine.initialize(true);
\end{lstlisting}
Einen StreamGenerator erzeugen (im Konstruktor die IRI für alle generierten Quadrupel), an der Engine registrieren und starten (separater Thread, dementsprechent etwas auf Threadsicherheit achten!)
\begin{lstlisting}
RdfStream carStreamGenerator = new CarStreamGenerator("http://myexample.org/cars");
engine.registerStream(carStreamGenerator);
final Thread t = new Thread((Runnable) carStreamGenerator);
t.start();
\end{lstlisting}
\subsection{Stream-Generatoren}
Über den StreamGenerator muss ich etwas mehr erzählen, hier mal der grobe Code:
(Beim Programmieren darauf achten, dass dies ein separater Thread ist)
\begin{lstlisting}
public class StreamGenerator extends RdfStream implements Runnable {
private volatile boolean keepRunning = false;
@ -513,6 +508,21 @@ public class StreamGenerator extends RdfStream implements Runnable {
}
\end{lstlisting}
\subsection{StreamGenerator an der Engine registrieren und starten}
Einen StreamGenerator erzeugen (im Konstruktor die IRI für alle generierten Quadrupel), an der Engine registrieren und starten
\begin{lstlisting}
RdfStream carStreamGenerator = new CarStreamGenerator("http://myexample.org/cars");
engine.registerStream(carStreamGenerator);
final Thread t = new Thread((Runnable) carStreamGenerator);
t.start();
\end{lstlisting}
\subsection{Query an der Engine registrieren}
Jetzt einen Query an der Engine registrieren; Ergebnis ist ein ResultProxy, an den Observer angeklemmt werden können um die Query-Ergebnisse weiter zu verarbeiten.
\begin{lstlisting}
String query = "%%% SPARQL QUERY %%%";
@ -526,6 +536,15 @@ try {
resultProxy.addObserver(new ConsoleFormatter());
\end{lstlisting}
\subsection{Laufen lassen und abwarten}
Der Part ist einfach ;-)
Im Main-Thread einfach etwas Thread.sleep() callen und gut.
\subsection{Engine herunterfahren}
Ab hier läuft das ganze ab, bis es gestoppt wird. Um es abzubauen, wird zunächst der Query deregistriert.
\begin{lstlisting}
engine.unregisterQuery(resultProxy.getId());
@ -538,17 +557,6 @@ engine.unregisterStream(carStreamGenerator.getIRI());
\end{lstlisting}
\begin{itemize}
\item Initialisieren der Engine
\item Erzeugen und Registrieren der Stream-Generatoren
\item Starten der Generatoren (optional auch später)
\item Erzeugen von QueryResultProxys mit den CSPARQL-Queries
\item Observer dem QueryResultProxy anheften und den Proxy an der Engine registrieren
\item Laufen lassen und abwarten
\item Zum Beenden die Queries deregistrieren, die StreamGeneratoren stoppen und deregistrieren.
\end{itemize}
\section{Einspeisung von Ereignissen}
\begin{itemize}
@ -559,6 +567,7 @@ engine.unregisterStream(carStreamGenerator.getIRI());
Spezielle Betrachtung der StreamGenerators und wie sie funktionieren, Anmerkungen darüber, dass hier Daten von außen gezogen und ggf. konvertiert werden können.
\section{Einspeisung von statischem Hintergrundwissen aus Dateien}
Wie und wo werden Dateien in welchen Formaten abgelegt, müssen sie zuvor in der Engine registriert werden und wie wird im Query darauf zugegriffen?