OpenHPS/openhps-rdf

View on GitHub
src/models/Property.ts

Summary

Maintainability
A
1 hr
Test Coverage
import { SerializableMember, SerializableObject } from '@openhps/core';
import { rdfs, ssn, dcterms } from '../vocab';
import { DataFactory } from 'n3';
import { IriString, Thing } from '../rdf';
import { SerializableThing } from './SerializableThing';

@SerializableObject({
    rdf: {
        type: ssn.Property,
    },
})
export class Property extends SerializableThing {
    @SerializableMember({
        rdf: {
            predicate: rdfs.label,
            language: 'en',
        },
    })
    label?: string;

    @SerializableMember({
        rdf: {
            predicate: [rdfs.comment, dcterms.description],
            language: 'en',
        },
    })
    description?: string;

    @SerializableMember({
        rdf: {
            predicate: ssn.isPropertyOf,
            serializer: (value: string) => DataFactory.namedNode(value),
            deserializer: (thing: Thing) => thing.value,
        },
    })
    featureOfInterest?: IriString;
}