#CWM rules to convert from TIF to SKOS vacabularies @prefix tif: . @prefix soks: . @prefix soks-map: . @prefix log: . @prefix rdf: . @prefix rdfs: . @prefix dc: . @prefix : . #RULE A - Concept node mapping this log:forAll <#a> . { <#a> a tif:Concept. } log:implies { <#a> a soks:Concept. } . #RULE B - Broader mapping this log:forAll <#b>, <#c> . { <#b> tif:broader <#c>. } log:implies { <#b> soks:broader <#c>. } . #RULE C - Narrower mapping this log:forAll <#d>, <#e> . { <#d> tif:narrower <#e>. } log:implies { <#d> soks:narrower <#e>. } . #RULE D - Related mapping this log:forAll <#f>, <#g> . { <#f> tif:related <#g>. } log:implies { <#f> soks:related <#g>. } . #You must identify whether the preferred terms constitute proper descriptors #(i.e. are uniquely identifying labels within the thesaurus) or just 'prefLabels' #(i.e. are not unique or do not disambiguate the concept). #RULE E(a) - preferred term mapping to descriptors this log:forAll <#h>, <#i> . { <#h> tif:preferred [tif:value <#i>] . } log:implies { <#h> soks:descriptor <#i> . } . #RULE E(b) - preferred term mapping to prefLabels #this log:forAll <#h>, <#i> . #{ #<#h> tif:preferred [tif:value <#i>] . #} #log:implies #{ #<#h> soks:prefLabel <#i> . #} #. #RULE F - non-preferred term mapping this log:forAll <#j>, <#k> . { <#j> tif:nonPreferred [tif:value <#k>] . } log:implies { <#j> rdfs:label <#k> . } . #RULE G - external ID mapping this log:forAll <#l>, <#m> . { <#l> tif:code <#m> . } log:implies { <#l> soks:externalID <#m> . } . #RULE H - scope note mapping this log:forAll <#n>, <#o>, <#p> . { <#n> tif:note <#o> . <#o> a tif:ScopeNote; rdf:value <#p> . } log:implies { <#n> soks:scopeNote <#p> . } . #RULE H(i) - general note mapping this log:forAll <#ni>, <#oi>, <#pi> . { <#ni> tif:note <#oi> . <#oi> a tif:GeneralNote; rdf:value <#pi> . } log:implies { <#ni> soks:generalNote <#pi> . } . #RULE H(ii) - hierarchy note mapping this log:forAll <#nii>, <#oii>, <#pii> . { <#nii> tif:note <#oii> . <#oii> a tif:HierarchyNote; rdf:value <#pii> . } log:implies { <#nii> soks:hierarchyNote <#pii> . } . #RULE H(iii) - editor note mapping this log:forAll <#niii>, <#oiii>, <#piii> . { <#niii> tif:note <#oiii> . <#oiii> a tif:EditorNote; rdf:value <#piii> . } log:implies { <#niii> soks:editorNote <#piii> . } . #RULE H(iv) - history note mapping this log:forAll <#niv>, <#oiv>, <#piv> . { <#niv> tif:note <#oiv> . <#oiv> a tif:HistoryNote; rdf:value <#piv> . } log:implies { <#nvi> soks:historyNote <#piv> . } . #RULE I - exact equivalent mapping this log:forAll <#q>, <#r> . { <#q> tif:exact <#r> . } log:implies { <#q> soks-map:exactMatch <#r> . } . #Other equivalence mappings must be done by hand. #'tif:partial' must be mapped either to 'soks-map:broadMatch' or 'soks-map:narrowMatch' #'tif:inexact' must be mapped either to 'soks-map:majorMatch' or 'soks-map:minorMatch' #'tif:oneToMany' must be mapped to the most appropriate of the 'soks-map:mappingRelation' sub-properties, with the object # as one of the soks-map combination constructs ('soks-map:AND' 'soks-map:OR' 'soks-map:NOT') #RULE J - subject declaration mapping this log:forAll <#s>, <#t> . { <#s> tif:index <#t> . } log:implies { <#s> dc:subject <#t> . } .