@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix edu: <https://knobit.org/def/> .
@prefix knobit: <https://knobit.org/id/knobit/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix register: <https://knobit.org/id/register/> .
@prefix schema: <https://schema.org/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .

knobit:K-522 a edu:Knobit ;
    rdfs:label "Recognises a polymorphic association"@en ;
    dcterms:identifier "K-522" ;
    dcterms:license <https://creativecommons.org/licenses/by/4.0/> ;
    dcterms:source "Review checklist 03-logical, row 22; Karwin, Polymorphic Associations; E&N ch. 4 (union types)"@en ;
    owl:sameAs <https://bitbucket.org/reffa/ontology/id/knobit/data-modelling/05-logical/22> ;
    skos:altLabel "Polymorphic association (logical model)"@en ;
    skos:definition "One reference attribute pointing to different entities depending on the value of a type attribute. There is no single parent, so the relationship has no cardinality, no optionality and no rule, and the physical model cannot declare a foreign key. A specific form of row 6."@en ;
    skos:prefLabel "Recognises a polymorphic association"@en ;
    edu:actionVerb "Recognises"@en ;
    edu:appliesKnowledge knobit:K-562,
        knobit:K-567 ;
    edu:assessmentCriterion "Flags the deficient case and passes the acceptable one. Deficient: Case Note with Owner Id and Owner Type (`ACCOUNT`, `PAYMENT`, `PARTY`) Acceptable: One relationship per parent (Case Note → Account, Case Note → Payment), each with its rule, plus a rule that exactly one is set; or a supertype the parents share, only if they pass row 27's test (`LOG-012` when Owner Id has the `foreign-key` role; review only otherwise)"@en ;
    edu:assessmentMethod "skill-tests task: Loan application logical model (normalisation anomaly skills)"@en ;
    edu:conformsToProfile <https://oppekava.edu.ee/a/Knobitite_kirjeldamise_ja_seostamise_reeglid#LCG-KNOBIT-0.1> ;
    edu:contextFunction <https://knobit.org/def/contextFunction/resultEvaluation> ;
    edu:creationMethod <https://knobit.org/def/creationMethod/aiGeneratedHumanEdited> ;
    edu:expectedResult "The reference attribute, its type attribute and the entities it points to"@en ;
    edu:graphRelevance <https://knobit.org/def/graphRelevance/learnerState>,
        <https://knobit.org/def/graphRelevance/taskSelection> ;
    edu:knobitType <https://knobit.org/def/knobitType/skill> ;
    edu:targetObject "polymorphic association"@en ;
    schema:creativeWorkStatus "accepted" ;
    schema:isPartOf register:data-modelling .

edu:Knobit rdfs:label "Knobit"@en,
        "Knobit"@et .

knobit:K-562 rdfs:label "Explains attribute domains"@en .

knobit:K-567 rdfs:label "Explains relationship cardinality and optionality"@en .

