NAME

FAIR::Profile::Property - to represent a Property in a FAIR Profile

VERSION

version 0.20

SYNOPSIS

use FAIR::Profile::Class;
use FAIR::Profile::Property;

my $ProfileClass = FAIR::Profile::Class->new(
   class_type => FAIR."dataset",  # DCAT is an exported constant
   URI => "http://example.org//ProfileClasses/ThisClass.rdf",
   label => "core metadata for the thesis submission"
  );

my $TitleProperty = FAIR::Profile::Property->new(
   property_type => DCT.'title', # DCT is an exported constant
   allow_multiple => "false",
);
$TitleProperty->set_RequirementStatus('required');
$TitleProperty->add_ValueRange(XSD."string");
$ProfileClass->add_Property($TitleProperty);

DESCRIPTION

FAIR Property describes a single metadata element, and its possible values. It IS NOT a containers for this metadata, it only describes what that metadata should look like (meta-meta-data :-) )

Effectively, in RDF terms, this is the predicate associated with the metadata, and it's ranges

NAME

FAIR::Profile::Property - a module representing a DCAT Profile Property

AUTHORS

Mark Wilkinson (markw at illuminae dot com)

METHODS

new

 Title : new
 Usage : my $Property = FAIR::Profile::Property->new();
 Function: Builds a new FAIR::Profile::Property
 Returns : FAIR::Profile::Property
 Args : label => $string
	property_type => $URI (possibly an OWL predicate URI)
	allow_multiple => $boolean ('true'/'false')
	URI => $URI (optional - a unique URI will be auto-generated)

label

Title : label
Usage : $label = $Property->label($label);
Function: get/set the RDF label for this object when serialized
Returns : string
Args : string

property_type

Title : property_type
Usage : $property_type = $Property->property_type($property_type);
Function: get/set the property type (should be a URI, e.g. of an ontology predicate)
Returns : string (URI)
Args : string (URI)

URI

Title : URI
Usage : $uri = $Property->URI($uri);
Function: get/set the URI for this Property - the URI in the RDF
Returns : string  (should be a URI)
Args : string   (should be a URI)
notes:  if this is not supplied, a unique URI will be automatically generated

set_MinCount

Title : set_MinCount
Usage : $req = $Property->set_MinCount($int);
Function: minimum number of occurrences of this property
Returns : int
Args : int

set_MinCount

Title : set_MaxCount
Usage : $req = $Property->set_MaxCount($int);
Function: maximum number of occurrences of this property
Returns : int
Args : int

add_ValueRange

 Title : add_ValueRange
 Usage : $Property->add_ValueRange($URI);
 Function: add a range restriction for this predicate
 Returns : none
 Args : string - the string should be a URI...
 Notes:  This is the "critical bit" of the FAIR Profile.  The ranges
         can be defined by one of:  the URI of an XSD datatype, the URI
	 to a SKOS view of a set of ontology terms (according to Jupp et al, 2013)
	 or the URI to another FAIR::Profile (in this way, profiles can be hierarchical)

allowedValues

Title : allowedValues
Usage : $req = $Property->allowedValues();
Function: retrieve the value ranges for the property
Returns : listref of URIs (see add_ValueRange for details)
Args : none

AUTHOR

Mark Denis Wilkinson (markw [at] illuiminae [dot] com)

COPYRIGHT AND LICENSE

This software is Copyright (c) 2015 by Mark Denis Wilkinson.

This is free software, licensed under:

The Apache License, Version 2.0, January 2004