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>