[TASK] Generic commit.
This commit is contained in:
parent
ca7ee9638d
commit
aca68b6877
@ -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?
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user