Skip to content

Latest commit

 

History

History
90 lines (69 loc) · 5.11 KB

RDF-LAMP.md

File metadata and controls

90 lines (69 loc) · 5.11 KB

RDF-LAMP

This page is for curating a list of free and open source tools -- analogous to the LAMP stack -- that a new RDF user can easily download and use to build a "typical" RDF application. It addresses issue #2. This list is not intended to be exhaustive. (See Awesome Semantic Web for a more comprehensive list.) Rather it is intended to be a starting point: to include only those tools that would be needed by most RDF applications. The hope is to eventually bundle these tools into a single, common download, analogous to Red Hat or Ubuntu.

PRs are invited!

Target applications

Three "typical" RDF applications are targeted:

  • Data integration. The application must integrate data from multiple data sources having different formats and data models, including a relational database and a (plain) JSON data source.
  • Catalog metadata. The application must use RDF metadata to categorize items in multiple ways, such as products in a catalog.
  • OWL for smarter querying. The application must use OWL reasoning (or other inference rules) to enable smarter queries, such as queries of biomedical data.

One or more of these applications should involve the following challenges:

  • Alignment of multiple data models / vocabularies / ontologies.
  • Use of user-defined inference, either using an RDF rules language or whatever programming language is used to build the application.
  • Conversion of relational data to RDF.
  • Conversion of plain JSON data -- not already JSON-LD -- to RDF.
  • Using public RDF data.
  • Understanding and visualizing RDF data.
  • SPARQL queries.
  • Use of SKOS for metadata.
  • Metadata vocabulary that originates in a spreadsheet.
  • Conversion of RDF data:
    • from RDF/XML or Turtle to Turtle or N-Triples;
    • from JSON-LD or TriG to N-Quads;
    • from N-Quads to human-friendly TriG, using common RDF namespace prefixes.
  • (What else?)

TO DO: Find or create specific examples for the above three kinds of application, with example data, and turn them into tutorials based on the below set of tools. (Can someone suggest some, complete with example data? Or suggest others, perhaps some existing tutorials?)

Criteria for tool inclusion

To be considered for inclusion, a candidate tool:

  • must be OSI-compliant free and open source software (FOSS), though the software may be maintained by a commercial company and it may also be offered under a non-FOSS license;
  • must be necessary (or normally recommended) to implement at least one of the three "typical" applications listed above;
  • must be powerful enough to be used for real world applications (in its FOSS version);
  • must be actively supported and used in the RDF community;
  • should run on Linux, Windows and Mac OS; and
  • should represent the easiest and most popular community choice in its category.

Candidate Tools

Generic tools

Tools in this section are not specific to the programming language that is used to build your RDF application.

  • One of:
  • Protege -- Ontology editor
  • SKOS Play? -- Converts a spreadsheet taxonomy to SKOS data
  • YASGUI -- SPARQL editor
  • OpenRefine -- Clean data and convert to RDF
  • One of:
  • (What for RDF authoring?)
  • (What for visualizing RDF data?)
  • (What for converting from relational data to triples?)
  • (What for converting from JSON data to triples (assuming it is not already JSON-LD)?)
  • (What for writing and applying simple inference rules)
  • (list others here ... )

Java tools

Tools in this section are for those using Java to build RDF applications.

  • Apache Jena -- Java framework and library for building RDF applications
  • (list others here ... )

JavaScript tools

Tools in this section are for those using JavaScript to build RDF applications.

  • RDF JS -- JavaScript library for building RDF applications.
  • (list others here ... )

Python tools

Tools in this section are for those using Python to build RDF applications.

  • RDFLib -- Python library for RDF applications.
  • (list others here ... )

For a curated list of additional tools specifically for Python, see semantic-python-overview.

Ruby tools

Tools in this section are for those using Ruby to build RDF applications.