Ich versuche, ein neues Objekt mit PUT-Methode zu erstellen und einige meiner eigenen Präfixe mit SPARQL-Abfrage hinzuzufügen. Das Objekt wird jedoch ohne die hinzugefügten Präfixe erstellt. Es funktioniert jedoch mit POST und PATCH. Warum und gibt es eine alternative Möglichkeit, SPARQL mit der PUT-Methode zu verwenden und benutzerdefinierte Präfixe hinzuzufügen?SPARQL INSERT funktioniert nicht mit der PUT-Methode. Warum?
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX indexing: <http://fedora.info/definitions/v4/indexing#>
DELETE { }
INSERT {
<> indexing:hasIndexingTransformation "default";
rdf:type indexing:Indexable;
dc:title "title3";
dc:identifier "test:10";
}
WHERE { }
Was ich sage, war alle oben angegebenen Werte in der insert
Klausel überhaupt nicht gegeben.
EDIT1:
url = 'http://example.com/rest/object1'
payload = """
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX indexing: <http://fedora.info/definitions/v4/indexing#>
PREFIX custom: <http://customnamespaces/custom#/>
DELETE { }
INSERT {
<> indexing:hasIndexingTransformation "default";
rdf:type indexing:Indexable;
dc:title "title1";
custom:objState "Active";
custom:ownerId "Owner1";
dc:identifier "object1";
}
WHERE { }
"""
headers = {
'content-type': "application/sparql-update",
'cache-control': "no-cache"
}
response = requests.request("PUT", url, data=payload, headers=headers, auth=('username','password'))
Wenn es keinen anderen Weg gibt, dann muss ich es in zwei Schritten: 1. Objekt erstellen mit PUT 2. Aktualisieren Sie das Objekt mit PATCH –
Können Sie ein wenig expliziter darüber sein, wie Sie "POST" und "PUT" aufrufen? – scotthenninger
Hallo Scott, ich habe es in der Frage hinzugefügt. –