2017-06-19 6 views
0

Ich habe eine Übung im Semantic Web. Ich muss einige Personen aus der DBpedia extrahieren. Diese Personen müssen in eine Ontologie eingefügt werden, die ich erstellen muss. Meine Frage ist. Kann ich Personen von der DBedia abrufen?Personen aus DBpedia

Lassen Sie mich klären!

Wenn ich diese sparql Abfrage

PREFIX dbo: <http://dbpedia.org/ontology> 
SELECT distinct * WHERE 
{ 
    ?album a dbo:Album . 
} LIMIT 10 

senden erhalte ich 10 URIs. Soll ich ganze Instanzen bekommen? Ich meine, Label, Objekteigenschaften, Dateneigenschaften usw., um sie in meine Ontologie einzufügen?

Ich möchte sie als eine vollständige Instanz. Ich möchte keine weiteren Variablen hinzufügen, z. B.

?album dbo:artist ?artist . 

Kann ich eine Java API z. Jena?

EDIT:

Lassen Sie mich Ihnen ein Beispiel geben. Nehmen wir an, dass Sie ein Album mit URI erhalten

Dieses Album hat auch einige Eigenschaften mit ihren Werten, z.

dbo:artist dbr:Britney_Spears 
dbo:releaseDate 1999-01-12 (xsd:date) 
... 

Wie kann ich alle von ihnen bekommen, um ein indivual Album für meine Ontologie mit Eigenschaften Künstlern und VÖ und Werte Britney_Spears und 1999.01.12 jeweils zu schaffen?

+1

Haben Sie 'DESCRIBE? Album {? Album a dbo: Album} LIMIT 10' probiert? –

+1

Die Formulierung "sollte ich tun" ist seltsam. Wie können wir entscheiden, was Sie tun sollen? Und zuerst sollten Sie den Unterschied zwischen SPARQL 'SELECT'- und' CONSTRUCT'-Abfragen kennenlernen. Die SPARQL-Dokumentation ist dein Freund. – AKSW

+0

Ich denke, DESCRIBE ist für dieses Problem geeignet, aber werfen Sie einen Blick auf meine Bearbeitung. –

Antwort

2

Nun, ein guter Punkt, immer zu beginnen, ist Ihre Anforderungen! Was brauchst du genau? Es gibt wissenschaftliche Fülleforschung auf Ontologie-Modul-Extraktion (sehen Sie zum Beispiel here).

Meine Faustregel lautet: Die Menge, die Sie extrahieren, muss mit den erforderlichen Einschränkungen der Solidität und Vollständigkeit der Ergebnisse übereinstimmen, was wiederum Ihren Anforderungen entspricht. Um es klar zu machen, beachte folgendes: Ein DBpedia Artist ist ein subClassOfPerson. Nun bedenken Sie, dass Sie alle Instanzen von Artist von DBPedia, ohne die Information extrahieren, dass Artist eine subClassOfPerson ist. Wenn Sie jetzt nach Ihrer Datenmenge fragen, die nach Person fragt, erhalten Sie nichts. Ist das ein gutes Ergebnis? Ja, aber ist es vollständig? Nein! Wenn Sie sich jedoch nicht darum kümmern, dass jeder Artist ein Person ist, dann ist es okay. Erwähnenswert ist, dass es von dem DBpedia-Endpunkt selbst abhängt und welche Art von Argumentation er auch ausführt.

Abschließend: Geben Sie an, was Sie wirklich brauchen. Während Sie mit ihren Instanzen für ein paar Klassen genügen können, können Sie auch die gesamte DBpedia extrahieren.

In Bezug auf das Abrufen der Daten gibt es mehrere Möglichkeiten; wieder abhängig von Ihren Anforderungen. Für einfache Zwecke können Sie Jena TDB für Tripelspeicher verwenden und über Jena darauf zugreifen. Sie können Ihre Daten sogar einfach in einer RDF-Datei speichern. Sie können z. B. eine Konstruktabfrage auf dem DBpedia-Endpunkt verwenden und das Ergebnisformat als RDF angeben und sie dann in Ihre RDF-Engine einfügen.Eine andere Option, z. B. answer, gibt an, wie eine INSERT-Abfrage zum Ausführen der Einfügeaufgabe in einem lokalen Diagramm verwendet wird.

+0

Vielen Dank für Ihren Kommentar !! –

1
  1. Sie können Instanzen aus DBpedia mit den gewünschten Metadaten abrufen. Dies hängt jedoch von Ihrer Ontologie ab, die Sie erstellen möchten. Bitte werfen Sie einen Blick auf this Dokument, es wird Ihnen helfen, einige Begriffe zu verstehen.
  2. Sollten Sie ganze Instanzen bekommen? Ich denke, Sie fragen, ob Sie alle Proportionen und Objekte je nach Thema nehmen sollten. Nicht unbedingt ... Es hängt von Ihrer Ontologie ab, wie im ersten Schritt angegeben, und Sie entscheiden, was Sie tun möchten.
  3. Sollten Sie Jena benutzen? Sie können, aber Sie müssen nicht! Wenn Sie dem Endpunkt eine CONSTRUCT-Abfrage zuweisen, können Sie die Daten abrufen, aber so weit ich es verstanden habe, möchten Sie keine Variablen hinzufügen. So können Sie eine Abfrage wie folgt stellen, indem Sie alle Metadaten bezüglich der Instanz abfragen.

    KONSTRUKTION {? Album? P? O} WO { ? Album a dbo: Album. ? Album? P? O

  4. Wenn Sie eine begrenzte Anzahl von Instanzen erhalten möchten, können Sie am Ende dieser Abfrage erneut ein Limit hinzufügen.

+0

Vielen Dank für Ihren Kommentar –

Verwandte Themen