On 03/09/12 16:36, Yoga Indra Pamungkas wrote:
I have store rdf statement to database from inference ontology such as example
below :
(http://www.digilib.stis.ac.id/skripsi/78 rdf:type
http://www.semanticweb.org/ontologies/2012/7/OntologySkripsiKomputasi.owl#pengembanganWebService)
- (http://www.digilib.stis.ac.id/skripsi/78 rdf:type
http://www.semanticweb.org/ontologies/2012/7/OntologySkripsiKomputasi.owl#aplikasiWeb)
- (http://www.digilib.stis.ac.id/skripsi/78 rdf:type
http://www.semanticweb.org/ontologies/2012/7/OntologySkripsiKomputasi.owl#pengembanganSistem)
- (http://www.digilib.stis.ac.id/skripsi/78 rdf:type
http://www.semanticweb.org/ontologies/2012/7/OntologySkripsiKomputasi.owl#skripsiKS)
- (http://www.digilib.stis.ac.id/skripsi/78 owl:sameAs
http://www.digilib.stis.ac.id/skripsi/78)
- (http://www.digilib.stis.ac.id/skripsi/69
http://www.semanticweb.org/ontoloies/2012/7/OntologySkripsiKomputasi.owl#anotasiOleh
'Indra')
- (http://www.digilib.stis.ac.id/skripsi/69
http://purl.org/dc/elements/1.1/creator '07.5371')
- (http://www.digilib.stis.ac.id/skripsi/69 rdf:type
'semantic.OntologyKomputasi.metodelogiPenelitian')
rdf:type does not take a literal string object.
- (http://www.digilib.stis.ac.id/skripsi/200491 rdf:type
'semantic.OntologyKomputasi.mechanicalTurk')
- (http://www.digilib.stis.ac.id/skripsi/200491 rdf:type
http://www.semanticweb.org/ontologies/2012/7/OntologySkripsiKomputasi.owl#mechanicalTurk)
- (http://www.digilib.stis.ac.id/skripsi/200491 rdf:type
http://www.semanticweb.org/ontologies/2012/7/OntologySkripsiKomputasi.owl#aplikasiWeb)
I assume from many example that I've been read, sparql query cannot directly to
the database, but we have to create a model and call it from database and then
query it.
So I try this :
m = maker.getModel(DOCUMENT_NAME);
String queryString =
"PREFIX ont:
<http://www.semanticweb.org/ontologies/2012/7/OntologySkripsiKomputasi.owl#>"
+ "PREFIX dl: <http://www.digilib.stis.ac.id/skripsi/>"
+ "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>"
+ "PREFIX dc: <http://purl.org/dc/elements/1.1/>"
+ "SELECT DISTINCT ?type ?title ?creator"
+ "WHERE {" + "?type rdf:type dl:aplikasiWeb"
ont:aplikasiWeb, not dl:....
+ "?title dc:title "
+ "?creator dc:creator "
+"}";
That is not valid syntax. (and putting newlines in helps)
Query query = QueryFactory.create(queryString);
This will give you an exception.
QueryExecution qeExec = QueryExecutionFactory.create(query, m);
printStatements(m, null, null, null);
//output
ResultSet result = qeExec.execSelect();
ResultSetFormatter.out(System.out, result, query);
qeExec.close();
To get resource http://www.digilib.stis.ac.id/skripsi/78 and the thesis creator
& title. But it doesn't work.
Something like:
PREFIX dl: <http://www.digilib.stis.ac.id/skripsi/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
SELECT ?x ?title ?creator
{
?x rdf:type dl:pengembanganWebService ;
dc:title ?title ;
dc:creator ?creator .
}
Andy
My Question :
1. Is there something direct query over database, so I don't have to call the
model and sparql it?
2. If there's no way to do that, and I should call the model and do like my
code above, is there any way to store it like SQL code below?
while (rs.next()) {
Thesis thesis= new Thesis();
thesis.setIdThesis(rs.getString("thesis_code"));
thesis.setTitle(rs.getString("thesis_title"));
}
Thanks for your help.