Semantisk integrasjon

Post on 15-Jan-2015

1.236 views 3 download

description

Hvordan oppnå bedre virksomhetsarkitektur med semantisk teknologi?

Transcript of Semantisk integrasjon

1

Semantisk integrasjon

Sømløs virksomhet, Bouvet, 2011-12-14Lars Marius Garshol, <larsga@bouvet.no>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 larsga@bouvet.no

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