Parsers

RDFLibParser

Bases: BaseParser

Base class for RDF parsers.

Derive from this class to create a parser for a particular RDF serialization format such as JSON-LD. Subclasses need not define any methods, but should define two static attributes.

The first attribute is facing the Django REST Framework side of the equation: media_type (the MIME type). This is used in content negotiation.

The other attribute is rdflib_args, which must be a dictionary and which should list all named arguments to Graph.parse. At the very least, this should include the format parameter, which determines the serialization format.

Source code in rdf/parsers.py
class RDFLibParser(BaseParser):
    """ Base class for RDF parsers.

    Derive from this class to create a parser for a particular RDF
    serialization format such as JSON-LD. Subclasses need not define
    any methods, but should define two static attributes.

    The first attribute is facing the Django REST Framework side of
    the equation: `media_type` (the MIME type). This is used in
    content negotiation.

    The other attribute is `rdflib_args`, which must be a dictionary
    and which should list all named arguments to Graph.parse. At the
    very least, this should include the `format` parameter, which
    determines the serialization format.
    """
    def parse(self, stream, media_type=None, parser_context=None):
        graph = Graph()
        graph.parse(data=stream.read(), **self.rdflib_args)
        return graph