/[fenfire]/fenfire/org/fenfire/swamp/writer.py
ViewVC logotype

Diff of /fenfire/org/fenfire/swamp/writer.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.6 by benja, Fri Sep 5 11:56:18 2003 UTC revision 1.7 by tjl, Sat Sep 6 12:46:54 2003 UTC
# Line 18  Line 18 
18  # MA  02111-1307  USA  # MA  02111-1307  USA
19  #  #
20    
21    from __future__ import nested_scopes
22    
23  """  """
24  An RDF/XML writer for Swamp ConstGraphs.  An RDF/XML writer for Swamp ConstGraphs.
# Line 49  def write(graph, filename): Line 50  def write(graph, filename):
50      Write a ConstGraph to a file, given the filename.      Write a ConstGraph to a file, given the filename.
51      """      """
52    
53      out = ""      out = []
54        def w(s):
55            """Add a string to the output.
56            """
57            out.append(s)
58            
59      (triples, namespace_uris) = readTriples(graph)      (triples, namespace_uris) = readTriples(graph)
60    
# Line 57  def write(graph, filename): Line 62  def write(graph, filename):
62      prefixes = uriByPrefix.keys()      prefixes = uriByPrefix.keys()
63      prefixes.sort()      prefixes.sort()
64    
65      out = out + ("<rdf:RDF\n")      w("<rdf:RDF\n")
66      for prefix in prefixes:      for prefix in prefixes:
67          out = out + ("  xmlns:%s='%s'\n" % (prefix, escape(uriByPrefix[prefix])))          w("  xmlns:%s='%s'\n" % (prefix, escape(uriByPrefix[prefix])))
68      out = out + (">\n\n")      w(">\n\n")
69    
70      subjects = triples.keys(); subjects.sort()      subjects = triples.keys(); subjects.sort()
71      for subject in subjects:      for subject in subjects:
72          out = out + ("  <rdf:Description rdf:about='%s'>\n" % escape(subject))          w("  <rdf:Description rdf:about='%s'>\n" % escape(subject))
73          properties = triples[subject].keys(); properties.sort()          properties = triples[subject].keys(); properties.sort()
74          for property in properties:          for property in properties:
75              (namespace_uri, local_name) = property              (namespace_uri, local_name) = property
# Line 72  def write(graph, filename): Line 77  def write(graph, filename):
77              objects = triples[subject][property]; objects.sort()              objects = triples[subject][property]; objects.sort()
78              for (object_type, object_str) in objects:              for (object_type, object_str) in objects:
79                  if object_type == URI:                  if object_type == URI:
80                      out = out + ("    <%s rdf:resource='%s'/>\n" %                      w("    <%s rdf:resource='%s'/>\n" %
81                                   (prop_tag, escape(object_str)))                                   (prop_tag, escape(object_str)))
82                  else:                  else:
83                      out = out + ("    <%s>%s</%s>\n" %                      w("    <%s>%s</%s>\n" %
84                                   (prop_tag, escape(object_str), prop_tag))                                   (prop_tag, escape(object_str), prop_tag))
85    
86          out = out + ("  </rdf:Description>\n\n")          w("  </rdf:Description>\n\n")
87                                            
88    
89      out = out + ("</rdf:RDF>\n")      w("</rdf:RDF>\n")
90      file = open(filename, 'w')      file = open(filename, 'w')
91      file.write(out)      for str in out:
92            file.write(str)
93      file.close()      file.close()
94    
95    

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26