Upload
bernhard-haslhofer
View
2.622
Download
3
Tags:
Embed Size (px)
DESCRIPTION
Describes the experiences we made with the CRM. The presentation points out three main problems technicians (no technical specification, mapping ambiguities, complexity of mapping chains) will face when they decide to implement the CRM in a real-world application. It also proposes to introduce a kind of mapping guidelines that support potential CRM adopters in producing more homogenous mappings.
Citation preview
Bernhard Haslhofer & Philipp Nussbaumer, November 2009
CIDOC CRM in Practice- Experiences, Problems, and Possible Solutions -
Bernhard Haslhofer & Philipp Nussbaumer, November 2009
Background
• BRICKS Project (2003 - 2007)
• Goal
• build an infrastructure for integrating contents and metadata from heterogeneous sources
• build value added services on top
Bernhard Haslhofer & Philipp Nussbaumer, November 2009
Background
• Build an application that provides access to archaeological findings from two distinct institutions
• Provided advanced search (e.g. faceted search)
• Use the CIDOC-CRM to deal with metadata heterogeneities
Bernhard Haslhofer & Philipp Nussbaumer, November 2009
Background
Bernhard Haslhofer & Philipp Nussbaumer, November 2009
CIDOC CRM Mapping• Metadata Schemes:
!"#$%&'&(
!"#$%
&'()*$+(*,-,*,
)*+&,-./$&
012"34&1523
415#"1/6"-&15"%
7&589-
:#$&121
;&<2#5<"-52<
65<-
)*=&1>& '&=&1>&
;2<21 ;2<21'&(
!&,?@;
.!#$%&'()*$+(*,-
,*, )*+&,-./$&
012"34&1523
415#"1/6"-&15"%
A&589-
'B%&1
;&<2#5<"-52<
65<-
)*=&1>&C3&>,15$-52< '&=&1>&C3&>,15$-52<
6&-923)(6"<B(",-B1& DDD
!/<-",-5,"%%/E"<3E>&#"<-5,"%%/E&FB5="%&<- !&#"<-5,"%%/E&FB5="%&<-
G2E&FB5="%&<,&>
Bernhard Haslhofer & Philipp Nussbaumer, November 2009
CIDOC CRM Mapping• Sample Metadata Instance:
!"#$%&'(
!"#$%&
'()"#*+,-"
'()"#*&".#/0-*012
3"045*
!""#$%&'()*+"#,"%
'-./
0-12/34-563789
(:#%34
;-566/078/,98*"/08:
<=>?@A3->37899"*51;'<982=<>
:::>>>
Bernhard Haslhofer & Philipp Nussbaumer, November 2009
CIDOC CRM Mapping• The CIDOC CRM:
!"#$%&#!'()(*
!+#,-./0123#!'()(*
!44#5-16)6(-'(#7(-.
!8+#,).-9:/2'
!8;#532<-
!8=#>).-'6)0'
!;#$0'?)()0'#:(2(-
!=#5-1)0?
!4@#,A)'B
!;C#D<(01
!="#D//-332()0'
!8"#$0'(2<(#50)'(
EEE
EEEEEE
!=8#D??1-66
!=+#FGH-<(#7?-'()I)-1
!++#&2'9&2?-#FGH-<( !+J#$0'<-/(K23#FGH-<(!88#,*/- !84#&2(-1)23
!8J#&-26K1-.-'(#L')(
!8M#N2'BK2B-
EEE
!4;#7'I01.2()0'#FGH-<(
!;"#>0<K.-'(
EEE
EEE
!;M#O)6K23#7(-. !;J#7.2B-
!8#!P-'(
!4#D<()P)(*
!""#&0?)I)<2()0'
EEE
EEE
!"+#510?K<()0'
!==#532<-#D//-332()0'
!=C#,).-#D//-332()0' !8@#>2(-
EEE EEE
!=4#:/2()23#$001?)'2(-6
!+C#>-6)B'#01#510<-?K1-
!8C#51).)()P-#O23K-
!M@#QK.G-1
!M"#,).-#51).)()P-
!M+#:(1)'B
Bernhard Haslhofer & Philipp Nussbaumer, November 2009
CIDOC CRM Mapping• Source Metadata Expressed in CRM:
!!"#$#%&
!"#$$
%&$'#&()
!"#$%&'(%$%)*$+,-..
/0$10.2-0+#$34$2"#$+,-..$563..17,8$912"$+30+:#2#$;-,<#=
>?@$&A-B#
>CC$*-0D*-E#$(7F#+2
GC$"-.$286#$51.$286#$34=
>?H$'3+<A#02
GIJ$E3+<A#02.$51.$E3+<A#02#E$10=
GH$1.$1E#02141#E$78$51E#02141#.=
>?H$'3+<A#02GH$1.$1E#02141#E$78$
51E#02141#.=
GHJK$1.$+3A63.#E$34$543:A.$6-:2$34=
G?$"-.$032#
>LM$'1A#0.130
GM?$"-.$E1A#0.13051.$E1A#0.130$34=
GNH$"-.$<01251.$<012$34=
>L@$*#-.<:#A#02$O012
*
GNJ$"-.$;-,<# GC$"-.$286#$51.$286#$34=
>KJ$P<A7#:
+,-.
>LL$!86#
/)0*1'
>KC$Q2:10B2345#&2*4"62#78)7$2492:)842;<=2>?@ABC,2DEF)20$$7)62(08(#2<=2
A?@A>,
>LL$!86#
!40&
>MH$/66#,,-2130
GHH-?.B!+I=AH-JH.
>MH$/66#,,-2130
K<L
>HC$G:3E<+2130
>LI$*-2#:1-,
M4"6GHJ@$"-.$6:3E<+#E59-.$6:3E<+#E$78=
GHCK$#A6,38#E59-.$#A6,38#E$10=
>CN$'#.1B0$3:$G:3+#E<:#
GHK$<.#E$.6#+141+$37F#+2$59-.$<.#E$43:=
>MH$/66#,,-2130
L'87(N24821#55)8)6
GH$1.$1E#02141#E$78$51E#02141#.=
GH?@$:#6:#.#02.5"-.$:#6:#.#02-2130=
Bernhard Haslhofer & Philipp Nussbaumer, November 2009
CIDOC CRM Mapping
!"#$%
!$&'()*%+,,-./0123*4,-5,/!6$&'()*%
!789&':;<=&% !"#$ !6789&':;<=&%
!789&':;<=&1&>:?@A:<%1&>:?@A!6789&':;<=&1&>:?@A:<%
!789&':*&B'>@=:@CA%
DCE?AFGCHIF?J>&JBFCKFL&>CFM#*FN. 40OFPQQQR
!6789&':*&B'>@=:@CA%
!789&':*?:&-1&>:?@A:<%1&>:?@A!6789&':*?:&-1&>:?@A:<%
!*?:&S>CE%4.!6*?:&S>CE%
!"&>@CIS>CE%D7T#L!6"&>@CIS>CE%
!T&:UCI7KT?AJK?':J>&%
%%%%%%%%%%&'()*+%"(%,-../(/0
!6T&:UCI7KT?AJK?':J>&%
V
!6"#$% 12&%345%&")(*/%6#7/
WNNF;<=&
WX3F*&B@GAFC>F">C'&IJ>& W-XF">CIJ':@CA
W.-F#==&HH?:@CA
!"#$%&'(#')*++,#,-
"-F@BF@I&A:@K@&IF8<FM@I&A:@K@&BO
4"0/7%#$%!89:!%!;4
F"#$Y789&':;<=& Z%FWXX "X WNN
F"#$YT&:UCI7KT?AJK?':J>& Z%FWXX @A["-,0 "-4 WX3 "- W.-
12&%'"%!89:!%4-<<#$=
"-,0FU?BF=>CIJ'&IFM\?BF=>CIJ'&IF8<O
WXXFT?A T?I&F789&':
"-4FJB&IFB=&'@K@'FC89&':FM\?BFJB&IFKC>O
"XFU?BF:<=&FM@BF:<=&FCKO
.(/0
• Mappings expressed as mapping chains:
Bernhard Haslhofer & Philipp Nussbaumer, November 2009
Problems encountered
Bernhard Haslhofer & Philipp Nussbaumer, November 2009
Problem 1: Lifting and Normalisation
• How to technically represent metadata in terms of the CRM?
• RDFS / OWL model exists
• lack essential features (e.g. properties for literals)
• require application-specific extensions
Bernhard Haslhofer & Philipp Nussbaumer, November 2009
Problem 2: Mapping Ambiguity• Different valid representations for the same
attributes:
!"#$%&'()*+,'-
%"./$012$3&'()*4($5612$3&'()*4($789
%:;$*'-2,2+2$'<$5,2$,-*'&3'&1+4($,-9
!"#$%&'()*+,'-
%"./$012$3&'()*4($5612$3&'()*4($789
!"#$"%"&'(')*&+,
!;= >1+4&,1?!"#$!##$>1-@>1(4$A7B4*+
!#C$D42,E-$'&$%&'*4()&4
!:"$F334??1+,'-%&'()*+"'+,-../'/$
%"G$)24($234*,<,*$'7B4*+$5612$)24($<'&9
%"$,2$,(4-+,<,4($78$5,(4-+,<,429
%"#G$4H3?'84(5612$4H3?'84($,-9
!;;$I8340"12
%#$012$+834$5,2$+834$'<9
!"#$"%"&'(')*&+-
%#$012$+834$5,2$+834$'<9
!;= >1+4&,1?!"#$
!##$>1-@>1(4$A7B4*+0"12
!"#$"%"&'".+/*&/"#'0+!"#$%&'%(')*+,(*-#,."
!"#$"%"&'".+/*&/"#'0+!*#"./*0
!;;$I834%&'()*+"'+,-../'/$
++1"2"&.0#-33423&-2)/
I04$JKDAJ$JL>$*?122F-$,-2+1-*4$'<$+04$*?122$53'22,7?8$6,+0$*'-*&4+4$M1?)49
Bernhard Haslhofer & Philipp Nussbaumer, November 2009
Problem 3: Processing and Visualisation
• The human / machine must “remember” the meaning of mapping chains in order to retrieve information
• E22-P2-E55 = the object type
• E22-invP108-P16-E29-P1-E41 = manufacture method
Bernhard Haslhofer & Philipp Nussbaumer, November 2009
Possible solutions
Bernhard Haslhofer & Philipp Nussbaumer, November 2009
A Simple Approach to (partially) solve Problem II + III
!""#$%& $%'(#)*+(,- !."#)*+(,-#/'(&-010(2
3.4#05#0'(&-010('#*6#70'(&-010(58
!""#$%& $%'(#)*+(,- !9"#32:';,-0:&
39<=#>%5#?2:';,('7@%5#?2:';,('#*68
39"A#(B?C:6('#7@%5#(B?C:6('#0&8
!D4#$%-(20%C
!""#$%& $%'(#)*+(,- !A"#E-20&F3G#>%5#&:-(
!"#$%&'&#(
)#*+(&,%&-$
./%#(&/0
!""#$%& $%'(#)*+(,- !D.#H0B(&50:&
3.G#>%5#'0B(&50:&705#'0B(&50:&#:18
!D=#$(%5;2(B(&-#I&0- !A<#J;B*(2 !DD#K6?(
3L9#>%5#;&0-705#;&0-#:18 3L<#>%5#M%C;(
)&1#$*&-$*23)&/1#%#(425#&67%289
!"#$%&'(
)*+(,-5
E(B%&-0,E-%-(5
)$'* +",,-.%/!0"-.
3"#>%5#-6?(#705#-6?(#:18
Bernhard Haslhofer & Philipp Nussbaumer, November 2009
Generic Approach to solve Problems I+II+III
• Methodology to create consistent mappings to the CRM
• Step 1: Lifting the data source-specific data model (e.g., relational model, XML) to the level of CIDOC CRM
• Step 2: Map the lifted model to the CRM using specific mapping guidelines (mapping “algorithm”)
Bernhard Haslhofer & Philipp Nussbaumer, November 2009
(1) Lifting & Normalisation• Lift a relational model to the CRM via an
intermediate semantic model
!"#$%&'(")*+,
!"#$%&!"#$%&'$*,-&!'()%*$+$),&
-./01)23'4 566789:";<4=67>69
!"#$%&'()*'++",-'(.,)%')"(%&%/
0%%+&12%")($3")$,)-+'-"+%/
0%%+&12%")4$#2")$,)"(%&%/)&(,%$(*"
?)@.*$#
%.@0A
#()@
1)B.%*$20A
#()@
"'4C"0"?
A
1)23'4CDE)2*4)/2,$F*$#%G),$#(H,#B>,#.(G),$#(...
566789:";<4=67>69?#B.%0I#@(0.J,)J/?#B.%?#B.%KKK
/*$-&/'(")*+,
!LMM0A.% A.()0CDE)2*&5'&( G8;0$/0$()%*$+$)(0
DN0!$()%*$+$)/&
/*$-&/'$*,-&!L8M0CDE)2*0'()%*$+$),&566789:";<4=67>69
/*$-&/'0*/1
!"#$%&'0*/1
!"#$
Bernhard Haslhofer & Philipp Nussbaumer, November 2009
(2) Reducing Mapping Ambiguity
• Mapping Methodology (Principles):
• start from the lifted semantic model
• find most specific CRM entities for source domain and target range
• determine the shortest possible path between these entities
Bernhard Haslhofer & Philipp Nussbaumer, November 2009
Mapping “Algorithm”
Start
estart := findTargetDomain(e)
e := instanceOf(estart)
e := next entity of E
p := next property of P
all properties of P iterated?
mapping chain c := ∅
eend = findTargetRange(p)
add eend to c
x := eend
cl = findChainLink(estart, x)
isA(estart, x)?
no
E := set of source domain entities
all entities of E iterated?
no
End yes
P : = Set of properties p where getDomain(p) = e
yes
no
add cl to c
x := first element of cl
invert c
estart := x
yes
Bernhard Haslhofer & Philipp Nussbaumer, November 2009
Mapping Example
!"#$!"#$%&'()*
+,,-./0123*4,-5,/
%678'&$96:&;$<=>%?
@"8A&B$96:&;$<1)*C1$1D9?
EFF$9"G 9":&$CHI&'B
!"
#"
Comments:
ad 1.: define the source path (table as source domain, field name as relationship, field value as instance)ad 2.: find most concrete entity as target domain to map the source domain (E22 Man-Made Object)ad 3.: find the most concrete target range to map the source range to (E42 Identifier)ad 4.: find the most concrete property that has the target range as range, or the most inverse property that has the target range as domain (most concrete property with target range E42 is P47). Domain of P47 is E19 Physical Object => E22 is sub-class of E19 => take the target domain as domain of property P47
$"E.F$):&GBJKJ&8=.2$J#$J:&GBJKJ&:$HL$
<J:&GBJKJ&#?
%"
Bernhard Haslhofer & Philipp Nussbaumer, November 2009
Limitations• Problem:
• mapping might fail because there is no “obvious” entity to map to
• unclear how to close mapping chain
• Solution:
• application context specific functions with hardwired chains for given entities
Bernhard Haslhofer & Philipp Nussbaumer, November 2009
Discussion
Bernhard Haslhofer & Philipp Nussbaumer, November 2009
Discussion
• Problem 1:
• could be resolved by providing precise technical specifications
• Problem 2:
• users will always map differently against a global ontology; guidelines can only reduce but not completely resolve ambiguities
Bernhard Haslhofer & Philipp Nussbaumer, November 2009
Discussion
• Problem 3:
• “remembering” mapping chains = introducing an application-specific model
• why not use this model instead of the CRM?
Bernhard Haslhofer & Philipp Nussbaumer, November 2009
Discussion• Why not map directly in a P2P manner?
!"#$%&'&(
!"#$%&'()*$+
(*,-,*,
)*+&,-./$&
012"34&1523
415#"1/6"-&15"%
7&589-
:#$&121
;&<2#5<"-52<
65<-
)*=&1>& '&=&1>&
;2<21 ;2<21'&(
!&,?@;
.!#$%&'()*$+
(*,-,*, )*+&,-./$&
012"34&1523
415#"1/6"-&15"%
A&589-
'B%&1
;&<2#5<"-52<
65<-
)*=&1>&C3&>,15$-52< '&=&1>&C3&>,15$-52<
6&-923)(6"<B(",-B1& DDD
!/<-",-5,"%%/E"<3E>&#"<-5,"%%/E&FB5="%&<- !&#"<-5,"%%/E&FB5="%&<-
G2E&FB5="%&<,&>
equivalentequivalent