Skip to content
Snippets Groups Projects
Commit f770cd29 authored by root's avatar root
Browse files

Loads of fixes. Redesign based around bibo:Document. Added search on person,...

Loads of fixes. Redesign based around bibo:Document. Added search on person, topic and collection. Timeline on collection started, but broken.
parent 5257413b
No related branches found
No related tags found
No related merge requests found
Showing
with 218 additions and 85 deletions
......@@ -20,7 +20,7 @@
<h1>{{first.main.label.value}} <span class="badge">{{ first.count.total.value }}</span></h1>
{% for row in models.main %}
<p>{{ row.description.value }}</p>
<p class="lead">{{ row.description.value }}</p>
{% endfor %}
{% if first.haspart.part.value != null %}
......
......@@ -2,7 +2,7 @@ SELECT * WHERE {
{ SELECT DISTINCT ?part ?title ?description WHERE {
<http://data.ub.uib.no/instance/collection/brosing-topologiske-katalogkort> dct:hasPart ?part .
OPTIONAL { ?part dct:title ?title . }
OPTIONAL { ?part rdfs:label ?title . }
OPTIONAL { ?part dct:description ?description . }
}
ORDER BY ?part
......
{%include "../../includes/header.inc"%}
<div class="container main-body">
<div class="row">
<div class="col-md-3 hidden-xs hidden-sm">
<div id="bs-sidebar affix">
<div class="col-md-3">
<div class="bs-sidebar hidden-xs hidden-sm affix">
{% if first.main.logo != null %}
<img class="img-circle img-border img-responsive" src="{{first.main.logo.value}}">
<img class="collection-logo img-circle img-border img-responsive" src="{{first.main.logo.value}}">
{% endif %}
<div class="browse-sidebar">
<h4>Bla i:</h4>
<ul class="nav">
{%include "../../includes/nav.inc"%}
</ul>
</div>
</div> <!-- End Sidebar -->
<form action="{{lodspk.this.local}}" method="POST">
<div class="input-group">
<span class="input-group-btn">
<button class="btn btn-info" type="submit"><span class="glyphicon glyphicon-search"></span></button>
</span>
<input type="text" class="form-control" name="query" placeholder="Søk i samlingen">
</div><!-- /input-group -->
</form>
<div class="browse-sidebar">
<h4>Bla i <span class="marcus-logo">Marcus</span></h4>
<ul class="list-unstyled">
{% include "../../includes/nav.inc" %}
</ul>
</div>
</div> <!-- End Sidebar -->
</div>
<div class="col-md-9">
<h1>{{first.main.label.value}} <span class="badge">{{ first.count.total.value }}</span></h1>
<p class="lead">{{ first.main.description.value }}</p>
<!--
<div id="timeline-embed"></div>
<script type="text/javascript">
var timeline_config = {
width: '100%',
height: '450',
source: 'timeline.json',
embed_id: 'timeline-embed', //OPTIONAL USE A DIFFERENT DIV ID FOR EMBED
start_at_end: false, //OPTIONAL START AT LATEST DATE
start_at_slide: '1', //OPTIONAL START AT SPECIFIC SLIDE
start_zoom_adjust: '2', //OPTIONAL TWEAK THE DEFAULT ZOOM LEVEL
hash_bookmark: true, //OPTIONAL LOCATION BAR HASHES
debug: true, //OPTIONAL DEBUG TO CONSOLE
maptype: 'sterrain', //OPTIONAL MAP STYLE
lang: 'no', //OPTIONAL LANGUAGE
js: '{{lodspk.home}}js/TimelineJS/compiled/js/timeline-min.js', //OPTIONAL PATH TO JS
css: '{{lodspk.home}}js/TimelineJS/compiled/css/timeline.css' //OPTIONAL PATH TO CSS
}
</script>
<script type="text/javascript" src="{{lodspk.home}}js/TimelineJS/compiled/js/storyjs-embed.js"></script>
-->
<h2>{% if lodspk.query %} / <small>"{{lodspk.query}}"</small> {%else%}/ <small>{{first.count.total.value}}</small>{%endif%}</h2>
{% if lodspk.query %}
<ul class="list-unstyled">
{% for row in models.search %}
<li><a href="{{ row.doc.value }}"><span class="glyphicon glyphicon-book"></span> {{row.label.value}}</a></li>
{% endfor %}
</ul>
{% else %}
{% if first.photographlist.imgUri != null %}
{% for row in models.photographlist %}
......@@ -45,8 +88,9 @@
</ul>
{% endif %}
{% if first.count.total.value > 100 %}
{% endif %}
{% if !lodspk.query && first.count.total.value > 100 %}
<script>
if ("{{lodspk.args.arg1}}".length < 1)
{page = 0;}
......@@ -74,9 +118,7 @@
$("#next").attr("href",next_uri);
};
document.write('</ul>');
</script>
{% endif %}
</div></div></div>
......
SELECT DISTINCT ?uri ?doc ?label WHERE {
{% if lodspk.query %}
?uri text:query ('{{lodspk.query}}') .
?doc dct:isPartOf <{{uri}}> .
?uri ?p ?doc .
?doc a ?class .
?class rdfs:subClassOf+ bibo:Document .
OPTIONAL { ?doc rdfs:label ?label . }
{% endif %}
}
LIMIT 100
SELECT DISTINCT ?startDate ?media ?headline ?text ?thumbnail ?year ?month ?day WHERE {
?media a ubbont:Charter .
?media dct:isPartOf <http://data.ub.uib.no/instance/collection/diplomsamlingen> .
?media ubbont:hasPage/ubbont:hasThumbnail ?thumbnail;
dct:created ?startDate ;
rdfs:label ?headline ;
dct:description ?text .
BIND ( year(?startDate) AS ?year )
BIND ( month(?startDate) AS ?month )
BIND ( day(?startDate) AS ?day )
FILTER(regex(str(?thumbnail), "_1_thumb", "i"))
}
SELECT ?name ?sameAs ?deathDate ?birthDate WHERE {
<http://data.ub.uib.no/instance/person/{{ lodspk.args.arg0 }}> <http://xmlns.com/foaf/0.1/name> ?name .
<http://data.ub.uib.no/instance/person/{{ lodspk.args.arg0 }}> a foaf:Person .
OPTIONAL { <http://data.ub.uib.no/instance/person/{{ lodspk.args.arg0 }}> foaf:name ?name . }
OPTIONAL { <http://data.ub.uib.no/instance/person/{{ lodspk.args.arg0 }}> ubbont:invertedName ?name . }
OPTIONAL { <http://data.ub.uib.no/instance/person/{{ lodspk.args.arg0 }}> <http://dbpedia.org/ontology/birthDate> ?birthDate . }
OPTIONAL { <http://data.ub.uib.no/instance/person/{{ lodspk.args.arg0 }}> <http://dbpedia.org/ontology/deathDate> ?deathDate . }
OPTIONAL { <http://data.ub.uib.no/instance/person/{{ lodspk.args.arg0 }}> owl:sameAs ?sameAs . }
......
SELECT * WHERE {
{
SELECT ?label ?uri ?image ?p WHERE {
<http://data.ub.uib.no/instance/person/{{ lodspk.args.arg0 }}> ?p ?uri .
SELECT DISTINCT ?label ?uri ?image ?p WHERE {
{
<http://data.ub.uib.no/instance/person/{{ lodspk.args.arg0 }}> ?p ?uri . }
UNION
{?uri ?p <http://data.ub.uib.no/instance/person/{{ lodspk.args.arg0 }}> .}
?uri a ?class .
?class rdfs:subClassOf+ bibo:Document .
OPTIONAL { ?uri ubbont:hasRepresentation/ubbont:hasURI ?image . }
......
......@@ -3,48 +3,52 @@
<div class="row">
<div class="col-md-3">
<div class="bs-sidebar hidden-xs hidden-sm affix">
<h4>Bla i:</h4>
<ul class="nav">
{%include "../../includes/nav.inc"%}
</ul>
<form action="{{lodspk.this.local}}" method="POST">
<div class="input-group">
<span class="input-group-btn">
<button class="btn btn-info" type="submit"><span class="glyphicon glyphicon-search"></span></button>
</span>
<input type="text" class="form-control" name="query" placeholder="Søk etter person">
</div><!-- /input-group -->
</form>
<h5>Hvorfor er det mange dubletter?</h5>
<p>Siden vi har konvertert innholdet til <span class="marcus-logo">Marcus</span> fra mange kilder kan det oppstå dubletter. Det er heller ikke så lett å si med sikkerhet om det er samme person som er nevnes i de eldre delene av samlingene.</p>
<div class="browse-sidebar">
<h4>Bla i <span class="marcus-logo">Marcus</span></h4>
<ul class="list-unstyled">
{% include "../../includes/nav.inc" %}
</ul>
</div>
</div> <!-- End Sidebar -->
</div>
<div class="col-md-9">
<div class="row service-search">
<h1>Personer {% if lodspk.query %} - <small>"{{lodspk.query}}"</small> {%endif%}</h1>
{% include "/../../includes/search.inc" %}
<div class="service-search">
<h1>Personer {% if lodspk.query %} / <small>"{{lodspk.query}}"</small> {%else%}/ <small>{{first.count.total.value}}</small>{%endif%}</h1>
</div>
<div class="row">
<ul class="agent-list list-unstyled">
{% if lodspk.query %}
{% for row in models.search %}
<li><a href="{{ row.x.value }}"><span class="glyphicon glyphicon-user"></span> {{row.name.value}}</a><br />
{% if row.imgUriUri.value %}
<a href="{{ row.imgUriUri.value }}"><img class="col-md-10 thumbnail" data-src="holder.js/300x200" src="{{row.depictionImage.value}}" alt=""></a>
{% endif %}
</li>
{% endfor %}
<li><a href="{{ row.uri.value }}"><span class="glyphicon glyphicon-user"></span> {{row.label.value}}</a></li>
{% endfor %}
{% else %}
{% for row in models.main %}
<li><a href="{{ row.x.value }}"><span class="glyphicon glyphicon-user"></span> {{row.name.value}}</a><br />
{% if row.imgUriUri.value %}
<a href="{{ row.imgUriUri.value }}"><img class="col-md-10 thumbnail" data-src="holder.js/300x200" src="{{row.depictionImage.value}}" alt=""></a>
{% endif %}
</li>
{% endfor %}
{% for row in models.main %}
<li><a href="{{ row.uri.value }}"><span class="glyphicon glyphicon-user"></span> {{row.label.value}}</a></li>
{% endfor %}
{% endif %}
</ul>
</div>
{% if lodspk.query %}
<p><span class="glyphicon glyphicon-arrow-left"></span> <a href="{{lodspk.this.local}}">Tilbake til personlisten</a></p>
{% endif %}
<div class="row">
<div class="col-md-9 col-lg-9 col-md-offset-3 col-lg-offset-3">
{% if !lodspk.query && first.count.total.value > 100 %}
<div>
<script>
if ("{{lodspk.args.arg0}}".length < 1)
{page = 0;}
......@@ -55,23 +59,26 @@
var offset = 100;
var nextPage = page+offset;
var prevPage = page - offset;
var prevPage = page-offset;
var next_uri = '{{lodspk.home}}persons/'+ nextPage;
var prev_uri = '{{lodspk.home}}persons/'+ prevPage;
</script>
<ul class="pager">
<li><a href="" id="prev">Forrige 100</a></li>
<li><a href="" id="next">Neste 100</a></li>
</ul>
<script>
$("#next").attr("href",next_uri);
$("#prev").attr("href",prev_uri);
</script>
</div>
</div> <!-- End Row -->
document.write('<ul class="pager">');
if (prevPage == 0){
document.write('<li><a href="http://marcus.uib.no/instance/collection/{{lodspk.args.arg0}}" id="prev">Forrige 100</a></li>');
}
else if ("{{lodspk.args.arg1}}".length > 1 && !("{{lodspk.args.arg1}}".length === 0)){
document.write('<li><a href="" id="prev">Forrige 100</a></li>');
$("#prev").attr("href",prev_uri);
};
if ({{first.count.total.value}} > nextPage){
document.write('<li><a href="" id="next">Neste 100</a></li>');
$("#next").attr("href",next_uri);
};
document.write('</ul>');
</script>
</div>
{% endif %}
</div></div></div>
......
SELECT (COUNT(?uri) AS ?total) WHERE {
?uri a foaf:Person .
}
SELECT ?x ?name WHERE {
?x a foaf:Person ; foaf:name ?name . }
GROUP BY ?x ?name
ORDER BY ?name
SELECT DISTINCT ?uri ?label WHERE {
?uri a foaf:Person .
OPTIONAL { ?uri foaf:name ?label .}
OPTIONAL { ?uri ubbont:invertedName ?label . }
}
GROUP BY ?uri ?label
ORDER BY ?label
OFFSET {{lodspk.args.arg0|default:0}} LIMIT 100
SELECT DISTINCT ?x ?name WHERE {
SELECT DISTINCT ?uri ?label WHERE {
{% if lodspk.query %}
{ ?x text:query ( foaf:name '{{lodspk.query}}');
a foaf:Person ;
foaf:name ?name .
{ ?uri text:query ( foaf:name '{{lodspk.query}}');
a foaf:Person .
OPTIONAL { ?uri foaf:name ?label . }
OPTIONAL { ?uri ubbont:invertedName ?label . }
}
UNION
{
?x text:query ( foaf:firstName '{{lodspk.query}}');
a foaf:Person ;
foaf:name ?name .
?uri text:query ( foaf:firstName '{{lodspk.query}}');
a foaf:Person .
OPTIONAL { ?uri foaf:name ?label . }
OPTIONAL { ?uri ubbont:invertedName ?label . }
}
UNION
{
?x text:query ( foaf:familyName '{{lodspk.query}}');
a foaf:Person ;
foaf:name ?name .
?uri text:query ( foaf:familyName '{{lodspk.query}}');
a foaf:Person .
OPTIONAL { ?uri foaf:name ?label . }
OPTIONAL { ?uri ubbont:invertedName ?label . }
}
{% endif %}
}
......
......@@ -19,12 +19,16 @@
</div>
<div class="col-md-9">
<h1>Treff på "{{lodspk.args.arg0}}"</h1>
<h1><span class="text-muted">Du søkte på</span> "{{lodspk.args.arg0}}"</h1>
{% if models.main|length != 0 %}
<ul class="nav">
{% for row in models.main %}
<li><a href="{{ row.resource.value }}">{{row.label.curie}}</a></li>
{% endfor %}
</ul>
{% for row in models.main %}
<li><a href="{{ row.resource.value }}">{{row.label.curie}} <span class="label label-primary">{{row.classLabel.value}}</span></a></li>
{% endfor %}
{% else %}
<h2>Ingen treff</h2>
{% endif %}
</ul>
</div>
</div></div>
......
SELECT DISTINCT ?resource ?label WHERE {
SELECT DISTINCT ?resource ?label ?classLabel WHERE {
?resource text:query ('{{lodspk.args.arg0}}') .
?resource skos:prefLabel ?label .
OPTIONAL { ?resource skos:prefLabel ?label . }
OPTIONAL { ?resource foaf:name ?label . }
OPTIONAL { ?resource ubbont:invertedName ?label . }
OPTIONAL { ?resource rdfs:label ?label . }
?resource rdf:type ?class .
?class rdfs:label ?classLabel .
FILTER(langMatches(lang(?classLabel), ""))
}
......
{%include "../../includes/header.inc"%}
<div class="container main-body">
<div class="row">
<div class="col-md-12">
<h1>Tidslinje</h1>
<div id="timeline-embed"></div>
<script type="text/javascript">
var timeline_config = {
width: '100%',
height: '650',
source: 'timeline.json',
embed_id: 'timeline-embed', //OPTIONAL USE A DIFFERENT DIV ID FOR EMBED
start_at_end: false, //OPTIONAL START AT LATEST DATE
start_at_slide: '1', //OPTIONAL START AT SPECIFIC SLIDE
start_zoom_adjust: '2', //OPTIONAL TWEAK THE DEFAULT ZOOM LEVEL
hash_bookmark: true, //OPTIONAL LOCATION BAR HASHES
debug: true, //OPTIONAL DEBUG TO CONSOLE
maptype: 'sterrain', //OPTIONAL MAP STYLE
lang: 'no', //OPTIONAL LANGUAGE
js: '{{lodspk.home}}js/TimelineJS/compiled/js/timeline-min.js', //OPTIONAL PATH TO JS
css: '{{lodspk.home}}js/TimelineJS/compiled/css/timeline.css' //OPTIONAL PATH TO CSS
}
</script>
<script type="text/javascript" src="{{lodspk.home}}js/TimelineJS/compiled/js/storyjs-embed.js"></script>
</div>
</div>
</div>
{%include "../../includes/footer.inc"%}
</body>
</html>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment