SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Unlocking Museum Systems
with Open Source
Richard Barrett-Small
Victoria and Albert Museum
MCN Austin,Texas. October 28th, 2010
1
http://www.vam.ac.uk/
2
http://www.vam.ac.uk/your_visit/
3
http://collections.vam.ac.uk/item/O217265/photograph/
4
http://collections.vam.ac.uk/item/O102467/relief-column-trajans-column/
5
Free Beer http://collections.vam.ac.uk/item/O77223/oil-painting-at-the-inn-door/
6
Freedom http://collections.vam.ac.uk/item/O192058/
7
http://www.vam.ac.uk/collections/sculpture/sculpture_features/bayes/carved/
precious/precious_materials/index.html
8
http://www.crummy.com/software/BeautifulSoup/documentation.html
>>> from BeautifulSoup import BeautifulSoup
>>> soup = BeautifulSoup('<html><head><title>Page title</title></
head><body><p id="firstpara" align="center">This is paragraph <b>one</
b>.<p id="secondpara" align="blah">This is paragraph <b>two</b></html>')
>>> soup.body.p
<p id="firstpara" align="center">This is paragraph <b>one</b>.</p
# tags beginning with “b”
>>> import re
>>> tagsStartingWithB = soup.findAll(re.compile('^b'))
>>> [tag.name for tag in tagsStartingWithB]
[u'body', u'b', u'b']
9
http://trac.edgewall.org/
10
http://www.vam.ac.uk/collections/fashion/fashion_motion/manish_arora/video/
modem.html
11
http://collections.vam.ac.uk/item/O143968
12
http://ffmpeg.org/
13
http://collections.vam.ac.uk/item/O62328/television-clock-base-jvc-videosphere/
14
http://collections.vam.ac.uk/
15
http://www.vam.ac.uk/api/
<?xml version="1.0" encoding="utf-8"?>
<django-objects version="1.0">
<object pk="78435" model="collection.museumobject">
<field type="CharField" name="object">Relief column</field>
<field type="TextField" name="title">Trajan's column</field>
<field type="SlugField" name="slug">relief-column-trajans-column</field>
<field type="CharField" name="collection_code">SCP</field>
<field type="CharField" name="artist">Unknown</field>
<field type="CharField" name="place">Rome</field>
<field type="CharField" name="location">Sculpture, room 46a, case FS,
shelf C</field>
<field type="TextField" name="materials_techniques">Plaster cast</field>
<field type="TextField" name="dimensions">Height: 523.5 cm, Diameter:
422.5 cm</field>
<field type="TextField" name="museum_number">REPRO.1864-128</field>
<field type="CharField" name="object_number">O102467</field>
<field type="CharField" name="edition_number"></field>
<field type="TextField" name="descriptive_line">Reproduction of Trajan's
Column, plaster, cast by Monsieur Oudry, Paris, ca. 1864</field>
</object>
16
http://www.vam.ac.uk/api/
{
"pk": 78435,
"model": "collection.museumobject",
"fields": {
"original_price": "",
"museum_number": "REPRO.1864-128",
"date_end": " 113-12-31",
"galleries": [
{
"pk": 420,
"model": "collection.gallery",
"fields": {
"room_code": "46A",
…
}
}
],
"descriptive_line": "Reproduction of Trajan's Column, plaster, cast by Monsieur Oudry, Paris,
ca. 1864",
"names": [
{
"pk": 3,
"model": "collection.name",
"fields": {
"death_date": null,
"surname": "",
"name": "Unknown",
"gender": null,
17
http://collections.vam.ac.uk/item/O175596/
18
http://wiki.xml3k.org/Amara2/Tutorial
from amara import bindery
MONTY_XML = """<quotes>
<quote skit="1">This parrot is dead</quote>
<quote skit="2">What do you mean "bleh"</quote>
<quote skit="2">I don't like spam</quote>
<quote skit="3">But I was looking for argument</quote>
</quotes>"""
doc = bindery.parse(MONTY_XML)
q1 = doc.quotes.quote # or doc.quotes.quote[0]
print q1.skit
print q1.xml_attributes[(None, u'skit')] # XPath works too: q1.xml_select(u'@skit')
for q in doc.quotes.quote: # The loop will pick up both q elements
print unicode(q) # Just the child char data
19
http://copia.posterous.com/
20
http://codespeak.net/lxml/xpathxslt.html
>>> f = StringIO('<foo><bar>word</bar></foo>')
>>> tree = etree.parse(f)
>>> r = tree.xpath('/foo/bar')
>>> len(r)
1
>>> r[0].tag
'bar'
>>> r = tree.xpath('bar')
>>> r[0].tag
'bar'
>>> r = tree.xpath('bar')
>>> r[0].text
'word'
21
http://php.net/
• require()
• require_once()
• include()
• include_once()
• mysql_escape_string()
• mysqli_escape_string()
• mysql_real_escape_string()
• mysqli_real_escape_string()
22
http://php.net/
# As recently as 2008…
$query = "DELETE FROM va_table WHERE id = ".$_POST['va_id']." LIMIT 1";
$result = mysql_query($query) or die(mysql_error());
23
The Man http://collections.vam.ac.uk/item/O1137575/
24
>>> from calendar import Calendar http://www.vam.ac.uk/whatson/
25
Accessing MS SQL Server
FreeTDS http://www.freetds.org/
unixODBC http://www.unixodbc.org/
PyODBC http://code.google.com/p/pyodbc/
# freetds.conf
[egServer70]
host = ntmachine.domain.com
port = 1433
tds version = 7.0
client charset = UTF-8
26
http://www.vam.ac.uk/whatson/
27
http://collections.vam.ac.uk/item/O90516/photograph-sphinx/
28
http://sphinxsearch.com/
29
http://www.vam.ac.uk/microsites/decode/recodegallery
30
What’s Next for the Open Source Platform at theV&A?
31
http://collections.vam.ac.uk/item/O111551/crucifix-reliquary-reliquary-cross/
32
http://collections.vam.ac.uk/item/O111551/crucifix-reliquary-reliquary-cross/
33
http://collections.vam.ac.uk/item/O111551/crucifix-reliquary-reliquary-cross/
34
http://collections.vam.ac.uk/item/O111551/crucifix-reliquary-reliquary-cross/
Despite Papal disapproval of the dismemberment
of saints, a finger relic was by no means unusual
in Anglo-Saxon England
35
http://collections.vam.ac.uk/item/O72873/statuette-athlete-struggling-with-a-
python/
Thank you for listening
Me
r.barrettsmall@vam.ac.uk
@richbs
The Tech Team
@rmorg (The Boss)
@waarg (Dev)
36

Weitere ähnliche Inhalte

Was ist angesagt?

Download information
Download informationDownload information
Download information
Ogendra
 
YQL (IITK PPT)
YQL (IITK PPT)YQL (IITK PPT)
YQL (IITK PPT)
markandey
 
Oliver Pirate Project
Oliver Pirate ProjectOliver Pirate Project
Oliver Pirate Project
Joan Bennett
 

Was ist angesagt? (19)

Cpsh sh
Cpsh shCpsh sh
Cpsh sh
 
DataClass Case Study #1: Solving the Duplication Problem
DataClass Case Study #1: Solving the Duplication ProblemDataClass Case Study #1: Solving the Duplication Problem
DataClass Case Study #1: Solving the Duplication Problem
 
Report: Avalanche 'very likely' to host outdoor game at Coors Field
Report: Avalanche 'very likely' to host outdoor game at Coors FieldReport: Avalanche 'very likely' to host outdoor game at Coors Field
Report: Avalanche 'very likely' to host outdoor game at Coors Field
 
Download information
Download informationDownload information
Download information
 
easyXDM
easyXDMeasyXDM
easyXDM
 
Yuriy Voziy "Fantastic Template Strings and Where to Use Them"
Yuriy Voziy "Fantastic Template Strings and Where to Use Them"Yuriy Voziy "Fantastic Template Strings and Where to Use Them"
Yuriy Voziy "Fantastic Template Strings and Where to Use Them"
 
Mac OS X Lion で作る WordPress local 環境
Mac OS X Lion で作る WordPress local 環境Mac OS X Lion で作る WordPress local 環境
Mac OS X Lion で作る WordPress local 環境
 
replacing `import` with `accio`
replacing `import` with `accio`replacing `import` with `accio`
replacing `import` with `accio`
 
YQL (IITK PPT)
YQL (IITK PPT)YQL (IITK PPT)
YQL (IITK PPT)
 
Inside a Digital Collection: Historic Clothing in Omeka
Inside a Digital Collection: Historic Clothing in OmekaInside a Digital Collection: Historic Clothing in Omeka
Inside a Digital Collection: Historic Clothing in Omeka
 
London XQuery Meetup: Querying the World (Web Scraping)
London XQuery Meetup: Querying the World (Web Scraping)London XQuery Meetup: Querying the World (Web Scraping)
London XQuery Meetup: Querying the World (Web Scraping)
 
Getting starting less
Getting starting lessGetting starting less
Getting starting less
 
Chef
ChefChef
Chef
 
A bug bounty tale: Chrome, stylesheets, cookies, and AES
A bug bounty tale: Chrome, stylesheets, cookies, and AESA bug bounty tale: Chrome, stylesheets, cookies, and AES
A bug bounty tale: Chrome, stylesheets, cookies, and AES
 
Pecha Kucha
Pecha KuchaPecha Kucha
Pecha Kucha
 
Oliver Pirate Project
Oliver Pirate ProjectOliver Pirate Project
Oliver Pirate Project
 
Play, Slick, play2-authの間で討死
Play, Slick, play2-authの間で討死Play, Slick, play2-authの間で討死
Play, Slick, play2-authの間で討死
 
Peno3server
Peno3serverPeno3server
Peno3server
 
Writing Readable Code with Pipes
Writing Readable Code with PipesWriting Readable Code with Pipes
Writing Readable Code with Pipes
 

Ähnlich wie Unlocking Museum Systems with Open Source

Sec.1 กล ม 1 เร__องการสร_างแบบฟอร_มและการส_งค_าต_วแปร
Sec.1 กล  ม 1 เร__องการสร_างแบบฟอร_มและการส_งค_าต_วแปรSec.1 กล  ม 1 เร__องการสร_างแบบฟอร_มและการส_งค_าต_วแปร
Sec.1 กล ม 1 เร__องการสร_างแบบฟอร_มและการส_งค_าต_วแปร
Bongza Naruk
 
HTML5, the open web, and what it means for you -Tech4Africa
HTML5, the open web, and what it means for you -Tech4AfricaHTML5, the open web, and what it means for you -Tech4Africa
HTML5, the open web, and what it means for you -Tech4Africa
Robert Nyman
 
Oracle Open World Thursday 230 ashmasters
Oracle Open World Thursday 230 ashmastersOracle Open World Thursday 230 ashmasters
Oracle Open World Thursday 230 ashmasters
Kyle Hailey
 
Jones aleph acqorders
Jones aleph acqordersJones aleph acqorders
Jones aleph acqorders
ENUG
 
Delivering a Responsive UI
Delivering a Responsive UIDelivering a Responsive UI
Delivering a Responsive UI
Rebecca Murphey
 
[3.3] Detection & exploitation of Xpath/Xquery Injections - Boris Savkov
[3.3] Detection & exploitation of Xpath/Xquery Injections - Boris Savkov[3.3] Detection & exploitation of Xpath/Xquery Injections - Boris Savkov
[3.3] Detection & exploitation of Xpath/Xquery Injections - Boris Savkov
OWASP Russia
 

Ähnlich wie Unlocking Museum Systems with Open Source (20)

Web Crawling Modeling with Scrapy Models #TDC2014
Web Crawling Modeling with Scrapy Models #TDC2014Web Crawling Modeling with Scrapy Models #TDC2014
Web Crawling Modeling with Scrapy Models #TDC2014
 
How to Scrap Any Website's content using ScrapyTutorial of How to scrape (cra...
How to Scrap Any Website's content using ScrapyTutorial of How to scrape (cra...How to Scrap Any Website's content using ScrapyTutorial of How to scrape (cra...
How to Scrap Any Website's content using ScrapyTutorial of How to scrape (cra...
 
Sec.1 กล ม 1 เร__องการสร_างแบบฟอร_มและการส_งค_าต_วแปร
Sec.1 กล  ม 1 เร__องการสร_างแบบฟอร_มและการส_งค_าต_วแปรSec.1 กล  ม 1 เร__องการสร_างแบบฟอร_มและการส_งค_าต_วแปร
Sec.1 กล ม 1 เร__องการสร_างแบบฟอร_มและการส_งค_าต_วแปร
 
HTML5, the open web, and what it means for you -Tech4Africa
HTML5, the open web, and what it means for you -Tech4AfricaHTML5, the open web, and what it means for you -Tech4Africa
HTML5, the open web, and what it means for you -Tech4Africa
 
DEF CON 27 -OMER GULL - select code execution from using sq lite
DEF CON 27 -OMER GULL - select code execution from using sq liteDEF CON 27 -OMER GULL - select code execution from using sq lite
DEF CON 27 -OMER GULL - select code execution from using sq lite
 
Euroclojure 2017
Euroclojure 2017Euroclojure 2017
Euroclojure 2017
 
Data visualization by Kenneth Odoh
Data visualization by Kenneth OdohData visualization by Kenneth Odoh
Data visualization by Kenneth Odoh
 
Streamlining the Inclusion of Computer Experiments in Research Papers
Streamlining the Inclusion of Computer Experiments in Research PapersStreamlining the Inclusion of Computer Experiments in Research Papers
Streamlining the Inclusion of Computer Experiments in Research Papers
 
Oracle Open World Thursday 230 ashmasters
Oracle Open World Thursday 230 ashmastersOracle Open World Thursday 230 ashmasters
Oracle Open World Thursday 230 ashmasters
 
Windows Azure Storage & Sql Azure
Windows Azure Storage & Sql AzureWindows Azure Storage & Sql Azure
Windows Azure Storage & Sql Azure
 
CEI Email 3.14.03
CEI Email 3.14.03CEI Email 3.14.03
CEI Email 3.14.03
 
Jones aleph acqorders
Jones aleph acqordersJones aleph acqorders
Jones aleph acqorders
 
08 php-files
08 php-files08 php-files
08 php-files
 
Xml 2
Xml  2 Xml  2
Xml 2
 
Delivering a Responsive UI
Delivering a Responsive UIDelivering a Responsive UI
Delivering a Responsive UI
 
LabPal: Repeatable Computer Experiments Made Easy (ACM Workshop Talk)
LabPal: Repeatable Computer Experiments Made Easy (ACM Workshop Talk)LabPal: Repeatable Computer Experiments Made Easy (ACM Workshop Talk)
LabPal: Repeatable Computer Experiments Made Easy (ACM Workshop Talk)
 
Python tutorial
Python tutorialPython tutorial
Python tutorial
 
visualisasi data praktik pakai excel, py
visualisasi data praktik pakai excel, pyvisualisasi data praktik pakai excel, py
visualisasi data praktik pakai excel, py
 
Linked open data sandwich
Linked open data sandwichLinked open data sandwich
Linked open data sandwich
 
[3.3] Detection & exploitation of Xpath/Xquery Injections - Boris Savkov
[3.3] Detection & exploitation of Xpath/Xquery Injections - Boris Savkov[3.3] Detection & exploitation of Xpath/Xquery Injections - Boris Savkov
[3.3] Detection & exploitation of Xpath/Xquery Injections - Boris Savkov
 

Kürzlich hochgeladen

Kürzlich hochgeladen (20)

DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 

Unlocking Museum Systems with Open Source