Skip to content

samvera-labs/ldpath

Repository files navigation

Ldpath

This is a ruby implementation of LDPath, a language for selecting values linked data resources.

Gem Version [Build Status]

Installation

Required gem installation

Add this line to your application's Gemfile:

gem 'ldpath'

And then execute:

$ bundle

Or install it yourself as:

$ gem install ldpath

Additional gem installations

To support RDF serializations, you will need to either install the linkeddata gem which installs a large set of RDF serializations or, in order to have a smaller dependency footprint, install gems for only the serializations your plan to use in your app. The list of serializations are in the README for the linkeddata gem.

Usage

require 'ldpath'

my_program = <<-EOF
@prefix dcterms : <http://purl.org/dc/terms/> ;
title = dcterms:title :: xsd:string ;
EOF

uri = RDF::URI.new "info:a"

context = RDF::Graph.new << [uri, RDF::Vocab::DC.title, "Some Title"]

program = Ldpath::Program.parse my_program
output = program.evaluate uri, context: context
# => { ... }

Compatibility

  • Ruby 2.5 or the latest 2.4 version is recommended. Later versions may also work.

Contributing

If you're working on PR for this project, create a feature branch off of main.

This repository follows the Samvera Community Code of Conduct and language recommendations. Please do not create a branch called master for this repository or as part of your pull request; the branch will either need to be removed or renamed before it can be considered for inclusion in the code base and history of this repository.

Product Owner & Maintenance

LDPath is moving toward being a Core Component of the Samvera community. The documentation for what this means can be found here.

Product Owner

elrayle

Help

The Samvera community is here to help. Please see our support guide.

Acknowledgments

This software has been developed by and is brought to you by the Samvera community. Learn more at the Samvera website.

Samvera Logo

Special thanks to...

Chris Beer for the initial implementation of this gem!