robos:PCGame

Validation shape for robos:PCGame nodes in the applications package group.

Details

   
Class robos:PCGame
Shape id urn:robos:shape:PCGameShape
Package Applications (robos.apps) (applications)
Classification Applications & entry points
Schema.org type schema:VideoGame

Properties

Count is the minimum and maximum number of values (* means no maximum). The validator enforces both. The type column is documentation only; the validator does not check types.

Property Count Type Rule or description
dcterms:title 1..* xsd:string PC Game must have a title.
robos:repository 1..* xsd:string PC Game must define a repository.
robos:technology 1..* xsd:string PC Game must specify technology stack.
robos:gameEngine 1..* xsd:string PC Game must specify game engine (Unreal Engine, Unity, Godot, Bevy).
robos:targetPlatform 1..* xsd:string PC Game must specify target PC platform(s) (Windows, Linux, macOS).

Example node

This node comes from .robos/kgraphs/crpg/package.jsonld in the RobOS repository. That graph holds sample data for a fictional company, so treat the values as illustrations.

{
  "@id": "urn:robos:crpg:game:realm-of-heroes",
  "@type": [
    "oslc_am:Resource",
    "robos:CRPGGame",
    "robos:PCGame",
    "schema:VideoGame",
    "robos:Game"
  ],
  "dcterms:title": "Realm of Heroes: A Night Without Memory",
  "robos:repository": "github.com/nddipiazza/realm-of-heroes",
  "robos:technology": "Godot 4 / GDScript",
  "robos:gameEngine": "Godot 4",
  "robos:targetPlatform": "Linux, Windows, macOS",
  "robos:ruleset": "dnd5e",
  "robos:combatModel": "real-time-with-pause",
  "robos:startingZone": "urn:robos:crpg:zone:homestead",
  "robos:assetPackage": "flareteam/flare-game",
  "robos:engineArchitecture": "urn:robos:infinity:engine:gemrb-infinity",
  "robos:maxPartySize": 4,
  "robos:hasELearning": [
    "urn:robos:elearning:course:robos-crpg",
    "urn:robos:elearning:course:crpg-game-builder"
  ],
  "robos:package": "crpg",
  "robos:namespace": "robos.crpg",
  "robos:hasCertificate": [
    "urn:robos:credential:certificate:realm-of-heroes-dungeon-master-robos-mucuwt58",
    "urn:robos:credential:certificate:realm-of-heroes-dungeon-master-robos-mucuxcai",
    "urn:robos:credential:certificate:realm-of-heroes-dungeon-master-robos-mucuxgib",
    "urn:robos:credential:certificate:realm-of-heroes-dungeon-master-robos-mucuzxah",
    "urn:robos:credential:certificate:realm-of-heroes-dungeon-master-robos-mucvgud2",
    "urn:robos:credential:certificate:realm-of-heroes-dungeon-master-robos-mucvo90i",
    "urn:robos:credential:certificate:realm-of-heroes-dungeon-master-robos-mucw058n",
    "urn:robos:credential:certificate:realm-of-heroes-dungeon-master-robos-mucw0qkp",
    "urn:robos:credential:certificate:realm-of-heroes-dungeon-master-robos-mucxg34v",
    "urn:robos:credential:certificate:realm-of-heroes-dungeon-master-robos-mucxmod6",
    "urn:robos:credential:certificate:realm-of-heroes-dungeon-master-robos-muhkm21t",
    "urn:robos:credential:certificate:realm-of-heroes-dungeon-master-robos-muhkmgt4",
    "urn:robos:credential:certificate:realm-of-heroes-dungeon-master-robos-muhkn2tn",
    "urn:robos:credential:certificate:realm-of-heroes-dungeon-master-robos-muhknorg",
    "urn:robos:credential:certificate:realm-of-heroes-dungeon-master-robos-muhkny96",
    "urn:robos:credential:certificate:realm-of-heroes-dungeon-master-robos-muhkurva",
    "urn:robos:credential:certificate:realm-of-heroes-dungeon-master-robos-muhkvjue",
    "urn:robos:credential:certificate:realm-of-heroes-dungeon-master-robos-muhkvs2f",
    "urn:robos:credential:certificate:realm-of-heroes-dungeon-master-robos-muhkxn9z",
    "urn:robos:credential:certificate:realm-of-heroes-dungeon-master-robos-muicj0mi",
    "urn:robos:credential:certificate:realm-of-heroes-dungeon-master-robos-muicp0oa",
    "urn:robos:credential:certificate:realm-of-heroes-dungeon-master-robos-muicpmge",
    "urn:robos:credential:certificate:realm-of-heroes-dungeon-master-robos-muimlank",
    "urn:robos:credential:certificate:realm-of-heroes-dungeon-master-robos-muimmiax"
  ],
  "robos:gameType": "crpg"
}

Validate the example

Save the example as node.json in the repository root, then run:

node -e "const { SHACLValidator } = require('./packages/robos-graph/lib/shacl-validator'); console.log(new SHACLValidator().validate([require('./node.json')]).conforms)"

The command prints true when the node meets every rule for its types.