Add module to parse UCSC DAF file.
[htsworkflow.git] / htsworkflow / util / rdfhelp.py
1 """Helper features for working with librdf
2 """
3 import RDF
4 import types
5
6 xsdNS = RDF.NS("http://www.w3.org/2001/XMLSchema#")
7
8 def blankOrUri(value=None):
9     node = None
10     if value is None:
11         node = RDF.Node()
12     elif type(value) in types.StringTypes:
13         node = RDF.Node(uri_string=value)
14     elif isinstance(value, RDF.Node):
15         node = value
16
17     return node
18
19
20 def toTypedNode(value):
21     if type(value) == types.BooleanType:
22         value_type = xsdNS['boolean'].uri
23         if value:
24             value = u'1'
25         else:
26             value = u'0'
27     elif type(value) in types.StringTypes:
28         value_type = xsdNS['string'].uri
29     else:
30         value_type = None
31         value = unicode(value)
32
33     return RDF.Node(literal=value, datatype=value_type)
34