paper diagrams

main
Roman Schöne 2026-05-03 11:50:56 +02:00
parent 8f9314cddb
commit 140cf2e78b
10 changed files with 10146 additions and 13 deletions

View File

@ -74,10 +74,10 @@
\begin{enumerate} \begin{enumerate}
\item \label{item:min_set_count} Was ist die minimale Anzahl an Sets, die benötigt wird um ein anderes Set zusammenzubauen? \item \label{item:min_set_count} Was ist die minimale Anzahl an Sets, die benötigt wird um ein anderes Set zusammenzubauen?
\item \label{item:min_set_price} Was ist der geringste Preis einer Auswahl an Sets um ein anderes Set zusammenzubauen? \item \label{item:min_set_price} Was ist der geringste Preis einer Auswahl an Sets um ein anderes Set zusammenzubauen?
\item \label{item:set_span} Welche anderen Sets, können mit Sets, die sich schon im eigenen Besitz befinden zusammengebaut werden?
\item Sind Sets von anderen Herstellern im Vergleich zu Lego Sets, auf den durchschnittlichen Teilepreis betrachtet billiger? \item Sind Sets von anderen Herstellern im Vergleich zu Lego Sets, auf den durchschnittlichen Teilepreis betrachtet billiger?
\item Haben neuere Sets im Vergleich zu älteren Sets eine geringere Teileanzahl, da auf eine grössere Anzahl an speziell angefertigten Teilen zugegriffen werden kann? \item Haben neuere Sets im Vergleich zu älteren Sets eine geringere Teileanzahl, da auf eine grössere Anzahl an speziell angefertigten Teilen zugegriffen werden kann?
\item Haben Sets mit höherer Teileanzahl eine höhere Anzahl an Minifiguren? \item Haben Sets mit höherer Teileanzahl eine höhere Anzahl an Minifiguren?
\item \label{item:set_span} Welche anderen Sets, können mit Sets, die sich schon im eigenen Besitz befinden zusammengebaut werden?
\item \label{item:equivalent_part} Welche Lego-Teile besitzen äquivalente Teile von anderen Marken? \item \label{item:equivalent_part} Welche Lego-Teile besitzen äquivalente Teile von anderen Marken?
\end{enumerate} \end{enumerate}
@ -181,9 +181,9 @@
\subsection{Integrationsprozess} \subsection{Integrationsprozess}
Jedes von Lego veröffentlichte Teil besitzt der Form zugrunde eine eindeutige Teile-Nummer, auch Design-ID genannt. Die Teilenummer wird nur aufgrund der Form eines Legosteins vergeben und kann auf dem Lego-Stein abgelesen werden. Üblicherweise besitzt eine Design-ID 4-5 Stellen. Abhängig von der Form, Farbe und des Drucks besitzt jeder Lego-Stein eine 6-7 stellige Element-ID. Die Element-IDs von Teilen eines Lego-Sets befindet sich als Auflistung aller Teile in der Bauanleitung eines Lego-Sets.\\ Jedes von Lego veröffentlichte Teil besitzt der Form zugrunde eine eindeutige Teile-Nummer, auch Design-ID genannt. Die Teilenummer wird nur aufgrund der Form eines Legosteins vergeben und kann auf dem Lego-Stein abgelesen werden. Üblicherweise besitzt eine Design-ID 4-5 Stellen. Abhängig von der Form, Farbe und des Drucks besitzt jeder Lego-Stein eine 6-7 stellige Element-ID. Die Element-IDs von Teilen eines Lego-Sets befindet sich als Auflistung aller Teile in der Bauanleitung eines Lego-Sets.\\
Sets besitzen ebenfalls eine Set-Nummer. Allerdings gibt es spezielle Lego-Sets, welche in Teil-Sets aufgegliedert werden oder mehrere Bauvarianten besitzen \cite{FreeLEGOCatalog}. Diese Art von Sets wird mithilfe von Inventaren modelliert (Siehe \ref{fig:rebrickable_scheme}). Ein Inventar kann als übergeordnetes Set verstanden werden. Ein Inventar kann somit Set-, Minifiguren- und Teile-Inventare besitzen, die angeben in welcher Stückzahl ein Teil-Set, eine Minifigur oder ein Teil vorhanden ist\\ Sets besitzen ebenfalls eine Set-Nummer. Einige Set-Nummern werden mit einem Suffix bspw. \textit{-1} angegeben. Dieser Suffix gibt Aufschluss über die Version des Sets. Allerdings gibt es spezielle Lego-Sets, welche in Teil-Sets aufgegliedert werden oder mehrere Bauvarianten besitzen \cite{FreeLEGOCatalog}. Diese Art von Sets wird mithilfe von Inventaren modelliert (Siehe \ref{fig:rebrickable_scheme}). Ein Inventar kann als übergeordnetes Set verstanden werden. Ein Inventar kann somit Set-, Minifiguren- und Teile-Inventare besitzen, die angeben in welcher Stückzahl ein Teil-Set, eine Minifigur oder ein Teil vorhanden ist\\
Lego-Minifiguren erhalten durch Lego keine eindeutige Identifikationsnummer. Zur eindeutigen Identifikation von Minifiguren wird die von \textit{Rebrickable} vergebene ID verwendet.\\ Lego-Minifiguren erhalten durch Lego keine eindeutige Identifikationsnummer. Zur eindeutigen Identifikation von Minifiguren wird die von \textit{Rebrickable} vergebene ID verwendet. Auf Minifiguren-Seiten von \textit{Rebrickable} sind Referenzen zu IDs derselben Minifigur auf anderen Seiten enthalten. Diese Referenzen sind innerhalb des bereitgestellten Datensatzes nicht abgebildet.\\
Da die einzige Quelle für andere Hersteller nur \textit{Merlins Steine} ist und diese nur Sets enthält, wird der Hersteller in der IRI miteinbezogen. Da die einzige Quelle für andere Hersteller nur \textit{Merlins Steine} ist und diese nur Sets enthält, wird der Hersteller in der IRI nur für Sets miteinbezogen.
\begin{verbatim} \begin{verbatim}
https://thm.de/set/{brand}/{id} https://thm.de/set/{brand}/{id}
\end{verbatim} \end{verbatim}
@ -218,7 +218,6 @@ https://thm.de/set/{brand}/{id}
Das Projekt kann unter der URL: \url{https://gitty.informatik.hs-mannheim.de/2211275/kgr} betrachtet werden. Das Projekt kann unter der URL: \url{https://gitty.informatik.hs-mannheim.de/2211275/kgr} betrachtet werden.
Der resultierende Knowledge-Graph ist über 300 MB gross. Die Dateigrösse lässt sich auf die Zuordnungen von Teilen zu Inventaren zurückführen. Der resultierende Knowledge-Graph ist über 300 MB gross. Die Dateigrösse lässt sich auf die Zuordnungen von Teilen zu Inventaren zurückführen.
\subsection{Beispiel-Queries} \subsection{Beispiel-Queries}
Erhalten der Gesamtheit aller Lego Star Wars Minifiguren: Erhalten der Gesamtheit aller Lego Star Wars Minifiguren:
\begin{verbatim} \begin{verbatim}
SELECT DISTINCT ?name SELECT DISTINCT ?name
@ -294,8 +293,6 @@ ORDER BY DESC(?t)
\end{table} \end{table}
Da Lego keine IDs für Minifiguren vergibt ist das erkennen zweier gleichartiger Figuren schwieriger. Die Preise von \textit{Brickset} konnten nicht den Minifiguren aus \textit{Rebrickable} zugeordnet werden. Da \textit{Rebrickable} die Zuordnung von Minifiguren zu Sets liefert, wurde die Entscheidung getroffen auf die Preiszuordnung zu verzichten. Für Figuren und Teile weiterer Marken, waren eine Zuordnung nur schwer bis gar nicht möglich. Diese Zuordnung wäre beispielsweise durch Bilderkennung, anhand vom Hersteller bereitgestellte Bauanleitungen in Form von .PDF-Dateien möglich. Da Lego keine IDs für Minifiguren vergibt ist das erkennen zweier gleichartiger Figuren schwieriger. Die Preise von \textit{Brickset} konnten nicht den Minifiguren aus \textit{Rebrickable} zugeordnet werden. Da \textit{Rebrickable} die Zuordnung von Minifiguren zu Sets liefert, wurde die Entscheidung getroffen auf die Preiszuordnung zu verzichten. Für Figuren und Teile weiterer Marken, waren eine Zuordnung nur schwer bis gar nicht möglich. Diese Zuordnung wäre beispielsweise durch Bilderkennung, anhand vom Hersteller bereitgestellte Bauanleitungen in Form von .PDF-Dateien möglich.
\subsection{Konsistenz}
\subsection{Qualität} \subsection{Qualität}
Es wird betrachtet, ob die ursprünglichen Fragestellungen mithilfe des Knowledge Graphen beantwortet werden können. Es wird betrachtet, ob die ursprünglichen Fragestellungen mithilfe des Knowledge Graphen beantwortet werden können.
@ -303,24 +300,73 @@ ORDER BY DESC(?t)
\begin{enumerate} \begin{enumerate}
\item Was ist die minimale Anzahl an Sets, die benötigt wird um ein anderes Set zusammenzubauen? \item Was ist die minimale Anzahl an Sets, die benötigt wird um ein anderes Set zusammenzubauen?
\item Was ist der geringste Preis einer Auswahl an Sets um ein anderes Set zusammenzubauen? \item Was ist der geringste Preis einer Auswahl an Sets um ein anderes Set zusammenzubauen?
\item Welche anderen Sets, können mit Sets, die sich schon im eigenen Besitz befinden zusammengebaut werden?\\
\textit{Der Knowledge Graph beinhaltet die Daten, sodass die Fragestellungen 1., 2., 3. beantwortet werden können. Eine effiziente Softwarelösung besitzt eine höhere geschätzte Komplexität und liegt ausserhalb des Rahmens dieser Arbeit.}
\item Sind Sets von anderen Herstellern im Vergleich zu Lego Sets, auf den durchschnittlichen Teilepreis betrachtet billiger?\\ \item Sind Sets von anderen Herstellern im Vergleich zu Lego Sets, auf den durchschnittlichen Teilepreis betrachtet billiger?\\
\textit{Diese Frage kann mithilfe der letzten Beispiel-Query \ref{verb:ppp_query} beantwortet werden. \textit{Diese Frage kann mithilfe der letzten Beispiel-Query \ref{verb:ppp_query} beantwortet werden. Abbildung \ref{fig:ppp} zeigt die Teile-Preise je Hersteller. Lego hat den höchsten Teilepreis mit 0.096 \texteuro und BlueBrixx den niedrigsten mit 0.0437 \texteuro.
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\includegraphics[width=\columnwidth]{./bilder/diagram_avg_part_price_brand.png} \includegraphics[width=\columnwidth]{./bilder/diagram_avg_part_price_brand.png}
\caption{Hersteller sortiert nach durchschnittlichem Teile-Preis} \caption{Hersteller sortiert nach durchschnittlichem Teile-Preis in \texteuro}
\label{fig:ppp} \label{fig:ppp}
\end{figure} \end{figure}
}
\item Haben neuere Sets im Vergleich zu älteren Sets eine geringere Teileanzahl, da auf eine grössere Anzahl an speziell angefertigten Teilen zugegriffen werden kann?\\
\textit{Es ist das Gegenteil zu erkennen. Eine Erklärung dafür könnte sein, dass die Klemmbaustein-Marken mehrheitlich Sets für \ac{AFOL} herausbringen im Vergleich zu vorherigen Jahren. Diese Sets sind meistens komplexer und besitzen demnach eine höhere Teileanzahl.}
\begin{figure}[H]
\centering
\includegraphics[width=\columnwidth]{./bilder/diagram_avg_parts_per_year.png}
\caption{Durchschnittliche Teileanzahl nach Jahren aller Klemmbausteinmarken}
\label{fig:avg_parts_per_year}
\end{figure}
\begin{verbatim}
SELECT (AVG(?parts) as ?total) ?year
WHERE {
?set rdf:type thm:Set.
?set thm:brand ?brand.
?set thm:year ?year.
?set rdfs:label ?name.
?set thm:num_parts ?parts.
}
GROUP BY ?year
ORDER BY ASC(?total)
\end{verbatim}
\item Haben Sets mit höherer Teileanzahl eine höhere Anzahl an Minifiguren?\\
\textit{Zwischen der Anzahl Minifiguren $M$ und der Anzahl an Teilen $T$ eines Sets kann eine mittelstarke Korrelation $\rho_{M,T} \approx 0.5926$ festgestellt werden. Hier gab es mehrere interessante Ausreisser: \href{https://rebrickable.com/sets/BIGBOX-1/the-ultimate-battle-for-chima}{BIGBOX-1,The Ultimate Battle for Chima}, \href{https://rebrickable.com/sets/2000409-2/window-exploration-bag/}{2000409-2, Window Exploration Bag 2} und \href{https://rebrickable.com/sets/2000409-1/window-exploration-bag/}{2000409-1, Window Exploration Bag 1}.}
\textit{
\begin{figure}[H]
\centering
\includegraphics[width=\columnwidth]{./bilder/diagram_correlation_parts_figs.png}
\caption{Anzahl Minifiguren und Teile}
\label{fig:scatter_parts_figs}
\end{figure}
} }
\item Haben neuere Sets im Vergleich zu älteren Sets eine geringere Teileanzahl, da auf eine grössere Anzahl an speziell angefertigten Teilen zugegriffen werden kann? Der Datensatz konnte mithilfe folgender SPARQL-Query erhalten werden. Hier werden Sets mit 0 Teilen herausgefiltert.
\item Haben Sets mit höherer Teileanzahl eine höhere Anzahl an Minifiguren? \begin{verbatim}
\item Welche anderen Sets, können mit Sets, die sich schon im eigenen Besitz befinden zusammengebaut werden? SELECT ?part_num (SUM(?qty) as ?total)
WHERE {
?set rdf:type thm:Set.
?set thm:brand ?brand.
?set rdfs:label ?name.
?set thm:num_parts ?part_num.
?inv thm:set ?set.
?inv rdf:type thm:Inventory.
?inv thm:contains ?fig_inv.
?fig_inv thm:quantity ?qty.
FILTER(?part_num > 0).
}
GROUP BY ?set ?part_num ?name ?inv
\end{verbatim}
\item Welche Lego-Teile besitzen äquivalente Teile von anderen Marken?\\ \item Welche Lego-Teile besitzen äquivalente Teile von anderen Marken?\\
\textit{Der Knowledge Graph bietet keine Möglichkeit dies zu beantwortet, da keine Datensätze über Teile, die nicht von Lego produziert worden sind, in die Erstellung des Graph eingeflossen sind.} \textit{Der Knowledge Graph bietet keine Möglichkeit dies zu beantwortet, da keine Datensätze über Teile, die nicht von Lego produziert worden sind, in die Erstellung des Graph eingeflossen sind.}
\end{enumerate} \end{enumerate}
\section{Ausblick} \section{Ausblick}
\begin{itemize}
\item Es fehlen tiefer greifende Daten zu anderen Klemmbausteinmarken, neben Lego. Ein erhalten der Daten wäre nur durch direkte Anfrage beim Hersteller oder durch aufwändige Methodik, wie Bilderkennung möglich.
\item identische Minifiguren könnten mit höherem Aufwand gegenseitig zugeordnet werden. So würde eine Verbindung zwischen der Inventarisierung durch \textit{Rebrickable } und Preisen von \textit{Brickset} entstehen.
\item Zur Beantwortung der Fragestellungen 1,2,3 ist eine eigene Softwarelösung und eine Erweiterung des Graphen vonnöten. \textit{Rebrickable} bietet selber Werkzeuge \url{https://rebrickable.com/help/build-engine/} an, um diese Fragestellung zu beantworten.
\end{itemize}
\section*{Abkürzungsverzeichnis} \section*{Abkürzungsverzeichnis}
\begin{acronym}[Abkürzungsverzeichnis] \begin{acronym}[Abkürzungsverzeichnis]
\acro{MOC}{My Own Creation} \acro{MOC}{My Own Creation}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1 @@
,Lambda/Roman,Lambda,03.05.2026 11:29,file:///C:/Users/Roman/AppData/Roaming/LibreOffice/4;

View File

@ -0,0 +1,78 @@
"total","year"
"0.0","2027"
"1.0","1950"
"100.263888888888888888888889","1973"
"101.025641025641025641025641","1972"
"103.288135593220338983050847","1985"
"103.794871794871794871794872","1974"
"104.323741007194244604316547","1992"
"104.347058823529411764705882","1994"
"105.636363636363636363636364","1980"
"106.891608391608391608391608","1997"
"113.566666666666666666666667","1967"
"12.435897435897435897435897","1955"
"12.5","1953"
"122.129411764705882352941176","1988"
"123.9125295508274231678487","1998"
"124.003865979381443298969072","2012"
"124.326375711574952561669829","2014"
"125.840579710144927536231884","1993"
"126.522070015220700152207002","2011"
"127.65641025641025641025641","1995"
"129.071428571428571428571429","1968"
"131.587837837837837837837838","1991"
"132.5","2013"
"134.275735294117647058823529","2003"
"134.780487804878048780487805","1975"
"139.038461538461538461538462","2004"
"14.25","1959"
"140.74025974025974025974026","1978"
"142.662337662337662337662338","1976"
"147.16195121951219512195122","2015"
"148.229656419529837251356239","2009"
"159.889","2016"
"16.0","1956"
"161.840396753832281334535618","2017"
"163.051724137931034482758621","1990"
"165.224489795918367346938776","1996"
"165.62577962577962577962578","2007"
"166.35746606334841628959276","2006"
"174.373493975903614457831325","2005"
"175.333333333333333333333333","1960"
"179.64218455743879472693032","2010"
"18.015151515151515151515152","1958"
"183.630669546436285097192225","2008"
"204.192013593882752761257434","2018"
"277.083064516129032258064516","2019"
"34.291666666666666666666667","1957"
"341.934300993124522536287242","2021"
"391.574585635359116022099448","2020"
"40.868421052631578947368421","1964"
"403.468056489576328177538668","2022"
"43.819672131147540983606557","1966"
"475.79951690821256038647343","2023"
"48.964285714285714285714286","1965"
"500.052801724137931034482759","2026"
"593.916924664602683178534572","2024"
"612.001367365542388331814038","2025"
"64.955056179775280898876404","1982"
"65.820833333333333333333333","1987"
"67.295081967213114754098361","1963"
"71.92","1969"
"75.561224489795918367346939","1984"
"77.122807017543859649122807","1977"
"8.357142857142857142857143","1954"
"80.690476190476190476190476","1970"
"85.846153846153846153846154","1962"
"87.706521739130434782608696","2001"
"88.775362318840579710144928","1989"
"91.280701754385964912280702","1971"
"92.6796875","1999"
"93.075980392156862745098039","2000"
"93.593939393939393939393939","1986"
"93.785714285714285714285714","1981"
"93.853333333333333333333333","1983"
"94.418524871355060034305317","2002"
"94.88","1961"
"96.4","1949"
"96.913978494623655913978495","1979"
1 total year
2 0.0 2027
3 1.0 1950
4 100.263888888888888888888889 1973
5 101.025641025641025641025641 1972
6 103.288135593220338983050847 1985
7 103.794871794871794871794872 1974
8 104.323741007194244604316547 1992
9 104.347058823529411764705882 1994
10 105.636363636363636363636364 1980
11 106.891608391608391608391608 1997
12 113.566666666666666666666667 1967
13 12.435897435897435897435897 1955
14 12.5 1953
15 122.129411764705882352941176 1988
16 123.9125295508274231678487 1998
17 124.003865979381443298969072 2012
18 124.326375711574952561669829 2014
19 125.840579710144927536231884 1993
20 126.522070015220700152207002 2011
21 127.65641025641025641025641 1995
22 129.071428571428571428571429 1968
23 131.587837837837837837837838 1991
24 132.5 2013
25 134.275735294117647058823529 2003
26 134.780487804878048780487805 1975
27 139.038461538461538461538462 2004
28 14.25 1959
29 140.74025974025974025974026 1978
30 142.662337662337662337662338 1976
31 147.16195121951219512195122 2015
32 148.229656419529837251356239 2009
33 159.889 2016
34 16.0 1956
35 161.840396753832281334535618 2017
36 163.051724137931034482758621 1990
37 165.224489795918367346938776 1996
38 165.62577962577962577962578 2007
39 166.35746606334841628959276 2006
40 174.373493975903614457831325 2005
41 175.333333333333333333333333 1960
42 179.64218455743879472693032 2010
43 18.015151515151515151515152 1958
44 183.630669546436285097192225 2008
45 204.192013593882752761257434 2018
46 277.083064516129032258064516 2019
47 34.291666666666666666666667 1957
48 341.934300993124522536287242 2021
49 391.574585635359116022099448 2020
50 40.868421052631578947368421 1964
51 403.468056489576328177538668 2022
52 43.819672131147540983606557 1966
53 475.79951690821256038647343 2023
54 48.964285714285714285714286 1965
55 500.052801724137931034482759 2026
56 593.916924664602683178534572 2024
57 612.001367365542388331814038 2025
58 64.955056179775280898876404 1982
59 65.820833333333333333333333 1987
60 67.295081967213114754098361 1963
61 71.92 1969
62 75.561224489795918367346939 1984
63 77.122807017543859649122807 1977
64 8.357142857142857142857143 1954
65 80.690476190476190476190476 1970
66 85.846153846153846153846154 1962
67 87.706521739130434782608696 2001
68 88.775362318840579710144928 1989
69 91.280701754385964912280702 1971
70 92.6796875 1999
71 93.075980392156862745098039 2000
72 93.593939393939393939393939 1986
73 93.785714285714285714285714 1981
74 93.853333333333333333333333 1983
75 94.418524871355060034305317 2002
76 94.88 1961
77 96.4 1949
78 96.913978494623655913978495 1979

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.