Skip to content

gen-owl renders schema-level metadata as string literals #3543

Open

Description

@m00wgli

gen-owl renders schema-level metadata (authors, editors, contributors) as string literals

Schema-level metadata fields such as authors, editors, contributors and similar provenance/curatorial information — declared at the top of a LinkML schema, alongside id, name, imports, prefixes, etc. — cannot currently be expressed in the OWL output in a structured way. These elements are automatically converted to and represented as plain string literals.

Context

SEMIC and DCAT-AP outputs typically render schema/ontology contributors as foaf:Person / foaf:Organization nodes, or at minimum as URI references with typed roles (dcterms:creator, dcterms:contributor, dcterms:publisher) attached to the ontology header. LinkML does not currently provide first-class slots for this kind of header-level metadata, and any custom YAML keys placed at the schema level end up as opaque rdfs:Literal values on the ontology IRI.

Expected behaviour

Schema authors could declare structured metadata at the schema level, and the OWL generator could emit it on the ontology IRI as proper RDF — URI references.

Examples

id: https://example.org/my-ontology
name: my_ontology
imports:
  - linkml:types
prefixes:
  ex: https://example.org/
authors:
  - uri: https://example.org/people/alice
    name: Alice
    role: dcterms:creator
  - uri: https://example.org/orgs/acme
    name: ACME Ltd
    role: dcterms:publisher

Current output (string literals on the ontology):

<https://example.org/my-ontology> a owl:Ontology ;
    ex:authors "Alice" , "ACME Ltd" .

Desired output (structured RDF on the ontology):

<https://example.org/my-ontology> a owl:Ontology ;
    dcterms:creator <https://example.org/people/alice> ;
    dcterms:publisher <https://example.org/orgs/acme> .

<https://example.org/people/alice> a foaf:Person ;
    foaf:name "Alice" .

<https://example.org/orgs/acme> a foaf:Organization ;
    foaf:name "ACME Ltd" .

@EmidioStani

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions