forked from friendica/php-json-ld
Removed obsolete use of rdf:type.
This commit is contained in:
parent
fb11cb945f
commit
a024be9607
34
jsonld.php
34
jsonld.php
|
@ -6,8 +6,6 @@
|
||||||
*
|
*
|
||||||
* Copyright (c) 2011 Digital Bazaar, Inc. All rights reserved.
|
* Copyright (c) 2011 Digital Bazaar, Inc. All rights reserved.
|
||||||
*/
|
*/
|
||||||
define('JSONLD_RDF', 'http://www.w3.org/1999/02/22-rdf-syntax-ns#');
|
|
||||||
define('JSONLD_RDF_TYPE', JSONLD_RDF . 'type');
|
|
||||||
define('JSONLD_XSD', 'http://www.w3.org/2001/XMLSchema#');
|
define('JSONLD_XSD', 'http://www.w3.org/2001/XMLSchema#');
|
||||||
define('JSONLD_XSD_BOOLEAN', JSONLD_XSD . 'boolean');
|
define('JSONLD_XSD_BOOLEAN', JSONLD_XSD . 'boolean');
|
||||||
define('JSONLD_XSD_DOUBLE', JSONLD_XSD . 'double');
|
define('JSONLD_XSD_DOUBLE', JSONLD_XSD . 'double');
|
||||||
|
@ -534,8 +532,8 @@ function _compactIri($ctx, $iri, $usedCtx)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// term not found, if term is rdf type, use built-in keyword
|
// term not found, if term is @type, use keyword
|
||||||
if($rval === null and $iri === JSONLD_RDF_TYPE)
|
if($rval === null and $iri === '@type')
|
||||||
{
|
{
|
||||||
$rval = _getKeywords($ctx)->{'@type'};
|
$rval = _getKeywords($ctx)->{'@type'};
|
||||||
}
|
}
|
||||||
|
@ -625,15 +623,15 @@ function _expandTerm($ctx, $term, $usedCtx)
|
||||||
$usedCtx->$term = $rval;
|
$usedCtx->$term = $rval;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 3. The property is the special-case subject.
|
// 3. The property is the special-case @subject.
|
||||||
else if($term === $keywords->{'@subject'})
|
else if($term === $keywords->{'@subject'})
|
||||||
{
|
{
|
||||||
$rval = $keywords->{'@subject'};
|
$rval = '@subject';
|
||||||
}
|
}
|
||||||
// 4. The property is the special-case rdf type.
|
// 4. The property is the special-case @type.
|
||||||
else if($term === $keywords->{'@type'})
|
else if($term === $keywords->{'@type'})
|
||||||
{
|
{
|
||||||
$rval = JSONLD_RDF_TYPE;
|
$rval = '@type';
|
||||||
}
|
}
|
||||||
// 5. The property is a relative IRI, prepend the default vocab.
|
// 5. The property is a relative IRI, prepend the default vocab.
|
||||||
else
|
else
|
||||||
|
@ -1692,7 +1690,7 @@ class JsonLdProcessor
|
||||||
$p = _expandTerm($ctx, $property, null);
|
$p = _expandTerm($ctx, $property, null);
|
||||||
|
|
||||||
// built-in type coercion JSON-LD-isms
|
// built-in type coercion JSON-LD-isms
|
||||||
if($p === '@subject' or $p === JSONLD_RDF_TYPE)
|
if($p === '@subject' or $p === '@type')
|
||||||
{
|
{
|
||||||
$rval = '@iri';
|
$rval = '@iri';
|
||||||
}
|
}
|
||||||
|
@ -2543,15 +2541,13 @@ function _isType($input, $frame)
|
||||||
$rval = false;
|
$rval = false;
|
||||||
|
|
||||||
// check if type(s) are specified in frame and input
|
// check if type(s) are specified in frame and input
|
||||||
$type = JSONLD_RDF_TYPE;
|
$type = '@type';
|
||||||
if(property_exists($frame, JSONLD_RDF_TYPE) and
|
if(property_exists($frame, $type) and
|
||||||
is_object($input) and property_exists($input, '@subject') and
|
is_object($input) and property_exists($input, '@subject') and
|
||||||
property_exists($input, JSONLD_RDF_TYPE))
|
property_exists($input, $type))
|
||||||
{
|
{
|
||||||
$tmp = is_array($input->{JSONLD_RDF_TYPE}) ?
|
$tmp = is_array($input->$type) ? $input->$type : array($input->$type);
|
||||||
$input->{JSONLD_RDF_TYPE} : array($input->{JSONLD_RDF_TYPE});
|
$types = is_array($frame->$type) ? $frame->$type : array($frame->$type);
|
||||||
$types = is_array($frame->$type) ?
|
|
||||||
$frame->{JSONLD_RDF_TYPE} : array($frame->{JSONLD_RDF_TYPE});
|
|
||||||
$length = count($types);
|
$length = count($types);
|
||||||
for($t = 0; $t < $length and !$rval; ++$t)
|
for($t = 0; $t < $length and !$rval; ++$t)
|
||||||
{
|
{
|
||||||
|
@ -2595,7 +2591,7 @@ function _isDuckType($input, $frame)
|
||||||
$rval = false;
|
$rval = false;
|
||||||
|
|
||||||
// frame must not have a specific type
|
// frame must not have a specific type
|
||||||
if(!property_exists($frame, JSONLD_RDF_TYPE))
|
if(!property_exists($frame, '@type'))
|
||||||
{
|
{
|
||||||
// get frame properties that must exist on input
|
// get frame properties that must exist on input
|
||||||
$props = array_filter(array_keys((array)$frame), '_filterNonKeywords');
|
$props = array_filter(array_keys((array)$frame), '_filterNonKeywords');
|
||||||
|
@ -2740,7 +2736,7 @@ function _subframe(
|
||||||
foreach($vars as $key => $v)
|
foreach($vars as $key => $v)
|
||||||
{
|
{
|
||||||
// skip keywords and type
|
// skip keywords and type
|
||||||
if(strpos($key, '@') !== 0 and $key !== JSONLD_RDF_TYPE)
|
if(strpos($key, '@') !== 0 and $key !== '@type')
|
||||||
{
|
{
|
||||||
// get the subframe if available
|
// get the subframe if available
|
||||||
if(property_exists($frame, $key))
|
if(property_exists($frame, $key))
|
||||||
|
@ -2778,7 +2774,7 @@ function _subframe(
|
||||||
foreach($frame as $key => $f)
|
foreach($frame as $key => $f)
|
||||||
{
|
{
|
||||||
// skip keywords, type query, and non-null keys in value
|
// skip keywords, type query, and non-null keys in value
|
||||||
if(strpos($key, '@') !== 0 and $key !== JSONLD_RDF_TYPE and
|
if(strpos($key, '@') !== 0 and $key !== '@type' and
|
||||||
(!property_exists($value, $key) || $value->{$key} === null))
|
(!property_exists($value, $key) || $value->{$key} === null))
|
||||||
{
|
{
|
||||||
// add empty array to value
|
// add empty array to value
|
||||||
|
|
Loading…
Reference in a new issue