Hi, I will have to try this, as soon as possible, but I am sure it will be alright.
Thank you very much! Best, Srecko Joksimovic -----Original Message----- From: Rupert Westenthaler [mailto:[email protected]] Sent: Monday, August 15, 2011 16:43 To: srecko joksimovic; [email protected] Subject: Re: Apache Stanbol On Mon, Aug 15, 2011 at 3:06 PM, srecko joksimovic <[email protected]> wrote: > That was the problem! Great! It works now. > Still, my old (boring) question... how to access service from Java > application and post string which I would like to annotate? I know how to > implement service client, but could you describe me the process in this > case? to send text to the stanbol enhancer you need to use the /engines endpoint For the documentation go to http://localhost:8080/engines and click on REST API in the right top corner. Here a small example using Apache Commons IOUtils and the normal java.net classes URL url = new URL("http://localhost:8080/engines"); HttpURLConnection con = (HttpURLConnection)url.openConnection(); con.setDoOutput(true); con.setRequestMethod("POST"); con.setRequestProperty("Accept", "application/rdf+xml"); con.setRequestProperty("Content-type", "text/plain"); OutputStream out = con.getOutputStream(); IOUtils.write("The text to enhance", out); IOUtils.closeQuietly(out); con.connect(); //send the request if(con.getResponseCode() > 299){ //assume an error //error response InputStream errorStream = con.getErrorStream(); if(errorStream != null){ String errorMessage = IOUtils.toString(errorStream); IOUtils.closeQuietly(errorStream); //write a error message } else { //no error data //write default error message with the status code } } else { //get the enhancement results InputStream enhancementResults = con.getInputStream(); //parse this stream to the RDF/XML parser of the RDF framework of //you choice } best Rupert > Best, > Srecko Joksimovic > On Mon, Aug 15, 2011 at 1:22 PM, Rupert Westenthaler > <[email protected]> wrote: >> >> On Mon, Aug 15, 2011 at 1:12 PM, srecko joksimovic >> <[email protected]> wrote: >> > Hi, >> > I have to ask again... >> > I posted this command: curl -X POST -d "name=Optimization" >> > http://localhost:8080/entityhub/find >> > and the result is as follows: >> > { >> > "query": { >> > "selected": [ >> > >> > "http:\/\/www.iks-project.eu\/ontology\/rick\/model\/description", >> > "http:\/\/www.iks-project.eu\/ontology\/rick\/query\/score", >> > "http:\/\/www.iks-project.eu\/ontology\/rick\/model\/label" >> > ], >> > "constraints": [{ >> > "type": "text", >> > "patternType": "wildcard", >> > "text": "Optimization", >> > "field": >> > "http:\/\/www.iks-project.eu\/ontology\/rick\/model\/label" >> >> Looks like that the default search field for the Entityhub is still >> "http:\/\/www.iks-project.eu\/ontology\/rick\/model\/label" and not >> rdfs:label. >> >> I was in the impression that I have changed that some time ago to >> "rdfs:label" as it is the case for ReferencedSites. >> >> In that case you need to explicitly parse rdfs:label as field as in the >> following example >> >> curl -X POST -d >> "name=Optimization&field=http://www.w3.org/2000/01/rdf-schema#label" >> http://localhost:8080/entityhub/find >> >> best >> Rupert >> >> > }], >> > "limit": 5, >> > "offset": 0 >> > }, >> > "results": [] >> > } >> > I did something wrong, but I am not sure what. Could you please help me >> > on >> > this one? >> > On Mon, Aug 15, 2011 at 12:28 PM, Rupert Westenthaler >> > <[email protected]> wrote: >> >> >> >> Hi >> >> >> >> On Mon, Aug 15, 2011 at 12:12 PM, srecko joksimovic >> >> <[email protected]> wrote: >> >> > Thank you! >> >> > Now I got message which says: >> >> > Unable to create an Entity that does already exist >> >> >> >> This simple tells you that an Entity you tried to create already >> >> existed. >> >> So I assume that a previous import of your Ontology was successful. >> >> >> >> > as I understand, this means that I did it right first time. How I can >> >> > read >> >> > ID of this Entity? I did not use -v switch first time when I tried >> >> > upload, >> >> > and now I do not know ID. Or maybe I do, but I am not aware of >> >> > that... >> >> >> >> You should know the URIs of the concepts in your Ontology. >> >> >> >> curl http://localhost:8080/entityhub/entity?id={concept-uri} >> >> >> >> If you know some labels you can also use the query service >> >> >> >> curl -X POST -d "name={label}" http://localhost:8080/entityhub/find >> >> >> >> name takes wildcard searches such as "Her?a*" and reaches for values >> >> of the "rdfs:label" property. >> >> >> >> if you want to search labels for properties other than "rdfs:label" >> >> you can use the field parameter. >> >> Here an example for searching all Persons with a "foaf:name" "Ivan*" >> >> >> >> curl -X POST -d "name=Ivan*&field=http://xmlns.com/foaf/0.1/name" >> >> http://localhost:8080/entityhub/find >> >> >> >> >> >> As an alternative you could also use the query interface as described >> >> on >> >> >> >> http://localhost:8080/entityhub/query >> >> >> >> best >> >> Rupert >> >> >> >> > And only one more simple question... Could you please provide me a >> >> > code >> >> > example? I will try to search archive, or other resources that you >> >> > gave >> >> > me. >> >> > Anyway, I would be grateful if you could help me. >> >> > Once again, thank you very much! >> >> > Best, >> >> > Srecko Joksimovic >> >> > On Mon, Aug 15, 2011 at 11:57 AM, Rupert Westenthaler >> >> > <[email protected]> wrote: >> >> >> >> >> >> Hi >> >> >> >> >> >> On Mon, Aug 15, 2011 at 11:06 AM, srecko joksimovic >> >> >> <[email protected]> wrote: >> >> >> > Hello Mr Westenthaler, >> >> >> > I have configured Apache Stanbol. I can access services using >> >> >> > http://localhost:8080. I tried to do steps that you described, and >> >> >> > I >> >> >> > did >> >> >> > not >> >> >> > have a problem with step 2, but I am not sure that I did step >> >> >> > 1 correctly. >> >> >> > When I issued command like this one: >> >> >> > curl -X POST -H "Content-Type: application/rdf+xml" --data >> >> >> > "@acm_ccs-proton_rdfxml.owl" >> >> >> > http://localhost:8080/entityhub/entity >> >> >> > I got response: >> >> >> > curl: (52) Empty reply from server >> >> >> > This file which I am trying to upload is almost 1MB big. It should >> >> >> > not >> >> >> > be a >> >> >> > problem with memory. >> >> >> > Do you have any idea what could be a problem? How I can check that >> >> >> > I >> >> >> > did >> >> >> > the >> >> >> > job correctly? >> >> >> >> >> >> >> >> >> when you add the '-v' switch to 'curl' than you should see the >> >> >> returned HTTP status code of the response. >> >> >> >> >> >> In case of a success the server returns a "201 Created" and the ID >> >> >> of >> >> >> the first created entity in the >> >> >> Location header field >> >> >> >> >> >> here an example of an response after importing the FOAF file of Ivan >> >> >> Herman >> >> >> >> >> >> < HTTP/1.1 201 Created >> >> >> < Location: >> >> >> >> >> >> >> >> >> http://localhost:8080/entityhub/entity?id=http://www.ivan-herman.net/foafExtras.rdf%23Liddy >> >> >> >> >> >> with a simple curl request to the url returned for the Location >> >> >> header >> >> >> you can easily test the imported data for this entity. To test other >> >> >> resources simple exchange the URI. >> >> >> >> >> >> best >> >> >> Rupert Westenthaler >> >> >> >> >> >> > Best, >> >> >> > Srecko Joksimovic >> >> >> > On Tue, Aug 9, 2011 at 4:45 PM, Rupert Westenthaler >> >> >> > <[email protected]> wrote: >> >> >> >> >> >> >> >> Hallo Mr Srecko Joksimovic >> >> >> >> >> >> >> >> Two initial Notes: >> >> >> >> >> >> >> >> * I am sending this also to the stanbol-dev list, because I am on >> >> >> >> vacation until end of August and will only read/answer mails from >> >> >> >> time >> >> >> >> to time until than. So maybe others of the Stanbol community will >> >> >> >> be >> >> >> >> able to answer questions more quickly then myself. >> >> >> >> * I am sending this reply via my gmail account, because somehow I >> >> >> >> am >> >> >> >> not able to connect to the SMTP server of salzburgresearch.at. >> >> >> >> >> >> >> >> - - - >> >> >> >> >> >> >> >> Actually this is possible by using the TaxonomyLinkingEngine that >> >> >> >> is >> >> >> >> currently in development. >> >> >> >> >> >> >> >> Basically there are two steps: >> >> >> >> >> >> >> >> (1) upload your Ontology to the Entityhub >> >> >> >> (2) configure an instance of the TaxonomyLinkingEngine to use >> >> >> >> your >> >> >> >> ontology (as stored by the Entityhub) to enhance your documents >> >> >> >> >> >> >> >> >> >> >> >> for (1) there are two possibilities >> >> >> >> >> >> >> >> (1a) upload your ontology directly to the "/entityhub" >> >> >> >> >> >> >> >> If you have a Stanbol instance running at >> >> >> >> "http://localhost:8080/" >> >> >> >> the >> >> >> >> followng curl command can be used to upload an RDF graph (such as >> >> >> >> your >> >> >> >> ontology) >> >> >> >> >> >> >> >> curl -X POST -H "Content-Type: application/rdf+xml" --data >> >> >> >> "@{rdfXmlFile}" http://localhost:8080/entityhub/entity >> >> >> >> >> >> >> >> This assumes that your Ontology is encoded as >> >> >> >> "application/rdf+xml". >> >> >> >> {rdfXmlFile} denotes to the path to the file on the local file >> >> >> >> system. >> >> >> >> Please also have a look at [1] for a more detailed description on >> >> >> >> how >> >> >> >> to upload RDF data to the "/entityhub" endpoint. >> >> >> >> >> >> >> >> (1b) manage the RDF data as an own ReferencedSite >> >> >> >> >> >> >> >> The Entityhub also supports the configuration of so called >> >> >> >> ReferencedSites. This allows to manage different RDF datasets >> >> >> >> (e.g. >> >> >> >> dbpedia.org, geonames.org, IPTC thesaurus [2], your ontology, >> >> >> >> ...). >> >> >> >> Such sites are read-only and accessible under >> >> >> >> http://localhost:8080/entityhub/site/{siteId} >> >> >> >> >> >> >> >> Stanbol also includes an indexing tool that helps you in creating >> >> >> >> such >> >> >> >> "referencedSites" for local datasets (such as your Ontology). A >> >> >> >> detailed description of this process can be found at [3]. [2] is >> >> >> >> a >> >> >> >> specific configuration of [3] for the IPTC thesaurus. >> >> >> >> >> >> >> >> In general for testing I would suggest to use (1a) because it is >> >> >> >> much >> >> >> >> easer to start with. However (1a) will require to load your >> >> >> >> ontology >> >> >> >> in memory therefore it will not work for big datasets. In >> >> >> >> addition >> >> >> >> (1b) allows you to optimize your ontology (by defining mappings) >> >> >> >> during the indexing process and it gives you the possibility to >> >> >> >> use >> >> >> >> different Ontologies for enhancing your content. Therefore for >> >> >> >> more >> >> >> >> complex usage scenarios option (1b) is typically the better >> >> >> >> solution. >> >> >> >> >> >> >> >> (2) Configure the TaxonomylinkingEngine >> >> >> >> >> >> >> >> This Engine is by default included in the Full launcher of >> >> >> >> Stanbol. >> >> >> >> If >> >> >> >> you prefer the stable launcher you will need to manually install >> >> >> >> it >> >> >> >> (e.g. by using the Apache Felix Wenconsole accessible under >> >> >> >> http://localhost:8080/system/console default user: admin pwd: >> >> >> >> admin). >> >> >> >> The bundle to install can be found at >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> "{stanbol-trunk}/enhancer/engines/taxonomylinking/target/org.apache.stanbol.enhancer.engine.taxonomy-0.9.0-incubating-SNAPSHOT.jar" >> >> >> >> >> >> >> >> Assuming a running Stanbol Instance that includes the >> >> >> >> TaxonomyLinkingEngine the following steps are required for the >> >> >> >> configuration: >> >> >> >> 1. go the "configuration tab" >> >> >> >> (http://localhost:8080/system/console/configMgr) >> >> >> >> 2. search for "Apache Stanbol Enhancement Engine for Taxonomy >> >> >> >> linking" >> >> >> >> 3. pres on the [+] button on the end of this line (this will open >> >> >> >> the >> >> >> >> dialog to configure a new instance of this engine) >> >> >> >> 4. configure the source. If you used (1a) put "entityhub" in case >> >> >> >> of >> >> >> >> (1b) you must enter the siteId of the referenced site. >> >> >> >> 5. configure the property used to search for labels of the >> >> >> >> concepts >> >> >> >> in >> >> >> >> your Ontology. The default is rdfs:label (typically used for >> >> >> >> labeling >> >> >> >> concepts within ontologies, but you might also want to use a >> >> >> >> different >> >> >> >> one based on your ontology >> >> >> >> >> >> >> >> I would not recommend to change any other properties because this >> >> >> >> engine is currently under development and changes to this values >> >> >> >> might >> >> >> >> not be implemented or even worse break this engine. >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> best >> >> >> >> Rupert Westenthaler >> >> >> >> >> >> >> >> [1] http://markmail.org/message/plertstj6fx4xutj >> >> >> >> [2] http://markmail.org/message/rgwug74s3u6olrby >> >> >> >> [3] >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> http://svn.apache.org/repos/asf/incubator/stanbol/trunk/entityhub/indexing/genericrdf/README.md >> >> >> >> >> >> >> >> Am 08.08.2011, 22:53 Uhr, schrieb srecko joksimovic >> >> >> >> <[email protected]>: >> >> >> >> > >> >> >> >> > Hello Mr Westenthaler, >> >> >> >> > >> >> >> >> > Mr Pereira gave me your contact, in order to ask you a few >> >> >> >> > questions >> >> >> >> > about >> >> >> >> > Apache Stanbol. I suppose that you have received Mr Pereira's >> >> >> >> > email >> >> >> >> > which he >> >> >> >> > sent to me, and you maybe already know what the problem is. >> >> >> >> > >> >> >> >> > Mr Pereira suggested me to use Apache Stanbol. The idea is to >> >> >> >> > load >> >> >> >> > my >> >> >> >> > ontology, and than to call method which is going to annotate >> >> >> >> > provided >> >> >> >> > text, >> >> >> >> > based on loaded ontology. Could you please explain to me how to >> >> >> >> > implement >> >> >> >> > scenario which I described using Apache Stanbol? If you could >> >> >> >> > provide >> >> >> >> > me >> >> >> >> > a >> >> >> >> > code example, I would be very grateful. >> >> >> >> > >> >> >> >> > Thank you very much. >> >> >> >> > >> >> >> >> > Best, >> >> >> >> > Srecko Joksimovic >> >> >> >> >> >> >> >> -- >> >> >> >> | Rupert Westenthaler [email protected] >> >> >> >> | Bodenlehenstraße 11 >> >> >> >> ++43-699-11108907 >> >> >> >> | A-5500 Bischofshofen >> >> >> > >> >> >> > >> >> >> >> >> >> >> >> >> >> >> >> -- >> >> >> | Rupert Westenthaler [email protected] >> >> >> | Bodenlehenstraße 11 ++43-699-11108907 >> >> >> | A-5500 Bischofshofen >> >> > >> >> > >> >> >> >> >> >> >> >> -- >> >> | Rupert Westenthaler [email protected] >> >> | Bodenlehenstraße 11 ++43-699-11108907 >> >> | A-5500 Bischofshofen >> > >> > >> >> >> >> -- >> | Rupert Westenthaler [email protected] >> | Bodenlehenstraße 11 ++43-699-11108907 >> | A-5500 Bischofshofen > > -- | Rupert Westenthaler [email protected] | Bodenlehenstraße 11 ++43-699-11108907 | A-5500 Bischofshofen
