Joining Teleconferences
All JSON-LD teleconferences are open to the public. Anyone may join and participate in the discussion. All teleconferences are announced at least 24 hours in advance on the JSON-LD mailing list.
- Meetings: generally every other week
- Time: 1600 UTC, 8am San Francisco, 11am Boston, 4pm London
- Where: WebEx
- Meeting number (access code):
- 629 409 841
- Meeting password:
- framing
- Join by phone:
- 1-877-668-4493 Call-in toll-free number (US/Canada)
- 1-650-479-3208 Call-in toll number (US/Canada)
- IRC: irc://freenode.net/#json-ld (join via WebIRC)
- Duration: 60 minutes
Make sure you have a good headset with a microphone as any background noise is distracting to others during the call. If there is excessive noise on your connection, you will be muted until you need to speak. Make sure you join the IRC channel as links and code examples are usually shared over the chat channel.
Topics
- Announcements?
- Open PRs
- #628 Limit the use of `@none` in language and index maps to 1.1 only
- #629 Remove the `pruneBlankNodeIdentifiers` option for framing
- Issues to Defer
- Finishing up work and final reports
Resolutions
- Accept #628
- Accept #629
- Defer #246, #333, #397, #491, #547, #583, #584, #590, #595, #598 ; Do not defer #581
Topics
- Charter
- pull requests
- issue #610 Allow @vocab: @id to make term expansion relative to resource's @id
- issue #604 @base is (still to be) ignored in remote contexts
Resolutions
- Allow 6 weeks for the AC review
- accept #597 and #606 immediately. Provisiounally accept #603 and #609 pending review, and in the case of #603, explicity feedback from Kingsley
- resolve as won’t fix, with brief discussion on merits of blank nodes
- make @base invalid within scoped contexts
- resolve #604 as won’t fix
Topics
- Charter
- Pull Requests
- Issues
- #488 Properties can not be relative IRI
- #333 Support JSON values that aren’t mapped
- #491 define how to specify the json-ld profile in a request
- #547 Content addressable context
Resolutions
- forward charter to W3C Management for consideration
- accept PR #94 and #593
- adopt @vocab: @base gramar, and use RFC3986 resolution in this case.
- adopt solution defined in https://github.com/json-ld/json-ld.org/issues/333#issuecomment-366766394 as an interum solution, with final selection of the datatype to a future WG.
Topics
- Announcements: new playgrounds!
- Updates on the Charter
- https://github.com/json-ld/json-ld.org/pull/487
- https://github.com/json-ld/json-ld.org/pull/573
- https://github.com/json-ld/json-ld.org/pull/573
- https://github.com/json-ld/json-ld.org/pull/574
- https://github.com/json-ld/json-ld.org/pull/578
- https://github.com/json-ld/json-ld.org/pull/582
Resolutions
- Have one playground that handles both 1.0 and 1.1 ; explore ways to make the processing mode as user friendly as possible
- merge #487
- Merge #573
- (process) Use github milestones to manage PRs (to try and merge) and Issues (to discuss)
- Don't merge #582, resolve #477 as won't fix (with rationales from the call)
Topics
- WG Charter
- issue #569 maps with no keys
Resolutions
- Ivan to ask W3M about JSON-LD working group, as okay to send notice to the AC
- Use public-linked-json for the discussions of the charter
- The scope and timing as laid out in the draft charter covers the work appropriately
- Accept PR #569, and address concerns in new issues
Topics
- Introductions
- Community Group details and process
- Possible road to Recommendation?
- Review current 1.1 work
- JSON-LD Test Suite
Resolutions
- same call every other week at this time.
- accept issue 560 pending lanthaler approval
Topics
- Additions to @container
- ID Maps
- Nested Properties
- Scoped Contexts
- Nested Properties
- Cached Contexts
- Next Steps
Topics
- Tooling for JSON-LD
- Context at schema.org
- Processing of relative IRIs without base
- Subtree split to create a repository containing just the JSON-LD tests
Topics
- Recommendation Publication Schedule
- Future work of CG
- Extension mechanisms for JSON-LD
Resolutions
- Propose that the RDF WG petition the Director to take JSON-LD to Recommendation immediately after the publication of the Proposed Recommendations for the RDF 1.1 work.
Topics
- Bug in @reverse algorithm
- Proposed Recommendation Plan
Resolutions
- Apply the fix to the @reverse algorithm as detailed by Markus and merge the fix into the JSON-LD Algorithms prior to Proposed Recommendation publication.
Topics
- Plan for Proposed Recommendation
- How to refer to Promises
- Does non-normative API require another LC?
- Removing at risk markers from JSON-LD specs.
- Updated Implementation Report
- Candidate Recommendation Period
Resolutions
- Make the JSON-LD WebIDL API non-normative and refer to the Promises specification written by Domenic Denicola and proceed straight to Proposed Recommendation.
- Allow blank nodes to be used as graph name or property.
- Support conversion of lists of lists to list objects by preserving the blank node head of the inner list. This resolves feature-at-risk #4 in the JSON-LD API specification.
- Make an editorial update to the JSON-LD specification to clarify that the @type keyword is context sensitive and make its various usages more clear in the specification. This addresses issue at risk marker #9 in the JSON-LD syntax specification.
- Keep the @base: null feature in the JSON-LD specification as it is defined in the Candidate Recommendation specification.
- When processing free-floating nodes, if there is an @index keyword in the node, it is not a free-floating node.
- The Candidate Recommendation period for JSON-LD is closed as of October 15th 2013.
Topics
- OData / JSON-LD Alignment
- Implementation Report
- Plan for Proposed Recommendation
- rdflib Implementation Concerns
Topics
- Candidate Recommendation Feedback
- Spec Bug with useRdfType flag
- OData Alignment
- Updating the Implementation Report
- W3C Hosted Version of Test Suite
- Plan for Proposed Recommendation
Resolutions
- JSON-LD 1.0 and the API will remain in Candidate Rec for an additional week to fix a bug in the spec related to the useRdfType flag and add an additional test. After the spec text has been fixed, and a test created, implementers will be required to file new implementation reports. Once they have done so, the specs will exit CR.
Topics
- Update from Vikash on GSoC
- JSON-LD Candidate REC Transition Discussion
- Testing API Options
- Test manifest/vocabulary updates
- Testing Freeze Date
Topics
- @base and NQuad output
- Vikash update for GSoC
- Decision to go CR or PR
Resolutions
- Add an issue marker for the "@base": null feature in the JSON-LD API CR specification - it may be modified or removed.
- Drop relative IRI in the serialize to RDF algorithm. JSON-LD processors are free to include an option that preserves relative IRIs when serializing to RDF.
- Request that the RDF WG transition the JSON-LD 1.0 and JSON-LD 1.0 API specs to CR, using the shortest possible CR period (don't skip CR)
Topics
- JSON-LD in the News
- David Booth's Editorial Comments
- Update on GSoC from Vikash
- Review of JSON-LD 1.0 CR-ready specification
- Review JSON-LD 1.0 API CR-ready specification
- Implementations and Test Suite
Resolutions
- Add an issue marker for @type stating that we may introduce a new keyword to do literal type coercion.
- Request that the RDF WG publish the JSON-LD 1.0 Candidate Recommendation on August 22nd with a CR period of 4 weeks.
- Request that the RDF WG publish the JSON-LD 1.0 API spec as a Candidate Recommendation on August 22nd with a CR period of 4 weeks.
Topics
- Updates to Syntax Spec by David Booth
- GSoC update from Vikash
- Review JSON-LD github issues ready to be closed
- Review all LC2 and post-LC2 RDF WG issues
- Candidate Recommendation Preparation
Resolutions
- Interpret objects that do not have a @context entry as the JSON-LD Context when passed into the API functions (via any context parameter). When passing in an array of objects and strings, the same rule applies. Remote context documents specified via a URL are still required to contain an @context key to be a valid JSON-LD Context.
- RDF WG issue 129, 130, 132, 133, 134, and 135 have been addressed by the group and are resolved. Manu will send out official responses.
- The JSON-LD test suite will be a living test suite (updated as needed). The version of the test suite when we transition into Candidate Recommendation will be assigned a git tag, so that others can test and report against a static version of the test suite.
Topics
- ISSUE-277: "partial" lists
- GSoC Update
- Review JSON-LD github issues ready to be closed
- Review of JSON-LD API Spec
Resolutions
- Adopt Markus' algorithmic change to convert partial lists from RDF to JSON-LD.
- Make it clear in the specification that objects can be provided to the context parameter can either be JSON-LD Contexts, or objects containing JSON-LD Contexts.
- The JSON-LD API should process all documents labeled with media types using the application/json or any media type with a +json suffix. Implementations must not follow an HTTP Link Header if you encounter an application/ld+json media type.
- A remote context MUST be served as application/ld+json.
Topics
- ISSUE-276: Convert appendices into normal sections
- ISSUE-279: Extraneous data after flattening bug
- RDF WG ISSUE-132: Blank node predicates
- Review: Uncategorized JSON-LD github issues
- Review: JSON-LD Syntax issues
Resolutions
- Convert normative appendices A, B, and C to normal normative sections, leaving them at the same location in the document.
- Fix a bug in the flattening and fromRDF algorithm by not promoting undescribed nodes or datatypes to subjects during the flattening/fromRDF algorithms.
- Graphs are not free-floating nodes and should not be removed during the flattening or fromRDF algorithm.
- Add an option to produce "extended RDF", which defaults to false. If the option is true, "extended RDF" will be produced, retaining triples that have blank nodes as predicates. If the option is false, standard RDF will be produced and triples with blank node properties will be discarded.
- When mapping properties, if the author is not yet ready to commit to a stable IRI, suggest mapping the property to an IRI that is documented as unstable.
- Link all Basic concept sections to the Advanced Concepts section to ensure that readers understand that there are more advanced concepts associated with the basic features of JSON-LD.
Topics
- Blank nodes as predicates
- RDF Alignment Editorial Changes
- JSON-LD / RDF Alignment
Topics
- Assigning Properties to Lists
- GSoC update
- JSON-LD / RDF Alignment
Resolutions
- Create an issue in the RDF WG to formalize a way to express lists that need to be identified with a URL and annotated using properties.
Topics
- Peter Patel-Schneider's comments
- ISSUE-257: Blank node identifers for data types
- ISSUE-264: JsonLdUrlDereferencer option
- JSON-LD introduction
Resolutions
- Do not support blank nodes as data types.
- Raise an error if a blank-node-typed literal is detected.
- Generalize the LoadContextCallback feature into a LoadDocumentCallback feature and use it for loading both remote contexts and remote documents when necessary.
Topics
- Linked Data introductory text
- Skolemization in toRDF() algorithm
- ISSUE-265: Media Type Registration
- Support for xsd:short and other integer types.
- fromRDF() creates nodes for things like rdf:type.
Resolutions
- Adopt proposal 2g and replace the first paragraph in the JSON-LD Syntax Introduction with: Linked Data[LINKED_DATA] is a way to create a network of standards-based machine interpretable data across different documents and Web sites. It allows an application to start at one piece of Linked Data, and follow embedded links to other pieces of Linked Data that are hosted on different sites across the Web.
- In the security considerations section, reference RFC4627 and add text explaining that evaluating the data as code can lead to unexpected side effects compromising the security of a system.
- Add the following text to the Security Considerations section: When processing JSON-LD documents, links to remote contexts are typically followed automatically, resulting in the transfer of files without the explicit request of the user for each one. If remote contexts are served by third parties, it may allow them to gather usage patterns or similar information leading to privacy concerns. Explain that this can be controlled through effective use of the API.
Topics
- json-ld.org updates
- RDF-ISSUE-135: Government Linked Data (GLD) Working Group Feedback
- ISSUE-253: Reverse term definition modifications
- RDF and JSON-LD Alignment issue.
- Relationship to RDF model in syntax spec should be normative
- Editorial changes to JSON-LD Syntax
- Conversion of blank nodes to Skolemization IDs when going to RDF
Resolutions
- Allow "@container": "@set" for reverse properties.
- Remove the @type restriction for reverse properties. This also means that a reverse property won't be implicitly type-coerced to @id anymore.
- Add the following normative text to the JSON-LD Syntax specification: The normative algorithm for interpreting JSON-LD as RDF is specified in the JSON-LD Processing Algorithms and API specification [JSON-LD-API].
- Make David Booth's bullet-point addition to the JSON-LD Syntax spec: " * Software developers who want to generate or consume Linked Data, an RDF graph or an RDF Dataset in a JSON syntax."
- Add spec text to the following effect into the JSON-LD Syntax specification: JSON-LD was designed to be usable directly as JSON, with no knowledge of RDF, but was designed also to be usable as RDF (if desired), for use with other Semantic Web technologies like SPARQL. People intending to use JSON-LD with RDF tools will find it can be used as another RDF syntax, like Turtle. Complete details of how JSON-LD relates to RDF are in Appendix C.
- Make other editorial changes as needed to avoid implying that JSON-LD is not necessarily RDF.
- Add spec text to JSON-LD Syntax. Appendix C: JSON-LD is a _concrete RDF syntax_ as described in [RDF11_CONCEPTS]. Hence, a JSON-LD document is both an RDF document and a JSON document and correspondingly represents both an instance of the RDF data model and an instance of the JSON-LD data model.
Topics
- Vikash's Summer of Code
- RDF-ISSUE-133: Reverse properties
- RDF-ISSUE-134: Blank node labeling
- RDF-ISSUE-129: Lossless conversion
- The Candidate Recommendation Phase
- Other concerns and news
Resolutions
- Support reverse properties in JSON-LD 1.0.
- The default value of the useNativeTypes flag should be set to 'false' in the JSON-LD API.
- Add explanatory text to the JSON-LD API specification explaining the risks of the useNativeTypes flag and how to do proper conversion to/from native types using the to/from RDF method call.
Topics
- RDF-ISSUE-130: Properly referencing the DOM Futures spec
- Discussion with Google about JSON-LD usage
Topics
- RDF-ISSUE-132: JSON-LD/RDF Alignment
- RDF-ISSUE-128: Mandatory profiles
- Gmail JSON-LD Implementation Concerns
- RDF WG resolutions
Resolutions
- Adopt the language for content negotiation above where the server should try to comply with the request MIME type and profile from the client.
Topics
- Implementation Updates
- RDF-ISSUE-129: Lossless conversion
- RDF-ISSUE-128: Mandatory profiles
Resolutions
- Add issue markers to the 2nd Last Call for JSON-LD Algorithms and API to warn about how the useNativeTypes flag and algorithm might change, and to also warn about the details of referencing the DOM-WHATWG spec wrt. Futures may change.
Topics
- JsonLdOptions base vs. @base
- Implementation Report Submissions
- Path forward for JSON-LD CR/PR
Resolutions
- Support relative IRIs in @base.
- @base is always resolved against the current documents URL. @base when set in a remote context document does not apply to the document that imports the remote context.
- Accept the new Base Resolution Algorithm, which supports setting @base: null (no base value).
- The API option for 'base' is not set by default.
Topics
- Google Summer of Code 2013
- JSON-LD API and Futures
- Implementation Report Submissions
- 2nd Last Call for JSON-LD API
Topics
- JSON-LD API and Futures
- Term re-definition behavior
- Test Suite Design
Resolutions
- Address ISSUE-125 by adopting a Futures-based approach for the JSON-LD API.
- When re-defining a term 'A', any previous definition for term 'A' is removed before the right hand side for the new re-definition is evaluated.
Topics
- Last Call Issues
- Last Call Issue: Order of parameters (options or callback last) - by Boris Zbarsky
- JSON-LD Specification Bugs
- Test Suite Design
Topics
- Last Call Documents for RDF WG
- ISSUE-238: WebIDL dependency
- ISSUE-223: JsonLdOptions base vs. @base
- Compaction corner cases
- ISSUE-229: Test Suite
Resolutions
- Express the WebIDL for functions with optional parameters using the method overloading WebIDL pattern.
- If the result of compaction is an array at the top level, always wrap it in @graph (default graph). This means that the result of compaction will always be an object.
- When a context is passed into the .compact() function call, it MUST NOT be the 'null' value. If a null value is detected, an error must be thrown.
Topics
- Web Payments Launch (PaySwarm / Meritora)
- ISSUE-235: Let @vocab take precedence over compact IRIs in compaction
- Rename '@type': '@vocab' to '@type': '@context'
- ISSUE-224: Sandro Hawke's Feedback
- ISSUE-234: Sandro Hawke's JSON-LD API spec review
- ISSUE-236: Zhe Wu's JSON-LD API spec review
Resolutions
- When compacting IRIs @vocab should take precedence over Compact IRIs. This reverses the previous order of precedence.
- Specify what canonical lexical form is for xsd:integer and xsd:double by referencing the XML Schema 1.1 Datatypes specification. When processors are generating output, they are required to use this form.
Topics
- Last Call and FCGS for Syntax and Algorithms
- ISSUE-217: Disallow BNode identifier as Graph Name
- ISSUE-218: Algorithm specification updates by editors
- ISSUE-220: Drop empty arrays (sets) and empty lists in expansion
- Remove re-labeling blank nodes during expansion
- ISSUE-232: Replace "optimize" option with "strict" option
- Any other issues before Last Call?
Resolutions
- Publish the JSON-LD Syntax and Algorithms specifications as Final Community Group Specifications (FCGS) and prep the RDF WG Last Call (LC) documents for publication on April 4th 2013.
- The term selection algorithm should use the '@null' token to specify the null value and the '@none' token to specify the none value.
- Do not drop empty arrays (sets) and empty lists in expansion and compaction.
- Remove blank node re-labeling during expansion since it is no longer required. The flattening algorithm must still re-label blank nodes.
- Change 'optimize' flag to be a 'processingMode' option. The default value for JSON-LD 1.0 processors is 'json-ld-1.0'. Implementers may accept other values, but must ensure that those values are not prefixed with the string 'json-ld'. If the processingMode is set to 'json-ld-1.0', the outcome must be the same as the algorithms.
Topics
- ISSUE-224: Sandro Hawke's JSON-LD syntax spec review
- ISSUE-222: David Booth's JSON-LD syntax spec review
- ISSUE-230: Charles Greer's JSON-LD syntax spec review
- ISSUE-223: JsonLdOptions base vs. @base
- ISSUE-226: Expansion/Compaction explanation inaccurate/misleading
- ISSUE-231: JSON-LD in HTML
- Last Call timeline
Resolutions
- Add the JSON-LD in HTML feature to the JSON-LD Syntax specification without support for @data-context. We are still discussing @data-context and the danger of it forcing a JSON-LD initial context.
Topics
- ISSUE-224: Sandro Hawke's JSON-LD syntax spec review
Topics
- ISSUE-218: Algorithm specification updates by editors
- JSON-LD Property Generators
- ISSUE-221: Inverse properties in JSON-LD
- ISSUE-223: JsonLdOptions base vs. @base
- JSON-LD latest API issues
Resolutions
- Remove Property Generators from JSON-LD before Last Call due to no developers needing the feature, the feature having a high potential of misuse, and because of the complexity it adds to the specification.
- Put JSON-LD Inverse Properties into the JSON-LD 1.0 specification as an at-risk feature.
- 'base' (passed in via the API) sets the document base, @base (in the document) overrides any value set by 'base' (passed in via the API).
- Allow @base to be set to the empty string. If @base is set to the empty string, relative IRIs are processed according to RFC 3986 Section 5.2.2 (which is how they're always processed in JSON-LD).
Topics
- JSON-LD Icons
- Jeremy Carroll's request for @base
- ISSUE-217: Disallow BNode identifier as Graph Name
- ISSUE-218: Algorithm specification updates by editors
- Publication Timeline
Resolutions
- Add @base to the JSON-LD syntax as an at-risk feature.
- Support @base and @language declarations in the @context. Warn developers that JSON-LD contexts that are to be used as remote contexts probably shouldn't include @language or @base.
- JSON-LD will continue to support blank node identifiers for properties and graph names. When converting data to RDF 1.1, the specification will not introduce any special checks to handle these specific cases. It is up to the implementations to figure out how to convert this data to something conformant to RDF 1.1.
- Mark property generators as an at-risk feature in JSON-LD 1.0.
Topics
- ISSUE-217: Disallow BNode identifier as Graph Name
- Publishing JSON-LD 1.0 as a FCGS
- ISSUE-218: Algorithm specification updates by editors
- Update to RDF Algorithms
Resolutions
- This group re-affirms that the common practice when naming a graph is to use either an IRI or a blank node identifier. The JSON-LD specification remains unchanged. When expressing graphs in Linked Data, the graph name SHOULD be an IRI.
- Publish the JSON-LD 1.0 syntax specification as of February 19th 2013 as a Final Community Group Specification.
Topics
- Choosing the Algorithms Specification
- ISSUE-213: Vulnerability when loading HTTP-based JSON-LD Contexts
- ISSUE-204: Design Issue with Relative IRIs and compaction
Resolutions
- Base future JSON-LD Algorithms 1.0 specification work on Dave Longley's alternate2.html specification, keeping in mind that the group is not suggesting that all algorithms are finalized. Algorithms will need to be clarified further after the base document is picked.
- Add a JsonLdUrlDereferencer option to the JSON-LD API calls. It can be a function that takes a URL and a callback, and calls the callback with an error or the result of dereferencing that URL. If the option is provided, then the implementation MUST use it to dereference remote contexts.
- If "@type": "@vocab" is specified for a term in the active context, then processing for the value associated with the term attempts to resolve it as an IRI - first processing it as a term, then a CURIE, then an absolute IRI, then against the active @vocab (if present), then a document-relative IRI.
- The value space for terms tagged with "@type": "@id" is compact IRI, absolute IRI, relative IRI, the value space for "@type": "@vocab" is term, compact IRI, absolute IRI, @vocab, relative IRI.
- Within a term definition in the JSON-LD context, document-relative IRIs are not supported.
Topics
- New Alternate Algorithms Review
- RDF Algorithms Section
- ISSUE-217: Disallow BNode identifier as Graph Name
- JSON-LD 1.0 Final Community Group Specification
Resolutions
- Adopt the 'purpose' and 'general solution' language in Dave Longley's (alternate2.html) specification.
Topics
- Remaining Editorial Work for JSON-LD 1.0 Specification
- Update to JSON-LD Data Model
- Context via HTTP Link Header
- IANA parameters
- Update on Algorithms
Resolutions
- "Remove Example 51: Data annotations" and provide different examples showing how data annotations survive expansion/compaction.
- Rename @annotation to @index and update the prose in section 6.14 to reflect the change.
- Remove 'form' from the optional parameters for application/ld+json. Add four URL values for 'profile': http://www.w3.org/ns/json-ld#expanded http://www.w3.org/ns/json-ld#compacted http://www.w3.org/ns/json-ld#expanded-flattened http://www.w3.org/ns/json-ld#compacted-flattened
Topics
- ISSUE-204: Design Issue with Relative IRIs and Compaction
- ISSUE-211: Potential ambiguity when setting default language
- Approach to Algorithms
- Remaining Editorial Work for JSON-LD 1.0 Specification
- Editor/Author Attribution Order
Topics
- ISSUE-204: Compact @id's to relative IRIs
- ISSUE-205: Use the term URL instead of IRI in the (API) spec
- Approach to Algorithms
Resolutions
- Add an at-risk issue on compacting IRIs as relative.
- Use IRI in the JSON-LD specifications instead of URL.
Topics
- State of JSON-LD Documents
- ISSUE-153: Define error handler behavior
- ISSUE-178: Consider renaming JSON-LD API to JSON-LD Core Processing
- ISSUE-204: Compact @id's to relative IRIs
- ISSUE-205: Use the term URL instead of IRI in the (API) spec
- ISSUE-207: Handling of free-floating values in flattening/toRDF
Resolutions
- Accept the JSON-LD API spec text on error handling with a few modifications - remove the issueCallback mechanism from JsonLdOptions, remove severity fromJsonLdProcessorIssue, rename JsonLdProcessorIssue to JsonLdError.
- Rename JSON-LD syntax spec to "JSON-LD 1.0 - A JSON-based Serialization for Linked Data" and the API spec to "JSON-LD 1.0 Processing Algorithms and API (no subtitle)"
- Do not allow terms as values for @id.
- The following value types are supported for @id - document relative IRIs, absolute IRIs, and CURIEs.
- When compacting, attempt to compact absolute IRIs to document-relative IRIs.
- Include the text "Throughout this specification, the term 'URL' means IRI as defined in RFC3987. The reason we use URL is because it is more familiar to Web developers." and use the term URL everywhere in both specifications.
- JSON-LD Processors do not modify URLs other than to translate between relative and absolute URLs. Specifically, they do not implement the URL processing rules as outlined in the HTML5 specification.
- Disallow free-floating values and IRIs in the JSON-LD Data model. If a free-floating value/IRI is detected during expansion, drop the value/IRI.
Topics
- Schedule for telecons and publication
- JSON-LD Test Suite
- Renaming of blank nodes
- ISSUE-203: Validate IRIs and language tags
- ISSUE-109: Add flatten() method to JSON-LD API
- ISSUE-206: Clarify that the algorithms operate a copy of the input
Resolutions
- Rename all blank node identifiers when doing expansion.
- JSON-LD Processors MAY issue validation warnings for malformed IRIs and BCP47 language strings, but they MUST NOT attempt to correct validation errors.
- Add a .flatten() method to the JSON-LD API, which returns all data in flattened, compact form. Remove the flatten flag from the .expand() and .compact() methods. Ensure that the .flatten() method preserves data in named graphs.
- Any input to JSON-LD API methods MUST NOT be modified.
Topics
- JSON-LD .graphify() API
- ISSUE-200: JSON-LD API Review by Robin Berjon
- Graph vs DataSet
- ISSUE-153: Define error handler behavior
- ISSUE-201: Update dataset examples
- ISSUE-202: Do not compact @graph arrays with one element
Resolutions
- Remove the .toRDF() and .fromRDF() WebIDL API calls into a separate document that will not be a part of the JSON-LD 1.0 work. The to/from RDF algorithms will still be a part of the JSON-LD API 1.0 work.
- Add a note to the "Relationship to RDF" section to specify that if clients that do not understand Datasets are to be supported using JSON-LD, that the primary information should go in the default graph.
- Keep values of @graph that are arrays consisting of just one element as arrays.
- Do not compact "node references" that are values of @graph to strings.
Topics
- Algorithm updates
- ISSUE-157: JSON-LD mapping to RDF terminology
- ISSUE-184: Definition of JSON-LD processor in the API spec
- ISSUE-153: Define error handler behavior
- ISSUE-182: Graph vs. DataSet
Resolutions
- The JSON-LD API specification will define two products: 1) A JSON-LD Implementation, and 2) A JSON-LD Processor, which is dependent on a valid JSON-LD Implementation and implements the asynchronous API.
- Simplify the error handling mechanism by passing an error object to the callbacks which only consists of an error code and an optional error message containing additional information for debugging.
- State in the syntax spec that JSON-LD can be used as a RDF graph source. A consumer would just use the default graph and ignore all named graphs in that case. This would allow a server to use, e.g., both Turtle and JSON-LD in content negotiation.
Topics
- ISSUE-182: Dataset vs. Graph
- ISSUE-113: Define exactly how (IRI) compaction is supposed to work
- ISSUE-172: Should each member in a list contribute to term rank?
- ISSUE-200: JSON-LD API Review by Robin Berjon
Resolutions
- When compacting lists, the most specific term that matches all of the elements in the list, taking into account the default language, must be selected.
- The callback signature for the .toRDF() method should accept Quad[]. That is, the callback is called once after all processing has been completed.
Topics
- ISSUE-159: Add specifying @language to expanded form
- ISSUE-170: Clarify sets and lists
- ISSUE-182: Graph vs DataSet
- ISSUE-197: Abuse of describedby relation in link header
- ISSUE-140: Consider objectify/link API method
- ISSUE-179: Consider moving WebIDL to Appendix or Note
- ISSUE-188: Numbers and booleans as @type
- ISSUE-184: Definition of JSON-LD processor in the API spec
- ISSUE-178: Consider renaming JSON-LD API to JSON-LD Core Processing
- ISSUE-171: Value Compaction broken
Resolutions
- Close ISSUE-159 by referencing ISSUE-133: no further actions required.
- Clarify why the @set keyword exists in the JSON-LD Syntax specification. Namely, it exists if developers want to selectively ensure that a term's values will always be compacted to an array in compacted form. For the avoidance of doubt, @set is allowed in the body of a JSON-LD document and the spec should explain it's use within the @context and the body of the document.
- Normatively define the concept of a JSON-LD Dataset. In the context of a Dataset, a JSON-LD document including only a default graph serializes a Dataset with only a default graph. A JSON-LD document describing a default graph and/or one or more named graphs serializes a Dataset with default and named graphs.
- Normatively define the concept of a "JSON-LD document", including description of the scope of blank nodes, which is the scope of the document.
- Add in the RDF-mapping section Richard is writing a statement that JSON-LD documents serialize datasets (which may contain only a default graph)
- Align with RDF WG ISSUE-105 (once there is a final decision from the RDF WG) regarding graphs, datasets, authoritative representations, and content negotiation.
- Retain the ability to specify a JSON-LD context via the 'Link' HTTP header.
- The rel=http://www.w3.org/ns/json-ld#context relationship replaces the 'describedby' relationship as the mechanism that is used to instruct the JSON-LD processor on which context it should use to interpret the document.
- Defer creation of a .graphify() mechanism until after JSON-LD 1.0.
- Place the Algorithms section in the JSON-LD API document before the API section. Make the API section normative, but clarify that implementers MAY provide their own API that is compliant with the Algorithms.
- State in the definition of each applicable algorithm that the input is a (well-formed) JSON-LD document. State in the conformance section of theAPI/Algorithms/Proce ssing document that the spec does not constrain the behaviour of JSON-LD processors for JSON documents that are not (well-formed) JSON-LD documents.
- Define "JSON-LD processor" in a Conformance section in the JSON-LD API.
Topics
- ISSUE-196: Add '@annotation' container type
- ISSUE-195: Add '@graph' container type
- ISSUE-165: Allow @id: null to decouple a term from @vocab
- ISSUE-166: Add a conformance section
- ISSUE-169: Clarify the meaning of multiple node definitions with the same @id
- ISSUE-180: Make link to RDF more apparent in the specification
- ISSUE-181: Limit divergence between JSON-LD and RDF data models
- ISSUE-182: Graph vs DataSet
- ISSUE-189: Support of {@type:{@id:xxx}} constructs
- ISSUE-133: Add '@language' container type (related to ISSUE-159)
- ISSUE-178: Consider renaming JSON-LD API to JSON-LD Core Processing
Resolutions
- If '@container': '@annotation' is added to the JSON-LD Syntax, the feature MUST be round-trippable from .compact() to .expand() back to .compact()
- Add '@container': '@annotation' to the JSON-LD Syntax.
- Push the addition of '@container': '@graph' to the JSON-LD Syntax specification off to a later version of JSON-LD.
- Allow a term to be mapped to null (either directly or by setting @id to null). This mapping is stored in the active context and also overwrites a @vocab mapping meaning that the term does not expand to an IRI and will thus be dropped when expanding.
- Add a conformance section to the JSON-LD Syntax specification by merging pull request 194.
- Remove the term node reference as it is not needed; one term (currently node definition) is sufficient.
- Rename node definition to node object because 1. it doesn't actually “define” a node, and 2. to make more explicit that it is a kind of JSON object
- Add a statement in the introduction of the JSON-LD syntax specification saying that JSON-LD is a serialization of the RDF data model.
- Add the following statements to the specs: a) "Authors SHOULD NOT use unconnected nodes (a node definition that does not contain any properties) in JSON-LD documents." b) "Authors SHOULD NOT use blank nodes as edge labels." c) "JSON-LD processors MUST normalize all language tags to lowercase when processing documents via the JSON-LD Algorithms." d) "Blank node labels are scoped to the JSON-LD document."
- Do not support constructs like "@type":{"@id":"A"} in the spec as that would suggest to developers that they could include other properties of the type there as well.
- The values of the key-value pairs of a language map MUST be strings or arrays of strings. When expanded, the strings are tagged with the language specified by the key. When compacting, only language-tagged strings will match a term that has a "@container": "@language" mapping. Terms that have a "@container": "@language" mapping MUST NOT be type-coerced.
Topics
- Brief review of RDF WG Face-to-Face
- JSON-LD Breakout Session
- Strategy for addressing pre-LC RDF WG issues
- Review of new issues
- ISSUE-159: Add specifying @language to expanded form
Resolutions
- A feature freeze is in effect for JSON-LD 1.0 Syntax and JSON-LD 1.0 API effective November 06th 2012.
Topics
- ISSUE-168: JSON-LD Syntax document MUST utilize the RDF definitions
- ISSUE-156: Compact API first expands without provided context
- ISSUE-162: Base IRI used to expand @type
Resolutions
- Move the optional expansion context parameter in the .expand() call into the last JsonLdOptions parameter.
- Process the 'expandContext' option when performing .compact(). When expanding during the .compact() call, the 'expandContext' is applied first, followed with any other contexts held in the document being processed.
- When resolving IRIs for @type, first use a term/prefix if that exists, if not use @vocab, if @vocab does not exist, use the BASE IRI to resolve @type.
- Do not define @vocab as base IRI but as prefix.
Topics
- Wikidata visit
- RDF WG Face-to-face
- Drupal JSON-LD Vendor extension
- ISSUE-113: IRI compaction algorithm
- ISSUE-114: JSON-LD grammar
- Issue review
- Thoughts on .link()
Resolutions
- Add an optional parameter to the application/ld+json mimetype called 'profile' where the value associated with it SHOULD be an IRI.
- Move all examples in the JSON-LD Grammar section of the spec to the main body and point to them with links.
Topics
- ISSUE-140: Consider objectify/link API method
- ISSUE-160: Specify property-generator round-tripping algorithm
- ISSUE-153: Define error handler behavior
- ISSUE-159: Add specifying @language to expanded form
Resolutions
- Table issue-140 for the time being, delay discussion until all other issues for JSON-LD 1.0 have been addressed.
- Adopt Gregg Kellogg's property generator algorithm when expanding/compacting with the following modifications; 1) use node definitions everywhere when expanding, 2) generate bnode IDs for all node definitions without an '@id', 3) use deep comparisons when eliminating node definitions during compaction.
- Add warning language to the JSON-LD Syntax and API specs noting the most problematic issues when working with property generators.
- Add a non-normative note to tell implementers that their implementations may have a feature that allows all but one node definition created by a property generator to be collapsed into a node reference.
Topics
- ISSUE-160: Specify property-generator round-tripping algorithm
- Microdata to JSON-LD conversion
- JSON-LD in Drupal 8
Topics
- TPAC JSON-LD breakout session
- RDF WG review of latest JSON-LD docs
- ISSUE-153: Define error handler behavior
- ISSUE-160: Specify property-generator round-tripping algorithm
Topics
- ISSUE-113: IRI compaction algorithm
- ISSUE-140: Consider objectify/link API method
- Timeframe?
Topics
- ISSUE-159: Add specifying @language to expanded form
Topics
- Talk about JSON-LD at NoSQL conference
- Discussion on RDF Concepts terminology
- ISSUE-134: Add @container: @id
- ISSUE-141: Prefix/CURIE terminology
- ISSUE-155: JSON-LD introduction via data model
- ISSUE-109: Add flatten() method to JSON-LD API
- Determine if .frame() should be in JSON-LD 1.0
Resolutions
- Do not support id-maps via 'container'; '@id' in JSON-LD 1.0.
- Rewrite the introductory portions of the JSON-LD document to explain JSON-LD in JSON terms first, then describe the advantages of JSON-LD, then rework the Linked Data section as the JSON-LD data model section.
- Support a 'flatten' option to .expand() and .compact(). The value of the option will be the graph to flatten and return. The default value will be false, to ensure that that the JSON-LD input document is not flattened.
- Do not support .frame() in JSON-LD 1.0 API.
Topics
- ISSUE-47: Subject, property and object terminology
- ISSUE-66: Scoped/nested @contexts
- ISSUE-122: Allow declaring `@container` on `@type`
Resolutions
- Rename "subject definition" to "node definition" and "subject reference" to "node reference"
- Change the 'nest'ed terminology to 'scope'ed when referring to @contexts that exist inside of JSON objects.
- Add a flag to the .compact() and .frame() algorithms that turns off optimization of arrays with single items in them to single values in the output.
Topics
- DrupalCon discussion on JSON-LD
- Property Generators and .compact() API
- Alternative to combinatorial .compact()
Resolutions
- The group is committed to support language maps and property generators in JSON-LD 1.0.
- Support optional features in .compact(). Any optional feature that is implemented, MUST be implemented in a specific way as outlined in the JSON-LD API.
Topics
- JSON-LD at NoSQL conference
- In-memory JSON-LD object representation
- @language / @vocab Intransitivity
- ISSUE-80: Remove initial context from API spec
- ISSUE-150: Use of native types in from/to RDF
- ISSUE-151: Context Processing Algorithm Dependency Resolution
Resolutions
- Do not support an initial context in JSON-LD 1.0.
- Continue to support 'useNativeDatatypes' in .fromRDF(), specifying how the native type conversion happens. Do not support options for overriding each native datatype with a different value.
Topics
- New github event notification system
- ISSUE-149: Create a pre-processing step option for the API
- ISSUE-146: Support array position to property binding
- ISSUE-147: Add synchronous methods to the API
- ISSUE-80: Remove initial context from API spec
Resolutions
- Do not support a pre-processing step option in the JSON-LD API to transform incoming JSON.
- Do not support a declarative mechanism that is capable of mapping array position to an RDF property.
- The JSON-LD API method signatures across all languages are exactly the same. If a developer wants synchronous behavior, they MUST NOT add the callback parameter. Add an issue marker to the JSON-LD API spec stating that this functionality is at risk.
Topics
- Feature freeze of JSON-LD
- Lin Clark public domain dedication
- Drupal Language-Map requirement discussion
- JSON-LD issues reflected in W3C Tracker
Resolutions
- Add support for language maps via the "@container": "@language" annotation in @context. For example: "tags": { "@id": "http://example.com/vocab#tags", "@container": "@language"}. The value of the term MUST be an associative array. All associative array keys MUST be BCP47 language strings.
Topics
- ISSUE-120: Expand @type to @id-objects
- ISSUE-114: JSON-LD Grammar
- ISSUE-142: Allow terms to expand to multiple IRIs
- ISSUE-144: @context in coercion rules
- ISSUE-146: Support array position to property binding
Resolutions
- When @id is found as a value in an object associated with @type, a handler callback is called to handle the issue.
- Express the JSON-LD Grammar in prose with supporting tables/examples. Clarify that violating the grammar does not necessarily mean that a JSON-LD processor will not process the document.
- Support a single term expanding to multiple IRIs when an array of @ids are associated with a single term in the @context.
- Do not support embedding @contexts within a @context to re-define the IRI that a term maps to.
Topics
- JSON-LD for Biomedical Informatics
- JSON-LD First Public Working Drafts
- ISSUE-132: Reconsider prefix/suffix separator
- Super sessions
Resolutions
- Do not change the prefix-suffix separator from COLON ':' to anything else.
Topics
- ISSUE-133: Add @container: @language
- Sub-tree support for @container
- ISSUE-134: Add @container: @id
Topics
- FPWD of JSON-LD Syntax and API
- ISSUE-133: Add @container: @language
Resolutions
- Support language-maps via the "@container": "@language" pattern in @context.
Topics
- Transition of documents to the RDF WG
- ISSUE-120 recap - Expansion and @type
- .objectify() vs. .frame()
Topics
- Feedback from RDF WG
- Linked Data and JSON-LD introductory videos
- ISSUE-26: @vocab support
- ISSUE-129: Eliminate duplicates in expansion
- ISSUE-108: IRI templates
Resolutions
- Support the @vocab keyword for setting a default vocabulary URL for a JSON-LD document.
- Remove text relating to removing duplicates when expanding JSON-LD documents
- Do not add any normative language relating to IRI templates or other transformations
Topics
- Use of @container to specify language-maps and other useful things
- Review latest JSON-LD Syntax and API specs
- ISSUE-120: Expand @type to @id-objects
Resolutions
- Attempt to add other @container options, such as "@container": "@language" to support Wikidata's language-map use case.
- When operating on @type, the result of the expansion algorithm MUST always result in an array of strings that are IRIs.
- In the expansion algorithm, when expanding the value associated with @type, extract only @id from that value. Any value that does not expand to an absolute IRI MUST be discarded.
Topics
- SemTech 2012
- ISSUE-127: JSON-LD API Introduction
- Define from/to RDF algorithms in terms of standard RDF
- RDF WG Invited Expert process
Topics
- RDF WG Spec Concerns
- Concerns about Publishing JSON-LD API
- JSON-LD CG to RDF WG document transition
Topics
- JSON-LD pushed to RDF WG for review
- ISSUE-114: JSON-LD Grammar
- ISSUE-118: @graph support in framing
- ISSUE-119: Aggressive embedding support
Resolutions
- Defer @graph and, in general, value matching from the framing algorithm.
Topics
- Finishing up the JSON-LD Syntax document
- ISSUE-100: Should the JSON-LD API have a "mode": "strict" flag?
- ISSUE-116: Introduce @extension keyword?
Resolutions
- JSON-LD will support a JSON-LD Processor Event mechanism that will report certain events (to be decided later) via a callback given through JSON-LD API calls.
- The JSON-LD Processor Event callback would be registered for every JSON-LD API call, and would provide the type of event and the data associated with the event for the callback. This mechanism would be used to report potential errors, warnings and when the processing of the document was complete.
- When a JSON-LD processor processes input that would result in an exception, it should instead call the JSON-LD Processor Event callback with data concerning the issue that was detected.
- Do not support the @extension keyword at this point in time.
Topics
- ISSUE-115: Expanded form - expand all native types to @value form?
- ISSUE-114: Values space of keywords
- ISSUE-112: Define mandatory API parameters (options)
Resolutions
- In general, for expansion, ensure that all property values are expressed in expanded value form (e.g. {"@value": 5}, {"@value": "foo"}, {"@id": "http://example.com/"}) with the exception of @id and @type.
- In expanded form, @graph must be expressed in expanded value form (e.g. "@graph": [{"@id": "http://example.com/foo#graph}])
- In general, if the author's intent is clear, we should transform the input into proper JSON-LD (keeping the processor mode, if any, in mind - in strict mode, throw exceptions, in lax mode, attempt to interpret the value).
- When converting toRDF(), any value that is a JSON number that has a fractional value MUST be treated as an xsd:double using the printf("%1.15E", number) representation.
- There are no mandatory options in the JSON-LD API. Defaults must be specified for all options passed to JSON-LD API methods.
- The default for the base IRI for JSON-LD API methods is the current document IRI if in a browser context, or the empty string if there is no document context.
Topics
- ISSUE-96: Should framing results be object or array
- ISSUE-97: Frame expansion
- ISSUE-80: Remove initial context from API spec
- ISSUE-107: Fragment identifier interpretation
- ISSUE-98: Datatype coercion of native types
- RDF WG and JSON-LD
Resolutions
- The result of framing MUST be an object with a @context and @graph property. The value of @graph is always an array containing zero or more results.
- For framing, use a combination of @preserve and @null, which are replaced in post-processing to avoid the problem of them disappearing during expansion or compaction.
- If JSON-LD has an initial context, it MUST be specified external to the JSON-LD Syntax specification at a well-known location.
- In JSON-LD a fragment identifier MAY identify a node in the linked data graph expressed in the document. This idiom, which is also used in RDF [RDF-CONCEPTS], gives a simple way to "mint" new, document-local IRIs to label nodes and therefore contributes considerably to the expressive power of JSON-LD.
- When round-tripping xsd:boolean values from JSON-LD through expansion and back through compaction, a JSON-native boolean value with xsd:boolean datatype coersion will remain a JSON-native boolean value.
- @value supports native JSON datatypes such as number, boolean, string.
- During expansion, a native JSON value with type coercion applied gets expanded to the expanded object form where the value of @value is still in the native JSON form and @type is the type in the type coercion rule.
- When compacting, if there is a direct match for @type for the property and @type for the property in the context, then the value of the property is replaced with the value of @value.
- Introduce a 'useNativeTypes' flag for the fromRDF algorithm which, when set, attempts to convert xsd:boolean, xsd:integer, and xsd:double to native JSON values. If the conversion fails the value will be converted to the expanded object notation form.
Topics
- WWW2012 Conference
- ISSUE-106: JSON-LD 1.0 @graph syntax
- ISSUE-102: Can JSON-LD keywords be re-defined in the @context?
- ISSUE-103: Re-introduce @datatype as @valuetype
- ISSUE-92: Limit JSON-LD properties to one @list per property
- ISSUE-91: Re-definition of keywords
Resolutions
- Adopt the 6 points in ISSUE-106 along with Gregg and Longley's proposal for @graph processing in framing as the way we approach named graph support in JSON-LD.
- JSON-LD keywords MUST NOT be re-defined in the @context. If a JSON-LD processor detects that a JSON-LD keyword is being re-defined, it MUST throw an exception.
- Do not re-introduce typing JSON-LD @value via something like @datatype or @valuetype.
- If the result of IRI compaction has an @container @list and there are multiple @list values, throw an exception. When doing IRI compaction do not select terms (other than absolute IRIs) that have @container @list if the value has more than one list.
- JSON-LD allows sets of lists except where it conflicts with the previous resolution.
- Remove step #1: "If iri is rdf:type, return @type." from the Compact IRI algorithm.
- Add an option to the fromRDF algorithm to skip step 5.6 "If the property is rdf:type use @type" to support the use of a term in place of the @type keyword during conversion from RDF to JSON-LD.
Topics
- ISSUE-91: Re-definition of keywords
- ISSUE-92: Limit JSON-LD properties to one @list per property
- ISSUE-93: Keyword aliasing operation
- ISSUE-99: @graph treatment when expanding
- ISSUE-58: Specifying the active context for compaction
- ISSUE-57: Should @context be minimized when compacting?
- ISSUE-53: Remove normalization completely from JSON-LD API spec
Resolutions
- When performing expansion properties that are coerced to a @container type of @list MUST be placed in an array in expanded form. For example, "prop-iri": [{"@list": [1, 2]}] is correct, "prop-iri": {"@list": [1, 2]} is not.
- JSON-LD supports multiple aliases for a JSON-LD keyword.
- Re-affirm that the aliasing of @context is disallowed due to algorithmic complexity/ambiguity and lack of a compelling use case.
- A @context is processed without regard to keyword aliases. Keyword aliases are taken into account when processing the body of a JSON-LD document.
- If @graph is the only property in the document's top level object, it MUST be dropped in expansion and compaction. In all other cases (which includes @graph at the document's top level object when there are other properties other than @context at the same level), @graph MUST NOT be dropped in expansion and compaction.
- The first input parameter for all JSON-LD API methods MAY be an object, an array of objects, or an IRI (DOMString).
- The second input parameter to the .compact() method is the context that should be used for compaction. The value can be either an object or an IRI.
- The second input parameter to the .frame() method is the frame that should be used for compaction. The value can be either an object or an IRI.
- If the optimize flag is not set, the context used for compaction MUST be included without modifications in the resulting document. This applies to both context objects as well as contexts specified by passing an IRI. If the optimize flag is set, a processor is free to modify the context in order to optimize the resulting document body.
- Remove the normalization algorithm and API from the JSON-LD API specification. The normalization algorithm will be placed into a separate RDF Graph Normalization specification which contains an API for retrieving a set of normalized statements.
Topics
- ISSUE-95: Remove @graph from the spec
- ISSUE-84: Probing of unlinked objects
- ISSUE-74: IRI conflicts when compacting/expanding
Resolutions
- Do not remove @graph from the JSON-LD syntax.
- Do not support controlled probing of unlinked objects for this version of JSON-LD.
Topics
- ISSUE-81: Data round tripping issues
- ISSUE-87: Clarification of @set and expansion
- Explicit term for RDF type?
- ISSUE-88: Reserved keywords
Resolutions
- Terms MAY be defined as any valid JSON string. Terms starting with an '@' character SHOULD NOT be used as they may createforward-compatibilit y issues.
Topics
- Clarification of @set and expansion
- Expansion of strings and numbers
- ISSUE-85: Support @language in term definitions
- How is @language applied to strings?
- ISSUE-75: References to lists
- ISSUE-81: Double round tripping issues due to lack of precision
- ISSUE-86: IRI normalization
Resolutions
- Using "@list" and "@set" as keys in JSON-LD values that are expressed in expanded form is allowed.
- During compaction "@set" expressed in expanded form MUST be optimized away if it is not coerced to a "@list". During expansion "@set" MUST be optimized away.
- The use of "@container" is ignored in the body of a JSON-LD document.
- The value of the @value key is always transformed to a string by the JSON-LD processor.
- Unless there are type coercion rules in the @context that apply, native JSON numbers and strings are not modified in compacted or expanded form.
- Support the use of @language in term definitions to specify the associated @language for the term. If both @type and @language are specified, @language is ignored.
- If @language is specified at the top-level of a @context, then it applies to all native strings that would be interpreted as plain literals in the JSON-LD body. The @language can be overridden in term definitions by specifying a different @language value, including @language: null, or by specifying a @type for the term.
- Do not support the direct naming of lists using IRIs in this revision of JSON-LD.
- Convert all values coerced to xsd:double to strings using the C-syntax formula of "%1.16e".
- Conform to the requirements of RFC3986, Section 5 (Reference Resolution), when processing IRIs.
Topics
- ISSUE-76: Use of null in JSON-LD
- ISSUE-79: Define how empty arrays are handled
Resolutions
- Unless otherwise specified, when 'null' is used in the @context, it removes any definition associated with the key.
- If @context is set to 'null', then the active context is cleared or set to the initial context (depending on the resolution to ISSUE-80)
- Unless otherwise specified, if 'null' is associated with a key in the body of a JSON-LD document, then the JSON-LD processor MUST act as if the key-value pair was never declared. If @value or @list is set to null in expanded form, then the entire JSON object is ignored.
- If an empty array ([]) used as a value is not subject to @list coercion, then the value MUST be removed from normalized output. The empty array MUST be preserved in compacted and expanded output.
- When normalizing, anything that is not coerced to a @list container type that has an empty array for its value is removed from the normalized output.
- When compacting and expanding, anything that is coerced to a @set or a @list container type that has an empty array for its value is preserved in the compacted and expanded output.
- Unless otherwise specified, when performing the expansion algorithm all values must be contained in a JSON array structure. This does not apply to values for syntactic keys such as @value, @language, @id, and @type when used to specify a datatype.
- When compacting, anything that is coerced to a @set or a @list container type has its values put into an array in the compacted output, even if there is only one value.
Topics
- ISSUE-44: Support for @set coercion
- ISSUE-52: Lists of lists
- ISSUE-74: IRI compaction/expansion conflicts
Resolutions
- Adopt the "@container": "@set" syntax when used in a JSON-LD context to specify that a term is associated with a set of values.
- When the "@container": "@set" syntax is used in a JSON-LD context for a term definition within the framing algorithm, the resulting term will be associated with a JSON array.
- Lists of lists are not allowed for JSON-LD 1.0. If a list of lists is detected, the JSON-LD processor MUST throw an exception.
Topics
- ISSUE-82: How are non-JSON-LD values in @context processed?
- ISSUE-68: Multiple graphs syntax
Resolutions
- For non-JSON-LD values in @context, in general, they are ignored by JSON-LD processors. When compacting, the non-JSON-LD values can be removed. When expanding, the entire @context is removed and thus the non-JSON-LD values are removed.
- Override part of the decision made in ISSUE-56 - When performing expansion, non-JSON-LD values are not dropped from the document, but are ignored.
- The @graph keyword is used to express a collection of one or more JSON objects (to express a graph which may or may not be fully connected)
Topics
- ISSUE-54: Arrays of IRIs
- ISSUE-63: Provenance in JSON-LD
- ISSUE-64: Make clear how type and language coercions work
- ISSUE-76: Use of null in JSON-LD
- ISSUE-65: Handling of data that doesn't contain triples.
- ISSUE-69: Remove media type parameter option "form=compacted"
Resolutions
- If a string is found in an array that is the value of the "@id" key, a JSON-LD Processor MUST throw an exception.
- Put the discussion of Provenance on hold until the RDF WG produces a proposal for provenance.
- When expanded form is used, no coercion rules apply to the value expressed in the expanded form.
- Setting @language to null in the @context clears any coercion rules for language for the JSON subtree.
- When "@context": null is specified, it clears the active context.
- If "@language": null is specified in a local context, language coercion is removed from the active context.
- If '{}' is used as a value in a JSON-LD document, then a blank node identifier MUST be generated for the object during normalization.
- Remove "form=compacted" from the MIMEType for JSON-LD.
Topics
- ISSUE-46: Absolute IRI detection
- @list - type coercion
- ISSUE-54: Arrays of IRIs
Resolutions
- If a key in a JSON-LD document contains a colon, it is a CompactIRI if the prefix is defined as a term in the active context, otherwise it is an AbsoluteIRI. The only exception to this rule is if "//" follows the first colon, and in that case, the value is an AbsoluteIRI.
- If a key in a JSON-LD document contains a colon and the first colon is not followed by "//", it is a CompactIRI if the prefix is defined as a term in the active context, otherwise it is an AbsoluteIRI.
- Adopt "@container": "@list" syntax to specify container coercion to an ordered list when specified via the @context.
Topics
- ISSUE-43: Use of IRIs and CURIEs as @context keys
- ISSUE-56: JSON keys that are not terms
- ISSUE-52: Should we support lists of lists?
Resolutions
- When processing keys in a JSON-LD document, ignore keys and do not process the subtree for keys that do not have a mapping in the @context. When compacting and expanding, drop keys that do not have mappings from the output.
- Mapping a key to _null_ removes a mapping for that key active context
- A term can only be redefined, never partially reconfigured
Topics
- ISSUE-49: Relative IRIs may clash with terms
- Lexical Space for Terms in the Document
- Lexical Space for Keys in @context
Resolutions
- Constrain the left-hand side of JSON-LD key-value statements by only allowing terms, or prefixed-values, or absolute IRIs.
- Allow terms, or prefixed-values, or absolute IRIs or relative IRIs on the right-hand side of JSON-LD key-value statements.
- The lexical space for keys in JSON-LD key-value statements is - if a term - NCName, if a prefix - NCName for the prefix, otherwise the lexical space for an absolute IRI.
- The lexical space for keys in JSON-LD Context key-value statements is - if a term - NCName, if a prefix - NCName for the prefix, otherwise the lexical space for an absolute IRI.
Topics
- Plan to finish documents
- ISSUE-43: Use of IRIs and CURIEs as @context keys
- ISSUE-44: Allow frames to say: "predicate p always points to a set"
Resolutions
- Decouple the JSON-LD Syntax specification from the JSON-LD API specification.
- When expanding JSON-LD keys outside of the @context, perform a direct comparison on the @context keys first, then run the CURIE expansion algorithm using the @context keys.
- If a CURIE as a key in the @context is not bound to an @id, the @id is determined by expanding the key as a CURIE.
- The type coercion algorithm only checks for equality in the context when attempting to find a type coercion rule.
Topics
- Specs and Test Suite Update
- ISSUE-43: Use of IRIs and CURIEs as @context keys
- ISSUE-48: Rename @literal to @value
- ISSUE-42: Distinguishing a JSON-LD frame from a JSON-LD document
Resolutions
- Rename the @literal keyword to @value.
- JSON-LD frames should have a MIMEType, which is distinct from JSON-LD documents.
Topics
- Updates to JSON-LD implementations
- Case sensitivity in JSON-LD
- ISSUE-16: Linking Instance Documents and Context Documents
- ISSUE-41: IRI expansion within @context
- ISSUE-43: Use of IRIs and CURIEs as @context keys
Resolutions
- JSON-LD is case-sensitive.
- Support the use of the HTTP "Link" header to associate a JSON-LD context with JSON documents.
- The relation name used in a Link header to associate a JSON-LD context with a JSON document will be "describedby".
- A JSON-LD document MUST have all context information required for processing within the body of the document.
- IRI expansion should work in @context for prefixes and terms used on the right-hand side of prefix/term declarations, including @type and @id. The IRI expansion algorithm SHOULD be recursive, in that it continues to execute as long as one prefix/term is expanded in the current cycle. If a cycle is detected during resolution, then an exception MUST be thrown.
Topics
- Reducing the number of keywords in JSON-LD
- ISSUE-15: Are @subject and @iri redundant?
- ISSUE-26: Drop @base and @vocab
- ISSUE-31: Merge @type and @datatype
Resolutions
- Use the same keyword for the concepts of @subject and @iri.
- Use the keyword '@id' for the combined concept of @subject and @iri.
- Drop support for @base.
- Drop support for @vocab.
- Merge @datatype keyword with @type - @type will be used to specify both rdf:type for nodes and literal datatypes.
Topics
- ISSUE-8: Optimizing Compact Form
- ISSUE-14: Remove MIME type parameter option "form=framed" from spec
- Are @subject and @iri redundant?
Resolutions
- JSON-LD processors MUST implement the compaction API. The algorithm for compaction optimization is not defined. There is an 'optimize' flag that can be set to true or false to enable compaction optimization.
- Remove the MIME type parameter for form="framed" from the spec.
Topics
- Mark Nottingham's post
- Change of telco time
- ISSUE-40: Merge @coerce with @context
- Compact Serialization from RDFa to JSON-LD
- ISSUE-36: Define if data in context documents is ignored
Resolutions
- Teleconferences every week until we get through the issue list.
- Adopt #3 (from https;//github.com/json-ld/json-ld.org/issues/40#issuecomment-2930565 ) as the mechanism to express coercion rules in JSON-LD.
Topics
- ISSUE-35: JSON Vocabulary / Data Round-tripping
- ISSUE-40: Merge @coerce with @context
Resolutions
- No change to specification, current language on auto-coercion is fine
- Move coercion rules into the term definitions section of @context
Topics
- ISSUE-37: Clarify prefix expansion
- ISSUE-38: Prefix location clarification
- ISSUE-35: JSON Vocabulary / Data Round-tripping
Topics
- Approval/Disapproval of the Spec Split
- ISSUE-31: Merge @type and @datatype
- ISSUE-34: Type Coercion is confusing
Topics
- ISSUE-12: Arrays as ordered lists or unordered sets
- ISSUE-30: Distinguishing @context documents
Resolutions
- Support @list keyword in @coerce as well as in expanded form in the body of JSON-LD documents.
Topics
- ISSUE-11: Add support for NULL
- ISSUE-16: Linking instance documents and context documents
Resolutions
- Leave support for 'null' keyword in JSON-LD as unspecified.
Topics
- ISSUE-28: Markus' spec-split proposal
- ISSUE-27: Normalization in an external document
- ISSUE-26: Merging @base and @vocab
- ISSUE-8: Optimizing Compact form
Resolutions
- Keep spec together for now with sections for various parts until we need to split into separate documents.
- Move normalization to a separate spec.
- Keep @base and @vocab as separate concepts within JSON-LD
Topics
- Support 'null' in JSON-LD
- Arrays as ordered lists or unordered sets
- Algorithm spec language updates
- API return values - null values vs. Exceptions
- IANA MIME type registration
- Post-call discussion - RDF/JSON, issue tracking
Topics
- New Participants
- Updates on implementations
- Test Suite
- Basic / Beginners Guide to JSON-LD
- JSON-LD spec updates
- JSON-LD Requirements
Topics
- JSON-LD Playground
- Finalizing definition of Linked Data
- Discuss JSON-SD Requirements
Topics
- Introductions
- State of the Specs and Implementations
- Formal Definition of Linked Data