Organize / Classify content by SKOS (Simple Knowledge Information System)

We plan to manage content for the “Community Supported construction economy”. We don’t have any idea yet what this content will be. But for the beginning we could say content <-> wiki page.
There will be different views (classifications) on the content. E.G.

  • Construction phases (planning, shell, roof,…),
  • Trades (foundation, walls, roof, …),
  • Roles (carpenter, architect, structural engineer, electrician, …)

From my point of view, SKOS is a good choice for classification.
Then, for example, “planning” would be a skosd:concept just like “roof”.
Planning” and “roof” would have “construction phases” as skos:broader.
But “roof” would also have “trade” as a skos:broader.

So you would have to be able to assign zero to many skos:concepts to a wiki page, similar to tags.
And there would have to be a menu with a tree structure that changes its appearance depending on which skos:ConceptScheme is selected.

So much for my first initial thoughts. I am curious about the discussion.

See:
https://www.w3.org/2004/02/skos/
German: Einführung in SKOS

@naturzukunft

It seems like SKOS allows defining RDF relations. I’m probably a bit rusty in RDF but let’s try. We could represent elements of such relations (subject, predicate, object). IIUC, predicates are defined in SKOS concepts. So you’d have concept1:pred1, concept1:pred2, concept2:predA, concept2:predB, and so on.

Naively, I would think that you could define XWiki classes for each concept with a class field for each predicate of the concept. Then, you attach as many objects (that are instance of classes representing SKOS concepts) as you want to any XWiki page representing each piece of content (which would be subjects).

The relation would be implemented with elements looking like (XWiki page, XWiki SKOS Class field, value).

Possible values could themselves be XWiki pages with a given class and the predicates are implemented with database list fields.

Then you could have a script that would query all the pages having SKOS objects and produce an RDF output for export, if needed. Conversely, you could have a script that automatically imports SKOS concepts as well as the subjects and their values for each predicate. This could be build as an XWiki extension. This extension might not even be specific to SKOS and could work with anything in the same vein. For instance, stuff using the Lemon lexicon model, so you could actually store a dictionary in XWiki with detailed grammatical features and be compatible with the rest of the lemon-based word, with possible round-trips.

So you could have a non-SKOS specific XWiki extension which implements the logic needed to work with RDF-based models + a SKOS extension importing the common SKOS concepts into XWiki.

Be sure to check whether something like this already exists though.

Note: I don’t know SKOS, I’m quite new to XWiki, a bit rusty on RDF which I haven’t manipulated very much. So this might be incredibly naive.

Yes, SKOS is RDF and a skos:concepts is a collection of tripples (subject, predicate, object)!

There is a sample from a fediverse guy: https://github.com/redaktor/vocab/blob/main/Vocab.ttl for illustrative purposes only, no guarantee of accuracy or completeness. I have not looked at it closely yet

I still have to work through the rest, I don’t have much time at the moment. maybe tomorrow.

Here’s a high-level overview of how SKOS could be implemented in your scenario:

Define SKOS Concepts: Each element, such as “planning,” “roof,” or “carpenter,” would be defined as a skos:Concept.
Establish Hierarchies: Use skos:broader to create a hierarchy. For instance, “planning” and “roof” would have “construction phases” as their broader concept.
Multiple Classifications: A concept like “roof” could belong to multiple schemes, such as both “construction phases” and “trades.”
Tagging Wiki Pages: Assign multiple skos:Concepts to wiki pages, functioning like tags, to represent the content’s various aspects. Explore Autodesk AutoCAD 2017 premium features by visiting ProCADIS.com.
Dynamic Navigation Menu: Develop a menu with a tree structure that adapts based on the selected skos:ConceptScheme, allowing users to navigate through different classifications.
Search and Filtering: Implement search functionality that leverages the SKOS structure to filter and retrieve content based on selected concepts or phases.