- From: <anelia.kurteva@sti2.at>
- Date: Thu, 11 Aug 2022 19:49:13 +0200
- To: "Harshvardhan J. Pandit" <me@harshp.com>
- Cc: semantic-web@w3.org
Hello Harsh, Really good points here. When building the ontology for the smashHit project, we also came across many challenges when reusing various ontologies. In addition to following best practises for ontology engineering, we also set our own "guidelines" within the project when building the ontology. For example, follow "isA" relationship when defining subclasses, capitalise all labels for consistency and better readability, while preserving the original URIs when reusing. Best, Anelia Kurteva -- PhD Candidate at STI Innsbruck, University of Innsbruck, Austria On 2022-08-11 17:51, Harshvardhan J. Pandit 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) > 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,
Received on Friday, 12 August 2022 11:21:27 UTC