HCLS Hackathon, MIT

29 Aug 2012


Eric Prud'hommeaux
Lena, dbooth


<ericP> http://www.w3.org/2012/Talks/0604-SPARQL-SQL/all#%(36)





<ericP> rr: http://www.w3.org/ns/r2rml#

<ericP> @prefix rr: <http://www.w3.org/ns/r2rml#> .

<luke1> http://semanticscience.org/resource/SIO_000059

<luke> Link to Protégé 4.1 download: http://protege.stanford.edu/download/registered.html#p4.1

<luke> please download the 4.1 release, NOT the beta.

Protege and OWL

<dbooth> Q: Does OWL have multiple inheritance?

<dbooth> A: Yes.

<Lena> scribenick: Lena

<dbooth> Luke: Classes in OWL are not object-oriented classes, they're logical classes.

<luke> Protégé tutorial we'll be following (the Manchester pizza tutorial): http://owl.cs.manchester.ac.uk/tutorials/protegeowltutorial/resources/ProtegeOWLTutorialP4_v1_3.pdf

<julie> I'll be taking notes for my own benefit here. Feel free to contribute as you like. https://docs.google.com/a/eagle-i.org/document/d/1RBorUckuM3CQE71pwO4pGWQ76fHAgcqjes2hCJ5UcGQ/edit

luke: step 0 - install protege
... ontology is a view of the world

<StuartTurner> Thanks Julie

<luke> create new ontology http://www.pizza.com/ ontologies/pizza.owl

<luke> one more time, sans space: http://www.pizza.com/ontologies/pizza.owl

… clinical records terms can come from more than 1 ontology

ericP: to minimize version change impact, keep the URLs from previous ontology that haven't changed
... that way, all urla re fw compatible

… minimize the impact of new ideas for coding stuff

… tools like protege don't make it easy, but doable

dbooth: owl:sameAs usage - depends on whether you "really" want to say that two things are the same

… usually there are slight differences

…. those are not same:as

… for a particular application, that difference may not matter,

… in that case, it's ok to say they are sameAs

… but sameAs can be harmful if used out of context

luke: :active ontology tab

… add annotation

… the reasoner ignores annotations

… can be made verbose

luke: page 18

… tab Individuals

<luke> Cheese

<luke> Mozzarella

<luke> Parmesan

<luke> Meat

<luke> Ham

<luke> Pepperoni

<luke> Salami

<luke> SpicyBeef

<luke> Seafood

<luke> Anchovy

<luke> Prawn

<luke> Tuna

<luke> Vegetable

<luke> Caper

<luke> Mushroom

<luke> Olive

<luke> Onion

<luke> Pepper

<luke> GreenPepper

<luke> JalapenoPepper

<luke> RedPepper

<luke> Tomato

<luke> toppings in this file, too: https://dl-web.dropbox.com/get/Public/toppings.txt

<iker> I'd really like to have that conversations about Classes vs. Instances

<luke> try this file link instead: http://elmonline.ca/sw/toppings.txt

ericP: name classes using labes or semantic free identifiers?
... invent classX, but then decide that label x does not describe it well

… the way it has been used is consistend with an interpreation but not consistent with the label

… solve all problems in computer science with an extra level of indirection

… we can make that change without changing the functionality by just changing the label, not the class identifier

… the class names being opaque has disandvantages because it makes it harder to work with the data

for the people on the phone: just finished generating the hierarchy on page 23

luke: object properties vs data properties

… object properties - relate an individual and a individual; data properties - relate an individual and a literal

<dbooth> scribenick: dbooth

Q: Because we make one property an inverse of another, will it automatically make the other the inverse of the first?

Luke: Yes.
... Now adding inverse of hasTopping ...

Justin: What's the topObjectProperty?

Luke: It's just the top property in OWL, analogous to Thing, but for properties.

<scribe> scribenick: Lena

luke: functional property e.g. hasBirthMother (there can only be 1)

<ericP> DM -u DM --password you guessed it, "DM"

(we've restarted)

start reasoner - will compute all possible inferences

statements in yellow are infered

use the reasoner for more interesting things

consistency checking

scribe: making sure the ontology is internally consistent

… we'll add an inconsistency

… to see what it dioes

on CheeseTopping, add subClass "InconsistentTopping"

add superClass


(macs tend to crash when this is attempted, so make sure you save before this next action):

go to reasoner -> synchronize reasoner

<skc> It works without crashing if you do 'stop reasoner' and then 'start reasoner', instead of 'synchronize reasoner'

<skc> (i'm on mac & beta)

<luke> Protégé 4.1 appears not to have a "Stop reasoner" button.

<bobP> I. am. toasted.

<bobP> :)

<bobP> Justin emailed me his pizza ontology - thanks!

skipping to chapter 5

Mapping relational to RDF

<ericP> whatever ericP's rambling about now

ericP: mashups become queries

… db space - what this brings to connect data from diff dbs

… direct mapping

… given 2 tables, patients and consultations, how to represent them as a graph>

foreign keys are implied by the db structure

direct mapping: come up with names for the tuples

and come up with some url for it

we can also derive names from relationships and create a url for those

no real configuration other than base url - rdf graph that represents info that was in the SQL table


useful because of referential integrity

datatype in sql correspond to xml schema datatypes and rdf datatypes

one of the goals of direct mapping is to represent the information in diff languages

slide 27

when connecting data from diff db, we "hope" they are going to have overlaps, but frequently not primary keys

some info will likely be duplicate

so we need to do manipulation

this can be done either in sparql or in sql

we are going to play with a SPAAACE database :)

slide 30

schema does not include any identifiable/conventional terminologies

sparql constructs can be used to transform schemas to less sociopath graphs

R2RML is a formal language to do the same

slide 34 should say space:Person instead of foaf:Person

<dbooth> Eric: D2R does not follow R3RML spec (yet).

xSPARQL does follow the R2RML spec

<dbooth> Luke: Going forward you probably want to look at R2RML, but D2RQ works now.

<luke> http://elmonline.ca/hack/


<luke> http://d2rq.org/getting-started

<luke> (D2RQ tutorial)

<luke> (D2RQ mapping syntax: http://d2rq.org/d2rq-language

syntax for autmating the generation of a mapping file on mysql in localhost:

./generate-mapping -u demo -p demo jdbc:mysql:///demo > democonfing.ttl

most db schemas are additions of tables, not often removal

dbooth: direct mapping approach is advantage in this scenario because nothing is lost in those kind of changes

… needed mapping at the rdf level still works but might need to add a bit more

luke: for data to be semantically meaningful, you need to normalize it

metaome demo

Christopher de Sousa

interest in the product

previously at novartis

need to know everything about a compound

how to develop a product that meets the needs of the other 99%


10 people at metaome

platform distilbio

e.g. what are the movies where ingrid bergman and humphrey bogard acter together?

with more and more info generated in life sciences, that gets harder

currently working with 15 db

in life sciences

in the middle, the engine with ontology mappings

also taken into consideration same genes having different names

on top we have the query interface



e.g. are the any hypotensive that can be used as a cancer drug?

click "disable instant"

type losartan

type protein -> select related

type go -> select go-molecular-function

<ericP> next up: http://www.w3.org/wiki/HCLSHackathon2012#R2RML_with_XSparql

<Frans> mac ports installation: http://www.macports.org/install.php

<Frans> a great tool to have for future software software needs as well

<Frans> (choose pkg installer)

<Frans> once installed you can run "sudo port install maven3" from a shell

<skc> i can share the jar … i finished mvn install

<inserted> Eagle-I


<daniela> eagle-i: https://docs.google.com/presentation/d/118vgbZ7PaPWsizC8vswML8-UK4XCTSrjG5Hk2ShEbNE/edit

daniela: eagle-i

network of institutions that share biomedical information

solve the problem of researchers who have resource and don't know what to do + researchers who need resources to get started

people are looking for something that might be in the lab next door

all systems based on an ontoogy allows easy expansion

2009 - eagle-i ontology dev started

all based on sem web tech

indexing data = index rdf + ontology + interfaces driven by the ontology

have a linked open data set

open source

<dbooth> s/TOPIC: \n//

<julie> To try out the data-entry interface for eagle-i, feel free to go to training.eagle-i.net username:L4 password:Level4. There is a help documentation, but there are also video tutorials and handbooks at open.med.harvard.edu/display/eaglei/training

Summary of Action Items

[End of minutes]

Minutes formatted by David Booth's scribe.perl version 1.136 (CVS log)
$Date: 2012/08/29 21:14:35 $

Scribe.perl diagnostic output

[Delete this section before finalizing the minutes.]
This is scribe.perl Revision: 1.136  of Date: 2011/05/12 12:01:43  
Check for newer version at http://dev.w3.org/cvsweb/~checkout~/2002/scribe/

Guessing input format: RRSAgent_Text_Format (score 1.00)

Succeeded: s/soilve/solve/
Succeeded: s/be opaque/being opaque/
Succeeded: s/Toppint/Topping/
Succeeded: s/talbe/table/
FAILED: s/talbe/table/
Succeeded: i/rambling/Topic: Mapping relational to RDF
Succeeded: s/sat/say/
Succeeded: i/eagle/Topic: Eagle-I
Succeeded: s/D2R, Luke//
FAILED: s/Topic: \n//
Succeeded: s/Topic:/TOPIC:/
Succeeded: s/Topic://
Succeeded: s/Topic://
Succeeded: i/eagle-i: https/Topic: eagle-i
Found ScribeNick: Lena
Found ScribeNick: dbooth
Found ScribeNick: Lena
Inferring Scribes: Lena, dbooth
Scribes: Lena, dbooth
ScribeNicks: Lena, dbooth
Default Present: MITKiva
Present: MITKiva

WARNING: Fewer than 3 people found for Present list!

WARNING: No date found!  Assuming today.  (Hint: Specify
the W3C IRC log URL, and the date will be determined from that.)
Or specify the date like this:
<dbooth> Date: 12 Sep 2002

Guessing minutes URL: http://www.w3.org/2012/08/29-hack-minutes.html
People with action items: 

WARNING: Input appears to use implicit continuation lines.
You may need the "-implicitContinuations" option.

WARNING: IRC log location not specified!  (You can ignore this 
warning if you do not want the generated minutes to contain 
a link to the original IRC log.)

[End of scribe.perl diagnostic output]