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.
- The
FOAF
module acts as theRDF.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
Add foaf
to your list of dependencies in mix.exs
:
def deps do
[
{:foaf, "~> 0.1"}
]
end
FOAF.Person.build!(EX.john_doe(),
name: "John Doe",
mbox: ~I<mailto:[email protected]>,
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:[email protected]> ;
foaf:name "John Doe" .
See CONTRIBUTING for details.
If you need help with your Elixir and Linked Data projects, just contact NinjaConcept via [email protected].
(c) 2024 Marcel Otto. MIT Licensed, see LICENSE for details.