Only compact to terms when relative flag is set.

This commit is contained in:
Dave Longley 2013-02-14 13:34:28 -05:00
parent 12e18a8384
commit 6e7f7a3b9a

View file

@ -3718,15 +3718,14 @@ class JsonLdProcessor {
return (count($aliases) > 0) ? $aliases[0] : $iri; return (count($aliases) > 0) ? $aliases[0] : $iri;
} }
// use inverse context to pick a term // use inverse context to pick a term if iri is relative to vocab
$inverse_ctx = $this->_getInverseContext($active_ctx); if(isset($relative_to['vocab']) && $relative_to['vocab'] &&
property_exists($this->_getInverseContext($active_ctx), $iri)) {
$default_language = '@none';
if(property_exists($active_ctx, '@language')) {
$default_language = $active_ctx->{'@language'};
}
$default_language = '@none';
if(property_exists($active_ctx, '@language')) {
$default_language = $active_ctx->{'@language'};
}
if(property_exists($inverse_ctx, $iri)) {
// prefer @index if available in value // prefer @index if available in value
$containers = array(); $containers = array();
if(is_object($value) && property_exists($value, '@index')) { if(is_object($value) && property_exists($value, '@index')) {
@ -3961,7 +3960,8 @@ class JsonLdProcessor {
$expanded_property = $this->_expandIri($active_ctx, $active_property); $expanded_property = $this->_expandIri($active_ctx, $active_property);
$type = self::getContextValue($active_ctx, $active_property, '@type'); $type = self::getContextValue($active_ctx, $active_property, '@type');
$term = $this->_compactIri( $term = $this->_compactIri(
$active_ctx, $value->{'@id'}, null, array('base' => true)); $active_ctx, $value->{'@id'}, null,
array('vocab' => ($type === '@vocab'), 'base' => true));
// compact to scalar // compact to scalar
if($type === '@id' || $type === '@vocab' || if($type === '@id' || $type === '@vocab' ||