Thesis presentation Samuel Lampa

1,337 views
1,233 views

Published on

Presentation of my project, entitled "SWI-Prolog as a Semantic Web tool for semantic querying in Bioclipse: Integration and performance benchmarking"

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,337
On SlideShare
0
From Embeds
0
Number of Embeds
74
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Thesis presentation Samuel Lampa

  1. 1. MSc Thesis presentation: SWI-Prolog as a Semantic Web tool for semantic querying in Bioclipse: Integration and performance benchmarking Samuel Lampa <http://saml.rilspace.org> Supervisor: Egon Willighagen <http://chem-bla-ics.blogspot.com> Bioclipse & Proteochemometric group (Prof. Jarl Wikberg) Department of Pharmaceutical Bioinformatics Uppsala University 2010-06-18
  2. 2. What is Bioclipse?
  3. 3. What is the Semantic Web?
  4. 4. What is the Semantic Web?
  5. 5. RDF Example (In Notation 3 format) @prefix : <http://www.nmrshiftdb.org/onto#> . xsd: <http://www.w3.org/2001/XMLSchema#> . nmr: <http://pele.farmbio.uu.se/nmrshiftdb/?> nmr:moleculeId=234 :hasSpectrum nmr:spectrumId=4735 ; :moleculeId "234" . nmr:spectrumId=4735 :hasPeak nmr:s4735p0 , nmr:s4735p1 , nmr:s4735p2 . nmr:s4735p0 :hasShift "17.6"^^xsd:decimal . nmr:s4735p1 :hasShift "18.3"^^xsd:decimal . nmr:s4735p2 :hasShift "22.6"^^xsd:decimal .
  6. 6. SPARQL Example PREFIX fn: <http://www.w3.org/2005/xpath-functions#> PREFIX nmr: <http://www.nmrshiftdb.org/onto#> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> SELECT ?s WHERE { ?s nmr:hasPeak [ nmr:hasShift ?s1 ] , [ nmr:hasShift ?s2 ] , [ nmr:hasShift ?s3 ] . FILTER ( fn:abs(?s1 - 17.6) < 0.3 ) . FILTER ( fn:abs(?s2 - 18.3) < 0.3 ) . FILTER ( fn:abs(?s3 - 22.6) < 0.3 ) . }
  7. 7. What is Prolog?
  8. 8. Prolog: Fewer technical layers Conventional software Prolog
  9. 9. % === SOME FACTS === Prolog code example hasHBondDonorsCount( substanceX, 3 ). hasHBondDonorsCount( substanceY, 5 ). hasHBondDonorsCount( substanceZ, 7 ). hasHBondAcceptorsCount( substanceX, 7 ). hasHBondAcceptorsCount( substanceY, 10 ). hasHBondAcceptorsCount( substanceZ, 13 ). hasMolecularWeight( substanceX, 320 ). hasMolecularWeight( substanceY, 500 ). hasMolecularWeight( substanceZ, 500 ). % === A RULE ("RULE OF FIVE" ÀLA PROLOG) === isDrugLike( Substance ) :- hasHBondDonorsCount( Substance, HBDonors ), HBDonors <= 5, hasHBondAcceptorsCount( Substance, HBAcceptors ), HBAcceptors <= 10, hasMolecularWeight( Substance, MW ), MW < 500. % === QUERYING THE RULE === ?- isDrugLike(substanceX) true. ?- isDrugLike(X) X = substanceX ; X = substanceY.
  10. 10. % === SOME FACTS === Prolog code example hasHBondDonorsCount( substanceX, 3 ). hasHBondDonorsCount( substanceY, 5 ). hasHBondDonorsCount( substanceZ, 7 ). hasHBondAcceptorsCount( substanceX, 7 ). hasHBondAcceptorsCount( substanceY, 10 ). hasHBondAcceptorsCount( substanceZ, 13 ). hasMolecularWeight( substanceX, 320 ). hasMolecularWeight( substanceY, 500 ). hasMolecularWeight( substanceZ, 500 ). Implication (“If [body] then [head]”) Head A RULE ("RULE OF FIVE" ÀLA PROLOG) === % === isDrugLike( Substance ) :- hasHBondDonorsCount( Substance, HBDonors ), HBDonors <= 5, hasHBondAcceptorsCount( Substance, HBAcceptors ), HBAcceptors <= 10, hasMolecularWeight( Substance, MW ), MW < 500. Body % === QUERYING THE RULE === ?- isDrugLike(substanceX) Comma means true. conjunction (“and”) ?- isDrugLike(X) X = substanceX ; Capitalized terms are always variables X = substanceY.
  11. 11. % === SOME FACTS === Prolog code example hasHBondDonorsCount( substanceX, 3 ). hasHBondDonorsCount( substanceY, 5 ). hasHBondDonorsCount( substanceZ, 7 ). hasHBondAcceptorsCount( substanceX, 7 ). hasHBondAcceptorsCount( substanceY, 10 ). hasHBondAcceptorsCount( substanceZ, 13 ). hasMolecularWeight( substanceX, 320 ). hasMolecularWeight( substanceY, 500 ). hasMolecularWeight( substanceZ, 500 ). % === A RULE ("RULE OF FIVE" ÀLA PROLOG) === isDrugLike( Substance ) :- hasHBondDonorsCount( Substance, HBDonors ), HBDonors <= 5, hasHBondAcceptorsCount( Substance, HBAcceptors ), HBAcceptors <= 10, hasMolecularWeight( Substance, MW ), MW < 500. % === QUERYING THE RULE === Testing a specific atom ?- isDrugLike(substanceX) (“sutstanceX”) true. ?- isDrugLike(X) By submitting a variable “X”, X = substanceX ; it will be populated with all instances which satisfies X = substanceY. the “isDrugLike” rule
  12. 12. Prolog: Fewer technical layers Conventional software Prolog
  13. 13. What was done in this project?
  14. 14. The work done (New functionality in dashed lines)
  15. 15. SWI-Prolog in action in Bioclipse
  16. 16. SPARQL Code used
  17. 17. Prolog code used (1)
  18. 18. Prolog code used (2)
  19. 19. Thank you! Samuel Lampa <http://saml.rilspace.org> Supervisor: Egon Willighagen <http://chem-bla-ics.blogspot.com> Bioclipse & Proteochemometric group (Prof. Jarl Wikberg) Department of Pharmaceutical Bioinformatics Uppsala University 2010-06-18

×