Mediathek docs

The Mediathek ontology

Photos, films and the people, events, places and life areas they belong to. A thin layer over schema.org, FOAF, RELATIONSHIP, SKOS and Web Annotation.

Version 0.1.0 · https://mediathek.digitalhome.cloud/ontology · 11 classes, 16 properties, 15 shapes, 4 concept schemes · Turtle: tbox/mediathek-concepts.ttl, tbox/mediathek.ttl, shapes/mediathek-shapes.ttl

The T-Box only: it defines kinds of things and how they relate, and holds no family's data. Each vault's A-Box, the actual people, events and places, lives in the Mediathek and is never published here.

Classes

Termendefr
mt:Album
is a schema:Collection
AlbumAlbumAlbum
mt:Document
is a mt:Item, schema:DigitalDocument
An office document or other file, kept as its original (ADR-0014). What it says is described by a summary that is reviewed (ADR-0016).
DocumentDokumentDocument
mt:Event
is a schema:Event
EventEreignisÉvénement
mt:FaceAnnotation
is a oa:Annotation
A region of a photo (oa:hasTarget with a media-fragment selector, xywh=percent:…) and the person it shows (oa:hasBody). Only names confirmed by a person; face vectors never appear in any A-Box.
FaceGesichtVisage
mt:Family
is a foaf:Group
FamilyFamilieFamille
mt:Item
is a schema:MediaObject
One piece of media in the Mediathek, identified by the SHA-256 of its original bytes.
ItemMediumMédia
mt:Person
is a foaf:Person, schema:Person
Someone, identified by a minted id; the name is only a label. A person without a name is someone seen on photos and kept together (their faces look alike) but not yet recognised.
PersonPersonPersonne
mt:Pet
An animal of the family, identified by a minted id like a person; the name is only a label. Found on photos by the edge (a detector, then crops that look alike), named by the family.
PetHaustierAnimal de compagnie
mt:Photo
is a mt:Item, schema:ImageObject, foaf:Image
PhotoFotoPhoto
mt:Place
is a schema:Place
PlaceOrtLieu
mt:Video
is a mt:Item, schema:VideoObject
VideoVideoVidéo

Properties

Termendefr
mt:classmateOf object
mt:Person → mt:Person
Went to the same class. The RELATIONSHIP vocabulary has no such term.
classmate ofKlassenkamerad voncamarade de classe de
mt:documentType object, one value
mt:Document → skos:Concept
A concept from mt:DocumentTypes, e.g. mt:Invoice.
document typeArt des Dokumentstype de document
mt:eventType object, one value
mt:Event → skos:Concept
A concept from mt:EventTypes, e.g. mt:ClassReunion.
event typeArt des Ereignissestype d'événement
mt:geonames object
mt:Place → anything
narrows owl:sameAs
GeoNames entryGeoNames-Eintragentrée GeoNames
mt:hidden datatype
mt:Person or mt:Pet → xsd:boolean
Left out of lists and filters unless asked for; still counted and viewable on each photo. People kept without a name start hidden.
hiddenausgeblendetmasqué
mt:inAlbum object
mt:Item → mt:Album
in albumim Albumdans l'album
mt:lifeArea object
anything → skos:Concept
A concept from mt:LifeAreas (School, Work, Family, …) for an item, album or event.
life areaLebensbereichdomaine de vie
mt:member object
mt:Family → mt:Person
narrows foaf:member
memberMitgliedmembre
mt:mergedInto object, one value
mt:Person or mt:Pet → [ ]
narrows owl:sameAs
This record turned out to be another person (an unknown given a name that exists). Kept so that face boxes and links elsewhere pointing at it still resolve.
same person asdieselbe Person wiemême personne que
mt:ofEvent object
mt:Item → mt:Event
narrows schema:about
The event a photo or film was taken at.
taken ataufgenommen beipris lors de
mt:partOfPlace object
mt:Place → mt:Place
narrows schema:containedInPlace
Country ← region ← town ← venue.
part ofliegt infait partie de
mt:place object
anything → mt:Place
narrows schema:location
Where an item was taken or an event took place.
placeOrtlieu
mt:sha256 datatype, one value
mt:Item → xsd:string
Lowercase hex SHA-256 of the original: the item's identity in every environment.
SHA-256SHA-256SHA-256
mt:species datatype, one value
mt:Pet → xsd:string
What kind of animal: dog, cat, horse, rabbit, guinea pig, hamster or bird.
speciesTierartespèce
mt:summaryState object, one value
mt:Item → skos:Concept
mt:SummaryDraft (written by the agent, not looked at yet) or mt:SummaryChecked (a person read and checked it).
summary stateStand der Zusammenfassungétat du résumé
mt:year datatype, one value
mt:Item → xsd:gYear
The year a photo or film was taken, set by hand when the file's own date is wrong or missing (a scan, a copy). It replaces the file's year; the month and day are not guessed.
yearJahrannée

Borrowed terms

Terms from standard vocabularies, and what they mean in the Mediathek.

Termendefr
foaf:depictsshowszeigtmontre
rel:childOfchild ofKind vonenfant de
rel:friendOffriend ofbefreundet mitami de
rel:grandchildOfgrandchild ofEnkelkind vonpetit-enfant de
rel:grandparentOfgrandparent ofGroßelternteil vongrand-parent de
rel:parentOfparent ofElternteil vonparent de
rel:siblingOfsibling ofGeschwister vonfrère ou sœur de
rel:spouseOfspouse ofEhepartner vonépoux ou épouse de
schema:abstract
What an item (a photo, a film or a document) shows or says, at most one per language (en, de, fr), written by the agent and reviewed by a person; mt:summaryState says how far.
summaryZusammenfassungrésumé
schema:attendeeattendeeTeilnehmerparticipant
schema:dateCreated
The date the item itself carries (an invoice's date, a date written on a photo), not the file's.
document dateDatum des Dokumentsdate du document
schema:mentions
A person, pet, place or event an item names or is about: a document's parties and subject, a film's occasion.
mentionsnenntmentionne
schema:superEvent
An occurrence ("Birthday 2017") is part of a generic event ("Birthdays"), which has no date. Photos of the occurrence count for the generic event too.
part ofTeil vonfait partie de

Rules (SHACL)

What the cloud checks on every save of an A-Box; a save that breaks one is refused with the message shown.

mtsh:ConceptShape for every skos:Concept

PathRuleWhen it is broken
skos:prefLabelone per language · at least 1 matching [ ]A concept needs exactly one English prefLabel: English is the master language.
skos:inSchemeat least 1A concept belongs to a scheme (mt:EventTypes, mt:LifeAreas, …).

mtsh:DocumentShape for every mt:Document

PathRuleWhen it is broken
mt:documentTypeat most 1 · shape mtsh:InDocumentTypesA document has at most one type, from mt:DocumentTypes (e.g. mt:Invoice).

mtsh:EventShape for every mt:Event

PathRuleWhen it is broken
skos:prefLabelrdf:langString · one per languageA name's translations: at most one per language, each with its language tag.
schema:nameat least 1An event needs a name, e.g. "Klassentreffen 2019".
mt:eventTypeexactly 1 · shape mtsh:InEventTypesAn event has exactly one type from mt:EventTypes (e.g. mt:ClassReunion).
schema:startDateat most 1 · xsd:date or xsd:dateTime or xsd:gYear or xsd:gYearMonthAn event has at most one start: a date, a date-time, a year or a year-month. A generic event ("Birthdays") has none.
schema:endDateat most 1
mt:placea mt:PlaceAn event's place is an mt:Place.
schema:attendeea mt:PersonAttendees are persons.
schema:superEventa mt:EventAn event is part of another event.
mt:lifeAreashape mtsh:InLifeAreasLife areas come from mt:LifeAreas.

mtsh:FaceShape for every mt:FaceAnnotation

PathRuleWhen it is broken
oa:hasBodyexactly 1 · a mt:PersonA face shows exactly one person.
[ ]at least 1 · a mt:PhotoA face is a region of a photo.
[ ]at least 1 · matches /^xywh=percent:[0-9.]+,[0-9.]+,[0-9.]+,[0-9.]+$/A face region is a media fragment, xywh=percent:x,y,w,h.

mtsh:FamilyShape for every mt:Family

PathRuleWhen it is broken
skos:prefLabelrdf:langString · one per languageA name's translations: at most one per language, each with its language tag.
schema:nameat least 1A family needs a name.
mt:memberat least 1 · a mt:PersonA family has at least one member, and members are persons.

mtsh:ItemShape for every mt:Photo, mt:Video, mt:Document

PathRuleWhen it is broken
mt:sha256exactly 1 · xsd:string · matches /^[0-9a-f]{64}$/An item is identified by one lowercase hex SHA-256.
foaf:depictsmt:Person or mt:PetA photo shows persons and pets.
mt:ofEventa mt:EventAn item is taken at an event.
mt:yearat most 1 · xsd:gYearAn item has at most one year set by hand, a year such as "1987"^^xsd:gYear.
mt:placea mt:Place
mt:lifeAreashape mtsh:InLifeAreasLife areas come from mt:LifeAreas.

mtsh:PersonShape for every mt:Person

PathRuleWhen it is broken
schema:nameat most 1 · xsd:stringA person has at most one name (schema:name), a plain string. None means not yet recognised.
mt:hiddenat most 1 · xsd:booleanmt:hidden is one true or false.
mt:mergedIntoat most 1 · a mt:Personmt:mergedInto points at one other person.
rel:parentOfa mt:PersonparentOf links two persons.
rel:childOfa mt:PersonchildOf links two persons.
rel:siblingOfa mt:PersonsiblingOf links two persons.
rel:spouseOfa mt:PersonspouseOf links two persons.
rel:grandparentOfa mt:PersongrandparentOf links two persons.
rel:grandchildOfa mt:PersongrandchildOf links two persons.
rel:friendOfa mt:PersonfriendOf links two persons.
mt:classmateOfa mt:PersonclassmateOf links two persons.
schema:birthDateat most 1 · xsd:date or xsd:gYearbirthDate is a date or a year.

mtsh:PetShape for every mt:Pet

PathRuleWhen it is broken
schema:nameat most 1 · xsd:stringA pet has at most one name (schema:name), a plain string. None means not yet named.
mt:speciesat most 1 · one of <dog>, <cat>, <horse>, <rabbit>, <guinea pig>, <hamster>, <bird>mt:species is one of dog, cat, horse, rabbit, guinea pig, hamster, bird.
mt:hiddenat most 1 · xsd:booleanmt:hidden is one true or false.
mt:mergedIntoat most 1 · a mt:Petmt:mergedInto points at one other pet.

mtsh:PictureShape for every mt:Photo, mt:Video

PathRuleWhen it is broken
mt:documentTypeat most 0Only a document has a document type.

mtsh:PlaceShape for every mt:Place

PathRuleWhen it is broken
skos:prefLabelrdf:langString · one per languageA name's translations: at most one per language, each with its language tag.
schema:nameat least 1A place needs a name.
mt:partOfPlacea mt:PlaceA place lies in another place.
wgs84:latat most 1 · xsd:decimal · -90 to 90
wgs84:longat most 1 · xsd:decimal · -180 to 180

mtsh:SummaryShape for every mt:Photo, mt:Video, mt:Document

PathRuleWhen it is broken
schema:abstractrdf:langString · in en, de, fr · one per languageAn item has at most one summary per language, in en, de or fr, each with its language tag.
schema:dateCreatedat most 1 · xsd:date or xsd:gYear or xsd:gYearMonthAn item has at most one date of its own: a date, a year or a year-month.
schema:mentionsmt:Person or mt:Pet or mt:Place or mt:EventAn item mentions persons, pets, places and events.
mt:summaryStateat most 1 · shape mtsh:InSummaryStatesA summary's state is mt:SummaryDraft or mt:SummaryChecked.

mtsh:InDocumentTypes used by other shapes

PathRuleWhen it is broken
skos:inSchemealways mt:DocumentTypes

mtsh:InEventTypes used by other shapes

PathRuleWhen it is broken
skos:inSchemealways mt:EventTypes

mtsh:InLifeAreas used by other shapes

PathRuleWhen it is broken
skos:inSchemealways mt:LifeAreas

mtsh:InSummaryStates used by other shapes

PathRuleWhen it is broken
skos:inSchemealways mt:SummaryStates

Concepts (SKOS)

The fixed vocabularies a person picks from. English is the master; German and French are shown to people who chose them.

Document types mt:DocumentTypes, 20 concepts

Termendefr
mt:BankStatementBank statementKontoauszugRelevé bancaire
mt:Certificate
also Diploma, Bescheinigung, Diplôme, Attestation
CertificateUrkundeCertificat
mt:Contract
also Agreement
ContractVertragContrat
mt:Form
also Antrag, Demande, Application
FormFormularFormulaire
mt:InsuranceDocument
also Policy, Police, Sinistre
InsuranceVersicherungAssurance
mt:Invoice
also Bill
InvoiceRechnungFacture
mt:Letter
also Schreiben, Courrier
LetterBriefLettre
mt:Manual
also Bedienungsanleitung, Notice
ManualAnleitungMode d'emploi
mt:MedicalDocument
also Arztbrief, Ordonnance, Prescription
MedicalMedizinischMédical
mt:NotesNotesNotizenNotes
mt:OtherDocumentOther documentAnderes DokumentAutre document
mt:Payslip
also Lohnabrechnung, Bulletin de salaire
PayslipGehaltsabrechnungFiche de paie
mt:PresentationPresentationPräsentationPrésentation
mt:Receipt
also Kassenbon, Ticket de caisse
ReceiptQuittungReçu
mt:ReportReportBerichtRapport
mt:ReportCardReport cardZeugnisBulletin scolaire
mt:SchoolWork
also Homework, Hausaufgabe, Devoir
School workSchularbeitTravail scolaire
mt:Spreadsheet
also List, Liste, Liste
SpreadsheetTabelleTableur
mt:TaxDocument
also Steuerbescheid, Avis d'imposition
TaxSteuerImpôts
mt:Warranty
also Guarantee
WarrantyGarantieGarantie

Event types mt:EventTypes, 37 concepts

Termendefr
mt:CelebrationCelebrationFestCélébration
mt:Anniversary
also Anniversaire, Jubilee, Jahrestag
AnniversaryJubiläumJubilé
mt:BirthdayBirthdayGeburtstagAnniversaire
mt:Christening
also Baptism
ChristeningTaufeBaptême
mt:Confirmation
also Firmung, Profession de foi
ConfirmationKonfirmationConfirmation
mt:FirstCommunionFirst communionErstkommunionPremière communion
mt:WeddingWeddingHochzeitMariage
mt:WeddingAnniversaryWedding anniversaryHochzeitstagAnniversaire de mariage
mt:Everyday
also Daily life, Vie quotidienne
EverydayAlltagQuotidien
mt:GatheringGatheringTreffenRencontre
mt:ClassReunion
also School reunion, Jahrgangstreffen, Réunion d'anciens élèves
Class reunionKlassentreffenRetrouvailles de classe
mt:FamilyReunionFamily reunionFamilientreffenRéunion de famille
mt:Party
also Party, Soirée
PartyFeierFête
mt:HousewarmingHousewarmingEinweihungsfeierPendaison de crémaillère
mt:LifeEventLife eventLebensereignisÉtape de vie
mt:BirthBirthGeburtNaissance
mt:Funeral
also Trauerfeier, Funérailles
FuneralBeerdigungObsèques
mt:MovingHouseMoving houseUmzugDéménagement
mt:RetirementRetirementRuhestandDépart à la retraite
mt:Performance
also Concert, Konzert, Concert
PerformanceAufführungSpectacle
mt:SchoolEventSchool eventSchulereignisÉvénement scolaire
mt:FirstSchoolDayFirst day of schoolEinschulungPremier jour d'école
mt:Graduation
also Abitur, Baccalauréat
GraduationSchulabschlussRemise des diplômes
mt:SchoolTripSchool tripKlassenfahrtVoyage scolaire
mt:SeasonalHolidaySeasonal holidayFeiertagFête calendaire
mt:Carnival
also Fasching, Fastnacht, Mardi gras
CarnivalKarnevalCarnaval
mt:ChristmasChristmasWeihnachtenNoël
mt:EasterEasterOsternPâques
mt:HalloweenHalloweenHalloweenHalloween
mt:NewYearsEveNew Year's EveSilvesterRéveillon du Nouvel An
mt:SportsEvent
also Match, Wettkampf, Compétition
Sports eventSportveranstaltungÉvénement sportif
mt:TravelTripReiseVoyage
mt:DayTrip
also Outing, Sortie, Hike, Wanderung, Randonnée
Day tripAusflugExcursion
mt:Vacation
also Vacation, Ferien
HolidayUrlaubVacances
mt:WeekendTripWeekend tripWochenendausflugWeek-end
mt:WorkEventWork eventBerufliches EreignisÉvénement professionnel
mt:CompanyPartyCompany partyBetriebsfeierFête d'entreprise

Life areas mt:LifeAreas, 9 concepts

Termendefr
mt:AreaFamilyFamilyFamilieFamille
mt:AreaFriendsFriendsFreundeAmis
mt:AreaHobbiesHobbiesHobbysLoisirs
mt:AreaHomeHomeZuhauseMaison
mt:AreaNatureNatureNaturNature
mt:AreaSchoolSchoolSchuleÉcole
mt:AreaSportSportSportSport
mt:AreaTravelTravelReisenVoyages
mt:AreaWorkWorkArbeitTravail

Summary states mt:SummaryStates, 2 concepts

Termendefr
mt:SummaryCheckedCheckedGeprüftVérifié
mt:SummaryDraftAI draftKI-EntwurfBrouillon IA

Prefixes

dcterms:http://purl.org/dc/terms/
foaf:http://xmlns.com/foaf/0.1/
mt:https://mediathek.digitalhome.cloud/ontology#
mtsh:https://mediathek.digitalhome.cloud/shapes#
oa:http://www.w3.org/ns/oa#
owl:http://www.w3.org/2002/07/owl#
rdf:http://www.w3.org/1999/02/22-rdf-syntax-ns#
rdfs:http://www.w3.org/2000/01/rdf-schema#
rel:http://purl.org/vocab/relationship/
schema:https://schema.org/
sh:http://www.w3.org/ns/shacl#
skos:http://www.w3.org/2004/02/skos/core#
wgs84:http://www.w3.org/2003/01/geo/wgs84_pos#
xsd:http://www.w3.org/2001/XMLSchema#