Post on 06-Apr-2016
DCMI RDF Application Profile Task GroupStefanie RühleKIM WS 201531. März 2015
Overview
• Ausgangslage und Ziele der RDF AP Task Group
• Use Case Database
• Beispiel CS-6 Use of EDM in DDB
Exkurs: Was ist ein AP?
• Ein Metadatenprofil/Anwendungsprofil hält fest,– Was für Ressourcen beschrieben werden– Was für ein Vokabular dafür verwendet wird– Was für Regeln für dieses Vokabular gelten -> constraints
• Unterstützt die Nachnutzung von Metadaten einer lokalen Anwendung (closed world) außerhalb dieser Anwendung (open world)
– menschenlesbar -> Mapping -> pdf, xls– maschinenlesbar -> Validierung und Verarbeitung -> xsd
• „… all metadata is dirty, but you can do something about it.“– Source: Seth van Hooland and Ruben Verborgh 2014: Linked Data for Libraries,
Archives and Museums, p. 71
DCMI RDF-Application Profile Task Group
• Wir wollen:– RDF Daten validieren– Vokabulare “maschinenlesbar” veröffentlichen– Regeln definieren, die für die Verwendung des Vokabulars in meiner lokalen
Anwendung gelten -> constraints, extensions, variations
• Wir brauchen:– Eine menschen- und maschinenlesbare Dokumentation
• Wir fragen uns:– Wie lassen sich validierbare Regeln für RDF definieren und was für Werkzeuge
und Prozesse können helfen?
DCMI RDF AP TG – W3C RDF Data Shapes WG
• DCMI RDF Application Profile Task Group– wiki.dublincore.org/index.php/RDF_Application_Profiles
• RDF Validation Workshop 10-11 September 2013– www.w3.org/2012/12/rdf-val
• W3C RDF Data Shapes Working Group– „… produce a language for defining structural constraints on RDF graphs.“– „… will enable the definition of graph topologies for interface specification, code
development, and data verification.“– www.w3.org/2014/data-shapes
Aufgaben der RDF AP TG
• Case Studies -> verschiedene Projekte und Experten, die RDF-Daten (nach)nutzen
• Use Cases -> konkrete Anwendungsfälle aus diesen Case Studies
• Requirements -> konkrete Anforderungen an ein RDF AP, die sich aus den Use Cases ergeben
• Best Practices -> – prüfen, was für Lösungen bereits vorhanden sind– Lücken ausmachen und ggf. füllen– Prüfen anhand von eigenen Anwendungsprofilen
Database of Requirements on RDF Constraint Formulation and Validation
• lelystad.informatik.uni-mannheim.de/rdf-validation/
• Case Studies -> lelystad.informatik.uni-mannheim.de/rdf-validation/?q=case-studies
– CS-1 DPLA RDF Application Profile– CS-3 Digitised Manuscripts To Europeana (DM2E)– CS-4 Europeana Data Model (EDM)– CS-5 DINI AG KIM RDF Representation of Bibliographic Data– CS-6 Use of EDM in the Deutsche Digitale Bibliothek (DDB)– CS-18 OER World Map
• DC use cases -> lelystad.informatik.uni-mannheim.de/rdf-validation/?q=use-cases/dc-use-cases
• DC requirements -> lelystad.informatik.uni-mannheim.de/rdf-validation/?q=requirements/dc-requirements
CS-6 Use of EDM in the Deutsche Digitale Bibliothek
Source: https://www.deutsche-digitale-bibliothek.de/item/MQEOWJ2P5HKJ5RRQ67JBEHDAAQKZLEIY
DDB-EDM vs. Europeana EDM
• Verwendung – Anwendung DDB– Anwendung Europeana
• DDB schränkt die Nutzung von Europeana properties ein– Z. B. in Europeana darf dcterms:provenance mit literal oder non-literal values
verwendet werden– In der DDB darf dcterms:provenance nur mit non-literal values verwendet
werden, die Instanzen der Klasse dcterms:ProvenanceStatement• Verwendet Dublin Core properties und classes, die in EDM nicht genutzt
werden– Z. B. in Europeana darf dc:subject mit literal or non-literal values verwendet
werden, dcterms:subject ist nicht erlaubt– In DDB darf dc:subject nur mit literal values verwendet werden und für non-literal
values muss dcterms:subject verwendet werden• Spezifische DDB properties und Werte für die Beschreibung der Hierarchien
Anwendung und Anwendungsprofil
• Funktionen, die meine Anforderung unterstützt– Finde alle Romane von Lew Tolstoi– Zeige mir alle Berichte über die letzte WM– …
• Funktionen, die mein Anwendungsprofil unterstützt– closed world
• Dokumenation für Design/Implementierung meiner Anwendung• Leitfaden für die Dateneingabe• Schema, um bei der Dateneingabe zu validieren
– open World• Dokumentation, die Aggregatoren informiert, was sie erwartet• Erleichtert Konversion/Mapping meiner Daten auf das „Aggregatorenformat“• Schema, um beim Datenimport zu validieren
• Application Profile -> Validation -> Application = Metadata Quality
Beispiel 1 – meine Anwendung
Use Case:Die Trefferliste zeigt die Titel meiner Ressourcen
Requirement:Ein edm:ProvidedCHO muss einen und nur einen dc:title haben
Beispiel 1 – mein Anwendungsprofil
• Requirement: Ein edm:ProvidedCHO muss ein dc:title haben
• AP Use Case UC-DDB-4: Domain Dependent Mandatory Properties– Abhängig von dem Subjekt eines Triple sind Properties verpflichtend. Z. B.
müssen Werke einen Titel haben oder Organisationen einen Namen.– http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/385
• AP Requirement R-68: Required Properties– Es muss möglich sein, zu prüfen, ob die Properties, die für eine bestimmte Art
von Subjekten verpflichtend sind, vorhanden sind. – http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/75
Beispiel 1 – mein Anwendungsprofil
• … one and only one …
• AP Use Case UC-DDB-5: Domain Dependent Non-repeatable Properties– Abhängig von dem Subjekt eines Triples sind properties nicht wiederholbar. Z. B.
dere Titel eines Werkes oder die Entstehungszeit– http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/388
• AP Requirement R-211: Cardinality constraints– Minimum, maximum. Es muss möglich sein, zu prüfen, ob Properties mehr als
einmal vorkommen.– http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/424
Beispiel 1 – mein Description Set Profile
Ein edm:ProvidedCHO braucht einen und nur einen Titel:
:pchoDescriptionTemplatea dsp:DescriptionTemplate ;dsp:minOccur "1" ;dsp:maxOccur "infinity" ;dsp:resourceClass edm:ProvidedCHO ;dsp:statementTemplate [
a dsp:LiteralStatementTemplate ;dsp:minOccur "1" ;dsp:maxOccur "1" ;dsp:property dc:title ] .
Beispiel 2 – meine Anwendung
Use Case:Wir verlinken Personen Entitäten mit Werken von diesen Personen
Requirements:•ein edm:Agent kann einen oder mehre edm:wasPresentAt haben•Das rdf:object von edm:wasPresentAt muss eine Instanz der Klasse edm:Event sein
Beispiel 2 – mein Anwendungsprofil
• Requirement: Ein edm:Agent kann ein oder mehr edm:wasPresentAt haben
• AP Use Case UC-Europeana-21: Recommended Properties– Abhängig vom Subjekt des Triple wird die Verwendung bestimmter Properties
empfohlen, um dadurch die Qualität der Daten zu verbessern. Z. B. sollte eine Buchbeschreibung auch Verlagsangaben enthalten
– http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/399
• AP Requirement R-72: Recommended Properties– Es muss möglich sein zu prüfen, ob empfohlene Properties vorhanden sind. – http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/79
Beispiel 2 – mein Anwendungsprofil
• … das Objekt des Triple muss eine Instanz der Klasse edm:Event sein.
• AP Use Case UC-12: Object Property Range– Abhängig von der Property muss das Objekt des Triples die Instanz einer
bestimmten Klasse sein, z. B, muss das Objekt der Property edm:wasPresentAt eine Instanz der Klasse edm:Event sein, das Objekt der Property dm2e:painter eine Instanz der Klasse foaf:Person.
– http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=UC-12-OBJECT-PROPERTY-RANGE
• AP Requirement R-28: Object Property Range– Es muss möglich sein zu prüfen, ob das Objekt einer Property eine Instanz einer
bestimmten Klasse ist.– http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=R-28-OBJECT-
PROPERTY-RANGE .
Beispiel 2: mein Description Set Profile
Ein edm:Agent sollte ein oder mehr edm:wasPresentAt und das Objekt des Triples muss eine Instanz der Klasse edm:Event sein.
:agentDescriptionTemplate a dsp:DescriptionTemplate ;dsp:minOccur 1 ;dsp:maxOccur "infinity" ;dsp:resourceClass edm:Agent ;dsp:statementTemplate [
a dsp:NonLiteralStatementTemplate ;dsp:maxOccur "infinity" ;dsp:property edm:wasPresentAt ;dsp:nonLiteralConstraint [
a dsp:NonLiteralConstraint ;dsp:valueClass edm:Event ] ].
Beispiel 3 – meine Anwendung
Use Case: Wir verlinken die verschiedenen hierarchischen Ebenen einer Ressource miteinander
Requirements:Wenn ein edm:ProvidedCHO die Property dc:type mit dem Wert illustration oder chapter oder volume hat•Muss mindestens ein dcterms:isPartOf vorhanden sein•Das Objekt dieses Triples muss eine Instanz der Klasse edm:ProvidedCHO sein.
Beispiel 3 – mein Anwendungsprofil
• Requirement: Wenn ein edm:ProvidedCHO die Property dc:type mit dem Wert illustration oder chapter oder volume hat, muss mindestens ein dcterms:isPartOf vorhanden sein.
• AP Use Case: – In Abhängigkeit von dem Objekt einer Property ist
eine andere Property verpflichtend
• AP Requirement:– Es muss möglich sein zu prüfen, ob abhängig von
dem Objekt eines Triples ein weiterer Triple mit einer bestimmten Property vorhanden ist.
Beispiel 3 – mein Anwendungsprofil
• das Objekt dieses Triples muss eine Instanz der Klasse edm:ProvidedCHO sein.
• AP Use Case UC-12: Object Property Range– Abhängig von der Property muss das Objekt des Triples
die Instanz einer bestimmten Klasse sein, z. B, muss das Objekt der Property dcterms:isPartOf eine Instanz der Klasse edm:ProvidedCHO sein.
– http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=UC-12-OBJECT-PROPERTY-RANGE
• AP Requirement R-28: Object Property Range– Es muss möglich sein zu prüfen, ob das Objekt einer
Property eine Instanz einer bestimmten Klasse ist.– http://lelystad.informatik.uni-mannheim.de/rdf-validation/?
q=R-28-OBJECT-PROPERTY-RANGE .
[Anlass der Präsentation]
Beispiel 3 – mein Description Set Profile
:pchoDescriptionTemplatea dsp:DescriptionTemplate ;dsp:minOccur 1;dsp:maxOccur "infinity" ;dsp:resourceClass edm:ProvidedCHOdsp:statementTemplate [
a dsp:NonLiteralStatementTemplate ;dsp:minOccur "1" ;dsp:maxOccur "1" ;dsp:property dc:type ;dsp:nonLiteralConstraint [
a dsp:NonLiteralConstraint ;dsp:valueClass skos:Concept ;dsp:vocabularyEncodingScheme :volume, :chapter, :illustration, :periodical, :multivolume_work ] ;
dsp:statementTemplate [a dsp:NonLiteralStatementTemplate ;dsp:maxOccur "infinity" ;dsp:property dcterms:isPartOf ;dsp:nonLiteralConstraint [a dsp:NonLiteralConstraint ;dsp:valueClass edm:ProvidedCHO ] ] ] .
Vielen DankStefanie Rühle sruehle(a)sub.uni-goettingen.de