Good framework to repesent ontology inside a neo4j database?
Asked Answered
W

2

6

I'd like to build an ontology for my web application, and I thought of using Neo4j to represent the ontology (since I use Neo4j anyway).

Right now, it seems I have to write it from scratch, including the entire ontology implementation, validation, reasoning, GUI editor. Definitely too much work.

Is there a framework or library that will allow me to manage my ontology on neo4j without implementing it from scratch? If not, what is the most reasonable alternative? (I'm using Neo4j over Node.js)

Wesleywesleyan answered 10/6, 2012 at 20:36 Comment(2)
Do you need onotologies or RDF? I know that e.g. disease-ontology.org/faq is using Neo4j in the backend, maybe you could get some info there?Landaulet
I want to represent an ontology. Thanks, this is a good lead! They have a GitHub rep: github.com/IGS/disease-ontology - It has some Python code to deal with the OntologyWesleywesleyan
H
3

ontology implementation, validation, reasoning, GUI editor.

You can use Tinkerpop's Blueprints stack, if you want those things (except the GUI editor), whilst still using the Neo4j as the DB. It abstracts away from the "low-level" graph databases' API and provides a unified interface. This means you can change the DB in the future, while retaining the features.

To get started you'll need the main Blueprints lib, Neo4j impl. and Sail oupl.. At this point you should be using the GraphSail class and its Connection class for semantic graph management.

Note that by using the Sail ouplementation (I didn't come up with the term..) you may use Sesame's libs like (pasting from my maven project) sesame-rio-rdfxml, sesame-rio-ntriples, sesame-repository-sail, sesame-queryparser-sparql.

I'm not working for Tinkerpop, but I really enjoy their framework.

Hoskinson answered 12/9, 2012 at 12:28 Comment(0)
C
0

There is a lot you can do with the Neosemantics plugin. You may want to take a look. You can import an existing ontology and extend it easily. You get visualisation for free with Bloom but no ontology editor as such. For that, you can use Protégé. Create your onto there and then import it into neo4j with neosemantics. It's a one line thing:

CALL n10s.onto.import.fetch("...path to your onto...", "Turtle") 
//or whichever serialisation format you're using
Coplin answered 18/7, 2021 at 16:18 Comment(0)

© 2022 - 2025 — McMap. All rights reserved.