48
1 Semantisk integrasjon Sømløs virksomhet, Bouvet, 2011-12-14 Lars Marius Garshol, <[email protected] > http://twitter.com/larsga

Semantisk integrasjon

Embed Size (px)

DESCRIPTION

Hvordan oppnå bedre virksomhetsarkitektur med semantisk teknologi?

Citation preview

Page 1: Semantisk integrasjon

1

Semantisk integrasjon

Sømløs virksomhet, Bouvet, 2011-12-14Lars Marius Garshol, <[email protected]>http://twitter.com/larsga

Page 2: Semantisk integrasjon

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

Page 3: Semantisk integrasjon

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

Page 4: Semantisk integrasjon

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

Page 5: Semantisk integrasjon

5

Visjonen om tjenestebussen

• Kun tjenester på forretningsnivå• Felles informasjonsmodell

ESB

Page 6: Semantisk integrasjon

6

Realiteten

• Bussen blir bare et transportlag

• Systemene kobles i realiteten rett mot hverandre

• Systemspesifikke modeller “lekker ut” gjennom bussen

ESB

Page 7: Semantisk integrasjon

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

Page 8: Semantisk integrasjon

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

Page 9: Semantisk integrasjon

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.

• ...

Page 10: Semantisk integrasjon

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?

Page 11: Semantisk integrasjon

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"

Page 12: Semantisk integrasjon

12

Ikke-semantiske data

• Hva er dette?• Hvor mange ting er det

her?• Hva er ting og hva er

egenskaper?

Page 13: Semantisk integrasjon

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!

Page 14: Semantisk integrasjon

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

... ... ...

Page 15: Semantisk integrasjon

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

Page 16: Semantisk integrasjon

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

Page 17: Semantisk integrasjon

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

Page 18: Semantisk integrasjon

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

Page 19: Semantisk integrasjon

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?

Page 20: Semantisk integrasjon

20

SPARQL

• Spørrespråk for RDF– standardisert av W3C– mange implementasjoner– standard nettprotokoll (http-basert)

• Svært sammenlignbart med SQL

Page 21: Semantisk integrasjon

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

Page 22: Semantisk integrasjon

22

Variasjon i struktur

Produkt

navn

pris beskrivelse

FysiskProdukt

bilde

vekt

Tjeneste

kompetansekrav

Page 23: Semantisk integrasjon

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

Page 24: Semantisk integrasjon

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...

Page 25: Semantisk integrasjon

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

Page 26: Semantisk integrasjon

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...)

Page 27: Semantisk integrasjon

27

Er Kyoto i Asia?

Kyoto Japanlocated-in

Asialocated-in

select ?c where { Kyoto located-in ?c . }

owl:TransitiveProperty

type-instancelocated-in

Page 28: Semantisk integrasjon

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

Page 29: Semantisk integrasjon

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

Page 30: Semantisk integrasjon

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

Page 31: Semantisk integrasjon

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

Page 32: Semantisk integrasjon

32

Men tilbake til problemet...

• Må – alle snakke sitt eget språk?– alle snakke det samme språket?

• Eller finnes det en mellomting?

Page 33: Semantisk integrasjon

33

Et datanav

Bussen Datanavet

Applikasjon

Page 34: Semantisk integrasjon

34

En pyramide av modeller

Begrepskatalog(SKOS)

Informasjonsmodell grunndata (OWL)Metadata

-modellKode-verk

System 4System 2 System 5System 1

System 6

System 3

Page 35: Semantisk integrasjon

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

Page 36: Semantisk integrasjon

36

SKOS

• RDF-standard for tesauruser

skos:Conce

pt

skos:broader

skos:narrower

skos:relatedskos:labelskos:definition...

skos:closeMatchskos:exactMatch

Page 37: Semantisk integrasjon

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

?

Page 38: Semantisk integrasjon

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

Page 39: Semantisk integrasjon

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.

Page 40: Semantisk integrasjon

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]))

Page 41: Semantisk integrasjon

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" ]; ].

Page 42: Semantisk integrasjon

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

Page 43: Semantisk integrasjon

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

Page 44: Semantisk integrasjon

44

Semantisk datanav

Bussen Datanavet

Applikasjon

R2RML R2RML R2RML R2RML R2RML

SDshare

OWL RIF

SPARQL

Page 45: Semantisk integrasjon

45

SAWSDL

System 3

Informasjonsmodell grunndata

ex: Employ

ee

xml:Ansatt

sawsdl:modelReference

System 4

xml:Saksbehandler

sawsdl:liftingMapping

sawsdl:loweringMapping

Page 46: Semantisk integrasjon

46

Hvilke verktøy finnes?

Triple stores

APIsRedland RDF Libraries

Reasoners

pellet

Modellering

Page 47: Semantisk integrasjon

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

Page 48: Semantisk integrasjon

48

Rike muligheter