Я хочу использовать GRAKN для моделирования знаний об автономном автомобиле.В одном примере я хочу определить, какую скорость я должен предложить автономной машине.Я знаю максимальную скорость автомобиля, знаю ограничение скорости на дороге, и если ограничение скорости на дороге не превышает максимальную скорость автомобиля, я хочу предложить автомобилю проехать допустимый предел скорости.максимальная скорость, ограничение скорости и предполагаемая скорость являются атрибутами автомобилей или дорог.В моем примере я хочу присвоить значение «speed-limit» как значение «предлагаемой скорости».Возможно ли это в GRAKN?
Вот что я пробовал.Я знаю, что это неверно, но я ожидаю, что решение будет выглядеть примерно так, но вместо присвоения значений вместо целого атрибута.
define
max-speed sub attribute, datatype double;
proposed-speed sub attribute, datatype double;
speed-limit sub attribute, datatype double;
drives-on sub relation,
relates vehicle-role,
relates type-of-road;
vehicle sub entity,
has max-speed,
has proposed-speed,
plays vehicle-role;
car sub vehicle;
road-type sub entity,
has speed-limit,
plays type-of-road;
highway sub road-type;
proposed-speed-by-road-type sub rule,
when {
$x isa vehicle, has max-speed $s;
$y isa road-type, has speed-limit $z;
($x,$y) isa drives-on;
$z <= $s;
}, then {
$x has proposed-speed $z;
};
proposed-speed-by-car-max sub rule,
when {
$x isa vehicle, has max-speed $s;
$y isa road-type, has speed-limit $z;
($x,$y) isa drives-on;
$z > $s;
}, then {
$x has proposed-speed $s;
};
insert
$owncar isa car, has max-speed 190;
$highway isa highway, has speed-limit 130;
(vehicle-role: $owncar, type-of-road: $highway) isa drives-on;`
Теперь, если я сделаю запрос следующее: match $x id V82016, has proposed-speed $z; get;
Я получу:grakn.core.server.exception.TransactionException-The type [car] is not allowed to have an attribute of type [speed-limit]. Please check server logs for the stack trace.
Я понял, потому что это не правильно.Поэтому я хотел бы извлечь значение ограничения скорости и назначить его предполагаемой скорости.Это возможно?