@twin.org/standards-foaf 0.0.3-next.6 → 0.0.3-next.60

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/README.md +1 -1
  2. package/dist/es/dataTypes/foafDataTypes.js +41 -44
  3. package/dist/es/dataTypes/foafDataTypes.js.map +1 -1
  4. package/dist/es/index.js +7 -7
  5. package/dist/es/index.js.map +1 -1
  6. package/dist/es/models/IFoafAgent.js +2 -0
  7. package/dist/es/models/IFoafAgent.js.map +1 -0
  8. package/dist/es/models/IFoafBaseObject.js +2 -0
  9. package/dist/es/models/IFoafBaseObject.js.map +1 -0
  10. package/dist/es/models/IFoafDocument.js +2 -0
  11. package/dist/es/models/IFoafDocument.js.map +1 -0
  12. package/dist/es/models/IFoafGroup.js +2 -0
  13. package/dist/es/models/IFoafGroup.js.map +1 -0
  14. package/dist/es/models/IFoafImage.js +2 -0
  15. package/dist/es/models/IFoafImage.js.map +1 -0
  16. package/dist/es/models/IFoafOrganization.js +2 -0
  17. package/dist/es/models/IFoafOrganization.js.map +1 -0
  18. package/dist/es/models/IFoafPerson.js +2 -0
  19. package/dist/es/models/IFoafPerson.js.map +1 -0
  20. package/dist/es/models/foafContextType.js.map +1 -1
  21. package/dist/es/models/foafContexts.js +12 -6
  22. package/dist/es/models/foafContexts.js.map +1 -1
  23. package/dist/es/schemas/FoafAgent.json +75 -0
  24. package/dist/es/schemas/FoafContextType.json +30 -0
  25. package/dist/es/schemas/FoafDocument.json +54 -0
  26. package/dist/es/schemas/FoafGroup.json +39 -0
  27. package/dist/es/schemas/FoafImage.json +33 -0
  28. package/dist/es/schemas/FoafOrganization.json +25 -0
  29. package/dist/es/schemas/FoafPerson.json +55 -0
  30. package/dist/types/index.d.ts +7 -7
  31. package/dist/types/models/{IAgent.d.ts → IFoafAgent.d.ts} +12 -7
  32. package/dist/types/models/{IBaseObject.d.ts → IFoafBaseObject.d.ts} +7 -4
  33. package/dist/types/models/{IDocument.d.ts → IFoafDocument.d.ts} +8 -3
  34. package/dist/types/models/IFoafGroup.d.ts +29 -0
  35. package/dist/types/models/{IImage.d.ts → IFoafImage.d.ts} +9 -4
  36. package/dist/types/models/IFoafOrganization.d.ts +23 -0
  37. package/dist/types/models/{IPerson.d.ts → IFoafPerson.d.ts} +11 -5
  38. package/dist/types/models/foafContextType.d.ts +2 -1
  39. package/dist/types/models/foafContexts.d.ts +12 -6
  40. package/docs/changelog.md +386 -0
  41. package/docs/examples.md +21 -1
  42. package/docs/reference/classes/FoafDataTypes.md +2 -2
  43. package/docs/reference/index.md +13 -7
  44. package/docs/reference/interfaces/IFoafAgent.md +201 -0
  45. package/docs/reference/interfaces/IFoafBaseObject.md +88 -0
  46. package/docs/reference/interfaces/IFoafDocument.md +163 -0
  47. package/docs/reference/interfaces/IFoafGroup.md +235 -0
  48. package/docs/reference/interfaces/IFoafImage.md +199 -0
  49. package/docs/reference/interfaces/IFoafOrganization.md +223 -0
  50. package/docs/reference/interfaces/IFoafPerson.md +283 -0
  51. package/docs/reference/type-aliases/FoafContextType.md +1 -1
  52. package/docs/reference/type-aliases/IFoafAgentWithAliases.md +12 -0
  53. package/docs/reference/type-aliases/IFoafDocumentWithAliases.md +12 -0
  54. package/docs/reference/type-aliases/IFoafGroupWithAliases.md +12 -0
  55. package/docs/reference/type-aliases/IFoafImageWithAliases.md +12 -0
  56. package/docs/reference/type-aliases/IFoafOrganizationWithAliases.md +12 -0
  57. package/docs/reference/type-aliases/IFoafPersonWithAliases.md +12 -0
  58. package/docs/reference/variables/FoafContexts.md +17 -9
  59. package/docs/reference/variables/FoafTypes.md +6 -6
  60. package/package.json +2 -2
  61. package/dist/es/models/IAgent.js +0 -2
  62. package/dist/es/models/IAgent.js.map +0 -1
  63. package/dist/es/models/IBaseObject.js +0 -2
  64. package/dist/es/models/IBaseObject.js.map +0 -1
  65. package/dist/es/models/IDocument.js +0 -2
  66. package/dist/es/models/IDocument.js.map +0 -1
  67. package/dist/es/models/IGroup.js +0 -2
  68. package/dist/es/models/IGroup.js.map +0 -1
  69. package/dist/es/models/IImage.js +0 -2
  70. package/dist/es/models/IImage.js.map +0 -1
  71. package/dist/es/models/IOrganization.js +0 -2
  72. package/dist/es/models/IOrganization.js.map +0 -1
  73. package/dist/es/models/IPerson.js +0 -2
  74. package/dist/es/models/IPerson.js.map +0 -1
  75. package/dist/es/schemas/Agent.json +0 -176
  76. package/dist/es/schemas/Document.json +0 -168
  77. package/dist/es/schemas/Group.json +0 -191
  78. package/dist/es/schemas/Image.json +0 -173
  79. package/dist/es/schemas/Organization.json +0 -177
  80. package/dist/es/schemas/Person.json +0 -207
  81. package/dist/types/models/IGroup.d.ts +0 -23
  82. package/dist/types/models/IOrganization.d.ts +0 -17
  83. package/docs/reference/interfaces/IAgent.md +0 -197
  84. package/docs/reference/interfaces/IBaseObject.md +0 -92
  85. package/docs/reference/interfaces/IDocument.md +0 -159
  86. package/docs/reference/interfaces/IGroup.md +0 -227
  87. package/docs/reference/interfaces/IImage.md +0 -191
  88. package/docs/reference/interfaces/IOrganization.md +0 -215
  89. package/docs/reference/interfaces/IPerson.md +0 -275
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # TWIN Standards FOAF
2
2
 
3
- Models which define the structure of [FOAF](http://xmlns.com/foaf/0.1/).
3
+ This package provides data models for the [FOAF vocabulary](https://xmlns.com/foaf/spec/), supporting interoperable descriptions of people, organisations, and social relationships.
4
4
 
5
5
  ## Installation
6
6
 
@@ -1,15 +1,16 @@
1
1
  // Copyright 2025 IOTA Stiftung.
2
2
  // SPDX-License-Identifier: Apache-2.0.
3
- import { DataTypeHandlerFactory } from "@twin.org/data-core";
3
+ import { DataTypeHelper } from "@twin.org/data-core";
4
4
  import { JsonLdProcessor } from "@twin.org/data-json-ld";
5
5
  import { FoafContexts } from "../models/foafContexts.js";
6
6
  import { FoafTypes } from "../models/foafTypes.js";
7
- import AgentSchema from "../schemas/Agent.json" with { type: "json" };
8
- import DocumentSchema from "../schemas/Document.json" with { type: "json" };
9
- import GroupSchema from "../schemas/Group.json" with { type: "json" };
10
- import ImageSchema from "../schemas/Image.json" with { type: "json" };
11
- import OrganizationSchema from "../schemas/Organization.json" with { type: "json" };
12
- import PersonSchema from "../schemas/Person.json" with { type: "json" };
7
+ import AgentSchema from "../schemas/FoafAgent.json" with { type: "json" };
8
+ import ContextTypeSchema from "../schemas/FoafContextType.json" with { type: "json" };
9
+ import DocumentSchema from "../schemas/FoafDocument.json" with { type: "json" };
10
+ import GroupSchema from "../schemas/FoafGroup.json" with { type: "json" };
11
+ import ImageSchema from "../schemas/FoafImage.json" with { type: "json" };
12
+ import OrganizationSchema from "../schemas/FoafOrganization.json" with { type: "json" };
13
+ import PersonSchema from "../schemas/FoafPerson.json" with { type: "json" };
13
14
  /**
14
15
  * Data Type registration for FOAF
15
16
  */
@@ -18,48 +19,44 @@ export class FoafDataTypes {
18
19
  * Register redirects for FOAF namespace to enable offline JSON-LD processing.
19
20
  */
20
21
  static registerRedirects() {
21
- JsonLdProcessor.addRedirect(/https?:\/\/xmlns.com\/foaf\/0.1\//, FoafContexts.ContextRedirect);
22
+ JsonLdProcessor.addRedirect(/https?:\/\/xmlns.com\/foaf\/0.1\//, FoafContexts.JsonLdContext);
22
23
  }
23
24
  /**
24
25
  * Register all the data types.
25
26
  */
26
27
  static registerTypes() {
27
- DataTypeHandlerFactory.register(`${FoafContexts.TwinContext}/${FoafTypes.Agent}`, () => ({
28
- context: FoafContexts.TwinContext,
29
- type: FoafTypes.Agent,
30
- defaultValue: {},
31
- jsonSchema: async () => AgentSchema
32
- }));
33
- DataTypeHandlerFactory.register(`${FoafContexts.TwinContext}/${FoafTypes.Document}`, () => ({
34
- context: FoafContexts.TwinContext,
35
- type: FoafTypes.Document,
36
- defaultValue: {},
37
- jsonSchema: async () => DocumentSchema
38
- }));
39
- DataTypeHandlerFactory.register(`${FoafContexts.TwinContext}/${FoafTypes.Group}`, () => ({
40
- context: FoafContexts.TwinContext,
41
- type: FoafTypes.Group,
42
- defaultValue: {},
43
- jsonSchema: async () => GroupSchema
44
- }));
45
- DataTypeHandlerFactory.register(`${FoafContexts.TwinContext}/${FoafTypes.Image}`, () => ({
46
- context: FoafContexts.TwinContext,
47
- type: FoafTypes.Image,
48
- defaultValue: {},
49
- jsonSchema: async () => ImageSchema
50
- }));
51
- DataTypeHandlerFactory.register(`${FoafContexts.TwinContext}/${FoafTypes.Organization}`, () => ({
52
- context: FoafContexts.TwinContext,
53
- type: FoafTypes.Organization,
54
- defaultValue: {},
55
- jsonSchema: async () => OrganizationSchema
56
- }));
57
- DataTypeHandlerFactory.register(`${FoafContexts.TwinContext}/${FoafTypes.Person}`, () => ({
58
- context: FoafContexts.TwinContext,
59
- type: FoafTypes.Person,
60
- defaultValue: {},
61
- jsonSchema: async () => PersonSchema
62
- }));
28
+ const types = [
29
+ {
30
+ type: FoafTypes.Agent,
31
+ schema: AgentSchema
32
+ },
33
+ {
34
+ type: FoafTypes.Document,
35
+ schema: DocumentSchema
36
+ },
37
+ {
38
+ type: FoafTypes.Group,
39
+ schema: GroupSchema
40
+ },
41
+ {
42
+ type: FoafTypes.Image,
43
+ schema: ImageSchema
44
+ },
45
+ {
46
+ type: FoafTypes.Organization,
47
+ schema: OrganizationSchema
48
+ },
49
+ {
50
+ type: FoafTypes.Person,
51
+ schema: PersonSchema
52
+ },
53
+ {
54
+ type: "ContextType",
55
+ schema: ContextTypeSchema
56
+ }
57
+ ];
58
+ DataTypeHelper.registerTypes(FoafContexts.Namespace, FoafContexts.JsonLdContext, types);
59
+ DataTypeHelper.registerTypes(FoafContexts.JsonSchemaNamespace, FoafContexts.JsonLdContext, types.map(t => ({ type: `Foaf${t.type}`, schema: t.schema })));
63
60
  }
64
61
  }
65
62
  //# sourceMappingURL=foafDataTypes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"foafDataTypes.js","sourceRoot":"","sources":["../../../src/dataTypes/foafDataTypes.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport { DataTypeHandlerFactory } from \"@twin.org/data-core\";\nimport { JsonLdProcessor } from \"@twin.org/data-json-ld\";\nimport type { JSONSchema7 } from \"json-schema\";\nimport { FoafContexts } from \"../models/foafContexts.js\";\nimport { FoafTypes } from \"../models/foafTypes.js\";\nimport AgentSchema from \"../schemas/Agent.json\" with { type: \"json\" };\nimport DocumentSchema from \"../schemas/Document.json\" with { type: \"json\" };\nimport GroupSchema from \"../schemas/Group.json\" with { type: \"json\" };\nimport ImageSchema from \"../schemas/Image.json\" with { type: \"json\" };\nimport OrganizationSchema from \"../schemas/Organization.json\" with { type: \"json\" };\nimport PersonSchema from \"../schemas/Person.json\" with { type: \"json\" };\n\n/**\n * Data Type registration for FOAF\n */\nexport abstract class FoafDataTypes {\n\t/**\n\t * Register redirects for FOAF namespace to enable offline JSON-LD processing.\n\t */\n\tpublic static registerRedirects(): void {\n\t\tJsonLdProcessor.addRedirect(/https?:\\/\\/xmlns.com\\/foaf\\/0.1\\//, FoafContexts.ContextRedirect);\n\t}\n\n\t/**\n\t * Register all the data types.\n\t */\n\tpublic static registerTypes(): void {\n\t\tDataTypeHandlerFactory.register(`${FoafContexts.TwinContext}/${FoafTypes.Agent}`, () => ({\n\t\t\tcontext: FoafContexts.TwinContext,\n\t\t\ttype: FoafTypes.Agent,\n\t\t\tdefaultValue: {},\n\t\t\tjsonSchema: async () => AgentSchema as JSONSchema7\n\t\t}));\n\n\t\tDataTypeHandlerFactory.register(`${FoafContexts.TwinContext}/${FoafTypes.Document}`, () => ({\n\t\t\tcontext: FoafContexts.TwinContext,\n\t\t\ttype: FoafTypes.Document,\n\t\t\tdefaultValue: {},\n\t\t\tjsonSchema: async () => DocumentSchema as JSONSchema7\n\t\t}));\n\n\t\tDataTypeHandlerFactory.register(`${FoafContexts.TwinContext}/${FoafTypes.Group}`, () => ({\n\t\t\tcontext: FoafContexts.TwinContext,\n\t\t\ttype: FoafTypes.Group,\n\t\t\tdefaultValue: {},\n\t\t\tjsonSchema: async () => GroupSchema as JSONSchema7\n\t\t}));\n\n\t\tDataTypeHandlerFactory.register(`${FoafContexts.TwinContext}/${FoafTypes.Image}`, () => ({\n\t\t\tcontext: FoafContexts.TwinContext,\n\t\t\ttype: FoafTypes.Image,\n\t\t\tdefaultValue: {},\n\t\t\tjsonSchema: async () => ImageSchema as JSONSchema7\n\t\t}));\n\n\t\tDataTypeHandlerFactory.register(\n\t\t\t`${FoafContexts.TwinContext}/${FoafTypes.Organization}`,\n\t\t\t() => ({\n\t\t\t\tcontext: FoafContexts.TwinContext,\n\t\t\t\ttype: FoafTypes.Organization,\n\t\t\t\tdefaultValue: {},\n\t\t\t\tjsonSchema: async () => OrganizationSchema as JSONSchema7\n\t\t\t})\n\t\t);\n\n\t\tDataTypeHandlerFactory.register(`${FoafContexts.TwinContext}/${FoafTypes.Person}`, () => ({\n\t\t\tcontext: FoafContexts.TwinContext,\n\t\t\ttype: FoafTypes.Person,\n\t\t\tdefaultValue: {},\n\t\t\tjsonSchema: async () => PersonSchema as JSONSchema7\n\t\t}));\n\t}\n}\n"]}
1
+ {"version":3,"file":"foafDataTypes.js","sourceRoot":"","sources":["../../../src/dataTypes/foafDataTypes.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,WAAW,MAAM,2BAA2B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1E,OAAO,iBAAiB,MAAM,iCAAiC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACtF,OAAO,cAAc,MAAM,8BAA8B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAChF,OAAO,WAAW,MAAM,2BAA2B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1E,OAAO,WAAW,MAAM,2BAA2B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1E,OAAO,kBAAkB,MAAM,kCAAkC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACxF,OAAO,YAAY,MAAM,4BAA4B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAE5E;;GAEG;AACH,MAAM,OAAgB,aAAa;IAClC;;OAEG;IACI,MAAM,CAAC,iBAAiB;QAC9B,eAAe,CAAC,WAAW,CAAC,mCAAmC,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC;IAC9F,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,aAAa;QAC1B,MAAM,KAAK,GAAG;YACb;gBACC,IAAI,EAAE,SAAS,CAAC,KAAK;gBACrB,MAAM,EAAE,WAAW;aACnB;YACD;gBACC,IAAI,EAAE,SAAS,CAAC,QAAQ;gBACxB,MAAM,EAAE,cAAc;aACtB;YACD;gBACC,IAAI,EAAE,SAAS,CAAC,KAAK;gBACrB,MAAM,EAAE,WAAW;aACnB;YACD;gBACC,IAAI,EAAE,SAAS,CAAC,KAAK;gBACrB,MAAM,EAAE,WAAW;aACnB;YACD;gBACC,IAAI,EAAE,SAAS,CAAC,YAAY;gBAC5B,MAAM,EAAE,kBAAkB;aAC1B;YACD;gBACC,IAAI,EAAE,SAAS,CAAC,MAAM;gBACtB,MAAM,EAAE,YAAY;aACpB;YACD;gBACC,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,iBAAiB;aACzB;SACD,CAAC;QAEF,cAAc,CAAC,aAAa,CAAC,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QACxF,cAAc,CAAC,aAAa,CAC3B,YAAY,CAAC,mBAAmB,EAChC,YAAY,CAAC,aAAa,EAC1B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAC7D,CAAC;IACH,CAAC;CACD","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport { DataTypeHelper } from \"@twin.org/data-core\";\nimport { JsonLdProcessor } from \"@twin.org/data-json-ld\";\nimport { FoafContexts } from \"../models/foafContexts.js\";\nimport { FoafTypes } from \"../models/foafTypes.js\";\nimport AgentSchema from \"../schemas/FoafAgent.json\" with { type: \"json\" };\nimport ContextTypeSchema from \"../schemas/FoafContextType.json\" with { type: \"json\" };\nimport DocumentSchema from \"../schemas/FoafDocument.json\" with { type: \"json\" };\nimport GroupSchema from \"../schemas/FoafGroup.json\" with { type: \"json\" };\nimport ImageSchema from \"../schemas/FoafImage.json\" with { type: \"json\" };\nimport OrganizationSchema from \"../schemas/FoafOrganization.json\" with { type: \"json\" };\nimport PersonSchema from \"../schemas/FoafPerson.json\" with { type: \"json\" };\n\n/**\n * Data Type registration for FOAF\n */\nexport abstract class FoafDataTypes {\n\t/**\n\t * Register redirects for FOAF namespace to enable offline JSON-LD processing.\n\t */\n\tpublic static registerRedirects(): void {\n\t\tJsonLdProcessor.addRedirect(/https?:\\/\\/xmlns.com\\/foaf\\/0.1\\//, FoafContexts.JsonLdContext);\n\t}\n\n\t/**\n\t * Register all the data types.\n\t */\n\tpublic static registerTypes(): void {\n\t\tconst types = [\n\t\t\t{\n\t\t\t\ttype: FoafTypes.Agent,\n\t\t\t\tschema: AgentSchema\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: FoafTypes.Document,\n\t\t\t\tschema: DocumentSchema\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: FoafTypes.Group,\n\t\t\t\tschema: GroupSchema\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: FoafTypes.Image,\n\t\t\t\tschema: ImageSchema\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: FoafTypes.Organization,\n\t\t\t\tschema: OrganizationSchema\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: FoafTypes.Person,\n\t\t\t\tschema: PersonSchema\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: \"ContextType\",\n\t\t\t\tschema: ContextTypeSchema\n\t\t\t}\n\t\t];\n\n\t\tDataTypeHelper.registerTypes(FoafContexts.Namespace, FoafContexts.JsonLdContext, types);\n\t\tDataTypeHelper.registerTypes(\n\t\t\tFoafContexts.JsonSchemaNamespace,\n\t\t\tFoafContexts.JsonLdContext,\n\t\t\ttypes.map(t => ({ type: `Foaf${t.type}`, schema: t.schema }))\n\t\t);\n\t}\n}\n"]}
package/dist/es/index.js CHANGED
@@ -1,13 +1,13 @@
1
1
  // Copyright 2025 IOTA Stiftung.
2
2
  // SPDX-License-Identifier: Apache-2.0.
3
3
  export * from "./dataTypes/foafDataTypes.js";
4
- export * from "./models/IAgent.js";
5
- export * from "./models/IBaseObject.js";
6
- export * from "./models/IDocument.js";
7
- export * from "./models/IGroup.js";
8
- export * from "./models/IImage.js";
9
- export * from "./models/IOrganization.js";
10
- export * from "./models/IPerson.js";
4
+ export * from "./models/IFoafAgent.js";
5
+ export * from "./models/IFoafBaseObject.js";
6
+ export * from "./models/IFoafDocument.js";
7
+ export * from "./models/IFoafGroup.js";
8
+ export * from "./models/IFoafImage.js";
9
+ export * from "./models/IFoafOrganization.js";
10
+ export * from "./models/IFoafPerson.js";
11
11
  export * from "./models/foafContexts.js";
12
12
  export * from "./models/foafContextType.js";
13
13
  export * from "./models/foafTypes.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nexport * from \"./dataTypes/foafDataTypes.js\";\nexport * from \"./models/IAgent.js\";\nexport * from \"./models/IBaseObject.js\";\nexport * from \"./models/IDocument.js\";\nexport * from \"./models/IGroup.js\";\nexport * from \"./models/IImage.js\";\nexport * from \"./models/IOrganization.js\";\nexport * from \"./models/IPerson.js\";\nexport * from \"./models/foafContexts.js\";\nexport * from \"./models/foafContextType.js\";\nexport * from \"./models/foafTypes.js\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nexport * from \"./dataTypes/foafDataTypes.js\";\nexport * from \"./models/IFoafAgent.js\";\nexport * from \"./models/IFoafBaseObject.js\";\nexport * from \"./models/IFoafDocument.js\";\nexport * from \"./models/IFoafGroup.js\";\nexport * from \"./models/IFoafImage.js\";\nexport * from \"./models/IFoafOrganization.js\";\nexport * from \"./models/IFoafPerson.js\";\nexport * from \"./models/foafContexts.js\";\nexport * from \"./models/foafContextType.js\";\nexport * from \"./models/foafTypes.js\";\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IFoafAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IFoafAgent.js","sourceRoot":"","sources":["../../../src/models/IFoafAgent.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { ObjectOrArray } from \"@twin.org/core\";\nimport type { IJsonLdNodeObject, JsonLdObjectWithAliases } from \"@twin.org/data-json-ld\";\nimport type { FoafContextType } from \"./foafContextType.js\";\nimport type { FoafTypes } from \"./foafTypes.js\";\nimport type { IFoafBaseObject } from \"./IFoafBaseObject.js\";\nimport type { IFoafDocument } from \"./IFoafDocument.js\";\n\n/**\n * A FOAF Agent.\n * @see http://xmlns.com/foaf/0.1/\n */\nexport interface IFoafAgent extends IFoafBaseObject {\n\t/**\n\t * The LD Context.\n\t */\n\t\"@context\"?: FoafContextType;\n\n\t/**\n\t * Type.\n\t */\n\t\"@type\":\n\t\t| typeof FoafTypes.Agent\n\t\t| typeof FoafTypes.Person\n\t\t| typeof FoafTypes.Organization\n\t\t| typeof FoafTypes.Group\n\t\t| string;\n\n\t/**\n\t * The age in years of some agent.\n\t * @see http://xmlns.com/foaf/spec/#term_age\n\t */\n\tage?: number;\n\n\t/**\n\t * Something that was made by this agent.\n\t * @see http://xmlns.com/foaf/spec/#term_made\n\t */\n\tmade?: ObjectOrArray<IJsonLdNodeObject>;\n\n\t/**\n\t * A weblog of some thing (whether person, group, company etc.).\n\t * @see http://xmlns.com/foaf/spec/#term_weblog\n\t */\n\tweblog?: IFoafDocument;\n\n\t/**\n\t * An OpenID for an agent.\n\t * @see http://xmlns.com/foaf/spec/#term_openid\n\t */\n\topenid?: IFoafDocument;\n\n\t/**\n\t * A page about a topic of interest to this person.\n\t * @see http://xmlns.com/foaf/spec/#term_interest\n\t */\n\tinterest?: IFoafDocument;\n\n\t/**\n\t * A thing of interest to this person.\n\t * @see http://xmlns.com/foaf/spec/#term_topic_interest\n\t */\n\ttopic_interest?: IJsonLdNodeObject;\n}\n\n/**\n * A FOAF Agent with FOAF-prefixed aliases for non-JSON-LD keys.\n * This allows using either prefixed aliases (e.g., \"foaf:name\") when defining a FOAF Agent.\n */\nexport type IFoafAgentWithAliases<T extends string = \"foaf\"> = JsonLdObjectWithAliases<\n\tIFoafAgent,\n\tT\n>;\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IFoafBaseObject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IFoafBaseObject.js","sourceRoot":"","sources":["../../../src/models/IFoafBaseObject.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { FoafContextType } from \"./foafContextType.js\";\nimport type { IFoafImage } from \"./IFoafImage.js\";\n\n/**\n * Core FOAF Properties\n * @see http://xmlns.com/foaf/0.1/\n */\nexport interface IFoafBaseObject {\n\t/**\n\t * The LD Context.\n\t */\n\t\"@context\"?: FoafContextType;\n\n\t/**\n\t * The unique identifier for the FOAF object.\n\t */\n\t\"@id\"?: string;\n\n\t/**\n\t * A name for some thing.\n\t * @see http://xmlns.com/foaf/spec/#term_name\n\t */\n\tname?: string;\n\n\t/**\n\t * Title (Mr, Mrs, Ms, Dr. etc)\n\t * @see http://xmlns.com/foaf/spec/#term_title\n\t */\n\ttitle?: string;\n\n\t/**\n\t * A personal mailbox, ie. an Internet mailbox associated with exactly one owner, the first owner of this mailbox\n\t * @see http://xmlns.com/foaf/spec/#term_mbox\n\t */\n\tmbox?: string;\n\n\t/**\n\t * A homepage for some thing.\n\t * @see http://xmlns.com/foaf/spec/#term_homepage\n\t */\n\thomepage?: string;\n\n\t/**\n\t * A depiction of some thing.\n\t * @see http://xmlns.com/foaf/spec/#term_depiction\n\t */\n\tdepiction?: IFoafImage;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IFoafDocument.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IFoafDocument.js","sourceRoot":"","sources":["../../../src/models/IFoafDocument.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { ObjectOrArray } from \"@twin.org/core\";\nimport type { IJsonLdNodeObject, JsonLdObjectWithAliases } from \"@twin.org/data-json-ld\";\nimport type { FoafContextType } from \"./foafContextType.js\";\nimport type { FoafTypes } from \"./foafTypes.js\";\nimport type { IFoafBaseObject } from \"./IFoafBaseObject.js\";\n\n/**\n * A FOAF Document\n * @see http://xmlns.com/foaf/0.1/\n */\nexport interface IFoafDocument extends IFoafBaseObject {\n\t/**\n\t * The LD Context.\n\t */\n\t\"@context\"?: FoafContextType;\n\n\t/**\n\t * Type.\n\t */\n\t\"@type\": typeof FoafTypes.Document | typeof FoafTypes.Image;\n\n\t/**\n\t * A topic of some page or document.\n\t * @see http://xmlns.com/foaf/spec/#term_topic\n\t */\n\ttopic?: string;\n\n\t/**\n\t * The primary topic of some page or document.\n\t * @see http://xmlns.com/foaf/spec/#term_primaryTopic\n\t */\n\tprimaryTopic?: ObjectOrArray<IJsonLdNodeObject>;\n\n\t/**\n\t * A sha1sum hash, in hex.\n\t * @see http://xmlns.com/foaf/spec/#term_sha1sum\n\t */\n\tsha1?: string;\n}\n\n/**\n * A FOAF Document with FOAF-prefixed aliases for non-JSON-LD keys.\n * This allows using either prefixed aliases (e.g., \"foaf:name\") when defining a FOAF Document.\n */\nexport type IFoafDocumentWithAliases<T extends string = \"foaf\"> = JsonLdObjectWithAliases<\n\tIFoafDocument,\n\tT\n>;\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IFoafGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IFoafGroup.js","sourceRoot":"","sources":["../../../src/models/IFoafGroup.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { ObjectOrArray } from \"@twin.org/core\";\nimport type { JsonLdObjectWithAliases } from \"@twin.org/data-json-ld\";\nimport type { FoafContextType } from \"./foafContextType.js\";\nimport type { FoafTypes } from \"./foafTypes.js\";\nimport type { IFoafAgent } from \"./IFoafAgent.js\";\n\n/**\n * A FOAF Group.\n * @see http://xmlns.com/foaf/0.1/\n */\nexport interface IFoafGroup extends IFoafAgent {\n\t/**\n\t * The LD Context.\n\t */\n\t\"@context\"?: FoafContextType;\n\n\t/**\n\t * Type.\n\t */\n\t\"@type\": typeof FoafTypes.Group;\n\n\t/**\n\t * Indicates a member of a Group\n\t * @see http://xmlns.com/foaf/spec/#term_member\n\t */\n\tmember?: ObjectOrArray<IFoafAgent>;\n}\n\n/**\n * A FOAF Group with FOAF-prefixed aliases for non-JSON-LD keys.\n * This allows using either prefixed aliases (e.g., \"foaf:name\") when defining a FOAF Group.\n */\nexport type IFoafGroupWithAliases<T extends string = \"foaf\"> = JsonLdObjectWithAliases<\n\tIFoafGroup,\n\tT\n>;\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IFoafImage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IFoafImage.js","sourceRoot":"","sources":["../../../src/models/IFoafImage.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IJsonLdNodeObject, JsonLdObjectWithAliases } from \"@twin.org/data-json-ld\";\nimport type { FoafContextType } from \"./foafContextType.js\";\nimport type { FoafTypes } from \"./foafTypes.js\";\nimport type { IFoafDocument } from \"./IFoafDocument.js\";\n\n/**\n * A FOAF image.\n * @see http://xmlns.com/foaf/0.1/\n */\nexport interface IFoafImage extends IFoafDocument {\n\t/**\n\t * The LD Context.\n\t *\n\t */\n\t\"@context\"?: FoafContextType;\n\n\t/**\n\t * Type.\n\t */\n\t\"@type\": typeof FoafTypes.Image;\n\n\t/**\n\t * A thing depicted in this representation.\n\t * @see http://xmlns.com/foaf/spec/#term_depicts\n\t */\n\tdepicts?: IJsonLdNodeObject;\n\n\t/**\n\t * A derived thumbnail image.\n\t * @see http://xmlns.com/foaf/spec/#term_thumbnail\n\t */\n\tthumbnail?: IFoafImage;\n}\n\n/**\n * A FOAF Image with FOAF-prefixed aliases for non-JSON-LD keys.\n * This allows using either prefixed aliases (e.g., \"foaf:name\") when defining a FOAF Image.\n */\nexport type IFoafImageWithAliases<T extends string = \"foaf\"> = JsonLdObjectWithAliases<\n\tIFoafImage,\n\tT\n>;\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IFoafOrganization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IFoafOrganization.js","sourceRoot":"","sources":["../../../src/models/IFoafOrganization.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { JsonLdObjectWithAliases } from \"@twin.org/data-json-ld\";\nimport type { FoafContextType } from \"./foafContextType.js\";\nimport type { FoafTypes } from \"./foafTypes.js\";\nimport type { IFoafAgent } from \"./IFoafAgent.js\";\n\n/**\n * A FOAF Organization.\n * @see http://xmlns.com/foaf/0.1/\n */\nexport interface IFoafOrganization extends IFoafAgent {\n\t/**\n\t * The LD Context.\n\t */\n\t\"@context\"?: FoafContextType;\n\n\t/**\n\t * Type.\n\t */\n\t\"@type\": typeof FoafTypes.Organization;\n}\n\n/**\n * A FOAF Organization with FOAF-prefixed aliases for non-JSON-LD keys.\n * This allows using either prefixed aliases (e.g., \"foaf:name\") when defining a FOAF Organization.\n */\nexport type IFoafOrganizationWithAliases<T extends string = \"foaf\"> = JsonLdObjectWithAliases<\n\tIFoafOrganization,\n\tT\n>;\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IFoafPerson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IFoafPerson.js","sourceRoot":"","sources":["../../../src/models/IFoafPerson.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { ObjectOrArray } from \"@twin.org/core\";\nimport type { JsonLdObjectWithAliases } from \"@twin.org/data-json-ld\";\nimport type { FoafContextType } from \"./foafContextType.js\";\nimport type { FoafTypes } from \"./foafTypes.js\";\nimport type { IFoafAgent } from \"./IFoafAgent.js\";\nimport type { IFoafImage } from \"./IFoafImage.js\";\n\n/**\n * A FOAF Person.\n * @see http://xmlns.com/foaf/0.1/\n */\nexport interface IFoafPerson extends IFoafAgent {\n\t/**\n\t * The LD Context.\n\t */\n\t\"@context\"?: FoafContextType;\n\n\t/**\n\t * Type.\n\t */\n\t\"@type\": typeof FoafTypes.Person;\n\n\t/**\n\t * The family name of some person.\n\t * @see http://xmlns.com/foaf/spec/#term_familyName\n\t */\n\tfamilyName?: string;\n\n\t/**\n\t * The given name of some person.\n\t * @see http://xmlns.com/foaf/spec/#term_givenName\n\t */\n\tgivenName?: string;\n\n\t/**\n\t * A person known by this person (indicating some level of reciprocated interaction between the parties).\n\t * @see http://xmlns.com/foaf/spec/#term_knows\n\t */\n\tknows?: ObjectOrArray<IFoafAgent>;\n\n\t/**\n\t * An image that can be used to represent some thing.\n\t * @see http://xmlns.com/foaf/spec/#term_img\n\t */\n\timg?: IFoafImage;\n\n\t/**\n\t * A short informal nickname characterizing an agent (includes login identifiers, IRC and other chat nicknames).\n\t * @see http://xmlns.com/foaf/spec/#term_nick\n\t */\n\tnick?: string;\n}\n\n/**\n * A FOAF Person with FOAF-prefixed aliases for non-JSON-LD keys.\n * This allows using either prefixed aliases (e.g., \"foaf:name\") when defining a FOAF Person.\n */\nexport type IFoafPersonWithAliases<T extends string = \"foaf\"> = JsonLdObjectWithAliases<\n\tIFoafPerson,\n\tT\n>;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"foafContextType.js","sourceRoot":"","sources":["../../../src/models/foafContextType.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IJsonLdContextDefinitionElement } from \"@twin.org/data-json-ld\";\nimport type { FoafContexts } from \"./foafContexts.js\";\n\n/**\n * The FOAF JSON-LD context type.\n */\nexport type FoafContextType =\n\t| typeof FoafContexts.ContextRoot\n\t| [typeof FoafContexts.ContextRoot]\n\t| [...IJsonLdContextDefinitionElement[], typeof FoafContexts.ContextRoot];\n"]}
1
+ {"version":3,"file":"foafContextType.js","sourceRoot":"","sources":["../../../src/models/foafContextType.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { SingleOccurrenceArray } from \"@twin.org/core\";\nimport type { IJsonLdContextDefinitionElement } from \"@twin.org/data-json-ld\";\nimport type { FoafContexts } from \"./foafContexts.js\";\n\n/**\n * The FOAF JSON-LD context type.\n */\nexport type FoafContextType =\n\t| typeof FoafContexts.Context\n\t| SingleOccurrenceArray<IJsonLdContextDefinitionElement, typeof FoafContexts.Context>;\n"]}
@@ -6,16 +6,22 @@
6
6
  // eslint-disable-next-line @typescript-eslint/naming-convention
7
7
  export const FoafContexts = {
8
8
  /**
9
- * The FOAF LD Context.
9
+ * The canonical RDF namespace URI.
10
10
  */
11
- ContextRoot: "https://xmlns.com/foaf/0.1/",
11
+ Namespace: "https://xmlns.com/foaf/0.1/",
12
12
  /**
13
- * The TWIN context for FOAF.
13
+ * The value to use in @context.
14
+ * Note: Context matches Namespace (both include trailing slash) as per FOAF specification.
15
+ * The FOAF JSON-LD context URL format includes a trailing slash.
14
16
  */
15
- TwinContext: "https://schema.twindev.org/foaf/",
17
+ Context: "https://xmlns.com/foaf/0.1/",
16
18
  /**
17
- * The TWIN context redirect for JSON-LD.
19
+ * The JSON-LD Context URL.
18
20
  */
19
- ContextRedirect: "https://schema.twindev.org/foaf/types.jsonld"
21
+ JsonLdContext: "https://schema.twindev.org/foaf/types.jsonld",
22
+ /**
23
+ * The namespace location of the hosted version of the JSON Schema.
24
+ */
25
+ JsonSchemaNamespace: "https://schema.twindev.org/foaf/"
20
26
  };
21
27
  //# sourceMappingURL=foafContexts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"foafContexts.js","sourceRoot":"","sources":["../../../src/models/foafContexts.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AAEvC;;GAEG;AACH,gEAAgE;AAChE,MAAM,CAAC,MAAM,YAAY,GAAG;IAC3B;;OAEG;IACH,WAAW,EAAE,6BAA6B;IAE1C;;OAEG;IACH,WAAW,EAAE,kCAAkC;IAE/C;;OAEG;IACH,eAAe,EAAE,8CAA8C;CACtD,CAAC","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * The LD Contexts concerning FOAF.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const FoafContexts = {\n\t/**\n\t * The FOAF LD Context.\n\t */\n\tContextRoot: \"https://xmlns.com/foaf/0.1/\",\n\n\t/**\n\t * The TWIN context for FOAF.\n\t */\n\tTwinContext: \"https://schema.twindev.org/foaf/\",\n\n\t/**\n\t * The TWIN context redirect for JSON-LD.\n\t */\n\tContextRedirect: \"https://schema.twindev.org/foaf/types.jsonld\"\n} as const;\n\n/**\n * The LD Contexts concerning FOAF.\n */\nexport type FoafContexts = (typeof FoafContexts)[keyof typeof FoafContexts];\n"]}
1
+ {"version":3,"file":"foafContexts.js","sourceRoot":"","sources":["../../../src/models/foafContexts.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AAEvC;;GAEG;AACH,gEAAgE;AAChE,MAAM,CAAC,MAAM,YAAY,GAAG;IAC3B;;OAEG;IACH,SAAS,EAAE,6BAA6B;IAExC;;;;OAIG;IACH,OAAO,EAAE,6BAA6B;IAEtC;;OAEG;IACH,aAAa,EAAE,8CAA8C;IAE7D;;OAEG;IACH,mBAAmB,EAAE,kCAAkC;CAC9C,CAAC","sourcesContent":["// Copyright 2025 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * The LD Contexts concerning FOAF.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const FoafContexts = {\n\t/**\n\t * The canonical RDF namespace URI.\n\t */\n\tNamespace: \"https://xmlns.com/foaf/0.1/\",\n\n\t/**\n\t * The value to use in @context.\n\t * Note: Context matches Namespace (both include trailing slash) as per FOAF specification.\n\t * The FOAF JSON-LD context URL format includes a trailing slash.\n\t */\n\tContext: \"https://xmlns.com/foaf/0.1/\",\n\n\t/**\n\t * The JSON-LD Context URL.\n\t */\n\tJsonLdContext: \"https://schema.twindev.org/foaf/types.jsonld\",\n\n\t/**\n\t * The namespace location of the hosted version of the JSON Schema.\n\t */\n\tJsonSchemaNamespace: \"https://schema.twindev.org/foaf/\"\n} as const;\n\n/**\n * The LD Contexts concerning FOAF.\n */\nexport type FoafContexts = (typeof FoafContexts)[keyof typeof FoafContexts];\n"]}
@@ -0,0 +1,75 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schema.twindev.org/foaf/FoafAgent",
4
+ "title": "FoafAgent",
5
+ "description": "A FOAF Agent.",
6
+ "type": "object",
7
+ "properties": {
8
+ "@context": {
9
+ "$ref": "https://schema.twindev.org/foaf/FoafContextType",
10
+ "description": "The LD Context."
11
+ },
12
+ "@type": {
13
+ "anyOf": [
14
+ {
15
+ "const": "Agent"
16
+ },
17
+ {
18
+ "const": "Person"
19
+ },
20
+ {
21
+ "const": "Organization"
22
+ },
23
+ {
24
+ "const": "Group"
25
+ },
26
+ {
27
+ "type": "string"
28
+ }
29
+ ],
30
+ "description": "Type."
31
+ },
32
+ "age": {
33
+ "type": "number",
34
+ "description": "The age in years of some agent."
35
+ },
36
+ "made": {
37
+ "anyOf": [
38
+ {
39
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject"
40
+ },
41
+ {
42
+ "type": "array",
43
+ "items": {
44
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject"
45
+ }
46
+ }
47
+ ],
48
+ "description": "Something that was made by this agent."
49
+ },
50
+ "weblog": {
51
+ "$ref": "https://schema.twindev.org/foaf/FoafDocument",
52
+ "description": "A weblog of some thing (whether person, group, company etc.)."
53
+ },
54
+ "openid": {
55
+ "$ref": "https://schema.twindev.org/foaf/FoafDocument",
56
+ "description": "An OpenID for an agent."
57
+ },
58
+ "interest": {
59
+ "$ref": "https://schema.twindev.org/foaf/FoafDocument",
60
+ "description": "A page about a topic of interest to this person."
61
+ },
62
+ "topic_interest": {
63
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject",
64
+ "description": "A thing of interest to this person."
65
+ }
66
+ },
67
+ "required": [
68
+ "@type"
69
+ ],
70
+ "allOf": [
71
+ {
72
+ "$ref": "https://schema.twindev.org/foaf/FoafBaseObject"
73
+ }
74
+ ]
75
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schema.twindev.org/foaf/FoafContextType",
4
+ "title": "FoafContextType",
5
+ "description": "The FOAF JSON-LD context type.",
6
+ "anyOf": [
7
+ {
8
+ "const": "https://xmlns.com/foaf/0.1/"
9
+ },
10
+ {
11
+ "type": "array",
12
+ "items": {
13
+ "anyOf": [
14
+ {
15
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdContextDefinitionElement"
16
+ },
17
+ {
18
+ "const": "https://xmlns.com/foaf/0.1/"
19
+ }
20
+ ]
21
+ },
22
+ "contains": {
23
+ "const": "https://xmlns.com/foaf/0.1/"
24
+ },
25
+ "minContains": 1,
26
+ "maxContains": 1,
27
+ "minItems": 1
28
+ }
29
+ ]
30
+ }
@@ -0,0 +1,54 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schema.twindev.org/foaf/FoafDocument",
4
+ "title": "FoafDocument",
5
+ "description": "A FOAF Document",
6
+ "type": "object",
7
+ "properties": {
8
+ "@context": {
9
+ "$ref": "https://schema.twindev.org/foaf/FoafContextType",
10
+ "description": "The LD Context."
11
+ },
12
+ "@type": {
13
+ "anyOf": [
14
+ {
15
+ "const": "Document"
16
+ },
17
+ {
18
+ "const": "Image"
19
+ }
20
+ ],
21
+ "description": "Type."
22
+ },
23
+ "topic": {
24
+ "type": "string",
25
+ "description": "A topic of some page or document."
26
+ },
27
+ "primaryTopic": {
28
+ "anyOf": [
29
+ {
30
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject"
31
+ },
32
+ {
33
+ "type": "array",
34
+ "items": {
35
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject"
36
+ }
37
+ }
38
+ ],
39
+ "description": "The primary topic of some page or document."
40
+ },
41
+ "sha1": {
42
+ "type": "string",
43
+ "description": "A sha1sum hash, in hex."
44
+ }
45
+ },
46
+ "required": [
47
+ "@type"
48
+ ],
49
+ "allOf": [
50
+ {
51
+ "$ref": "https://schema.twindev.org/foaf/FoafBaseObject"
52
+ }
53
+ ]
54
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schema.twindev.org/foaf/FoafGroup",
4
+ "title": "FoafGroup",
5
+ "description": "A FOAF Group.",
6
+ "type": "object",
7
+ "properties": {
8
+ "@context": {
9
+ "$ref": "https://schema.twindev.org/foaf/FoafContextType",
10
+ "description": "The LD Context."
11
+ },
12
+ "@type": {
13
+ "const": "Group",
14
+ "description": "Type."
15
+ },
16
+ "member": {
17
+ "anyOf": [
18
+ {
19
+ "$ref": "https://schema.twindev.org/foaf/FoafAgent"
20
+ },
21
+ {
22
+ "type": "array",
23
+ "items": {
24
+ "$ref": "https://schema.twindev.org/foaf/FoafAgent"
25
+ }
26
+ }
27
+ ],
28
+ "description": "Indicates a member of a Group"
29
+ }
30
+ },
31
+ "required": [
32
+ "@type"
33
+ ],
34
+ "allOf": [
35
+ {
36
+ "$ref": "https://schema.twindev.org/foaf/FoafAgent"
37
+ }
38
+ ]
39
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schema.twindev.org/foaf/FoafImage",
4
+ "title": "FoafImage",
5
+ "description": "A FOAF image.",
6
+ "type": "object",
7
+ "properties": {
8
+ "@context": {
9
+ "$ref": "https://schema.twindev.org/foaf/FoafContextType",
10
+ "description": "The LD Context."
11
+ },
12
+ "@type": {
13
+ "const": "Image",
14
+ "description": "Type."
15
+ },
16
+ "depicts": {
17
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodeObject",
18
+ "description": "A thing depicted in this representation."
19
+ },
20
+ "thumbnail": {
21
+ "$ref": "https://schema.twindev.org/foaf/FoafImage",
22
+ "description": "A derived thumbnail image."
23
+ }
24
+ },
25
+ "required": [
26
+ "@type"
27
+ ],
28
+ "allOf": [
29
+ {
30
+ "$ref": "https://schema.twindev.org/foaf/FoafDocument"
31
+ }
32
+ ]
33
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schema.twindev.org/foaf/FoafOrganization",
4
+ "title": "FoafOrganization",
5
+ "description": "A FOAF Organization.",
6
+ "type": "object",
7
+ "properties": {
8
+ "@context": {
9
+ "$ref": "https://schema.twindev.org/foaf/FoafContextType",
10
+ "description": "The LD Context."
11
+ },
12
+ "@type": {
13
+ "const": "Organization",
14
+ "description": "Type."
15
+ }
16
+ },
17
+ "required": [
18
+ "@type"
19
+ ],
20
+ "allOf": [
21
+ {
22
+ "$ref": "https://schema.twindev.org/foaf/FoafAgent"
23
+ }
24
+ ]
25
+ }
@@ -0,0 +1,55 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schema.twindev.org/foaf/FoafPerson",
4
+ "title": "FoafPerson",
5
+ "description": "A FOAF Person.",
6
+ "type": "object",
7
+ "properties": {
8
+ "@context": {
9
+ "$ref": "https://schema.twindev.org/foaf/FoafContextType",
10
+ "description": "The LD Context."
11
+ },
12
+ "@type": {
13
+ "const": "Person",
14
+ "description": "Type."
15
+ },
16
+ "familyName": {
17
+ "type": "string",
18
+ "description": "The family name of some person."
19
+ },
20
+ "givenName": {
21
+ "type": "string",
22
+ "description": "The given name of some person."
23
+ },
24
+ "knows": {
25
+ "anyOf": [
26
+ {
27
+ "$ref": "https://schema.twindev.org/foaf/FoafAgent"
28
+ },
29
+ {
30
+ "type": "array",
31
+ "items": {
32
+ "$ref": "https://schema.twindev.org/foaf/FoafAgent"
33
+ }
34
+ }
35
+ ],
36
+ "description": "A person known by this person (indicating some level of reciprocated interaction between the parties)."
37
+ },
38
+ "img": {
39
+ "$ref": "https://schema.twindev.org/foaf/FoafImage",
40
+ "description": "An image that can be used to represent some thing."
41
+ },
42
+ "nick": {
43
+ "type": "string",
44
+ "description": "A short informal nickname characterizing an agent (includes login identifiers, IRC and other chat nicknames)."
45
+ }
46
+ },
47
+ "required": [
48
+ "@type"
49
+ ],
50
+ "allOf": [
51
+ {
52
+ "$ref": "https://schema.twindev.org/foaf/FoafAgent"
53
+ }
54
+ ]
55
+ }