@prefix r2r: .
@prefix owl: .
@prefix foaf: .
@prefix dbpedia: .
@prefix movie: .
@prefix rdfs: .
# Made up Mapping publisher
@prefix mp: .
# Mappings from DBpedia to FOAF Person and rdfs:label (from DBpedia) to foaf:name
mp:DBpediaToFoafPersonMapping
a r2r:ClassMapping ;
r2r:prefixDefinitions "foaf: . dbpedia: " ;
r2r:sourcePattern "?SUBJ a dbpedia:Person" ;
r2r:targetPattern "?SUBJ a foaf:Person" .
mp:labelToNameMapping
a r2r:PropertyMapping ;
r2r:sourcePattern "?SUBJ rdfs:label ?o . FILTER(lang(?o)='en')" ;
r2r:classMappingRef mp:DBpediaToFoafPersonMapping ; # This is necessary and means that this mapping makes only sense in a "Person context"
r2r:prefixDefinitions "foaf: " ;
r2r:targetPattern "?SUBJ foaf:name ?o" ;
r2r:targetPattern "?SUBJ ?o" .
# Linkedmdb to DBpedia
mp:StarringMapping # map from Linkedmdb to dbpedia:starring (domain dbpedia:movie), making it a bit more complicated and ignoring movie:actor
a r2r:PropertyMapping ;
r2r:sourcePattern "?SUBJ a movie:film . ?SUBJ movie:performance ?p . ?a movie:performance ?p . ?a a movie:actor" ;
r2r:prefixDefinitions "movie: . dbpedia: " ;
r2r:targetPattern "?SUBJ dbpedia:starring ?a" .
# VCard to FOAF mappings
mp:VCardEmailToFoafMbox
a r2r:PropertyMapping ;
r2r:sourcePattern "{ ?SUBJ v:email ?o } UNION { ?SUBJ v:workEmail ?o }" ;
r2r:prefixDefinitions "foaf: . v: . " ;
r2r:targetPattern "?SUBJ foaf:mbox ?o" .
mp:VCardBirthDayMapping
a r2r:PropertyMapping ;
r2r:sourcePattern "?SUBJ v:bday ?o" ;
r2r:prefixDefinitions "v: . dbpedia: " ;
r2r:targetPattern "?SUBJ dbpedia:birthDay ?o" .
# OWL:equivalentClass, OWL:equivalentProperty, RDFS:subPropertyOf and RDFS:subClassOf mappings
foaf:Person owl:equivalentClass dbpedia:Person .
movie:country owl:equivalentClass dbpedia:Country .
movie:director owl:equivalentProperty dbpedia:director .
# Mappings needing transformations
mp:concatFirstAndLastNameMapping
a r2r:PropertyMapping ;
r2r:sourcePattern "?SUBJ foaf:firstName ?f . ?SUBJ foaf:lastName ?l" ;
r2r:targetPattern "?SUBJ v:n ?name" ;
r2r:transformation "?name = concat(?l, ', ', ?f)" ; # Concatenate the first and last name seperated by a comma+space.
r2r:prefixDefinitions "foaf: . v: " .
# The properties of the following example are made up, this should show a transformation from Fahrenheit to Kelvin
mp:numericTransformationMapping
a r2r:PropertyMapping ;
r2r:sourcePattern "?SUBJ ?mPointInFahrenheit" ;
r2r:targetPattern "?SUBJ dbpedia:meltingPoint ?mPointInKelvin" ;
r2r:transformation "?mPointInKelvin = (?mPointInFahrenheit + 459.67) * 5 / 9" ;
r2r:prefixDefinitions "dbpedia: " .
# Transform numeric value into a string value: This mapping transform a double value (weight in grams) to a string "x lb"
mp:numericToStringMapping
a r2r:PropertyMapping ;
r2r:prefixDefinitions "nodomain: . dbpedia: " ;
r2r:sourcePattern "?SUBJ dbpedia:weight ?wGrams" ;
r2r:targetPattern "?SUBJ nodomain:weight ?wString" ;
r2r:transformation "?wString = concat(integer(?wGrams / 453.59237),' lb')" .