\documentclass[tikz]{standalone} \usepackage{tikz} % Semantic Web Layer Cake: https://www.w3.org/2007/03/layerCake.svg % TikZ interpretation by Natanael Arndt % If you like: CC-by % If you don't want to place a name: CC-0 \begin{document} \tikzstyle{label}=[align=center] \tikzstyle{layer}=[draw, label, anchor=south west, minimum height=.75cm, minimum width=1cm] \begin{tikzpicture}[] %\draw[help lines,step=.25,color=gray!20] (0,0) grid (9,8.75); % Representation \draw (0,0) node (iri) [layer, minimum width=7.75cm] {URI/IRI\strut}; \draw (4,1) node (xml) [layer, minimum width=3.75cm] {XML\strut}; \draw (0,1) -- ++(0,1.75) -- ++(7.75,0) -- ++(0,-.75) -- ++(-4,0) -- ++(0,-1) -- cycle; \node at (2,2) [anchor=base, text width=3.5cm, label] {Data interchange:\\RDF\strut}; % Query & Update \draw (.5,3) node (query) [layer, minimum width=1.75cm, minimum height=1.75cm, text width=1.5cm] {Query: SPARQL\strut}; % Reasoning \draw (2.5,3) node (rdfs) [layer, minimum width=3.25cm] {RDFS\strut}; \draw (2.5,4) node (owl) [layer, minimum width=3.25cm] {Ontology: OWL\strut}; \draw (6,3) node (rif) [layer, minimum width=1.75cm, minimum height=1.75cm, text width=1.5cm] {Rule: RIF\strut}; \draw (1.5,5) node (logic) [layer, minimum width=5.25cm] {Unifying Logic\strut}; % Trust \draw (4,6) -- ++(0,.75) -- ++(3.75,0) -- ++(0,-1.75) -- ++(-.75,0) -- ++(0,1) -- cycle; \node at (6,6.25) [anchor=base, text width=3.5cm, label] {Proof\strut}; \draw (8,0) node (crypto) [layer, minimum height=6.75cm] {}; \node at (8.5,3.5) [label, rotate=90] {Crypto\strut}; \draw (5.25,7) node (trust) [layer, minimum width=3.75cm] {Trust\strut}; % Interaction \draw (0,8) node (ui) [layer, minimum width=9cm] {User Interface \& Applications\strut}; \end{tikzpicture} \end{document}