SPARQL

... zu anderer statistischer Software, zu Datenbanken und Programmiersprachen.

Moderatoren: EDi, jogo

Antworten
Marti
Beiträge: 3
Registriert: Do Sep 02, 2021 9:44 am

SPARQL

Beitrag von Marti »

Hallo

Für eine Abfrage mit SPARQL würde ich gerne "Apache Jena" als Endpoint verwenden, wo ich mein .ttl File reingeladen habe. Hierzu verwende ich einen localhost.
Jetzt stosse ich auf das Problem, dass mir R diese Fehlermeldung zurück gibt:
--> Error: XML content does not seem to be XML: ' '

Das ist der Code den ich verwendet habe, um eine ganz einfache Abfrage zu stellen:

#install.packages(SPARQL)
library(SPARQL)

endpoint <- "http://localhost:3030/dataset/New.html"
query <- 'PREFIX ab: <http://learningsparql.com/ns/addressbook>

SELECT ?first ?last
WHERE {?person ab:firstName ?first ;
ab:lastName ?last .
}'

qd <- SPARQL(endpoint,query)
head(qd)

Kennst sich jemand damit aus und hat eine Idee, wie ich den Fehler beheben kann?

Vielen lieben Dank,
Marti
Benutzeravatar
EDi
Beiträge: 1541
Registriert: Sa Okt 08, 2016 3:39 pm

Re: SPARQL

Beitrag von EDi »

Ist die Query denn richtig? (Spezifisch das semicolon?)
Läufts denn ohne R, also z.b. direkt via curl?
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
Marti
Beiträge: 3
Registriert: Do Sep 02, 2021 9:44 am

Re: SPARQL

Beitrag von Marti »

Ja die Query läuft in Blazegraph und apache-jena.
In curl habe ich es nicht versucht.

Statt dem Semikolon kann man einen Punkt setzten, aber dann muss man das Subject ausschreiben:

prefix ab: <http://learningsparql.com/ns/addressbook#>

SELECT ?first ?last
WHERE
{?person ab:firstName ?first .
?person ab:lastName ?last .
}


Die Daten die ich abgefragt habe sind:
# filename: ex100.ttl

@prefix ab: <http://learningsparql.com/ns/addressbook#> .
@prefix d: <http://learningsparql.com/ns/data#> .

d:i0432 ab:firstName "Richard" ;
ab:lastName "Mutt" ;
ab:instrument "sax" ;
ab:instrument "clarinet" .

d:i9771 ab:firstName "Cindy" ;
ab:lastName "Marshall" ;
ab:instrument "drums" .

d:i8301 ab:firstName "Craig" ;
ab:lastName "Ellis" ;
ab:instrument "trumpet" .
Marti
Beiträge: 3
Registriert: Do Sep 02, 2021 9:44 am

Re: SPARQL

Beitrag von Marti »

Hallo

Ich habe es lösen können. Mein Endpont war nicht ganz richtig und im Prefix habe ich "#" vergessen. Ich verweden den Endpoint von apache-jena.

So sieht es jetzt aus:

library(SPARQL)
endpoint <- "http://localhost:3030/New/queryl"

query <- 'prefix ab: <http://learningsparql.com/ns/addressbook#>
SELECT ?first ?last

WHERE {?person ab:firstName ?first ;
ab:lastName ?last .}'

qd <- SPARQL(endpoint,query)
head(qd)

Output:

$results
first last
1 Craig Ellis
2 Richard Mutt
3 Cindy Marshall

Vielen Dank,
Martina
Antworten