added backwards arrow rule to reasoner

This commit is contained in:
Elias Papanikitas
2023-12-22 10:46:37 +01:00
parent 0e85e069b1
commit 11105113a9
4 changed files with 176 additions and 111 deletions

View File

@@ -1,110 +0,0 @@
PREFIX mandaat: <http://data.vlaanderen.be/ns/mandaat#>
PREFIX ch: <http://data.lblod.info/vocabularies/contacthub/>
PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
DELETE {
GRAPH ?g {
?s mandaat:start ?o .
}
}
INSERT {
GRAPH ?g {
?s mandaat:start ?converteddate .
}
}
WHERE {
GRAPH ?g {
?s mandaat:start ?o .
}
VALUES ?g {
<http://mu.semte.ch/graphs/worship-service>
<http://mu.semte.ch/graphs/administrative-unit>
}
BIND(xsd:dateTime(?o) AS ?converteddate).
}
;
DELETE {
GRAPH ?g {
?s mandaat:einde ?o .
}
}
INSERT {
GRAPH ?g {
?s mandaat:einde ?converteddate .
}
}
WHERE {
GRAPH ?g {
?s mandaat:einde ?o .
}
VALUES ?g {
<http://mu.semte.ch/graphs/worship-service>
<http://mu.semte.ch/graphs/administrative-unit>
}
BIND(xsd:dateTime(?o) AS ?converteddate).
}
;
DELETE {
GRAPH ?g {
?s ch:startdatum ?o .
}
}
INSERT {
GRAPH ?g {
?s ch:startdatum ?converteddate .
}
}
WHERE {
GRAPH ?g {
?s ch:startdatum ?o .
}
VALUES ?g {
<http://mu.semte.ch/graphs/worship-service>
<http://mu.semte.ch/graphs/administrative-unit>
}
BIND(xsd:dateTime(?o) AS ?converteddate).
}
;
DELETE {
GRAPH ?g {
?s ch:eindedatum ?o .
}
}
INSERT {
GRAPH ?g {
?s ch:eindedatum ?converteddate .
}
}
WHERE {
GRAPH ?g {
?s ch:eindedatum ?o .
}
VALUES ?g {
<http://mu.semte.ch/graphs/worship-service>
<http://mu.semte.ch/graphs/administrative-unit>
}
BIND(xsd:dateTime(?o) AS ?converteddate).
}
;
DELETE {
GRAPH ?g {
?s ere:geplandeEinddatumAanstelling ?o .
}
}
INSERT {
GRAPH ?g {
?s ere:geplandeEinddatumAanstelling ?converteddate .
}
}
WHERE {
GRAPH ?g {
?s ere:geplandeEinddatumAanstelling ?o .
}
VALUES ?g {
<http://mu.semte.ch/graphs/worship-service>
<http://mu.semte.ch/graphs/administrative-unit>
}
BIND(xsd:dateTime(?o) AS ?converteddate).
}
;

View File

@@ -68,6 +68,84 @@ PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
}.
# Test
# ex:s <http://data.vlaanderen.be/ns/mandaat#einde> "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
}.
{
?s mandaat:bindingStart ?bindingStartDateTime.
# use backward arrow rule defined below
?bindingStartDateTime :dateFromDateTime ?bindingStartDate.
{
?s mandaat:bindingStart ?bindingStartDateTime
} e:becomes {
?s mandaat:bindingStart ?bindingStartDate
}.
} => {
?s mandaat:bindingStart ?bindingStartDate
}.
{
?s mandaat:bindingEinde ?bindingEindeDateTime.
# use backward arrow rule defined below
?bindingEindeDateTime :dateFromDateTime ?bindingEindeDate.
{
?s mandaat:bindingEinde ?bindingEindeDateTime
} e:becomes {
?s mandaat:bindingEinde ?bindingEindeDate
}.
} => {
?s mandaat:bindingEinde ?bindingEindeDate
}.
{
?s ch:startdatum ?startDate.
# use backward arrow rule defined below
?startDate :dateFromDateTime ?startDateTime.
{
?s ch:startdatum ?startDate
} e:becomes {
?s ch:startdatum ?startDateTime
}.
} => {
?s ch:startdatum ?startDateTime
}.
{
?s ch:eindedatum ?startDDate.
# use backward arrow rule defined below
?startDate :dateFromDateTime ?startDateTime.
{
?s ch:eindedatum ?startDate
} e:becomes {
?s ch:eindedatum ?startDateTime
}.
} => {
?s ch:eindedatum ?startDateTime
}.
{
?s ere:geplandeEinddatumAanstelling ?startDDate.
# use backward arrow rule defined below
?startDate :dateFromDateTime ?startDateTime.
{
?s ere:geplandeEinddatumAanstelling ?startDate
} e:becomes {
?s ere:geplandeEinddatumAanstelling ?startDateTime
}.
} => {
?s ere:geplandeEinddatumAanstelling ?startDateTime
}.
# Backward arrow rule is like a function call.
# Removes time info in the returned date
@@ -85,10 +163,19 @@ PREFIX ere: <http://data.lblod.info/vocabularies/erediensten/>
(?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.
}.
#backwards arrow rule for converting date to datetime
{
?date :dateTimeFromDate ?dateTime
} <= {
?date string:notMatches """^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}).*""" .
(?date "T00:00:00") string:concatenation ?datePlusTime.
(?datePlusTime xsd:dateTime) log:dtlit ?dateTime
}.
# ex:orgA besluit:classificatie <http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/5ab0e9b8a3b2ca7c5e000002>.
{

View File

@@ -67,6 +67,85 @@ PREFIX lblodlg: <http://data.lblod.info/vocabularies/leidinggevenden/>
}.
# Test
# ex:s <http://data.vlaanderen.be/ns/mandaat#einde> "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
}.
{
?s mandaat:bindingStart ?bindingStartDateTime.
# use backward arrow rule defined below
?bindingStartDateTime :dateFromDateTime ?bindingStartDate.
{
?s mandaat:bindingStart ?bindingStartDateTime
} e:becomes {
?s mandaat:bindingStart ?bindingStartDate
}.
} => {
?s mandaat:bindingStart ?bindingStartDate
}.
{
?s mandaat:bindingEinde ?bindingEindeDateTime.
# use backward arrow rule defined below
?bindingEindeDateTime :dateFromDateTime ?bindingEindeDate.
{
?s mandaat:bindingEinde ?bindingEindeDateTime
} e:becomes {
?s mandaat:bindingEinde ?bindingEindeDate
}.
} => {
?s mandaat:bindingEinde ?bindingEindeDate
}.
{
?s ch:startdatum ?startDate.
# use backward arrow rule defined below
?startDate :dateFromDateTime ?startDateTime.
{
?s ch:startdatum ?startDate
} e:becomes {
?s ch:startdatum ?startDateTime
}.
} => {
?s ch:startdatum ?startDateTime
}.
{
?s ch:eindedatum ?startDDate.
# use backward arrow rule defined below
?startDate :dateFromDateTime ?startDateTime.
{
?s ch:eindedatum ?startDate
} e:becomes {
?s ch:eindedatum ?startDateTime
}.
} => {
?s ch:eindedatum ?startDateTime
}.
{
?s ere:geplandeEinddatumAanstelling ?startDDate.
# use backward arrow rule defined below
?startDate :dateFromDateTime ?startDateTime.
{
?s ere:geplandeEinddatumAanstelling ?startDate
} e:becomes {
?s ere:geplandeEinddatumAanstelling ?startDateTime
}.
} => {
?s ere:geplandeEinddatumAanstelling ?startDateTime
}.
# Backward arrow rule is like a function call.
# Removes time info in the returned date
@@ -88,6 +167,15 @@ PREFIX lblodlg: <http://data.lblod.info/vocabularies/leidinggevenden/>
(?dateLiteral xsd:date) log:dtlit ?date.
}.
#backwards arrow rule for converting date to datetime
{
?date :dateTimeFromDate ?dateTime
} <= {
?date string:notMatches """^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}).*""" .
(?date "T00:00:00") string:concatenation ?datePlusTime.
(?datePlusTime xsd:dateTime) log:dtlit ?dateTime
}.
# ex:orgA besluit:classificatie <http://data.vlaanderen.be/id/concept/BestuurseenheidClassificatieCode/5ab0e9b8a3b2ca7c5e000002>.
{