buda-base / owl-schema

BDRC Ontology Schema
11 stars 2 forks source link

annotations vs object/data properties #105

Open xristy opened 5 years ago

xristy commented 5 years ago

in OWL, annotation properties have no semantic consequence which seems a bit of a problem.

I learned that it is not possible to express, for example cardinality constraints, for adm:status, skos:prefLabel and such for which we want to say things like:

:Entity rdfs:subClassOf skos:preLabel min 1 rdf:PlainLiteral

to indicate that all :Entity must have at least one skos:prefLabel, and

:Entity rdfs:subClassOf adm:status some :StatusType

to indicate that there must be exactly one value of adm:status for each :Entity. So an editor will have sufficient information to display and elicit appropriate content in addition to other owl:Restriction and SHACL content indicating order and so on.

Much of this can be solved by moving various properties currently defined as Annotation properties to object/data properties as appropriate. This shouldn't mess with the existing migration.

I would also move skos:prefLabel (and the hidden and alt label varieties) since we're not using skos:prefLabel to annotate the ontology itself.

This leaves rdfs:label which is used in :PersonName and :WorkTitle.

One approach would be to define :label for use on resources in our dataset. This would involve some migration and query changes. We would then be able to:

:PersonName SubClassOf: :label some rdf:PlainLiteral

It's not really feasible to change rdf:label to a data property.

eroux commented 5 years ago

A few comments on the various topics:

skos:prefLabel

https://www.w3.org/TR/swbp-skos-core-spec/#prefLabel clearly indicates:

Super-properties:    rdfs:label

so I don't think it makes sense to move skos:prefLabel away from rdfs:label.

:label

I'm not really opposed to the :label data property, I suppose we'll define an :altLabel also for corporations, topics, etc.?

use of the word ontology

I think we need to contextualize our definition of the word ontology as it has several definitions (just like many words in the dictionary), depending on the context. My view on that (to be discussed) is that:

In that perspective, when the OWL specification uses the term ontology (as in to annotate the ontology), it refers to the whole dataset. So, in that perspective, we are indeed using skos:prefLabel to annotate the ontology.

adm:status

For status, I think if we move to the :Dataset pattern, we can say it's an object property:

moving all the annotation properties to data/object properties

I think it's a reasonable move for most of them except:

(also I'm a bit reluctant about bdo:note)

Also, some should be attached to datasets (such as log_entry) and before we move everything, I think it would be best to have a bdo-ext-bdrc.owl file with all the tbr: and *TLM* properties...

xristy commented 5 years ago

For now I will forgo any reorg and explore a SHACL based approach to schema needs, i.e., no owl:Restrictions.