Project created
After Width: | Height: | Size: 168 KiB |
After Width: | Height: | Size: 47 KiB |
After Width: | Height: | Size: 145 KiB |
After Width: | Height: | Size: 167 KiB |
After Width: | Height: | Size: 94 KiB |
After Width: | Height: | Size: 86 KiB |
|
@ -0,0 +1,131 @@
|
|||
\typeout{Beamer class for talks with F4 style <2017-07-19> Frauke Sprengel}
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
|
||||
\ProvidesClass{f4_beamer}[2017/07/19 beamer class F4 style]
|
||||
|
||||
\RequirePackage{ifthen}
|
||||
\RequirePackage{etex}
|
||||
\RequirePackage[utf8]{inputenc}
|
||||
\RequirePackage[T1]{fontenc}
|
||||
\RequirePackage{lmodern}
|
||||
\RequirePackage{amssymb}
|
||||
\RequirePackage{amsmath}
|
||||
\RequirePackage{graphicx}
|
||||
|
||||
%\RequirePackage{url,hyperref}
|
||||
|
||||
\DeclareOption{ngerman}{%
|
||||
\PassOptionsToPackage{\CurrentOption}{babel}
|
||||
}
|
||||
|
||||
\DeclareOption{english}{%
|
||||
\PassOptionsToPackage{\CurrentOption}{babel}
|
||||
}
|
||||
|
||||
\ExecuteOptions{ngerman}
|
||||
\ProcessOptions
|
||||
|
||||
\LoadClass[german,compress,hyperref={pdfpagelabels=false},unknownkeysallowed]{beamer}
|
||||
\RequirePackage{babel}
|
||||
\RequirePackage{geometry}
|
||||
\geometry{paperwidth=16cm,paperheight=9cm}
|
||||
|
||||
|
||||
\newcommand{\zsp}{\rule{0pt}{0pt}} % zero space
|
||||
|
||||
|
||||
\mode<presentation>{%
|
||||
\hypersetup{pdffitwindow=true,pdfpagelayout=SinglePage,%pdfpagemode=FullScreen,
|
||||
breaklinks=true,urlcolor=Blue}
|
||||
\usetheme{default}
|
||||
\useinnertheme[shadow=true]{rounded}
|
||||
\usecolortheme{orchid}
|
||||
\setbeamercovered{invisible}
|
||||
\setbeamertemplate{theorems}[numbered]
|
||||
\setbeamertemplate{captions}[numbered]
|
||||
\setbeamertemplate{bibliography item}[book]
|
||||
\usefonttheme{professionalfonts}
|
||||
\raggedright
|
||||
\setbeamertemplate{items}[circle]
|
||||
%\setbeamertemplate{itemize items}[ball]
|
||||
\setbeamertemplate{bibliography item}[book]
|
||||
|
||||
\titlegraphic{\includegraphics[width=0.15\textwidth]{Wortmarke_WI_schwarz.pdf}}
|
||||
|
||||
\defbeamertemplate*{title page}{customized}[1][]
|
||||
{ \inserttitlegraphic\par\vfill\vfill
|
||||
\usebeamerfont{title}{\bfseries \inserttitle}\par
|
||||
\usebeamerfont{subtitle}%\usebeamercolor[fg]{subtitle}
|
||||
{\slshape \insertsubtitle}\par \bigskip
|
||||
\usebeamerfont{author}{\footnotesize\insertauthor\par
|
||||
\usebeamerfont{date}\insertdate\par}\vspace*{-1cm}
|
||||
%\usebeamerfont{institute}\insertinstitute\par
|
||||
}
|
||||
|
||||
\AtBeginDocument{%
|
||||
\setcounter{framenumber}{0}
|
||||
{\setbeamertemplate{footline}{}
|
||||
\setbeamertemplate{sidebar right}{~ \vfill\par
|
||||
\mbox{}\hspace{-2cm}
|
||||
\includegraphics[width=3cm]{H_WI_Pantone1665.pdf}}
|
||||
|
||||
\maketitle }
|
||||
}
|
||||
|
||||
\AtBeginSection[]
|
||||
{
|
||||
\begin{frame}<beamer>
|
||||
\tableofcontents[currentsection,hideothersubsections]
|
||||
\end{frame}
|
||||
}
|
||||
|
||||
% Frame layout
|
||||
\pgfdeclareimage[height=1.7cm]{fhh-logo}{H_WI_Pantone1665.pdf}
|
||||
\logo{\pgfuseimage{fhh-logo}}
|
||||
\definecolor{structureBlue}{rgb}{0.862745098, 0.235294118, 0.019607843}
|
||||
\renewcommand{\alert}[1]{{\textcolor{structureBlue}{#1}}}
|
||||
\setbeamertemplate{navigation symbols}{%
|
||||
\insertslidenavigationsymbol{}
|
||||
\insertframenavigationsymbol{}
|
||||
\insertbackfindforwardnavigationsymbol{}%
|
||||
}
|
||||
|
||||
\setbeamertemplate{sidebar left}{}
|
||||
\setbeamertemplate{footline}{%
|
||||
|
||||
\zsp\hspace{0.1cm}%
|
||||
\parbox{0.95\textwidth}{{\fontsize{6}{8}
|
||||
\mbox{~}\textcolor{structureBlue}{\hrulefill}\mbox{} \\
|
||||
|
||||
\mbox{~}{\bfseries Hochschule Hannover}, Fak. IV, \insertshortauthor{}, \insertshorttitle{},
|
||||
\insertshortsubtitle{}, \insertdate{} \hfill \insertframenumber{}
|
||||
\vspace*{4pt}
|
||||
}}
|
||||
% \parbox{4cm}{%
|
||||
%\insertlogo{}%
|
||||
% \vskip2pt%
|
||||
% }%
|
||||
% \hfill
|
||||
% \parbox{4cm}{%
|
||||
% \centering\fontsize{6}{8}%
|
||||
% \textcolor{lightgray}{\insertshorttitle{}}\\[2pt]
|
||||
% \textcolor{lightgray}{\insertshortauthor{} -- \insertdate{}}%
|
||||
% \vspace*{2pt}%
|
||||
% }
|
||||
% \hfill
|
||||
% \parbox{4cm}{%
|
||||
% \raggedleft\fontsize{6}{8}%
|
||||
% \textcolor{lightgray}{\insertlecture{} -- \insertsectionhead{} --
|
||||
% \insertframenumber{}}\\ \usebeamertemplate***{navigation symbols}%
|
||||
% \vspace*{2pt}%
|
||||
% }
|
||||
\hspace{0.1cm}\zsp
|
||||
}
|
||||
|
||||
\setbeamersize{sidebar width right=1.5cm}
|
||||
\setbeamertemplate{sidebar right}{~ \vfill \insertlogo \vspace*{10pt}
|
||||
|
||||
~}
|
||||
|
||||
\setbeamercolor{structure}{fg=structureBlue!70!black}
|
||||
}
|
|
@ -0,0 +1,389 @@
|
|||
\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}
|
||||
%\tableofcontents[hideallsubsections]
|
||||
|
||||
\section{Einleitung}
|
||||
\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}
|
||||
|
||||
\begin{frame}{Description Logic: T-Box (1/2)}
|
||||
A PortableGameConsole is a specific type of GameConsole.
|
||||
\begin{itemize}
|
||||
\item \texttt{PortableGameConsole $\sqsubseteq$ GameConsole}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Description Logic: T-Box (2/2)}
|
||||
An Organization can have a Person as CEO.
|
||||
\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}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Description Logic: R-Box (1/2)}
|
||||
\begin{itemize}
|
||||
\item \texttt{$\exists$ successorOfConsole.$\top$ $\sqsubseteq$ relatedToConsole}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Description Logic: R-Box (2/2)}
|
||||
\begin{itemize}
|
||||
\item \texttt{relatedToConsole $\circ$ relatedToConsole $\sqsubseteq$ relatedToConsole}
|
||||
\item \texttt{successorOfConsole $\circ$ successorOfConsole $\sqsubseteq$ successorOfConsole}
|
||||
\item \texttt{predecessorOfConsole $\circ$ predecessorOfConsole $\sqsubseteq$ predecessorOfConsole}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Description Logic: A-Box}
|
||||
\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}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Description Logic: New Concepts}
|
||||
Boolean concept constructors:
|
||||
\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\}}
|
||||
\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}
|
||||
\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}
|
||||
\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}
|
After Width: | Height: | Size: 42 KiB |
After Width: | Height: | Size: 169 KiB |