Closed MiconSchorsij closed 3 years ago
Dit kan op verschillende manieren. Een manier die ik vaak toepas is om bottom-up te werk te gaan:
"medewerker"
-> "medewerker"@nl
).jaar + maand + dag
-> xsd:date
, jaar + maand
-> xsd:gYearMonth
, etc.datum + persoon + organizatie
-> werk event
.Het kan ook op andere manieren, en sommige taken zoals (1) en (2) kunnen eventueel ook in het bronsysteem. Als het bronsysteem voor de lange termijn gebruikt blijft worden heeft dit ook zin, want als je bron verbeterd gaan gebruikers van de bron er ook op vooruit (voor de ANDB dataset is dit eigenlijk niet van toepassing).
Naarmate de stappen complexer worden wordt het aantal bronsystemen waarin deze stappen nog kunnen worden uitgevoerd steeds kleiner. Dus stap (3) is mogelijk niet haalbaar in de ANDB bron.
De kartenbestanden bevatten zoveel losse day / month / year velden dat ik er liever niet aan begin om deze bij de bron aan te pakken als daar ook een oplossing voor is in de linked data. Het personenbestand bevat naast de day / month / year velden overigens wél een xsd:date voor geboorte en sterfdatum. Misschien kunnen we die wel gebruiken.
Ik wil graag een check op mijn begrip van de opbouw van de shapes file. Ik heb alles wat ik over data weet genoteerd. Kan jij hier feedback op geven?
shape:date
sh:property
[ shape:day;
sh:minCount 1 ],
[ shape:month;
sh:minCount 1 ],
[ shape:year;
sh:minCount 1 ];
# {year}-{month}-{day}
sh:description "Date structure for all life and workevents."@en;
sh:maxCount 1;
sh:targetClass xsd:date.
shape:yearMonth
sh:property
[ shape:month;
sh:minCount 1 ],
[ shape:year;
sh:minCount 1 ];
# {year}-{month}
sh:description "Date structure for all life and workevents were the day of the month is mising."@en;
sh:maxCount 1;
sh:targetClass xsd:gYearMonth.
shape:monthDay
sh:property
[ shape:day;
sh:minCount 1 ],
[ shape:month;
sh:minCount 1 ];
# {month}-{day}
sh:description "Date structure for all life and workevents were the year is mising."@en;
sh:maxCount 1;
sh:targetClass xsd:gMonthDay.
shape:day
sh:datatype xsd:gDay;
dct:source
"sdn_addr_day-01",
"sdn_addr_day-02",
"sdn_addr_day-03",
"etc.".
shape:month
sh:datatype xsd:gMonth;
dct:source
"sdn_addr_month-01",
"sdn_addr_month-02",
"sdn_addr_month-03",
"etc.".
shape:year
sh:datatype xsd:gYear;
dct:source
"sdn_addr_year-01",
"sdn_addr_year-02",
"sdn_addr_year-03",
"etc.".
Er zijn verschillende mogelijkheden om datums weer te geven in OWL Time.
Als ik naar de vorige versie van de dataset kijk zou ik dit keer sowieso de relatie tussen een interval en een positie in de tijd beter willen vastleggen. In de oude versie wordt time:hasBeginning
nog niet toegepast... Ik merk ook dat ik een domme typo heb gemaakt (time:isXSDDate
in plaats van time:inXSDDate
). Met andere woorden: ruimte voor verbering!
Dit is relatief eenvoudig: een event is een interval. De tijd wordt toegekend aan het begin van dat interval:
[ a time:Interval;
time:hasBeginning
[ a time:Position;
time:inXSDDate "2020-02-01"^^xsd:date ] ].
^ Er zijn ook varianten voor wanneer de dag en dag+maand onbekend zijn (time:inXSDgYear
en time:inXSDgYearMonth
). Dit is de meest eenvoudige oplossing. Ik zou deze toepassen, tenzij er redenen zijn om dit niet te doen.
Dit is iets complexer: een event is nog steeds een interval. De tijd wordt nog steeds toegekend aan het begin van dat interval, maar hiervoor worden meerdere afzonderlijke eigenschappen gebruikt:
[ a time:Interval;
time:hasBeginning
[ a time:Position;
time:inDateTime
[ a time:DateTimeDescription;
time:day "---01"^^xsd:gDay;
time:month "--02"^^xsd:gMonth;
time:year "2020"^^xsd:gYear ] ] ].
^ Dit lijkt iets meer op jouw voorbeeld, waarbij de dag, maand en jaar los worden gerepresenteerd. Ik weet alleen niet zeker of deze representatie echt iets toevoegt voor deze dataset.
In de kaarten datasets zijn data altijd als losse velden day / month / year opgeslagen. Is het verstandig om die velden al in de csv's samen te voegen of is er een andere oplossing?