[TASK] Generic commit
This commit is contained in:
parent
b1a2009f03
commit
66c5924a75
|
@ -339,15 +339,21 @@ Listing~\ref{lst:sample_sparql_query} zeigt, dass SPARQL in der groben Grundstru
|
|||
Für das gefundene \texttt{?carModel} wird nun ein Tripel gesucht, welches für \texttt{?carModel} das Prädikat \texttt{carOnt:maximumMotorRPM} nutzt, um die Angabe der maximalen Drehzahl für dieses Automodell zu definieren. Wird hierfür ebenfalls ein Treffer gelandet, so wird der Platzhalter \texttt{?maxMotorRPM} mit dem dazugehörigen Wert gefüllt und kann dann in der \texttt{SELECT}-Klausel selektiert werden. Für jede Tripelkombination, die auf die in der \texttt{WHERE}-Klausel formulierten Beschreibung passt, ergibt sich nun ein Ergebnis, für welches die in der \texttt{SELECT}-Klausel angegebenen Felder zurückgegeben werden --- in diesem Fall also lediglich ein Ergebnis mit dem Wert \enquote{4300}.
|
||||
|
||||
\paragraph{Konstruktion von Daten durch Abfragen}
|
||||
Neben \texttt{SELECT} unterstützt SPARQL auch das Schlüsselwort \texttt{CONSTRUCT}. Dieses ermöglicht die direkte Konstruktion von neuen Tripeln aus vorgegebenen Tripeln mit Platzhaltern, welche mit den Ergebnissen der Abfrage gefüllt werden. Listing~\ref{lst:sample_sparql_construct} zeigt die Erzeugung von Tripeln für Geschwister, die auf ihren jeweilige Schwester (\enquote{isSisterOf}) beziehungsweise ihren jeweiligen Bruder (\enquote{isBrotherOf}) zeigen.
|
||||
Neben \texttt{SELECT} unterstützt SPARQL auch das Schlüsselwort \texttt{CONSTRUCT}. Dieses ermöglicht die direkte Konstruktion von neuen Tripeln aus vorgegebenen Tripeln mit Platzhaltern, welche mit den Ergebnissen der Abfrage gefüllt werden. Listing~\ref{lst:sample_sparql_construct} zeigt die beispielhafte Erzeugung von Tripeln auf Basis der Daten aus Listing~\ref{lst:sample_rdf_data}, welche über das Prädikat \texttt{carOnt:motorRPMTolerance} Auskunft über die Größe des akzeptablen Drehzahlbereiches der Automodelle geben sollen.
|
||||
\begin{lstlisting}[caption={Konstruktion von neuen Tripeln auf Basis des Wissens aus Listing~\ref{lst:sample_rdf_data}},label={lst:sample_sparql_construct}]
|
||||
PREFIX carOnt: <http://example.org/carSim/carSimulationOntology#>
|
||||
PREFIX car: <http://example.org/carSim/objects/Car#>
|
||||
|
||||
\begin{lstlisting}[caption={Konstruktion von Tripeln ...},label={lst:sample_sparql_construct}]
|
||||
CONSTRUCT {
|
||||
...
|
||||
?carModel carOnt:motorRPMTolerance ?rpmTolerance .
|
||||
} WHERE {
|
||||
... TODO ...
|
||||
?carModel rdf:type carOnt:CarModel .
|
||||
?carModel carOnt:minimumMotorRPM ?minMotorRPM .
|
||||
?carModel carOnt:maximumMotorRPM ?maxMotorRPM .
|
||||
BIND(?maxMotorRPM - ?minMotorRPM AS ?rpmTolerance) .
|
||||
}
|
||||
\end{lstlisting}
|
||||
Wie in Listing~\ref{lst:sample_sparql_construct} gezeigt, können einfache Operationen in SPARQL-Abfragen durchgeführt werden, deren Ergebnisse über die \texttt{BIND}-Anweisung in einen vorgegebenen Platzhalter \texttt{?rpmTolerance} eingesetzt werden. In diesem Beispiel wurde die Differenz zwischen der maximalen und der minimalen empfohlenen Motordrehzahl eines Automodells ausgerechnet und ein neues Tripel mit dieser Information generiert.
|
||||
|
||||
|
||||
\subsection{Schlussfolgerungen auf RDF-Daten}\label{cpt:reasoning}
|
||||
|
|
Loading…
Reference in New Issue