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">&#1080;&#1084;&#1077;&#1077;&#1090; 
&#1103;&#1079;&#1099;&#1082;</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">&#941;&#967;&#949;&#953; 
&#947;&#955;&#974;&#963;&#963;&#945;</rdfs:label>
    <rdfs:label xml:lang="pt">&#233; da l&#237;ngua </rdfs:label>
    <rdfs:label xml:lang="zh">&#20351;&#29992;&#35821;&#35328;</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>

Reply via email to