linked-art / linked.art

Development of a specification for linked data in museums, using existing ontologies and frameworks to build usable, understandable APIs
https://linked.art/
Other
90 stars 13 forks source link

Question: modeling relationships between actors? #495

Open sdevalk opened 2 years ago

sdevalk commented 2 years ago

Hi all,

I'm modeling a dataset with biographical information of artists and using the Actor patterns as foundation.

My dataset also contains relationships between actors. For example:

  1. Artist A 'was influenced by' Artist B
  2. Artist A 'was influencer of' Artist C
  3. Artist A 'was followed by' Artist D
  4. Artist A 'was follower of' Artist E
  5. Artist A 'was teacher of' Artist F
  6. Artist A 'was pupil of' Artist G

I realize Linked Art does not aim to capture all possible relationships, and that this topic has been discussed before. But I was wondering: do you have a recommendation for modeling this information (e.g. using Linked Art, 'pure' CIDOC-CRM, or perhaps another ontology)?

Thank you.

natuk commented 2 years ago

One would argue that 1. and 2. are the same relationship, just looking at it from a different direction. You would not want to search based on two properties, so better to stick to one property for both. The same applies to 3. and 4. And also to 5. and 6.

Having said that, the CRM allows modelling such relationships through events and activities. E.g. you need a record of an activity for the education of artist A and then link artist A and artist B to this activity as contributors in different roles.

Another example: the activity of painting of artist A was influenced by the activity of painting (or an artwork produced) by artist B.

Does this sound reasonable?

sdevalk commented 2 years ago

@natuk Thank you - much appreciated!

Yes, that sounds reasonable!

If I translate this to RDF/Turtle, it could look like:

<https://some-education-activity>
  a crm:E7_Activity ;
  crm:P2_has_type <http://vocab.getty.edu/aat/300191862> ; # "Educating"
  rdfs:label "Artist A educated Artist B" ;
  crm:P9_consists_of [
    a crm:E7_Activity ;
    crm:P2_has_type <http://vocab.getty.edu/aat/300069743> ; # "Teaching"
    crm:P14_carried_out_by <https://artist-a> ;
  ] ;
  crm:P9_consists_of [
    a crm:E7_Activity ;
    crm:P2_has_type <http://vocab.getty.edu/aat/300449145> ; # "Learning"
    crm:P14_carried_out_by <https://artist-b> ;
  ] .

This is (my understanding of) the 'role pattern' (see e.g. https://github.com/linked-art/linked.art/issues/493).

(Alternatively, a construct with crm:PC14_carried_out_by and crm:P14.1_in_the_role_of could be used, but that's not used/recommended by Linked Art.)

An other approach, perhaps, would be to use an attribute assignment that I've found in this PR by @azaroth42. In RDF it could look like:

<https://artist-a>
  a crm:E21_Person ;
  rdfs:label "Artist A" ;
  crm:P140i_was_attributed_by [
    a crm:E13_Attribute_Assignment ;
    rdfs:label "Assign Artist B as Student of Artist A" ;
    crm:P141_assigned <https://artist-b> ;
    crm:P177_assigned_property_of_type <http://vocab.getty.edu/aat/300025909> ; # "Student"
  ] .
azaroth42 commented 11 months ago

--> vocabulary terms for the different relationships in common use

azaroth42 commented 10 months ago

I think this becomes part of #186 ?