29 |
import org.fenfire.swamp.impl.*; |
import org.fenfire.swamp.impl.*; |
30 |
import com.hp.hpl.mesa.rdf.jena.model.*; |
import com.hp.hpl.mesa.rdf.jena.model.*; |
31 |
import com.hp.hpl.mesa.rdf.jena.mem.*; |
import com.hp.hpl.mesa.rdf.jena.mem.*; |
|
import com.hp.hpl.mesa.rdf.jena.common.*; |
|
32 |
import java.util.Iterator; |
import java.util.Iterator; |
33 |
|
|
34 |
public class Graphs { |
public class Graphs { |
35 |
public static boolean dbg = false; |
public static boolean dbg = true; |
36 |
public static void p(String s) { System.out.println("swamp.Graphs:: "+s); } |
public static void p(String s) { System.out.println("swamp.Graphs:: "+s); } |
37 |
|
|
|
final private static String urn5 = //"urn5"; |
|
|
"http://www.iana.org/assignments/urn-informal/urn-5"; |
|
|
|
|
38 |
public static Model toModel(ConstGraph g) { |
public static Model toModel(ConstGraph g) { |
39 |
try { |
try { |
40 |
Model m = new ModelMem(); |
Model m = new ModelMem(); |
41 |
for (Iterator i=g.findN_XAA_Iter(); i.hasNext();) { |
for (Iterator i=g.findN_XAA_Iter(); i.hasNext();) { |
42 |
Object o = i.next(); |
Object o = i.next(); |
43 |
//Resource sub = m.createResource("", Nodes.toString(o)); |
Resource sub = m.createResource(Nodes.toString(o)); |
44 |
Resource sub = new ResourceImpl(urn5, Nodes.toString(o), m); |
|
45 |
|
for (Iterator j=g.findN_1XA_Iter(o); j.hasNext();) { |
46 |
for (Iterator j=g.findN_1XA_Iter(o); j.hasNext();) { |
Object p = j.next(); |
47 |
Object p = j.next(); |
|
48 |
Property prop = m.createProperty(urn5, Nodes.toString(p)); |
String s0 = Nodes.toString(p); |
49 |
|
int i0 = s0.lastIndexOf(':')+1; |
50 |
for (Iterator k=g.findN_11X_Iter(o,p); k.hasNext();) { |
Property prop = m.createProperty(s0.substring(0, i0), |
51 |
Object q = k.next(); |
s0.substring(i0)); |
52 |
if(q instanceof Literal) { |
|
53 |
if (dbg) p("Literal! : "+ q); |
for (Iterator k=g.findN_11X_Iter(o,p); k.hasNext();) { |
54 |
|
Object q = k.next(); |
55 |
|
if(q instanceof Literal) { |
56 |
|
p("Literal! : "+ q); |
57 |
String s = ((Literal)q).getTextString(); |
String s = ((Literal)q).getTextString(); |
58 |
sub.addProperty(prop, s); |
sub.addProperty(prop, s); |
59 |
} else { |
} else { |
60 |
if (dbg) p("Resource! : "+ q); |
p("Resource! : "+ q); |
61 |
//Resource ob = m.createResource("", Nodes.toString(q)); |
Resource ob = m.createResource(Nodes.toString(q)); |
62 |
Resource ob = new ResourceImpl(urn5, Nodes.toString(q), m); |
sub.addProperty(prop, o); |
63 |
sub.addProperty(prop, ob); |
} |
64 |
} |
} |
65 |
} |
} |
66 |
} |
} |
67 |
} |
return m; |
68 |
if (dbg) m.write(new java.io.PrintWriter(System.out)); |
} catch(Exception e) { |
69 |
return m; |
throw new Error("Exception converting graph "+e); |
70 |
} catch(Exception e) { |
} |
|
throw new Error("Exception converting graph "+e); |
|
|
} |
|
71 |
} |
} |
72 |
|
|
73 |
public static Graph toGraph(Model m) { |
public static Graph toGraph(Model m) { |
74 |
try { |
try { |
75 |
if (dbg) { |
if (dbg) { |
76 |
p("toGraph!"); |
p("toGraph!"); |
77 |
StmtIterator j=m.listStatements(); |
StmtIterator j=m.listStatements(); |
78 |
while(j.hasNext()) { |
while(j.hasNext()) { |
79 |
p("And there are: "); |
p("And there are: "+ |
80 |
p(" "+ j.next() ); |
((Statement)j.next()).getString() ); |
81 |
} |
} |
|
p("ok?!"); |
|
82 |
} |
} |
83 |
|
|
84 |
Graph g = new HashGraph(); |
Graph g = new HashGraph(); |
85 |
StmtIterator i=m.listStatements(); |
StmtIterator i=m.listStatements(); |
86 |
while (i.hasNext()) { |
while (i.hasNext()) { |
87 |
Statement s = i.next(); |
Statement s = i.next(); |
88 |
Object sub = Nodes.get(s.getSubject().toString()); |
Object sub = Nodes.get(s.getSubject().toString()); |
89 |
Object pred = Nodes.get(s.getPredicate().toString()); |
Object pred = Nodes.get(s.getPredicate().toString()); |
90 |
if(s.getObject() instanceof com.hp.hpl.mesa.rdf.jena.model.Literal) { |
System.out.println("PRED: '"+s.getPredicate().toString()+"'"); |
91 |
Literal ob = Nodes.getStringLiteral(s.getString()); |
if(s.getObject() instanceof com.hp.hpl.mesa.rdf.jena.model.Literal) { |
92 |
} else { |
Literal ob = Nodes.getStringLiteral(s.getString()); |
|
Object ob = Nodes.get(s.getObject().toString()); |
|
93 |
g.add(sub, pred, ob); |
g.add(sub, pred, ob); |
94 |
} |
if(!g.contains(sub,pred,ob)) throw new Error(); |
95 |
} |
} else { |
96 |
return g; |
Object ob = Nodes.get(s.getObject().toString()); |
97 |
} catch(Exception e) { |
g.add(sub, pred, ob); |
98 |
throw new Error("Exception converting graph" + e); |
if(!g.contains(sub,pred,ob)) throw new Error(); |
99 |
} |
} |
100 |
|
} |
101 |
|
return g; |
102 |
|
} catch(Exception e) { |
103 |
|
throw new Error("Exception converting graph"); |
104 |
|
} |
105 |
} |
} |
106 |
} |
} |