v3u / FCA-Map

:diamond_shape_with_a_dot_inside: Ontology matching system based on formal concept analysis

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

FCA-Map: Identifying Mappings by Formal Concept Analysis

Workflow Status GitHub last commit (branch) Maven Central with version prefix filter license

Ontology matching system based on formal concept analysis.

Formal Concept Analysis (FCA) is a well developed mathematical model for clustering individuals and structuring concepts.

Table of Contents

Background

Formal concept analysis is based on mathematical order theory. (See the book for more details)

The following is an example of a formal context (about the characters of Marvel Cinematic Universe) and its derived concept lattice.

Formal Context

Asgardian
Asgardian
Avenger
Avenger
Female
Female
Human
Human
Infinity Stones User
Infinity Stones User
Male
Male
Scientist
Scientist
Villain
Villain
Black Widow
Black Widow
Captain America
Captain America
Hela
Hela
Hulk
Hulk
Iron Man
Iron Man
Thanos
Thanos
Thor
Thor

Concept Lattice

This concept lattice is derived from the above context, only reserved simplified extent and intent as follows.

complete-lattice

Install

This project depends upon:

  • Maven 3.6.1
  • Jena 3.12.0
  • Java 1.8.0_161

I recommend IntelliJ IDEA! :)

Usage

// Demo.java

import cn.amss.semanticweb.alignment.Mapping;
import cn.amss.semanticweb.model.OntModelWrapper;
import cn.amss.semanticweb.matching.LexicalMatcher;
import cn.amss.semanticweb.matching.MatcherFactory;

public class Demo {
  public static void main(String[] args) {
    String srcURL = "https://raw.githubusercontent.com/icgw/FCA-Map/master/src/test/resources/oaei/conference/Conference.owl";
    String tgtURL = "https://raw.githubusercontent.com/icgw/FCA-Map/master/src/test/resources/oaei/conference/ekaw.owl";

    OntModelWrapper source = new OntModelWrapper(srcURL);
    OntModelWrapper target = new OntModelWrapper(tgtURL);

    LexicalMatcher lm = MatcherFactory.createLexicalMatcher();

    lm.setSourceTargetOntModelWrapper(source, target);
    lm.setExtractType(true, true);

    Mapping mappings = new Mapping();
    lm.mapOntClasses(mappings);
    lm.mapDatatypeProperties(mappings);
    lm.mapObjectProperties(mappings);

    System.out.println(mappings);

    lm.close();
  }
}

Contributing

See the contributing file.

PRs accepted.

FCA-Map for matching biomedical ontologies

See FCA-Map@liweizhuo001 (no longer maintained), which system is primarily developed by Mengyi Zhao.

Acknowledgements

This work has been supported by the National Key Research and Development Program of China under grant 2016YFB1000902, and the Natural Science Foundation of China grant 61621003.

References

  1. Identifying mappings among knowledge graphs by formal concept analysis. Guowei Chen, Songmao Zhang. OM@ISWC 2019: . [technical paper] [slides]

  2. FCAMap-KG results for OAEI 2019. Fei Chang, Guowei Chen, Songmao Zhang. OM@ISWC 2019: . [OAEI paper]

  3. FCAMapX results for OAEI 2018. Guowei Chen, Songmao Zhang. OM@ISWC 2018: 160-166. [OAEI paper]

  4. Matching biomedical ontologies based on formal concept analysis. Mengyi Zhao, Songmao Zhang, Weizhuo Li, Guowei Chen. J. Biomedical Semantics 9(1): 11:1-11:27 (2018). [publisher page]

  5. Identifying and validating ontology mappings by formal concept analysis. Mengyi Zhao, Songmao Zhang. OM@ISWC 2016: 61-72. [technical paper]

  6. FCA-Map results for OAEI 2016. Mengyi Zhao, Songmao Zhang. OM@ISWC 2016: 172-177. [OAEI paper]

Maintainer

@icgw

License

GPLv3 © Guowei Chen

About

:diamond_shape_with_a_dot_inside: Ontology matching system based on formal concept analysis

License:GNU General Public License v3.0


Languages

Language:Java 100.0%