Skip to main content

A simple Python interface of Open-David

Project description

pydavid: A simple Python Interface of Open-David

Introduction

pydavid is a simple Python interface of Open-David (version 1.73), an abductive reasoner written in C++.

Installation

pydavid is a frontend of Open-David and does not include Open-David. Please install Open-David , and then install pydavid by the following command.

$ pip install pydavid

Usage

The following is a sample code. Before run, please set approapriate path to an executable file of Open-David in your computer, download toy.dav in this repository, and place it in your current working directly.

from pydavid    import OpenDavid
from dhgraph    import DirectedHypergraph

# PLEASE MODIFY PATH ACCORDING TO YOUR ENVIRONMENT.
OpenDavid.set_david_path("/usr/local/bin/david")
with open("toy.dav", mode="r") as f:
    data = f.read()
    OpenDavid.set_knowledge_base(data)

observation_list = ["police(John)", "die(E1)", "subj(E1, Mary)",\
    "arrest(E2)", "subj(E2, x)", "obj(E2, Bob)"]
required_atom_list = ["(x = John)"]
OpenDavid.set_problem(observation_list, required_atom_list)
json_str = OpenDavid.run() # Wait until it terminates if interpreter is used.

# json is converted to a directed hypergraph.
g = OpenDavid.build_proofgraph(json_str)
# "sample.png" will be generated in your cwd.
g.render(filename="sample", format="png")

NOTE: toy.dav distributed in this repository was obtained from Open-David , but a problem field was deleted, because pydavid separately sets knowledge base data and a problem data.

Please see dhgraph for usage of dhgraph.

sample.png

Bugs/Requests/Discussions

Please report bugs and requests from GitHub Issues , and ask questions from GitHub Discussions .

License

Please see LICENSE .

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydavid-1.0.1.tar.gz (4.8 kB view hashes)

Uploaded Source

Built Distribution

pydavid-1.0.1-py3-none-any.whl (5.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page