Releases: Semantu/linked
Releases · Semantu/linked
v1.1.0
Minor Changes
- #4
c35e686Thanks @flyon! - - AddedShape.selectAll()plus nestedselectAll()support on sub-queries.- Added inherited property deduplication via
NodeShape.getUniquePropertyShapes()so subclass overrides win by label and are selected once. - Improved
selectAll()type inference (including nested queries) and excluded baseShapekeys from inferred results. - Added registration-time override guards:
minCountcannot be lowered,maxCountcannot be increased, andnodeKindcannot be widened. - Fixed
createPropertyShapeto preserve explicitminCount: 0/maxCount: 0. - Expanded tests and README documentation for
selectAll, CRUD return types, and multi-value update semantics.
- Added inherited property deduplication via
v1.0.0
Major Changes
This is a rebranding + extraction release. It moves the core query/shape system into @_linked/core and removes RDF models and React-specific code.
Key changes:
- New package name: import from
@_linked/coreinstead oflincd. - Node references everywhere: use
NodeReferenceValue = {id: string}everywhere.NamedNodedoes not exist in this package.- Before (LINCD.js):
import { NamedNode } from "lincd/models"; const name = NamedNode.getOrCreate("https://schema.org/name");
- After (
@_linked/core):import { createNameSpace } from "@_linked/core/utils/NameSpace"; const schema = createNameSpace("https://schema.org/"); const name = schema("name"); // {id: 'https://schema.org/name'}
- Before (LINCD.js):
- Decorator paths: property decorators now require
NodeReferenceValuepaths (no strings, noNamedNode).- Before:
@literalProperty({path: foaf.name})
- After:
const name = schema('name'); @literalProperty({path: name})
- Before:
- Target class and node kinds:
targetClass,datatype,nodeKind, etc. now takeNodeReferenceValue.- Before:
static targetClass = foaf.Person; // NamedNode
- After:
static targetClass = schema('Person'); // {id: string}
- Before:
- Query context: context values are
NodeReferenceValue(or QResults) instead of RDF nodes.- Before:
setQueryContext("user", NamedNode.getOrCreate(userId), Person);
- After:
setQueryContext("user", { id: userId }, Person);
- Before:
- No RDF models in core:
NamedNode,Literal,BlankNode,Quad,Graph, and all RDF collections are not available in@_linked/core. Use a store package (e.g.@_linked/rdf-mem-store) if you need RDF models or quad-level access. - Shape instances: shape classes no longer carry RDF nodes or instance graph APIs. Decorated accessors register SHACL metadata but do not implement runtime get/set behavior.
- Query tracing: query tracing is proxy-based (no
TestNode/TraceShape). - SHACL metadata: node/property shapes are plain JS objects (
QResult), not RDF triples. - Package registration:
linkedPackagenow stores package metadata as plain JS (PackageMetadata) and keeps legacy URI ids for compatibility. - Storage routing:
LinkedStorageroutes queries to anIQuadStoreimplementation (e.g.@_linked/rdf-mem-store). - Imports updated: ontology namespaces now return
NodeReferenceValueobjects, and decorators requireNodeReferenceValuepaths.