:Class → :Period → :Age - rug-compling/noordergraf GitHub Wiki
Klassehiërarchie
- Class
- :text →
xsd:string
- :period →
:Period
- Period
- :duration →
xsd:duration
- Age
- :duration →
- Person
- :age →
:Age
- :age →
- :text →
Formaat van duration
Zie https://www.w3.org/TR/xmlschema11-2/#duration-lexical-space
Voorloopnullen zorgen ervoor dat alfabetisch op duration gesorteerd kan worden
xsd:duration | aangepast |
---|---|
P52Y6M | P052Y06M |
P3D | P000Y00M03D |
Het is mogelijk een eigen datatype af te leiden van xsd:duration
waar het patroon met voorloopnullen wordt vereist. Zie
https://www.w3.org/TR/xmlschema11-2/#duration-facets
pattern: P[0-9][0-9][0-9]Y([0-9][0-9]M([0-9][0-9]D)?)?
ordered: total (?)
Eigenlijk zou dit alles niet nodig moeten zijn. Volgens de definite zou xsd:duration
intern vertaald moeten worden naar een tuple: maanden (integer) en seconden (float). Maar het lijkt er op dat AllegroGraph dit niet doet. Sorteren op xsd:duration
gaat niet goed in AllegroGraph.
Voorbeelden
Iets van een bepaalde duur
:period [
a :Period ;
:duration "P052Y06M"^^xsd:duration ;
:text "52½ Jaren"
]
Een leeftijd
:age [
a :Age ;
:duration "P036Y"^^xsd:duration ;
:text "ruim 36 jaar"
]
:age [
a :Age ;
:duration "P000Y00M03D"^^xsd:duration ;
:text "slechts 3 dagen oud"
]
Toevoegingen zoals ruim en bijna zouden we kunnen coderen in de duur:
- "ruim 36 jaar" → P36Y2M
- "bijna 60 jaar" → P59Y10M