You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Brian McBride <br...@epimorphics.com> on 2011/08/23 22:40:17 UTC

Re: [listsubject & ListObject]

Hi Maatary,

What output were you expecting?

Consider the graph consisting of the single triple:

ex:foo --ex:prop--> ex:bar

If you list all the subjects in the graph you would get:

    ex:foo

because the subjects are the resources at the blunt end of the arrow.

If you list all the objects in this graph you would get:

   ex:bar

because the objects are the nodes at the sharp end of the arrow.

Completely different lists.  As you would expect, no?

Brian


On 23/08/2011 15:50, Maatary Daniel OKOUYA wrote:
> Can anyone help me understand this different of output. I listing all 
> the subject in the RDF Graph then print their details. After what i 
> list all object of the graph and if they are a ressource convert them 
> in the  ressource they are and print
>
> However, i get totaly different answer as you can see below
>
>
>
> static final String inputFileName = "data/promise.rdf";
>
>     public static void main(String[] args) {
>
>         // create an empty model
>         Model model = ModelFactory.createDefaultModel();
>
>         // use the FileManager to find the input file
>         InputStream in = FileManager.get().open(inputFileName);
>         if (in == null) {
>             throw new IllegalArgumentException( "File: " + 
> inputFileName + " not found");
>         }
>
>         // read the RDF/XML file
>         model.read(new InputStreamReader(in), "");
>
>         ResIterator it      = model.listSubjects();
>         NodeIterator nodit  = model.listObjects();
>         Resource res        = null;
>         StmtIterator propIt = null;
>
>
>         while (it.hasNext()) {
>
>             res = it.nextResource();
>
>             System.out.println("res:" + res.toString());
>
>             propIt = res.listProperties();
>
>             while (propIt.hasNext())
>                 System.out.println("property: " + 
> propIt.nextStatement().getPredicate().getLocalName());
>
>         }
>
>        
> System.out.println("\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Objects>>>>>>>>>>>>>>>>>>>>>>>\n");
>         res    = null;
>         propIt = null;
>
>         while (nodit.hasNext()) {
>             RDFNode nod = nodit.nextNode();
>
>             System.out.println("nod:" + nod.toString() + " : " + 
> nod.isResource());
>
>             if (nod.isResource()) {
>                 res = nod.asResource();
>
>                 System.out.println("res:" + res.toString() + " : " + 
> res.getLocalName());
>
>                 //propIt = res.listProperties();
>
>             }
>         }
>
>
> }
>
>
> res:http://www.people.lu.unisi.ch/fornaran/example/promise#JohnAction1
> property: hasAmount
> property: hasRecipient
> property: hasDuration
> property: hasActor
> property: type
> res:http://www.people.lu.unisi.ch/fornaran/example/promise#book1
> property: type
> res:http://www.people.lu.unisi.ch/fornaran/example/promise#MaryAction1
> property: hasObject
> property: hasRecipient
> property: hasActor
> property: type
>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Objects>>>>>>>>>>>>>>>>>>>>>>>
>
> nod:http://www.people.lu.unisi.ch/fornaran/schemas/app-rdf0#Pay : true
> res:http://www.people.lu.unisi.ch/fornaran/schemas/app-rdf0#Pay : Pay
> nod:http://www.people.lu.unisi.ch/fornaran/schemas/app-rdf0#Deliver : 
> true
> res:http://www.people.lu.unisi.ch/fornaran/schemas/app-rdf0#Deliver : 
> Deliver
> nod:Mary : false
> nod:2 : false
> nod:http://www.people.lu.unisi.ch/fornaran/example/promise#book1 : true
> res:http://www.people.lu.unisi.ch/fornaran/example/promise#book1 : book1
> nod:John : false
> nod:http://www.people.lu.unisi.ch/fornaran/schemas/app-rdf0#book : true
> res:http://www.people.lu.unisi.ch/fornaran/schemas/app-rdf0#book : book
> nod:5 : false