2016-05-13 10 views
0

ich die folgende Störung erhalten bei dem Versuch, Daten in Fuseki von PHP-Skript einzufügen:Apache Fuseki HTTP-Methode nicht SPARQL-Update erlaubt: Verwendung POST-Fehler

405: Bad response, 405: Error 405: HTTP method not allowed: SPARQL Update : use POST Fuseki - version 2.3.1 

im mit sparqllib.php Bibliothek und i habe die gleiche Sparql Anfrage in der fuski Systemsteuerung verwendet und es funktioniert!

das ist mein PHP-Skript:

 $db = sparql_connect("http://localhost:3030/riimaOnto/update"); 

    if(!$db) 
    { 
     print sparql_errno() . ": " . sparql_error(). "\n"; 
     exit; 
    } 

    $id = "MyData"; 

    $sparql = "PREFIX onto:<http://www.semanticweb.org/riima/ontologies/#> 
    INSERT DATA 
    { 
     onto:$id a onto:Article 
    }"; 



    $result = sparql_query($sparql); 

    if (!$result) 
    { 
     print sparql_errno() . ": " . sparql_error(). " \n"; 
     exit; 
    } 

so wie kann ich Daten auf meine Ontologie einfügen ??

+0

Sie müssen möglicherweise Updates auf fusenki einschalten. Ich denke, die Standardeinstellungen aktivieren nur Abfrage. Z. B. siehe http://stackoverflow.com/questions/21581018/fuseki-1-0-1-sparql-update-returns-404. –

+0

Es scheint, als ob das Update aktiviert ist, da die Fehlermeldung vom Update-Servlet selbst stammt. Es beschwert sich die Anfrage ist GET nicht POST, weil (ich nehme an) "Sparql_query" ist eine Abfrage Anfrage über GET. – AndyS

Antwort

1

Update wird nur von HTTP POST unterstützt.

Die Anforderung wurde mit HTTP GET gesendet. Änderungsoperationen sollten niemals über GET gehen (die Operation könnte zwischengespeichert werden, POST nicht).

In SPARQL Abfrage und Update sind verschiedene Sprachen und Protokolle.

sparql_query vermutlich eine HTTP-GET mit ?query=... URL-Abfragezeichenfolge.

Sie benötigen eine Art von sparql_update (ich sparkqllib.php nicht weiß), die HTTP POST mit dem richtigen MIME-Typ und das Update im Körper verwendet. (HTML-Formular-Update funktioniert auch in Fuseki - es wird ?update=...)