namespaces.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import rdflib
  2. from rdflib import Graph
  3. from rdflib.namespace import Namespace, NamespaceManager
  4. from lakesuperior.configparser import config
  5. # Core namespace prefixes. These add to and override any user-defined prefixes.
  6. # @TODO Some of these have been copy-pasted from FCREPO4 and may be deprecated.
  7. core_namespaces = {
  8. 'authz' : Namespace('http://fedora.info/definitions/v4/authorization#'),
  9. 'cnt' : Namespace('http://www.w3.org/2011/content#'),
  10. 'dc' : rdflib.namespace.DC,
  11. 'dcterms' : namespace.DCTERMS,
  12. 'ebucore' : Namespace('http://www.ebu.ch/metadata/ontologies/ebucore/ebucore#'),
  13. 'fedora' : Namespace('http://fedora.info/definitions/v4/repository#'),
  14. 'fedoraconfig' : Namespace('http://fedora.info/definitions/v4/config#'), # fcrepo =< 4.7
  15. 'gen' : Namespace('http://www.w3.org/2006/gen/ont#'),
  16. 'iana' : Namespace('http://www.iana.org/assignments/relation/'),
  17. 'ldp' : Namespace('http://www.w3.org/ns/ldp#'),
  18. 'owl' : rdflib.namespace.OWL,
  19. 'premis' : Namespace('http://www.loc.gov/premis/rdf/v1#'),
  20. 'rdf' : rdflib.namespace.RDF,
  21. 'rdfs' : rdflib.namespace.RDFS,
  22. 'res' : Namespace('http://definitions.artic.edu/lake/resource#'),
  23. 'snap' : Namespace('http://definitions.artic.edu/lake/snapshot#'),
  24. 'webac' : Namespace('http://www.w3.org/ns/auth/acl#'),
  25. 'xml' : Namespace('http://www.w3.org/XML/1998/namespace'),
  26. 'xsd' : rdflib.namespace.XSD,
  27. 'xsi' : Namespace('http://www.w3.org/2001/XMLSchema-instance'),
  28. }
  29. ns_collection = config['namespaces'][:]
  30. ns_collection.update(core_namespaces)
  31. ns_mgr = NamespaceManager(Graph())
  32. ns_pfx_sparql = dict()
  33. # Collection of prefixes in a dict.
  34. for ns,uri in ns_collection.items():
  35. ns_mgr.bind(ns, uri, override=False)
  36. #ns_pfx_sparql[ns] = 'PREFIX {}: <{}>'.format(ns, uri)
  37. # Prefix declarations formatted for SPARQL queries.
  38. #pfx_decl='\n'.join(ns_pfx_sparql.values())