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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions