Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

Utility for working with DOSDP design patterns and OWL ontologies

License

Notifications You must be signed in to change notification settings

INCATools/dosdp-tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status

dosdp-tools

dosdp-tools is a command-line utility for working with DOSDP design patterns and OWL ontologies. Given a YAML design pattern following the DOSDP spec, it can either generate ontology axioms from an input table of terms, or instead generate a SPARQL query that can be used to query an ontology for terms matching the pattern.

Releases

Pre-packaged releases can be downloaded from here.

Building

  1. If you don't already have it, install sbt on your system. For Mac OS X, it is easily done using Homebrew: brew install sbt

  2. Clone the project from GitHub (git clone [email protected]:INCATools/dosdp-tools.git).

  3. Change into the project directory: cd dosdp-tools.

  4. To compile and build the executable package, run: sbt stage

You will find executables for Unix and Windows in target/universal/stage/bin/. These depend on the libraries in target/universal/stage/lib.

Usage

Usage

 dosdp-tools [options] command [command options]

Options

   --catalog             : catalog file to use for resolving ontology locations
   --obo-prefixes        : Assume prefixes are OBO ontologies; predefine rdf, rdfs, owl, dc, dct, skos, obo, and oio.
   --ontology            : OWL ontology (provide labels, query axioms)
   --outfile             : Output file (OWL or TSV)
   --prefixes            : CURIE prefixes (YAML)
   --table-format=STRING : Tabular format: TSV (default) or CSV
   --template=STRING     : DOSDP file (YAML). If a local file is not found at the given path, the path will be attempted as a URL.

Commands

   generate [command options] : generate ontology axioms for TSV input to a Dead Simple OWL Design Pattern
      --add-axiom-source-annotation             : Add axiom annotation to generated axioms linking to pattern IRI
      --axiom-source-annotation-property=STRING : IRI for annotation property to use to link generated axioms to pattern IRI
      --generate-defined-class                  : Computed defined class IRI from pattern IRI and variable fillers
      --infile                                  : Input file (TSV or CSV)
      --restrict-axioms-column                  : Data column containing local axiom output restrictions
      --restrict-axioms-to=STRING               : Restrict generated axioms to 'logical', 'annotation', or 'all' (default)

   prototype : output "prototype" axioms using default fillers for a pattern or folder of patterns

   query [command options] : query an ontology for terms matching a Dead Simple OWL Design Pattern
      --print-query : Print generated query without running against ontology
      --reasoner    : Reasoner to use for expanding variable constraints. Valid options are ELK, HermiT, or JFact.

   terms [command options] : dump terms referenced in TSV input and a Dead Simple OWL Design Pattern
      --infile : Input file (TSV or CSV)

dosdp-tools has four modes: generate, query, prototype, and terms:

Generate

The generate command creates an ontology from a DOSDP pattern file and an input file of tab-separated filler values. Column names in the TSV file need to match variables defined in the DOSDP. A special defined_class column should provide the IRI for the newly created class instantiating the pattern. A provided ontology is used to find labels for terms, needed to generate annotation values. Example:

dosdp-tools generate --obo-prefixes=true --template=exposure_to_chemical.yaml --infile=exposure_to_chemical.tsv --outfile=exposure_to_chemical.ofn --ontology=chebi_import.owl

Query

The query command queries an ontology for terms that meet the logical patterns defined in a DOSDP pattern file. Instead of performing the query, you can also simply print the generated SPARQL. Example:

dosdp-tools query --template=entity_attribute_location.yaml --prefixes=prefixes.yaml --print-query

Output:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>

SELECT DISTINCT ?defined_class (STR(?defined_class__label) AS ?defined_class_label) ?attribute (STR(?attribute__label) AS ?attribute_label) ?entity (STR(?entity__label) AS ?entity_label) ?location (STR(?location__label) AS ?location_label)
WHERE {
?defined_class owl:equivalentClass ?ba95b4a7b13f4a86af50c3e0e1182838 .
?ba95b4a7b13f4a86af50c3e0e1182838 owl:intersectionOf/rdf:rest*/rdf:first ?c90d72646ac64cc19318ca3273f11cd6 .
?ba95b4a7b13f4a86af50c3e0e1182838 owl:intersectionOf/rdf:rest*/rdf:first ?attribute .
?ba95b4a7b13f4a86af50c3e0e1182838 owl:intersectionOf/rdf:rest/rdf:rest rdf:nil .
?c90d72646ac64cc19318ca3273f11cd6 owl:onProperty <http://purl.obolibrary.org/obo/RO_0000052> .
?c90d72646ac64cc19318ca3273f11cd6 owl:someValuesFrom ?7f7e348c174d42f0a76663cc59f21e37 .
?7f7e348c174d42f0a76663cc59f21e37 owl:intersectionOf/rdf:rest*/rdf:first ?75f4eb2eae374a77878c36acda870206 .
?7f7e348c174d42f0a76663cc59f21e37 owl:intersectionOf/rdf:rest*/rdf:first ?entity .
?7f7e348c174d42f0a76663cc59f21e37 owl:intersectionOf/rdf:rest/rdf:rest rdf:nil .
?75f4eb2eae374a77878c36acda870206 owl:onProperty <http://purl.obolibrary.org/obo/BFO_0000050> .
?75f4eb2eae374a77878c36acda870206 owl:someValuesFrom ?location .
FILTER(?entity != ?75f4eb2eae374a77878c36acda870206)
FILTER(?c90d72646ac64cc19318ca3273f11cd6 != ?attribute)
OPTIONAL { ?defined_class rdfs:label ?defined_class__label . }
OPTIONAL { ?attribute rdfs:label ?attribute__label . }
OPTIONAL { ?entity rdfs:label ?entity__label . }
OPTIONAL { ?location rdfs:label ?location__label . }
}

About

Utility for working with DOSDP design patterns and OWL ontologies

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 6

Languages