https://github.com/incatools/sparql-matcher
https://github.com/incatools/sparql-matcher
Last synced: 17 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/incatools/sparql-matcher
- Owner: INCATools
- Created: 2020-06-01T02:36:30.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2020-06-01T02:42:07.000Z (about 6 years ago)
- Last Synced: 2025-03-01T06:39:17.640Z (over 1 year ago)
- Language: Ruby
- Size: 9.77 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# sparql-matcher
Performs entity matching / ontology alignment using SPARQL queries.
## Methods
We first pre-index the ontology by creating skos Concepts for
normalized lexical entities. Thus "foo-1", "foo 1" and "FOO 1" would
all be the same skos Concept.
We then query for all pairs of classes that share the same skos Concept
This can then be queried to generate a SSSOM file
## Updates and Queries
See the [sparql/](sparql/) directory
The queries/updates should be executed in the following order:
* [sparql/](sparql/)
* [insert-sources](sparql/insert-sources.ru) : adds dc:source to nodes
* [insert-lexical-nodes](sparql/insert-lexical-nodes.ru) : adds skos Concepts for literals
* [insert-matches](sparql/insert-matches.ru) : creates pairwise matches for classes with the same concept
* [select-matches](sparql/select-matches.rq) : selects matches in tabular/SSSOM form
TODO: rules for confidence weighting
## Execution
* [local-sparql-match.sh](scripts/local-sparql-match.sh)
* runs on local files
* uses chained ROBOT update queries
* [sparql-match.py](scripts/sparql-match.py)
* runs against a (writeable) SPARQL endpoint
* currently blazegraph assumed