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:
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
Documentation
Cellar training:
You can download the slides of the Cellar training.
Cellar code
You can download the Cellar code.
Cellar training
You can download the slides of the Cellar training.
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).
Cellar end-user manual:
An end-user manual is available for more technical users.
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.
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"> </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"> </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', '')}"> <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', '')}"> <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>
Cellar end-user manual:
An end-user manual is available for more technical users.
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
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:
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