Hi Alessandro.
Am 16.07.2012 12:18, schrieb Alessandro Adamou:
On 7/15/12 1:21 PM, Melanie Reiplinger wrote:
hmm, ok, so one could assume that it works analogously for the
rules/find/recipes. But when doing
curl -H "Accept: text/turtle"
http://<stanbol>/rules/find/recipes?name=r2
or
curl -H "Accept: text/turtle"
http://<stanbol>/rules/find/recipes?name=http://www.dfki.de/mere01/recipe/r2
I get a 404 Not Found.
(for a recipe named 'r2', created by
curl -i -X PUT
http://lnv-89012.dfki.uni-sb.de:9001/rules/recipe/http://www.dfki.de/mere01/recipe/r2
)
what am I doing wrong?
Nothing, except for assuming (with good reason) that it worked exactly
the same. The rules/find/recipes resource does not support the "name"
parameter at present, it only supports "description".
This means that if you want a recipe to be found, it must have been
created with a comment, such as
curl -i -X PUT
http://lnv-89012.dfki.uni-sb.de:9001/rules/recipe/http://www.dfki.de/mere01/recipe/r2?description=Test%20recipe
(not sure what happens with the URLencoded value for "description",
though)
then
curl -H "Accept: text/turtle"
http://lnv-89012.dfki.uni-sb.de:9001/rules/find/recipes?description=est
Sorry for not finding this out earlier and misleading you.
Never mind, I'm here to test these things :-)
Fine, this one works.
Also: How do we then remove rules from a recipe, if we cannot address
them simply by attaching their URI or name to the endpoint's URL?
(again by checking the code) The recipe/rule path is currently in the
form
/rules/recipe/{recipeId}?rule={ruleId}
and the DELETE works the same way, depending on "rule" having a value
or not.
It might be better to have something like
/rules/recipe/{recipeId}/{ruleId}
ok so I tried this. I first created a recipe r2 and then uploaded a rule by
curl -X POST -F "rules=transitivity[has(?r, ?x, ?z) . has(?r, ?z, ?y)
-> has(?r, ?x, ?y)]" -F "description=transitivity"
http://dev.iks-project.eu:8081/rules/recipe/http://www.dfki.de/mere01/recipe/r2
This works fine, by GET I can see that the rule has been integrated into
the recipe. Now I try to delete:
curl -i -X DELETE
http://dev.iks-project.eu:8081/rules/recipe/http://www.dfki.de/mere01/recipe/r2?rule=transitivity
and I get '200 OK'. But when checking with GET, the 'transitivity' rule
is still part of the r2 recipe. Seems it was not deleted. Also,
submitting the very same rule twice to this recipe does not throw any
error.
but before that we should make sure that recipeId allows simple
non-URI identifiers and refactoring works with non-URIs (which maybe
now does).
And one more: For the refactoring functionality I didn't get very
far. First thing I wanted to give some minimal toy RDF graph as an
input and refactor via the RESTful Interface. This gives me the (not
very informative) message:
"The site <stanbol> says: Error".
(in the form of an alert window). This error might be due to
virtually anything. My toy example is
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dbpedia="http://dbpedia.org/property/">
<rdf:Description rdf:about="urn:example:person:ernie">
<dbpedia:Person>Ernie</dbpedia:Person>
<dbpedia:profession>Friend of Bert</dbpedia:profession>
</rdf:Description>
</rdf:RDF>
and I was hoping for something like an application of the
"peopleProfessionRule" rule or something. (I already checked on
http://www.w3.org/RDF/Validator/ to make sure it is well-formed).
Here you're entering a realm I know even less, so I'm afraid I'm going
to need some more info.
What does the rule look like? Remember with that RDF there (with
literal triples / datatype assertions in OWL) the rules must be of the
form values() instead of has()
ok, I will try to build my own recipe with rules that use the values()
assertion.
Did you use an HTML interface somewhere? Seems like the refactor
endpoint doesn't have one at the moment. Did you try it through the
tutorial in the /rules endpoint?
It doesn't have an interface??? I was trying on the /rules/ RESTful
interface. You can load an RDF file and then click at 'refactor'. I
thought that would do the job while only testing the default
transformation patterns.
What response did you get by issuing the equivalent request to
/refactor via curl?
Sorry, I didn't try that since it requires that I pass a recipe ID
there, and I don't know by which ID these default rules go. So I'll
report on that as soon as I have my own recipe to use for transformation.
Best,
melanie
best
-- Alessandro
You can also ask for:
text/turtle
text/owl-manchester
text/owl-functional
application/owl+xml
application/rdf+json
Theoretically, it should also support
application/json (JSON-LD)
text/plain
but I don't see a body writer registered with rule lists so it
didn't work for me.
Best,
Alessandro
To check if it has been stored (and therefore parsed), you can do
a GET on
http://[stanbol]/rules/recipe/http://www.dfki.de/mere01/recipe/r1
requesting text/plain or some KR format such as
text/turtle
application/rdf+xml
text/owl-manchester
Hope this helps,
Alessandro