ldp_rs.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import logging
  2. from rdflib import Graph
  3. from lakesuperior import env
  4. from lakesuperior.dictionaries.namespaces import ns_collection as nsc
  5. from lakesuperior.model.ldp.ldpr import RES_UPDATED, Ldpr
  6. logger = logging.getLogger(__name__)
  7. class LdpRs(Ldpr):
  8. """
  9. LDP-RS (LDP RDF source).
  10. https://www.w3.org/TR/ldp/#ldprs
  11. """
  12. def __init__(self, *args, **kwargs):
  13. """
  14. Extends :meth:`lakesuperior.model.Ldpr.__init__` by adding LDP-RS
  15. specific parameters.
  16. """
  17. super().__init__(*args, **kwargs)
  18. self.base_types = super().base_types | {
  19. nsc['ldp'].RDFSource,
  20. }
  21. class Ldpc(LdpRs):
  22. """LDPC (LDP Container)."""
  23. def __init__(self, *args, **kwargs):
  24. super().__init__(*args, **kwargs)
  25. self.base_types |= {
  26. nsc['fcrepo'].Container,
  27. nsc['ldp'].Container,
  28. }
  29. class LdpBc(Ldpc):
  30. """LDP-BC (LDP Basic Container)."""
  31. def __init__(self, *args, **kwargs):
  32. super().__init__(*args, **kwargs)
  33. self.base_types |= {
  34. nsc['ldp'].BasicContainer,
  35. }
  36. class LdpDc(Ldpc):
  37. """LDP-DC (LDP Direct Container)."""
  38. def __init__(self, *args, **kwargs):
  39. super().__init__(*args, **kwargs)
  40. self.base_types |= {
  41. nsc['ldp'].DirectContainer,
  42. }
  43. class LdpIc(Ldpc):
  44. """LDP-IC (LDP Indirect Container)."""
  45. def __init__(self, *args, **kwargs):
  46. super().__init__(*args, **kwargs)
  47. self.base_types |= {
  48. nsc['ldp'].IndirectContainer,
  49. }