nora

Spark-based OWL reasoner

https://github.com/benhid/nora

Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.4%) to scientific vocabulary

Keywords

apache-spark nosql owl-reasoner owlapi
Last synced: 6 months ago · JSON representation ·

Repository

Spark-based OWL reasoner

Basic Info
  • Host: GitHub
  • Owner: benhid
  • License: mit
  • Language: Java
  • Default Branch: main
  • Homepage: http://benhid.com/nora/
  • Size: 291 KB
Statistics
  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • Open Issues: 1
  • Releases: 1
Topics
apache-spark nosql owl-reasoner owlapi
Created about 3 years ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation

README.md

NORA: Scalable OWL reasoner based on NoSQL databases and Apache Spark

License: MIT

Tested with OpenJDK 11 and Gradle 7.5.1.

Cite us:

Benítez-Hidalgo A, Navas-Delgado I, Roldán-García MM. NORA: Scalable OWL reasoner based on NoSQL databases and Apache Spark. Softw Pract Exper. 2023; 53(12): 2377–2392. doi: 10.1002/spe.3258

Building the project

Use gradle to build the project:

bash $ make build

Getting started

Before running the project, edit the config.properties and set your own values. Make sure to set the NORA_CONFIG environment variable to the path of the config.properties file:

bash $ export NORA_CONFIG=$(pwd)/config.properties

Load the ontology into the database:

bash $ java -cp nora.jar loader.Loader examples/ontology.owl examples/individuals/ http://w3id.org/examples/ontology.owl

Then, start the reasoning process by running the following command:

bash $ java -cp nora.jar reasoner.Reasoner

or by using spark-submit:

bash $ spark-submit \ --name nora \ --class reasoner.Reasoner \ --master spark://host:port \ --driver-memory 6G \ --executor-memory 120G \ file:///home/user/nora.jar 10

A step-by-step guide is available here.

Troubleshooting

Exception java.lang.OutOfMemoryError: Java heap space when running Apache Spark in client mode

The flag -Xmx specifies the maximum memory allocation pool for a Java Virtual Machine (JVM), while -Xms specifies the initial memory allocation pool. These flags can be set to modify the Java memory settings:

  • IntelliJ IDEA: Run/Debug configuration > Set VM options to -Xms10g -Xmx80g
  • Terminal: Run Java with -Xms10g -Xmx80g

Tests

Run the following command to run the tests:

console $ make test

Embedded Cassandra requires JDK 11 or lower. If using a higher version, downgrade it to JDK 11.

License

This project is licensed under the MIT license - see the LICENSE file for details.

Owner

  • Name: Antonio
  • Login: benhid
  • Kind: user
  • Location: Málaga, Spain
  • Company: University of Málaga

Software / DevOps Engineer and Researcher @KhaosResearch

Citation (CITATION.cff)

cff-version: 1.2.0
message: If you use this software, please cite it as below.
title: NORA
version: 1.0.0
date-released: '2023-06-16'
url: https://github.com/benhid/nora/
preferred-citation:
  type: article
  title: >-
    NORA: Scalable OWL reasoner based on NoSQL databases and
    Apache Spark
  journal: >-
    Software: Practice and Experience
  issue: 12
  volume: 53
  year: 2023
  authors:
    - family-names: Antonio
      given-names: Benítez-Hidalgo
    - family-names: Ismael
      given-names: Navas-Delgado
    - family-names: María del Mar
      given-names: Roldán-García
  keywords:
    - Apache Spark
    - Knowledge base
    - NoSQL
    - OWL
    - Reasoner

GitHub Events

Total
  • Fork event: 1
Last Year
  • Fork event: 1

Committers

Last synced: 11 months ago

All Time
  • Total Commits: 8
  • Total Committers: 1
  • Avg Commits per committer: 8.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 3
  • Committers: 1
  • Avg Commits per committer: 3.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Antonio a****d@g****m 8

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 1
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 1
  • Total pull request authors: 0
  • Average comments per issue: 2.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • k00ni (1)
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Dependencies

build.gradle maven
  • com.datastax.oss:java-driver-core 4.14.0 implementation
  • com.datastax.oss:java-driver-query-builder 4.14.1 implementation
  • com.datastax.spark:spark-cassandra-connector_2.12 3.1.0 implementation
  • com.github.galigator.openllet:openllet-owlapi 2.6.5 implementation
  • net.sourceforge.owlapi:owlapi-distribution 5.1.20 implementation
  • org.apache.logging.log4j:log4j-core 2.17.2 implementation
  • org.apache.spark:spark-core_2.12 3.2.1 implementation
  • org.apache.spark:spark-sql_2.12 3.2.1 implementation
  • redis.clients:jedis 4.2.2 implementation
  • com.github.nosan:embedded-cassandra 4.0.7 testImplementation
  • org.junit.jupiter:junit-jupiter-api 5.8.2 testImplementation
  • org.mockito:mockito-core 4.5.1 testImplementation
  • org.mockito:mockito-junit-jupiter 4.5.1 testImplementation
  • org.junit.jupiter:junit-jupiter-engine 5.8.2 testRuntimeOnly