function __construct($a, $config)
 {
     $this->_config = $config;
     $this->_usedProperties = array();
     date_default_timezone_set('UTC');
     parent::__construct($a);
 }
 function __construct($rdf, $request, $requestFactory = false)
 {
     $this->_request = $request;
     parent::__construct($rdf);
     if (!$requestFactory) {
         $this->_requestFactory = new HttpRequestFactory();
     } else {
         $this->_requestFactory = $requestFactory;
     }
     // built-in formatters
     $this->add_literal_triple(API . 'JsonFormatter', API . 'mimeType', 'application/json');
     $this->add_literal_triple(API . 'JsonFormatter', API . 'name', 'json');
     $this->add_literal_triple(API . 'JsonFormatter', RDFS_LABEL, 'Simple JSON');
     $this->add_literal_triple(API . 'RdfJsonFormatter', API . 'mimeType', 'application/json');
     $this->add_literal_triple(API . 'RdfJsonFormatter', API . 'mimeType', 'application/x-rdf+json');
     $this->add_literal_triple(API . 'RdfJsonFormatter', API . 'name', 'rdfjson');
     $this->add_literal_triple(API . 'RdfJsonFormatter', RDFS_LABEL, 'RDF/JSON');
     $this->add_literal_triple(API . 'XmlFormatter', API . 'mimeType', 'application/xml');
     $this->add_literal_triple(API . 'XmlFormatter', API . 'name', 'xml');
     $this->add_literal_triple(API . 'XmlFormatter', RDFS_LABEL, 'Simple XML');
     $this->add_literal_triple(API . 'TurtleFormatter', API . 'mimeType', 'text/turtle');
     $this->add_literal_triple(API . 'TurtleFormatter', API . 'name', 'ttl');
     $this->add_literal_triple(API . 'TurtleFormatter', RDFS_LABEL, 'Turtle');
     $this->add_literal_triple(API . 'RdfXmlFormatter', API . 'mimeType', 'application/rdf+xml');
     $this->add_literal_triple(API . 'RdfXmlFormatter', API . 'name', 'rdf');
     $this->add_literal_triple(API . 'RdfXmlFormatter', RDFS_LABEL, 'RDF/XML');
     $this->add_literal_triple(API . 'TsvFormatter', API . 'mimeType', 'text/tab-separated-values');
     $this->add_literal_triple(API . 'TsvFormatter', API . 'name', 'tsv');
     $this->add_literal_triple(API . 'TsvFormatter', RDFS_LABEL, 'Comma Seperated Variables');
     $this->add_resource_triple(API . 'JsonFormatter', RDF . 'type', API . 'Formatter');
     $this->add_resource_triple(API . 'XmlFormatter', RDF . 'type', API . 'Formatter');
     $this->add_resource_triple(API . 'RdfXmlFormatter', RDF . 'type', API . 'Formatter');
     $this->add_resource_triple(API . 'TurtleFormatter', RDF . 'type', API . 'Formatter');
     $this->add_resource_triple(API . 'RdfJsonFormatter', RDF . 'type', API . 'Formatter');
     $this->add_resource_triple(API . 'TsvFormatter', RDF . 'type', API . 'Formatter');
     //built-in viewer: basic
     $this->add_resource_triple(API . 'basicViewer', RDF_TYPE, API . 'Viewer');
     $this->add_literal_triple(API . 'basicViewer', API . 'name', "basic");
     $this->add_resource_triple(API . 'basicViewer', API . 'property', RDF_TYPE);
     $this->add_resource_triple(API . 'basicViewer', API . 'property', RDFS_LABEL);
     //built-in viewer: describe
     $this->add_resource_triple(API . 'describeViewer', RDF_TYPE, API . 'Viewer');
     $this->add_literal_triple(API . 'describeViewer', API . 'name', "description");
     $this->add_literal_triple(API . 'describeViewer', API . 'properties', "*");
     //built-in viewer: labelled describe
     $this->add_resource_triple(API . 'labelledDescribeViewer', RDF_TYPE, API . 'Viewer');
     $this->add_literal_triple(API . 'labelledDescribeViewer', API . 'name', "all");
     $this->add_literal_triple(API . 'labelledDescribeViewer', API . 'properties', "*.label");
     $this->add_literal_triple(RDFS_LABEL, API . 'label', "label");
 }