Seite 1 von 1

SPARQL

Verfasst: Do Sep 02, 2021 9:57 am
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

Re: SPARQL

Verfasst: Fr Sep 03, 2021 1:20 pm
von EDi
Ist die Query denn richtig? (Spezifisch das semicolon?)
Läufts denn ohne R, also z.b. direkt via curl?

Re: SPARQL

Verfasst: Do Sep 09, 2021 4:04 pm
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" .

Re: SPARQL

Verfasst: Mi Sep 15, 2021 7:03 am
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