Loading experience...
Loading experience...
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT DISTINCT ?item_uri ?item_label ?role_type ?item_type
WHERE {
BIND(<https://w3id.org/OntoExhibit#human_actant/58b7e0bfbeb3965a5fa2280d3ab209ab51523050cfe5ecfac9edf2fff2601897> AS ?actor)
# Link Actor to Role (check both directions)
{ ?actor <https://w3id.org/OntoExhibit#hasRole> ?role }
UNION
{ ?role <https://w3id.org/OntoExhibit#isRoleOf> ?actor }
# --- EXHIBITION ROLES ---
{
{
# Exhibitor
{ ?making <https://w3id.org/OntoExhibit#hasExhibitingActant> ?role }
UNION
{ ?role <https://w3id.org/OntoExhibit#isExhibitingActantIn> ?making }
BIND("Exhibitor" AS ?role_type)
}
UNION
{
# Curator
{ ?making <https://w3id.org/OntoExhibit#hasCurator> ?role }
UNION
{ ?role <https://w3id.org/OntoExhibit#isCuratorOf> ?making }
BIND("Curator" AS ?role_type)
}
UNION
{
# Organizer
{ ?making <https://w3id.org/OntoExhibit#hasOrganizer> ?role }
UNION
{ ?role <https://w3id.org/OntoExhibit#isOrganizerOf> ?making }
BIND("Organizer" AS ?role_type)
}
UNION
{
# Funder
{ ?making <https://w3id.org/OntoExhibit#hasFunder> ?role }
UNION
{ ?role <https://w3id.org/OntoExhibit#isFunderOf> ?making }
BIND("Funder" AS ?role_type)
}
UNION
{
# Lender
{ ?making <https://w3id.org/OntoExhibit#hasLender> ?role }
UNION
{ ?role <https://w3id.org/OntoExhibit#isLenderOf> ?making }
BIND("Lender" AS ?role_type)
}
# Get the exhibition from making
?making <https://w3id.org/OntoExhibit#isExhibitionMakingOf> ?item_uri .
BIND("exhibition" AS ?item_type)
}
# --- ARTWORK ROLES ---
UNION
{
# Author
{
{ ?prod <https://w3id.org/OntoExhibit#hasProductionAuthor> ?role }
UNION
{ ?role <https://w3id.org/OntoExhibit#isProductionAuthorOf> ?prod }
?item_uri <https://w3id.org/OntoExhibit#hasProduction> ?prod .
BIND("Author" AS ?role_type)
}
UNION
{
# Owner
{ ?item_uri <https://w3id.org/OntoExhibit#hasOwner> ?role }
UNION
{ ?role <https://w3id.org/OntoExhibit#isOwnerOf> ?item_uri }
BIND("Owner" AS ?role_type)
}
BIND("artwork" AS ?item_type)
}
?item_uri rdfs:label ?item_label .
}
ORDER BY ?item_label
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT DISTINCT ?collaborator_uri ?collaborator_label ?collaborator_type ?relationship_type
WHERE {
BIND(<https://w3id.org/OntoExhibit#human_actant/58b7e0bfbeb3965a5fa2280d3ab209ab51523050cfe5ecfac9edf2fff2601897> AS ?person)
# --- MEMBERSHIPS (Person <-> Group) ---
{
{
# Case 1: The 'person' IS A GROUP (querying a group's members)
# Pattern: Group (person_id) -> hasMember -> Membership -> isMembershipOf -> Person (collaborator)
?person <https://w3id.org/OntoExhibit#hasMember> ?membership .
?membership <https://w3id.org/OntoExhibit#isMembershipOf> ?collaborator_uri .
BIND("membership" AS ?relationship_type)
}
UNION
{
# Case 2: The 'person' IS A PERSON (querying a person's groups)
# Pattern: Person (person_id) -> hasMembership -> Membership -> isMemberOf -> Group (collaborator)
?person <https://w3id.org/OntoExhibit#hasMembership> ?membership .
?membership <https://w3id.org/OntoExhibit#isMemberOf> ?collaborator_uri .
BIND("membership" AS ?relationship_type)
}
}
UNION
# --- AFFILIATIONS (Person <-> Institution) ---
{
{
# Person has affiliation (Person is affiliated with an Institution)
?person <https://w3id.org/OntoExhibit#hasAffiliation> ?affiliation .
?affiliation <https://w3id.org/OntoExhibit#isAffiliatedWith> ?collaborator_uri .
BIND("affiliation" AS ?relationship_type)
}
UNION
{
# Institution has affiliated (Institution has this person affiliated) - though query starts with person
?collaborator_uri <https://w3id.org/OntoExhibit#hasAffiliated> ?affiliation .
?affiliation <https://w3id.org/OntoExhibit#isAffiliationOf> ?person .
BIND("affiliation" AS ?relationship_type)
}
}
?collaborator_uri rdfs:label ?collaborator_label .
# Determine collaborator type
OPTIONAL {
{ ?collaborator_uri rdf:type <https://w3id.org/OntoExhibit#Human_Actant> . BIND("person" AS ?type_person) }
UNION
{ ?collaborator_uri rdf:type <https://cidoc-crm.org/cidoc-crm/7.1.1/E21_Person> . BIND("person" AS ?type_person) }
UNION
{ ?collaborator_uri rdf:type <https://cidoc-crm.org/cidoc-crm/7.1.1/E74_Group> . BIND("group" AS ?type_group) }
UNION
{ ?collaborator_uri rdf:type <https://w3id.org/OntoExhibit#Institution> . BIND("institution" AS ?type_inst) }
UNION
{ ?collaborator_uri rdf:type <https://w3id.org/OntoExhibit#Museum> . BIND("institution" AS ?type_inst) }
UNION
{ ?collaborator_uri rdf:type <https://w3id.org/OntoExhibit#Cultural_Institution> . BIND("institution" AS ?type_inst) }
}
BIND(COALESCE(?type_inst, ?type_group, ?type_person, "unknown") AS ?collaborator_type)
}
ORDER BY ?collaborator_label
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT DISTINCT ?institution_uri ?institution_label
WHERE {
BIND(<https://w3id.org/OntoExhibit#human_actant/58b7e0bfbeb3965a5fa2280d3ab209ab51523050cfe5ecfac9edf2fff2601897> AS ?person)
# Executive position links person to institution
?exec_position rdf:type <https://w3id.org/OntoExhibit#Executive_Position> .
?exec_position <https://w3id.org/OntoExhibit#isExecutivePositionOf> ?person .
?exec_position <https://w3id.org/OntoExhibit#executivePositionHeldsIn> ?institution_uri .
?institution_uri rdfs:label ?institution_label .
}
ORDER BY ?institution_label
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT DISTINCT ?catalog_uri ?catalog_label ?exhibition_uri ?exhibition_label
WHERE {
# Find any entity (human_actant or institution) whose URI ends with the given ID
?actant_uri <https://w3id.org/OntoExhibit#hasRole> ?producer_role .
FILTER(STRENDS(STR(?actant_uri), "/58b7e0bfbeb3965a5fa2280d3ab209ab51523050cfe5ecfac9edf2fff2601897"))
# The producer role is linked to a production
?producer_role <https://w3id.org/OntoExhibit#isProducerOf> ?production .
# The production is for a catalog
?production <https://w3id.org/OntoExhibit#isProductionOf> ?catalog_uri .
?catalog_uri rdfs:label ?catalog_label .
# Optionally get the related exhibition
OPTIONAL {
?catalog_uri <https://w3id.org/OntoExhibit#servesAsDocumentationResourceOf> ?doc_dispositif .
?doc_dispositif <https://w3id.org/OntoExhibit#isDocumentationDispositifOf> ?exhibition_uri .
?exhibition_uri rdfs:label ?exhibition_label .
}
}