Ok, I finally succeed to do it ! Here the method that I've found :
DatasetGraph dg = RDFDataMgr.loadDatasetGraph(PrivacyDeployment.FILE,
Lang.NQUADS);
Iterator<Node> nodeIt = dg.listGraphNodes();
while (nodeIt.hasNext()) {
Node node = nodeIt.next();
Graph graph = dg.getGraph(node);
VirtGraph virtGraph = new VirtGraph(node.getURI(),
PrivacyDeployment.DB_URL, PrivacyDeployment.USER, PrivacyDeployment.PASS);
for (Triple triple : GraphUtil.findAll(graph).toSet()) {
virtGraph.add(triple);
}
virtGraph.close();
}
But is-there a simpler way to do it ?
Best.
-------------------------------------------------------------------------------------------------------------------------------
Julien Plu
PhD Student at Eurecom.
Personal webpage: http://jplu.developpez.com
FOAF file : http://jplu.developpez.com/julien
Email address : [email protected]
Phone : +33493008200
Twitter : @julienplu
2014-07-15 11:22 GMT+02:00 Julien Plu <[email protected]>:
> Hi Andy,
>
> After trying what you told me, I'm able now to load a file with quads. But
> now it's impossible to copy the content from one Dataset to another one,
> here what I'm trying to do :
>
> VirtDataset vd = new VirtDataset("jdbc:virtuoso://localhost:1111", "dba",
> "dba");
> DatasetGraph vdg = vd.asDatasetGraph();
> DatasetGraph dg = RDFDataMgr.loadDatasetGraph("data.nq", Lang.NQUADS);
> Iterator<Node> nodeIt = dg.listGraphNodes();
>
> while (nodeIt.hasNext()) {
> Node node = nodeIt.next();
> Graph graph = dg.getGraph(node);
>
> vdg.addGraph(node, graph);
> }
>
> RDFDataMgr.write(System.out, vdg, RDFFormat.NQUADS_UTF8);
>
> When I try to write the final DatasetGraph, I have this exception :
>
> Exception in thread "main" java.lang.UnsupportedOperationException:
> subject cannot be null
> at com.hp.hpl.jena.graph.Triple.<init>(Triple.java:38)
> at
> virtuoso.jena.driver.VirtDataset$VirtDataSetGraph.find(VirtDataset.java:497)
> at org.apache.jena.riot.writer.NQuadsWriter.write(NQuadsWriter.java:91)
> at org.apache.jena.riot.RDFDataMgr.write$(RDFDataMgr.java:1274)
> at org.apache.jena.riot.RDFDataMgr.write(RDFDataMgr.java:1148)
> at
> fr.eurecom.cixty.privacytest.PrivacyDeployment.addData(PrivacyDeployment.java:265)
> at
> fr.eurecom.cixty.privacytest.PrivacyDeployment.main(PrivacyDeployment.java:81)
>
> I also tried this code :
>
> VirtDataset vd = new VirtDataset("jdbc:virtuoso://localhost:1111", "dba",
> "dba");
> RDFDataMgr.read(vd.asDatasetGraph(),
> Files.newInputStream(Paths.get("data.nq")), Lang.NQUADS);
>
> But the same exception occurs.
>
> Anything I did wrongly ?
>
> Best.
>
>
> -------------------------------------------------------------------------------------------------------------------------------
> Julien Plu
>
> PhD Student at Eurecom.
> Personal webpage: http://jplu.developpez.com
> FOAF file : http://jplu.developpez.com/julien
> Email address : [email protected]
> Phone : +33493008200
> Twitter : @julienplu
>
>
> 2014-07-13 2:34 GMT+02:00 Julien Plu <[email protected]>
> :
>
> Ok thank you !
>>
>> I will try with a dataset now.
>>
>>
>> -------------------------------------------------------------------------------------------------------------------------------
>> Julien Plu
>>
>> PhD Student at Eurecom.
>> Personal webpage: http://jplu.developpez.com
>> FOAF file : http://jplu.developpez.com/julien
>> Email address : [email protected]
>> Phone : +33493008200
>> Twitter : @julienplu
>>
>>
>> 2014-07-12 19:48 GMT+02:00 Andy Seaborne <[email protected]>:
>>
>> On 11/07/14 15:31, Julien Plu wrote:
>>>
>>>> Hi,
>>>>
>>>> I try to read a N-QUAD file to load it in a model but unfortunalety
>>>> nothing
>>>> is loaded. Here what I do :
>>>>
>>>> Model m = RDFDataMgr.loadModel("data.nq", Lang.NQUADS);
>>>> RDFDataMgr.write(System.out, m, RDFFormat.NQUADS_UTF8);
>>>>
>>>> At the end nothing is displayed on the console. And I have just one line
>>>> inside my file :
>>>>
>>>> <http://example.com/Toto> <http://xmlns.com/foaf/0.1/name> "Toto" <
>>>> http://example.com> .
>>>>
>>>> Do-I something wrong ? Or is-there another way to do that ?
>>>>
>>>> Thanks in advance for your answer.
>>>>
>>>> Best.
>>>>
>>>> Julien.
>>>>
>>>>
>>> A model is a single graph. It can't hold named graphs.
>>>
>>> If you read N-quads (default and named graphs) into a Model (a single
>>> graph) only the default graph goes into the model.
>>>
>>> Use a dataset to get the set of all graphs in the n-quads files.
>>>
>>> Andy
>>>
>>
>>
>