Hi Rupert,

Thanks for your response. I will look into this.

Meanwhile I was trying the FieldQuery option available with stanbol ...

I have created the following FieldQuery

{
    "selected": [
        "http:\/\/dbpedia.org\/ontology\/foundingYear",
        "http:\/\/dbpedia.org\/ontology\/foundingDate",
        "http:\/\/dbpedia.org\/ontology\/keyPerson",
        "http:\/\/dbpedia.org\/ontology\/industry"],
    "offset": "0",
    "limit": "10",
    "constraints": [{
        "type": "reference",
        "field": "http:\/\/www.w3.org\/1999\/02\/22-rdf-syntax-ns#type",
        "value": "http:\/\/dbpedia.org\/ontology\/Organisation",
    }]
}

and running the command:

curl -X POST -H "Content-Type:application/json" --data "@fieldQuery.json"
http://localhost:8080/entityhub/site/dbpedia/query

I am using the dbpedia.solrindex (version 3.8)  (from link
http://dev.iks-project.eu/downloads/stanbol-indices/dbpedia-3.8/)


But I am not getting any of the attributes like foundingYear, industry etc
in the result. Is this because that the dbpedia.solrindex doesn't contains
these attributes?
I think this is also going to follow the same workflow that you had told in
the last mail through sample code?

Regards,
Manish




On Wed, May 15, 2013 at 12:46 PM, Rupert Westenthaler <
[email protected]> wrote:

> Hi Manish,
>
> Yes, typically this is done by using the Stanbol Entiyhub in
> combination with a referenced site for dbpedia.
>
> (1) Configuring the dbpedia ReferencedSite
> ------
>
> But NOTE that all pre-build dbpedia indexes for the Entityhub do not
> include the dbpedia-owl:industry property. Meaning that you will need
> to create your own DBpedia index that does include this property by
> using the Entityhub Indexing Tool for dbpedia.
>
> As alternative you could also configure a Referenced Site for dbpedia
> that directly accesses the dbpedia SPARQL endpoint and stores
> retrieved entities in a local cache. For that you can install the
>
>     <groupId>org.apache.stanbol</groupId>
>     <artifactId>org.apache.stanbol.data.sites.dbpedia.cached</artifactId>
>     <version>1.2.0-SNAPSHOT</version>
>
> NOTE: with revision http://svn.apache.org/r1482702 I changed the name
> of the ReferencedSite configured by this bundle from 'dbpedia' to
> 'dbpedia-cached' so that it does not conflict with the default
> 'dbpedia' ReferencedSite that does use a full local index.
>
> (2) Access the information of the dbpedia ReferencedSite
> ---------
>
> To get the required information you will need to use the Entityhub
> API. See the code samples below.
>
>     import org.apache.stanbol.entityhub.servicesapi.site.SiteManager
>
>     //inject a reference to the Entityhub SiteManager
>     @Reference
>     SiteManager siteManager
>
>     //siteName is the name of the Referenced Site (most likely
> 'dbpedia' or 'dbpedia-cached')
>     private someMethod(String siteName, String entityId){
>
>         Site site = siteManager.getSite(siteName);
>         //check for not null (site with that name is not active)
>         Entity entity = site.getEntity(entityId);
>         Representation data = entity.getRepresentation();
>         //get the RDF type values of the Entity
>         Iterator<Reference> types = data.getReferences(RDF_TYPE);
>         //iterate over the types and check for dbp-ont:Organisation
> (the full URI)
>
>         Iterator<Reference> industryValues =
> data.gerReferences(DBPEDIA_INDUSTRY);
>         //iterate over the values for the industry values
>
>     }
>
> If you prefer to use the Clerezza RDF API instead of the API of
> Representation you can also convert the Representation to RDF
>
>     import org.apache.stanbol.entityhub.model.clerezza.RdfValueFactory;
>     import import org.apache.clerezza.rdf.utils.GraphNode;
>
>     private static RdfValueFactory vf = RdfValueFactory.getInstance();
>
>     private GraphNode convertRepresentationToRdf(Representation r){
>         return new GraphNode(new UriRef(r.getId()),
>             vf.toRdfRepresentation(rep).getRdfGraph();
>     }
>
> The above code would create a new MGraph for each Representation. If
> you want to add multiple Representation to the same Graph you need to
> use
>
>     import org.apache.stanbol.commons.indexedgraph.IndexedMGraph;
>
>     private someMethod(...) {
>
>     MGrpah graph = new IndexedMGrpah(); //a fast in-memory graph
> implementation
>     RdfValueFactory vf = new RdfValueFactory(graph);
>
>     //now use this RdfValueFactory to convert all Representations
>     GraphNode entityRdfData = convertRepresentationToRdf(vf,representation)
>
>     }
>
>     private GraphNode convertRepresentationToRdf(RdfValueFactory vf,
> Representation r){
>         return new GraphNode(new UriRef(r.getId()),
>             vf.toRdfRepresentation(rep).getRdfGraph();
>    }
>
> hope this helps
>
> best
> Rupert
>
> On Tue, May 14, 2013 at 2:29 PM, Manish Aggarwal <[email protected]>
> wrote:
> > Hi,
> >
> > Is it possible to query dbpedia database from a custom enhancement engine
> > and find out more about a keyword. For example, if the keyword classify
> > under organization (dbp-ont:Organisation), I will be interested to know
> > what is the industry (dbpedia-owl:industry) this keyword belongs to.
> > In a custom enhancement engine how can I get the required information?
> >
> > Regards,
> > Manish
>
>
>
> --
> | Rupert Westenthaler             [email protected]
> | Bodenlehenstraße 11                             ++43-699-11108907
> | A-5500 Bischofshofen
>

Reply via email to