[newbie] Question about linking to an ontology

Hello all,

For the university, we need to calculate the compatibility of two persons,
based on their FOAF-profiles. My idea was (amongst others) to  take a look
at the interests of people and resolve whether they are similar. Here is
what I am trying to do

Person A has the following in his profile:

    <foaf:interest
        rdf:resource="http://en.wikipedia.org/wiki/Taekwondo" />

Person B has the following:

    <foaf:interest
        rdf:resource="http://en.wikipedia.org/wiki/Soccer"  />

Via an ontology, I would like to conclude that they are both interested in
sports:

<owl:Class rdf:ID="Sports" />
<owl:Class rdf:ID="Taekwondo">
    <subClassOf rdf:resource="#Sports"/>
    <label xml:lang="en">Taekwondo</label>
    <label xml:lang="nl">Taekwondo</label>
    <owl:sameAs
        rdf:resource="http://en.wikipedia.org/wiki/Taekwondo" />
</owl:Class>
<owl:Class rdf:ID="Soccer">
    <rdfs:subClassOf rdf:resource="#Sports" />
    <label xml:lang="en">Soccer</label>
    <label xml:lang="nl">Voetbal</label>
</owl:Class>

I would like to get the information using SPARQL and that is where things go
wrong:

Test for one person only using Jena:

        Model schemaModel = ModelFactory.createDefaultModel().read("
http://localhost/f/sports.owl.txt");
        Model instanceModel =
ModelFactory.createDefaultModel().read(fstUrl);
        Model infModel = ModelFactory.createRDFSModel(schemaModel,
instanceModel);
        String queryString =
            "PREFIX foaf:   <http://xmlns.com/foaf/0.1/> " +
            "PREFIX rdf:    <http://www.w3.org/1999/02/22-rdf-syntax-ns#> "
+
            "PREFIX ont:    <http://localhost/f/sports.owl.rdf> " +
            "PREFIX rdfs:   <http://www.w3.org/2000/01/rdf-schema#> " +
            "SELECT ?personId ?interest " +
            " WHERE { " +
            " ?person a foaf:Person . " +
            " ?person foaf:interest ?interest . " +
            " ?interest a ont:Sport . " +
            " OPTIONAL { ?person foaf:maker ?personId } . " +
            " OPTIONAL { ?person foaf:mbox ?personId } . " +
            " OPTIONAL { ?person foaf:mbox_sha1sum ?personId } . " +
            "}";
        Query query = QueryFactory.create(queryString);
        QueryExecution qe = QueryExecutionFactory.create(query, infModel);
        ResultSet results = qe.execSelect();
        ResultSetFormatter.out(System.out, results);

Any input appreciated

Barry

Received on Wednesday, 26 November 2008 12:51:05 UTC