2016-05-03 14 views
-1

Ich möchte einige Informationen aus der FOAF-Ontologie erhalten. Ich habe die folgende SPARQL-Abfrage versucht, aber es gibt keine Ergebnisse zurück. Ich versuchte diese Frage, um mit FOAF vertraut zu werden, aber was ich wirklich tun möchte, ist, alle Leute zu finden, die eine bestimmte Person ?x kennt (unter Verwendung der Eigenschaft foaf:knows). Wie mache ich das?SPARQL Abfrage von FOAF gibt kein Ergebnis zurück

PREFIX foaf:<http://xmlns.com/foaf/0.1/> 
SELECT ?name ?mbox 
WHERE { ?x foaf:name ?name . 
     ?x foaf:mbox ?mbox . 
} 
+0

Sie führen die Abfrage auf welcher Wissensdatenbank? Die FOAF-Ontologie selbst ist nur das Schema. – AKSW

+0

Ich habe den Virtuoso SPARQL Query Editor verwendet und http://xmlns.com/foaf/0.1/ in den Standarddatensatz eingefügt. Liege ich falsch ? @AKSW – Dihya

+0

Aus meiner Sicht haben Sie nur das FOAF-Vokabular geladen, aber keine Instanzdaten. – AKSW

Antwort

1

Semantic Web besteht aus verschiedenen Komponenten.

Wissen wird als RDF-Tripel dargestellt. Diese Tripel beschreiben Ressourcen basierend auf einer Subjekt - Prädikat - Objekt Syntax. Zum Beispiel kann "John is a Male" als ein RDF-Tripel dargestellt werden.

Zusätzlich zu RDF können wir RDFS und OWL verwenden, um Einschränkungen und andere Informationen zu diesen Daten anzugeben. Dank RDFS kann ich das "Male is a subclass of Person" spezifizieren und es ist daher möglich, dass "John is a Person" zu schließen. RDFS und OWL hilft bei der Definition von Ontologien. Ein Ontologie ist ein Vokabular (das allgemein oder spezifisch für eine Domäne sein kann), um Daten darzustellen. Ich möchte zum Beispiel einen Ontologie-CAT erstellen, um Daten zu Katzen darzustellen.

In diesem Fall würde ich mein CAT-Vokabular erstellen, das "Cat is a subclass of Animal" und "hasOwner is a property that links a cat to a Person" und einige andere Eigenschaften definiert. Dann kann ich einige Personen instanziieren, um Daten über Katzen zu erstellen. Zum Beispiel indem Sie das "Baccara is a Cat" und "Baccara hasOwner John" sagen.

FOAF ist im Grunde ein Vokabular, um Daten über Menschen und insbesondere Verbindungen zwischen diesen Menschen darzustellen. FOAF-Vokabular gibt einige Eigenschaften und Klassen, um leicht Informationen über Personen zu handhaben. Aber es liefert keine Information, nur die "Struktur"/"Modell"/"Schema", um Informationen zu organisieren. Im FOAF-Datensatz sind keine Personen enthalten. Aus diesem Grund gibt Ihre Abfrage kein Ergebnis zurück. Da sich im FOAF-Dataset keine Personen befinden, ist es normal, dass die Abfrage nichts zurückgibt.

Sie möchten vielleicht Ihren eigenen RDF-Datensatz basierend auf dem FOAF-Vokabular erstellen. Um dies zu tun, können Sie ein Tool wie Protégé oder einfacher mit einem Texteditor ausprobieren, wenn Sie mit RDF/XML oder Turtle vertraut sind.

Wenn Sie sich sonst nur mit FOAF vertraut machen möchten, können Sie das Modell abfragen. Zum Beispiel können Sie alle Subklassen von Agenten zu erhalten:

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX foaf: <http://xmlns.com/foaf/0.1/> 
SELECT distinct ?c 
WHERE { ?c rdfs:subClassOf foaf:Agent } 

ich Sie empfehlen, ein wenig auf den semantischen Web-Komponenten (insbesondere RDF und RDFS und Unterschiede zwischen ihnen) zu lesen, bevor in FOAF es weiter gehen . Plus, eine schöne Übung SPARQL zu lernen besteht darin, DBpedia zu fragen: http://dbpedia.org/sparql.

+1

Ein paar mehr nützliche Tools zum Lernen ... der [OpenLink-Strukturdaten-Editor (OSDE)] (http://osde.openlinksw.com/) (Verwendung a [Live-Instanz auf URIBurner.com] (http://linkeddata.uriburner.com/rdf-editor/)) eignet sich zum Erstellen und Bearbeiten von RDF-Datendokumenten. Auch [iSPARQL, der Interactive SPARQL Query Builder] (http://oat.openlinkssw.com/index.html?isparql), finden Sie unter [http://dbpedia.org/isparql/](http://dbpedia. org/isparql /), unter anderem. – TallTed

+0

Gibt es eine Wissensdatenbank, die Instanzen gemäß der FOAF-Ontologie enthält? Ich benutzte zum Beispiel dbpedia, um eine "Darstellung" einer Person zu erhalten. Und wenn ich Leute erreichen will, die eine Person "kennt", weiß ich nicht, ob es eine Wissensbasis gibt, die diese Frage beantworten kann? @TallTed – Dihya

+0

Es gibt keine FOAF-Wissensdatenbank an sich. Dennoch enthalten viele Datensätze und Quellen FOAF-basierte Daten; Sie können beispielsweise [den LOD-Cloud-Cache abfragen] (http://lod.openlinksw.com/sparql?default-graph-uri=&query=PREFIX++foaf%3A++%3Chttp%3A%2F%2Fxmlns.com% 2Ffoaf% 2F0.1% 2F% 3E% 0D% 0AUSWAHL + DISTINKT + * +% 0D% 0AWHERE% 0D% 0A ++ {+% 3Fs ++ Foaf% 3AKnimmer ++% 3Fo +} +% 0D% 0AORDER + BY +% 3Fs +% 3Fo% 0D % 0ALIMIT + 1000 & sollte-Schwamm = & Format = Text% 2Fhtml & CXML_redir_for_subjs = 121 & CXML_redir_for_hrefs = & timeout = 30000 & debug = on) von meinem Arbeitgeber, [OpenLink Software] (http://www.openlinksw.com/) zur Verfügung gestellt. – TallTed

Verwandte Themen