Hi all,
I'm trying to create a small program which convert an RDF file into quads
adding context.
I've been looking at the examples in the API and some information on
Google, but I don't know exactly what I'm doing wrong.
I create my quads in the following way:
ArrayList<Quad> quads = new ArrayList<Quad>();
quads.add(new Quad(this.assertionNode, this.rdfTypeNode,
this.nanoPubSchemaAssertionNode, this.nanoPubNode));
quads.add(new Quad(this.nanoPubNode, this.purlCoverageNode,
getNodeFromString(coverageContent), this.provenanceNode));
The "nodes" are created using NodeFactory. Just an example with the nodes
used in the example presented before:
this.assertionNode = NodeFactory.createLiteral("
http://biordf.org:8080/cgi-bin/services/retrieveProteomeProtiens_sync.pl/assertion/6bfba5c26cedaa3caf460d36d25ceef0
");
this.nanoPubNode = NodeFactory.createLiteral("
http://biordf.org:8080/cgi-bin/services/retrieveProteomeProtiens_sync.pl/nanopublication/6bfba5c26cedaa3caf460d36d25ceef0
");
this.provenanceNode = NodeFactory.createLiteral("
http://biordf.org:8080/cgi-bin/services/retrieveProteomeProtiens_sync.pl/provenance/1380725119158
");
etc.
Once I've created all my structure, I try to print it on screen and store
it on a .nq file using this code:
Dataset ds = TDBFactory.createDataset();
DatasetGraph dsg = ds.asDatasetGraph();
for (int i = 0; i < quads.size(); i++) {
dsg.add(quads.get(i));
}
RDFDataMgr.write(new FileOutputStream(new File("output/nquad2.nq")),
dsg, RDFFormat.NQUADS);
System.out.println(dsg.toString());
The output that I get in the console is the following:
(dataset
(graph)
(graph "
http://biordf.org:8080/cgi-bin/services/retrieveProteomeProtiens_sync.pl/assertion/6bfba5c26cedaa3caf460d36d25ceef0
"
(triple "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" "
http://www.nanopub.org/nschema#Assertion" "
http://biordf.org:8080/cgi-bin/services/retrieveProteomeProtiens_sync.pl/nanopublication/6bfba5c26cedaa3caf460d36d25ceef0
")
)
(graph "
http://biordf.org:8080/cgi-bin/services/retrieveProteomeProtiens_sync.pl/nanopublication/6bfba5c26cedaa3caf460d36d25ceef0
"
(triple "http://purl.org/dc/elements/1.1/description" "\"Output from
SADI Service\"@en" "
http://biordf.org:8080/cgi-bin/services/retrieveProteomeProtiens_sync.pl/provenance/1380725119158
")
))
Which, it is the one that "I desire". However, in the file, I've the
following:
"http://www.w3.org/1999/02/22-rdf-syntax-ns#type" "
http://www.nanopub.org/nschema#Assertion" "
http://biordf.org:8080/cgi-bin/services/retrieveProteomeProtiens_sync.pl/nanopublication/6bfba5c26cedaa3caf460d36d25ceef0"
"
http://biordf.org:8080/cgi-bin/services/retrieveProteomeProtiens_sync.pl/assertion/6bfba5c26cedaa3caf460d36d25ceef0"
.
"http://purl.org/dc/elements/1.1/description" "\"Output from SADI
Service\"@en" "
http://biordf.org:8080/cgi-bin/services/retrieveProteomeProtiens_sync.pl/provenance/1380725119158"
"
http://biordf.org:8080/cgi-bin/services/retrieveProteomeProtiens_sync.pl/nanopublication/6bfba5c26cedaa3caf460d36d25ceef0"
.
My questions are:
1) Why is the order of the nodes different? I mean, I expect to have:
context, s, p, o (like when it is printed)
2) Why, even using RDFFormat.NQUADS the serialization is between " " and
not between <> ?
Probably I'm missing something ...
Thanks for your time.
Cheers,
Alejandro
--
Dr. Alejandro Rodríguez González - PhD
Bioinformatics at Centre for Plant Biotechnology and Genomics UPM-INIA
Polytechnic University of Madrid
http://www.alejandrorg.com
Phone: +34 914524900 . Ext: 25550
*Once the game is over, the king and the pawn go back in the same box. -
Italian proverb*