PREFIX : <#> PREFIX adms: PREFIX adres: PREFIX besluit: PREFIX crypto: PREFIX e: PREFIX ex: PREFIX foaf: PREFIX func: PREFIX generiek: PREFIX log: PREFIX mandaat: PREFIX mu: PREFIX org: PREFIX persoon: PREFIX persoon_loket: PREFIX skos: PREFIX string: PREFIX xsd: PREFIX dc_terms: PREFIX ch: PREFIX person: PREFIX lblodlg: # DL and OP both use persoon:gebruikteVoornaam but with different semantics (!) # Hence the mapping is in two steps. # The first step maps the DL persoon:gebruikteVoornaam to the OP counterpart # and drops the DL persoon:gebruikteVoornaam statements with e:becomes # A second reasoning will map DL foaf:name to OP persoon:gebruikteVoornaam # Doing both at once would lead all DL foaf:names to incorrectly become foaf:givennames # in OP # First name # persoon:gebruikteVoornaam => foaf:givenName # Alternatieve voornaam # foaf:name => persoon:gebruikteVoornaam # Test Mock DL # persoon_loket:gebruikteVoornaam "Didier". { { ?s persoon_loket:gebruikteVoornaam ?o } e:becomes { ?s foaf:givenName ?o } } => { ?s foaf:givenName ?o }. # First name # persoon:gebruikteVoornaam => foaf:givenName (done in pre-processing) # Alternatieve voornaam # foaf:name => persoon:gebruikteVoornaam # Test Mock LLB # foaf:name "Didier". { { ?s foaf:name ?o } e:becomes { ?s persoon:gebruikteVoornaam ?o } } => { ?s persoon:gebruikteVoornaam ?o }. # Test # ex:s "2019-02-01T10:32:52+00:00"^^xsd:dateTime. { ?s mandaat:bindingEinde ?eindeDate. # use backward arrow rule defined below ?eindeDate :dateTimeFromDate ?eindeDateTime. { ?s mandaat:bindingEinde ?eindeDate } e:becomes { ?s mandaat:bindingEinde ?eindeDateTime }. } => { ?s mandaat:bindingEinde ?eindeDateTime }. { ?s mandaat:start ?startDate. # use backward arrow rule defined below ?startDate :dateTimeFromDate ?startDateTime. { ?s mandaat:start ?startDate } e:becomes { ?s mandaat:start ?startDateTime }. } => { ?s mandaat:start ?startDateTime }. { ?s mandaat:einde ?eindeDate. # use backward arrow rule defined below ?eindeDate :dateTimeFromDate ?eindeDateTime. { ?s mandaat:einde ?eindeDate } e:becomes { ?s mandaat:einde ?eindeDateTime }. } => { ?s mandaat:einde ?eindeDateTime }. { ?s mandaat:bindingStart ?startDate. # use backward arrow rule defined below ?startDate :dateTimeFromDate ?startDateTime. { ?s mandaat:bindingStart ?startDate } e:becomes { ?s mandaat:bindingStart ?startDateTime }. } => { ?s mandaat:bindingStart ?startDateTime }. { ?s ch:startdatum ?startDate. # use backward arrow rule defined below ?startDate :dateTimeFromDate ?startDateTime. { ?s ch:startdatum ?startDate } e:becomes { ?s ch:startdatum ?startDateTime }. } => { ?s ch:startdatum ?startDateTime }. { ?s ch:eindedatum ?endDate. # use backward arrow rule defined below ?endDate :dateTimeFromDate ?endDateTime. { ?s ch:eindedatum ?endDate } e:becomes { ?s ch:eindedatum ?endDateTime }. } => { ?s ch:eindedatum ?endDateTime }. # Backward arrow rule is like a function call. # Removes the timezone indicator "Z" from incoming datetimes # To make sure all datetimes have the same convention we now save them as # datetime without the timezone indicator # We use "T02:00:00" as time indicator to work around a virtuoso bug that # results in datetimes being converted to a date when using "T00:00:00" { ?date :dateTimeFromDate ?dateTime } <= { ( ?date 1 10 ) string:substring ?dateSolo . (?dateSolo "T02:00:00") string:concatenation ?datePlusTime. (?datePlusTime xsd:dateTime) log:dtlit ?dateTime . }. # ex:orgA besluit:classificatie . { { ?s besluit:classificatie ?o } e:becomes { ?s org:classification ?o } } => { ?s org:classification ?o }. # fix typo V -> v # "1" . { { ?s adres:AdresVoorstelling.huisnummer ?o } e:becomes { ?s adres:Adresvoorstelling.huisnummer ?o } } => { ?s adres:Adresvoorstelling.huisnummer ?o }. # Tijdspecialisatie { { ?s mandaat:isTijdspecialisatieVan ?o. } e:becomes { ?s generiek:isTijdspecialisatieVan ?o. } } => { ?s generiek:isTijdspecialisatieVan ?o. } . # In OP functionaris inherits from agents-in-position, which inherits from Agent { ?s a lblodlg:Functionaris . } => { ?s a ch:AgentInPositie , dc_terms:Agent . } . # In OP mandataris inherits from agents-in-position, which inherits from Agent { ?s a mandaat:Mandataris . } => { ?s a ch:AgentInPositie , dc_terms:Agent . } . # In OP AgentInPositie inherits from Agent { ?s a ch:AgentInPositie . } => { ?s a dc_terms:Agent . } . # In OP Person inherits from Agent { ?s a person:Person . } => { ?s a dc_terms:Agent . } .