Skip to content

Latest commit

 

History

History
82 lines (54 loc) · 2.53 KB

README.md

File metadata and controls

82 lines (54 loc) · 2.53 KB

Hex.pm Hex Docs License

ExUnit Tests Dialyzer Quality Checks

FOAF.ex

An implementation of the Friend of a Friend (FOAF) vocabulary for Elixir as Grax schemas.

The API documentation can be found here. For more information about the RDF on Elixir projects, go to https://rdf-elixir.dev.

Features

  • The FOAF module acts as the RDF.Vocabulary.Namespace for the FOAF vocabulary
  • Grax structures for all FOAF classes and their properties, for easy creation and manipulation of FOAF profiles, groups, and documents
  • Seamless integration with all RDF on Elixir projects

Installation

Add foaf to your list of dependencies in mix.exs:

def deps do
  [
    {:foaf, "~> 0.1"}
  ]
end

Usage

FOAF.Person.build!(EX.john_doe(),
  name: "John Doe",
  mbox: ~I<mailto:john@example.com>,
  homepages: ~I<http://example.com/john>,
  knows: [EX.jane_doe()],
  interests: [~I<http://www.w3.org/TR/rdf-sparql-query/>]
) 
|> Grax.to_rdf!(prefixes: [foaf: FOAF, ex: EX]) 
|> RDF.Turtle.write_string!()

produces:

@prefix ex: <http://example.com/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .

ex:john_doe
    a foaf:Person ;
    foaf:homepage ex:john ;
    foaf:interest <http://www.w3.org/TR/rdf-sparql-query/> ;
    foaf:knows ex:jane_doe ;
    foaf:mbox <mailto:john@example.com> ;
    foaf:name "John Doe" .

Contributing

See CONTRIBUTING for details.

Consulting

If you need help with your Elixir and Linked Data projects, just contact NinjaConcept via contact@ninjaconcept.com.

License and Copyright

(c) 2024 Marcel Otto. MIT Licensed, see LICENSE for details.