Repository navigation
vocabulary: relations as verb phrases, attributes as nouns, check_names.py and property icons - #48
Closed
sebastian-siemoleit wants to merge 10 commits into
Closed
sebastian-siemoleit wants to merge 10 commits into
sebastian-siemoleit wants to merge 10 commits into
Conversation
…range A relation named like a class or role (productManager) reads as the class, hides its direction and turns the triple into no sentence on a form, in a query or in the BKE. Attribute names are still open (Q244). The branch is to carry the property icons (Q205) as well.
…sing left to the organisation Measured with ROBOT 1.10: rdf:type, the logical axioms in a fixed order per kind, then the annotations sorted by IRI; # comments are dropped. A vocabulary saved in Protege or ROBOT then shows no reordering in its diff. Labels stay words, not the IRI's spelling; their casing is eccenca's.
…uts foaf:depiction; the vocabulary skill sorts annotations by full IRI, not by prefix Found in the completeness test: every property's icon sat after rdfs:isDefinedBy, against the template's own predicate order.
… its block, so task icons repairs icons an older release placed after rdfs:isDefinedBy; the test plants one
Contributor
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The
vocabularyskill's Naming section gets one rule:manages,appliesTo,standsInFor) orhas/is … ofwith the role the range plays (hasProductManager,isMemberOf), never a bare class or role name.It also orders a term's predicates as the OWL API writes them - annotations sorted by their full IRI (measured with ROBOT 1.10) - so a vocabulary saved in Protégé or ROBOT shows no reordering.
Left out on purpose (2026-10-29): the spelling of attributes (a noun without
has/is/was,Date/Time,is/has,Count), its checkbin/check_names.pyand the label casing are one organisation's convention; they left this PR for that organisation's own skills.Why: a form row, a query and a Business Knowledge Editor drawing show the label between two resources. "Product has product manager Employee" says what it states; "Product product manager Employee" reads like the class and hides the direction.
Property icons:
task icons(bin/property_icons.py) gives every attribute an icon for its meaning (mapped inicons/property-icons.json, else the kind of its value by its datatype alone: text, number, count, date, time, year, yes/no, link, location) and every mapped relation an icon for its kind with an arrow for its direction - or the range class's own icon behind the arrow - coloured after the domain or range class and embedded in the vocabulary as the last line of the term, where the OWL API putsfoaf:depiction; an icon an older release placed elsewhere moves there on the nexttask icons. The Business Knowledge Editor draws a property's depiction on its box, so a drawing of the model says what each relation and attribute is about. The shared glyphs ship inbin/glyphs/(13 relation, 17 attribute glyphs); a package draws its own intoicons/glyphs/. Every glyph is refused unless it is drawing only (no script, no event handler, no reference outside the SVG), a depiction drawn by hand stays, and only the package's own properties get icons.task check:offlinefails on a missing or stale icon once a package maps its properties; the template'scheck:icons:caseholds the behaviour ontests/fixtures/iconswith three planted faults. Thevocabularyskill's depictions reference describes it.task check:offline, the skill checks andcheck:icons:casepass for both test cases; the fulltask checkpasses on the tip.