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: PREFIX ere: # 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-01-01T19:32:52+00:00"^^xsd:dateTime. { ?s mandaat:start ?startDateTime. # use backward arrow rule defined below ?startDateTime :dateFromDateTime ?startDate. { ?s mandaat:start ?startDateTime } e:becomes { ?s mandaat:start ?startDate }. } => { ?s mandaat:start ?startDate }. # ex:s "2019-02-01T10:32:52+00:00"^^xsd:dateTime. { ?s mandaat:einde ?eindeDateTime. # use backward arrow rule defined below ?eindeDateTime :dateFromDateTime ?eindeDate. { ?s mandaat:einde ?eindeDateTime } e:becomes { ?s mandaat:einde ?eindeDate }. } => { ?s mandaat:einde ?eindeDate }. # Backward arrow rule is like a function call. # Removes time info in the returned date # The user in DL selects a date via the UI. # These dates are persisted as midnight dateTimes in UTC. # Meaning that 1st of July is stored as # "2022-06-30T22:00:00Z"^^xsd:dateTime # and 1 December # "2022-11-30T23:00:00Z"^^xsd:dateTime # So, the following rule adds 2 hours to the datetime, and then takes the date part of the UTC date time # to come to the date that the DL user selected (in CE(S)T) { ?dateTime :dateFromDateTime ?date } <= { (?dateTimeLiteral xsd:dateTime) log:dtlit ?dateTime. (?dateTime "PT2H"^^xsd:dayTimeDuration) func:add-dayTimeDuration-to-dateTime ?localDateTime. (?localDateTimeLiteral xsd:dateTime) log:dtlit ?localDateTime. (?localDateTimeLiteral 0 11) func:substring ?dateLiteral. (?dateLiteral xsd:date) log:dtlit ?date. }. # 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 minister inherits from agents-in-position, which inherits from Agent { ?s a ere:RolBedienaar . } => { ?s a ch:AgentInPositie , dc_terms:Agent . } . # In OP Person inherits from Agent { ?s a person:Person . } => { ?s a dc_terms:Agent . } .