Publications Office of the EU
Documentation - Cellar
DisplayCustomHeader
documentation content

Documentation

Cellar end-user manual

An end-user manual is available for more technical users. 

Documentation for developers

A short guide for developers looking to harvest data from Cellar is available.

 

Cellar code

You can download the Cellar code.

Cellar training material

You can download the postman query collection of the Cellar training and the instructions.

You can download the slides of the Cellar training:

  • Session 1 about general picture of Cellar (presentation of the unit, architecture, data workflow, modeling, statistics, services) 
  • Session 2 about public interfaces of Cellar: demos of APIs and Virtuoso endpoint.

Research papers

Some research papers have also been published in the context of Cellar.

  • Francesconi, Enrico. (2018). On the Future of Legal Publishing Services in the Semantic Web. Future Internet. 10. 48. 10.3390/fi10060048. 
  • Schmitz, P., Francesconi, E., Batouche, B., Landercy, S.P., Touly, V. (2017). Ontological Models of Legal Contents and Users’ Activities for EU e-Participation Services. In: Kő, A., Francesconi, E. (eds) Electronic Government and the Information Systems Perspective. EGOVIS 2017. Lecture Notes in Computer Science(), vol 10441. Springer, Cham. https://doi.org/10.1007/978-3-319-64248-2_8

See more

Documentation title

Documentation

Documentation cellar training

Cellar training:

You can download the slides of the Cellar training.

Documentation code

Cellar code

You can download the Cellar code.

Cellar training

You can download the slides of the Cellar training.

Documentation research papers

Research papers

Some research papers have also been published in the context of Cellar.

  • Francesconi, Enrico. (2018). On the Future of Legal Publishing Services in the Semantic Web. Future Internet. 10. 48. 10.3390/fi10060048. 
  • Schmitz, P., Francesconi, E., Landercy, S. P., Batouche, B., & Touly, V. (2017, June). A knowledge organization system for e-participation in law-making. In Proceedings of the 16th edition of the International Conference on Articial Intelligence and Law (pp. 245-248).

Documentation end-user

Cellar end-user manual:

An end-user manual is available for more technical users. 
                                

Documentation booklet

Cellar booklet

A booklet is available to help user querying Cellar.

Cellar end-user manual

An end-user manual is available for more technical users. 

MainSearch
More
Asset Publisher
An error occurred while processing the template.
The following has evaluated to null or missing:
==> urlJsonBannerImg  [in template "10157#10197#10438107" at line 46, column 141]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: ${urlJsonBannerImg}  [in template "10157#10197#10438107" at line 46, column 139]
----
1<#assign liferay_ui = PortletJspTagLibs["/META-INF/liferay-ui.tld"] />  
2 
3<div class="customCarousel2 card mb-3" > 
4  <div class="card-body"> 
5 
6 <div class="opp2017carousel"> 
7	<div id="opp2017carousel" class="carousel slide rounded" data-ride="carousel" data-pause="hover" data-interval="5000"> 
8		 
9		<div class="carousel-inner"> 
10		 
11			<div id="<@portlet.namespace />carousel" class="eu-pub-carousel"> 
12			<#if entries?has_content> 
13				<#list entries as curEntry> 
14				<#assign curEntry = curEntry /> 
15				<#assign assetRenderer = curEntry.getAssetRenderer() /> 
16				<#assign className = assetRenderer.getClassName() /> 
17				<#assign docXml = saxReaderUtil.read(curEntry.getAssetRenderer().getArticle().getContent()) /> 
18 
19				<#assign rootElement = docXml.getRootElement() /> 
20				<#assign availableLocales = rootElement.attribute("available-locales").getText() /> 
21				<#assign defaultLocale = rootElement.attribute("default-locale").getText() /> 
22				 
23				<#if (availableLocales?contains(locale)) > 
24					<#assign bannerImg = docXml.valueOf("//dynamic-element[@name='Banner']/dynamic-content[@language-id='"+locale+"']/text()") /> 
25				<#else> 
26					<#assign bannerImg = docXml.valueOf("//dynamic-element[@name='Banner']/dynamic-content[@language-id='"+defaultLocale+"']/text()") /> 
27				</#if> 
28				 
29				<#assign jsonBannerImg = jsonFactoryUtil.createJSONObject(bannerImg)> 
30				<#if bannerImg?? && bannerImg != "" > 
31				<#assign urlJsonBannerImg = "/documents/"+ jsonBannerImg.groupId +"/" +jsonBannerImg.fileEntryId +"/"+ jsonBannerImg.name +"/"+jsonBannerImg.uuid > 
32				</#if> 
33				 
34				<#if (availableLocales?contains(locale)) > 
35					<#assign linkURL = docXml.valueOf("//dynamic-element[@name='Link']/dynamic-content[@language-id='"+locale+"']/text()") /> 
36					<#assign title = docXml.valueOf("//dynamic-element[@name='Title']/dynamic-content[@language-id='"+locale+"']/text()") /> 
37					<#assign description = docXml.valueOf("//dynamic-element[@name='Description']/dynamic-content[@language-id='"+locale+"']/text()") /> 
38				<#else> 
39					<#assign linkURL = docXml.valueOf("//dynamic-element[@name='Link']/dynamic-content[@language-id='"+defaultLocale+"']/text()") /> 
40					<#assign title = docXml.valueOf("//dynamic-element[@name='Title']/dynamic-content[@language-id='"+defaultLocale+"']/text()") /> 
41					<#assign description = docXml.valueOf("//dynamic-element[@name='Description']/dynamic-content[@language-id='"+defaultLocale+"']/text()") /> 
42				</#if> 
43			 
44					<div class="carousel-item ${(curEntry_index==0)?string('active', '')}"> 
45						<div data-caption="#caption${curEntry_index}"> 
46							<a tabindex="-1" href="${linkURL}" class="b0" aria-hidden="true"><img alt="" src="${urlJsonBannerImg}" style="width: 200px; height: 198px;"></a> 
47 
48							<div class="carousel-caption"> 
49							<h3 class="title-underline"> 
50								<a href="${linkURL}">${title}</a> 
51							</h3> 
52							${description} 
53							</div> 
54						</div> 
55					</div> 
56					 
57				</#list> 
58			</#if> 
59			</div> 
60		</div> 
61		 
62		<a class="left carousel-control" href="#opp2017carousel" tabindex="0" role="button" data-slide="prev"> <span class="glyphicon glyphicon-chevron-left">&nbsp;</span> <span class="sr-only">Previous</span> </a> 
63		<a class="right carousel-control" href="#opp2017carousel" tabindex="0" role="button" data-slide="next"> <span class="glyphicon glyphicon-chevron-right">&nbsp;</span> <span class="sr-only">Next</span> </a> 
64 
65		<div class="card-footer bg-transparent"> 
66		<ol class="carousel-indicators-play" role="none"> 
67		    <li role="button" tabindex="0" class="carousel-play" onclick="$('.carousel').carousel('cycle'); document.querySelector('.carousel-indicators-play .carousel-play').style.display = 'none'; document.querySelector('.carousel-indicators-play .carousel-stop').style.display = 'block';"><span class="sr-only">Carousel</span><span></span>Play</li> 
68		    <li role="button" tabindex="0" class="carousel-stop" onclick="$('.carousel').carousel('pause'); document.querySelector('.carousel-indicators-play .carousel-play').style.display = 'block'; document.querySelector('.carousel-indicators-play .carousel-stop').style.display = 'none';"><span class="sr-only">Carousel</span><span></span>Stop</li> 
69	    </ol> 
70			<ol class="carousel-indicators"> 
71			<#list entries as entry> 
72			<#if entry_index == 0> 
73			    <li data-slide-to="${entry_index}" data-target="#opp2017carousel" class="${(entry_index==0)?string('active', '')}">&nbsp;<button data-slide-to="${entry_index}" aria-label="First slide" data-target="#opp2017carousel" tabindex="0"></li> 
74	        <#else> 
75	            <li data-slide-to="${entry_index}" data-target="#opp2017carousel" class="${(entry_index==0)?string('active', '')}">&nbsp;<button data-slide-to="${entry_index}" aria-label="Go to slide ${entry_index + 1}" data-target="#opp2017carousel" tabindex="0"></li> 
76	        </#if> 
77			</#list> 
78			</ol> 
79		</div> 
80		<div aria-live="polite" aria-atomic="true" class="liveregion visuallyhidden">Item <span class="active">0</span> of <span class="total">0</span></div> 
81	</div> 
82</div> 
83</div> 
84</div> 
85<script> 
86 
87 
88var inputPlayBtnCarusel = document.querySelector('.carousel-indicators-play .carousel-play'); 
89inputPlayBtnCarusel.addEventListener("keyup", function(event) { 
90  if (event.keyCode === 13) { 
91   $('.carousel').carousel('cycle');  
92   document.querySelector('.carousel-indicators-play .carousel-play').style.display = 'none';  
93   document.querySelector('.carousel-indicators-play .carousel-stop').style.display = 'block'; 
94
95}); 
96 
97var inputStopBtnCarusel = document.querySelector('.carousel-indicators-play .carousel-stop'); 
98inputStopBtnCarusel.addEventListener("keyup", function(event) { 
99  if (event.keyCode === 13) { 
100   $('.carousel').carousel('pause');  
101   document.querySelector('.carousel-indicators-play .carousel-play').style.display = 'block';  
102   document.querySelector('.carousel-indicators-play .carousel-stop').style.display = 'none'; 
103
104}); 
105 
106//set accessibility values 
107var activeSlide = document.querySelector('.carousel-indicators li.active').getAttribute('data-slide-to'); 
108var numberOfSlides = document.querySelectorAll('.carousel-indicators li').length; 
109document.querySelector('.liveregion.visuallyhidden span.active').innerHTML = parseInt(activeSlide) + 1; 
110document.querySelector('.liveregion.visuallyhidden span.total').innerHTML = numberOfSlides; 
111 
112// identify an element to observe 
113const elementToObserve = document.querySelector(".carousel-inner"); 
114 
115// create a new instance of `MutationObserver` named `observer`, 
116// passing it a callback function 
117const observer = new MutationObserver(function() { 
118    var activeSlide = document.querySelector('.carousel-indicators li.active').getAttribute('data-slide-to'); 
119    var numberOfSlides = document.querySelectorAll('.carousel-indicators li').length; 
120    document.querySelector('.liveregion.visuallyhidden span.active').innerHTML = parseInt(activeSlide) + 1; 
121    document.querySelector('.liveregion.visuallyhidden span.total').innerHTML = numberOfSlides; 
122}); 
123observer.observe(elementToObserve,  
124 {subtree: true,  
125  childList: true, 
126  attributes: true, 
127  attributeOldValue: true 
128 }); 
129   
130   
131   
132$.fn.carouselHeights = function() { 
133 
134    var items = $(this), //grab all slides 
135        heights = [], //create empty array to store height values 
136        tallest; //create variable to make note of the tallest slide 
137 
138    var normalizeHeights = function() { 
139 
140        items.each(function() { //add heights to array 
141            heights.push($(this).height());  
142        }); 
143        tallest = Math.max.apply(null, heights); //cache largest value 
144        items.each(function() { 
145            $(this).css('min-height',tallest + 'px'); 
146        }); 
147    }; 
148 
149    normalizeHeights(); 
150 
151    $(window).on('resize orientationchange', function () { 
152        //reset vars 
153        tallest = 0; 
154        heights.length = 0; 
155 
156        items.each(function() { 
157            $(this).css('min-height','0'); //reset min-height 
158        });  
159        normalizeHeights(); //run it again  
160    }); 
161 
162}; 
163 
164jQuery(function($){ 
165 
166    $(window).on('load', function(){ 
167        $('.eu-pub-carousel .carousel-item').carouselHeights(); 
168    }); 
169 
170}); 
171</script> 
172<style> 
173 /* from the theme */ 
174  .customCarousel2 .carousel-caption{ 
175    padding: 12px 1.25rem !important; 
176    left: 0; 
177    right: 0; 
178    padding-bottom:unset !important; 
179
180  .customCarousel2 .carousel-caption p { 
181    color: #444444; 
182    text-align: left !important; 
183    font-size: 12px; 
184
185  .customCarousel2 .carousel-caption h3, 
186  .customCarousel2 .carousel-caption h3 a, 
187  .customCarousel2 .carousel-caption a { 
188    color: #444444 !important; 
189    text-align: left !important; 
190    font-size: 12px; 
191    font-weight: bold; 
192
193  .customCarousel2 .carousel-item img { 
194    height: auto !important; /* 180px !important; */ 
195    /* min-height: 150px; * 
196   /* max-width: 350px !important;*/ 
197    width: 100% !important; 
198    /* height: unset !important; */ 
199    vertical-align: middle; 
200    text-align: center; 
201    margin: 10px auto 20px auto; 
202    display: block; 
203
204  .customCarousel2 #opp2017carousel a.carousel-control { 
205    width: 25px; 
206    height: 35px; 
207    color: #fff; 
208    margin-top: 0; 
209    opacity: 1; 
210    text-shadow: 0 1px 0 #003399; 
211    border: none; 
212    background-color: #112250 !important; 
213    top: 90px !important; 
214
215   
216  .customCarousel2 .carousel-item p{ 
217    text-align: center; 
218
219  .customCarousel2 .carousel-caption{ 
220    bottom: unset; 
221
222  .customCarousel2.card .card-footer{ 
223    height: 48px; 
224
225  .customCarousel2.card .card-footer .carousel-indicators{ 
226    bottom: -10px !important; 
227
228 
229  .customCarousel2.card .card-body{ 
230    height: 404px; 
231    padding: 0; 
232
233  .customCarousel2.card .card-body .carousel-inner{ 
234    height: 404px; 
235
236   
237  .customCarousel2.card .card-header{ 
238    background: url("/documents/3938058/0/whatsNewCard.png") no-repeat 10px center; 
239    padding-left: 60px; 
240
241   
242  .customCarousel2 .eu-pub-carousel.carousel-content { 
243    padding-top: 0px; 
244
245  .customCarousel2 .eu-pub-carousel.carousel-content h1 { 
246    padding-left: 30px; 
247
248  .customCarousel2 .eu-pub-carousel.carousel-content .carousel-caption h3{ 
249    margin-bottom: 10px; 
250    font-size: 1.1em; 
251
252  .customCarousel2 .eu-pub-carousel .carousel-item h1 { 
253    display:none; 
254
255 
256  .customCarousel2 .eu-pub-carousel.carousel-content h1 { 
257    padding-left: 0px; 
258
259 
260  .customCarousel2 .carousel-indicators li { 
261    background-color: #444444; 
262    width: 10px; 
263    height: 10px; 
264    border-radius: 50%; 
265
266   
267  .customCarousel2 #opp2017carousel .carousel-control .glyphicon-chevron-left,  
268  .customCarousel2 #opp2017carousel .carousel-control .glyphicon-chevron-right { 
269    top: 35%; 
270
271 
272  .customCarousel2 #opp2017carousel .carousel-control.left,  
273  .customCarousel2 #opp2017carousel .carousel-control.right { 
274    display: block; 
275    height: 100%; 
276    z-index:0; 
277    opacity:0; 
278    background-color:unset !important; 
279
280 
281  .customCarousel2 .opp2017carousel:hover #opp2017carousel .carousel-control.left 
282
283    opacity:0.55; 
284
285 
286  .customCarousel2 .opp2017carousel:hover #opp2017carousel .carousel-control.right 
287
288    opacity:0.55; 
289
290 
291  .customCarousel2 #opp2017carousel a.carousel-control { 
292    width: 25px; 
293    height: 100%; 
294    top: 0 !important; 
295    color: #fff; 
296    margin-top: 0; 
297    border: 0; 
298    text-shadow: unset; 
299    background-color: #112250 !important; 
300    opacity: .55; 
301    filter: alpha(opacity=55); 
302    -ms-filter: "alpha(opacity=55)"; 
303
304 
305  .customCarousel2 #opp2017carousel a.carousel-control { 
306    background-color: unset !important; 
307    opacity: unset !important; 
308    filter: alpha(opacity=55) !important; 
309    -ms-filter: "alpha(opacity=55)" !important; 
310
311  .customCarousel2 #opp2017carousel a.carousel-control .glyphicon{ 
312    display:none; 
313
314  .customCarousel2 #opp2017carousel:hover a.carousel-control .glyphicon{ 
315    background-color: #707996 !important; 
316    display: block; 
317    height: 32px; 
318
319  .customCarousel2 #opp2017carousel:hover a.carousel-control{ 
320    text-decoration: unset; 
321
322 
323  .customCarousel2 #opp2017carousel .carousel-control .glyphicon-chevron-left,  
324  .customCarousel2 #opp2017carousel .carousel-control .glyphicon-chevron-right{ 
325    top:15% !important; 
326
327   
328  @media (min-width: 980px) { 
329    .customCarousel2.card, 
330    .customCarousel2.card{ 
331      min-height: 550px; 
332
333 
334    .customCarousel2.card, 
335    .customCarousel2.card{ 
336      min-height: 655px; 
337
338    .customCarousel2 .card-body .carousel-inner { 
339      height: 550px; 
340
341
342   
343  @media screen and (min-device-width: 769px) and (max-device-width: 990px){ 
344  .customCarousel2 .carousel-indicators-play{ 
345    display: none  !important; 
346
347
348   
349  /* from euVocabularies asset template */ 
350   
351.customCarousel2 .carousel-indicators-play li{ 
352    font-size: 13px; 
353    color: #697188; 
354    cursor: pointer; 
355    position: relative; 
356    margin-left: 20px; 
357    height: 20px; 
358    line-height: 20px; 
359
360.customCarousel2 .carousel-indicators-play{ 
361	bottom: -4px; 
362    left: 0; 
363    top: inherit; 
364    position: absolute; 
365    left: 0; 
366    z-index: 0; 
367    display: flex; 
368    justify-content: center; 
369    padding-left: 0; 
370    margin-left: 1.25rem; 
371    list-style: none; 
372
373 
374.customCarousel2 .carousel-indicators-play .carousel-play{ 
375    display: none; 
376
377.customCarousel2 .carousel-indicators-play .carousel-play span{ 
378	left: -20px; 
379    top: 4px; 
380	position: absolute; 
381	display: block; 
382    border: 0; 
383    background: transparent; 
384    box-sizing: border-box; 
385    width: 0; 
386    height: 11px; 
387    border-color: transparent transparent transparent #697188; 
388    transition: 100ms all ease; 
389    cursor: pointer; 
390    border-style: solid; 
391    border-width: 5px 0 5px 10px; 
392
393.customCarousel2 .carousel-indicators-play .carousel-stop span{ 
394	left: -20px; 
395    top: 4px; 
396	position: absolute; 
397    display: block; 
398    border: 0; 
399    background: transparent; 
400    box-sizing: border-box; 
401    width: 0; 
402    height: 11px; 
403    border-color: #697188; 
404    border-radius: 2px; 
405    cursor: pointer; 
406    border-style: solid; 
407    border-width: 5px 6px 5px 5px; 
408
409.customCarousel2 #opp2017carousel .carousel-indicators { 
410    right: 0px; 
411    justify-content: flex-end; 
412    margin-right: unset; 
413    margin-left: unset; 
414    padding-right: 20px; 
415
416 
417/*----euVoc home 1640 - carousel---*/ 
418/*----to be added in the asset publisher template---*/ 
419.customCarousel2 .portlet-asset-publisher { 
420  height: auto; 
421	/*border-top: 3px solid #112250;*/ 
422
423 
424.customCarousel2.card{ 
425    min-height: unset !important; 
426    box-shadow: none; 
427    margin: unset; 
428	padding:unset; 
429    border: unset !important; 
430	background: unset; 
431
432 
433.customCarousel2 .card-header{ 
434	background: url("data:image/svg+xml,%3Csvg width='37' height='38' viewBox='0 0 37 38' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_970:16894)'%3E%3Cpath d='M25.6568 10.3342C25.8435 10.3843 26.0509 10.3261 26.2335 10.1725C26.4161 10.0189 26.5589 9.78252 26.6305 9.51531L27.1704 7.50033C27.242 7.23313 27.2365 6.957 27.1552 6.7327C27.0738 6.50839 26.9233 6.35429 26.7367 6.30428C26.55 6.25427 26.3426 6.31246 26.16 6.46604C25.9774 6.61962 25.8346 6.85601 25.763 7.12321L25.2231 9.1382C25.1515 9.4054 25.157 9.68153 25.2383 9.90583C25.3197 10.1301 25.4702 10.2842 25.6568 10.3342Z' fill='%23444444'/%3E%3Cpath d='M27.6402 13.7778C27.7373 13.9448 27.9255 14.0497 28.1633 14.0694C28.4011 14.0891 28.669 14.022 28.9081 13.8829L30.7111 12.8337C30.9502 12.6946 31.1409 12.4949 31.2413 12.2784C31.3417 12.0619 31.3435 11.8465 31.2463 11.6795C31.1491 11.5125 30.9609 11.4076 30.7231 11.3879C30.4854 11.3682 30.2175 11.4352 29.9784 11.5744L28.1753 12.6235C27.9362 12.7626 27.7455 12.9624 27.6451 13.1789C27.5448 13.3953 27.543 13.6108 27.6402 13.7778Z' fill='%23444444'/%3E%3Cpath d='M30.1269 18.2201L32.1409 18.7597C32.4079 18.8313 32.684 18.8256 32.9082 18.744C33.1325 18.6624 33.2867 18.5115 33.3368 18.3244C33.3869 18.1374 33.3289 17.9297 33.1754 17.7468C33.022 17.564 32.7858 17.4211 32.5187 17.3495L30.5048 16.8099C30.2377 16.7383 29.9617 16.744 29.7374 16.8256C29.5131 16.9072 29.359 17.0582 29.3089 17.2452C29.2588 17.4322 29.3168 17.64 29.4702 17.8228C29.6236 18.0056 29.8598 18.1485 30.1269 18.2201Z' fill='%23444444'/%3E%3Cpath d='M26.4967 15.3077C25.1626 12.7998 23.4719 10.5153 21.4796 8.52817C19.5961 6.72939 18.015 6.1375 16.9348 6.8057C16.6903 6.96005 16.4779 7.16326 16.3104 7.40306C16.1429 7.64286 16.0238 7.91429 15.9601 8.20099L13.854 16.0612C13.6292 16.8447 13.1227 17.5148 12.4386 17.9337L7.83579 20.725C7.27404 21.0561 6.78002 21.4979 6.3825 22.0245C5.98497 22.5512 5.69187 23.1523 5.52026 23.7927C5.34865 24.4332 5.30196 25.1003 5.38289 25.7551C5.46383 26.41 5.67078 27.0396 5.99171 27.6072C6.30407 28.18 6.72504 28.6812 7.23012 29.0817C7.7352 29.4821 8.3143 29.7738 8.93372 29.9398C9.55315 30.1058 10.2005 30.1427 10.8382 30.0484C11.4758 29.9542 12.091 29.7306 12.6479 29.3907L12.8087 29.3044L13.2593 30.0981C13.4614 30.4702 13.9911 31.3882 14.1937 31.7446C14.4248 32.1525 14.6145 32.4862 14.8085 32.828C15.4322 32.474 16.8479 31.6944 17.5798 31.2554C18.3117 30.8164 20.4028 29.6534 20.4028 29.6534C20.4028 29.6534 19.8023 28.5952 19.417 27.8866C19.1739 27.4878 18.986 27.1564 18.7771 26.7884L18.4764 26.229C18.8351 26.1918 19.1963 26.2186 19.5441 26.3081L27.4381 28.4232C27.5237 28.4431 27.6126 28.4449 27.6995 28.4286C28.0786 28.4674 28.462 28.3796 28.7929 28.178C29.8932 27.5282 30.1794 25.8061 29.6316 23.2264C28.9749 20.4354 27.9185 17.7669 26.4967 15.3077ZM17.5141 7.86678C17.7486 7.76681 18.0092 7.75835 18.2463 7.843C19.1506 8.18465 19.9663 8.73033 20.6344 9.4405C22.5299 11.343 24.1468 13.5194 25.4359 15.9035C26.7772 18.2563 27.7814 20.8001 28.4181 23.4577C28.8886 25.719 28.5676 26.8236 28.1617 27.0772C28.0465 27.1311 27.9224 27.1609 27.7966 27.165C27.6709 27.1691 27.546 27.1473 27.4294 27.1009C25.9004 26.4141 24.5743 25.3326 23.5777 23.9595C23.2096 23.5115 22.8681 23.0576 22.5383 22.6069C22.7603 22.247 22.9322 21.8573 23.0487 21.4496C23.2553 20.7013 23.2906 19.9167 23.1518 19.1579C23.0129 18.3991 22.7038 17.687 22.2489 17.0779C21.794 16.4688 21.2057 15.9795 20.5307 15.6487C19.8558 15.318 19.1126 15.1548 18.3601 15.1722C18.1613 14.653 17.954 14.1187 17.7649 13.5633C17.1358 11.9711 16.9165 10.2326 17.1279 8.51388C17.1476 8.38572 17.1919 8.26247 17.2582 8.15135C17.3246 8.04023 17.4115 7.94349 17.5141 7.86678ZM21.7923 21.5141C21.2534 20.7227 20.7379 19.9375 20.2632 19.0468C19.7884 18.156 19.3624 17.3172 18.9726 16.4363C19.4847 16.5053 19.9746 16.6863 20.4098 16.9672C20.845 17.2482 21.2153 17.6225 21.4959 18.0653C21.7766 18.508 21.9612 19.0089 22.0373 19.5345C22.1134 20.0601 22.0794 20.5983 21.9374 21.113C21.8953 21.2699 21.8396 21.3844 21.7923 21.5141ZM7.0356 26.9811C6.79058 26.5536 6.6321 26.0786 6.5695 25.5839C6.5069 25.0893 6.54147 24.5851 6.67115 24.1011C6.80083 23.6171 7.023 23.1632 7.32453 22.7661C7.62607 22.369 8.00085 22.0369 8.42675 21.7892L12.1592 19.663C11.9752 21.0239 12.2311 22.4019 12.8873 23.5836C13.5436 24.7653 14.5635 25.685 15.7893 26.2003L12.0569 28.3265C11.2019 28.8141 10.2025 28.9463 9.2671 28.6956C8.33168 28.445 7.53233 27.8308 7.0356 26.9811ZM17.7332 27.4507C17.9646 27.8945 18.5198 28.8368 18.6632 29.0896C18.1032 29.4074 18.0343 29.4465 16.914 30.0822C16.429 30.3574 15.8026 30.7129 15.216 31.0458C14.9709 30.6485 14.5744 29.9202 14.3032 29.4719L13.8652 28.7L17.3273 26.7354L17.7332 27.4507ZM19.8676 25.1007C19.3353 24.9503 18.7773 24.9113 18.2265 24.9859C17.6757 25.0605 17.5099 25.1747 17.0266 25.4626L17.2028 25.3626L16.8408 25.2656C15.602 24.9337 14.4847 24.177 13.8514 23.0366C13.2181 21.8961 13.1207 20.4653 13.4639 19.1844C13.4911 19.058 13.5246 18.9331 13.5642 18.8101L13.8527 18.3943C14.1053 17.9786 14.3061 17.8576 14.3061 17.8576C14.6436 17.3995 14.8912 16.879 15.0347 16.3258L16.1573 12.1361C16.3089 12.7849 16.4903 13.4159 16.6794 13.9713C16.9472 14.7936 17.2428 15.5587 17.5598 16.2907C18.0543 17.4483 18.6082 18.5773 19.2193 19.6729C19.8356 20.7827 20.4998 21.8536 21.1952 22.8552C21.6581 23.5099 22.1041 24.1341 22.6987 24.811C23.0668 25.2591 23.5017 25.7379 23.9664 26.1989L19.8676 25.1007Z' fill='%23444444'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_970:16894'%3E%3Crect width='29.0146' height='30' fill='white' transform='translate(8.73096 0.623047) rotate(15)'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A") no-repeat 10px center !important; 
435    padding-left: 51px !important; 
436	color: #444 !important; 
437    text-transform: uppercase; 
438    font-size: 14px !important; 
439	border-bottom: unset !important; 
440	font-weight:bold; 
441
442.customCarousel2.card .card-body { 
443    height: auto !important; 
444
445.customCarousel2.card .carousel-item img{ 
446	margin: auto !important; 
447
448.customCarousel2.card .card-body .carousel-inner { 
449    height: auto !important; 
450
451.customCarousel2.card .carousel-caption { 
452    position: relative; 
453    padding: 12px 1.25rem !important; 
454    left: 0; 
455    right: 0; 
456
457 
458.customCarousel2.card .title-underline, 
459.customCarousel2.card .title-underline a { 
460  font-size: 1.125rem !important; 
461  line-height: 1.35 !important; 
462  font-weight: bold; 
463  color: #333333; 
464  margin-top:unset; 
465  margin-bottom:0.75rem; 
466
467.customCarousel2.card .carousel-item p { 
468    color: #666666; 
469    font-size: 0.875rem!important; 
470    line-height: 1.30!important; 
471    color: #666666; 
472    margin-bottom:0; 
473
474.customCarousel2.card .carousel.slide { 
475  border: 1px solid #DDDDDD; 
476  box-shadow: 1px 1px 4px rgb(0 0 0 / 10%); 
477  margin-bottom: 32px; 
478
479.customCarousel2.card #opp2017carousel:hover a.carousel-control .glyphicon { 
480    background-color: #fff !important; 
481
482.customCarousel2.card #opp2017carousel:hover a.carousel-control .glyphicon { 
483    background-color: #fff !important; 
484
485.customCarousel2.card .glyphicon:before { 
486    color: #444444; 
487
488.customCarousel2.card #opp2017carousel .carousel-control .glyphicon { 
489    top: 75px !important; 
490
491@media only screen and (max-width: 767px) { 
492	.customCarousel2.card #opp2017carousel .carousel-item img { 
493		max-width: 100% !important; 
494		width: 100% !important; 
495		max-height: unset !important; 
496
497	.customCarousel2.card #opp2017carousel .carousel-control .glyphicon { 
498		top: 110px !important; 
499
500
501@media only screen and (min-width: 768px) { 
502	.customCarousel2.card{ 
503	    margin-top: 0; 
504        margin-bottom: 2px; 
505
506	.customCarousel2.card .carousel-item .carousel-caption { 
507	    min-height: unset; 
508        overflow: hidden; 
509        height:100%; 
510
511
512.customCarousel2 .opp2017carousel .title-underline a:focus-visible { 
513   box-shadow: none; 
514   border: 2px solid #3366CC !important; 
515
516  
517.customCarousel2 .carousel-indicators-play li:focus-visible { 
518	outline: 2px solid #3366CC !important; 
519    outline-offset: 2px; 
520    border:unset !important; 
521
522 
523.customCarousel2 .carousel-indicators li button { 
524    background-color: #8890a1; 
525    width: 10px; 
526    height: 10px; 
527    border-radius: 50%; 
528    box-sizing: content-box; 
529    flex: 0 1 auto; 
530    display: block; 
531    margin: -18px 0px 0px -1px; 
532    position: absolute; 
533    padding: unset !important; 
534    text-indent: -999px; 
535    opacity: .5; 
536    transition: opacity .6s ease; 
537
538 
539.customCarousel2 #opp2017carousel .carousel-indicators li { 
540    background-color: unset; 
541    opacity: unset; 
542
543 
544.customCarousel2 .carousel-indicators li button:focus-visible { 
545	outline: 2px solid #3366CC !important; 
546    outline-offset: 2px; 
547    opacity:unset !important; 
548
549 
550.customCarousel2 a.left.carousel-control:focus-visible { 
551    box-shadow: none; 
552    /* border: 2px solid #4d94ff !important; */ 
553    outline: 2px solid #3366CC !important; 
554    outline-offset: 2px; 
555    display: inline-block !important; 
556
557 
558.customCarousel2 a.right.carousel-control:focus-visible { 
559	box-shadow: none; 
560	/* border: 2px solid #4d94ff !important; */ 
561    outline: 2px solid #3366CC !important; 
562    outline-offset: 2px; 
563	 display: inline-block !important; 
564
565 
566.customCarousel2 .carousel-indicators li { 
567	margin-bottom: 10px !important; 
568	margin-top: 10px !important; 
569	border-top:unset !important; 
570	border-bottom:unset !important; 
571
572 
573.customCarousel2 button:focus { 
574    outline: unset !important; 
575    outline-offset: unset; 
576
577.customCarousel2 .carousel-indicators li button { 
578    background-color: unset; 
579    border: 1px solid #697188; 
580    opacity: 1; 
581
582.customCarousel2 .carousel-indicators li.active button{ 
583	background-color: #697188; 
584    opacity: 1; 
585
586 
587a.b0 { 
588    border:unset; 
589
590</style> 
591<script> 
592window.onload = function() { 
593    jQuery.noConflict( true ); 
594}; 
595</script> 
Documentation end-user

Cellar end-user manual:

An end-user manual is available for more technical users. 
                                

Documentation booklet

Cellar booklet

A booklet is available to help user querying Cellar.

Cellar end-user manual

An end-user manual is available for more technical users. 

documentation content

Documentation

Cellar end-user manual

An end-user manual is available for more technical users. 

Documentation for developers

A short guide for developers looking to harvest data from Cellar is available.

 

Cellar code

You can download the Cellar code.

Cellar training material

You can download the postman query collection of the Cellar training and the instructions.

You can download the slides of the Cellar training:

  • Session 1 about general picture of Cellar (presentation of the unit, architecture, data workflow, modeling, statistics, services) 
  • Session 2 about public interfaces of Cellar: demos of APIs and Virtuoso endpoint.

Research papers

Some research papers have also been published in the context of Cellar.

  • Francesconi, Enrico. (2018). On the Future of Legal Publishing Services in the Semantic Web. Future Internet. 10. 48. 10.3390/fi10060048. 
  • Schmitz, P., Francesconi, E., Batouche, B., Landercy, S.P., Touly, V. (2017). Ontological Models of Legal Contents and Users’ Activities for EU e-Participation Services. In: Kő, A., Francesconi, E. (eds) Electronic Government and the Information Systems Perspective. EGOVIS 2017. Lecture Notes in Computer Science(), vol 10441. Springer, Cham. https://doi.org/10.1007/978-3-319-64248-2_8

See more