tibonto / DFG-Fachsystematik-Ontology

DFG Fachsystematik Ontology - DFG Classification of Scientific Disciplines, Research Areas, Review Boards and Subject Areas
3 stars 1 forks source link

17 align with gbv dfg2024 #33

Closed andrecastro0o closed 1 month ago

andrecastro0o commented 1 month ago

closes #17

andrecastro0o commented 1 month ago

OK so the owl:sameAs statements mapping each term to GBV dfg2024 are on script and TTL.

@nichtich & @SArndt-TIB do you want to have a look at the dfgo.ttl diff and see if you agree with the mapping.

I used the full URI as I was not sure what prefix to use. If you have any suggestions let me know. Otherwise let's go with the URI.

Anything else we should mention about this mapping?

SArndt-TIB commented 1 month ago

@andrecastro0o Looks good to me. We have to be aware, that owl:sameAs is used to express a relation between individuals - that will cause a punning of our classes. Protege, for instance, will list all the classes as individuls, too. The same would happen with something like skos:exactMatch. We could prevent this by using a less strict property like rdfs:seeAlso.

I am not sure, what else to say about the mapping, right now.

andrecastro0o commented 1 month ago

@andrecastro0o Looks good to me. We have to be aware, that owl:sameAs is used to express a relation between individuals - that will cause a punning of our classes. Protege, for instance, will list all the classes as individuls, too. The same would happen with something like skos:exactMatch. We could prevent this by using a less strict property like rdfs:seeAlso.

I am not sure, what else to say about the mapping, right now.

@SArndt-TIB thank you for the feedback. I see what you mean. And weirdly the owl:sameAs in Protege, points each term to

2024-08-21_10-04

I tried the same with skos:exactMatch and the individuals are gone and it points to GBV DFG2024. I'd prefer to go for skos:exactMatch or skos:closeMatch

Looking at their definitions in skos-reference/#mapping I would say that skos:closeMatch is the most suited relation. skos:exactMatch is not exactly true, as DFGO terms are classes and GBV DFG2024 are skos concepts, right?

The property skos:closeMatch is used to link two concepts that are sufficiently similar that they can be used interchangeably in some information retrieval applications. In order to avoid the possibility of "compound errors" when combining mappings across more than two concept schemes, skos:closeMatch is not declared to be a transitive property.

The property skos:exactMatch is used to link two concepts, indicating a high degree of confidence that the concepts can be used interchangeably across a wide range of information retrieval applications. skos:exactMatch is a transitive property, and is a sub-property of skos:closeMatch.

2024-08-21_10-13

I don't think rdfs:seeAlso expresses a relation of similarity between these 2 sets of terms. According to https://www.w3.org/TR/rdf-schema/#ch_seealso

rdfs:seeAlso is an instance of rdf:Property that is used to indicate a resource that might provide additional information about the subject resource.

andrecastro0o commented 1 month ago

Also I will add an editor note to the metadata:

DFGO is aligned with GBV DFG2024 via skos:closeMatch relations. The two semantic artifacts were developed separately, but both teams strive towards alignment. While DFGO defines terms as owl:Class instances, GBV defines them as skos:Concept. More details on GBV DFG2024 at http://uri.gbv.de/terminology/dfg/

Feel free to add any suggestions

SArndt-TIB commented 1 month ago

@andrecastro0o Thanks!

I tried the same with skos:exactMatch and the individuals are gone and it points to GBV DFG2024. I'd prefer to go for skos:exactMatch or skos:closeMatch

If you do not import skos, skos:exactMatch is likely interpreted as an annotation property (that's also causing the profile error). skos:exactMatch is an object property - when you import skos, the same as with owl:sameAs should happen.

I agree that rdfs:seeAlso is too weak for a mapping. Using skos:closeMatch makes sense due to the reasons you name.

andrecastro0o commented 1 month ago

If you do not import skos, skos:exactMatch is likely interpreted as an annotation property (that's also causing the profile error). skos:exactMatch is an object property - when you import skos, the same as with owl:sameAs should happen.

thanks @SArndt-TIB I wasn't aware of it. a bit rusty on this ontology design details. I did import skos owl:imports skos: . And no more Annotation errors from DFGO terms, but OWL 2 DL Profile Report is trowing errors related to dcterms, outside the scope of DFGO.

How to best deal with this :hankey: ? I am happy to ditch the DL-profile validation test. Or just use a seeAlso, but darn, this stuff is hard!

robot validate-profile --profile DL --input dfgfo.ttl

OWL 2 DL Profile Report: Ontology and imports closure NOT in profile. The following violations are present:
Use of undeclared annotation property: <http://purl.org/dc/terms/contributor> in annotation [Annotation(<http://purl.org/dc/terms/contributor> "Dave Beckett") in null]
Use of undeclared class: rdf:List [ObjectPropertyRange(<http://www.w3.org/2004/02/skos/core#memberList> rdf:List) in OntologyID(OntologyIRI(<http://www.w3.org/2004/02/skos/core>) VersionIRI(<null>))]
Use of undeclared annotation property: <http://purl.org/dc/terms/creator> in annotation [Annotation(<http://purl.org/dc/terms/creator> "Sean Bechhofer") in null]
Use of undeclared annotation property: <http://purl.org/dc/terms/contributor> in annotation [Annotation(<http://purl.org/dc/terms/contributor> "Participants in W3C's Semantic Web Deployment Working Group.") in null]
Use of undeclared annotation property: <http://purl.org/dc/terms/creator> in annotation [Annotation(<http://purl.org/dc/terms/creator> "Alistair Miles") in null]
Use of reserved vocabulary for class IRI: rdf:List [ObjectPropertyRange(<http://www.w3.org/2004/02/skos/core#memberList> rdf:List) in OntologyID(OntologyIRI(<http://www.w3.org/2004/02/skos/core>) VersionIRI(<null>))]
Use of undeclared annotation property: <http://purl.org/dc/terms/contributor> in annotation [Annotation(<http://purl.org/dc/terms/contributor> "Nikki Rogers") in null]
Use of undeclared annotation property: <http://purl.org/dc/terms/description> in annotation [Annotation(<http://purl.org/dc/terms/description> "An RDF vocabulary for describing the basic structure and content of concept schemes such as thesauri, classification schemes, subject heading lists, taxonomies, 'folksonomies', other types of controlled vocabulary, and also concept schemes embedded in glossaries and terminologies."@en) in null]
Use of undeclared annotation property: <http://purl.org/dc/terms/title> in annotation [Annotation(<http://purl.org/dc/terms/title> "SKOS Vocabulary"@en) in null]

PROFILE VIOLATION ERROR https://github.com/tibonto/dfgfo violates profile DL
For details see: http://robot.obolibrary.org/validate-profile#profile-violation-error
Use the -vvv option to show the stack trace.
Use the --help option to see usage information.
SArndt-TIB commented 1 month ago

@andrecastro0o Yeah, I see. Well, I added some quick fix, that avoids the "Rattenschwanz" of the import.

andrecastro0o commented 1 month ago

super @SArndt-TIB ! thank you. I will merge to main :)