New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Don't use relators as property but indicate relator via "role" property #38
Comments
@jschnasse just pointed out that the approach we chose above is not correct as it associates the role with the person. As the role is a relation between the person and the resource this has to somehow be made clear. Taking a look at Bibframe 2.0, it seems to be a reasonable approach. An example from http://www.loc.gov/bibframe/docs/pdf/bf2-roles-apr2016.pdf:
For the example above, the result would look like this: {
"@context": {
"id": "@id",
"type": "@type",
"agent": "http://bibframe.org/vocab/agent",
"role": "http://bibframe.org/vocab/relator",
"conbtribution": "http://bibframe.org/vocab/contribution",
"Contribution": "http://bibframe.org/vocab/Contribution",
"label": "http://www.w3.org/2000/01/rdf-schema#label",
"altLabel": "http://www.w3.org/2004/02/skos/core#altLabel",
"subject": {
"@type": "@id",
"@id": "http://purl.org/dc/terms/subject",
"@container": "@list"
}
},
"id" : "http://lobid.org/resources/HT018843259#!",
"contribution": [ {
"type": "Contribution",
"role": {
"id": "http://id.loc.gov/vocabulary/relators/cre",
"label": "Autor/in"
},
"agent": {
"id": "http://d-nb.info/gnd/118548018",
"type": "DifferentiatedPerson",
"label": "Becker, Thomas Paul",
"altLabel": [ "Becker, Thomas P." ]
}
} ],
"subject": [ {
"id" : "http://d-nb.info/gnd/4031485-6",
"type": "PlaceOrGeographicName",
"label": "Erzstift Köln",
"altLabel": [ "Kölner Krieg", "Truchsessischer Krieg" ]
} ]
} |
Here is an example with multiple contributions: {
"@context":{
"id":"@id",
"type":"@type",
"agent":"http://bibframe.org/vocab/agent",
"role":"http://bibframe.org/vocab/relator",
"contribution":"http://bibframe.org/vocab/contribution",
"Contribution":"http://bibframe.org/vocab/Contribution",
"label":"http://www.w3.org/2000/01/rdf-schema#label",
"altLabel":"http://www.w3.org/2004/02/skos/core#altLabel",
"subject":{
"@type":"@id",
"@id":"http://purl.org/dc/terms/subject",
"@container":"@list"
}
},
"id":"http://lobid.org/resources/HT019093814#!",
"contribution":[
{
"type":"Contribution",
"role":{
"id":"http://id.loc.gov/vocabulary/relators/pht",
"label":"Fotografie"
},
"agent":{
"id":"http://d-nb.info/gnd/1067217789",
"label":"Ganslmeier, Jakob",
"type":[
"Person"
]
}
},
{
"type":"Contribution",
"role":{
"id":"http://id.loc.gov/vocabulary/relators/pht",
"label":"Fotografie"
},
"agent":{
"id":"http://d-nb.info/gnd/1108328849",
"label":"Boeszoermeny, Louisa",
"type":[
"Person"
]
}
},
{
"type":"Contribution",
"role":{
"id":"http://id.loc.gov/vocabulary/relators/ctb",
"label":"Mitwirkung"
},
"agent":{
"id":"http://d-nb.info/gnd/5555595-0",
"label":"Kultur Ruhr GmbH",
"type":[
"CorporateBody"
]
}
},
{
"type":"Contribution",
"role":{
"id":"http://id.loc.gov/vocabulary/relators/ctb",
"label":"Mitwirkung"
},
"agent":{
"id":"http://d-nb.info/gnd/7741856-6",
"label":"Kultur Ruhr GmbH",
"type":[
"CorporateBody"
]
}
}
]
} |
Instead of using flat properties, such as dct:creator or marcrel:sng, no every entity is a dct:contributor with roles (depicting that entity as creator, singer etc.). See #38.
Instead of using flat properties, such as dct:creator or marcrel:sng, no every entity is a dct:contributor with roles (depicting that entity as creator, singer etc.). See #38.
Instead of using flat properties, such as dct:creator or marcrel:sng, no every entity is a dct:contributor with roles (depicting that entity as creator, singer etc.). See #38.
Brauchst einen bnode fuer die agents wenn ohne ID: MapperParsingException[object mapping for [contribution.agent] tried to parse field [agent] as object, but found a concrete value] sihe TT050409948 See #38.
When we are finished with this we can clean up our JSON-LD context by removing all the MARC relator entries. We will need them in {
"cinematographer":{
"@type":"@id",
"@id":"http://id.loc.gov/vocabulary/relators/cng",
"@container":"@set"
},
"engraver":{
"@type":"@id",
"@id":"http://id.loc.gov/vocabulary/relators/egr",
"@container":"@set"
},
"collaborator":{
"@type":"@id",
"@id":"http://id.loc.gov/vocabulary/relators/clb",
"@container":"@set"
},
"bibliographicAntecedent":{
"@type":"@id",
"@id":"http://id.loc.gov/vocabulary/relators/ant",
"@container":"@set"
},
"introductionBy":{
"@type":"@id",
"@id":"http://id.loc.gov/vocabulary/relators/aui",
"@container":"@set"
},
"cartographer":{
"@type":"@id",
"@id":"http://id.loc.gov/vocabulary/relators/ctg",
"@container":"@set"
},
"director":{
"@type":"@id",
"@id":"http://id.loc.gov/vocabulary/relators/drt",
"@container":"@set"
},
"singer":{
"@type":"@id",
"@id":"http://id.loc.gov/vocabulary/relators/sng",
"@container":"@set"
},
"musician":{
"@type":"@id",
"@id":"http://id.loc.gov/vocabulary/relators/mus",
"@container":"@set"
},
"performer":{
"@type":"@id",
"@id":"http://id.loc.gov/vocabulary/relators/prf",
"@container":"@set"
},
"composer":{
"@type":"@id",
"@id":"http://id.loc.gov/vocabulary/relators/cmp",
"@container":"@set"
},
"conductor":{
"@type":"@id",
"@id":"http://id.loc.gov/vocabulary/relators/cnd",
"@container":"@set"
},
"actor":{
"@type":"@id",
"@id":"http://id.loc.gov/vocabulary/relators/act",
"@container":"@set"
},
"afterwordBy":{
"@type":"@id",
"@id":"http://id.loc.gov/vocabulary/relators/aft",
"@container":"@set"
},
"redaktor":{
"@type":"@id",
"@id":"http://id.loc.gov/vocabulary/relators/red",
"@container":"@set"
},
"producer":{
"@type":"@id",
"@id":"http://id.loc.gov/vocabulary/relators/pro",
"@container":"@set"
},
"dedicatee":{
"@type":"@id",
"@id":"http://id.loc.gov/vocabulary/relators/dte",
"@container":"@set"
},
"honoree":{
"@type":"@id",
"@id":"http://id.loc.gov/vocabulary/relators/hnr",
"@container":"@set"
},
"collector":{
"@type":"@id",
"@id":"http://id.loc.gov/vocabulary/relators/col",
"@container":"@set"
},
"photographer":{
"@type":"@id",
"@id":"http://id.loc.gov/vocabulary/relators/pht",
"@container":"@set"
},
"screenwriter":{
"@type":"@id",
"@id":"http://id.loc.gov/vocabulary/relators/aus",
"@container":"@set"
},
"interviewer":{
"@type":"@id",
"@id":"http://id.loc.gov/vocabulary/relators/ivr",
"@container":"@set"
},
"contributor_":{
"@type":"@id",
"@id":"http://id.loc.gov/vocabulary/relators/ctb",
"@container":"@set"
},
"interviewee":{
"@type":"@id",
"@id":"http://id.loc.gov/vocabulary/relators/ive",
"@container":"@set"
},
"illustrator":{
"@type":"@id",
"@id":"http://id.loc.gov/vocabulary/relators/ill",
"@container":"@set"
}
} |
fast geschafft - zwei labels für _:BIrlenbusch Brauchst einen bnode fuer die agents wenn ohne ID: MapperParsingException[object mapping for [contribution.agent] tried to parse field [agent] as object, but found a concrete value] sihe TT050409948 See #38.
Also, some properties have to be replaced by MARC relator codes:
|
- take just one preferred name into account, see TT001230001 See #38.
Deployed to staging and production, @acka47 please have a look. |
+1. Closing. |
As discussed in #10 , we will indicate the roles of a contributor in the contributor object with the "role" property and won't use relators as properties.
Example:
We won't be able to only use a string as value for "role" as proposed in #10 but will – as you can see in the example – also use the side car approach here – giving us presentation labels for the different roles in the data.
The text was updated successfully, but these errors were encountered: