Greetings and Happy New Year all.
I'm writing some SHACL to validate Linked Art which is based on CiDOC-CRM.
When I consume the following JSON-LD file with Jena, the "Place" object becomes
polymorphic in the sense of Jena automatically assigning another class to it
due to a property definition in the ontology that sets the rdfs:domain to
crm:E33_Linguistic_Object due to the presence of the "language" property. I've
pasted the relevant ontology portion below the JSON-LD. Is there a way to
disable the auto-assignment of this additional class so that SHACL constraints
can be used to validate the object of "referred_to_by" instead of it becoming
automatically valid due to the polymorphic behavior? When I remove
<rdfs:domain rdf:resource="E33_Linguistic_Object"/> from the definition, the
additional class assignment on ingest is prevented.
Thanks,
Dave
{
"@context": https://linked.art/ns/v1/linked-art.json,
"id": https://linked.art/example/object/0,
"type": "HumanMadeObject",
"_label": "Mona Lisa",
"referred_to_by": [
{
"type": "Place",
"language": [
{
"id": http://vocab.getty.edu/aat/300388277,
"type": "Language",
"_label": "English"
}
],
"classified_as": [
{
"id": http://vocab.getty.edu/aat/300435416,
"type": "Type",
"_label": "Description",
"classified_as": [
{
"id": http://vocab.getty.edu/aat/300418049,
"type": "Type",
"_label": "Brief Text"
}
]
}
],
"content": "This portrait was doubtless started in Florence around 1503.
It is thought to be of Lisa Gherardini, wife of a Florentine cloth merchant ..."
}
]
}
<rdf:Property rdf:about="P72_has_language">
<rdfs:label xml:lang="fr">est en langue</rdfs:label>
<rdfs:label xml:lang="ru">имеет
язык</rdfs:label>
<rdfs:label xml:lang="en">has language</rdfs:label>
<rdfs:label xml:lang="de">hat Sprache</rdfs:label>
<rdfs:label xml:lang="el">έχει
γλώσσα</rdfs:label>
<rdfs:label xml:lang="pt">é da língua </rdfs:label>
<rdfs:label xml:lang="zh">使用语言</rdfs:label>
<rdfs:comment>This property describes the E56 Language of an E33 Linguistic
Object.
Linguistic Objects are composed in one or more human Languages. This property
allows these languages to be documented.
</rdfs:comment>
<rdfs:domain rdf:resource="E33_Linguistic_Object"/>
<rdfs:range rdf:resource="E56_Language"/>
<owl:inverseOf rdf:resource="P72i_is_language_of"/>
</rdf:Property>