RDFLib / pyLODE

An OWL ontology documentation tool using Python and templating, based on LODE
BSD 3-Clause "New" or "Revised" License
169 stars 70 forks source link

Refactoring Agent display #216

Open SirkoS opened 6 months ago

SirkoS commented 6 months ago

while using pyLODE, I had some issues with properly showing contributors names.

I investigated a little and found the following: names are normalized to use dcterms:title here (ontpub) and here (vocpub)

however, when serializing for html here and here only sdo:name is used.

in the pull request I changed that to use the canonical dcterms:title instead.

I also made minor changes to the formatting:

nicholascar commented 2 months ago

@SirkoS thanks for identifying the problem. It needs a solution but I would prefer to move to schema:name rather than towards dcterms:title. This is due to a growing use of schema.org and a diminishing use of DCTERMS.

So I think the PR is essentially correct - solving the issue - but that it should implement schema:name.

I'll leave this comment here for a bit so if you want to fix this, you can, or else I will.

pyLODE update sprint due in Ausgust '24.

hoijui commented 2 months ago

Could it not be all of them, with different priorities?

SirkoS commented 2 months ago

I'm a little hesitant to make schema:name the canonical property for fear of side-effects.

my change so far tried to make the least amount of changes to fix the issue which was changing the property used in the output. If I change the normalization process, this will not only affect agents but also any other entity using any of dcterms:title, rdfs:label, and skos:prefLabel. This includes, e.g., the ontology itself which is also described via dcterms:title and any class described via rdfs:label.

I agree that use of schema:name might be becoming more prominent with description of agents, I don't think the same is true for a generic use to give a label to some entity. So strictly speaking, I would exchange one inaccuracy (dcterms:title for agents) with multiple other ones (e.g., using schema:name to denote class labels).

On a different note, this is an entirely internal change to pyLODE - this would not be visible in both ontology and documentation. So I'd argue it does not matter which property is used internally and it's safer to change as few lines of code as possible.

Could it not be all of them, with different priorities?

Same argument as in the paragraph before. This is an entirely internal thing, so technically you can use whatever property of the 4 (rdfs:label, dcterms:title, schema:name, and skos:prefLabel) in most places anyways.


I have not entirely understood the codebase, so I might be missing something here.