Documenting reused concepts in (this) vocabulary

Hi.
tldr; How to document external concepts (e.g. external:Concept) being 
reused in a separate vocabulary (e.g. vocab A) ? Is there any existing 
"good practices" that have been around for this use-case?

The semantic web good practices suggest we utilise existing vocabularies 
where viable and available, and to avoid "redefining" them within the 
new vocabulary. However, I'm not aware of any guidance on how such 
reuses are to be documented within (newer) vocabularies and ontologies.

---

# First Approach - using rdfs:isDefinedBy

I've noticed Protege's outputs contain (externally) defined classes and 
annotations within an ontology - and I haven't come across any 
annotations over external concepts. There is nothing in the output that 
indicates the terms are "external", other than manually comparing 
ontology IRI with term IRI.

WIDOCO's best practices (https://w3id.org/widoco/bestPractices) suggests 
using rdfs:isDefinedBy to indicate the origin of the term, so this can 
be utilised to document the original vocabulary the term came from. 
Using this, perhaps it is possible to provide labels, definitions, etc. 
as needed - with rdfs:isDefinedBy indicating the terms is being reused 
from an external source.

<original ontology ex:A>
:Concept a rdfs:Class ; rdfs:label "Concept" .

<new ontology ex:B>
:Concept a rdfs:Class ;
   rdfs:label "New Concept" ;
   rdfs:isDefinedBy ex:A ;
   rdfs:comment "We use Concept to do ..." .

---

# Second Approach: simple comment using skos:scopeNote

So my attempt at a simple solution is to just use skos:scopeNote over 
the concept explaining how that concept is expected to be used.

<new ontology A>
external:Concept skos:scopeNote "We use this Concept as ..." .

---

Problems: what happens the original and new ontologies are combined in 
one graph - there will be duplicate labels, comments, etc. Would this be 
a problem? I don't think so, since they both are documentations from 
respective ontologies, but I'm not sure if this may cause a problem in 
some other use-case.

Since I'm not aware of any examples of tooling supporting the use of 
either skos:scopeNote or rdfs:isDefinedBy to distinguish between 
external and current concepts, I'm unsure which option is better. I 
prefer the first one since it explicitly indicates the external source 
of a concept, but thought I'd ask the community before rushing ahead and 
using it in code.

Regards,
-- 
---
Harshvardhan J. Pandit, Ph.D
Research Fellow
ADAPT Centre, Trinity College Dublin
https://harshp.com/

Received on Thursday, 11 August 2022 15:50:46 UTC