I tested this code, it works!   But I have 2 questions:

1- How can I get the comment in a specific language ?

2- You answered me 2 ways of doing that, is there any specific reason to
choose one or the other?

Thank you very much!


2013/11/10 Joshua TAYLOR <[email protected]>

>
> On Sun, Nov 10, 2013 at 9:28 AM, Luciane Monteiro <[email protected]>
> wrote:
> > Yes, I did this: ( Here response is a List<DBpediaResource> )
> >
> >  Model model = ModelFactory.createDefaultModel();
> >      List<String> uriList = new ArrayList<String>();
> >
> >
> >         for( DBpediaResource dbResource : response ) {
> >
> >             String uri = dbResource.getFullUri();
> >             uriList.add(uri);
> >         }
> >
> >         for( String uri : uriList ) {
> >
> >             Resource resource = model.createResource(uri);
> >             StmtIterator stmts = resource.listProperties(RDFS.comment);
> >
> >             while( stmts.hasNext() ) {
> >
> >                 Statement stmt = stmts.next();
> >                 RDFNode comment = stmt.getObject();
> >
> >                 System.out.println("Comment: " + comment.toString());
> >             }
> >         }
> >
> > But when I try to print the Comment it returns me nothing. Is there
> anything
> > wrong?
>
> When you say it "returns you nothing", do you mean that you don't get any
> output at all, or that you're getting "Comment: null" (i.e., that
> comment.toString() is returning null for some values)?  At any rate, it
> looks like you're doing a lot more work than you need to.  When you read
> the remote content (e.g., with model.read(...) or RDFDataMgr.read(model,
> uri) as Andy mentioned) you get a model back.  Then you can either ask the
> model for statements directly, or you can get a resource for
> http://dbpedia.org/resource/Google directly and then ask for properties
> from it.  E.g.:
>
>
> import com.hp.hpl.jena.rdf.model.Model;
> import com.hp.hpl.jena.rdf.model.ModelFactory;
> import com.hp.hpl.jena.rdf.model.RDFNode;
> import com.hp.hpl.jena.rdf.model.Resource;
> import com.hp.hpl.jena.rdf.model.ResourceFactory;
> import com.hp.hpl.jena.rdf.model.StmtIterator;
> import com.hp.hpl.jena.vocabulary.RDFS;
>
> public class DBpediaExample {
>  final static String DBPEDIA_GOOGLE = "http://dbpedia.org/resource/Google
> ";
>  public static void main(String[] args) {
> // Create a model and read the DBpedia content into it.
> final Model model = ModelFactory.createDefaultModel().read( DBPEDIA_GOOGLE
> );
>  // Create a resource not associate with any model, and ask the model
> // for statements with it as a subject and rdfs:comment as the property.
>  // null (for the object) is a wildcard.  You could also use a resource
> // that is associated with a model (e.g., model.createResource(
> dbpediaGoogle )).
>  final Resource google1 = ResourceFactory.createResource( DBPEDIA_GOOGLE
> );
> StmtIterator stmts1 = model.listStatements( google1, RDFS.comment,
> (RDFNode) null );
>  showObjects( stmts1 );
>  // Create a resource based on the model. This one is based on the model,
>  // so when you ask for its properties, you're asking about statements in
> // the same model.
> final Resource google2 = model.getResource( DBPEDIA_GOOGLE );
>  showObjects( google2.listProperties( RDFS.comment ));
> }
>  public static void showObjects( final StmtIterator it ) {
> while ( it.hasNext() ) {
> System.out.println( it.next().getObject() );
>  }
> }
> }
>
> --
> Joshua Taylor, http://www.cs.rpi.edu/~tayloj/
>

Reply via email to