Ich muss die Pfadlänge zwischen zwei beliebigen Knoten des Dbpedia-Graphen finden, wenn eine Verbindung zwischen ihnen besteht. Zu diesem Zeitpunkt sind mir nur Start- und Endknoten bekannt und verbundene Eigenschaftswege sind nicht bekannt. Also, ich bin versucht, SPARQL-Abfrage zu schreiben wie:Finden Sie die Pfadlänge zwischen zwei Knoten des Dbpedia-Graphen-Netzwerks, ohne den zugrunde liegenden Eigenschaftspfad zu kennen.
PREFIX dbo:<http://dbpedia.org/ontology/>
PREFIX dbp:<http://dbpedia.org/property/>
select dbp:Video dbo:VideoGame (count(?mid) as ?length)
where {
dbp:Video (<>|!<>)* ?mid .
?mid (<>|!<>)+ dbo:VideoGame .
}
group by dbp:Video dbo:VideoGame
Here I Pfadlänge zwischen Video und Videogame finden möge. Aber es gibt Fehler wie:
syntax error at 'dbo:VideoGame' before '}'
Kann jemand helfen, den richtigen zu schreiben?
Nun ist es ein anderer Fehler geben: ** Virtuoso 42000 Fehler TN ...: Überschritten 1000000000 Bytes in transitiv temporären Speicher. Verwenden Sie t_distinct, t_max oder mehr T_MAX_memory Optionen, um die Suche zu begrenzen oder den Pool zu erhöhen ** –
Wenn ich versuche, diese Abfrage von https://dbpedia.org/sparql auszuführen, gibt es den Fehler: ** Virtuoso 37000 Error SP031 : SPARQL-Compiler: Die Liste der Rückgabewerte enthält '*', aber das Muster enthält keine Variablen **. Kann jemand helfen? –
Sie können versuchen, ein LIMIT zu verwenden, um zu verhindern, dass das Byte-Limit überschritten wird. In Bezug auf den Virtuoso-Fehler möchten Sie vielleicht den Anbieter kontaktieren. – scotthenninger