migrants/ontology.ttl
Daniel Hernandez 3d0829aa9d Add Step 5: use well-known vocabularies (Schema.org, OWL, WGS84, SKOS)
SPARQL UPDATE queries add standard vocabulary properties alongside
existing custom predicates: schema:Person/Place/Organization types,
schema:givenName/familyName/birthDate, owl:sameAs for authority links,
wgs84:lat/long for coordinates, skos:Concept/prefLabel for enumerations,
and rdfs:label for persons.
2026-03-01 12:07:01 +01:00

629 lines
22 KiB
Turtle
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix dct: <http://purl.org/dc/terms/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix schema: <https://schema.org/> .
@prefix wgs84: <http://www.w3.org/2003/01/geo/wgs84_pos#> .
@prefix wdtn: <http://www.wikidata.org/prop/direct-normalized/> .
@prefix migrants: <http://example.org/migrants/> .
# =============================================================================
# Ontology metadata
# =============================================================================
<http://example.org/migrants/ontology> a owl:Ontology ;
rdfs:label "Theater Migrants Ontology"@en ;
rdfs:comment "Ontology for the Theater Migrants Knowledge Graph, documenting professional migrations of theater practitioners across Europe (18501918)."@en .
# =============================================================================
# Classes — domain-specific
# =============================================================================
migrants:migration_table a owl:Class ;
rdfs:label "Migration"@en ;
rdfs:comment "A migration event recording the movement of a person from one place to another."@en .
migrants:work a owl:Class ;
rdfs:label "Work"@en ;
rdfs:comment "A professional engagement of a person at an organisation in a given location and time period."@en .
migrants:relationship a owl:Class ;
rdfs:label "Relationship"@en ;
rdfs:comment "An interpersonal relationship between two persons."@en .
migrants:person_profession a owl:Class ;
rdfs:label "PersonProfession"@en ;
rdfs:comment "An association between a person and a profession label."@en .
migrants:personnames a owl:Class ;
rdfs:label "PersonName"@en ;
rdfs:comment "An alternative or historical name for a person, optionally typed and time-bounded."@en .
migrants:religions a owl:Class ;
rdfs:label "ReligionAffiliation"@en ;
rdfs:comment "A person's affiliation with a religion during a given period."@en .
migrants:ImportSource a owl:Class ;
rdfs:label "ImportSource"@en ;
rdfs:comment "The provenance source from which a person record was imported."@en .
# =============================================================================
# Classes — enumeration types (subclasses of skos:Concept)
# =============================================================================
migrants:Continent a owl:Class ;
rdfs:subClassOf skos:Concept ;
rdfs:label "Continent"@en .
migrants:Country a owl:Class ;
rdfs:subClassOf skos:Concept ;
rdfs:label "Country"@en .
migrants:State a owl:Class ;
rdfs:subClassOf skos:Concept ;
rdfs:label "State"@en .
migrants:City a owl:Class ;
rdfs:subClassOf skos:Concept ;
rdfs:label "City"@en .
migrants:MigrationReason a owl:Class ;
rdfs:subClassOf skos:Concept ;
rdfs:label "MigrationReason"@en .
migrants:InstitutionType a owl:Class ;
rdfs:subClassOf skos:Concept ;
rdfs:label "InstitutionType"@en .
migrants:Nametype a owl:Class ;
rdfs:subClassOf skos:Concept ;
rdfs:label "NameType"@en .
migrants:RelationshipType a owl:Class ;
rdfs:subClassOf skos:Concept ;
rdfs:label "RelationshipType"@en .
migrants:RelationshipTypePrecise a owl:Class ;
rdfs:subClassOf skos:Concept ;
rdfs:label "RelationshipTypePrecise"@en .
migrants:Religion a owl:Class ;
rdfs:subClassOf skos:Concept ;
rdfs:label "Religion"@en .
migrants:Profession a owl:Class ;
rdfs:subClassOf skos:Concept ;
rdfs:label "Profession"@en .
migrants:EmploymentType a owl:Class ;
rdfs:subClassOf skos:Concept ;
rdfs:label "EmploymentType"@en .
# =============================================================================
# Object properties — Person
# =============================================================================
migrants:person\#Importsource a owl:ObjectProperty ;
rdfs:label "importSource"@en ;
rdfs:domain schema:Person ;
rdfs:range migrants:ImportSource .
migrants:person\#Nametype a owl:ObjectProperty ;
rdfs:label "nameType"@en ;
rdfs:domain schema:Person ;
rdfs:range migrants:Nametype .
# =============================================================================
# Datatype properties — Person
# =============================================================================
migrants:person\#IDPerson a owl:DatatypeProperty ;
rdfs:label "IDPerson"@en ;
rdfs:domain schema:Person ;
rdfs:range xsd:string .
migrants:person\#birthdate_max a owl:DatatypeProperty ;
rdfs:label "birthDateMax"@en ;
rdfs:comment "Upper bound of the birth date when the exact date is uncertain."@en ;
rdfs:domain schema:Person ;
rdfs:range xsd:date .
migrants:person\#deathdate_max a owl:DatatypeProperty ;
rdfs:label "deathDateMax"@en ;
rdfs:comment "Upper bound of the death date when the exact date is uncertain."@en ;
rdfs:domain schema:Person ;
rdfs:range xsd:date .
migrants:person\#fuzzybirthdate a owl:DatatypeProperty ;
rdfs:label "fuzzyBirthDate"@en ;
rdfs:comment "Free-text representation of an uncertain birth date."@en ;
rdfs:domain schema:Person ;
rdfs:range xsd:string .
migrants:person\#fuzzydeathdate a owl:DatatypeProperty ;
rdfs:label "fuzzyDeathDate"@en ;
rdfs:comment "Free-text representation of an uncertain death date."@en ;
rdfs:domain schema:Person ;
rdfs:range xsd:string .
migrants:person\#Birth_Info a owl:DatatypeProperty ;
rdfs:label "birthInfo"@en ;
rdfs:domain schema:Person ;
rdfs:range xsd:string .
migrants:person\#Death_Info a owl:DatatypeProperty ;
rdfs:label "deathInfo"@en ;
rdfs:domain schema:Person ;
rdfs:range xsd:string .
migrants:person\#religion a owl:DatatypeProperty ;
rdfs:label "religion"@en ;
rdfs:comment "Free-text religion label on the person record."@en ;
rdfs:domain schema:Person ;
rdfs:range xsd:string .
migrants:person\#image_source a owl:DatatypeProperty ;
rdfs:label "imageSource"@en ;
rdfs:domain schema:Person ;
rdfs:range xsd:anyURI .
# =============================================================================
# Object properties — Place
# =============================================================================
migrants:location\#Continent a owl:ObjectProperty ;
rdfs:label "continent"@en ;
rdfs:domain schema:Place ;
rdfs:range migrants:Continent .
migrants:location\#Country a owl:ObjectProperty ;
rdfs:label "country"@en ;
rdfs:domain schema:Place ;
rdfs:range migrants:Country .
migrants:location\#State a owl:ObjectProperty ;
rdfs:label "state"@en ;
rdfs:domain schema:Place ;
rdfs:range migrants:State .
migrants:location\#City a owl:ObjectProperty ;
rdfs:label "city"@en ;
rdfs:domain schema:Place ;
rdfs:range migrants:City .
# =============================================================================
# Datatype properties — Place
# =============================================================================
migrants:location\#IDLocation a owl:DatatypeProperty ;
rdfs:label "IDLocation"@en ;
rdfs:domain schema:Place ;
rdfs:range xsd:string .
migrants:location\#GeoNamesID a owl:DatatypeProperty ;
rdfs:label "GeoNamesID"@en ;
rdfs:domain schema:Place ;
rdfs:range xsd:integer .
# =============================================================================
# Object properties — Organisation
# =============================================================================
migrants:organisation\#InstType a owl:ObjectProperty ;
rdfs:label "institutionType"@en ;
rdfs:domain schema:Organization ;
rdfs:range migrants:InstitutionType .
# =============================================================================
# Datatype properties — Organisation
# =============================================================================
migrants:organisation\#IDOrganisation a owl:DatatypeProperty ;
rdfs:label "IDOrganisation"@en ;
rdfs:domain schema:Organization ;
rdfs:range xsd:integer .
# =============================================================================
# Object properties — Migration
# =============================================================================
migrants:migration_table\#ref-IDPerson a owl:ObjectProperty ;
rdfs:label "migrant"@en ;
rdfs:domain migrants:migration_table ;
rdfs:range schema:Person .
migrants:migration_table\#ref-IDStartPlace a owl:ObjectProperty ;
rdfs:label "startPlace"@en ;
rdfs:domain migrants:migration_table ;
rdfs:range schema:Place .
migrants:migration_table\#ref-IDDestPlace a owl:ObjectProperty ;
rdfs:label "destinationPlace"@en ;
rdfs:domain migrants:migration_table ;
rdfs:range schema:Place .
migrants:migration_table\#reason a owl:ObjectProperty ;
rdfs:label "reason"@en ;
rdfs:domain migrants:migration_table ;
rdfs:range migrants:MigrationReason .
migrants:migration_table\#reason2 a owl:ObjectProperty ;
rdfs:label "secondaryReason"@en ;
rdfs:domain migrants:migration_table ;
rdfs:range migrants:MigrationReason .
# =============================================================================
# Datatype properties — Migration
# =============================================================================
migrants:migration_table\#IDMig a owl:DatatypeProperty ;
rdfs:label "IDMig"@en ;
rdfs:domain migrants:migration_table ;
rdfs:range xsd:integer .
migrants:migration_table\#DateStart_Min a owl:DatatypeProperty ;
rdfs:label "dateStartMin"@en ;
rdfs:domain migrants:migration_table ;
rdfs:range xsd:date .
migrants:migration_table\#DateStart_Max a owl:DatatypeProperty ;
rdfs:label "dateStartMax"@en ;
rdfs:domain migrants:migration_table ;
rdfs:range xsd:date .
migrants:migration_table\#DateEnd_Min a owl:DatatypeProperty ;
rdfs:label "dateEndMin"@en ;
rdfs:domain migrants:migration_table ;
rdfs:range xsd:date .
migrants:migration_table\#DateEnd_Max a owl:DatatypeProperty ;
rdfs:label "dateEndMax"@en ;
rdfs:domain migrants:migration_table ;
rdfs:range xsd:date .
migrants:migration_table\#DateStart_Fuzzy a owl:DatatypeProperty ;
rdfs:label "dateStartFuzzy"@en ;
rdfs:domain migrants:migration_table ;
rdfs:range xsd:string .
migrants:migration_table\#DateEnd_Fuzzy a owl:DatatypeProperty ;
rdfs:label "dateEndFuzzy"@en ;
rdfs:domain migrants:migration_table ;
rdfs:range xsd:string .
migrants:migration_table\#via a owl:DatatypeProperty ;
rdfs:label "via"@en ;
rdfs:domain migrants:migration_table ;
rdfs:range xsd:string .
# =============================================================================
# Object properties — Work
# =============================================================================
migrants:work\#ref-IDPerson a owl:ObjectProperty ;
rdfs:label "worker"@en ;
rdfs:domain migrants:work ;
rdfs:range schema:Person .
migrants:work\#ref-IDLocation a owl:ObjectProperty ;
rdfs:label "workLocation"@en ;
rdfs:domain migrants:work ;
rdfs:range schema:Place .
migrants:work\#ref-IDOrganisation a owl:ObjectProperty ;
rdfs:label "workOrganisation"@en ;
rdfs:domain migrants:work ;
rdfs:range schema:Organization .
migrants:work\#ref-IDOrganisation2 a owl:ObjectProperty ;
rdfs:label "secondaryOrganisation"@en ;
rdfs:domain migrants:work ;
rdfs:range schema:Organization .
migrants:work\#Profession a owl:ObjectProperty ;
rdfs:label "profession"@en ;
rdfs:domain migrants:work ;
rdfs:range migrants:Profession .
migrants:work\#Profession2 a owl:ObjectProperty ;
rdfs:label "secondaryProfession"@en ;
rdfs:domain migrants:work ;
rdfs:range migrants:Profession .
migrants:work\#Profession3 a owl:ObjectProperty ;
rdfs:label "tertiaryProfession"@en ;
rdfs:domain migrants:work ;
rdfs:range migrants:Profession .
migrants:work\#EmploymentType a owl:ObjectProperty ;
rdfs:label "employmentType"@en ;
rdfs:domain migrants:work ;
rdfs:range migrants:EmploymentType .
# =============================================================================
# Datatype properties — Work
# =============================================================================
migrants:work\#IDWork a owl:DatatypeProperty ;
rdfs:label "IDWork"@en ;
rdfs:domain migrants:work ;
rdfs:range xsd:integer .
migrants:work\#DateStart_Min a owl:DatatypeProperty ;
rdfs:label "dateStartMin"@en ;
rdfs:domain migrants:work ;
rdfs:range xsd:date .
migrants:work\#DateStart_Max a owl:DatatypeProperty ;
rdfs:label "dateStartMax"@en ;
rdfs:domain migrants:work ;
rdfs:range xsd:date .
migrants:work\#DateEnd_Min a owl:DatatypeProperty ;
rdfs:label "dateEndMin"@en ;
rdfs:domain migrants:work ;
rdfs:range xsd:date .
migrants:work\#DateEnd_Max a owl:DatatypeProperty ;
rdfs:label "dateEndMax"@en ;
rdfs:domain migrants:work ;
rdfs:range xsd:date .
migrants:work\#DateStart_Fuzzy a owl:DatatypeProperty ;
rdfs:label "dateStartFuzzy"@en ;
rdfs:domain migrants:work ;
rdfs:range xsd:string .
migrants:work\#DateEnd_Fuzzy a owl:DatatypeProperty ;
rdfs:label "dateEndFuzzy"@en ;
rdfs:domain migrants:work ;
rdfs:range xsd:string .
migrants:work\#Employment a owl:DatatypeProperty ;
rdfs:label "employment"@en ;
rdfs:domain migrants:work ;
rdfs:range xsd:string .
migrants:work\#comment a owl:DatatypeProperty ;
rdfs:label "comment"@en ;
rdfs:domain migrants:work ;
rdfs:range xsd:string .
# =============================================================================
# Object properties — Relationship
# =============================================================================
migrants:relationship\#ref-IDPerson_active a owl:ObjectProperty ;
rdfs:label "activePerson"@en ;
rdfs:domain migrants:relationship ;
rdfs:range schema:Person .
migrants:relationship\#ref-IDPerson_passive a owl:ObjectProperty ;
rdfs:label "passivePerson"@en ;
rdfs:domain migrants:relationship ;
rdfs:range schema:Person .
migrants:relationship\#ref-IDLocation a owl:ObjectProperty ;
rdfs:label "location"@en ;
rdfs:domain migrants:relationship ;
rdfs:range schema:Place .
migrants:relationship\#ref-IDOrganisation a owl:ObjectProperty ;
rdfs:label "organisation"@en ;
rdfs:domain migrants:relationship ;
rdfs:range schema:Organization .
migrants:relationship\#Relationshiptype a owl:ObjectProperty ;
rdfs:label "relationshipType"@en ;
rdfs:domain migrants:relationship ;
rdfs:range migrants:RelationshipType .
migrants:relationship\#relationshiptype_precise a owl:ObjectProperty ;
rdfs:label "relationshipTypePrecise"@en ;
rdfs:domain migrants:relationship ;
rdfs:range migrants:RelationshipTypePrecise .
# =============================================================================
# Datatype properties — Relationship
# =============================================================================
migrants:relationship\#IDRel a owl:DatatypeProperty ;
rdfs:label "IDRel"@en ;
rdfs:domain migrants:relationship ;
rdfs:range xsd:integer .
migrants:relationship\#DateStart_Min a owl:DatatypeProperty ;
rdfs:label "dateStartMin"@en ;
rdfs:domain migrants:relationship ;
rdfs:range xsd:date .
migrants:relationship\#DateStart_Max a owl:DatatypeProperty ;
rdfs:label "dateStartMax"@en ;
rdfs:domain migrants:relationship ;
rdfs:range xsd:date .
migrants:relationship\#DateEnd_Min a owl:DatatypeProperty ;
rdfs:label "dateEndMin"@en ;
rdfs:domain migrants:relationship ;
rdfs:range xsd:date .
migrants:relationship\#DateEnd_Max a owl:DatatypeProperty ;
rdfs:label "dateEndMax"@en ;
rdfs:domain migrants:relationship ;
rdfs:range xsd:date .
migrants:relationship\#DateStart_Fuzzy a owl:DatatypeProperty ;
rdfs:label "dateStartFuzzy"@en ;
rdfs:domain migrants:relationship ;
rdfs:range xsd:string .
migrants:relationship\#DateEnd_Fuzzy a owl:DatatypeProperty ;
rdfs:label "dateEndFuzzy"@en ;
rdfs:domain migrants:relationship ;
rdfs:range xsd:string .
migrants:relationship\#Timeperiod a owl:DatatypeProperty ;
rdfs:label "timePeriod"@en ;
rdfs:domain migrants:relationship ;
rdfs:range xsd:string .
migrants:relationship\#comment a owl:DatatypeProperty ;
rdfs:label "comment"@en ;
rdfs:domain migrants:relationship ;
rdfs:range xsd:string .
# =============================================================================
# Object properties — PersonProfession
# =============================================================================
migrants:person_profession\#ref-IDPerson a owl:ObjectProperty ;
rdfs:label "person"@en ;
rdfs:domain migrants:person_profession ;
rdfs:range schema:Person .
migrants:person_profession\#Eprofession a owl:ObjectProperty ;
rdfs:label "enumeratedProfession"@en ;
rdfs:domain migrants:person_profession ;
rdfs:range migrants:Profession .
# =============================================================================
# Datatype properties — PersonProfession
# =============================================================================
migrants:person_profession\#IDProfPerson a owl:DatatypeProperty ;
rdfs:label "IDProfPerson"@en ;
rdfs:domain migrants:person_profession ;
rdfs:range xsd:integer .
migrants:person_profession\#profession a owl:DatatypeProperty ;
rdfs:label "professionLabel"@en ;
rdfs:domain migrants:person_profession ;
rdfs:range xsd:string .
# =============================================================================
# Object properties — PersonName
# =============================================================================
migrants:personnames\#ref-IDPerson a owl:ObjectProperty ;
rdfs:label "person"@en ;
rdfs:domain migrants:personnames ;
rdfs:range schema:Person .
migrants:personnames\#Nametype a owl:ObjectProperty ;
rdfs:label "nameType"@en ;
rdfs:domain migrants:personnames ;
rdfs:range migrants:Nametype .
# =============================================================================
# Datatype properties — PersonName
# =============================================================================
migrants:personnames\#IDPersonname a owl:DatatypeProperty ;
rdfs:label "IDPersonname"@en ;
rdfs:domain migrants:personnames ;
rdfs:range xsd:integer .
migrants:personnames\#personName a owl:DatatypeProperty ;
rdfs:label "personName"@en ;
rdfs:domain migrants:personnames ;
rdfs:range xsd:string .
migrants:personnames\#personSurName a owl:DatatypeProperty ;
rdfs:label "personSurName"@en ;
rdfs:domain migrants:personnames ;
rdfs:range xsd:string .
migrants:personnames\#comment a owl:DatatypeProperty ;
rdfs:label "comment"@en ;
rdfs:domain migrants:personnames ;
rdfs:range xsd:string .
migrants:personnames\#DateStart_Min a owl:DatatypeProperty ;
rdfs:label "dateStartMin"@en ;
rdfs:domain migrants:personnames ;
rdfs:range xsd:date .
migrants:personnames\#DateStart_Max a owl:DatatypeProperty ;
rdfs:label "dateStartMax"@en ;
rdfs:domain migrants:personnames ;
rdfs:range xsd:date .
migrants:personnames\#DateEnd_Min a owl:DatatypeProperty ;
rdfs:label "dateEndMin"@en ;
rdfs:domain migrants:personnames ;
rdfs:range xsd:date .
migrants:personnames\#DateEnd_Max a owl:DatatypeProperty ;
rdfs:label "dateEndMax"@en ;
rdfs:domain migrants:personnames ;
rdfs:range xsd:date .
migrants:personnames\#DateStart_Fuzzy a owl:DatatypeProperty ;
rdfs:label "dateStartFuzzy"@en ;
rdfs:domain migrants:personnames ;
rdfs:range xsd:string .
migrants:personnames\#DateEnd_Fuzzy a owl:DatatypeProperty ;
rdfs:label "dateEndFuzzy"@en ;
rdfs:domain migrants:personnames ;
rdfs:range xsd:string .
# =============================================================================
# Object properties — ReligionAffiliation
# =============================================================================
migrants:religions\#ref-IDPerson a owl:ObjectProperty ;
rdfs:label "person"@en ;
rdfs:domain migrants:religions ;
rdfs:range schema:Person .
migrants:religions\#religion a owl:ObjectProperty ;
rdfs:label "religion"@en ;
rdfs:domain migrants:religions ;
rdfs:range migrants:Religion .
# =============================================================================
# Datatype properties — ReligionAffiliation
# =============================================================================
migrants:religions\#IDReligion a owl:DatatypeProperty ;
rdfs:label "IDReligion"@en ;
rdfs:domain migrants:religions ;
rdfs:range xsd:integer .
migrants:religions\#denomination a owl:DatatypeProperty ;
rdfs:label "denomination"@en ;
rdfs:domain migrants:religions ;
rdfs:range xsd:string .
migrants:religions\#comment a owl:DatatypeProperty ;
rdfs:label "comment"@en ;
rdfs:domain migrants:religions ;
rdfs:range xsd:string .
migrants:religions\#date_start a owl:DatatypeProperty ;
rdfs:label "dateStart"@en ;
rdfs:domain migrants:religions ;
rdfs:range xsd:date .
migrants:religions\#DateStart_Max a owl:DatatypeProperty ;
rdfs:label "dateStartMax"@en ;
rdfs:domain migrants:religions ;
rdfs:range xsd:date .
migrants:religions\#DateEnd_Max a owl:DatatypeProperty ;
rdfs:label "dateEndMax"@en ;
rdfs:domain migrants:religions ;
rdfs:range xsd:date .
migrants:religions\#DateEnd_Min a owl:DatatypeProperty ;
rdfs:label "dateEndMin"@en ;
rdfs:domain migrants:religions ;
rdfs:range xsd:date .
migrants:religions\#DateStart_Fuzzy a owl:DatatypeProperty ;
rdfs:label "dateStartFuzzy"@en ;
rdfs:domain migrants:religions ;
rdfs:range xsd:string .