Ich möchte Ergebnisse von der sparkq-Abfrage erhalten und die Ergebnisse enthalten keinen Namespace. ex: Es gibt ein Ergebnis im dreifachen Format wie:
%Vor%Also möchte ich nur folgendes bekommen:
%Vor%Ich möchte diese Ergebnisse direkt von der Sparql-Abfrage erhalten. Ich benutze Virtuose.
Ist es möglich, dies von Sparql zu bekommen?
Bitte teilen Sie Ihre Gedanken diesbezüglich.
Vielen Dank im Voraus.
Wenn Ihre Daten regulär sind und Sie wissen, dass die Unterzeichenfolge immer nach einem Zeichen #
auftritt, können Sie das strafter
Funktion von SPARQL 1.1. Ich weiß nicht, ob dies in Virtuosos Implementierung verfügbar ist oder nicht.
Allerdings ist dies im Allgemeinen eine sehr riskante Strategie. Nicht alle URIs sind mit einem lokalen Namensteil nach einem #
-Zeichen formatiert. Tatsächlich hat ein URI im Allgemeinen keinen legalen oder nützlichen lokalen Namen. Du solltest dich also fragen: Warum denkst du, dass du das brauchst? Im Allgemeinen verwendet eine semantische Webanwendung den gesamten URI als unteilbaren Bezeichner. Wenn Ihre Anforderung tatsächlich für eine benutzerfreundliche Anzeige in einer Benutzeroberfläche erforderlich ist, suchen Sie in Ihrer Abfrage auch nach den Eigenschaften rdfs:label
oder skos:label
. Im schlimmsten Fall, versuchen Sie, die URI auf q-name Form (dh prefix:name
) zu verkürzen, mit den Präfixe aus dem Modell oder einem Service wie prefix.cc
Der einfachste Weg, dies zu erreichen, ist, sich nicht um die Anpassung Ihrer Abfrage zu kümmern, sondern das Ergebnis einfach selbst nachzubearbeiten. Abhängig davon, welche Client-Bibliothek Sie für die Kommunikation mit Virtuoso verwenden, finden Sie in der Regel API-Unterstützung, um das Ergebnis zu analysieren, Werte zurückzuerhalten und für jeden Wert nur den lokalen Namen zu erhalten (ich schlage vor, dass Sie nach einer URI.getLocalName()
-Methode suchen) etwas ähnliches).
Tags und Links sparql jena semantic-web virtuoso