Update on Overleaf.

This commit is contained in:
Jan Philipp Timme 2018-01-02 21:53:36 +00:00 committed by overleaf
parent 579c3a347f
commit dda975cc3e
1 changed files with 76 additions and 287 deletions

363
main.tex
View File

@ -12,6 +12,7 @@
\usepackage{verbatim}
\usepackage{listings}
\usepackage{url}
\usepackage{xcolor}
\usepackage{caption}
\usepackage[autostyle=true,german=quotes]{csquotes}
@ -54,336 +55,124 @@
{°}{{${^\circ}$}}1
}
% Define colors
\definecolor{hlr}{RGB}{255,180,180}
\definecolor{hlg}{RGB}{180,255,180}
\definecolor{hlb}{RGB}{180,180,255}
\mode<presentation>
\title{Intelligente Systeme}
\subtitle{Ontologieprojekt: RDFS Ontologie }
\author{Marcel Felix, Jan Philipp Timme}
\title{IPv6}
\subtitle{Einführung und Sicherheitsaspekte}
\author{Jan Philipp Timme}
\date{\today}
\begin{document}
%\tableofcontents[hideallsubsections]
\tableofcontents[hideallsubsections]
\section{Einleitung}
\begin{frame}{Szenario}
\section{Einstieg IPv6}
\begin{frame}{Neuigkeiten mit IPv6}
\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
\item 128 Bit Adressraum
\item Neu: Link-lokale Adressen
\item Multicast anstelle von Broadcast
\item ICMPv6 für Betrieb essentiell
\item Konfiguration via SLAAC und DHCPv6
\item Router Advertisments
\item Vollwertiges Routing, kein NAT!
\item Paketfragmentierung nur durch den Absender
\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}
\begin{frame}{Notation und Kurzschreibweise}
Gegeben: IPv6-Adresse
\texttt{2001:0db8:2407:08d3:0000:0000:0000:1234} \newline
\newline
1) Führende Nullen streichen \newline
\texttt{2001:\colorbox{hlb}{0}db8:2407:\colorbox{hlb}{0}8d3:\colorbox{hlb}{000}0:\colorbox{hlb}{000}0:\colorbox{hlb}{000}0:1234} \newline
$\Rightarrow$ \texttt{2001:db8:2407:8d3:0:0:0:1234} \newline
\newline
2) Zusammenhängende Nullsegmente mit \texttt{::} ersetzen
\texttt{2001:db8:2407:8d3:\colorbox{hlb}{0:0:0}:1234} \newline
$\Rightarrow$ \texttt{2001:db8:2407:8d3::1234}
\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}
\begin{frame}{Präfix}
IPv6-Adresse mit angegebener Prefix-Länge: \texttt{2001:db8:2407:8d3::1234/128}
\end{frame}
\subsection{Adressklassen}
\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}
\begin{frame}{Description Logic: T-Box (1/2)}
A PortableGameConsole is a specific type of GameConsole.
\begin{frame}{Adressklassen: Unspezifizierte Adresse\footnote{Siehe RFC 4291, Kapitel 2.5.2.}}
Aus IPv4 bekannt als \texttt{0.0.0.0/0} \newline
\newline
In IPv6: \texttt{0000:0000:0000:0000:0000:0000:0000:0000} (kurz: \texttt{::}) \newline
\begin{itemize}
\item \texttt{PortableGameConsole $\sqsubseteq$ GameConsole}
\item Zeigt das Fehlen einer Adresse an
\item \dots oder signalisiert Erreichbarkeit eines Sockets auf allen Adressen eines Geräts
\item Darf nie einem Gerät zugewiesen werden
\item Als Quelladresse für Pakete erlaubt
\begin{itemize}
\item \dots sofern Rechner noch keine IPv6-Adresse besitzt
\item \dots diese dürfen dann nicht geroutet werden
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}{Description Logic: T-Box (2/2)}
An Organization can have a Person as CEO.
\begin{frame}{Adressklassen: Loopback Adresse\footnote{Siehe RFC 4291, Kapitel 2.5.3.}}
Aus IPv4 bekannt als \texttt{127.0.0.1/8} \newline
\newline
\texttt{0000:0000:0000:0000:0000:0000:0000:0001} (kurz: \texttt{::1})
\newline
\begin{itemize}
\item \texttt{$\exists$ ceo.$\top$ $\sqsubseteq$ Organization}
\item \texttt{Organization $\sqsubseteq$ $\forall$ceo.Person}
\end{itemize}
A GameConsole is made by an Organization.
\begin{itemize}
\item \texttt{$\exists$ madeBy.$\top$ $\sqsubseteq$ GameConsole}
\item \texttt{GameConsole $\sqsubseteq$ $\forall$madeBy.Organization}
\item Wie bereits aus IPv4 bekannt
\end{itemize}
\end{frame}
\begin{frame}{Description Logic: R-Box (1/2)}
\begin{frame}{Adressklassen: Globale Unicast Adresse (GUA)\footnote{Siehe RFC 4291, Kapitel 2.5.4.}}
Analog zu global gerouteter IPv4-Adresse \newline
\newline
\texttt{2001:db8:2407:8d3::1234}
\newline
\begin{itemize}
\item \texttt{$\exists$ successorOfConsole.$\top$ $\sqsubseteq$ relatedToConsole}
\item Wie bereits aus IPv4 bekannt
\end{itemize}
\end{frame}
\begin{frame}{Description Logic: R-Box (2/2)}
\section{Hauptteil}
\begin{frame}{TODO}
\begin{itemize}
\item \texttt{relatedToConsole $\circ$ relatedToConsole $\sqsubseteq$ relatedToConsole}
\item \texttt{successorOfConsole $\circ$ successorOfConsole $\sqsubseteq$ successorOfConsole}
\item \texttt{predecessorOfConsole $\circ$ predecessorOfConsole $\sqsubseteq$ predecessorOfConsole}
\item TODO
\end{itemize}
\end{frame}
\begin{frame}{Description Logic: A-Box}
\section{Schluss}
\begin{frame}{TODO}
\begin{itemize}
\item \texttt{\{Nintendo\} $\sqsubseteq$ foaf:Organization}
\item \texttt{\{Nintendo\} $\sqsubseteq$ $\exists$ :ceo.Kimishima}
\item \texttt{\{Nintendo\} $\sqsubseteq$ $\exists$ :foundingYear.\{1889\}}
\item \texttt{\{Nintendo\} $\sqsubseteq$ $\exists$ :foaf:name.\{Nintendo Co., Ltd.\}}
\item \texttt{\{Wii\_U\} $\sqsubseteq$ foaf:Organization}
\item \texttt{\{Wii\_U\} $\sqsubseteq$ $\exists$ :consoleName.\{Wii U\}}
\item \texttt{\{Wii\_U\} $\sqsubseteq$ $\exists$ :predecessorOfConsole.Wii}
\item \texttt{\{Wii\_U\} $\sqsubseteq$ $\exists$ :successorOfConsole.Switch}
\item TODO
\end{itemize}
\end{frame}
\begin{frame}{Description Logic: New Concepts}
Boolean concept constructors:
\begin{frame}{}
\begin{itemize}
\item \texttt{HomeConsole $\equiv$ GameConsole $\sqcap$ $\neg$ PortableConsole}
\end{itemize}
Existential restriction:
\begin{itemize}
\item \texttt{NintendoConsole $\sqsubseteq$ $\exists$ madeBy.Nintendo}
\end{itemize}
Universal restriction:
\begin{itemize}
\item \texttt{GameConsole $\sqsubseteq$ $\forall$madeBy.Organization $\wedge$ $\forall$foundingYear.\{ $\geq$1700\}}
\end{itemize}
Number restrictions:
\begin{itemize}
\item \texttt{PartyConsole $\sqsubseteq$ $\leq$1 madeBy.Organization}
\end{itemize}
Reflexivity restriction:
\begin{itemize}
\item \texttt{GameConsole $\sqsubseteq$ $\nexists$ predecessorOfConsole.Self}
\end{itemize}
Nominals:
\begin{itemize}
\item \texttt{HomeConsole $\equiv$ \{Switch\} $\sqcap$ \{Wii\} $\sqcap$ \{Wii U\}}
\item
\end{itemize}
\end{frame}
\begin{frame}[fragile]{OWL (1/2)}
\begin{lstlisting}
:HomeConsole owl:differentFrom :PortableConsole .
\end{lstlisting}
\begin{lstlisting}
:predecessorOfConsole owl:propertyChainAxiom (:predecessorOfConsole :predecessorOfConsole) .
\end{lstlisting}
\begin{lstlisting}
:HomeConsole owl:equivalentClass [
rdf:type owl:Class ;
owl:intersectionOf (
:GameConsole [owl:complementOf :PortableConsole]
)
] .
\end{lstlisting}
\begin{lstlisting}
:NintendoConsole owl:equivalentClass [
rdf:type owl:Restriction ;
owl:onProperty :madeBy ;
owl:someValuesFrom :Nintendo
] .
\end{lstlisting}
\begin{frame}{}
\begin{itemize}
\item
\end{itemize}
\end{frame}
\begin{frame}[fragile]{OWL (2/2)}
\begin{lstlisting}
:PartyConsole rdf:equivalentClass [
rdf:type owl:Restriction ;
owl:minQualifiedCardinality "2"^^xsd:nonNegativeInteger ;
owl:onProperty :numOfSupportedControllers ;
owl:onClass :GameConsole
] .
\end{lstlisting}
\begin{frame}{}
\begin{itemize}
\item
\end{itemize}
\end{frame}
\begin{frame}[fragile]{Jena Rules}
With Jena built-ins
\begin{lstlisting}
[rule1: (?con rdf:type :GameConsole) (?con :predecessorOfConsole ?otherCon)
noValue(?otherCon :successorOfConsole ?con)
-> (?otherCon :successorOfConsole ?con)]
\end{lstlisting}
Removing facts
\begin{lstlisting}
[rule2: (?con :hasPrice ?someValue)
-> remove(?con :hasPrice ?someValue)]
\end{lstlisting}
Insert new facts
\begin{lstlisting}
[rule3: (?con rev:hasReview ?rev) (?rev rev:reviewer ?reviewer)
-> (?reviewer :hasReviewedConsole ?con)]
\end{lstlisting}
Testing with Jena Rule \dots by using the rules in our code.
\end{frame}
% The end.
\end{document}