NLightenGroup / nlighten-ontology

Ontology repository for the NLighten Project
1 stars 1 forks source link

A "Person" resource cannot be linked to another resource #11

Closed pitviper6 closed 6 years ago

pitviper6 commented 6 years ago

http://alaska.dev.eagle-i.net/i/00000160-37c3-d566-3e79-9e4880000000

Resource type is a person, but cannot be linked to an educational resource or organization - there isn't a metadata field for that.

skcheng commented 6 years ago

I think there may be annotations missing around creator. I think this may be an analogous entry in blink-app.owl:

 <!-- http://countway.harvard.edu/ont/blink/creator -->

    <rdf:Description rdf:about="http://countway.harvard.edu/ont/blink/creator">
        <rdfs:range>
            <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                    <rdf:Description rdf:about="http://xmlns.com/foaf/0.1/Group"/>
                    <rdf:Description rdf:about="http://xmlns.com/foaf/0.1/Organization"/>
                    <rdf:Description rdf:about="http://xmlns.com/foaf/0.1/Person"/>
                </owl:unionOf>
            </owl:Class>
        </rdfs:range>
        <rdfs:domain>
            <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                    <rdf:Description rdf:about="http://purl.org/ontology/bibo/Collection"/>
                    <rdf:Description rdf:about="http://purl.org/ontology/bibo/Document"/>
                </owl:unionOf>
            </owl:Class>
        </rdfs:domain>
    </rdf:Description>
marijane commented 6 years ago

Interesting that there's a union specified for the range there, the screenshots you shared yesterday only seemed to show one member of the unions I'd defined, so I removed them.

The creator relationship has CreativeWork for its domain and foaf:person as its range. It is annotated as both in the Resource Provider property group and the Secondary Property property group.

Do we need an inverse relationship here?

skcheng commented 6 years ago

I've been comparing what's in the ontology file vs what's in the ontology-app file, and honestly I can't tell why some properties are in one versus another. I'm not sure it's an inverse property we need. The two things I can think of as possibly being the problem:

I've extracted the rest of what I think are the analogous lines from the blink ontology below. That's the reference I'm using to come up with my suggestions.

blink.owl

    <!-- http://countway.harvard.edu/ont/blink/creator -->
    <owl:ObjectProperty rdf:about="http://countway.harvard.edu/ont/blink/creator">
        <rdfs:label>Creator</rdfs:label>
        <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/creator"/>
    </owl:ObjectProperty>

    <!-- http://purl.org/dc/elements/1.1/creator -->
    <owl:ObjectProperty rdf:about="http://purl.org/dc/elements/1.1/creator"/>

    <!-- http://purl.org/dc/terms/creator -->
    <owl:ObjectProperty rdf:about="http://purl.org/dc/terms/creator">
        <rdfs:label xml:lang="en">Creator</rdfs:label>
        <rdfs:comment xml:lang="en">An entity primarily responsible for making the resource.</rdfs:comment>
        <dcterms:description xml:lang="en">Examples of a Creator include a person, an organization, or a service.</dcterms:description>
        <app:inPropertyGroup rdf:resource="http://eagle-i.org/ont/app/1.0/PropertyGroup_DataModelExclude"/>
        <rdfs:subPropertyOf rdf:resource="http://purl.org/dc/terms/contributor"/>
        <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
    </owl:ObjectProperty>

blink-app.owl


    <!-- http://countway.harvard.edu/ont/blink/creator -->
    <rdf:Description rdf:about="http://countway.harvard.edu/ont/blink/creator">
        <rdfs:range>
            <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                    <rdf:Description rdf:about="http://xmlns.com/foaf/0.1/Group"/>
                    <rdf:Description rdf:about="http://xmlns.com/foaf/0.1/Organization"/>
                    <rdf:Description rdf:about="http://xmlns.com/foaf/0.1/Person"/>
                </owl:unionOf>
            </owl:Class>
        </rdfs:range>
        <rdfs:domain>
            <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                    <rdf:Description rdf:about="http://purl.org/ontology/bibo/Collection"/>
                    <rdf:Description rdf:about="http://purl.org/ontology/bibo/Document"/>
                </owl:unionOf>
            </owl:Class>
        </rdfs:domain>
    </rdf:Description>

    <!-- http://purl.org/dc/elements/1.1/creator -->
    <owl:ObjectProperty rdf:about="http://purl.org/dc/elements/1.1/creator">
        <app:inPropertyGroup rdf:resource="http://eagle-i.org/ont/app/1.0/PropertyGroup_DataModelExclude"/>
    </owl:ObjectProperty>
marijane commented 6 years ago

I looked at the ERO app layer and I don't see any references to dc:creator, so I tried moving the domain and range assertions into the app layer. Pushing a fix in a moment.