Replace tm:reason and tm:secondaryReason with a single tm:hasReason
property (937 triples). Refactor 6 flat date properties into structured
tm:uncertainBeginning/tm:uncertainEnd intervals using W3C OWL-Time,
introducing tm:FuzzyInterval as a superclass of tm:Migration,
org:Membership, tm:Relationship, tm:PersonName, and
tm:ReligionAffiliation. Output: data/graph-08.ttl (218,251 triples).
- Remove redundant tm:secondaryOrganisation when it equals org:organization (230)
- Promote tm:secondaryOrganisation to org:organization when no primary exists (256)
- Replace tm:PersonProfession intermediate class with direct schema:hasOccupation
links from persons to schema:Occupation instances (742 instances removed)
- Remove tm:PersonProfession class and its properties from the ontology
- Add step-07 binary, Rakefile task, figures, and documentation
19 queries in updates/ convert categorical columns (continent, country,
city, gender, profession, etc.) from literals to typed RDF objects with
rdfs:label. map/step-02.rb applies them to produce data/graph-02.ttl.
Also fix step-01.rb to sanitize column names with spaces and avoid
prefix serialization issues with fragment IRIs.