2016-04-23 10 views
0

Ich habe eine Pizza-Ontologie, die verschiedene Arten von Pizzen, Zutaten und Beziehungen zwischen ihnen definiert. Ich möchte nur einige grundlegende Dinge verstehen:Den Unterschied zwischen SPARQL und semantischem Denken mit Pellet verstehen

  1. Ist es richtig, dass ich SPARQL bewerben, wenn ich Informationen ohne Argumentation erhalten wollen? Z.B. Welche Pizzen enthalten Zwiebel?
  2. Was ist der Unterschied zwischen SPARQL und Schlussfolgerungsalgorithmen wie Pellet? Welche Abfragen können von SPARQL nicht beantwortet werden, während von Pellet beantwortet werden kann? Einige Beispiele für Fragen (Fragen) für die Pizza-Ontologie wären hilfreich.
  3. Soweit ich verstehe, SPARQL aus Java mit Jena zu verwenden, sollte ich meine Ontologie im RDF/XML-Format speichern . Um Pellet mit Jena zu verwenden, welches Format muss ich auswählen? Pellet verwendet OWL2 ...

Antwort

1

SPARQL eine Abfragesprache ist, das heißt, eine Sprache zur Formulierung von Fragen in. Reasoning, auf der anderen Seite, ist der Prozess der Ableitung neuer Informationen aus vorhandene Daten. Dies sind zwei verschiedene, sich ergänzende Prozesse.

  1. Um Informationen aus Ihrer Ontologie abzurufen, verwenden Sie SPARQL, yes. Sie können dies ohne Nachdenken oder in Kombination mit einem Denker tun. Wenn Sie einen Reasoner aktiv haben, bedeutet dies, dass Ihre Abfragen einfacher sein können, und in einigen Fällen können Reasoner Informationen ableiten, die mit nur eine Abfrage nicht wirklich abrufbar sind.

  2. Reasoners wie Pellet beantworten nicht wirklich Fragen, sie nur Grund: sie herausfinden, welche impliziten Informationen aus den rohen Fakten abgeleitet werden können und Dinge wie die Konsistenz der Dinge (dh, dass es keine logischen Widersprüche in Ihren Daten). Pellet kann herausfinden, dass, wenn Sie einen Toyota besitzen, der vom Typ Auto ist, Sie ein Fahrzeug besitzen (weil ein Auto eine Art Fahrzeug ist). Oder es kann herausfinden, dass, wenn Sie eine Pizza mit der Zutat "Parmesan" definieren, Sie eine Pizza vom Typ "Cheesy" haben (weil Parmesan eine Art Käse ist). Man benutzt also einen Denker wie Pellet, um diese Art von impliziten Informationen abzuleiten, und dann benutzt man eine Abfragesprache wie SPARQL, um tatsächlich zu fragen: "Ok, gib mir einen Überblick über alle Cheesy Pizzen, die auch Sardellen haben".

  3. APIs wie Jena sind Toolkits, die RDF als abstraktes Modell behandeln. Das Syntaxformat, in dem Sie Ihre Datei speichern, ist unerheblich. Es kann fast jede RDF-Syntax lesen. Sobald Sie es in einem Jena-Modell abgelesen haben, können Sie den Pellet-Reasoner darauf anwenden - es spielt keine Rolle, in welcher Syntax sich Ihre Originaldatei befand. Details dazu finden Sie in der Jena-Dokumentation.

+0

Danke für die nette Antwort. BTW, ist die Berechnung von Ähnlichkeiten zwischen Konzepten der Ontologie in Bezug auf den Prozess des Schließens? Z.B. Pizza A hat 30% Ähnlichkeit mit Pizza B, da beide Pizzen die Zutaten "Parmesan" und "Zwiebel" haben. – JoeBlack

Verwandte Themen