Package RDFClosure :: Module XsdDatatypes
[hide private]
[frames] | no frames]

Source Code for Module RDFClosure.XsdDatatypes

 1  #!/d/Bin/Python/python.exe 
 2  # -*- coding: utf-8 -*- 
 3  # 
 4  """ 
 5  Lists of XSD datatypes and their mutual relationships 
 6   
 7  @requires: U{RDFLib<https://github.com/RDFLib/rdflib>}, 4.0.0 and higher 
 8  @license: This software is available for use under the U{W3C Software License<http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231>} 
 9  @organization: U{World Wide Web Consortium<http://www.w3.org>} 
10  @author: U{Ivan Herman<a href="http://www.w3.org/People/Ivan/">} 
11   
12  """ 
13   
14  __author__  = 'Ivan Herman' 
15  __contact__ = 'Ivan Herman, ivan@w3.org' 
16  __license__ = u'W3C® SOFTWARE NOTICE AND LICENSE, http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231' 
17   
18  # noinspection PyPep8Naming 
19  from .RDFS import RDFNS as ns_rdf 
20  from .RDFS import Literal 
21  from .RDFS import XMLLiteral 
22  from .RDFS import HTMLLiteral 
23  from .RDFS import LangString 
24   
25  import rdflib 
26  # noinspection PyPep8Naming 
27  from rdflib.namespace   import XSD as ns_xsd 
28   
29  #: The basic XSD types used everywhere; this means not the complete set of day/month types 
30  _Common_XSD_Datatypes = [ 
31          ns_xsd['integer'], ns_xsd['decimal'], ns_xsd['nonNegativeInteger'], ns_xsd['nonPositiveInteger'], 
32          ns_xsd['negativeInteger'], ns_xsd['positiveInteger'], ns_xsd['long'], ns_xsd['int'], ns_xsd['short'], 
33          ns_xsd['byte'], ns_xsd['unsignedLong'], ns_xsd['unsignedInt'], ns_xsd['unsignedShort'], 
34          ns_xsd['unsignedByte'], ns_xsd['float'], ns_xsd['double'], ns_xsd['string'], ns_xsd['normalizedString'], 
35          ns_xsd['token'], ns_xsd['language'], ns_xsd['Name'], ns_xsd['NCName'], ns_xsd['NMTOKEN'], 
36          ns_xsd['boolean'], ns_xsd['hexBinary'], ns_xsd['base64Binary'], ns_xsd['anyURI'], 
37          ns_xsd['dateTimeStamp'], ns_xsd['dateTime'], ns_xsd['time'], ns_xsd['date'], 
38          Literal, XMLLiteral, HTMLLiteral, LangString 
39  ] 
40   
41  #: RDFS Datatypes: the basic ones plus the complete set of day/month ones 
42  RDFS_Datatypes   = _Common_XSD_Datatypes + [ns_xsd['gYearMonth'], ns_xsd['gMonthDay'], ns_xsd['gYear'], ns_xsd['gDay'], ns_xsd['gMonth']] 
43   
44  #: OWL RL Datatypes: the basic ones plus plain literal 
45  OWL_RL_Datatypes = _Common_XSD_Datatypes + [ns_rdf['PlainLiteral']] 
46   
47  #: XSD Datatype subsumptions 
48  _Common_Datatype_Subsumptions = { 
49          ns_xsd['dateTimeStamp']                 : [ns_xsd['dateTime']], 
50          ns_xsd['integer']                               : [ns_xsd['decimal']], 
51          ns_xsd['long']                                  : [ns_xsd['integer'], ns_xsd['decimal']], 
52          ns_xsd['int']                                   : [ns_xsd['long'], ns_xsd['integer'], ns_xsd['decimal']], 
53          ns_xsd['short']                                 : [ns_xsd['int'], ns_xsd['long'], ns_xsd['integer'], ns_xsd['decimal']], 
54          ns_xsd['byte']                                  : [ns_xsd['short'], ns_xsd['int'], ns_xsd['long'], ns_xsd['integer'], ns_xsd['decimal']], 
55   
56          ns_xsd['nonNegativeInteger']    : [ns_xsd['integer'], ns_xsd['decimal']], 
57          ns_xsd['positiveInteger']               : [ns_xsd['nonNegativeInteger'], ns_xsd['integer'], ns_xsd['decimal']], 
58          ns_xsd['unsignedLong']                  : [ns_xsd['nonNegativeInteger'], ns_xsd['integer'], ns_xsd['decimal']], 
59          ns_xsd['unsignedInt']                   : [ns_xsd['unsignedLong'], ns_xsd['nonNegativeInteger'], ns_xsd['integer'], ns_xsd['decimal']], 
60          ns_xsd['unsignedShort']                 : [ns_xsd['unsignedInt'], ns_xsd['unsignedLong'], ns_xsd['nonNegativeInteger'], ns_xsd['integer'], ns_xsd['decimal']], 
61          ns_xsd['unsignedByte']                  : [ns_xsd['unsignedShort'], ns_xsd['unsignedInt'], ns_xsd['unsignedLong'], ns_xsd['nonNegativeInteger'], ns_xsd['integer'], ns_xsd['decimal']], 
62   
63          ns_xsd['nonPositiveInteger']    : [ns_xsd['integer'], ns_xsd['decimal']], 
64          ns_xsd['negativeInteger']               : [ns_xsd['nonPositiveInteger'], ns_xsd['integer'], ns_xsd['decimal']], 
65   
66          ns_xsd['normalizedString']              : [ns_xsd["string"] ], 
67          ns_xsd['token']                                 : [ns_xsd['normalizedString'], ns_xsd["string"]], 
68          ns_xsd['language']                              : [ns_xsd['token'], ns_xsd['normalizedString'], ns_xsd["string"]], 
69          ns_xsd['Name']                                  : [ns_xsd['token'], ns_xsd['normalizedString'], ns_xsd["string"]], 
70          ns_xsd['NCName']                                : [ns_xsd['Name'], ns_xsd['token'], ns_xsd['normalizedString'], ns_xsd["string"]], 
71          ns_xsd['NMTOKEN']                               : [ns_xsd['Name'], ns_xsd['token'], ns_xsd['normalizedString'], ns_xsd["string"]], 
72  } 
73   
74  #: RDFS Datatype subsumptions: at the moment, there is no extra to XSD 
75  RDFS_Datatype_Subsumptions      = _Common_Datatype_Subsumptions 
76   
77  #: OWL Datatype subsumptions: at the moment, there is no extra to XSD 
78  OWL_Datatype_Subsumptions       = _Common_Datatype_Subsumptions 
79