Re: Documenting reused concepts in (this) vocabulary

Hi Gabriel. Thanks for the reference to VOAF. It seems relevant to what I'm looking to do. I shall try to better understand how to use it. Though the question of good practice still stands, so we may continue this discussion thread.

Regards,
Harsh 

On Fri, 12 Aug 2022, at 16:07, Gabriel Lopes wrote:
> Hello everyone!
> 
> Harsh, thank you for bringing such a topic into discussion. 
> It's always pertinent to discuss about the good practices, principally when building new ontologies and vocabularies. 
> 
> Well, if I got your point, you want to *use *a given *Concept, *in a *vocab A *by instance, which has been *defined *in a given *vocabulary B, *is that right?
> If yes, well, there is Voaf <https://lov.linkeddata.es/vocommons/voaf/v2.3/>, Vocabulary of a Friend, (found on LOV <https://lov.linkeddata.es/>), that exports terms such as *reliesOn*, *from where more restricted terms emerge, such as *specializes *and *extends*, used for both Classes and Properties.
> It will depend on the relationship of conceptualization among the involved vocabularies in order to agree on which term you could use. Feel free to take a look over VOAF to see if your requirements are fulfilled.
> 
> Also, as *voaf:reliesOn, voaf:specializes*, etc., are also defined as *rdfs:Class*, by inference of **rdf:Property* *being subject of such entity, you can add properties to your property.
> By instance, it is possible to specify exactly what *specialized/extended/relied* Concepts are imported/exported from one vocabulary to another, if it is needed.
> 
> As no one has cited Voaf yet, I admit it is beyond my knowledge to assure if it is part of an existing guideline of best practices or not.
> But in any case, I hope it can bring some light to your possibilities.
> Best wishes, 
> *** *relies on - Indicates that the subject vocabulary uses or extends some class or property of the object vocabulary*
> 
> Em sex., 12 de ago. de 2022 às 11:14, Ghislain ATEMEZING <ghislain.atemezing@gmail.com> escreveu:
>> Hi Harsh,
>> re "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."
>> 
>> Many you'll find in the following list of vocabularies:
>> - In DCAT vocab, https://www.w3.org/ns/dcat2.ttl, you'll find two copies/definitions of two external properties foaf:homepage and foaf:primaryTopic
>> - In ssn https://www.w3.org/ns/ssn/, you'll find some sosa concepts (https://www.w3.org/ns/sosa/) redefined.
>> - In PROV-O,https://www.w3.org/ns/prov.ttl, there are several definitions from other ontologies.
>> 
>> Hope that helps.
>> Best,
>> Ghislain
>> 
>> On Fri, Aug 12, 2022 at 2:51 PM Harshvardhan J. Pandit <me@harshp.com> wrote:
>>> 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/
>> 
>> 
>> -- 
>> 
>> "*Love all, trust a few, do wrong to none*" (W. Shakespeare)
>> Web: http://atemezing.org 
>> 
>> 
> 
> 
> -- 
> Gabriel Lopes
> **Interoperability as Jam's sessions!**
> *Each system emanating the music that crosses itself, instrumentalizing scores and ranges...*
> *... of Resonance, vibrations, information, data, symbols, ..., Notes.*
> **
> *How interoperable are we with the Music the World continuously offers to our senses?*
> *Maybe it depends on our foundations...?*

Received on Friday, 12 August 2022 16:07:47 UTC