Predicate Roles¶
Every relationship in the Relationships Browser is assigned a role — a short classification that describes what kind of information the relationship carries. Roles are used to group and order predicates so the most useful paths for navigation appear first.
What is a predicate role?¶
A predicate role summarises the purpose of a relationship in plain terms.
For example, a relationship called rdfs:label is clearly a labelling predicate
— it supplies a human-readable name. A relationship called affiliatedWith
links one entity to another and is navigable — it is relational. A
relationship like owl:sameAs is a schema-level link — it is structural and
is moved to a separate section where it stays out of the way.
Moire assigns roles automatically from a built-in vocabulary registry, from namespace and name heuristics, and from any metadata the graph itself publishes. Endpoint owners can override roles in an annotation overlay.
The nine roles¶
Relational¶
Navigable links to other entities. These are the relationships you follow when you want to move from one set of things to another.
Examples: affiliatedWith, locatedIn, hasMember, authorOf,
owl:sameAs (when used as a navigable identity link).
Relational predicates appear in the Explore section of the Relationships Browser and receive the highest usefulness scores.
Classifying¶
Type or category assignments. These predicates group entities into classes and are excellent candidates for facet filtering.
Examples: rdf:type, skos:broader, schema:genre, dcterms:type.
Classifying predicates appear in the Filter section and produce facet dimensions on the left side panel.
Labelling¶
Names, titles, and primary identifiers. These predicates supply the human- readable text that represents an entity in card views, headings, and search results.
Examples: rdfs:label, skos:prefLabel, foaf:name, schema:name,
dcterms:title.
Descriptive¶
Descriptions, definitions, and notes. These predicates expand on the meaning of an entity or predicate and appear in tooltips and entity detail.
Examples: rdfs:comment, skos:definition, skos:scopeNote,
dcterms:description, schema:description.
Temporal¶
Dates and times. These predicates record when something happened, was created, or expires.
Examples: dcterms:created, dcterms:modified, prov:generatedAtTime,
schema:datePublished, schema:validFrom.
Numeric¶
Numeric measures and counts. These predicates carry quantitative data such as scores, prices, or counts.
Examples: schema:numberOfPages, void:triples, schema:price.
Provenance¶
Source links and attribution. These predicates say where an entity or fact came from.
Examples: prov:wasDerivedFrom, prov:wasAttributedTo, dcterms:source,
prov:hadPrimarySource.
Media¶
Images, documents, and external web pages. These predicates link to files and online resources associated with an entity.
Examples: foaf:depiction, schema:image, foaf:page, schema:contentUrl.
Structural¶
Schema-level or ontology links not intended for data navigation. These predicates are informational rather than traversable and are moved to a separate section at the bottom of the Relationships Browser.
Examples: rdfs:subClassOf, rdfs:domain, rdfs:range, owl:sameAs (when
used as an identity link), owl:inverseOf.
How roles affect the interface¶
| Role | Relationships Browser section | Facet sidebar | Jump strip |
|---|---|---|---|
| Relational | Explore | Candidate (IRI-valued, medium cardinality) | Yes |
| Classifying | Filter | High priority | Yes |
| Labelling | Describe | No | No |
| Descriptive | Describe | No | No |
| Temporal | Describe | Date-range facet | Rarely |
| Numeric | Describe | Numeric-range facet | Rarely |
| Provenance | Source | Candidate | Rarely |
| Media | Describe | No | No |
| Structural | Technical (collapsed by default) | No | No |
Overriding a role¶
If a predicate is automatically assigned the wrong role, you can correct it in an annotation overlay. For example, to reclassify an internal system link as structural (and hide it by default):
{
"version": 1,
"predicates": {
"http://example.org/internal/legacyId": {
"role": "structural",
"hidden": true
}
}
}
See Overlay schema reference for a full list of overlay fields.