Upload
lars-marius-garshol
View
1.236
Download
3
Embed Size (px)
DESCRIPTION
Hvordan oppnå bedre virksomhetsarkitektur med semantisk teknologi?
Citation preview
1
Semantisk integrasjon
Sømløs virksomhet, Bouvet, 2011-12-14Lars Marius Garshol, <[email protected]>http://twitter.com/larsga
2
Virksomhetsarkitektur i dag
• Det står nokså ille til i de fleste større organisasjoner
• Systemportefølje nokså tilfeldig akkumulert
• Mye duplisering av logikk, data og systemer
• Inkompatible datamodeller i ulike systemer
• Endring er tungt og vanskelig
3
Endring
• Påtvinges utenfra– gjennom oppkjøp og reorganisering– typisk vedtatt av forretning eller storting
• Påvirker IT-systemene– men går på tvers av IT-behov
• Slik er det, og slik skal det være– man må lære å leve med det
4
Konsekvensene
• Dyrt– å endre IT-systemer er svært dyrt– mye unødvendig manuelt ekstraarbeid– surr og rot pga dårlig datakvalitet
• Påvirker omdømmet– feilsendte varer, ikke svar på søknad, osv osv
• Går glipp av forretningsmuligheter– fordi systemparken ikke holder tritt med
ambisjonene
• Bryter lover og regler– f.eks fordi datagrunnlaget er for dårlig til at
rapportering kan gjøres slik man er pålagt
5
Visjonen om tjenestebussen
• Kun tjenester på forretningsnivå• Felles informasjonsmodell
ESB
6
Realiteten
• Bussen blir bare et transportlag
• Systemene kobles i realiteten rett mot hverandre
• Systemspesifikke modeller “lekker ut” gjennom bussen
ESB
7
Kanonisk datamodell
• Én informasjonsmodell for hele virksomheten som har alle informasjonselementer?– som alle meldinger må følge for å sendes via bussen?
• Hvor lang tid tar det å lage den?– å modellere ut alle detaljer på tvers av alle systemer?
• Og hvor mange nye systemer/entiteter kommer til mens man holder på?– det blir som å prøve å hugge alle trærne i Sibir– de vokser til like fort som du klarer å hugge
• Man må leve med flere datamodeller
8
Å vite hva ting betyr
• Et sentralt problem i IT-forvaltning er at man ofte ikke vet hva dataene faktisk betyr
• Kunnskapen eksisterte en gang, men har gått tapt– eller eies kun av noen veldig få
• Navn på felter osv hjelper, men er ikke nok
9
Hva er samboerskap?
• Lov om individuell pensjonsordning– LOV-2008-06-27-62, § 3-7
• Med samboer forstås her a) person som kunden har felles bolig og felles barn med, b) person som kunden lever sammen med i ekteskaps- eller partnerskapslignende forhold når det godtgjøres at forholdet har bestått uavbrutt i de siste fem år før kundens død, og det ikke forelå forhold som ville hindre at lovlig ekteskap eller registrert partnerskap ble inngått.
• Forskrift om innhenting av opplysninger– FOR-2005-07-08-826, punkt 1
• samboere: personer som lever sammen og har felles barn.
• Lov om vergemål– LOV-2010-03-26-9, § 2
• Med samboere menes i denne loven to personer som bor sammen i et ekteskapslignende forhold.
• ...
10
Semantikk
• Har blitt fremhevet som en mulig løsning
• Alle skal ha semantikk• Og metadata• Helst semantiske metadata• Semantikk er nemlig noe man kan “strø
over” et system, og slik løse alt– kanskje?
11
Hva er semantisk teknologi?
• Semantikk– betydning (og særlig ordenes betydning)
• Semantisk teknologi– gjør det mulig å beskrive dataenes betydning– vanligvis ligger betydning kun i
applikasjonskode og i menneskelig tolkning
John Searle, "The Chinese Room"
12
Ikke-semantiske data
• Hva er dette?• Hvor mange ting er det
her?• Hva er ting og hva er
egenskaper?
13
Skjemaet
• Det er vanlig å hevde at semantikken ligger i skjemaet
• Her ser vi tydelig hvor lite semantikk det er snakk om
• XML er ikke en semantisk teknologi!
14
Databaser og RDF
ID NAME EMAIL
1 Stian Danenbarger stian.danenbarger@
2 Lars Marius Garshol [email protected]
3 Axel Borge axel.borge@bouvet
PERSON
SUBJECT PROPERTY OBJECT
http://example.com/person/1 rdf:type ex:Person
http://example.com/person/1 ex:name Stian Danenbarger
http://example.com/person/1 ex:email stian.danenbarger@
http://example.com/person/2 rdf:type Person
http://example.com/person/2 ex:name Lars Marius Garshol
... ... ...
15
Hvorfor er tripler bedre?
• Data lagres uavhengig av fysisk skjema– mer fleksibelt, lettere å utvide vokabularet
• Skjemainformasjon lagres sammen med data– muliggjør svært rik annotering av skjema
• Lettere å håndtere variasjoner i struktur– og samtidig beholde det som er felles
• Alle slags data kan lagres i samme database– kundedata, produktdata, ansattinfo, ...
• Data kan kobles på tvers– kundedata og ansattinfo kan sys sammen
16
http://dbpedia.org/resource/Bouvet_ASA
• Globalt unik– på tvers av alle systemer og
organisasjoner
• Distribuert– alle som har et domene kan lage URI-er
• Selvdokumenterende– kan følges for å finne dokumentasjon
• Rik syntaks– masse muligheter til å finne på dumme
ting
17
Men er det mer semantisk?
• Skiller ting/egenskaper
• Relasjoner er lette å se• Vi vet navnene på alle
ting• Kan spørre etter alle
人 og automatisk få med subtypene
• Den dypere betydningen forblir uklar
源氏
男性
人
女性
夕顔との出会
い
夕顔
出来事
参加 参加
Typer
subtypesubtype
type-instance type-instance
18
女性
Kobling på tvers
源氏
男性
人
夕顔との出会
い
夕顔
出来事
参加 参加
Typer
subtypesubtype
type-instance type-instance
Fictional charact
er
Prince Genji
type-instance
owl:sameAs
Fictional work
The Tale of
Genji
type-instance
appears-in
19
Men kan vi koble på tvers?
• Veldig ofte er det mulig– enten fordi man har felles identifikatorer– eller man kan bruke mer avanserte teknikker
A B?
20
SPARQL
• Spørrespråk for RDF– standardisert av W3C– mange implementasjoner– standard nettprotokoll (http-basert)
• Svært sammenlignbart med SQL
21
SPARQL-arkitektur
• Språket er omhyggelig designet for semantisk bruk
• Dvs: resonnering over data under kjøring
• Kan gi mye svar ut over hva som står i data
SPARQL-motor
Ontologi Regler
Data
22
Variasjon i struktur
Produkt
navn
pris beskrivelse
FysiskProdukt
bilde
vekt
Tjeneste
kompetansekrav
23
RDFS og OWL
• Skjemaspråk for RDF– brukes for å beskrive klasser og egenskaper– tilsvarer på mange måter XML Schema
• Representeres i RDF, sammen med dataene– dette gir en lang rekke fordeler
• Er dog litt annerledes enn man skulle tro– bruker Open World Assumption (se neste foil)– langt rikere mulighet for å beskrive
semantikken i data, ved hjelp av logikk
24
Open World Assumption
• At vi ikke har hørt noen si det betyr ikke at det ikke kan være sant– at vi ikke har noen dødsdato betyr ikke at
vedkommende lever– at personene har hver sin rad i person-
tabellen betyr ikke at de er forskjellige personer
• Betyr at dataelementer kan henge sammen på uventede måter– det gjør de som regel ikke i enkeltsystemer– men på tvers av systemer i en virksomhet...
25
Skjema med OWA
Regel: Verdien av dc:creator må være en person
rdf:type
dc:creator
sau
rdf:type
rdf:typeowl:disjointWith
dc:creator
person
rdfs:Range
26
Semantisk?
• Dette er mer enn skjemaspråk– man kan også si noe om betydning (se neste
foil m.fl)
• Ikke bare kan man si disse tingene– systemet tror på deg, også!– det tvinger oss til å faktisk gjøre ting riktig– (det kan jo være en utfordring...)
27
Er Kyoto i Asia?
Kyoto Japanlocated-in
Asialocated-in
select ?c where { Kyoto located-in ?c . }
owl:TransitiveProperty
type-instancelocated-in
28
Problemet med logikk
• Å få sagt det man vil er ikke så vanskelig– problemet er at mange utledninger
er beviselig umulig å gjøre pr maskin
• Matematikernes løsning var å lage masse nye logikker– alle må utelate noe, og egner seg
til forskjellige formål
• En av disse er Description Logic– utviklet på 80-tallet– grunnlaget for OWL
29
Logikk #1
• Bussjåfører er personer som kjører busser• Sjåfører er personer som kjører kjøretøy• Altså er bussjåfører sjåfører!
ex:BusDriverowl:intersectionOf owl:restriction
ex:Bus
owl:on
ex:drives
owl:someValuesFrom
ex:Person
ex:Driverowl:intersectionOf owl:restriction
owl:someValuesFrom
ex:Vehicle
owl:on
owl:subClassOf
http://owl.man.ac.uk/2003/why/latest/
owl:subClassOf
30
Logikk #2
• Du kan faktisk løse sudoku med OWL• Definér en klasse SudokuTall– si at denne har et kjent, lukket sett med
verdier
• Si hvilke celler som må ha samme/forskjellig verdi
• Fyll inn kjente verdier• Kjør resonnering!
http://www.mindswap.org/~aditkal/sudoku
31
Men ... du må snakke logikk!
• En betydelig utfordring for de fleste
• Krever at man er svært presis med hva man sier
• For det meste brukes bare en veldig liten del av OWL
32
Men tilbake til problemet...
• Må – alle snakke sitt eget språk?– alle snakke det samme språket?
• Eller finnes det en mellomting?
33
Et datanav
Bussen Datanavet
Applikasjon
34
En pyramide av modeller
Begrepskatalog(SKOS)
Informasjonsmodell grunndata (OWL)Metadata
-modellKode-verk
System 4System 2 System 5System 1
System 6
System 3
35
Begrepsoversikt
• Et naturlig sted å starte er å bygge en ordbok, eller begrepskatalog– kort og godt en oversikt over begrepene som
brukes i virksomheten– gjerne i form av en tesaurus
• adresse– postadresse– bostedsadresse
• trygdemessig bostedsadresse• skattemessig bostedsadresse
– besøksadresse– matrikkeladresse– oppholdsadresse
36
SKOS
• RDF-standard for tesauruser
skos:Conce
pt
skos:broader
skos:narrower
skos:relatedskos:labelskos:definition...
skos:closeMatchskos:exactMatch
37
Oversettelse mellom vokabularer
• OWL kan gjøre mye
• SPARQL kan brukes
• I tillegg kan man bruke regelspråk
Informasjonsmodell grunndata (OWL)
System 4System 3
OWL OWL
?
38
En modell kan utvide en annen
foaf: Person
foaf: Image
foaf:knows
foaf:depiction
FOAF(friend of a friend)
ph: Person
ph: Photoph:depiction-of
ph: Event
ph:contained-in
ph:taken-by
Photo ontology(not developed yet)
ph:depicted-in
owl:inverseOf
ph: Place
ph: Category
SKOS dbpedia
39
Oversettelse med SPARQL
• SPARQL-spørringer kan produsere RDF
CONSTRUCT ?x ?p ?yFROM <http://...>WHERE { ?x ?p2 ?y . ?p2 ex:maps-to ?p .}
Her oversetter vi fra ett vokabulartil et annet, ved hjelp av en triviellmapping-konfigurasjon.
Konfigurasjonen kan dog gjøres myemer kompleks, f.eks med viderebeskrivelse av ?p eller på selvemappingen.
40
Rule Interchange Format
• W3C-standard– generell familie av regelspråk– integrert i RDF-verdenen
• Kan brukes for å definere mappinger– f.eks med omskriving av verdier og mer
kompliserte krav
• Kan også brukes i regelmotorer– f.eks i saksbehandling
Forall ?x, ?y, ?z (?x[ex:uncleOf -> ?z] :- And(?x[ex:brotherOf -> ?y] ?y[ex:parentOf -> ?z]))
41
Hvordan RDF-isere data?
• En løsning er å bruke R2RML– W3C-standard for mapping
fra RDBMS til RDF
• Rent deklarativ mapping– uttrykt i RDF
RDBMS
Oversetter
SQL
SPARQL
R2RML
<#TriplesMap1> rr:logicalTable [ rr:tableName "EMP" ]; rr:subjectMap [ rr:template "http://data.example.com/employee/{EMPNO}"; rr:class ex:Employee; ]; rr:predicateObjectMap [ rr:predicate ex:name; rr:objectMap [ rr:column "ENAME" ]; ].
42
Federering av spørringer
Føderator
RDBMS
Oversetter
RDBMS
Oversetter
RDF
SPARQL
SPARQL
• Send en spørring over alle datakilder til føderator
• Spørringen splittes opp og fordeles
• Hver kilde svarer på sin del
• Resultatet sammenstilles og returneres
• Fristende, men høy risiko
http://www.revelytix.com/content/spinner
43
Alternativet
• Data kan samles i én database via integrasjon
• Ikke så mye mer arbeid enn forrige strategi
• Men vesentlig mindre risikabelt
RDBMS
Oversetter
RDBMS
Oversetter
RDF
SPARQL
RDBMS
Oversetter
SDshare
44
Semantisk datanav
Bussen Datanavet
Applikasjon
R2RML R2RML R2RML R2RML R2RML
SDshare
OWL RIF
SPARQL
45
SAWSDL
System 3
Informasjonsmodell grunndata
ex: Employ
ee
xml:Ansatt
sawsdl:modelReference
System 4
xml:Saksbehandler
sawsdl:liftingMapping
sawsdl:loweringMapping
46
Hvilke verktøy finnes?
Triple stores
APIsRedland RDF Libraries
Reasoners
pellet
Modellering
47
"No silver bullet"
• Semantisk teknologi gjør fort folk ivrige– viktig å huske at dette ikke er nok alene– det aller viktigste er å følge de rette
arkitektoniske prinsippene– men semantisk teknologi understøtter dette
"There is no single development, in either technology or in management technique, that by itself promises even one order-of-magnitude improvement in productivity, in reliability, in simplicity." –Fred Brooks, 1986
48
Rike muligheter