Browse Source

mediwikipages and zine + self published index

master
jules 4 years ago
parent
commit
e809a114bf
  1. 148
      daapinterface.py
  2. 127
      templates/00-old-about.html
  3. 78
      templates/00-old-layout.html
  4. 55
      templates/00-old-selfpublishedindex.html
  5. 54
      templates/00-old-zinesindex.html
  6. 127
      templates/about.html
  7. 4
      templates/artistsindex.html
  8. 13
      templates/codeofconduct.html
  9. 6
      templates/home.html
  10. 2
      templates/layout.html
  11. 4
      templates/publishersindex.html
  12. 103
      templates/selfpublishedindex.html
  13. 104
      templates/zinesindex.html

148
daapinterface.py

@ -11,6 +11,7 @@ import json
# ##### IMPORTS FOR TEST WIKIPAGE
from lxml import html
from bs4 import BeautifulSoup
import re
@ -60,7 +61,7 @@ ORDER BY (?workLabel)
if "image" in publication:
publication_image = publication["image"]["value"]
ImagesBanner.append(publication_image)
ImagesBanner = ImagesBanner[-3:]
ImagesBanner = ImagesBanner[-12:]
return render_template('home.html', results=results, ImagesBanner=ImagesBanner)
@ -195,79 +196,28 @@ def artwork():
artwork_id = request.args.get('id')
sparql.setQuery('''
SELECT ?workLabel ?workDescription
?creators ?creatorsLabel ?creatorRoles ?creatorRolesLabel
?publishers ?publishersLabel ?publisherRoles ?publisherRolesLabel
?date ?dateType ?dateTypeLabel ?dateSource
?image ?depics ?depicsLabel ?annotation ?license ?licenseLabel
?descriptionQID ?accessURLdescrip ?authordescrip ?authordescripLabel ?datedescrip
?exhibitionHistoryQID ?accessURLexhibitionHis ?authorexhibitionHis ?authorexhibitionHisLabel ?dateexhibitionHis
?digitalFacsimile ?digitalFacsimileExternal
?digitalArtefact ?format ?formatLabel
?distributorLinks
?copiesCollections ?collections ?collectionsLabel ?imageCollections
?relatedWorks ?relatedWorksLabel ?dateRelatedWorks
WHERE {
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
VALUES ?work {wd:'''+artwork_id+'''}
OPTIONAL { ?work wdt:P9 ?creators. }
OPTIONAL { ?work p:P9 ?statement0.
?statement0 ps:P9 ?creators;
pq:P49 ?creatorRoles. }
OPTIONAL { ?work wdt:P13 ?date. }
OPTIONAL { ?work p:P13 ?statement1.
?statement1 ps:P13 ?date;
pq:P51 ?dateType;
pq:P50 ?dateSource. }
OPTIONAL { ?work wdt:P10 ?publishers. }
OPTIONAL { ?work p:P10 ?statement2.
?statement2 ps:P10 ?publishers;
pq:P49 ?publisherRoles. }
OPTIONAL { ?work wdt:P30 ?image. }
OPTIONAL { ?work p:P30 ?statement3.
?statement3 ps:P30 ?image;
pq:P54 ?depics;
pq:P55 ?annotation;
pq:P56 ?license.}
OPTIONAL { ?work wdt:P65 ?descriptionQID. }
OPTIONAL { ?descriptionQID wdt:P4 ?accessURLdescrip;
wdt:P9 ?authordescrip;
wdt:P13 ?datedescrip;
wdt:P50 ?sourcedescrip. }
OPTIONAL { ?work wdt:P66 ?exhibitionHistoryQID. }
OPTIONAL { ?exhibitionHistoryQID wdt:P4 ?accessURLexhibitionHis;
wdt:P9 ?authorexhibitionHis;
wdt:P13 ?dateexhibitionHis;
wdt:P50 ?sourceexhibitionHis. }
OPTIONAL { ?work wdt:P32 ?digitalFacsimile. }
OPTIONAL { ?work wdt:P34 ?digitalFacsimileExternal. }
OPTIONAL { ?work wdt:P35 ?digitalArtefact. }
OPTIONAL { ?work p:P35 ?statement4.
?statement4 ps:P35 ?digitalArtefact;
pq:P16 ?format.}
OPTIONAL { ?work wdt:P37 ?distributorLinks. }
OPTIONAL { ?work wdt:P43 ?copiesCollections. }
OPTIONAL { ?copies_collections wdt:P47 ?collections;
wdt:P30 ?imageCollections. }
OPTIONAL { ?work wdt:P44 ?relatedWorks. }
OPTIONAL { ?relatedWorks wdt:P13 ?dateRelatedWorks. }
}
''')
SELECT ?work ?workLabel ?workDescription ?propLabel ?b ?bLabel ?creators ?creatorsLabel ?creatorRoles ?creatorRolesLabel ?image ?depicts ?depictsLabel ?license ?licenseLabel
WHERE
{
VALUES ?work {wd:'''+artwork_id+'''}
?work ?a ?b.
OPTIONAL { ?work wdt:P9 ?creators. }
OPTIONAL { ?work p:P9 ?statement1.
?statement1 ps:P9 ?creators;
pq:P49 ?creatorRoles. }
OPTIONAL { ?work wdt:P30 ?image. }
OPTIONAL { ?work p:P30 ?statement2.
?statement2 ps:P30 ?image;
pq:P54 ?depicts;
pq:P56 ?license.}
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
?prop wikibase:directClaim ?a .
} ''')
sparql.setReturnFormat(JSON)
artwork = sparql.query().convert()
# print(artwork)
print(artwork)
artwork_url = "https://daap.bannerrepeater.org/wiki/Item:Q92"
artwork_title = "the human printer"
@ -279,14 +229,17 @@ def artwork():
def person():
person_id = request.args.get('id')
sparql.setQuery('''
SELECT ?person ?personLabel ?personDescription ?a ?aLabel ?propLabel ?b ?bLabel
WHERE {
VALUES ?person {wd:'''+person_id+'''}
?person ?a ?b.
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
?prop wikibase:directClaim ?a .
}
''')
SELECT ?item ?itemLabel ?itemDescription ?propLabel ?b ?bLabel
WHERE
{
VALUES ?item {wd:'''+person_id+'''}
?item ?a ?b.
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
?prop wikibase:directClaim ?a .
}
''')
sparql.setReturnFormat(JSON)
person_details = sparql.query().convert()
print(person_details)
@ -350,13 +303,20 @@ def about():
text=soup.find("html")
# adapt the path to img with regex
# test = text.replace("wiki/File:","wiki/Special:Redirect/file/")
# text.replace_with(test)
text=Markup(text)
# replaceString = "wiki/Special:Redirect/file/"
# cleanSoup = BeautifulSoup(str(text).replace("wiki/File:", replaceString))
# for a in soup.find_all('a', href=True):
# if a.text:
# print(a['href'])
return render_template('about-wiki.html', text=text)
# replace src from img zith href from a href and remove the a
text=Markup(text)
return render_template('about.html', text=text)
######################### TUTORIAL
@app.route("/tutorials")
@ -375,8 +335,8 @@ def upload():
# print(soup.prettify()) # print the parsed data of html
text=soup.find("html")
text=Markup(text)
return render_template('upload.html', text=text)
@ -397,6 +357,22 @@ def casestudy():
# #################### CODE OF CONDUCT
@app.route("/codeofconduct")
def codeofconduct():
url="https://daap.bannerrepeater.org/w/index.php?title=Code_of_Conduct&action=render"
# Make a GET request to fetch the raw HTML content
html_content = requests.get(url).text
# Parse the html content
soup = BeautifulSoup(html_content, "lxml")
# print(soup.prettify()) # print the parsed data of html
text=soup.find("html")
text=Markup(text)
return render_template('codeofconduct.html', text=text)
######################### LOGIN
@ -422,3 +398,5 @@ print(intro_text)
# ALL NAME
# https://daap.bannerrepeater.org/w/api.php?action=query&meta=siteinfo&siprop=namespaces|namespacealiases
# replace or insert tags
# https://stackoverflow.com/questions/2073541/search-and-replace-in-html-with-beautifulsoup

127
templates/00-old-about.html

@ -0,0 +1,127 @@
{% extends "layout.html" %}
{% block content %}
<div class="pagetitle" id="about-title">About: Digital Archive of Artists Publishing (DAAP)</div>
<div id="about-content">
<div id="about-content-top">
<div id="about-content-top-left">The Digital Archive of Artists Publishing (DAAP) is an interactive, user-driven, searchable database of Artists’ Books and publications, that acts as a hub to engage with others, built by artists, publishers, and a community of producers in contemporary Artists’ Publishing, developed via an ethically driven design process and open-data methodology.
</div>
<div id="about-content-top-right">
<img src="{{ url_for('static', filename='/imgs/Pages/bannerrepeater.png') }}">
</div>
</div>
<div id="about-content-bottom">
<div class="about-paragraph">
<div class="about-paragraph-subtitle">Introduction to the project</div>
<div>
<p>
A collaborative project, with the support of Wikimedia UK, DAAP is inspired by the site of Banner Repeater’s public Archive of Artists’ Publishing on Hackney Downs train station, with 11,000 people passing a day, in response to the need for a similarly dynamic approach to archiving in an online context.</p>
<p>
We have drawn upon the working knowledge of users and archivists alike, to develop a database with sufficient complexity, whilst remaining searchable, that affords multiple histories to develop, confronting issues of authorship and representation, whilst addressing the challenges of cataloguing often deliberately difficult to categorise materials. With an emphasis on inclusivity from the start, we aim to privilege anecdotal histories and multiple perspectives alongside factual data, whilst the wiki style approach means that users can upload their own material, single items, or entire collections, choosing appropriate sharing permissions at time of upload. </p>
<p>
DAAP is committed to challenging the politics of traditional archives that come of issues regarding inclusion and accessibility, from a post-colonial, critical gender and LGBTQI perspective. The project will work to ensure an equitable and ethical design process occurs throughout the archive development. </p>
</div>
</div>
<div class="about-paragraph">
<div class="about-paragraph-subtitle">Introduction to the digital infrastructure</div>
<div>
<p>
DAAP brings together scholars and practitioners in the field of art, artist’s publishing and creative technology to set a precedent for modelling bespoke and non-standardised artist publications as linked data. <i>Linked open data</i> is data that is machine-readable, published online following specific interoperability standards, and published with an open license thus enabling others to connect to it. </p>
<p>
Utilising the open-source software Wikibase, DAAP brings to the surface new and unexpected data connections across diverse collection artefacts, providing a resource to link to other archives, and communities, whilst visualisation tools offer exciting visual diagrams for in-depth research. DAAP implements a custom frontend interface on top of the Wikibase database, which follows familiar user interface metaphors, increasing accessibility across a broader audience. </p>
<p>
Wikibase is part of a family of applications maintained by the Wikimedia Foundation, an international non-profit supporting public knowledge platforms such as Wikipedia and Wikidata. DAAP’s installation of Wikibase benefits from the technical affordances of the public platform Wikidata: </p>
<ul>
<li>storing structured data; </li>
<li>using a flexible linked-data-compliant model for developing bibliographic data about publications; </li>
<li>capacity for multiple users to contribute to the database; </li>
<li>version control; </li>
<li>sophisticated querying options and visualizations provided via Wikidata Query Service tools. </li>
</ul>
<p>
In addition to the structured data in the database, DAAP takes advantage of the possibility to connect archive records held in Wikibase to regular wiki text pages, so that long-form anecdotal narratives can sit alongside factual data. At the same time, due to its independence from Wikidata, DAAP also serves as a space of more open experimentation – where data is modelled and tested with active users within a community of subject specialists (artists, self-publishers, librarians, academics, students, etc).</p>
</div>
</div>
<div class="about-paragraph">
<div class="about-paragraph-subtitle">Our ethical standpoint</div>
<div>
<p>
Artists' Publishing is incredibly complex, to the extent that each item could almost warrant a new category of its own, making visible the challenges in sharing deliberately difficult to categorise material. </p>
<p>
The project has developed through an interrogation of how an informed use of open-source linked data technology can be utilised towards a more ethically driven archival process. </p>
<p>
Utilising a <i>linked data</i> database for the digital platform enables data to be structured in flexible ways, which can grow and develop organically around community needs, rather than conforming to rigid, pre-existing bibliographic standards. Traditional ‘standards’ aim to structure bibliographic data in ways that make it possible to find publications online, but as is increasingly clear, technology is not neutral, with an active tendency to reproduce existing bias’ and discriminations already existing in the world today. How search criteria, and other structural aspects of archiving contribute to this, is an ongoing conversation that drives the development of the archive, drawing from the experiences of users, archivists and technologists, alike. </p>$
<p>
The native features of the linked data environment have been activated within a communal practice, in order for the project to support an equitable, and ethical design process throughout the archive development. This in itself, is a vital and ongoing conversational process, in which mistakes can be made, discussed and rectified. Workshops have facilitated much of these conversations so far, with a host of users, as well as experts, joining in discussion and debate, which will continue as the archive continues to grow.</p>
<p>
DAAP developed from critique regarding the extractive relations of digital neo-colonialisms, as well as historical colonialisms, since 2010, and we are strongly committed to challenging the politics of traditional archives that come of issues regarding inclusion and accessibility, from a post-colonial, critical gender and LGBTQI perspective.</p>
<p>
<h4>Telegram channel</h4>
We have initiated a dedicated Telegram group to facilitate discussions around data entry and the ethics of archiving in between the workshop sessions. <a target="_blank" href="mailto:daap.community@disroot.org">Get in touch</a> if you’d like to join the channel.</p>
<p>
<h4>Code of conduct</h4>
We enforce a strict Code of Conduct throughout our public events both in person and online. Read the full <a target="_blank" href="https://daap.bannerrepeater.org/wiki/Project:CodeOfConduct">CoC text here</a>.</p>
</div>
</div>
<div class="about-paragraph">
<div class="about-paragraph-subtitle">Our Team</div>
<div>
<p>
The <b>Artists' Publishing team</b> is led by <a target="_blank" href="https://www.amiclarke.com/">artist</a> and writer <b>Ami Clarke</b>, founder of Banner Repeater, curator of the arts programme and <a href="https://www.bannerrepeater.org/un-publish">Un-Publish</a> series, joined by experts in Artists' Publishing: <b>Arnaud Desjardin</b> of <a href="http://theeverydaypress.net">The Everyday Press</a>, and <a href="https://www.marcuscampbell.co.uk/">Marcus Campbell Books</a> and author of <a href="https://www.printedmatter.org/catalog/35352/">The Book on Books on Artists' Books</a>, <b>Gustavo Grandal Montero</b> librarian and researcher at UAL, curator of <a href="https://www.arts.ac.uk/students/library-services/special-collections-and-archives/chelsea-collections-and-archives">The Special Collections at Chelsea College of Arts Library - the oldest and one of the largest artists' books collection in the UK, and editor of the Art Libraries Journal</a>, and, curator and digital archivist <a href="http://www.karendifranco.net/"><b>Dr Karen Di Franco</b></a> who produced <a href="https://www.bookworks.org.uk/">Book Works</a> digital archive, and recently having been awarded her AHRC Collaborative Doctoral Candidate, University of Reading & Tate Britain. </p>
<p>
The <b>Technical team</b> is led by digital designer and UX researcher <b>Lozana Rossenova</b>, currently completing her PhD in Digital Archive Design at the Centre for the Study of the Networked Image, in collaboration with leading digital art organization <a href="https://rhizome.org/">Rhizome</a>. She brings her UX design and data modeling expertise developed during her <a href="https://sites.rhizome.org/artbase-re-design/">PhD research</a> and her professional practice in working with born-digital archives and linked open data (LOD) standards. The technical team is joined by <a href="http://varia.zone/en/">Varia</a> member <b>Julie Boschat Thorez</b> as lead developer on the project. She brings technical expertise from working on archival and conservation projects with leading digital artists and art organizations from the Netherlands, such as <a href="https://www.li-ma.nl/lima/">LIMA</a>. <b>Paulien Hosang</b> has developed the visual design for the archive’s interface, drawing on experience working for non-profit clients at digital agencies both in <a href="https://www.designbysoapbox.com/">the UK</a> and <a href="https://www.greenberry.nl/">the Netherlands</a>.</p>
<p>
The Artists’ Publishing team is also joined by historian, archivist and writer Frances Whorrall-Campbell (MA) and artist <b>Cicilia Östholm</b> (PhD student, Fine Art/Humanities RCA), co-initiator of <a href="http://www.cicilia.works/index.php/works/equal-voices-in-the-room/">equal voices in the room?</a> who will help guide important ways to address bias and inequality through technological intervention, to undermine dominance and hegemonies based on gender binaries and the Western canon. Over the years important contributions have been made to the archival process, by several Banner Repeater volunteers, most recently of whom have done considerable work: Charlie Pritchard, Ariel Finch, Amelia Claringbull, Louise Rutledge, and Nína Óskarsdóttir, Maša Škrinjar kindly funded by an Erasmus scheme.</p>
</div>
</div>
<div class="about-paragraph">
<div class="about-paragraph-subtitle">A project by Banner Repeater with the support of Wikimedia UK</div>
<div>
<p>
<b>Banner Repeater</b> is an artist-led org: experimental project space and reading room with a public Archive of Artists’ Publishing, founded in 2010 by artist Ami Clarke. The project is driven by its location, on Hackney Downs train station, platform 1, dedicated to developing critical art in the natural interstice the platform and incidental footfall of over 11,000 passengers a day provides. </p>
<p>
Banner Repeater works with artists to develop new works, through an ambitious exhibition programme installed in a highly visible and accessible project space, with a programme of events, talks, and performances, to introduce discussion and encourage debate of key issues in art today. The reading room holds a permanently sited public Archive of Artists’ Publishing that provides an important bibliographic resource that all visitors to BR can browse, alongside the Digital Archive of Artists’ Publishing - a tool as well as an electronic commons for the exchange of detailed information.</p>
<p>
Networked strategies underpin everything that we do, pioneering a hybrid way of working in critically engaged contemporary art practice through the strong symbiosis between the experiments in text and publishing held in the public Archive of Artists’ Publishing on platform 1 Hackney Downs, and artistic practices engaging in networked strategies today. </p>
<p>
Banner Repeater is supported by Arts Council England, The Elephant Trust, The British Council, Chelsea Arts Club Trust, The Goethe Institut, Transport for London, Arriva Rail, ACoRP, The Community Rail Network, Del Chopo Museum Mexico City, The Italian Institute of Culture, London. BR was initially supported by a grant from the Empty Shop Fund, Arts in Empty Spaces, Hackney Council in 2010.</p>
</div>
</div>
</div>
</div>
{% endblock content %}

78
templates/00-old-layout.html

@ -0,0 +1,78 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>D.A.A.P</title>
<link rel="stylesheet" href="{{ url_for('static', filename='/css/style.css') }}">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.3/jquery.min.js"></script>
</head>
<body>
<div id="header">
<div id="header-top">
<div id="animatedlogo">
<img src="{{ url_for('static', filename='/imgs/Logos/DAAP BR square logo -Animated Image (Small).gif') }}">
</div>
<div id="header-title">
<a href="{{ url_for('home') }}">DIGITAL ARCHIVE OF ARTISTS' PUBLISHING</a>
</div>
<div id="header-keyword-search">
<span>WEBSITE IN DEVELOPMENT</span>
</div>
</div>
<div id="navigation">
<div id="nav-about"><a href="{{ url_for('about') }}">About</a></div>
<div id="nav-browse-archive"><a href="{{ url_for('browsethearchive') }}">Browse the archive</a></div>
<div id="nav-browse-category">Browse by category</div>
<div id="nav-search"><a target="_blank" href="http://query.daap.bannerrepeater.org">Search tools</a></div>
<div id="nav-tutorials">Tutorials</div>
<div id="nav-upload">Upload</div>
<div id="nav-login"><a target="_blank" href="https://daap.bannerrepeater.org/w/index.php">Log in</a></div>
</div>
</div>
{% block content %}
{% endblock content %}
<div id="footer">
<!-- <div id="footer-br"> -->
<div id="footer-title-br"><p>A project by:</p></div>
<div id="footer-img-br"><a target="_blank" href="https://www.bannerrepeater.org/"><img src="{{ url_for('static', filename='/imgs/Logos/Banner-Repeater-Logo.png') }}"></a></div>
<!-- </div> -->
<!-- <div id="footer-others"> -->
<div id="footer-title-others"><p>With support from:</p></div>
<div id="footer-img-others">
<div id="footer-img-wiki"><a href="_blank" target="https://wikimedia.org.uk/"><img src="{{ url_for('static', filename='/imgs/Logos/wikimedia_logo.png') }}"></a></div>
<div id="footer-img-lottery"><a href="https://www.artscouncil.org.uk/" target=""><img src="{{ url_for('static', filename='/imgs/Logos/Lottery-white on black.png') }}"></a></div>
</div>
<div id="footer-title-socials"><p>SOCIAL</p></div>
<div id="footer-socials-links">
<p><a target="_blank" href="https://www.facebook.com/BannerRepeater">Facebook</a></p>
<p><a target="_blank" href="https://twitter.com/BANNERREPEATER">Twitter</a></p>
<p><a target="_blank" href="https://www.instagram.com/bannerrepeater/">Instagram</a></p>
<p><a target="_blank" href="mailto:daap.community@disroot.org">Email address</a></p>
</div>
<div id="footer-title-contact"><p>EXPRESSION OF INTEREST</p></div>
<div id="footer-contact"><a target="_blank" href="https://forms.gle/4EFpkQ9AKzZpdUmF6"><div class="bluebutton" id="contactform">FILL UP CONTACT FORM<span></span></div></a></div>
</div>
</body>
</html>

55
templates/00-old-selfpublishedindex.html

@ -0,0 +1,55 @@
{% extends "layout.html" %}
{% block content %}
<div class="pagetitle" id="selfpublishedindex-title">INDEX OF PUBLISHERS</div>
<table id="selfpublishedindex-table">
<thead>
<tr>
<th>ID</th>
<th>WORK</th>
<th>ALIASES</th>
<th>DESCRIPTION</th>
</tr>
</thead>
<tbody>
{% for x in results['results']['bindings']%}
<tr>
<th class="idnumber"><a href="artwork?id={{ x['work']['value'] | replace('http://wikibase.svc/entity/', '') }}">{{ x['work']['value'] | replace('http://wikibase.svc/entity/', '') }}</a></th>
<th class="label"><a href="artwork?id={{ x['work']['value'] | replace('http://wikibase.svc/entity/', '') }}">{{ x["workLabel"]['value'] }}</a></th>
<th class="altaliases">
{% if "workAltLabel" in x %}
{{ x["workAltLabel"]["value"] }}
{% endif %}
</th>
<th class="description">
{% if "workDescription" in x %}
{{ x["workDescription"]["value"] }}
{% endif %}
</th>
</tr>
{% endfor %}
</tbody>
</table>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="http://cdn.datatables.net/1.10.2/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script>
$(document).ready(function(){
$('#selfpublishedindex-table').dataTable({
ordering: false,
searching: false,
lengthChange: false,
pageLength:20,
info: false
});
});
</script>
{% endblock content %}

54
templates/00-old-zinesindex.html

@ -0,0 +1,54 @@
{% extends "layout.html" %}
{% block content %}
<div class="pagetitle" id="zinesindex-title">INDEX OF ZINES</div>
<table id="zinesindex-table">
<thead>
<tr>
<th>ID</th>
<th>WORK</th>
<th>ALIASES</th>
<th>DESCRIPTION</th>
</tr>
</thead>
<tbody>
{% for x in results['results']['bindings']%}
<tr>
<th class="idnumber"><a href="artwork?id={{ x['work']['value'] | replace('http://wikibase.svc/entity/', '') }}">{{ x['work']['value'] | replace('http://wikibase.svc/entity/', '') }}</a></th>
<th class="label"><a href="artwork?id={{ x['work']['value'] | replace('http://wikibase.svc/entity/', '') }}">{{ x["workLabel"]['value'] }}</a></th>
<th class="altaliases">
{% if "workAltLabel" in x %}
{{ x["workAltLabel"]["value"] }}
{% endif %}
</th>
<th class="description">
{% if "workDescription" in x %}
{{ x["workDescription"]["value"] }}
{% endif %}
</th>
</tr>
{% endfor %}
</tbody>
</table>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="http://cdn.datatables.net/1.10.2/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script>
$(document).ready(function(){
$('#zinesindex-table').dataTable({
ordering: false,
searching: false,
lengthChange: false,
pageLength:20,
info: false
});
});
</script>
{% endblock content %}

127
templates/about.html

@ -1,127 +1,12 @@
{% extends "layout.html" %}
{% block content %}
<div class="pagetitle" id="about-title">About: Digital Archive of Artists Publishing (DAAP)</div>
<div id="about-content">
<div id="about-content-top">
<div id="about-content-top-left">The Digital Archive of Artists Publishing (DAAP) is an interactive, user-driven, searchable database of Artists’ Books and publications, that acts as a hub to engage with others, built by artists, publishers, and a community of producers in contemporary Artists’ Publishing, developed via an ethically driven design process and open-data methodology.
</div>
<div id="about-content-top-right">
<img src="{{ url_for('static', filename='/imgs/Pages/bannerrepeater.png') }}">
</div>
</div>
<div id="about-content-bottom">
<div class="about-paragraph">
<div class="about-paragraph-subtitle">Introduction to the project</div>
<div>
<p>
A collaborative project, with the support of Wikimedia UK, DAAP is inspired by the site of Banner Repeater’s public Archive of Artists’ Publishing on Hackney Downs train station, with 11,000 people passing a day, in response to the need for a similarly dynamic approach to archiving in an online context.</p>
<p>
We have drawn upon the working knowledge of users and archivists alike, to develop a database with sufficient complexity, whilst remaining searchable, that affords multiple histories to develop, confronting issues of authorship and representation, whilst addressing the challenges of cataloguing often deliberately difficult to categorise materials. With an emphasis on inclusivity from the start, we aim to privilege anecdotal histories and multiple perspectives alongside factual data, whilst the wiki style approach means that users can upload their own material, single items, or entire collections, choosing appropriate sharing permissions at time of upload. </p>
<p>
DAAP is committed to challenging the politics of traditional archives that come of issues regarding inclusion and accessibility, from a post-colonial, critical gender and LGBTQI perspective. The project will work to ensure an equitable and ethical design process occurs throughout the archive development. </p>
</div>
</div>
<div class="about-paragraph">
<div class="about-paragraph-subtitle">Introduction to the digital infrastructure</div>
<div>
<p>
DAAP brings together scholars and practitioners in the field of art, artist’s publishing and creative technology to set a precedent for modelling bespoke and non-standardised artist publications as linked data. <i>Linked open data</i> is data that is machine-readable, published online following specific interoperability standards, and published with an open license thus enabling others to connect to it. </p>
<p>
Utilising the open-source software Wikibase, DAAP brings to the surface new and unexpected data connections across diverse collection artefacts, providing a resource to link to other archives, and communities, whilst visualisation tools offer exciting visual diagrams for in-depth research. DAAP implements a custom frontend interface on top of the Wikibase database, which follows familiar user interface metaphors, increasing accessibility across a broader audience. </p>
<p>
Wikibase is part of a family of applications maintained by the Wikimedia Foundation, an international non-profit supporting public knowledge platforms such as Wikipedia and Wikidata. DAAP’s installation of Wikibase benefits from the technical affordances of the public platform Wikidata: </p>
<ul>
<li>storing structured data; </li>
<li>using a flexible linked-data-compliant model for developing bibliographic data about publications; </li>
<li>capacity for multiple users to contribute to the database; </li>
<li>version control; </li>
<li>sophisticated querying options and visualizations provided via Wikidata Query Service tools. </li>
</ul>
<p>
In addition to the structured data in the database, DAAP takes advantage of the possibility to connect archive records held in Wikibase to regular wiki text pages, so that long-form anecdotal narratives can sit alongside factual data. At the same time, due to its independence from Wikidata, DAAP also serves as a space of more open experimentation – where data is modelled and tested with active users within a community of subject specialists (artists, self-publishers, librarians, academics, students, etc).</p>
</div>
</div>
<div class="about-paragraph">
<div class="about-paragraph-subtitle">Our ethical standpoint</div>
<div>
<p>
Artists' Publishing is incredibly complex, to the extent that each item could almost warrant a new category of its own, making visible the challenges in sharing deliberately difficult to categorise material. </p>
<p>
The project has developed through an interrogation of how an informed use of open-source linked data technology can be utilised towards a more ethically driven archival process. </p>
<p>
Utilising a <i>linked data</i> database for the digital platform enables data to be structured in flexible ways, which can grow and develop organically around community needs, rather than conforming to rigid, pre-existing bibliographic standards. Traditional ‘standards’ aim to structure bibliographic data in ways that make it possible to find publications online, but as is increasingly clear, technology is not neutral, with an active tendency to reproduce existing bias’ and discriminations already existing in the world today. How search criteria, and other structural aspects of archiving contribute to this, is an ongoing conversation that drives the development of the archive, drawing from the experiences of users, archivists and technologists, alike. </p>$
<p>
The native features of the linked data environment have been activated within a communal practice, in order for the project to support an equitable, and ethical design process throughout the archive development. This in itself, is a vital and ongoing conversational process, in which mistakes can be made, discussed and rectified. Workshops have facilitated much of these conversations so far, with a host of users, as well as experts, joining in discussion and debate, which will continue as the archive continues to grow.</p>
<p>
DAAP developed from critique regarding the extractive relations of digital neo-colonialisms, as well as historical colonialisms, since 2010, and we are strongly committed to challenging the politics of traditional archives that come of issues regarding inclusion and accessibility, from a post-colonial, critical gender and LGBTQI perspective.</p>
<p>
<h4>Telegram channel</h4>
We have initiated a dedicated Telegram group to facilitate discussions around data entry and the ethics of archiving in between the workshop sessions. <a target="_blank" href="mailto:daap.community@disroot.org">Get in touch</a> if you’d like to join the channel.</p>
<p>
<h4>Code of conduct</h4>
We enforce a strict Code of Conduct throughout our public events both in person and online. Read the full <a target="_blank" href="https://daap.bannerrepeater.org/wiki/Project:CodeOfConduct">CoC text here</a>.</p>
</div>
</div>
<div class="about-paragraph">
<div class="about-paragraph-subtitle">Our Team</div>
<div>
<p>
The <b>Artists' Publishing team</b> is led by <a target="_blank" href="https://www.amiclarke.com/">artist</a> and writer <b>Ami Clarke</b>, founder of Banner Repeater, curator of the arts programme and <a href="https://www.bannerrepeater.org/un-publish">Un-Publish</a> series, joined by experts in Artists' Publishing: <b>Arnaud Desjardin</b> of <a href="http://theeverydaypress.net">The Everyday Press</a>, and <a href="https://www.marcuscampbell.co.uk/">Marcus Campbell Books</a> and author of <a href="https://www.printedmatter.org/catalog/35352/">The Book on Books on Artists' Books</a>, <b>Gustavo Grandal Montero</b> librarian and researcher at UAL, curator of <a href="https://www.arts.ac.uk/students/library-services/special-collections-and-archives/chelsea-collections-and-archives">The Special Collections at Chelsea College of Arts Library - the oldest and one of the largest artists' books collection in the UK, and editor of the Art Libraries Journal</a>, and, curator and digital archivist <a href="http://www.karendifranco.net/"><b>Dr Karen Di Franco</b></a> who produced <a href="https://www.bookworks.org.uk/">Book Works</a> digital archive, and recently having been awarded her AHRC Collaborative Doctoral Candidate, University of Reading & Tate Britain. </p>
<p>
The <b>Technical team</b> is led by digital designer and UX researcher <b>Lozana Rossenova</b>, currently completing her PhD in Digital Archive Design at the Centre for the Study of the Networked Image, in collaboration with leading digital art organization <a href="https://rhizome.org/">Rhizome</a>. She brings her UX design and data modeling expertise developed during her <a href="https://sites.rhizome.org/artbase-re-design/">PhD research</a> and her professional practice in working with born-digital archives and linked open data (LOD) standards. The technical team is joined by <a href="http://varia.zone/en/">Varia</a> member <b>Julie Boschat Thorez</b> as lead developer on the project. She brings technical expertise from working on archival and conservation projects with leading digital artists and art organizations from the Netherlands, such as <a href="https://www.li-ma.nl/lima/">LIMA</a>. <b>Paulien Hosang</b> has developed the visual design for the archive’s interface, drawing on experience working for non-profit clients at digital agencies both in <a href="https://www.designbysoapbox.com/">the UK</a> and <a href="https://www.greenberry.nl/">the Netherlands</a>.</p>
<p>
The Artists’ Publishing team is also joined by historian, archivist and writer Frances Whorrall-Campbell (MA) and artist <b>Cicilia Östholm</b> (PhD student, Fine Art/Humanities RCA), co-initiator of <a href="http://www.cicilia.works/index.php/works/equal-voices-in-the-room/">equal voices in the room?</a> who will help guide important ways to address bias and inequality through technological intervention, to undermine dominance and hegemonies based on gender binaries and the Western canon. Over the years important contributions have been made to the archival process, by several Banner Repeater volunteers, most recently of whom have done considerable work: Charlie Pritchard, Ariel Finch, Amelia Claringbull, Louise Rutledge, and Nína Óskarsdóttir, Maša Škrinjar kindly funded by an Erasmus scheme.</p>
</div>
</div>
<div class="about-paragraph">
<div class="about-paragraph-subtitle">A project by Banner Repeater with the support of Wikimedia UK</div>
<div>
<p>
<b>Banner Repeater</b> is an artist-led org: experimental project space and reading room with a public Archive of Artists’ Publishing, founded in 2010 by artist Ami Clarke. The project is driven by its location, on Hackney Downs train station, platform 1, dedicated to developing critical art in the natural interstice the platform and incidental footfall of over 11,000 passengers a day provides. </p>
<p>
Banner Repeater works with artists to develop new works, through an ambitious exhibition programme installed in a highly visible and accessible project space, with a programme of events, talks, and performances, to introduce discussion and encourage debate of key issues in art today. The reading room holds a permanently sited public Archive of Artists’ Publishing that provides an important bibliographic resource that all visitors to BR can browse, alongside the Digital Archive of Artists’ Publishing - a tool as well as an electronic commons for the exchange of detailed information.</p>
<p>
Networked strategies underpin everything that we do, pioneering a hybrid way of working in critically engaged contemporary art practice through the strong symbiosis between the experiments in text and publishing held in the public Archive of Artists’ Publishing on platform 1 Hackney Downs, and artistic practices engaging in networked strategies today. </p>
<p>
Banner Repeater is supported by Arts Council England, The Elephant Trust, The British Council, Chelsea Arts Club Trust, The Goethe Institut, Transport for London, Arriva Rail, ACoRP, The Community Rail Network, Del Chopo Museum Mexico City, The Italian Institute of Culture, London. BR was initially supported by a grant from the Empty Shop Fund, Arts in Empty Spaces, Hackney Council in 2010.</p>
</div>
</div>
</div>
</div>
{{ text }}
<style type="text/css">
div#toc{
display: none
}
</style>
{% endblock content %}

4
templates/artistsindex.html

@ -15,8 +15,8 @@
<tbody>
{% for x in results['results']['bindings']%}
<tr>
<th class="idnumber"><a href="person?id={{ x['creators']['value'] | replace('http://wikibase.svc/entity/', '') }}">{{ x['creators']['value'] | replace('http://wikibase.svc/entity/', '') }}</a></th>
<th class="label"><a href="person?id={{ x['creators']['value'] | replace('http://wikibase.svc/entity/', '') }}">{{ x["creatorsLabel"]['value'] }}</a></th>
<th class="idnumber"><a href="person?id={{ x['creators']['value'] | replace('http://daap.bannerrepeater.org/entity/', '') }}">{{ x['creators']['value'] | replace('http://daap.bannerrepeater.org/entity/', '') }}</a></th>
<th class="label"><a href="person?id={{ x['creators']['value'] | replace('http://daap.bannerrepeater.org/entity/', '') }}">{{ x["creatorsLabel"]['value'] }}</a></th>
<th class="altaliases">
{% if "creatorsAltLabel" in x %}
{{ x["creatorsAltLabel"]["value"] }}

13
templates/codeofconduct.html

@ -0,0 +1,13 @@
{% extends "layout.html" %}
{% block content %}
{{ text }}
<style type="text/css">
div#toc{
display: none
}
</style>
{% endblock content %}

6
templates/home.html

@ -28,9 +28,9 @@
<div id="wrapper-bt-vid">
<div id="wrapper-bt">
<div id="wrapper-top-buttons" class="primary-button"><span>SEE EXAMPLE SEARCH FOR ZINES</span></div>
<div id="wrapper-top-buttons" class="primary-button"><a href="{{ url_for('zinesindex') }}"><span>SEE EXAMPLE SEARCH FOR ZINES</span></a></div>
<div id="wrapper-top-buttons" class="secondary-button"><span>LEARN MORE ABOUT ADVANCED SEARCH TOOLS</span></div>
<div id="wrapper-top-buttons" class="secondary-button"><a href="{{ url_for('casestudy') }}"><span>LEARN MORE ABOUT ADVANCED SEARCH TOOLS</span></a></div>
</div>
<div id="wrapper-vid">
<video preload="meta" autoplay="" loop="">
@ -83,7 +83,7 @@
</div>
<div class="home-show-wrapper primary-button"><span class="home-show">BROWSE THE FULL ARCHIVE</span></div>
<div class="home-show-wrapper primary-button"><span class="home-show">SHOW MORE</span></div>
</div>

2
templates/layout.html

@ -75,7 +75,7 @@
</div>
<div id="footer-contact-form">
<div id="footer-title-contact"><p>EXPRESSION OF INTEREST</p></div>
<div id="primary-button"><a class="footer-contact" href=""><div class="primary-button bluebutton" id="contactform"><span>CONTACT FORM</span></div></a></div>
<div id="primary-button"><a class="footer-contact" href="https://docs.google.com/forms/d/e/1FAIpQLSdee1kiy1rDLONW7KNp-a3iRbPlxbCSlF2cDohXOh2SU8oW1A/viewformnope"><div class="primary-button bluebutton" id="contactform"><span>CONTACT FORM</span></div></a></div>
</div>
</div>
</div>

4
templates/publishersindex.html

@ -15,8 +15,8 @@
<tbody>
{% for x in results['results']['bindings']%}
<tr>
<th class="idnumber"><a href="person?id={{ x['publishers']['value'] | replace('http://wikibase.svc/entity/', '') }}">{{ x['publishers']['value'] | replace('http://wikibase.svc/entity/', '') }}</a></th>
<th class="label"><a href="person?id={{ x['publishers']['value'] | replace('http://wikibase.svc/entity/', '') }}">{{ x["publishersLabel"]['value'] }}</a></th>
<th class="idnumber"><a href="person?id={{ x['publishers']['value'] | replace('http://daap.bannerrepeater.org/entity/', '') }}">{{ x['publishers']['value'] | replace('http://daap.bannerrepeater.org/entity/', '') }}</a></th>
<th class="label"><a href="person?id={{ x['publishers']['value'] | replace('http://daap.bannerrepeater.org/entity/', '') }}">{{ x["publishersLabel"]['value'] }}</a></th>
<th class="altaliases">
{% if "publishersAltLabel" in x %}
{{ x["publishersAltLabel"]["value"] }}

103
templates/selfpublishedindex.html

@ -1,55 +1,80 @@
{% extends "layout.html" %}
{% block content %}
<div class="pagetitle" id="selfpublishedindex-title">INDEX OF PUBLISHERS</div>
<table id="selfpublishedindex-table">
<thead>
<tr>
<th>ID</th>
<th>WORK</th>
<th>ALIASES</th>
<th>DESCRIPTION</th>
</tr>
</thead>
<tbody>
<div id="selfpublishedindex-all">
<div class="pagetitle" id="selfpublishedindex-title">INDEX OF SELF-PUBLISHED WORKS</div>
<div id="selfpublishedindex-grid">
{% for x in results['results']['bindings']%}
<tr>
<th class="idnumber"><a href="artwork?id={{ x['work']['value'] | replace('http://wikibase.svc/entity/', '') }}">{{ x['work']['value'] | replace('http://wikibase.svc/entity/', '') }}</a></th>
<th class="label"><a href="artwork?id={{ x['work']['value'] | replace('http://wikibase.svc/entity/', '') }}">{{ x["workLabel"]['value'] }}</a></th>
<th class="altaliases">
{% if "workAltLabel" in x %}
{{ x["workAltLabel"]["value"] }}
<div class="selfpublishedindex-items">
<div class="selfpublishedindex-items-top">
{% if "image" in x %}
<a href='/artwork?id={{ x["work"]["value"] | replace("http://daap.bannerrepeater.org/entity/", "") }}'>
<img class="selfpublishedindex-imgs" src='{{ x["image"]["value"] | replace("wiki/File:","wiki/Special:Redirect/file/") }}'>
</a> <br>
{% else %}
<a href='/artwork?id={{ x["work"]["value"] | replace("http://daap.bannerrepeater.org/entity/", "") }}'>
<img class="selfpublishedindex-imgs" src="{{ url_for('static', filename='/imgs/Icons/placeholder_no-image2.png') }}"><br>
</a>
{% endif %}
</th>
<th class="description">
{% if "workDescription" in x %}
{{ x["workDescription"]["value"] }}
{% endif %}
</th>
</tr>
</div>
<div class="selfpublishedindex-items-bottom">
<a class="title" href='/artwork?id={{ x["work"]["value"] | replace("http://daap.bannerrepeater.org/entity/", "") }}'>
{{ x["workLabel"]["value"]}}
</a> <br>
<span class="date">
{% if "date" in x %}
{{ x["date"]["value"] | replace("T00:00:00Z", "") }}
</span>
{% endif %}
</div>
</div>
{% endfor %}
</tbody>
</table>
</div>
<div id="selfpublishedindex-pagination">
<ul id="selfpublishedindex-pagin">
</ul>
</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="http://cdn.datatables.net/1.10.2/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script type="text/javascript">
//Pagination
pageSize = 16;
var pageCount = $(".selfpublishedindex-items").length / pageSize;
<script>
$(document).ready(function(){
$('#selfpublishedindex-table').dataTable({
ordering: false,
searching: false,
lengthChange: false,
pageLength:20,
info: false
for(var i = 0 ; i<pageCount;i++){
$("#selfpublishedindex-pagin").append('<li><a href="#">'+(i+1)+'</a></li> ');
}
$("#selfpublishedindex-pagin li").first().addClass("current")
showPage = function(page) {
$(".selfpublishedindex-items").hide();
$(".selfpublishedindex-items").each(function(n) {
if (n >= pageSize * (page - 1) && n < pageSize * page)
$(this).show();
});
}
showPage(1);
$("#selfpublishedindex-pagin li").click(function() {
$("#selfpublishedindex-pagin li").removeClass("current");
$(this).addClass("current");
showPage(parseInt($(this).text()))
});
});
</script>
</div>
{% endblock content %}

104
templates/zinesindex.html

@ -1,54 +1,80 @@
{% extends "layout.html" %}
{% block content %}
<div id="zinesindex-all">
<div class="pagetitle" id="zinesindex-title">INDEX OF ZINES</div>
<table id="zinesindex-table">
<thead>
<tr>
<th>ID</th>
<th>WORK</th>
<th>ALIASES</th>
<th>DESCRIPTION</th>
</tr>
</thead>
<tbody>
<div id="zinesindex-grid">
{% for x in results['results']['bindings']%}
<tr>
<th class="idnumber"><a href="artwork?id={{ x['work']['value'] | replace('http://wikibase.svc/entity/', '') }}">{{ x['work']['value'] | replace('http://wikibase.svc/entity/', '') }}</a></th>
<th class="label"><a href="artwork?id={{ x['work']['value'] | replace('http://wikibase.svc/entity/', '') }}">{{ x["workLabel"]['value'] }}</a></th>
<th class="altaliases">
{% if "workAltLabel" in x %}
{{ x["workAltLabel"]["value"] }}
{% endif %}
</th>
<th class="description">
{% if "workDescription" in x %}
{{ x["workDescription"]["value"] }}
{% endif %}
</th>
</tr>
<div class="zinesindex-items">
<div class="zinesindex-items-top">
{% if "image" in x %}
<a href='/artwork?id={{ x["work"]["value"] | replace("http://daap.bannerrepeater.org/entity/", "") }}'>
<img class="zinesindex-imgs" src='{{ x["image"]["value"] | replace("wiki/File:","wiki/Special:Redirect/file/") }}'>
</a> <br>
{% else %}
<a href='/artwork?id={{ x["work"]["value"] | replace("http://daap.bannerrepeater.org/entity/", "") }}'>
<img class="zinesindex-imgs" src="{{ url_for('static', filename='/imgs/Icons/placeholder_no-image2.png') }}"><br>
</a>
{% endif %}
</div>
<div class="zinesindex-items-bottom">
<a class="title" href='/artwork?id={{ x["work"]["value"] | replace("http://daap.bannerrepeater.org/entity/", "") }}'>
{{ x["workLabel"]["value"]}}
</a> <br>
<span class="date">
{% if "date" in x %}
{{ x["date"]["value"] | replace("T00:00:00Z", "") }}
</span>
{% endif %}
</div>
</div>
{% endfor %}
</tbody>
</table>
</div>
<div id="zinesindex-pagination">
<ul id="zinesindex-pagin">
</ul>
</div>
<script type="text/javascript">
//Pagination
pageSize = 16;
var pageCount = $(".zinesindex-items").length / pageSize;
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="http://cdn.datatables.net/1.10.2/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
for(var i = 0 ; i<pageCount;i++){
$("#zinesindex-pagin").append('<li><a href="#">'+(i+1)+'</a></li> ');
}
$("#zinesindex-pagin li").first().addClass("current")
showPage = function(page) {
$(".zinesindex-items").hide();
$(".zinesindex-items").each(function(n) {
if (n >= pageSize * (page - 1) && n < pageSize * page)
$(this).show();
});
}
showPage(1);
$("#zinesindex-pagin li").click(function() {
$("#zinesindex-pagin li").removeClass("current");
$(this).addClass("current");
showPage(parseInt($(this).text()))
});
<script>
$(document).ready(function(){
$('#zinesindex-table').dataTable({
ordering: false,
searching: false,
lengthChange: false,
pageLength:20,
info: false
});
});
</script>
</div>
{% endblock content %}

Loading…
Cancel
Save