Seite 1 von 1

Übung 2

Verfasst: 17. Feb 2012 01:05
von tonyp
Hallo,

Ich hätte ein paar Fragen zur Übung 2.

Aufgabe 2
- Naiver Tripel-Store:
- 100 Bibliotheken mit Typ, Name, Adresse, Telefonnummer:
100*4 Tripel
- 100*1.000.000 Bücher mit Typ, Titel, ISBN, zwei Autoren, Bibliothek:
100*1.000.000 * 6 Tripel
- 100*2.000.000 Autoren mit Typ und Name
100*2.000.000 * 2 Tripel
- 100*10.000 Personen mit Typ, Name, Adresse, Telefon, E-Mail und fünf Bücher:
100*10.000 * 10 Tripel
- 400 + 600.000.000 + 200.000.000 + 10.000.000

~ 810.000.000 Tripel, also 2,4 Mrd. Strings
Wieso wird die Bibliothek bei den Büchern gespeichert? Müsste nach der Ontologie nicht die Bibliothek speichern, welche Bücher sie besitzt?
Ich hätte das bei den Bibliotheken eingerechnet, also 100 * (4 + 1.000.000) - oder wäre das verkehrt?

Es müsste in der Summenzeile unten übrigens wohl 400.000.000 statt 200.000.000 heißen :)

Edit: und in der Lösung für die vertikale Positionierung fehlt die Tabelle für die ISBN Nummern.




Aufgabe 3
Eine solche Aufgabe wäre nicht klausurelevant, oder?




Aufgabe 5
Ist hier auch ein Verstoß gegen die zweite Grundregel "Verwende auflösbare HTTP-URIs"? Oder geht es bei der Regel nur darum, dass HTTP-Standards eingehalten werden (also Links der Form http://...).

Re: Übung 2

Verfasst: 17. Feb 2012 08:49
von HeikoPaulheim
Wieso wird die Bibliothek bei den Büchern gespeichert?
Beim naiven Tripel-Store werden ja ohnehin alle Tripel in eine große Tabelle geworfen. D.h., es gibt auf jeden Fall 100*1.000.000 Tripel, die besagen, welches Buch zu welcher Bibliothek gehört. Wo man diese Tripel im Laufe der Rechnung aufführt, ist im Grunde egal, wobei Deine Lösung zugegebenermaßen schon besser zu der gegebenen Ontologie passt.
Aufgabe 3 - Eine solche Aufgabe wäre nicht klausurelevant, oder?
Man sollte schon wissen, wie so ein Reasoner funktioniert, und das auch von Hand können. Allerdings wird dabei nicht so viel zu schreiben sein, und es ist auch unerheblich, wie genau die Ableitungsregeln nummeriert sind.
Ist hier auch ein Verstoß gegen die zweite Grundregel "Verwende auflösbare HTTP-URIs"?
Ja, tatsächlich ist das so. Die dritte Regel "Hinterlege an diesen URIs nützliche Informationen" bedingt ja auch, dass die zweite eingehalten ist.

Re: Übung 2

Verfasst: 17. Feb 2012 17:20
von DreamFlasher
Auch zur Übung 1: Muss da wirklich jedes Mal noch der Typ mitgespeichert werden, der folgt doch unmittelbar aus dem Schema?

Re: Übung 2

Verfasst: 17. Feb 2012 17:32
von HeikoPaulheim
Muss da wirklich jedes Mal noch der Typ mitgespeichert werden, der folgt doch unmittelbar aus dem Schema?
Bei den in der Vorlesung behandelten Ansätzen: ja. Es gibt bei der naiven Lösung und beim Property-Table genau eineTabelle für alle Instanzen. Auch bei der vertikalen Partitionierung gibt es immer eine Tabelle pro Prädikat, unabhängig davon, von welchem Typ das Subjekt der Aussage ist.

Es wären natürlich andere Lösungen denkbar, die das vermeiden, z.B. eine naive Tripel-Tabelle pro Typ. Die würden, wie das immer so ist, etwas Platz sparen, dafür aber manche Abfragen komplizierter machen. So z.B. folgende Abfrage:

Code: Alles auswählen

SELECT ?x WHERE {?x dc:topic my:SemanticWeb}.
Da in dieser Abfrage kein expliziter Typ zu ?x gegeben ist, müsste man über sämtliche Einzeltabellen suchen, was datenbankmäßig recht aufwändig werden kann. Dagegen ist diese Abfrage auf einer simplen Tripel-Tabelle für alle Typen sehr einfach zu lösen.

Grüße,
Heiko Paulheim.

Re: Übung 2

Verfasst: 17. Feb 2012 18:56
von DreamFlasher
Tabelle pro Typ fehlt mir in der Tat noch als Variante, das ist ja das übliche Schema bei relationalen Datenbanken kann also nicht soo schlecht sein ;) Und das es je nach Partitionierung Abfragen unterschiedlich gut sind, ist ja bekannt.

Re: Übung 2

Verfasst: 17. Feb 2012 19:46
von DreamFlasher
Zur 3:

Okay habs gerade übersehen, auf der Folie steht ohne die zusätzliche Ontologie. Wenn man die Ontologie noch mitbetrachtet bekomme ich noch die folgenden Tripel:

rdf1) rdfs:domain, rdfs:range a rdf:Property. (btw. ist diese abkürzende Schreibweise für dich okay, auch wenns nicht n3 konform ist?)
rdfs2+3) :Madrid rdf:type :City. :Spain rdf:type :Country.
rdfs4a+b) :Country, rdfs:Class, :City, :locatedIn a rdfs:Resource.
rdfs6) :locatedIn rdfs:subPropertyOf :locatedIn, rdfs:domain rdfs:subPropertyOf rdfs:domain, rdfs:range rdfs:subPropertyOf rdfs:domain
rdfs7) :Madrid :locatedIn :Spain
rdfs8) :Country, :City rdfs:subClassOf rdfs:Resource
rdfs10) :Country rdfs:subClassOf :Country, :City rdfs:subClassOf :City

Falls jemand nicht genug Aufgaben zum Üben hat oder so ;)

Re: Übung 2

Verfasst: 17. Feb 2012 22:39
von HeikoPaulheim
DreamFlasher hat geschrieben:btw. ist diese abkürzende Schreibweise für dich okay, auch wenns nicht n3 konform ist?
Naja, ich würde mir dann schon zumindest den Kommentar dazu wünschen, dass man sich bewusst ist, dass das nicht n3-konform ist. Und bis man den geschrieben hat, hat man auch gleich die korrekten Tripel geschrieben ;-)