DCATR.ServiceData (DCAT-R.ex v0.1.0)

Copy Markdown View Source

A local catalog of service-specific DCATR.Graphs not distributed with the DCATR.Repository.

Since dcatr:Service is a dcat:DataService (not a dcat:Catalog), it cannot directly contain graphs. ServiceData fills this role as the local dcat:Catalog counterpart to DCATR.Repository (the distributed catalog), organizing all graphs that are specific to a service instance:

Typically instantiated as a blank node to avoid managing an additional URI, but can have an explicit URI if external referencing is required.

Schema Mapping

This schema does not directly inherit from DCAT.Catalog in Grax to avoid bloating the Elixir structs with all DCAT properties. Any DCAT metadata is still preserved in the __additional_statements__ field of the struct. When needed, Grax schema mapping allows accessing service data as a dcat:Catalog with all DCAT properties mapped to struct fields via the DCAT.Catalog schema from DCAT.ex.

Summary

Functions

Returns all graphs through the entire sub-directory tree.

Returns all elements through the entire sub-directory tree.

Returns all direct directories in the service data.

Finds a graph by ID recursively through the sub-directory tree.

Returns a graph by ID or symbolic selector.

Returns all direct graphs in the service data.

Checks if a graph exists in the container.

Returns all direct element members.

Resolves a symbolic selector to a graph.

Returns all service-local system graphs.

Returns all working graphs in the service data.

Types

t()

@type t() :: %DCATR.ServiceData{
  __additional_statements__: term(),
  __id__: term(),
  manifest_graph: term(),
  system_graphs: term(),
  working_graphs: term()
}

Functions

all_graphs(container)

@spec all_graphs(DCATR.Directory.Type.schema()) :: [DCATR.Graph.t()]

Returns all graphs through the entire sub-directory tree.

all_members(container)

@spec all_members(DCATR.Directory.Type.schema()) :: [DCATR.Element.t()]

Returns all elements through the entire sub-directory tree.

build(id)

build(id, initial)

build!(id)

build!(id, initial)

build_id(attributes)

directories(container)

Returns all direct directories in the service data.

This implementation of DCATR.Directory.Type.directories/1 always returns an empty list, as service data does not contain sub-directories.

find_graph(container, id)

@spec find_graph(DCATR.Directory.Type.schema(), RDF.IRI.coercible()) ::
  DCATR.Graph.t() | nil

Finds a graph by ID recursively through the sub-directory tree.

from(value)

@spec from(Grax.Schema.t()) :: {:ok, t()} | {:error, any()}

from!(value)

@spec from!(Grax.Schema.t()) :: t()

graph(container, id_or_selector)

Returns a graph by ID or symbolic selector.

Tries resolve_graph_selector/2 first. On :undefined, falls back to find_graph/2 (from DCATR.Directory.Type) for ID-based lookup.

graphs(container)

Returns all direct graphs in the service data.

This implementation of DCATR.Directory.Type.graphs/1 delegates to DCATR.ServiceData.Type.graphs/1.

has_graph?(container, id_or_selector)

Checks if a graph exists in the container.

Convenience function based on graph/2 - returns true if the graph exists, false otherwise.

load(graph, id, opts \\ [])

@spec load(
  RDF.Graph.t() | RDF.Description.t(),
  RDF.IRI.coercible() | RDF.BlankNode.t(),
  opts :: keyword()
) :: {:ok, t()} | {:error, any()}

load!(graph, id, opts \\ [])

@spec load!(
  RDF.Graph.t() | RDF.Description.t(),
  RDF.IRI.coercible() | RDF.BlankNode.t(),
  opts :: keyword()
) :: t()

members(container)

Returns all direct element members.

new(id, attrs)

new!(id, attrs)

resolve_graph_selector(data, selector)

Resolves a symbolic selector to a graph.

This implementation of DCATR.GraphResolver.resolve_graph_selector/2 delegates to DCATR.ServiceData.Type.resolve_graph_selector/2.

system_graphs(data)

Returns all service-local system graphs.

This implementation of DCATR.ServiceData.Type.system_graphs/1 delegates to DCATR.ServiceData.Type.system_graphs/1.

working_graphs(data)

Returns all working graphs in the service data.

This implementation of DCATR.ServiceData.Type.working_graphs/1 delegates to DCATR.ServiceData.Type.working_graphs/1.