stanbol-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rupert Westenthaler <rupert.westentha...@gmail.com>
Subject Re: Apache Stanbol
Date Mon, 15 Aug 2011 14:43:16 GMT
On Mon, Aug 15, 2011 at 3:06 PM, srecko joksimovic
<sreckojoksimovic@gmail.com> 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
> <rupert.westenthaler@gmail.com> wrote:
>>
>> On Mon, Aug 15, 2011 at 1:12 PM, srecko joksimovic
>> <sreckojoksimovic@gmail.com> 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
>> > <rupert.westenthaler@gmail.com> wrote:
>> >>
>> >> Hi
>> >>
>> >> On Mon, Aug 15, 2011 at 12:12 PM, srecko joksimovic
>> >> <sreckojoksimovic@gmail.com> 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
>> >> > <rupert.westenthaler@gmail.com> wrote:
>> >> >>
>> >> >> Hi
>> >> >>
>> >> >> On Mon, Aug 15, 2011 at 11:06 AM, srecko joksimovic
>> >> >> <sreckojoksimovic@gmail.com> 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
>> >> >> > <rupert.westenthaler@gmail.com> 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
>> >> >> >> <sreckojoksimovic@gmail.com>:
>> >> >> >> >
>> >> >> >> > 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             rupert.westenthaler@gmail.com
>> >> >> >> | Bodenlehenstraße 11
>> >> >> >> ++43-699-11108907
>> >> >> >> | A-5500 Bischofshofen
>> >> >> >
>> >> >> >
>> >> >>
>> >> >>
>> >> >>
>> >> >> --
>> >> >> | Rupert Westenthaler             rupert.westenthaler@gmail.com
>> >> >> | Bodenlehenstraße 11                            
++43-699-11108907
>> >> >> | A-5500 Bischofshofen
>> >> >
>> >> >
>> >>
>> >>
>> >>
>> >> --
>> >> | Rupert Westenthaler             rupert.westenthaler@gmail.com
>> >> | Bodenlehenstraße 11                             ++43-699-11108907
>> >> | A-5500 Bischofshofen
>> >
>> >
>>
>>
>>
>> --
>> | Rupert Westenthaler             rupert.westenthaler@gmail.com
>> | Bodenlehenstraße 11                             ++43-699-11108907
>> | A-5500 Bischofshofen
>
>



-- 
| Rupert Westenthaler             rupert.westenthaler@gmail.com
| Bodenlehenstraße 11                             ++43-699-11108907
| A-5500 Bischofshofen

Mime
View raw message