On 7/15/12 11:24 AM, Melanie Reiplinger wrote:
When doing preflight request for PUT or DELETE, the response header I get looks like this:

Allow:
OPTIONS,POST,GET,DELETE,HEAD,PUT


So maybe here we also need the CORS access with

Access-Control-Allow-Origin:
*
Access-Control-Allow-Mehtods: OPTIONS, POST, GET, DELETE, PUT

I've checked the Rules resource code and there's only one CORS preflight method for the root resource but not for the subpaths. Also, as I wrote earlier, I don't know if it is supposed to specify the allowed methods but it doesn't. So that might be it I guess.

There's also another strange thing I just realized when doublechecking with the curl version: I can delete a non-existig recipe over and over again, i.e., I always get

HTTP/1.1 200 OK
Content-Length: 0
Server: Jetty(6.1.x)

although the recipe is not there any more.

There's an error in the Jersey code for that resource. The method on a deleted recipe is supposed to return 412 Precondition Failed (maybe 404 would be better?), but the problem is, whatever the outcome, there's a line that always replaces the response builder and is always reached:

responseBuilder = Response.ok();

I've opened https://issues.apache.org/jira/browse/STANBOL-690 , hope it will be solved.

Thanks for reporting

Alessandro


Am 13.07.2012 14:37, schrieb Alessandro Adamou:
Hi Melanie,

On 7/13/12 2:01 PM, Melanie Reiplinger wrote:
The CORS access works for ontonet/ontology and ontonet/session.

*whew*

One thing I noticed is that when creating a scope, the parameter customont seems to be ignored. Coreont is set accordingly, but no ontology is loaded when specified as value for customont.

I am retiring the "customont" and "customreg" query parameters. It didn't make much sense to have custom space population occur during the PUT, since the custom space is less privileged and it is now possible to populate it afterwards using POST methods.

When it's completed, the docs will also reflect the change.

So I am considering to rename the parameters:

"coreont" --> "ontology" or "ont"
"corereg" --> "library" or "lib" (because in the first implementation entire registries were loaded, library selection was not supported. now it is)

which do you like better?

In my recent commit it is also now possible to submit multiple "coreont" and "corereg" parameter values and they should all be added to the scope. However note that if any ontology corresponding to the values of these params fails to load, the scope will not be created.

One more question on the ontonet endpoint: How can I load an ontology library? I.e., which URL do I have to specify when I want to load a library from the ontonet/registry ?

The logical URI that identifies the library.

Right now the way to know it is not very RESTful yet. you are going to need a browser, but I'm working on having it return RDF at least.

if you go to [stanbol]/ontonet/registry

and expand the library list, you see a list of links. The URI you are looking for is the link target.

Right now the default libraries do not resolve because they use the stanbol.apache.org namespace. But Stanbol has the library info stored in its data bundle org.apache.stanbol.data.registries.default

So for example you can do

(for putting all the ontologies in the core space, you do it when creating the scope)

% curl -i -X PUT [stanbol]/ontonet/ontology/twitter-mining?corereg=http://stanbol.apache.org/ontologies/registries/stanbol_network/SocialNetworks

(otherwise for the custom space, you can do it afterwards)

% curl -i -X POST -F "library=http://stanbol.apache.org/ontologies/registries/stanbol_network/SocialNetworks"; [stanbol]/ontonet/ontology/twitter-mining

I am figuring out the best way to add import statements for library ontologies but that's more of a subtlety.

If we decide to replace "corereg" with another parameter, that obviously will have to be changed accordingly.

Sorry for all these changes and WIP stuff, but you're perhaps the first to extensively use the ontonet REST API, and my first chance to really tune it up to user needs.

So, I would be very interested in knowing which use case you are working on and what you would like to achieve with the Satnbol ontology manager.

Best,
Alessandro

Am 10.07.2012 23:16, schrieb Melanie Reiplinger:
Hi Rupert, Alessandro.

I followed Sebastian's advice and made a complete new and fresh checkout of the stanbol trunk. I briefly checked on my ontonet tests tonight and at first sight it looks like the delete and put requests are now working for me.
For my update test on the entityhub/entity, I now get

curl -i -X PUT -H "Content-Type:application/rdf+xml" -T someEntity "http://lnv-89012.dfki.uni-sb.de:9001/entityhub/entity?id=http://developer.yahoo.com/javascript/howto-proxy-falseaddress.html&create=false";
HTTP/1.1 100 Continue

HTTP/1.1 400 Bad Request
Accept: application/json
Content-Type: text/plain
Transfer-Encoding: chunked
Server: Jetty(6.1.x)

(So that's exactly what we were talking about).

Let me test and check on everything tomorrow, then I can give you detailed feedback. I'm sorry for troubling you lately by reporting that these things didn't work for me. For a possible reason, I can only guess that my stanbol version got messed up during the last 3 updates/rebuilds, and that it was a bit buggy in the end.

best
melanie


Am 09.07.2012 17:17, schrieb Rupert Westenthaler:
On Mon, Jul 9, 2012 at 4:54 PM, Melanie Reiplinger
<[email protected]> wrote:
"http://<stanbol>/entityhub/entity?id=http://developer.yahoo.com/javascript/howto-proxy-falseaddress.html&create=false";
update the Entity "howto-proxy-falseaddress.html"?
update the Entity "howto-proxy.html"?
something else?

hm, I expected something like: since the "howto-proxy-falseaddress.html"
does not exist, I should get some error because I'm referencig my
to-be-updated entity by a wrong ID. The content of the rdf file should be of secondary relevance here (because if my ID is not addressing any existing entity, the update should fail anyway). In fact, I expected that nothing would be updated in this case. (wouldn't it be strange to update entity
"howto-proxy.html" when I pass some non-existing ID ?)

As the check if the parsed id is present in the parsed data comes
first you should get a "Bad Request" with a an according message.

If the file would contain a triple with the subject
"http://developer.yahoo.com/javascript/howto-proxy-falseaddress.html";
you would get a "Bad Request" with the message telling you that you
can not update an entity that does not exist on the Entityhub.

I will try to use your  exact scenario and check if I can reproduce.
If not I will try to temporarily setup an test server for you to
validate on the dev.iks-project.eu server for testing.

best
Rupert













--
M.Sc. Alessandro Adamou

Alma Mater Studiorum - Università di Bologna
Department of Computer Science
Mura Anteo Zamboni 7, 40127 Bologna - Italy

Semantic Technology Laboratory (STLab)
Institute for Cognitive Science and Technology (ISTC)
National Research Council (CNR)
Via Nomentana 56, 00161 Rome - Italy


"I will give you everything, just don't demand anything."
(Ettore Petrolini, 1917)

Not sent from my iSnobTechDevice

Reply via email to