Forskning på IDA Exempel: Datasäkerhet

Hur lagras informationen?
(hög nivå)
Hur accessar man informationen?
(användarnivå)
1
Biologiska databanker
• biologisk data i elektronisk format
• exempel: SWISS-PROT, EMBL, DDBJ,
PDB, GENBANK, KEGG, ACEDB
• används dagligen i forskningen
2
Biologiska databanker
Forskningsresultat
Modell
Databank
Databankhanteringssystem
Frågor
Svar
behandling av
frågor/uppdateringar
Access till lagrad data
Fysiska
databanken
3
1 tgctacccgc gcccgggctt ctggggtgtt ccccaaccac ggcccagccc tgccacaccc
61 cccgcccccg gcctccgcag ctcggcatgg gcgcgggggt gctcgtcctg ggcgcctccg
121 agcccggtaa cctgtcgtcg gccgcaccgc tccccgacgg cgcggccacc gcggcgcggc
181 tgctggtgcc cgcgtcgccg cccgcctcgt tgctgcctcc cgccagcgaa agccccgagc
241 cgctgtctca gcagtggaca gcgggcatgg gtctgctgat ggcgctcatc gtgctgctca
301 tcgtggcggg caatgtgctg gtgatcgtgg ccatcgccaa gacgccgcgg ctgcagacgc
361 tcaccaacct cttcatcatg tccctggcca gcgccgacct ggtcatgggg ctgctggtgg
421 tgccgttcgg ggccaccatc gtggtgtggg gccgctggga gtacggctcc ttcttctgcg
481 agctgtggac ctcagtggac gtgctgtgcg tgacggccag catcgagacc ctgtgtgtca
541 ttgccctgga ccgctacctc gccatcacct cgcccttccg ctaccagagc ctgctgacgc
601 gcgcgcgggc gcggggcctc gtgtgcaccg tgtgggccat ctcggccctg gtgtccttcc
661 tgcccatcct catgcactgg tggcgggcgg agagcgacga ggcgcgccgc tgctacaacg
721 accccaagtg ctgcgacttc gtcaccaacc gggcctacgc catcgcctcg tccgtagtct
781 ccttctacgt gcccctgtgc atcatggcct tcgtgtacct gcgggtgttc cgcgaggccc
841 agaagcaggt gaagaagatc gacagctgcg agcgccgttt cctcggcggc ccagcgcggc
901 cgccctcgcc ctcgccctcg cccgtccccg cgcccgcgcc gccgcccgga cccccgcgcc
961 ccgccgccgc cgccgccacc gccccgctgg ccaacgggcg tgcgggtaag cggcggccct
1021 cgcgcctcgt ggccctacgc gagcagaagg cgctcaagac gctgggcatc atcatgggcg
1081 tcttcacgct ctgctggctg cccttcttcc tggccaacgt ggtgaaggcc ttccaccgcg
1141 agctggtgcc cgaccgcctc ttcgtcttct tcaactggct gggctacgcc aactcggcct
1201 tcaaccccat catctactgc cgcagccccg acttccgcaa ggccttccag ggactgctct
1261 gctgcgcgcg cagggctgcc cgccggcgcc acgcgaccca cggagaccgg ccgcgcgcct
1321 cgggctgtct ggcccggccc ggacccccgc catcgcccgg ggccgcctcg gacgacgacg
1381 acgacgatgt cgtcggggcc acgccgcccg cgcgcctgct ggagccctgg gccggctgca
1441 acggcggggc ggcggcggac agcgactcga gcctggacga gccgtgccgc cccggcttcg
1501 cctcggaatc caaggtgtag ggcccggcgc ggggcgcgga ctccgggcac ggcttcccag
1561 gggaacgagg agatctgtgt ttacttaaga ccgatagcag gtgaactcga agcccacaat
1621 cctcgtctga atcatccgag gcaaagagaa aagccacgga ccgttgcaca aaaaggaaag
1681 tttgggaagg gatgggagag tggcttgctg atgttccttg ttg
4
DEFINITION
ACCESSION
SOURCE ORGANISM
REFERENCE
AUTHORS
TITLE
REFERENCE
AUTHORS
TITLE
Homo sapiens adrenergic, beta-1-, receptor
NM_000684
human
1
Frielle, Collins, Daniel, Caron, Lefkowitz,
Kobilka
Cloning of the cDNA for the human
beta 1-adrenergic receptor
2
Frielle, Kobilka, Lefkowitz, Caron
Human beta 1- and beta 2-adrenergic
receptors: structurally and functionally
related receptors derived from distinct
genes
5
Entity-relationship
protein-id
source
PROTEIN
accession
m
definition
Reference
n
title
article-id
ARTICLE
author
6
Hur lagras informationen?
(hög nivå)
Hur accessar man informationen?
(användarnivå)
•
•
•
•
Text (IR)
Semistrukturerad data
Datamodeller (DB)
Regler + Fakta (KB)
struktur
precision
7
Innehåll
• Text: filmodell, formell modell,
konceptuella modeller (boolesk, vektor)
• Databaser: Relationsdatabaser,
Objektorienterade databaser
• Semistrukturerad data
• Kunskapsbaser
8
Text - Information Retrieval (IR)
• sökning baseras på ord
• konceptuella modeller:
boolesk, vektor, probabilistisk, …
• filmodell:
flat fil, inverterad fil, ...
9
IR - Filmodell: inverterad fil
inverterad fil
anslagningsfil
WORD
HITS
LINK
…
…
…
adrenergic
32
…
…
cloning
…
receptor
22
…
…
…
DOCUMENTS
…
Doc1
…
Doc2
1
…
53
…
DOC# LINK
dokumentfil
…
…
5
…
1
2
…
5
…
…
10
IR - Filmodell: inverterad fil
• kontollerad vokabulär
(eng. controlled vocabulary)
• stoplista
• stamning (eng. stemming)
11
IR - formell beskrivning
IR modell: (D,Q,F,R)
• D är en mängd av dokumentrepresentationer
• Q är en mängd av frågor
• F är ett ramverk för
dokumentrepresentationer, frågor och deras
samband
• R tilldelar ett dokument-fråga-par ett reellt
tal (rankning)
12
IR - konceptuella modeller
Klassikt IR
• Boolesk
• Vektormodellen
• (Probabilistisk)
13
Booleska modellen
dokumentrepresentation
Doc1
adrenergic
yes
cloning
yes
Doc2
no
yes
receptor
no
--> (1 1 0)
no
--> (0 1 0)
14
Booleska modellen
frågor : boolesk (and, or, not)
Q1: cloning and (adrenergic or receptor)
frågor översätts till disjunktiv normalform (DNF)
DNF: disjunktion av konjunktioner av ord med eller utan ‘not’
Regler: not not A --> A
not(A and B) --> not A or not B
not(A or B) --> not A and not B
(A or B) and C --> (A and C) or (B and C)
A and (B or C) --> (A and B) or (A and C)
(A and B) or C --> (A or C) and (B or C)
A or (B and C) --> (A or B) and (A or C)
15
Booleska modellen
Q1: cloning and (adrenergic or receptor)
--> (cloning and adrenergic) or (cloning and receptor)
DNF kompletteras
+ översätts till samma representation som dokumenten
(cloning and adrenergic) or (cloning and receptor)
--> (cloning and adrenergic and receptor)
or (cloning and adrenergic and not receptor)
or (cloning and receptor and adrenergic)
or (cloning and receptor and not adrenergic)
--> (1 1 1) or (1 1 0) or (1 1 1) or (0 1 1)
--> (1 1 1) or (1 1 0) or (0 1 1)
16
Booleska modellen
Doc1
adrenergic
yes
cloning
yes
Doc2
no
yes
Q1: cloning and (adrenergic or receptor)
--> (1 1 1) or (1 1 0) or (0 1 1)
receptor
no
--> (1 1 0)
no
--> (0 1 0)
Resultat: Doc1
Q2: cloning and not adrenergic
--> (0 1 0) or (0 1 1)
Resultat: Doc2
17
Booleska modellen
Fördelar
• baserad på en intuitiv och enkel formell
modell (mängdteori och boolesk algebra)
Nackdelar
• binära beslut
- ett ord är relevant eller inte
- ett dokument är relevant eller inte,
ingen partiell matchning
18
Booleska modellen
Doc1
adrenergic
yes
cloning
yes
Doc2
no
yes
Q3: adrenergic and receptor
--> (1 0 1) or (1 1 1)
receptor
no
--> (1 1 0)
no
--> (0 1 0)
Resultat: tom
19
Vektormodellen (förenklad)
Doc1 (1,1,0)
Doc2 (0,1,0)
cloning
Q (1,1,1)
adrenergic
sim(d,q) = d . q
|d| x |q|
receptor
20
Vektormodellen
• Introducerar vikter i dokumentvektorerna
(t.ex. Doc3 (0, 0.5, 0))
• Vikterna representerar hur viktigt en term är
för beskrivningen av ett dokuments innehåll
• Vikterna är positiva reella tal
• Om en term inte förekommer i dokumentet,
då är vikten = 0
21
Vektormodellen
Doc1 (1,1,0)
Doc3 (0,0.5,0)
cloning
Q4 (0.5,0.5,0.5)
adrenergic
sim(d,q) = d . q
|d| x |q|
receptor
22
Vektormodellen
• Hur definierar man vikterna? tf-idf
dj (w1,j, …, wt,j)
wi,j = vikten för term ki i dokument dj
= fi,j x idfi
23
Vektormodellen
• Hur definierar man vikterna? tf-idf
term frequency freqi,j: hur ofta förekommer
term ki i dokument dj?
normaliserad term frequency:
fi,j = freqi,j / maxl freql,j
24
Vektormodellen
• Hur definierar man vikterna? tf-idf
document frequency : i hur många dokument
förekommer term ki?
N = totala antalet dokument
ni = antal dokument i vilka ki förekommer
inverse document frequency idfi: log (N / ni)
25
Vektormodellen
• Hur definierar man vikterna för en fråga?
rekommendation:
q= (w1,q, …, wt,j)
wi,q = vikt för term ki i fråga q
= (0.5 + 0.5 fi,q) x idfi
26
Vektormodellen
•
•
-
Fördelar
termviktning förbättrar sökprestanda
partiell matchning
rankning enligt likhet
Nackdel?
antagande att termerna förekommer
oberoende av varandra
27
IR - effektivitetsmått
Precision =
antal hittade dokument som är relevanta
antal hittade dokument
Recall =
antal hittade dokument som är relevanta
antal relevanta dokument
28
IR - mått
Precision =
|RA| / |A|
Relevanta dokument
i svarsmängden
|RA|
Recall =
|RA| / |R|
Relevanta dokument
|R|
Svarsmängden
|A|
29
Databaser
• Relationsdatabaser:
- modell: tabeller + relationsalgebran
- frågespråk (SQL)
• Objektorienterade databaser:
- modell: fortlevande object,
meddelande, inkapsling, ärvning
- frågespråk (t.ex. OQL)
• System: GDB (R), ACEDB (OO)
30
Relationsdatabaser
PROTEIN
REFERENCE
PROTEIN-ID
1
ACCESSION
DEFINITION
SOURCE
PROTEIN-ID
ARTICLE-ID
NM_000684
Homo sapiens
adrenergic,
beta-1-, receptor
human
1
1
1
2
ARTICLE-AUTHOR
ARTICLE-ID
1
1
1
1
1
1
2
2
2
2
ARTICLE-TITLE
AUTHOR
Frielle
Collins
Daniel
Caron
Lefkowitz
Kobilka
Frielle
Kobilka
Lefkowitz
Caron
ARTICLE-ID
TITLE
1
Cloning of the cDNA for the human
beta 1-adrenergic receptor
2
Human beta 1- and beta 2adrenergic receptors: structurally
and functionally related
receptors derived from distinct
genes
31
SQL
select source
from protein
where accession = NM_000684;
PROTEIN
PROTEIN-ID
1
ACCESSION
DEFINITION
SOURCE
NM_000684
Homo sapiens
adrenergic,
beta-1-, receptor
human
32
SQL
select title
from protein, article-title, reference
where protein.accession = NM_000684
and protein.protein-id
= reference.protein-id
and reference.article-id
= article-title.article-id;
PROTEIN
PROTEIN-ID
1
REFERENCE
PROTEIN-ID
ARTICLE-ID
1
1
1
2
ARTICLE-TITLE
ACCESSION
DEFINITION
SOURCE
NM_000684
Homo sapiens
adrenergic,
beta-1-, receptor
human
ARTICLE-ID
TITLE
1
Cloning of the …
2
Human beta 1- …
33
Objekt-Orienterade Databaser
(OODB)
• Världen modelleras m.h.a. objekt.
• Ett objekt har ett tillstånd (värde) och ett
beteende (operationer).
• fortlevande (eng. persistent) objekt permanent lagring
(ibland tillåts även kortvariga (eng.
transient) objekt)
34
Objekt
• Ett objekt har en objektidentifierare (OID)
som inte är synlig för användaren.
• OIDn kan inte ändras
• objekt versus värde
(ett värde har ingen OID)
• objektstrukturen kan vara godtyckligt
komplex (atom, tuple, set, list, bag, array)
35
Exempel - objekttillstånd
• o1(id1, tuple,
<accession: NM_000684,
source : human,
definition: ’Homo sapiens adrenergic …’,
reference: o2>)
• o2(id2, set, {o3,o4})
OBS: Dessa exempel använder inte någon standardsyntax36
Exempel - objekttillstånd
• o3(id3, tuple,
<title: `Cloning of …’, author: o5 >)
• o4(id4, tuple,
<title: `Human beta-1 …’, author: o6 >)
• o5(id5, list, [Frielle, Collins, Daniel, Caron,
Lefkowitz, Kobilka])
• o6(id6, list, [Frielle, Kobilka , Lefkowitz,
Caron])
37
human
NM_000684
”Homo sapiens adrenergic,
beta-1-, receptor”
SOURCE
ACCESSION
DEFINITION
REFERENCE
AUTHOR
set
AUTHOR
TITLE
list
”Cloning of …”
Frielle
TITLE
list
Collins
Frielle
Daniel
Kobilka
Caron
Lefkowitz
Lefkowitz
Kobilka
”Human beta-1 …”
Caron
38
Klasser
define class protein
type tuple (
accession: string;
source : string;
definition: string;
reference: set(article); );
operations
create-protein(string,string,string,set(article)): protein;
get-accession: string;
get-source: string;
get-definition: string;
get-references: set(article);
add-reference(article): void;
end protein;
39
Klasser
define class article
type tuple (
title: string;
author: list(string); );
operations
create-article(string, list(string)): article;
get-title string;
get-authors: list(string);
print-article-info string;
end article;
40
Exempel program
program
variables: article1, article2, protein1;
begin
article1 := create-article(’Cloning….’, list(Frielle, Collins,
Daniel, Caron, Lefkowitz, Kobilka));
protein1 := create-protein(NM_000684, human,’Homo
sapiens adrenergic …’, set(article1));
article2 := create-article(’ Human beta-1….’, list(Frielle,
Kobilka , Lefkowitz, Caron]);
protein1.add-reference(article2);
end;
41
Operationer
• inkapsling: operation = gränssnitt + kropp
- gränssnitt: hur anropar man operationen?
vad ger operationen som resultat?
> synlig för användaren, används i program
- kropp: hur implementeras operationen?
> osynlig för användaren
• program baseras på skickandet av
meddelande (eng. message passing)
42
Ärvning
• journal-article subtype-of article:
journal-name journal-volume page-numbers
journal-article ärver alla attribut och operationer från article
och har även journal-name, journal-volume och pagenumbers som attribut
• human-protein subtype-of protein (source = ’human’)
43
Operator overloading
• Man kan använda samma operatornamn för
olika implementationer
exempel:
print-article-info för article skriver ut information om titel
och författare.
print-article-info för journal-article skriver ut information
om titel och författare men även om tidskriftens namn,
volym och sidonummer.
44
Frågespråk OQL
• select … from … where
select distinct … from … where
• iteratorvariabler
• väguttryck (eng. path expressions)
• struct
45
Frågor
select o.source
from o in protein
where o.accession = NM_000684;
NM_000684
ACCESSION
human
SOURCE
46
Frågor
select struct (accession: o.accession, source: o.source)
from o in protein
where Frielle in
(select a.author
from a in o.reference);
NM_000684
human
ACCESSION
SOURCE
REFERENCE
set
AUTHOR
Frielle
AUTHOR
Frielle
47
Frågespråk OQL
OQL tillåter även:
• vyar
• aggregering
• speciella operationer för list och array
(first, last, nth)
• order-by
• group-by
48
Semistrukturerad data
• data som är ej enbart text, men som inte är
så välstrukturerad som data i databaser
• förekommer ofta i webbdatabanker och när
man vill integrera databanker
• system: Genbank, OMIM
49
Semistrukturerad data egenskaper
•
•
•
•
•
oregelbunden struktur
strukturen är implicit
strukturen är partiell
’data guide’ och schema
stora data guides
50
Semistrukturerad data egenskaper
• man ska kunna ignorera data guide vid
frågor
• data guide utvecklas snabbt
• objekt kan ändra tillhörighet av typ/klass
• skillnaden mellan data och data guide
försvinner
51
Semistrukturerad data - modell
• nätverk av noder
• objektmodell (oid)
• fråga: vägsökning i nätverket (’path search’)
52
”Homo sapiens adrenergic,
beta-1-, receptor”
human
NM_000684
SOURCE
ACCESSION
DEFINITION
REFERENCE
REFERENCE
AUTHOR
TITLE
AUTHOR
AUTHOR
”Cloning of …”
Frielle
Collins
TITLE
AUTHOR
AUTHOR
”Human beta-1 …”
AUTHOR
AUTHOR
Daniel
AUTHOR
Caron
AUTHOR
AUTHOR
Lefkowitz
Kobilka
53
Frågor
NM_000684
select source
where accession = NM_000684;
human
SOURCE
ACCESSION
My-protein
NM_000684
select reference.title
where accession = NM_000684;
ACCESSION My-protein
REFERENCE
TITLE
”Cloning of …”
REFERENCE
TITLE
”Human
beta-1 …”
54
Frågor
NM_000684
select source
where accession = NM_000684;
human
SOURCE
ACCESSION
My-protein
NM_000684
select #p.title
where accession = NM_000684;
ACCESSION My-protein
REFERENCE
TITLE
”Cloning of …”
REFERENCE
TITLE
”Human
beta-1 …”
55
Kunskapsbaser
• ofta baserad på en logik
• svarsmekanism baserad på en
inferensmekanism
• kunskapsbaser kan ofta lagras i
primärminne
• användbar vid ontologier
56
Kunskapsbaser
(F) source(NM_000684, Human)
(R) source(P?,Human) => source(P?,Mammal)
(R) source(P?,Mammal) => source(P?,Vertebrate)
Q: ?- source(NM_000684, Vertebrate)
A: yes
Q: ?- source(x?, Mammal)
A: x? = NM_000684
57
Litteratur
• Information Retrieval
* Baeza-Yates, R., Ribeiro-Neto, B., Modern Information Retrieval, AddisonWesley, 1999.
• Databaser
* Elmasri, R., Navathe, S., Fundamentals of database systems, 4th edition,
Addison Wesley, 2004.
• Semistrukturerad data
* Abiteboul, S., ‘Querying semi-structured data’, Proceedings of the Sixth
International Conference on Database Theory, LNCS 1186, pp 1-18, 1997.
(* = ingår helt eller delvis i kurslitteraturen, se kurshemsidan)
58