如何解决Grakn中的规则错误:“规则未形成有效子句,因为它包含多原子头”
我有一个无法提交的规则。这是规则:
when {
$t isa person;
$car isa car;
$t2 isa person;
$r ($t,$car) isa ownership;
$r2 ($t2,$car) isa ownership;
},then {
$car has age 23;
($car,$t2) isa ownership;
};
这是我commit
遇到的错误:
INVALID_ARGUMENT: InvalidKBException-A structural validation error has occurred. Please correct the [`1`] errors found.
The rule [rule-32] does not form a valid clause,as it contains a multi-atom head
. Please check server logs for the stack trace.
All uncommitted data is cleared
解决方法
一条规则只能推断一个事实:
,在Graql中,规则的“何时”部分必须是合取的 模式,而“ then”则应是原子的-每个规则都可以得出 仅单个事实
@Jon T所说的是正确的,因此,针对您的问题的解决方案是将规则分为两个规则。
这两个规则将具有相同的import webpack from 'webpack-stream';
import named from 'vinyl-named';
import browserSync from "browser-sync";
import {src,dest,watch,series,parallel} from 'gulp';
import del from 'del';
import postcss from 'gulp-postcss';
import sourcemaps from 'gulp-sourcemaps';
import autoprefixer from 'autoprefixer';
import yargs from 'yargs';
import sass from 'gulp-sass';
import cleanCss from 'gulp-clean-css';
import gulpif from 'gulp-if';
import imagemin from 'gulp-imagemin';
const PRODUCTION = yargs.argv.prod;
export const serve = done => {
server.init({
port: 8181,proxy: "https://verbier:8890/",reloadOnRestart: true
});
done();
};
export const reload = done => {
server.reload()
done();
};
export const clean = () => del(['dist']);
export const styles = () => {
return src(['assets/scss/bundle.scss','assets/scss/admin-style.scss'])
.pipe(gulpif(!PRODUCTION,sourcemaps.init()))
.pipe(sass().on('error',sass.logError))
.pipe(gulpif(PRODUCTION,postcss([ autoprefixer ])))
.pipe(gulpif(PRODUCTION,cleanCss({compatibility:'ie8'})))
.pipe(gulpif(!PRODUCTION,sourcemaps.write()))
.pipe(dest('dist/css'))
}
export const watchForChanges = () => {
watch('assets/scss/**/*.scss',series(styles,reload));
watch('assets/images/!**!/!*.{jpg,jpeg,png,svg,gif}',series(images,reload));
watch(['assets/!**!/!*','!src/{images,js,scss}',scss}/!**!/!*'],series(copy,reload));
watch('assets/js/!**!/!*.js',series(scripts,reload));
watch("**/*.php",reload);
}
export const images = () => {
return src('assets/images/!**!/!*.{jpg,gif}')
.pipe(gulpif(PRODUCTION,imagemin()))
.pipe(dest('dist/images'));
}
export const copy = () => {
return src(['assets/!**!/!*','!assets/{images,scss}/!**/!*'])
.pipe(dest('dist'));
}
export const scripts = () => {
return src(['assets/js/bundle.js','assets/js/admin-style.js'])
.pipe(named())
.pipe(webpack({
module: {
rules: [
{
test: /\.js$/,use: {
loader: 'babel-loader',options: {
presets: ['@babel/preset-env']
}
}
}
]
},mode: PRODUCTION ? 'production' : 'development',devtool: !PRODUCTION ? 'inline-source-map' : false,output: {
filename: '[name].js'
},externals: {
jquery: 'jQuery'
},}))
.pipe(dest('dist/js'));
}
const server = browserSync.create();
export const dev = series(clean,parallel(styles,images,copy,scripts),serve,watchForChanges);
export const build = series(clean,scripts));
export default dev;
子句,其中Sub ShowDesktop()
CreateObject("Shell.Application").MinimizeAll
End Sub
子句仅具有一个结论:
when
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。