Skip to main content
Switch to German|Current language: English

Prosopographic Modelling - Vocabularies

Written by
Vera Maria Charvat and Matej Ďurčo
Published on
June 9, 2021
Tagged with
Prosopographic data and Semantic web

Main concepts

Vocabulary

Simple Knowledge Organisation System - SKOS

  • ”a common data model for sharing and linking knowledge organization systems via the Web”
  • developed in order to create a schema for modelling controlled vocabularies (such as taxonomies, thesauri, etc.) in a way that is compliant with Linked Open Data principles.
  • SKOS is based on concepts (terms) which can be supplemented with labels, notes, comments, etc.
    • The central entity is a skos:Concept
  • skos:Concepts can be collected into a coherent
    • skos:ConceptScheme
  • skos:Concepts can have multiple lexical (language-specific) representations “labels”:
    • skos:prefLabel, skos:altLabel, skos:hiddenLabel
  • Those concepts can be linked to each other using hierarchical or associative relations. Those semantic relations between skos:Concepts can be expressed with:
    • skos:narrower, skos:broader, skos:related
  • to express a semantic relation between concepts from two distinct vocabularies, following mapping relations can be used:
    • skos:exactMatch, skos:closeMatch, skos:narrowerMatch, skos:broaderMatch

Sample datasets

Description of aspects of the sample datasets relevant for vocabularies discussion.

VieCPro

One central controlled vocabulary in VieCPro categorizes the functions/roles/occupations (Funktionsbezeichnungen) at the Viennese Court (see: viecpro-vocabs.skos.ttl.

Example of a sample occupation/role expressed as a concept (represented by term "Kaplan"), together with the relation to a more general (broader) concept ("Geistliches Personal").

<https://vocabs.acdh-dev.oeaw.ac.at/apisthesaurus/2629>
  skos:broader <https://vocabs.acdh-dev.oeaw.ac.at/apisthesaurus/4797>;
  skos:prefLabel "Kaplan"@de .

<https://vocabs.acdh-dev.oeaw.ac.at/apisthesaurus/4797> a skos:Concept;
  skos:prefLabel "Geistliches Personal"@de;
  skos:topConceptOf <https://vocabs.acdh-dev.oeaw.ac.at/apisthesaurus/ApisSchema>
<https://vocabs.acdh-dev.oeaw.ac.at/apisthesaurus/2630> a skos:Concept;
  skos:altLabel "Geistliches Personal >> Hofkaplan"@de, "reverse label: Geistliches Personal [REVERSE] >> Hofkaplan [REVERSE]"@de,
    "reverse name: Hofkaplan [REVERSE]"@de;
  skos:broader <https://vocabs.acdh-dev.oeaw.ac.at/apisthesaurus/4797>;
  skos:prefLabel "Hofkaplan"@de .

NAMPI

Closely corresponding to the Funktionsbezeichnung of VieCPro, in NAMPI there is a classification of religious status and occupation. However, partly owing to the factoid-based data model, it is not represented as skos:Concepts, but rather as subClass hierarchy of the generic concept Aspect, defined in the dedicated monastic-life ontology.

Visualisation of NAMPI Monastic Life Ontology

For the purpose of this exercise we’ve derived a controlled vocabulary from the original data in SKOS (see: nampiSkos.ttl).

@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix nampi: <https://purl.org/nampi/owl/core#> .
@prefix mon: <https://purl.org/nampi/owl/monastic-life#> .
@prefix asp: <https://purl.org/nampi/data/aspect/> .

nampi:aspect rdf:type skos:Concept ;
  skos:prefLabel "Aspect"@en ;
  skos:narrower nampi:title ;
  skos:narrower nampi:appellation ;
  skos:narrower nampi:occupation ;
  skos:narrower nampi:status .

nampi:status rdf:type skos:Concept ;
  skos:prefLabel "Status"@en ;
  skos:broader nampi:aspect ;
  skos:narrower mon:clergy ;
  skos:narrower mon:academic_degree ;
  skos:narrower mon:community_superior ;
  skos:narrower mon:member_of_a_religious_community ;
  skos:narrower mon:office_in_a_diocese ;
  skos:narrower mon:religious_life_outside_a_community ;
  skos:narrower mon:visitator ;
  skos:narrower mon:monastic_office .

mon:academic_degree rdf:type skos:Concept ;
  skos:prefLabel "Academic degree"@en ;
  skos:broader nampi:status ;
  skos:narrower asp:7f4f9789-f5c9-4802-9439-c77ab3f00755 .

asp:7f4f9789-f5c9-4802-9439-c77ab3f00755 rdf:type skos:Concept ;
  skos:prefLabel "Doctor of Laws"@en ;
  skos:broader mon:academic_degree .

Exercise

Predefine namespace prefixes

PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX nampi: <https://purl.org/nampi/owl/core#>
PREFIX mon: <https://purl.org/nampi/owl/monastic-life#>
PREFIX asp: <https://purl.org/nampi/data/aspect/>

Task 1: Explore the vocabularies via SPARQL

a) What are the terms?

SELECT DISTINCT ?c WHERE {
  ?c  a skos:Concept.
}

b) How many are there?

SELECT (COUNT(?c) as ?count) WHERE {
  ?c  a skos:Concept.
}

c) Which properties do the concepts have?

SELECT ?p (COUNT(?c) as ?count) WHERE {
  ?c  a skos:Concept.
  ?c ?p [].
}
GROUP BY ?p

d) Are they structured (hierarchically)?

SELECT distinct ?uri ?prefLabel ?broaderLabel ?narrowerLabel WHERE {
  ?uri skos:prefLabel ?prefLabel .
    OPTIONAL {?uri skos:broader ?broader .
    ?broader skos:prefLabel ?broaderLabel} .
    OPTIONAL {?uri skos:narrower ?narrower .
    ?narrower skos:prefLabel ?narrowerLabel} .
}
ORDER by desc((str(?broaderLabel)))
LIMIT 100

Task 2: Explore the use of the vocabularies

How are the concepts actually used (for categorisation)? (For which entities are the concepts asserted?)

SELECT ?o ?p  ?c ?l   WHERE {
  ?c a skos:Concept; skos:prefLabel ?l.
  ?o ?p ?c.
}
LIMIT 10

Can also be inspected in detail-view of the concept

However due to the underlying data model, there are intermediate “nodes” between category/concept and person:

  • Example from NAMPI:

    Usage Example NAMPI

    SELECT ?p ?c ?l  WHERE {
      BIND (<https://purl.org/nampi/data/aspect/885c176c-b919-45e8-b6b8-accc14ff20f3> AS ?c)
      ?c a skos:Concept; skos:prefLabel ?l.
      ?e nampi:adds_aspect ?c.
      ?e nampi:changes_aspect_of ?p.
    }
    LIMIT 10
    
  • Example from VieCPro:

    Usage Example VieCPro

    SELECT ?p  ?c ?l  WHERE {
      BIND (<https://vocabs.acdh-dev.oeaw.ac.at/apisthesaurus/3542> AS ?c)
      ?c a skos:Concept; skos:prefLabel ?l.
      ?j <http://www.cidoc-crm.org/cidoc-crm/P144.1_kind_of_member> ?c.
      ?j crm:P01_has_domain ?d.
      ?d crm:P143_joined ?p.
    }
    LIMIT 10
    

Task 3: Find equivalent or similar terms

Find equivalent or similar terms in the vocabularies from VieCPro and NAMPI and express equivalence or other semantic relation between these formally in SKOS.

  • skos:exactMatch “Priest” (NAMPI) and “Priester” (VieCPro)

    <https://vocabs.acdh-dev.oeaw.ac.at/apisthesaurus/2989> a skos:Concept;
      skos:altLabel "reverse name: Priester [REVERSE]"@de;
      skos:prefLabel "Priester"@de;
      skos:topConceptOf <https://vocabs.acdh-dev.oeaw.ac.at/apisthesaurus/ApisSchema> .
    
    asp:619860f5-623e-4248-835d-067f784c61be rdf:type skos:Concept ;
      skos:prefLabel "Priest"@en ;
      skos:broader mon:clergy .
    
  • skos:exactMatch “Coadiutor” (NAMPI) and “Koadjutor” (VieCPro)

    <https://vocabs.acdh-dev.oeaw.ac.at/apisthesaurus/3760> a skos:Concept;
      skos:altLabel "reverse name: Koadjutor [REVERSE]"@de;
      skos:prefLabel "Koadjutor"@de;
      skos:topConceptOf <https://vocabs.acdh-dev.oeaw.ac.at/apisthesaurus/ApisSchema> .
    
    asp:ee8326a1-2b5d-4e72-9479-902b030905d7 rdf:type skos:Concept ;
      skos:prefLabel "Coadiutor"@en ;
      skos:broader mon:clergy .
    
  • skos:exactMatch “Procurator” (NAMPI) and “Prokurator” (VieCPro)

    <https://vocabs.acdh-dev.oeaw.ac.at/apisthesaurus/3172> a skos:Concept;
      skos:altLabel "reverse name: Prokurator [REVERSE]"@de;
      skos:prefLabel "Prokurator"@de;
      skos:topConceptOf <https://vocabs.acdh-dev.oeaw.ac.at/apisthesaurus/ApisSchema> .
    
    mon:procurator  rdf:type skos:Concept ;
      skos:prefLabel "Procurator "@en ;
      skos:broader mon:community_superior .
    
  • skos:closeMatch “Dominican prior” (NAMPI) and “Carthusian prior” (NAMPI) and “Prior” (VieCPro) [Questionable: is a closeMatch correct here?]

    <https://vocabs.acdh-dev.oeaw.ac.at/apisthesaurus/4496> a skos:Concept;
      skos:altLabel "Geistliches Personal >> Prior"@de, "reverse label: Geistliches Personal [REVERSE] >> Prior [REVERSE]"@de,
        "reverse name: Prior [REVERSE]"@de;
      skos:broader <https://vocabs.acdh-dev.oeaw.ac.at/apisthesaurus/4797>;
      skos:prefLabel "Prior"@de .
    
    asp:885c176c-b919-45e8-b6b8-accc14ff20f3 rdf:type skos:Concept ;
      skos:prefLabel "Carthusian prior"@en ;
      skos:broader mon:community_superior .
    
    asp:d0bc56ff-c0fd-4701-b1b4-577a3fc8d70e rdf:type skos:Concept ;
      skos:prefLabel "Dominican prior"@en ;
      skos:broader mon:community_superior .
    
  • skos:closeMatch “Novice” (NAMPI) and “Novizin” (VieCPro) [Questionable: is a closeMatch correct here?]

    <https://vocabs.acdh-dev.oeaw.ac.at/apisthesaurus/4626> a skos:Concept;
      skos:altLabel "reverse name: Novizin [REVERSE]"@de;
      skos:prefLabel "Novizin"@de;
      skos:topConceptOf <https://vocabs.acdh-dev.oeaw.ac.at/apisthesaurus/ApisSchema> .
    
    asp:e4d0b440-a5e3-4be3-9ca9-d292c9cb414a rdf:type skos:Concept ;
      skos:prefLabel "Novice"@en ;
      skos:broader mon:member_of_a_religious_community .
    
  • skos:closeMatch “Minister of ceremonies” (NAMPI) and “Zeremoniar” (VieCPro) [Questionable: is a closeMatch correct here?]

    <https://vocabs.acdh-dev.oeaw.ac.at/apisthesaurus/3542> a skos:Concept;
      skos:altLabel "reverse name: Zeremoniar [REVERSE]"@de;
      skos:prefLabel "Zeremoniar"@de;
      skos:topConceptOf <https://vocabs.acdh-dev.oeaw.ac.at/apisthesaurus/ApisSchema> .
    
    asp:24188eda-cfd4-470f-a41c-693b3dd0045e rdf:type skos:Concept ;
      skos:prefLabel "Minister of ceremonies"@en ;
      skos:broader mon:office_in_a_diocese .
    
    asp:24188eda-cfd4-470f-a41c-693b3dd0045e rdf:type skos:Concept ;
      skos:prefLabel "Minister of ceremonies"@en ;
      skos:broader mon:clergy .
    

a) Show all concepts with close or exact match

SELECT ?c1 ?c2 ?matchtype WHERE {
  {  ?c1 a skos:Concept; skos:exactMatch ?c2.
    BIND ("exact" as ?matchtype)
  } UNION {
 { ?c1 a skos:Concept; skos:closeMatch ?c2.
      BIND ("close" as ?matchtype)
    }} }
    LIMIT 20