@@ -67,6 +67,19 @@ def render(self, data, media_type=None, renderer_context=None):
67
67
return data
68
68
69
69
70
+ class JSONLDRenderer (renderers .BaseRenderer ):
71
+ """
72
+ Custom renderer for returning JSON-LD data.
73
+ """
74
+ media_type = 'application/ld+json'
75
+ format = 'json-ld'
76
+ charset = 'utf8'
77
+ render_style = 'text'
78
+
79
+ def render (self , data , media_type = None , renderer_context = None ):
80
+ return data
81
+
82
+
70
83
class ProvnRenderer (renderers .BaseRenderer ):
71
84
"""
72
85
Custom renderer for returning PROV-N data (as defined in https://www.w3.org/TR/2013/REC-prov-n-20130430/).
@@ -95,27 +108,32 @@ def render(self, data, media_type=None, renderer_context=None):
95
108
96
109
class ProvReportView (views .APIView ):
97
110
"""
98
- API view for returning a PROV report for a DataProduct.
111
+ ***The provenance report for a `DataProduct`.***
112
+
113
+ The provenance report can be generated as `JSON`, `JSON-LD`, `XML` or `PROV-N`.
114
+ Optionally `JPEG` and `SVG` versions of the provenance may be available.
115
+
116
+ ### Query parameters:
117
+
118
+ `attributes` (optional): A boolean, when `True` (default) show additional
119
+ attributes of the objects on the image
99
120
100
- This report can be returned as JSON (default) or XML or PROV-N using the custom
101
- renderers. In addition if GraphViz is installed then JPEG and SVG renderers are also
102
- available.
121
+ `aspect_ratio` (optional): A float used to define the ratio for the `JPEG` and
122
+ `SVG` images. The default is 0.71, which is equivalent to A4 landscape.
103
123
104
- This method makes use of the following optional query parameters:
105
- aspect_ratio: a float used to define the ratio for images
106
- dpi: a float used to define the dpi for images
107
- show_attributes: a boolean, shows attributes of elements when True
124
+ `dpi` (optional): A float used to define the dpi for the `JPEG` and `SVG` images
108
125
109
126
"""
110
127
try :
111
128
Dot (prog = 'dot' ).create ()
112
129
# GraphViz is installed so the JPEG and SVG renderers are made available.
113
130
renderer_classes = [renderers .BrowsableAPIRenderer , renderers .JSONRenderer ,
114
- JPEGRenderer , SVGRenderer , XMLRenderer , ProvnRenderer ]
131
+ JSONLDRenderer , JPEGRenderer , SVGRenderer , XMLRenderer ,
132
+ ProvnRenderer ]
115
133
except FileNotFoundError :
116
134
# GraphViz is not installed so the JPEG and SVG renderers are NOT available.
117
135
renderer_classes = [renderers .BrowsableAPIRenderer , renderers .JSONRenderer ,
118
- XMLRenderer , ProvnRenderer ]
136
+ JSONLDRenderer , XMLRenderer , ProvnRenderer ]
119
137
120
138
def get (self , request , pk ):
121
139
data_product = get_object_or_404 (models .DataProduct , pk = pk )
0 commit comments