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.
1. CIDOC CRM in Practice
- Experiences, Problems, and Possible Solutions -
Bernhard Haslhofer & Philipp Nussbaumer, November 2009
2. 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
3. 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
11. 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
12. Problem 2: Mapping Ambiguity
• Different valid representations for the same
attributes: !;;$I834
0"12
%#$012$+834$
5,2$+834$'<9
!"#$"%"&'(')*&+,
!;= >1+4&,1?
!##$>1-@>1(4$A7B4*+ !"#$ !"#$"%"&'".+/*&/"#'0+
!*#"./*0
%"#G$4H3?'84(
%"./$012$3&'()*4($
5612$4H3?'84($,-9
5612$3&'()*4($789
!"#$%&'()*+,'-
!:"$F334??1+,'- %"G$)24($234*,<,*$'7B4*+$
5612$)24($<'&9 !"#$"%"&'(')*&+-
%&'()*+"'+,-../'/$
%"$,2$,(4-+,<,4($78$ !#C$D42,E-$'&$%&'*4()&4 !;= >1+4&,1?
5,(4-+,<,429 !"#$
%:;$*'-2,2+2$'<$
5,2$,-*'&3'&1+4($,-9
!##$>1-@>1(4$A7B4*+
0"12
%"./$012$3&'()*4($
5612$3&'()*4($789
!"#$"%"&'".+/*&/"#'0+ !;;$I834
!"#$%&'%(')*+,(*-#,." !"#$%&'()*+,'-
%&'()*+"'+,-../'/$ %#$012$+834$
5,2$+834$'<9
++1"2"&.
0#-33 I04$JKDAJ$JL>$*?122
423&-2)/ F-$,-2+1-*4$'<$+04$*?122$53'22,7?8$6,+0$*'-*&4+4$M1?)49
Bernhard Haslhofer & Philipp Nussbaumer, November 2009
13. 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
15. A Simple Approach to (partially) solve Problem II + III
!"#$%&'( )$'* +",,-.%/!0"-.
3.4#05#0'(&-010('#*6#
70'(&-010(58
!"#$%&'&#( !""#$%& $%'(#)*+(,- !."#)*+(,-#/'(&-010(2
)*+(,-5
3G#>%5#&:-(
)#*+(&,%&-$ !""#$%& $%'(#)*+(,- !A"#E-20&F
!""#$%& $%'(#)*+(,- !9"#32:';,-0:&
39<=#>%5#?2:';,(' 39"A#(B?C:6('#
./%#(&/0 7@%5#(B?C:6('#0&8
7@%5#?2:';,('#*68
!D4#$%-(20%C
E(B%&-0, 3.G#>%5#'0B(&50:&
E-%-(5 705#'0B(&50:&#:18
!""#$%& $%'(#)*+(,- !D.#H0B(&50:&
3L9#>%5#;&0- 3"#>%5#-6?(#
)&1#$*&-$*2
705#;&0-#:18 705#-6?(#:18
3)&/1#%#(425#&67%289 3L<#>%5#M%C;(
!D=#$(%5;2(B(&-#I&0- !A<#J;B*(2 !DD#K6?(
Bernhard Haslhofer & Philipp Nussbaumer, November 2009
16. 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
17. (1) Lifting & Normalisation
• Lift a relational model to the CRM via an
intermediate semantic model
"'4C"0"?A
/*$-&/'(")*+, /*$-&/'0*/1 /*$-&/'$*,-&
!LMM0A.% A.()0CDE)2*& !L8M0CDE)2*0'()%*$+$),&
G8;0$/0$()%*$+$)(0
5'&( DN0!$()%*$+$)/& 566789:";<4=67>69
1)B.%*$20A#()@
!"#$%&'(")*+, !"#$%&'0*/1 !"#$%&'$*,-&
!"#$%& !'()%*$+$),&
-./01)23'4
566789:";<4=67>69
0%%+&12%")($3") 0%%+&12%")4$#2")$,)
$,)-+'-"+%/ "(%&%/)&(,%$(*"
!"#$%&'()*'++",-'(.,) !"#$
?)@.*$#%.@0A#()@
%')"(%&%/ 1)23'4 566789:";<4=67>69
CDE)2*4)/2,$F*$#% ?#B.%0I#@(0.J,)J/
G),$#(H,#B ?#B.%
>,#.(G),$#( ?#B.%
... KKK
Bernhard Haslhofer & Philipp Nussbaumer, November 2009
18. (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
19. Mapping Start p := next property of P
“Algorithm” E := set of source
domain entities
mapping chain c := ∅
eend =
findTargetRange(p)
all entities of
End yes
E iterated?
add eend to c
no
e := next entity of E
x := eend
estart := findTarget
Domain(e)
no
isA(estart, x)? yes
e := instanceOf(estart) invert c
no
P : = Set of cl = findChainLink
properties p where yes (estart, x) estart := x
getDomain(p) = e
add cl to c
all properties
of P iterated?
x := first element of cl
Bernhard Haslhofer & Philipp Nussbaumer, November 2009
20. Mapping Example
@"8A&B$96:&;$<1)*C1$1D9?
%"
#" EFF$9"G 9":&$CHI&'B E.F$):&GBJKJ&8 $"
=.2$J#$J:&GBJKJ&:$HL$
<J:&GBJKJ&#?
!"#$%&'()*
!"#$ +,,-./0123*4,-5,/
%678'&$96:&;$<=>%? !"
Comments:
ad 1.: define the source path (table as source domain, field name
Bernhard Haslhofer & Philipp Nussbaumer, November 2009
as relationship, field value as instance)
21. 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
23. 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
24. 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
25. Discussion
• Why not map directly in a P2P manner?
equivalent equivalent
!&,?@; A&589- !"#$%&'&( 7&589-
.!#$%&'()*$+(*,-,*,
!"#$%&'()*$+(*,-,*,
)*+&,-./$& 'B%&1 )*+&,-./$& :#$&121
012"34&1523 ;&<2#5<"-52< 012"34&1523 ;&<2#5<"-52<
415#"1/6"-&15"% 65<- 415#"1/6"-&15"% 65<-
)*=&1>&C3&>,15$-52< '&=&1>&C3&>,15$-52< )*=&1>& '&=&1>&
6&-923)(6"<B(",-B1& DDD ;2<21 ;2<21'&(
!/<-",-5,"%%/E"<3E>&#"<-5,"%%/E&FB5="%&<- !&#"<-5,"%%/E&FB5="%&<-
G2E&FB5="%&<,&>
Bernhard Haslhofer & Philipp Nussbaumer, November 2009