[rdfweb-dev] [jena-dev] novice Jena foaf parsing question
Jason Bell
jasonbell at sys-con.com
Tue Jul 8 19:45:35 UTC 2003
I would have suggested using RDQL instead of navigating through a model.
That's my personal preference.
The Jena RDQL tutorial is at
http://www.hpl.hp.com/semweb/doc/tutorial/RDQL/index.html
Must try and get some foaf related Jena stuff back up.
I put my page on the generating Jena schema classes up again.
http://jaseb.enigmastation.com/foafapi/jena_mods.html
Warning though, it may be a little out of date.
Kind regards
Jase Bell
----- Original Message -----
From: "Graham Klyne" <GK at ninebynine.org>
To: <rdfweb-dev at vapours.rdfweb.org>
Sent: Tuesday, July 08, 2003 11:00 AM
Subject: Re: [rdfweb-dev] [jena-dev] novice Jena foaf parsing question
> At 18:50 07/07/03 -0400, Dan Brickley wrote:
> >Could someone with some Jena-knowhow perhaps offer some help here? If so
> >we can slap it in the wiki and link from FAQ at same time... --danbri
>
> (QUESTION TO ALL: see *** below)
>
> (I also just noticed that Andy Seaborne has given some more details in
> response to this on the Jena-users list.)
>
> It's a while since I used the Jena API, so I can't remember the
> details. Also, it's not exactly clear from the question what is required
> to be achieved. I see two possibilities:
> (a) given a foaf property+value about some person, such as
> <foaf:mbox_sha1sum>, to find other information about that person, or
> (b) given a collection of foaf descriptions, to extract information about
> all of them.
>
> Dealing with case (a), using the Jena 'Model' interface, you need to do a
> two-step process:
>
> 1. search for statements of the form:
>
> (anything) foaf:mbox_sha1sum (sha-1 value)
>
> there's a specific method of Model to do this, but I forget it's exact
name
> ... something like findStatements, I think. In normal use, you should get
> just one statement returned, but more are possible if the same mailbox
> owner appears multiple times in your RDF data.
>
> 2. extract the subject from the statement returned, and use that to
> retrieve from the Jena Model statements of the form:
>
> (subject) (any) (any)
>
> which should get you all known properties of the given subject. For
> complex properties you may need to chase properties of the objects thus
> obtained.
>
> All this can get rather tedious to do at this level, and you may do better
> to fire up Jena's query language interface which should let you do most of
> this in a single hit. I've never used that, so I can't really help
further.
>
> Case (b) above uses the same basic ideas, but is a bit more complex
because
> you don't have any kind of definite key to locate the foaf data.
>
> *** QUESTION TO ALL: is there a foaf property that SHOULD (MUST?) be
> present in any well-formed FOAF description? Without this, it may be
> difficult to separate FOAF subjects from other resources in an RDF
database.
>
> ANyway, for starters, I'd suggest doing something like finding all
> statements of the form:
>
> (any) foaf:name (any)
>
> and use the subjects of these as a pool opf foaf subjects. If you get
this
> far, I'm sure you can figure any further details.
>
> #g
> --
>
> At 18:50 07/07/03 -0400, Dan Brickley wrote:
> >Could someone with some Jena-knowhow perhaps offer some help here? If so
> >we can slap it in the wiki and link from FAQ at same time... --danbri
> >(still in catchup mode...)
> >
> >----- Forwarded message from James Nachlin <jnachlin at nachlin.com> -----
> >
> >From: James Nachlin <jnachlin at nachlin.com>
> >Date: Mon, 7 Jul 2003 17:39:03 -0400 (EDT)
> >To: jena-dev at yahoogroups.com
> >Subject: [jena-dev] novice Jena foaf parsing question
> >Message-ID:
<Pine.LNX.4.44.0307071723560.19906-100000 at www.brettsinger.com>
> >Reply-To: jena-dev at yahoogroups.com
> >
> >Hi,
> >
> >I'm trying to parse FOAF graphs using jena, and getting hung up
> >on what seems like it should be easy. I have basic code to
> >create a model and get a list of friends:
> >
> >import com.hp.hpl.jena.mem.*;
> >import com.hp.hpl.jena.rdf.model.*;
> >import com.hp.hpl.jena.vocabulary.*;
> >//created from the foaf schema using the schemagen tool:
> >import foaf.FOAF;
> >
> >public class friends {
> > public static void main(String[] arrrgh){
> > String foafURL = "http://www.nachlin.com/foaf.rdf";
> > Model model = new ModelMem();
> > model.read(foafURL);
> > Property knows = model.getProperty(FOAF.getURI(), "knows");
> > Property nID = model.getProperty(RDF.getURI(), "nodeID");
> > NodeIterator niter = model.listObjectsOfProperty(knows);
> > while(niter.hasNext()){
> > RDFNode node = niter.nextNode();
> > //just to prove something's happening
> > System.out.println("friend> " + node.toString());
> > }
> > }
> >}
> >
> >
> >That's great, but the next step is to access each one of these
> >friends and get information from that part of the graph. Jena
> >is seeing these "friends" in the graph as rdf:Descriptions, like
> >so:
> >
> ><rdf:Description rdf:nodeID="A1">
> > <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
> > <foaf:name>Lucas Gonze</foaf:name>
> >
>
><foaf:mbox_sha1sum>a5bac82a92eadb58f027754cb2d64231602d218c</foaf:mbox_sha1
sum>
> > <rdfs:seeAlso rdf:resource="http://www.gonze.com/foaf.rdf"/>
> ></rdf:Description>
> >
> >I haven't been able to get this simple task accomplished, trying
> >every approach I can think of and pouring over the tutorials and
> >docs. I would like, for instance, to be able to just print the
> >value of each foaf:name (and more beyone that, of course)
> >
> >Sorry to be so dense. Thanks for your help.
> >
> >Jim Nachlin
> >
> >
> >------------------------ Yahoo! Groups Sponsor ---------------------~-->
> >Save on Coral Calcium. Get Better Health and
> >Stronger Bones. Seen on TV
> >http://www.challengerone.com/t/l.asp?cid-2805&lp=calcium2.asp
> >http://us.click.yahoo.com/9gf46B/EfUGAA/ySSFAA/NhFolB/TM
> >---------------------------------------------------------------------~->
> >
> >To unsubscribe from this group, send an email to:
> >jena-dev-unsubscribe at yahoogroups.com
> >
> >
> >
> >Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
> >
> >
> >----- End forwarded message -----
> >
> >_______________________________________________
> >rdfweb-dev mailing list
> >rdfweb-dev at vapours.rdfweb.org
> >wiki: http://rdfweb.org/topic/FoafProject
> >http://rdfweb.org/mailman/listinfo/rdfweb-dev
>
> -------------------
> Graham Klyne
> <GK at NineByNine.org>
> PGP: 0FAA 69FF C083 000B A2E9 A131 01B9 1C7A DBCA CB5E
>
>
> _______________________________________________
> rdfweb-dev mailing list
> rdfweb-dev at vapours.rdfweb.org
> wiki: http://rdfweb.org/topic/FoafProject
> http://rdfweb.org/mailman/listinfo/rdfweb-dev
>
More information about the foaf-dev
mailing list