- From: Harshvardhan J. Pandit <me@harshp.com>
- Date: Fri, 12 Aug 2022 13:51:06 +0100
- To: ghislain.atemezing@gmail.com
- Cc: semantic-web@w3.org
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