INS-Slides/main.tex

258 lines
7.0 KiB
TeX

\documentclass{f4_beamer}
\usepackage{graphicx}
\usepackage{float}
\usepackage{subfigure}
\usepackage{xspace}
\usepackage{textcomp}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{amsmath}
\usepackage{subfigure}
\usepackage{here}
\usepackage{verbatim}
\usepackage{listings}
\usepackage{url}
\usepackage{caption}
\usepackage[autostyle=true,german=quotes]{csquotes}
% Suppress numbering captions
\captionsetup{labelformat=empty}
% Setup für Codeblocks
\lstset{
% Optionen
breaklines=true,
breakatwhitespace=true,
breakautoindent=true,
frame=single,
%framexleftmargin=19pt,
inputencoding=utf8,
%language=awk,
%numbers=left,
%numbersep=8pt,
showspaces=false,
showstringspaces=false,
tabsize=1,
%xleftmargin=19pt,
captionpos=b,
% Styling
basicstyle=\footnotesize\ttfamily,
commentstyle=\footnotesize,
keywordstyle=\footnotesize\ttfamily,
numberstyle=\footnotesize,
stringstyle=\footnotesize\ttfamily,
}
% Hack für Sonderzeichen in Codeblocks
\lstset{literate=%
{Ö}{{\"O}}1
{Ä}{{\"A}}1
{Ü}{{\"U}}1
{ß}{{\ss}}1
{ü}{{\"u}}1
{ä}{{\"a}}1
{ö}{{\"o}}1
{°}{{${^\circ}$}}1
}
\mode<presentation>
\title{Intelligente Systeme}
\subtitle{Ontologieprojekt: RDFS Ontologie }
\author{Marcel Felix, Jan Philipp Timme}
\date{\today}
\begin{document}
\begin{frame}{Szenario}
\begin{itemize}
\item Welt der Spielekonsolen mit Bewertungen
\item Spielekonsolen mit einigen Attributen beschrieben
\item Spielekonsolen werden von Organisationen hergestellt
\item Spielekonsolen haben einen Nachfolger/Vorgänger
\item Organisationen haben einen CEO
\item \dots
\end{itemize}
\end{frame}
\begin{frame}[fragile]{Selbstdefinierte Prädikate}
\begin{lstlisting}
:foundingYear rdf:type rdf:Property ;
rdfs:domain foaf:Organization ;
rdfs:range xsd:int .
:internetEnabled rdf:type rdf:Property ;
rdfs:domain :GameConsole ;
rdfs:range xsd:boolean .
:consoleName rdf:type rdf:Property ;
rdfs:domain :GameConsole ;
rdfs:range xsd:string .
\end{lstlisting}
\end{frame}
\begin{frame}[fragile]{Ein eigener Datentyp und mehr \dots}
\begin{lstlisting}
# rdfs:Datatype
:PriceEur rdf:type rdfs:Datatype .
:PriceEur rdfs:label "Preis in Euro"^^xsd:string .
# rdfs:subPropertyOf
:predecessorOfConsole rdfs:subPropertyOf :relatedToConsole .
:successorOfConsole rdfs:subPropertyOf :relatedToConsole .
# rdfs:subClassOf
:GameConsole rdf:type rdfs:Class .
:PortableGameConsole rdf:type rdfs:Class .
:PortableGameConsole rdfs:subClassOf :GameConsole .
\end{lstlisting}
\end{frame}
\begin{frame}[fragile]{Überblick Daten A-Box (1/2)}
\begin{lstlisting}
@prefix : <http://example.com/ins_uebung/#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix rev: <http://purl.org/stuff/rev#> .
:Nintendo rdf:type foaf:Organization ;
:ceo :Kimishima ;
:foundingYear 1889 ;
foaf:name "Nintendo Co., Ltd."^^xsd:string .
:Kimishima rdf:type foaf:Person ;
foaf:familyName "Kimishima"^^xsd:string ;
foaf:givenName "Tatsumi"^^xsd:string .
\end{lstlisting}
\end{frame}
\begin{frame}[fragile]{Überblick Daten A-Box (2/2)}
\begin{lstlisting}
:Switch rdf:type :PortableGameConsole .
:Switch rev:hasReview :SwitchReviewByJPT .
:Wii rdf:type :GameConsole .
:Wii_u rdf:type :GameConsole ;
:internetEnabled true ;
:consoleName "Wii U"^^xsd:string ;
:numOfSupportedControllers 8 ;
:predecessorOfConsole :Wii ;
:releaseYear 2012 ;
:successorOfConsole :Switch .
\end{lstlisting}
...
\end{frame}
\begin{frame}[fragile]{T-Box (1/2)}
\begin{lstlisting}
@prefix : <http://example.com/ins_uebung/#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix rev: <http://purl.org/stuff/rev#> .
# Our own properties
:ceo rdf:type rdf:Property ;
rdfs:domain foaf:Organization ;
rdfs:range foaf:Person .
:foundingYear rdf:type rdf:Property ;
rdfs:domain foaf:Organization ;
rdfs:range xsd:int .
:internetEnabled rdf:type rdf:Property ;
rdfs:domain :GameConsole ;
rdfs:range xsd:boolean .
\end{lstlisting}
\end{frame}
\begin{frame}[fragile]{T-Box (2/2)}
\begin{lstlisting}
:consoleName rdf:type rdf:Property ;
rdfs:domain :GameConsole ;
rdfs:range xsd:string .
:numOfSupportedControllers rdf:type rdf:Property ;
rdfs:domain :GameConsole ;
rdfs:range xsd:string .
:successorOfConsole rdf:type rdf:Property ;
rdfs:domain :GameConsole ;
rdfs:range :GameConsole .
\end{lstlisting}
\end{frame}
\begin{frame}[fragile]{Anwendung von RDFS-Regeln}
Gegeben sei folgende A-Box
\begin{lstlisting}
:Wii_U rdf:type :GameConsole .
:Switch :successorOfConsole :Wii_U .
\end{lstlisting}
mit dieser T-Box
\begin{lstlisting}
:successorOfConsole rdf:type rdf:Property ;
rdfs:domain :GameConsole ;
rdfs:range :GameConsole .
\end{lstlisting}
Anwendung der Regel \texttt{rdfs2}
\begin{lstlisting}
s p o .
p rdfs:domain c . ==> s rdf:type c .
\end{lstlisting}
Ergebnis:
\begin{lstlisting}
:Switch rdf:type :GameConsole .
\end{lstlisting}
\end{frame}
\begin{frame}[fragile]{SPARQL-Anfragen (1/2)}
Wie viele verschiedene Konsolen wurden von Nintendo hergestellt?
\begin{lstlisting}
SELECT COUNT(?console) AS ?numConsoles
WHERE {
?console :madeBy ?organization .
}
GROUP BY ?organization
\end{lstlisting}
Welche Konsolen kamen nach Jahr X raus?
\begin{lstlisting}
SELECT ?console
WHERE {
?console :madeBy :Nintendo .
?console :releaseYear ?releaseYear .
FILTER(?releaseYear > 1997)
}
\end{lstlisting}
\end{frame}
\begin{frame}[fragile]{SPARQL-Anfragen (2/2)}
Einen CEO einer Konsole zuordnen.
\begin{lstlisting}
CONSTRUCT {
?ceo :isRelatedToConsole ?console .
}
WHERE {
?console rdf:type :GameConsole .
?console :madeBy ?org .
?org :ceo ?ceo .
?ceo rdf:type foaf:Person .
}
\end{lstlisting}
Alle Konsolen die mindestens ein Review haben.
\begin{lstlisting}
SELECT DISTINCT ?console
WHERE {
?console rev:hasReview ?anyReview .
}
\end{lstlisting}
\end{frame}
% The end.
\end{document}