On 11/06/12 03:27, Don S wrote:
HI,
What does the Fuseki log say?
No message in the Fuseki log. Before running the main program, I
execute
this command first
" ruby s-put http://localhost:3030/ds2/data default per2.owl" to
put the
file in the server.
which puts it into the default model of datasat called
http://localhost:3030/ds2/data**.
The name "per2.owl" is lost - it's just a local file of data.
What's in model at this point?
Simultaneously I am writing the file to local c drive also. For that I
used in model.
Also I changed the first line of rupdata to #!/bin/sh instead
of #!/bin/bash.
Fuseki log after running the server
D:\fuseki-0.2.2>run
D:\fuseki-0.2.2>java -Xmx1200M -jar fuseki-server.jar --update --mem
--loc=D:/fu
seki-0.2.2/TD /ds2
10:40:16 INFO Server :: Dataset: in-memory
10:40:16 INFO Server :: TDB dataset:
directory=D:/fuseki-0.2.2/TD
10:40:17 INFO Server :: Dataset path = /ds2
10:40:17 INFO Server :: Fuseki
0.2.2-incubating-SNAPSHOT
20120506
-0501
10:40:17 INFO Server :: Jetty 7.x.y-SNAPSHOT
10:40:17 INFO Server :: Started 2012/06/11 10:40:17
PDT on
port 3
030
10:48:03 INFO Fuseki :: [1] PUT
http://localhost:3030/ds2/**data?de<http://localhost:3030/ds2/data?de>
fault
10:48:03 INFO Fuseki :: [1] 204 No Content
s-put
10:54:10 INFO Fuseki :: [3] GET
http://localhost:3030/ds2/**query?q<http://localhost:3030/ds2/query?q>
uery=SELECT+%2A%7B%3Fs+%3Fp+%**3Fo%7D
10:54:10 INFO Fuseki :: [3] Query = SELECT *{?s ?p ?o}
10:54:11 INFO Fuseki :: [3] OK/select
10:54:11 INFO Fuseki :: [3] 200 OK
Dump triples of defaul graph.
Here is the code
static final String inputFileName = "http://localhost:3030/";
public static void main(String[] args) throws IOException{
Model model =ModelFactory.**createOntologyModel();You shodul get
// use the FileManager to find the input file
InputStream in = FileManager.get().open(**inputFileName);
if (in == null) {
throw new IllegalArgumentException( "File: " +
inputFileName +
" not found");
}
model.read(inputFileName+"**per2.owl");
in.close();
String queryString ="PREFIX xmlns:
<http://localhost:3030/per1.**owl#<http://localhost:3030/per1.owl#>
\r\n"
+
"PREFIX base:<http://localhost:3030/**
per1.owl<http://localhost:3030/per1.owl>
\r"+
"PREFIX
xsd:<http://www.w3.org/2001/**XMLSchema#<http://www.w3.org/2001/XMLSchema#>
\r"+
"INSERT DATA" +
"{"+
"<http://localhost:3030/per1.**owl#name1<http://localhost:3030/per1.owl#name1>>\n"
+
"xmlns:hasFirstname \" Xie\"^^
xsd:string;" +
"}";
Use better prefixes.
Do not use xmlns:, owl: -- invent your own like myNS: or ex: or per:
String queryString1 =
"PREFIX
owl:<http://localhost:3030/**per1.owl#<http://localhost:3030/per1.owl#>>"
+
"SELECT * "+
"FROM<http://localhost:3030/**per1.owl<http://localhost:3030/per1.owl>
"+
Do not use FROM. Delete this. It is not needed.
There is no
file<http://localhost:3030/per1.**owl<http://localhost:3030/per1.owl>>,
either as a web resource or as a graph name in the datasets.
And you were trying to call it per2.owl anyway.
"WHERE"+
"{"+
"?Name owl:hasFirstname ?hasFirstname." +
"}";
GraphStore gs=GraphStoreFactory.create(**model);
gs.setDefaultGraph(model.**getGraph());
UpdateRequest ur = UpdateFactory.create(**queryString);
Update update = ur.getOperations().get(0);
not needed, not used.
UpdateExecutionFactory.**createRemote(ur,"
http://localhost:3030/ds2/**update<http://localhost:3030/ds2/update>");
UpdateAction.execute(ur,gs);
System.out.println(update);
// search part
Query query = QueryFactory.create(**queryString1);
remove the FROM.
QueryExecution qe = QueryExecutionFactory.create(**query, model);
ResultSet results = qe.execSelect();
ResultSetFormatter.out(System.**out, results, query);
And now try the web interface to Fuseki.
FileOutputStream fileour =new FileOutputStream("c:/per2.owl"**);
model.write(fileour,"RDF/XML-**ABBREV");
qe.close();
}
}
Still struggling to write the file using UpdateExecutionFactory.**
createRemote
Regards
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**~~~~~~~~~~~~~~~~~~~~~~~~~
On Fri, Jun 8, 2012 at 2:34 AM, Andy Seaborne<[email protected]>
wrote:
On 08/06/12 09:30, Don S wrote:
HI,
Finally I succeed to call the
function UpdateExecutionFactory.****createRemote. Thanks for the
comments.
Here is my configuration
Fuseki server
java -Xmx1200M -jar fuseki-server.jar --update --mem
--loc=D:/fuseki-0.2.2/TD /ds2
and the insert query code
public class search {
static final String inputFileName = "http://localhost:3030/";
public static void main(String[] args) throws IOException{
Model model =ModelFactory.****createOntologyModel();
// use the FileManager to find the input file
InputStream in = FileManager.get().open(****inputFileName);
if (in == null) {
throw new IllegalArgumentException( "File: " +
inputFileName +
" not found");
}
model.read(inputFileName+"****per2.owl");
in.close();
What's in model at this point?
String queryString ="PREFIX xmlns:
<http://localhost:3030/per1.****owl#<http://localhost:3030/per1.**owl#>
<http://localhost:3030/**per1.owl#<http://localhost:3030/per1.owl#>>
\r\n"
+
"PREFIX base:<http://localhost:3030/**
per1.owl<http://localhost:**3030/per1.owl<http://localhost:3030/per1.owl>
\r"+
"PREFIX xsd:<http://www.w3.org/2001/****
XMLSchema#<http://www.w3.org/2001/**XMLSchema#><http://www.w3.org/**
2001/XMLSchema#<http://www.w3.org/2001/XMLSchema#>>
\r"+
"INSERT DATA" +
"{"+
"<http://localhost:3030/per1.****owl#name1<http://localhost:3030/per1.**owl#name1>
<http://localhost:**3030/per1.owl#name1<http://localhost:3030/per1.owl#name1>
\n"
+
"xmlns:hasFirstname \"Rex\"^^
xsd:string;" +
"}";
xmlns is not a good choice of prefix name.
GraphStore gs=GraphStoreFactory.create(****model);
gs.setDefaultGraph(model.****getGraph());
UpdateRequest ur = UpdateFactory.create(****queryString);
Update update = ur.getOperations().get(0);
UpdateExecutionFactory.****createRemote(ur,"
http://localhost:3030/per2.**owl**<http://localhost:3030/per2.owl**>
");
UpdateAction.execute(ur,gs);
System.out.println(update);
// some codes ....
qe.close();
}
}
I am wondering why it is not updating the ontology??
regards
What does the Fuseki log say?
UpdateExecutionFactory.****createRemote(ur,"http://****
localhost:3030/per2.owl<http:/**/localhost:3030/per2.owl<http://localhost:3030/per2.owl>
");
per2.owl is not a SPARQL update service endpoint.
http://localhost:3030/ds2/****update<http://localhost:3030/ds2/**update>
<http://localhost:3030/**ds2/update<http://localhost:3030/ds2/update>>
is
the SPARQL update service endpoint.
Andy