Switch style to same-line bracket w/else and catch.

This commit is contained in:
Dave Longley 2014-04-24 14:39:30 -04:00
commit 1aac75aab7
2 changed files with 214 additions and 370 deletions

View file

@ -1,12 +1,12 @@
<?php
/**
* PHP implementation of the JSON-LD API.
* Version: 0.3.1
* Version: 0.3.2
*
* @author Dave Longley
*
* BSD 3-Clause License
* Copyright (c) 2011-2013 Digital Bazaar, Inc.
* Copyright (c) 2011-2014 Digital Bazaar, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -234,11 +234,9 @@ function jsonld_parse_link_header($header) {
$rel = property_exists($result, 'rel') ? $result->rel : '';
if(!isset($rval[$rel])) {
$rval[$rel] = $result;
}
else if(is_array($rval[$rel])) {
} else if(is_array($rval[$rel])) {
$rval[$rel][] = $result;
}
else {
} else {
$rval[$rel] = array($rval[$rel], $result);
}
}
@ -287,8 +285,7 @@ function jsonld_get_url($url) {
global $jsonld_default_load_document;
if($jsonld_default_load_document !== null) {
$document_loader = $jsonld_default_load_document;
}
else {
} else {
$document_loader = $jsonld_default_document_loader;
}
@ -349,8 +346,7 @@ function jsonld_default_document_loader($url) {
$link_header = jsonld_parse_link_header(join(',', $link_header));
if(isset($link_header['http://www.w3.org/ns/json-ld#context'])) {
$link_header = $link_header['http://www.w3.org/ns/json-ld#context'];
}
else {
} else {
$link_header = null;
}
if($link_header && $content_type !== 'application/ld+json') {
@ -431,8 +427,7 @@ function jsonld_default_secure_document_loader($url) {
$link_header = jsonld_parse_link_header(join(',', $link_header));
if(isset($link_header['http://www.w3.org/ns/json-ld#context'])) {
$link_header = $link_header['http://www.w3.org/ns/json-ld#context'];
}
else {
} else {
$link_header = null;
}
if($link_header && $content_type !== 'application/ld+json') {
@ -513,8 +508,7 @@ function jsonld_parse_url($url) {
if(!isset($rval['scheme'])) {
$rval['scheme'] = '';
$rval['protocol'] = '';
}
else {
} else {
$rval['protocol'] = $rval['scheme'] . ':';
}
if(!isset($rval['host'])) {
@ -541,13 +535,11 @@ function jsonld_parse_url($url) {
if($idx === false) {
$rval['authority'] = $rval['path'];
$rval['path'] = '';
}
else {
} else {
$rval['authority'] = substr($rval['path'], 0, $idx);
$rval['path'] = substr($rval['path'], $idx);
}
}
else {
} else {
$rval['authority'] = $rval['host'];
if(isset($rval['port'])) {
$rval['authority'] .= ":{$rval['port']}";
@ -588,9 +580,8 @@ function jsonld_remove_dot_segments($path, $has_authority) {
if($has_authority ||
(count($output) > 0 && $output[count($output) - 1] !== '..')) {
array_pop($output);
}
// leading relative URL '..'
else {
} else {
// leading relative URL '..'
$output[] = '..';
}
continue;
@ -632,8 +623,7 @@ function jsonld_prepend_base($base, $iri) {
$hierPart = $base['protocol'];
if($rel['authority']) {
$hierPart .= "//{$rel['authority']}";
}
else if($base['href'] !== '') {
} else if($base['href'] !== '') {
$hierPart .= "//{$base['authority']}";
}
@ -642,8 +632,7 @@ function jsonld_prepend_base($base, $iri) {
// IRI represents an absolute path
if(strpos($rel['path'], '/') === 0) {
$path = $rel['path'];
}
else {
} else {
$path = $base['path'];
// append relative path to the end of the last directory from base
@ -701,9 +690,8 @@ function jsonld_remove_base($base, $iri) {
$root = '';
if($base['href'] !== '') {
$root .= "{$base['protocol']}//{$base['authority']}";
}
// support network-path reference with empty base
else if(strpos($iri, '//') === false) {
} else if(strpos($iri, '//') === false) {
// support network-path reference with empty base
$root .= '//';
}
@ -827,13 +815,11 @@ class JsonLdProcessor {
if($options['skipExpansion'] === true) {
$expanded = $input;
}
else {
} else {
// expand input
try {
$expanded = $this->expand($input, $options);
}
catch(JsonLdException $e) {
} catch(JsonLdException $e) {
throw new JsonLdException(
'Could not expand input before compaction.',
'jsonld.CompactError', null, null, $e);
@ -844,8 +830,7 @@ class JsonLdProcessor {
$active_ctx = $this->_getInitialContext($options);
try {
$active_ctx = $this->processContext($active_ctx, $ctx, $options);
}
catch(JsonLdException $e) {
} catch(JsonLdException $e) {
throw new JsonLdException(
'Could not process context before compaction.',
'jsonld.CompactError', null, null, $e);
@ -856,17 +841,15 @@ class JsonLdProcessor {
if($options['compactArrays'] &&
!$options['graph'] && is_array($compacted)) {
// simplify to a single item
if(count($compacted) === 1) {
// simplify to a single item
$compacted = $compacted[0];
}
// simplify to an empty object
else if(count($compacted) === 0) {
} else if(count($compacted) === 0) {
// simplify to an empty object
$compacted = new stdClass();
}
}
// always use array if graph option is on
else if($options['graph']) {
} else if($options['graph']) {
// always use array if graph option is on
$compacted = self::arrayify($compacted);
}
@ -905,8 +888,7 @@ class JsonLdProcessor {
$compacted->{'@context'} = $ctx;
}
$compacted->{$kwgraph} = $graph;
}
else if(is_object($compacted) && $has_context) {
} else if(is_object($compacted) && $has_context) {
// reorder keys so @context is first
$graph = $compacted;
$compacted = new stdClass();
@ -944,8 +926,7 @@ class JsonLdProcessor {
// if input is a string, attempt to dereference remote document
if(is_string($input)) {
$remote_doc = call_user_func($options['documentLoader'], $input);
}
else {
} else {
$remote_doc = (object)array(
'contextUrl' => null,
'documentUrl' => null,
@ -961,8 +942,7 @@ class JsonLdProcessor {
if(is_string($remote_doc->document)) {
$remote_doc->document = self::_parse_json($remote_doc->document);
}
}
catch(Exception $e) {
} catch(Exception $e) {
throw new JsonLdException(
'Could not retrieve a JSON-LD document from the URL.',
'jsonld.LoadDocumentError', 'loading document failed',
@ -982,8 +962,7 @@ class JsonLdProcessor {
if(is_object($expand_context) &&
property_exists($expand_context, '@context')) {
$input->expandContext = $expand_context;
}
else {
} else {
$input->expandContext = (object)array('@context' => $expand_context);
}
}
@ -992,8 +971,7 @@ class JsonLdProcessor {
try {
$this->_retrieveContextUrls(
$input, new stdClass(), $options['documentLoader'], $options['base']);
}
catch(Exception $e) {
} catch(Exception $e) {
throw new JsonLdException(
'Could not perform JSON-LD expansion.',
'jsonld.ExpandError', null, null, $e);
@ -1022,8 +1000,7 @@ class JsonLdProcessor {
if(is_object($expanded) && property_exists($expanded, '@graph') &&
count(array_keys((array)$expanded)) === 1) {
$expanded = $expanded->{'@graph'};
}
else if($expanded === null) {
} else if($expanded === null) {
$expanded = array();
}
// normalize to an array
@ -1050,8 +1027,7 @@ class JsonLdProcessor {
try {
// expand input
$expanded = $this->expand($input, $options);
}
catch(Exception $e) {
} catch(Exception $e) {
throw new JsonLdException(
'Could not expand input before flattening.',
'jsonld.FlattenError', null, null, $e);
@ -1069,8 +1045,7 @@ class JsonLdProcessor {
$options['skipExpansion'] = true;
try {
$compacted = $this->compact($flattened, $ctx, $options);
}
catch(Exception $e) {
} catch(Exception $e) {
throw new JsonLdException(
'Could not compact flattened output.',
'jsonld.FlattenError', null, null, $e);
@ -1106,8 +1081,7 @@ class JsonLdProcessor {
// if frame is a string, attempt to dereference remote document
if(is_string($frame)) {
$remote_frame = call_user_func($options['documentLoader'], $frame);
}
else {
} else {
$remote_frame = (object)array(
'contextUrl' => null,
'documentUrl' => null,
@ -1123,8 +1097,7 @@ class JsonLdProcessor {
if(is_string($remote_frame->document)) {
$remote_frame->document = self::_parse_json($remote_frame->document);
}
}
catch(Exception $e) {
} catch(Exception $e) {
throw new JsonLdException(
'Could not retrieve a JSON-LD document from the URL.',
'jsonld.LoadDocumentError', 'loading document failed',
@ -1139,8 +1112,7 @@ class JsonLdProcessor {
if($remote_frame->contextUrl !== null) {
if($ctx !== null) {
$ctx = $remote_frame->contextUrl;
}
else {
} else {
$ctx = self::arrayify($ctx);
$ctx[] = $remote_frame->contextUrl;
}
@ -1151,8 +1123,7 @@ class JsonLdProcessor {
try {
// expand input
$expanded = $this->expand($input, $options);
}
catch(Exception $e) {
} catch(Exception $e) {
throw new JsonLdException(
'Could not expand input before framing.',
'jsonld.FrameError', null, null, $e);
@ -1163,8 +1134,7 @@ class JsonLdProcessor {
$opts = $options;
$opts['keepFreeFloatingNodes'] = true;
$expanded_frame = $this->expand($frame, $opts);
}
catch(Exception $e) {
} catch(Exception $e) {
throw new JsonLdException(
'Could not expand frame before framing.',
'jsonld.FrameError', null, null, $e);
@ -1179,8 +1149,7 @@ class JsonLdProcessor {
$options['skipExpansion'] = true;
$options['activeCtx'] = true;
$result = $this->compact($framed, $ctx, $options);
}
catch(Exception $e) {
} catch(Exception $e) {
throw new JsonLdException(
'Could not compact framed output.',
'jsonld.FrameError', null, null, $e);
@ -1223,8 +1192,7 @@ class JsonLdProcessor {
}
$opts['produceGeneralizedRdf'] = false;
$dataset = $this->toRDF($input, $opts);
}
catch(Exception $e) {
} catch(Exception $e) {
throw new JsonLdException(
'Could not convert input to RDF dataset before normalization.',
'jsonld.NormalizeError', null, null, $e);
@ -1274,8 +1242,7 @@ class JsonLdProcessor {
}
if($this->rdfParsers !== null) {
$callable = $this->rdfParsers->{$options['format']};
}
else {
} else {
$callable = $jsonld_rdf_parsers->{$options['format']};
}
$dataset = call_user_func($callable, $dataset);
@ -1309,8 +1276,7 @@ class JsonLdProcessor {
try {
// expand input
$expanded = $this->expand($input, $options);
}
catch(JsonLdException $e) {
} catch(JsonLdException $e) {
throw new JsonLdException(
'Could not expand input before serialization to RDF.',
'jsonld.RdfError', null, null, $e);
@ -1340,8 +1306,7 @@ class JsonLdProcessor {
// supported formats
if($options['format'] === 'application/nquads') {
$rval = self::toNQuads($dataset);
}
else {
} else {
throw new JsonLdException(
'Unknown output format.', 'jsonld.UnknownFormat',
null, array('format' => $options['format']));
@ -1382,8 +1347,7 @@ class JsonLdProcessor {
$this->_retrieveContextUrls(
$local_ctx, new stdClass(),
$options['documentLoader'], $options['base']);
}
catch(Exception $e) {
} catch(Exception $e) {
throw new JsonLdException(
'Could not process JSON-LD context.',
'jsonld.ContextError', null, null, $e);
@ -1434,9 +1398,8 @@ class JsonLdProcessor {
break;
}
}
}
// avoid matching the set of values with an array value parameter
else if(!is_array($value)) {
} else if(!is_array($value)) {
// avoid matching the set of values with an array value parameter
$rval = self::compareValues($value, $val);
}
}
@ -1475,8 +1438,7 @@ class JsonLdProcessor {
foreach($value as $v) {
self::addValue($subject, $property, $v, $options);
}
}
else if(property_exists($subject, $property)) {
} else if(property_exists($subject, $property)) {
// check if subject already has value if duplicates not allowed
$has_value = (!$options['allowDuplicate'] &&
self::hasValue($subject, $property, $value));
@ -1491,8 +1453,7 @@ class JsonLdProcessor {
if(!$has_value) {
$subject->{$property}[] = $value;
}
}
else {
} else {
// add new value as set or single value
$subject->{$property} = ($options['propertyIsArray'] ?
array($value) : $value);
@ -1547,11 +1508,9 @@ class JsonLdProcessor {
if(count($values) === 0) {
self::removeProperty($subject, $property);
}
else if(count($values) === 1 && !$options['propertyIsArray']) {
} else if(count($values) === 1 && !$options['propertyIsArray']) {
$subject->{$property} = $values[0];
}
else {
} else {
$subject->{$property} = $values;
}
}
@ -1625,12 +1584,11 @@ class JsonLdProcessor {
return null;
}
// return whole entry
if($type === null) {
// return whole entry
$rval = $entry;
}
// return entry value for type
else if(property_exists($entry, $type)) {
} else if(property_exists($entry, $type)) {
// return entry value for type
$rval = $entry->{$type};
}
}
@ -1697,8 +1655,7 @@ class JsonLdProcessor {
if($match[1] !== '') {
$triple->subject->type = 'IRI';
$triple->subject->value = $match[1];
}
else {
} else {
$triple->subject->type = 'blank node';
$triple->subject->value = $match[2];
}
@ -1711,12 +1668,10 @@ class JsonLdProcessor {
if($match[4] !== '') {
$triple->object->type = 'IRI';
$triple->object->value = $match[4];
}
else if($match[5] !== '') {
} else if($match[5] !== '') {
$triple->object->type = 'blank node';
$triple->object->value = $match[5];
}
else {
} else {
$triple->object->type = 'literal';
$unescaped = str_replace(
array('\"', '\t', '\n', '\r', '\\\\'),
@ -1724,12 +1679,10 @@ class JsonLdProcessor {
$match[6]);
if(isset($match[7]) && $match[7] !== '') {
$triple->object->datatype = $match[7];
}
else if(isset($match[8]) && $match[8] !== '') {
} else if(isset($match[8]) && $match[8] !== '') {
$triple->object->datatype = self::RDF_LANGSTRING;
$triple->object->language = $match[8];
}
else {
} else {
$triple->object->datatype = self::XSD_STRING;
}
$triple->object->value = $unescaped;
@ -1739,17 +1692,15 @@ class JsonLdProcessor {
$name = '@default';
if(isset($match[9]) && $match[9] !== '') {
$name = $match[9];
}
else if(isset($match[10]) && $match[10] !== '') {
} else if(isset($match[10]) && $match[10] !== '') {
$name = $match[10];
}
// initialize graph in dataset
if(!property_exists($dataset, $name)) {
$dataset->{$name} = array($triple);
}
// add triple if unique to its graph
else {
} else {
// add triple if unique to its graph
$unique = true;
$triples = &$dataset->{$name};
foreach($triples as $t) {
@ -1810,13 +1761,11 @@ class JsonLdProcessor {
// subject is an IRI
if($s->type === 'IRI') {
$quad .= "<{$s->value}>";
}
// bnode normalization mode
else if($bnode !== null) {
} else if($bnode !== null) {
// bnode normalization mode
$quad .= ($s->value === $bnode) ? '_:a' : '_:z';
}
// bnode normal mode
else {
} else {
// bnode normal mode
$quad .= $s->value;
}
$quad .= ' ';
@ -1824,14 +1773,12 @@ class JsonLdProcessor {
// predicate is an IRI
if($p->type === 'IRI') {
$quad .= "<{$p->value}>";
}
// FIXME: TBD what to do with bnode predicates during normalization
// bnode normalization mode
else if($bnode !== null) {
} else if($bnode !== null) {
// FIXME: TBD what to do with bnode predicates during normalization
// bnode normalization mode
$quad .= '_:p';
}
// bnode normal mode
else {
} else {
// bnode normal mode
$quad .= $p->value;
}
$quad .= ' ';
@ -1839,18 +1786,15 @@ class JsonLdProcessor {
// object is IRI, bnode, or literal
if($o->type === 'IRI') {
$quad .= "<{$o->value}>";
}
else if($o->type === 'blank node') {
// normalization mode
} else if($o->type === 'blank node') {
if($bnode !== null) {
// normalization mode
$quad .= ($o->value === $bnode) ? '_:a' : '_:z';
}
// normal mode
else {
} else {
// normal mode
$quad .= $o->value;
}
}
else {
} else {
$escaped = str_replace(
array('\\', "\t", "\n", "\r", '"'),
array('\\\\', '\t', '\n', '\r', '\"'),
@ -1860,8 +1804,7 @@ class JsonLdProcessor {
if($o->language) {
$quad .= "@{$o->language}";
}
}
else if($o->datatype !== self::XSD_STRING) {
} else if($o->datatype !== self::XSD_STRING) {
$quad .= "^^<{$o->datatype}>";
}
}
@ -1870,11 +1813,9 @@ class JsonLdProcessor {
if($g !== null) {
if(strpos($g, '_:') !== 0) {
$quad .= " <$g>";
}
else if($bnode) {
} else if($bnode) {
$quad .= ' _:g';
}
else {
} else {
$quad .= " $g";
}
}
@ -2020,14 +1961,13 @@ class JsonLdProcessor {
// compact @id and @type(s)
if($expanded_property === '@id' || $expanded_property === '@type') {
// compact single @id
if(is_string($expanded_value)) {
// compact single @id
$compacted_value = $this->_compactIri(
$active_ctx, $expanded_value, null,
array('vocab' => ($expanded_property === '@type')));
}
// expanded value must be a @type array
else {
} else {
// expanded value must be a @type array
$compacted_value = array();
foreach($expanded_value as $ev) {
$compacted_value[] = $this->_compactIri(
@ -2139,9 +2079,8 @@ class JsonLdProcessor {
$compacted_item->{$this->_compactIri($active_ctx, '@index')} =
$expanded_item->{'@index'};
}
}
// can't use @list container for more than 1 list
else if(property_exists($rval, $item_active_property)) {
} else if(property_exists($rval, $item_active_property)) {
// can't use @list container for more than 1 list
throw new JsonLdException(
'JSON-LD compact error; property has a "@list" @container ' .
'rule but there is more than a single @list that matches ' .
@ -2156,8 +2095,7 @@ class JsonLdProcessor {
// get or create the map object
if(property_exists($rval, $item_active_property)) {
$map_object = $rval->{$item_active_property};
}
else {
} else {
$rval->{$item_active_property} = $map_object = new stdClass();
}
@ -2171,8 +2109,7 @@ class JsonLdProcessor {
// based on the container type
self::addValue(
$map_object, $expanded_item->{$container}, $compacted_item);
}
else {
} else {
// use an array if: compactArrays flag is false,
// @container is @set or @list, value is an empty
// array, or key is @graph
@ -2237,8 +2174,7 @@ class JsonLdProcessor {
if($e !== null) {
if(is_array($e)) {
$rval = array_merge($rval, $e);
}
else {
} else {
$rval[] = $e;
}
}
@ -2392,8 +2328,7 @@ class JsonLdProcessor {
// merge in all reversed properties
if(property_exists($rval, '@reverse')) {
$reverse_map = $rval->{'@reverse'};
}
else {
} else {
$reverse_map = null;
}
foreach($expanded_value as $property => $items) {
@ -2425,12 +2360,11 @@ class JsonLdProcessor {
$container = self::getContextValue($active_ctx, $key, '@container');
// handle language map container (skip if value is not an object)
if($container === '@language' && is_object($value)) {
// handle language map container (skip if value is not an object)
$expanded_value = $this->_expandLanguageMap($value);
}
// handle index container (skip if value is not an object)
else if($container === '@index' && is_object($value)) {
} else if($container === '@index' && is_object($value)) {
// handle index container (skip if value is not an object)
$expanded_value = array();
$value_keys = array_keys((array)$value);
sort($value_keys);
@ -2445,8 +2379,7 @@ class JsonLdProcessor {
$expanded_value[] = $item;
}
}
}
else {
} else {
// recurse into @list or @set
$is_list = ($expanded_property === '@list');
if($is_list || $expanded_property === '@set') {
@ -2461,8 +2394,7 @@ class JsonLdProcessor {
'Invalid JSON-LD syntax; lists of lists are not permitted.',
'jsonld.SyntaxError', 'list of lists');
}
}
else {
} else {
// recursively expand value with key as new active property
$expanded_value = $this->_expand(
$active_ctx, $key, $value, $options, false);
@ -2550,16 +2482,14 @@ class JsonLdProcessor {
// drop null @values
if($rval->{'@value'} === null) {
$rval = null;
}
// if @language is present, @value must be a string
else if(property_exists($rval, '@language') &&
} else if(property_exists($rval, '@language') &&
!is_string($rval->{'@value'})) {
// if @language is present, @value must be a string
throw new JsonLdException(
'Invalid JSON-LD syntax; only strings may be language-tagged.',
'jsonld.SyntaxError', 'invalid language-tagged value',
array('element' => $rval));
}
else if(property_exists($rval, '@type') &&
} else if(property_exists($rval, '@type') &&
(!self::_isAbsoluteIri($rval->{'@type'}) ||
strpos($rval->{'@type'}, '_:') === 0)) {
throw new JsonLdException(
@ -2568,14 +2498,12 @@ class JsonLdProcessor {
'of "@type".', 'jsonld.SyntaxError', 'invalid typed value',
array('element' => $rval));
}
}
// convert @type to an array
else if(property_exists($rval, '@type') && !is_array($rval->{'@type'})) {
} else if(property_exists($rval, '@type') && !is_array($rval->{'@type'})) {
// convert @type to an array
$rval->{'@type'} = array($rval->{'@type'});
}
// handle @set and @list
else if(property_exists($rval, '@set') ||
} else if(property_exists($rval, '@set') ||
property_exists($rval, '@list')) {
// handle @set and @list
if($count > 1 && !($count === 2 && property_exists($rval, '@index'))) {
throw new JsonLdException(
'Invalid JSON-LD syntax; if an element has the property "@set" ' .
@ -2589,9 +2517,8 @@ class JsonLdProcessor {
$keys = array_keys((array)$rval);
$count = count($keys);
}
}
// drop objects with only @language
else if($count === 1 && property_exists($rval, '@language')) {
} else if($count === 1 && property_exists($rval, '@language')) {
// drop objects with only @language
$rval = null;
}
@ -2717,8 +2644,7 @@ class JsonLdProcessor {
if(strpos($graph_name, '_:') === 0) {
$quad->name = (object)array(
'type' => 'blank node', 'value' => $graph_name);
}
else {
} else {
$quad->name = (object)array(
'type' => 'IRI', 'value' => $graph_name);
}
@ -2731,8 +2657,7 @@ class JsonLdProcessor {
$id = $quad->{$attr}->value;
if(property_exists($bnodes, $id)) {
$bnodes->{$id}->quads[] = $quad;
}
else {
} else {
$bnodes->{$id} = (object)array('quads' => array($quad));
}
}
@ -2760,14 +2685,12 @@ class JsonLdProcessor {
if(property_exists($duplicates, $hash)) {
$duplicates->{$hash}[] = $bnode;
$nextUnnamed[] = $bnode;
}
else if(property_exists($unique, $hash)) {
} else if(property_exists($unique, $hash)) {
$duplicates->{$hash} = array($unique->{$hash}, $bnode);
$nextUnnamed[] = $unique->{$hash};
$nextUnnamed[] = $bnode;
unset($unique->{$hash});
}
else {
} else {
$unique->{$hash} = $bnode;
}
}
@ -3087,14 +3010,12 @@ class JsonLdProcessor {
$base = $ctx->{'@base'};
if($base === null) {
$base = null;
}
else if(!is_string($base)) {
} else if(!is_string($base)) {
throw new JsonLdException(
'Invalid JSON-LD syntax; the value of "@base" in a ' .
'@context must be a string or null.',
'jsonld.SyntaxError', 'invalid base IRI', array('context' => $ctx));
}
else if($base !== '' && !self::_isAbsoluteIri($base)) {
} else if($base !== '' && !self::_isAbsoluteIri($base)) {
throw new JsonLdException(
'Invalid JSON-LD syntax; the value of "@base" in a ' .
'@context must be an absolute IRI or the empty string.',
@ -3112,22 +3033,19 @@ class JsonLdProcessor {
$value = $ctx->{'@vocab'};
if($value === null) {
unset($rval->{'@vocab'});
}
else if(!is_string($value)) {
} else if(!is_string($value)) {
throw new JsonLdException(
'Invalid JSON-LD syntax; the value of "@vocab" in a ' .
'@context must be a string or null.',
'jsonld.SyntaxError', 'invalid vocab mapping',
array('context' => $ctx));
}
else if(!self::_isAbsoluteIri($value)) {
} else if(!self::_isAbsoluteIri($value)) {
throw new JsonLdException(
'Invalid JSON-LD syntax; the value of "@vocab" in a ' .
'@context must be an absolute IRI.',
'jsonld.SyntaxError', 'invalid vocab mapping',
array('context' => $ctx));
}
else {
} else {
$rval->{'@vocab'} = $value;
}
$defined->{'@vocab'} = true;
@ -3138,15 +3056,13 @@ class JsonLdProcessor {
$value = $ctx->{'@language'};
if($value === null) {
unset($rval->{'@language'});
}
else if(!is_string($value)) {
} else if(!is_string($value)) {
throw new JsonLdException(
'Invalid JSON-LD syntax; the value of "@language" in a ' .
'@context must be a string or null.',
'jsonld.SyntaxError', 'invalid default language',
array('context' => $ctx));
}
else {
} else {
$rval->{'@language'} = strtolower($value);
}
$defined->{'@language'} = true;
@ -3209,12 +3125,10 @@ class JsonLdProcessor {
for($i = 0; $i < $length; ++$i) {
$element[$i] = $this->_labelBlankNodes($namer, $element[$i]);
}
}
else if(self::_isList($element)) {
} else if(self::_isList($element)) {
$element->{'@list'} = $this->_labelBlankNodes(
$namer, $element->{'@list'});
}
else if(is_object($element)) {
} else if(is_object($element)) {
// rename blank node
if(self::_isBlankNode($element)) {
$name = null;
@ -3258,8 +3172,7 @@ class JsonLdProcessor {
$active_ctx, $active_property, array('vocab' => true));
if($expanded_property === '@id') {
return $this->_expandIri($active_ctx, $value, array('base' => true));
}
else if($expanded_property === '@type') {
} else if($expanded_property === '@type') {
return $this->_expandIri(
$active_ctx, $value, array('vocab' => true, 'base' => true));
}
@ -3289,9 +3202,8 @@ class JsonLdProcessor {
// other type
if($type !== null) {
$rval->{'@type'} = $type;
}
// check for language tagging for strings
else if(is_string($value)) {
} else if(is_string($value)) {
// check for language tagging for strings
$language = self::getContextValue(
$active_ctx, $active_property, '@language');
if($language !== null) {
@ -3328,8 +3240,7 @@ class JsonLdProcessor {
$items = $node->{$property};
if($property === '@type') {
$property = self::RDF_TYPE;
}
else if(self::_isKeyword($property)) {
} else if(self::_isKeyword($property)) {
continue;
}
@ -3356,13 +3267,12 @@ class JsonLdProcessor {
continue;
}
// convert @list to triples
if(self::_isList($item)) {
// convert @list to triples
$this->_listToRDF(
$item->{'@list'}, $namer, $subject, $predicate, $rval);
}
// convert value or node object to triple
else {
} else {
// convert value or node object to triple
$object = $this->_objectToRDF($item);
// skip null objects (they are relative IRIs)
if($object) {
@ -3441,29 +3351,24 @@ class JsonLdProcessor {
if(is_bool($value)) {
$object->value = ($value ? 'true' : 'false');
$object->datatype = $datatype ? $datatype : self::XSD_BOOLEAN;
}
else if(is_double($value) || $datatype == self::XSD_DOUBLE) {
} else if(is_double($value) || $datatype == self::XSD_DOUBLE) {
// canonical double representation
$object->value = preg_replace(
'/(\d)0*E\+?/', '$1E', sprintf('%1.15E', $value));
$object->datatype = $datatype ? $datatype : self::XSD_DOUBLE;
}
else if(is_integer($value)) {
} else if(is_integer($value)) {
$object->value = strval($value);
$object->datatype = $datatype ? $datatype : self::XSD_INTEGER;
}
else if(property_exists($item, '@language')) {
} else if(property_exists($item, '@language')) {
$object->value = $value;
$object->datatype = $datatype ? $datatype : self::RDF_LANGSTRING;
$object->language = $item->{'@language'};
}
else {
} else {
$object->value = $value;
$object->datatype = $datatype ? $datatype : self::XSD_STRING;
}
}
// convert string/node object to RDF
else {
} else {
// convert string/node object to RDF
$id = is_object($item) ? $item->{'@id'} : $item;
$object->type = (strpos($id, '_:') === 0) ? 'blank node' : 'IRI';
$object->value = $id;
@ -3494,31 +3399,27 @@ class JsonLdProcessor {
// convert literal object to JSON-LD
$rval = (object)array('@value' => $o->value);
// add language
if(property_exists($o, 'language')) {
// add language
$rval->{'@language'} = $o->language;
}
// add datatype
else {
} else {
// add datatype
$type = $o->datatype;
// use native types for certain xsd types
if($use_native_types) {
if($type === self::XSD_BOOLEAN) {
if($rval->{'@value'} === 'true') {
$rval->{'@value'} = true;
}
else if($rval->{'@value'} === 'false') {
} else if($rval->{'@value'} === 'false') {
$rval->{'@value'} = false;
}
}
else if(is_numeric($rval->{'@value'})) {
} else if(is_numeric($rval->{'@value'})) {
if($type === self::XSD_INTEGER) {
$i = intval($rval->{'@value'});
if(strval($i) === $rval->{'@value'}) {
$rval->{'@value'} = $i;
}
}
else if($type === self::XSD_DOUBLE) {
} else if($type === self::XSD_DOUBLE) {
$rval->{'@value'} = doubleval($rval->{'@value'});
}
}
@ -3528,8 +3429,7 @@ class JsonLdProcessor {
self::XSD_STRING))) {
$rval->{'@type'} = $type;
}
}
else if($type !== self::XSD_STRING) {
} else if($type !== self::XSD_STRING) {
$rval->{'@type'} = $type;
}
}
@ -3615,15 +3515,13 @@ class JsonLdProcessor {
if(!property_exists($subjects, $name)) {
if($name === '') {
$subjects->{'"'} = new stdClass();
}
else {
} else {
$subjects->{$name} = new stdClass();
}
}
if($name === '') {
$subject = $subjects->{'"'};
}
else {
} else {
$subject = $subjects->{$name};
}
$subject->{'@id'} = $name;
@ -3717,9 +3615,8 @@ class JsonLdProcessor {
$subject, $property, (object)array('@id' => $id),
array('propertyIsArray' => true, 'allowDuplicate' => false));
$this->_createNodeMap($o, $graphs, $graph, $namer, $id, null);
}
// handle @list
else if(self::_isList($o)) {
} else if(self::_isList($o)) {
// handle @list
$_list = new ArrayObject();
$this->_createNodeMap(
$o->{'@list'}, $graphs, $graph, $namer, $name, $_list);
@ -3727,9 +3624,8 @@ class JsonLdProcessor {
self::addValue(
$subject, $property, $o,
array('propertyIsArray' => true, 'allowDuplicate' => false));
}
// handle @value
else {
} else {
// handle @value
$this->_createNodeMap($o, $graphs, $graph, $namer, $name, null);
self::addValue(
$subject, $property, $o,
@ -3794,10 +3690,9 @@ class JsonLdProcessor {
break;
}
}
}
// existing embed's parent is an object
else if(self::hasValue(
} else if(self::hasValue(
$existing->parent, $existing->property, $output)) {
// existing embed's parent is an object
$embed_on = true;
}
@ -3810,8 +3705,7 @@ class JsonLdProcessor {
// not embedding, add output without any other properties
if(!$embed_on) {
$this->_addFrameOutput($state, $parent, $property, $output);
}
else {
} else {
// add embed meta info
$state->embeds->{$id} = $embed;
@ -3846,14 +3740,13 @@ class JsonLdProcessor {
// add list objects
$src = $o->{'@list'};
foreach($src as $o) {
// recurse into subject reference
if(self::_isSubjectReference($o)) {
// recurse into subject reference
$this->_matchFrame(
$state, array($o->{'@id'}), $frame->{$prop}[0]->{'@list'},
$list, '@list');
}
// include other values automatically
else {
} else {
// include other values automatically
$this->_addFrameOutput(
$state, $list, '@list', self::copy($o));
}
@ -3861,13 +3754,12 @@ class JsonLdProcessor {
continue;
}
// recurse into subject reference
if(self::_isSubjectReference($o)) {
// recurse into subject reference
$this->_matchFrame(
$state, array($o->{'@id'}), $frame->{$prop}, $output, $prop);
}
// include other values automatically
else {
} else {
// include other values automatically
$this->_addFrameOutput($state, $output, $prop, self::copy($o));
}
}
@ -4031,9 +3923,8 @@ class JsonLdProcessor {
}
}
$this->_addFrameOutput($state, $output, $property, $o);
}
// copy non-subject value
else {
} else {
// copy non-subject value
$this->_addFrameOutput($state, $output, $property, self::copy($o));
}
}
@ -4063,8 +3954,7 @@ class JsonLdProcessor {
break;
}
}
}
else {
} else {
// replace subject with reference
$use_array = is_array($embed->parent->{$property});
self::removeValue($embed->parent, $property, $subject,
@ -4101,8 +3991,7 @@ class JsonLdProcessor {
if(is_object($parent) && !($parent instanceof ArrayObject)) {
self::addValue(
$parent, $property, $output, array('propertyIsArray' => true));
}
else {
} else {
$parent[] = $output;
}
}
@ -4128,8 +4017,7 @@ class JsonLdProcessor {
}
}
$input = $output;
}
else if(is_object($input)) {
} else if(is_object($input)) {
// remove @preserve
if(property_exists($input, '@preserve')) {
if($input->{'@preserve'} === '@null') {
@ -4253,8 +4141,7 @@ class JsonLdProcessor {
if($bnode !== null) {
// normal property
$direction = 'p';
}
else {
} else {
$bnode = $this->_getAdjacentBlankNodeName($quad->object, $id);
if($bnode !== null) {
// reverse property
@ -4265,11 +4152,9 @@ class JsonLdProcessor {
// get bnode name (try canonical, path, then hash)
if($namer->isNamed($bnode)) {
$name = $namer->getName($bnode);
}
else if($path_namer->isNamed($bnode)) {
} else if($path_namer->isNamed($bnode)) {
$name = $path_namer->getName($bnode);
}
else {
} else {
$name = $this->_hashQuads($bnode, $bnodes, $namer);
}
@ -4283,8 +4168,7 @@ class JsonLdProcessor {
// add bnode to hash group
if(property_exists($groups, $group_hash)) {
$groups->{$group_hash}[] = $bnode;
}
else {
} else {
$groups->{$group_hash} = array($bnode);
}
}
@ -4313,8 +4197,7 @@ class JsonLdProcessor {
// use canonical name if available
if($namer->isNamed($bnode)) {
$path .= $namer->getName($bnode);
}
else {
} else {
// recurse if bnode isn't named in the path yet
if(!$path_namer_copy->isNamed($bnode)) {
$recurse[] = $bnode;
@ -4395,10 +4278,10 @@ class JsonLdProcessor {
if($len_a < $len_b) {
return -1;
}
else if($len_b < $len_a) {
if($len_b < $len_a) {
return 1;
}
else if($a === $b) {
if($a === $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
@ -4443,13 +4326,11 @@ class JsonLdProcessor {
$active_ctx->mappings->{$term}->{'@id'} === $value->{'@id'}) {
// prefer @vocab
array_push($prefs, '@vocab', '@id');
}
else {
} else {
// prefer @id
array_push($prefs, '@id', '@vocab');
}
}
else {
} else {
$prefs[] = $type_or_language_value;
}
$prefs[] = '@none';
@ -4500,8 +4381,7 @@ class JsonLdProcessor {
// term is a keyword, default vocab to true
if(self::_isKeyword($iri)) {
$relative_to['vocab'] = true;
}
else if(!isset($relative_to['vocab'])) {
} else if(!isset($relative_to['vocab'])) {
$relative_to['vocab'] = false;
}
@ -4527,9 +4407,8 @@ class JsonLdProcessor {
$type_or_language = '@type';
$type_or_language_value = '@reverse';
$containers[] = '@set';
}
// choose the most specific term that works for all elements in @list
else if(self::_isList($value)) {
} else if(self::_isList($value)) {
// choose the most specific term that works for all elements in @list
// only select @list containers if @index is NOT in value
if(!property_exists($value, '@index')) {
$containers[] = '@list';
@ -4543,29 +4422,24 @@ class JsonLdProcessor {
if(self::_isValue($item)) {
if(property_exists($item, '@language')) {
$item_language = $item->{'@language'};
}
else if(property_exists($item, '@type')) {
} else if(property_exists($item, '@type')) {
$item_type = $item->{'@type'};
}
// plain literal
else {
} else {
// plain literal
$item_language = '@null';
}
}
else {
} else {
$item_type = '@id';
}
if($common_language === null) {
$common_language = $item_language;
}
else if($item_language !== $common_language &&
} else if($item_language !== $common_language &&
self::_isValue($item)) {
$common_language = '@none';
}
if($common_type === null) {
$common_type = $item_type;
}
else if($item_type !== $common_type) {
} else if($item_type !== $common_type) {
$common_type = '@none';
}
// there are different languages and types in the list, so choose
@ -4583,24 +4457,20 @@ class JsonLdProcessor {
if($common_type !== '@none') {
$type_or_language = '@type';
$type_or_language_value = $common_type;
}
else {
} else {
$type_or_language_value = $common_language;
}
}
else {
} else {
if(self::_isValue($value)) {
if(property_exists($value, '@language') &&
!property_exists($value, '@index')) {
$containers[] = '@language';
$type_or_language_value = $value->{'@language'};
}
else if(property_exists($value, '@type')) {
} else if(property_exists($value, '@type')) {
$type_or_language = '@type';
$type_or_language_value = $value->{'@type'};
}
}
else {
} else {
$type_or_language = '@type';
$type_or_language_value = '@id';
}
@ -4743,9 +4613,8 @@ class JsonLdProcessor {
if(property_exists($value, '@type')) {
$rval->{$this->_compactIri($active_ctx, '@type')} = $this->_compactIri(
$active_ctx, $value->{'@type'}, null, array('vocab' => true));
}
// alias @language
else if(property_exists($value, '@language')) {
} else if(property_exists($value, '@language')) {
// alias @language
$rval->{$this->_compactIri($active_ctx, '@language')} =
$value->{'@language'};
}
@ -4868,8 +4737,7 @@ class JsonLdProcessor {
}
$mapping->{'@id'} = $id;
$mapping->reverse = true;
}
else if(property_exists($value, '@id')) {
} else if(property_exists($value, '@id')) {
$id = $value->{'@id'};
if(!is_string($id)) {
throw new JsonLdException(
@ -4904,19 +4772,17 @@ class JsonLdProcessor {
$active_ctx, $local_ctx, $prefix, $defined);
}
// set @id based on prefix parent
if(property_exists($active_ctx->mappings, $prefix) &&
$active_ctx->mappings->{$prefix}) {
// set @id based on prefix parent
$suffix = substr($term, $colon + 1);
$mapping->{'@id'} = $active_ctx->mappings->{$prefix}->{'@id'} .
$suffix;
}
// term is an absolute IRI
else {
} else {
// term is an absolute IRI
$mapping->{'@id'} = $term;
}
}
else {
} else {
// non-IRIs *must* define @ids if @vocab is not available
if(!property_exists($active_ctx, '@vocab')) {
throw new JsonLdException(
@ -5117,8 +4983,7 @@ class JsonLdProcessor {
foreach($input as $e) {
$this->_findContextUrls($e, $urls, $replace, $base);
}
}
else if(is_object($input)) {
} else if(is_object($input)) {
foreach($input as $k => &$v) {
if($k !== '@context') {
$this->_findContextUrls($v, $urls, $replace, $base);
@ -5139,27 +5004,23 @@ class JsonLdProcessor {
array_splice($v, $i, 1, $ctx);
$i += count($ctx);
$length += count($ctx);
}
else {
} else {
$v[$i] = $ctx;
}
}
// @context URL found
else if(!property_exists($urls, $url)) {
} else if(!property_exists($urls, $url)) {
// @context URL found
$urls->{$url} = false;
}
}
}
}
// string @context
else if(is_string($v)) {
} else if(is_string($v)) {
// string @context
$v = jsonld_prepend_base($base, $v);
// replace w/@context if requested
if($replace) {
$input->{$k} = $urls->{$v};
}
// @context URL found
else if(!property_exists($urls, $v)) {
} else if(!property_exists($urls, $v)) {
// @context URL found
$urls->{$v} = false;
}
}
@ -5231,8 +5092,7 @@ class JsonLdProcessor {
if(is_string($ctx)) {
try {
$ctx = self::_parse_json($ctx);
}
catch(Exception $e) {
} catch(Exception $e) {
throw new JsonLdException(
'Could not parse JSON from URL.',
'jsonld.ParseError', 'loading remote context failed',
@ -5250,8 +5110,7 @@ class JsonLdProcessor {
// use empty context if no @context key is present
if(!property_exists($ctx, '@context')) {
$ctx = (object)array('@context' => new stdClass());
}
else {
} else {
$ctx = (object)array('@context' => $ctx->{'@context'});
}
@ -5321,8 +5180,7 @@ class JsonLdProcessor {
// add term selection where it applies
if(property_exists($mapping, '@container')) {
$container = $mapping->{'@container'};
}
else {
} else {
$container = '@none';
}
@ -5344,28 +5202,25 @@ class JsonLdProcessor {
}
$entry = $container_map->{$container};
// term is preferred for values using @reverse
if($mapping->reverse) {
// term is preferred for values using @reverse
$this->_addPreferredTerm(
$mapping, $term, $entry->{'@type'}, '@reverse');
}
// term is preferred for values using specific type
else if(property_exists($mapping, '@type')) {
} else if(property_exists($mapping, '@type')) {
// term is preferred for values using specific type
$this->_addPreferredTerm(
$mapping, $term, $entry->{'@type'}, $mapping->{'@type'});
}
// term is preferred for values using specific language
else if(property_exists($mapping, '@language')) {
} else if(property_exists($mapping, '@language')) {
// term is preferred for values using specific language
$language = $mapping->{'@language'};
if($language === null) {
$language = '@null';
}
$this->_addPreferredTerm(
$mapping, $term, $entry->{'@language'}, $language);
}
// term is preferred for values w/default language or no type and
// no language
else {
} else {
// term is preferred for values w/default language or no type and
// no language
// add an entry for the default language
$this->_addPreferredTerm(
$mapping, $term, $entry->{'@language'}, $default_language);
@ -5576,8 +5431,7 @@ class JsonLdProcessor {
if(is_object($v)) {
if(property_exists($v, '@id')) {
$rval = (strpos($v->{'@id'}, '_:') === 0);
}
else {
} else {
$rval = (count(get_object_vars($v)) === 0 ||
!(property_exists($v, '@value') ||
property_exists($v, '@set') ||
@ -5831,8 +5685,7 @@ class Permutator {
// no more permutations
if($k === null) {
$this->done = true;
}
else {
} else {
// swap k and the element it is looking at
$swap = $this->left->{$k} ? $pos - 1 : $pos + 1;
$this->list[$pos] = $this->list[$swap];