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