Re: Documenting reused concepts in (this) vocabulary

Hi. Thanks both (Ghislain and Anelia) for sharing your thoughts.

@Ghislaine I think your approach would require duplicating / redefining 
the concept within the new vocabulary, whereas my thoughts are about 
using the original IRI for the concept, and just adding annotations in 
the new vocabulary. Like this:

graph <http://example.com/A> {
   <http://example.com/A/Concept> a rdfs:Class .
}

graph <http://example.com/B> {
   <http://example.com/A/Concept> a rdfs:Class .
   <http://example.com/A/Concept> rdfs:isDefinedBy 
<http://example.com/A> .
   <http://example.com/vocab/A/Concept> rdfs:comment "Use this for..." .
}

Also, dct:source may be used to indicate the origin of the concept e.g. 
in some document, so it wouldn't be consistent to use to indicate a 
concept comes from another vocabulary.

I tried looking at some well-known vocabularies that reuse concepts, but 
couldn't see any such documentation of reused terms within the RDF 
itself, just in the HTML.

Regards,
Harsh

On 12/08/2022 11:34, Ghislain ATEMEZING wrote:
> Hi,
> I don't know if there is a clear recommendation regarding the approaches 
> for documenting reuse concepts.
> One could harvest vocabulary catalogs (e.g., Linked Open Vocabularies) 
> to check what emerges from ontology creators' practices.
> 
> There could be yet another different approach.
> Here all the concepts of the ontology use rdfs:isDefinedBy to point to 
> the ontology's URI and dcterms:source is used for the provenance of the 
> original concept in the new ontology.
> 
> <original ontology ex:A>
> exo:Concept a rdfs:Class ;
>        rdfs:label "Concept in original ontology" ;
> *rdfs:isDefinedBy exo: ;*
> *.
> *
> <new ontology ex:B>
> ex:Concept a rdfs:Class ;
>     rdfs:label "New Concept " ;
> *dcterms:source exo:Concept* ;
> *rdfs:isDefinedBy ex: ;*
>     rdfs:comment "We use Concept to do ..." ;
>     .
> 
> Does that also make sense?
> 
> Best,
> Ghislain
> 
> On Thu, Aug 11, 2022 at 5:57 PM Harshvardhan J. Pandit <me@harshp.com 
> <mailto:me@harshp.com>> wrote:
> 
>     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
>     <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/ <https://harshp.com/>
> 
> 
> 
> ---
> Ghislain Atemezing, Ph.D
> R&D Director, MONDECA
> Paris, France www.mondeca.com <http://www.mondeca.com/>
> 
> 

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

Received on Friday, 12 August 2022 12:51:23 UTC