paper diagrams
parent
8f9314cddb
commit
140cf2e78b
|
|
@ -74,10 +74,10 @@
|
|||
\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_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 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 \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?
|
||||
\end{enumerate}
|
||||
|
||||
|
|
@ -181,9 +181,9 @@
|
|||
\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.\\
|
||||
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\\
|
||||
Lego-Minifiguren erhalten durch Lego keine eindeutige Identifikationsnummer. Zur eindeutigen Identifikation von Minifiguren wird die von \textit{Rebrickable} vergebene ID verwendet.\\
|
||||
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.
|
||||
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. 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 nur für Sets miteinbezogen.
|
||||
\begin{verbatim}
|
||||
https://thm.de/set/{brand}/{id}
|
||||
\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.
|
||||
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}
|
||||
|
||||
Erhalten der Gesamtheit aller Lego Star Wars Minifiguren:
|
||||
\begin{verbatim}
|
||||
SELECT DISTINCT ?name
|
||||
|
|
@ -294,8 +293,6 @@ ORDER BY DESC(?t)
|
|||
\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.
|
||||
|
||||
\subsection{Konsistenz}
|
||||
|
||||
\subsection{Qualität}
|
||||
|
||||
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}
|
||||
\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 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?\\
|
||||
\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]
|
||||
\centering
|
||||
\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}
|
||||
\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?
|
||||
\item Haben Sets mit höherer Teileanzahl eine höhere Anzahl an Minifiguren?
|
||||
\item Welche anderen Sets, können mit Sets, die sich schon im eigenen Besitz befinden zusammengebaut werden?
|
||||
\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}
|
||||
}
|
||||
Der Datensatz konnte mithilfe folgender SPARQL-Query erhalten werden. Hier werden Sets mit 0 Teilen herausgefiltert.
|
||||
\begin{verbatim}
|
||||
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?\\
|
||||
\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}
|
||||
|
||||
\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}
|
||||
\begin{acronym}[Abkürzungsverzeichnis]
|
||||
\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 |
|
|
@ -0,0 +1 @@
|
|||
,Lambda/Roman,Lambda,03.05.2026 11:29,file:///C:/Users/Roman/AppData/Roaming/LibreOffice/4;
|
||||
Binary file not shown.
|
|
@ -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"
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Loading…
Reference in New Issue