Open mccalluc opened 9 years ago
Comments:
General: I have done a mapping from PBCore to EBUCore and there aren’t so many attributes you can’t map. Actually and quantitatively, I believe there are more EBUCore attributes that can’t map into PBCore.
General:The intention of reusing EBUCore attributes when available and otherwise extend is in the spirit of the discussions we started in Boston. It goes far beyond using ebucore:EditorialObject and redefining a PBCore scheme behind it (which is what the snippet reflects). This is not right.
General: I have the feeling there is a misunderstanding around the model. Things like parameters related to a segment will apply to segment objects. It is more complex than just a translation from xml to rdf. This also leads to abusive use of blank nodes to mimic xml structures (complexTypes) into RDF. For instance:
a. What is a description type in xml should become another property or sub-property of description
b. All that is related to segment should be attached to segment objects
c. Etc.
If we really want to reuse EBUCore as we declared:
Create a pbcore ontology (with a better namespace than the one used in the snippet that is not rdf friendly)
Import ebucore RDF
Map pbcore properties and classes to ebucore when possible – see mappings started in Boston
Add pbcore properties and classes when missing.
To my opinion the following snippet is putting us on a wrong track. I am happy to discuss this in more details although not writing pages of email.
<> a ebucore:EditorialObject;
rdfs:label "";
pbcore:description "Did the attributes come through?";
pbcore:description [
pbcorerdf:annotation "@annotation";
ebucorerdf:descriptionType "@descriptionType";
pbcorerdf:descriptionTypeAnnotation "@descriptionTypeAnnotation";
pbcorerdf:descriptionTypeRef "@descriptionTypeRef";
pbcorerdf:descriptionTypeSource "@descriptionTypeSource";
pbcorerdf:descriptionTypeVersion "@descriptionTypeVersion";
pbcorerdf:endTime "@endTime";
pbcorerdf:segmentType "@segmentType";
pbcorerdf:segmentTypeAnnotation "@segmentTypeAnnotation";
pbcorerdf:segmentTypeRef "@segmentTypeRef";
pbcorerdf:segmentTypeSource "@segmentTypeSource";
pbcorerdf:segmentTypeVersion "@segmentTypeVersion";
pbcorerdf:startTime "@startTime";
pbcorerdf:timeAnnotation "@timeAnnotation";
pbcorerdf:value "Did the attributes come through?"
] .
From: mccalluc [mailto:notifications@github.com] Sent: mardi 12 mai 2015 01:31 To: WGBH/pbucore Subject: [pbucore] Proposal: Catch-all for attributes? (#72)
It looks like PBCore may have a lot of optional attributes which EBUCore doesn't worry about. Not sure what the best way of handling this is, but here's one idea. Taking pbcoreDescription as an example:
--- a/lib/pbcore-2-ebucore.xsl
+++ b/lib/pbcore-2-ebucore.xsl
@@ -16,6 +16,7 @@
--- a/lib/includes/pbcoreDescriptionDocument.xsl
+++ b/lib/includes/pbcoreDescriptionDocument.xsl
@@ -41,6 +41,14 @@
<pbcore:description>
<rdf:Description>
<xsl:apply-templates select="@*"/>
<pbcorerdf:value>
<xsl:value-of select="."/>
</pbcorerdf:value>
</rdf:Description>
</pbcore:description>
attributes.xsl:
It looks like PBCore may have a lot of optional attributes which EBUCore doesn't worry about. Not sure what the best way of handling this is, but here's one idea. Taking pbcoreDescription as an example:
attributes.xsl:
With that in place, given
at the other end we get
More generally: