Skip to content

don't use subPropertyOf "for organizational purposes" #2

@VladimirAlexiev

Description

@VladimirAlexiev

Eg Person.owl has this:

    <owl:ObjectProperty rdf:about="http://ontology.eil.utoronto.ca/icity/Person/SchemaOrgProperty">
        <dc:description>Added for organizational purposes, to capture the properties reused from Schema.org. Notice that since we cannot import schema.org we must manually reference the individual IRIs.</dc:description>
    </owl:ObjectProperty>
    <owl:ObjectProperty rdf:about="http://schema.org/address">
        <rdfs:subPropertyOf rdf:resource="http://ontology.eil.utoronto.ca/icity/Person/SchemaOrgProperty"/>
        <dc:description>Physical address of the item.</dc:description>
    </owl:ObjectProperty>
    <owl:ObjectProperty rdf:about="http://ontology.eil.utoronto.ca/icity/Person/hasIncome">
        <rdfs:subPropertyOf rdf:resource="http://ontology.eil.utoronto.ca/icity/Person/PersonOntologyProperty"/>
    </owl:ObjectProperty>

If you use RDFS, a repository would have to infer from every instance of the specific props hasIncome and address,
an instance of the "organizational" props PersonOntologyProperty and SchemaOrgProperty.
A forward-chaining repo like GraphDB will have to infer actual new triples.

But one would never use the "organizational" props for querying, so this is wasteful.

  • Use rdfs:isDefinedBy to find all props defined by an ontology
  • Use rdfs:domain :Person (which is monomorphic) or schema:domainIncludes :Person (which is polymorphic) to find all props that apply to :Person

Using "organizational props" may make a nice hierarchy in Protege, but is not a good thing to use on real data.

Note: I'm not against super-properties in general. Eg schema:identifier has sub-props, which has a useful competency question: "find by any identifier".

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions