Your SlideShare is downloading. ×
0
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
A Semantic Multimedia Web (Part 2)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

A Semantic Multimedia Web (Part 2)

3,760

Published on

A Semantic Multimedia Web: Part 2 of a series of lectures given at the Universidad Politécnica de Madrid (UPM), May 2009

A Semantic Multimedia Web: Part 2 of a series of lectures given at the Universidad Politécnica de Madrid (UPM), May 2009

Published in: Education
1 Comment
3 Likes
Statistics
Notes
No Downloads
Views
Total Views
3,760
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
8
Comments
1
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. A Semantic Multimedia Web: Create, Annotate, Present and Share your Media Raphaël Troncy, < [email_address] > CWI, Interactive Information Access
  • 2. Agenda <ul><li>Semantic Web technologies </li></ul><ul><ul><li>RDF: a general triple model for modeling information </li></ul></ul><ul><ul><li>RDFS / OWL: languages for representing ontologies on the web </li></ul></ul><ul><ul><li>SKOS: simple knowledge organization system </li></ul></ul><ul><li>Modeling your Ontology </li></ul><ul><ul><li>Methodologies for building ontologies </li></ul></ul><ul><ul><li>Tools for publishing vocabularies on the web </li></ul></ul><ul><li>Linked Data </li></ul><ul><ul><li>Expose you data following 4 basic principles </li></ul></ul><ul><ul><li>Re-use a growing amount of publicly open datasets </li></ul></ul><ul><ul><li>Applications powered by linked data </li></ul></ul>
  • 3. RDF <ul><li>is the first layer of the Semantic Web standards </li></ul>
  • 4. RDF <ul><li>stands for R esource D escription F ramework </li></ul>
  • 5. RDF <ul><li>stands for R esource: pages, images, videos , ... everything that can have a URI D escription: attributes, features, and relations of the resources F ramework: model, languages and syntaxes for these descriptions </li></ul>
  • 6. R D F <ul><li>is a triple model i.e. every piece of knowledge is broken down into </li></ul><ul><li> ( subject , predicate , object ) </li></ul>
  • 7. knowledge <ul><li>take for instance the following piece of </li></ul>
  • 8. image.jpg has for creator Raphael and depicts the elephant Ganesh
  • 9. image.jpg has for creator Raphael image.jpg depicts the elephant Ganesh
  • 10. ( image.jpg , creator , Raphael ) ( image.jpg , depicts , Elephant Ganesh ) ( subject , predicate , object )
  • 11. R D F <ul><li>in the atoms of knowledge are triples of the form ( subject , predicate , object ) </li></ul>
  • 12. a triple the RDF atom Predicate Subject Object
  • 13. <ul><li>is also a graph model to link the descriptions of resources </li></ul>RDF
  • 14. <ul><li>triples can be seen as arcs of a graph ( vertex , edge , vertex ) </li></ul>RDF
  • 15. Raphael creator image.jpg depicts Ganesh
  • 16. <ul><li>in resources and properties are identified by URIs </li></ul>R D F http://mydomain.org/mypath/myresource
  • 17. R D F <ul><li>in values of properties can also be literals i.e. strings of characters </li></ul>
  • 18. http://www.cwi.nl/~troncy#me http://purl.org/dc/elements/1.1#creator http://flickr.com/photos/rtroncy/2923/ http://xmlns.com/foaf/0.1#depicts Elephant Ganesh
  • 19. nodes RDF allows blank
  • 20. anonymous a resource may be i.e. not identified by a URI and noted _: xyz
  • 21. e.g., there exists an image about Ganesh
  • 22. http://comm.semanticweb.org/core#Image rdf:type _:x http://xmlns.org/foaf/0.1/#depicts &quot;Ganesh&quot;
  • 23. break blank nodes the graph, they cannot be reused
  • 24. name your resources and reuse existing names as much as possible
  • 25. <ul><li>< /> has an XML syntax </li></ul>R D F
  • 26. <ul><li>don't run away </li></ul>
  • 27. <ul><li><rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:foaf=&quot;http://xmlns.com/foaf/0.1/&quot; > <rdf:Description rdf:about= &quot;http://flickr.com/photos/rtroncy/2923&quot;> </li></ul><ul><li> <dc:creator rdf:resource= &quot; http://www.cwi.nl/~troncy#me &quot;/> <foaf:depicts> Ganesh </foaf:depicts> </rdf:Description> </li></ul><ul><li></rdf:RDF> </li></ul>
  • 28. <ul><li>it's only for ma chi nes </li></ul>
  • 29. open-world assumption as opposed to the closed world assumption of classical systems
  • 30. in short: the absence of a triple is not significant
  • 31. ( image.jpg , creator , Raphael ) <ul><li>doesn't mean image.jpg has one creator </li></ul>
  • 32. ( image.jpg , creator , Raphael ) <ul><li>means image.jpg has at least one creator </li></ul>
  • 33. if you have no other triples giving authors it does not mean they are not true .
  • 34. RDF S <ul><li>stands for R D F Schema </li></ul>
  • 35. RDF S <ul><li>provides primitives to write lightweight schemas for R D F triples </li></ul>
  • 36. long way <ul><li>a little drop of semantics goes a </li></ul>
  • 37. RDF S <ul><li>provides primitives to... </li></ul><ul><li>... define the vocabulary used in triples </li></ul><ul><li>... define elementary inferences </li></ul>
  • 38. RDF S <ul><li>to define classes of resources and organize their hierarchy </li></ul>
  • 39. DOCUMENT REPORT
  • 40. RDF S <ul><li>to define relations between resources and organize their hierarchy </li></ul>Tom Doc13 AUTHOR
  • 41. CREATOR AUTHOR
  • 42. RDF S <ul><li>allows for multiple inheritance for classes and properties </li></ul>
  • 43. PERSON MAN MALE
  • 44. RDFS <ul><li>relations have a signature </li></ul>DOMAIN RANGE
  • 45. RDFS <ul><li>relations have a signature </li></ul><ul><li>... the domain is the type of the resource the relation starts from. </li></ul><ul><li>... the range is the type of the resource the relation ends to. </li></ul>
  • 46. RDFS <ul><li>relations with several... </li></ul><ul><li>... domains mean all domains apply. </li></ul><ul><li>... ranges mean all ranges apply. </li></ul><ul><li>Ranges and domains are optional </li></ul>
  • 47. but looks like object programming,
  • 48. properties <ul><li>are first class citizens, </li></ul><ul><li>they are not defined inside classes, </li></ul><ul><li>they have their own hierarchy. </li></ul>
  • 49. no overwriting <ul><li>in particular a property can not be refined for sub classes of its range or domain. </li></ul>
  • 50. multi-instantiation <ul><li>a resource can have several types, </li></ul><ul><li>it can be the instance of several classes </li></ul><ul><li>like multiple lights, facets on a resource. </li></ul>
  • 51. RDF S <ul><li>provides primitives to... </li></ul><ul><li>... give labels ... </li></ul><ul><li>... give comments ... </li></ul><ul><li>... for classes and properties </li></ul>
  • 52. RDF... <ul><li>RDFS using the XML syntax for </li></ul>
  • 53. <rdf:RDF xml:base=&quot;http://inria.fr/2005/humans.rdfs&quot; xmlns:rdf =&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot; xmlns:rdfs=&quot;http://www.w3.org/2000/01/rdf-schema#&quot; xmlns=&quot;http://www.w3.org/2000/01/rdf-schema#> < Class rdf:ID=&quot; Man &quot;> < subClassOf rdf:resource=&quot;# Person &quot;/> < subClassOf rdf:resource=&quot;# Male &quot;/> <label xml:lang=&quot;en&quot;>man</label> <comment xml:lang=&quot;en&quot;>a male person</comment> </Class>
  • 54. <rdf: Property rdf:ID=&quot; hasMother &quot;> < subPropertyOf rdf:resource=&quot;# hasParent &quot;/> < range rdf:resource=&quot;# Female &quot;/> < domain rdf:resource=&quot;# Human &quot;/> <label xml:lang=&quot;en&quot;>has for mother</label> <comment xml:lang=&quot;en&quot;>a female parent</comment> </rdf:Property> </rdf:RDF>
  • 55. RDF S <ul><li>semantics : standard inference rules to derive additional triples from known statements. </li></ul>
  • 56. example of type propagation <ul><li>IF (c 2 , subClassOf , c 1 ) AND (x, type , c 2 ) THEN (x, type , c 1 ) </li></ul>IF (Man, subClassOf , Person) AND (Tom, type , Man) THEN (Tom, type , Person)
  • 57. example of property propagation <ul><li>IF (p 2 , subPropertyOf , p 1 ) AND (x, p 2 , y) THEN (x, p 1 , y) </li></ul>IF (author, subPropertyOf , creator) AND (Tom, author, Report12) THEN (Tom, creator, Report12)
  • 58. example of subClass transitivity <ul><li>IF (c 2 , subClassOf , c 1 ) AND (c 3 , subClassOf , c 2 ) THEN (c 3 , subClassOf , c 1 ) </li></ul>IF (Person, subClassOf , Animal) AND (Man, subClassOf , Person) THEN (Man, subClassOf , Animal)
  • 59. example of subProp transitivity <ul><li>IF (p 2 , subPropertyOf , p 1 ) AND (p 3 , subPropertyOf , p 2 ) THEN (p 3 , subPropertyOf , p 1 ) </li></ul>IF (parent, subPropertyOf , ancestor) AND (father, subPropertyOf , parent) THEN (father, subPropertyOf , ancestor)
  • 60. example of domain inference <ul><li>IF (p 1 , domain , c 1 ) AND (x, p 1 , y) THEN (x, type , c 1 ) </li></ul>IF (author, domain , Human) AND (Tom, author, Report12) THEN (Tom, type , Human)
  • 61. example of range inference <ul><li>IF (p 1 , range , c 1 ) AND (x, p 1 , y) THEN (y, type , c 1 ) </li></ul>IF (author, range , Document) AND (Tom, author, Report12) THEN (Report, type , Document)
  • 62. <ul><li>OWL is a new layer on top of RDFS </li></ul><ul><ul><li>OWL Lite </li></ul></ul><ul><ul><li>OWL DL </li></ul></ul><ul><ul><li>OWL Full </li></ul></ul><ul><li>Actually, OWL is a restriction of RDF Classes  Properties  Individuals </li></ul>
  • 63.  
  • 64.  
  • 65.  
  • 66. Semantic Web Tutorials <ul><li>RDF in a nutshell </li></ul><ul><ul><li>Tutorial ( credits @ Fabien Gandon ) </li></ul></ul><ul><li>RDFS in a nutshell </li></ul><ul><ul><li>Tutorial ( credits @ Fabien Gandon ) </li></ul></ul><ul><li>Useful Resources </li></ul><ul><ul><li>http://www.w3.org/2001/sw/ </li></ul></ul><ul><ul><li>http://www.w3.org/People/Ivan/CorePresentations/ </li></ul></ul>
  • 67. Agenda <ul><li>Semantic Web technologies </li></ul><ul><ul><li>RDF: a general triple model for modeling information </li></ul></ul><ul><ul><li>RDFS / OWL: languages for representing ontologies on the web </li></ul></ul><ul><ul><li>SKOS: simple knowledge organization system </li></ul></ul><ul><li>Modeling your Ontology </li></ul><ul><ul><li>Methodologies for building ontologies </li></ul></ul><ul><ul><li>Tools for publishing vocabularies on the web </li></ul></ul><ul><li>Linked Data </li></ul><ul><ul><li>Expose you data following 4 basic principles </li></ul></ul><ul><ul><li>Re-use a growing amount of publicly open datasets </li></ul></ul><ul><ul><li>Applications powered by linked data </li></ul></ul>
  • 68. Modeling Vocabularies/Ontologies <ul><li>Approaches: </li></ul><ul><ul><li>Ontology learning </li></ul></ul><ul><ul><li>Ontology reuse </li></ul></ul><ul><ul><li>Competency questions </li></ul></ul><ul><li>Methodologies: </li></ul><ul><ul><li>Uschold and Grüninger </li></ul></ul><ul><ul><li>M ETHONTOLOGY : whole process of ontology engineering </li></ul></ul><ul><ul><li>Differential principles </li></ul></ul>
  • 69. Semantic principles <ul><li>Actor </li></ul><ul><ul><li>Role of a human being </li></ul></ul><ul><ul><li>Role in making movies </li></ul></ul><ul><ul><li>Is a character in the movie </li></ul></ul><ul><li>Director </li></ul><ul><ul><li>Role of a human being </li></ul></ul><ul><ul><li>Role in making movies </li></ul></ul><ul><ul><li>Is not in the movie, but directs it </li></ul></ul>Generic “sèmes” Specific “sèmes”
  • 70. Differential Principles Role Actor Director P3 : difference between the sibling nodes P4 : common property shared by the sibling nodes Plays in the movie Directs the movie P1: property with parent node (being a role of a human being) P2 : difference with parent node
  • 71. Differential Principles <ul><li>Amount to explicitly specify what is understood when using a concept </li></ul><ul><li>Formulate the semantic commitment that should be respected to use concepts </li></ul>
  • 72. Extensional description of concepts Actor Linguistic semantics: Is a role: plays in a movie Denotation: {{w1: d11, d12..}, {w2: d21, d22, …}…} Director: Linguistic semantics Is a role; Directs a movie Denotation: {{w1: d11, d12..}, {w2: d21, d22, …}…} Role of a human being <ul><li>Extensional red links: lattice structure is possible </li></ul><ul><li>Intensional black links : lattice structure is forbidden (tree) </li></ul>{Woody Allen, Clint Eastwood,…} forbidden
  • 73. Summary
  • 74. DOE
  • 75. OilEd
  • 76. WebODE
  • 77. OntoEdit
  • 78. KAON Workbench
  • 79. NeOn Toolkit
  • 80. SWOOP
  • 81. Protégé 4
  • 82. How to support the collaborative ontology modeling and editing task?
  • 83. Knoodl
  • 84. Collaborative Protégé
  • 85.  
  • 86. Neologism SIOC example
  • 87. Assignment <ul><li>VoCamp like idea: let's model some vocabularies ... </li></ul><ul><ul><li>Brainstorming: pick a domain </li></ul></ul><ul><ul><li>Choose (essential) terms related to the domain </li></ul></ul><ul><ul><li>Sketch the model (blackboard) </li></ul></ul><ul><ul><li>Find and re-use existing vocabularies </li></ul></ul><ul><ul><li>Publish your model </li></ul></ul>
  • 88. Agenda <ul><li>Semantic Web technologies </li></ul><ul><ul><li>RDF: a general triple model for modeling information </li></ul></ul><ul><ul><li>RDFS / OWL: languages for representing ontologies on the web </li></ul></ul><ul><ul><li>SKOS: simple knowledge organization system </li></ul></ul><ul><li>Modeling your Ontology </li></ul><ul><ul><li>Methodologies for building ontologies </li></ul></ul><ul><ul><li>Tools for publishing vocabularies on the web </li></ul></ul><ul><li>Linked Data </li></ul><ul><ul><li>Expose you data following 4 basic principles </li></ul></ul><ul><ul><li>Re-use a growing amount of publicly open datasets </li></ul></ul><ul><ul><li>Applications powered by linked data </li></ul></ul>
  • 89. Wake Up Video
  • 90. Linked Data Principles <ul><li>Tim Berners Lee [2006] ( Design Issues ) </li></ul><ul><ul><li>Use URIs to identify things (anything, not just documents); </li></ul></ul><ul><ul><li>Use HTTP URIs – globally unique names, distributed ownership – so that people can look up those names; </li></ul></ul><ul><ul><li>Provide useful information in RDF – when someone looks up a URI; </li></ul></ul><ul><ul><li>Include RDF links to other URIs – to enable discovery of related information </li></ul></ul>
  • 91. Linked Data Issues <ul><li>Issues: </li></ul><ul><ul><li>These are principles, not implementation advices </li></ul></ul><ul><ul><li>Many things (deliberately?) kept blurry </li></ul></ul><ul><ul><li>Non-information resource vs information resource debate </li></ul></ul><ul><ul><ul><li>Architecture of the World Wide Semantic Web [ AWWSW ] </li></ul></ul></ul><ul><ul><ul><li>Ontology of Resources for Linked Data [ Halpin & Presutti ] </li></ul></ul></ul><ul><ul><li>Content Negotiation and 303, httpRange-14 resolution </li></ul></ul><ul><li>Formats: </li></ul><ul><ul><li>HTML + RDF/XML vs. RDFa </li></ul></ul>
  • 92. The limit of content negotiation <ul><li>Is conneg-ing between rdf+xml and video/* a good behavior? </li></ul><ul><ul><li>Current configuration of jigsaw [ W3C Photo RDF ] </li></ul></ul><ul><ul><li>Equivalent: « Content is &quot;equivalent&quot; to other content when both fulfill essentially the same function or purpose upon presentation to the user » [ WAG ] </li></ul></ul><ul><ul><li>Abuse of content negotiation: what is the sameness of two representations of a resource? </li></ul></ul><ul><li>How to draw the line? </li></ul><ul><ul><li>Are an image and its ASCII version close enough to be content negotiated? </li></ul></ul><ul><ul><li>Is a transcoded media content still a fragment? </li></ul></ul>
  • 93. The Web of Data <ul><li>Expose open datasets in RDF </li></ul><ul><li>Set RDF links among the data items for different datasets </li></ul><ul><li>Over 4.5 billion triples, 5 millions links (March 2009) </li></ul><ul><li>... still counting </li></ul>
  • 94. DBpedia <ul><li>DBpedia is a community effort to: </li></ul><ul><ul><li>extract structured &quot;infobox&quot; information from Wikipedia </li></ul></ul><ul><ul><li>interlink DBpedia with other datasets on the Web </li></ul></ul>
  • 95. Scrapping infobox data http://dbpedia.org/resource/Madrid http://dbpedia.org/page/Madrid http://dbpedia.org/data/Madrid.rdf
  • 96. Automatic Links Among Open Datasets Processors can switch automatically from one to the other …
  • 97. Linked Data Cloud – March 2007
  • 98. Linked Data Cloud – August 2007
  • 99. Linked Data Cloud – March 2008
  • 100. Linked Data Cloud – September 2008
  • 101. Linked Data Cloud – March 2009
  • 102. Searching Entities in the Cloud
  • 103. Searching Linked Data
  • 104. Linked Data goes mainstream
  • 105. Cultural Heritage Data Cloud
  • 106. Professional Art Annotation with Thesauri from the Web
  • 107. Take Home Message <ul><li>Reuse what is there </li></ul><ul><ul><li>Of course, one could create RDF data manually … … but that is unrealistic on a large scale </li></ul></ul><ul><ul><li>Goal is to generate RDF data automatically when possible and &quot;fill in&quot; by hand only when necessary </li></ul></ul><ul><ul><ul><li>service to get RDF from flickr images http://www.kanzaki.com/works/2005/imgdsc/flickr2rdf </li></ul></ul></ul><ul><ul><ul><li>service to get RDF from XMP http://www.ivan-herman.net/cgi-bin/blosxom.cgi/WorkRelated/SemanticWeb/xmpextract.html </li></ul></ul></ul><ul><li>Expose what you make </li></ul>
  • 108. Thanks for your attention http:// www.cwi.nl/~troncy

×