diff --git a/lib/dataset-tools/augmentation/index.ts b/lib/dataset-tools/augmentation/index.ts index f04924adb..57865b368 100644 --- a/lib/dataset-tools/augmentation/index.ts +++ b/lib/dataset-tools/augmentation/index.ts @@ -45,6 +45,7 @@ interface DatasetAugmenterOptions { includeQuotedExample : boolean; cleanParameters : boolean; requotable : boolean; + includeEntityValue : boolean; samplingType : 'random' | 'uniform' | 'default'; subsetParamSet : [number, number]; @@ -100,6 +101,7 @@ export default class DatasetAugmenter extends Stream.Transform { paraphrasingExpandFactor: this._options.paraphrasingExpandFactor, cleanParameters: this._options.cleanParameters, requotable: this._options.requotable, + includeEntityValue: this._options.includeEntityValue, samplingType: this._options.samplingType, subsetParamSet: this._options.subsetParamSet, numAttempts: this._options.numAttempts, diff --git a/lib/dataset-tools/augmentation/replace_parameters.ts b/lib/dataset-tools/augmentation/replace_parameters.ts index d8f54c593..5ea071882 100644 --- a/lib/dataset-tools/augmentation/replace_parameters.ts +++ b/lib/dataset-tools/augmentation/replace_parameters.ts @@ -105,7 +105,7 @@ function adjustForLength(sentence : string, weight : number) : number { interface ValueList { readonly size : number; - sample(rng : () => number) : string; + sample(rng : () => number) : ParameterRecord; } class NumberValueList implements ValueList { @@ -132,16 +132,16 @@ class NumberValueList implements ValueList { throw new Error(`Unexpected ${value} with bounds ${this._min} / ${this._max} (isMeasure = ${this._isMeasure})`); } - sample(rng : () => number) : string { + sample(rng : () => number) : ParameterRecord { if (this._isMeasure) { // for measurements, sample uniformly between the (adjusted) bounds, const value = (this._min + (this._max - this._min) * rng()); this._checkFinite(value); if (Math.abs(value) > 2) - return value.toFixed(coin(0.9, rng) ? 0 : 1); + return { preprocessed: value.toFixed(coin(0.9, rng) ? 0 : 1) }; else - return value.toPrecision(2); + return { preprocessed: value.toPrecision(2) }; } // sample an "easy" number @@ -181,24 +181,24 @@ class NumberValueList implements ValueList { } while (val < this._min || val > this._max || val === 0 || val === 1); this._checkFinite(val); - return String(val); + return { preprocessed: String(val) }; } } class WeightedValueList implements ValueList { - private _values : string[]; + private _values : ParameterRecord[]; private _cumsum : number[]; - constructor(values : string[], weights : number[]) { + constructor(values : ParameterRecord[], weights : number[]) { assert.strictEqual(values.length, weights.length); this._values = values; if (weights.length > 0) { const cumsum = new Array(weights.length); - cumsum[0] = adjustForLength(values[0], weights[0]); + cumsum[0] = adjustForLength(values[0].preprocessed, weights[0]); for (let i = 1; i < weights.length; i++) - cumsum[i] = cumsum[i-1] + adjustForLength(values[i], weights[i]); + cumsum[i] = cumsum[i-1] + adjustForLength(values[i].preprocessed, weights[i]); this._cumsum = cumsum; } else { this._cumsum = []; @@ -209,16 +209,16 @@ class WeightedValueList implements ValueList { return this._values.length; } - sample(rng : () => number) : string { + sample(rng : () => number) : ParameterRecord { const sample = rng() * this._cumsum[this._cumsum.length-1]; return this._values[binarySearch(this._cumsum, sample)]; } } class UniformValueList implements ValueList { - private _values : string[]; + private _values : ParameterRecord[]; - constructor(values : string[]) { + constructor(values : ParameterRecord[]) { this._values = values; } @@ -232,9 +232,9 @@ class UniformValueList implements ValueList { } class SequentialValueList implements ValueList { - private _values : string[]; + private _values : ParameterRecord[]; private _index : number; - constructor(values : string[]) { + constructor(values : ParameterRecord[]) { this._values = values; this._index = 0; } @@ -254,7 +254,8 @@ class SequentialValueList implements ValueList { interface ParameterRecord { preprocessed : string; - weight : number; + value ?: string; + weight ?: number; } interface ParameterProvider { get(type : 'entity'|'string', key : string) : Promise; @@ -281,8 +282,9 @@ class ValueListLoader { this._rng = rng; } - get([valueListType, valueListName] : ['string'|'entity', string]) : Promise { - const key = valueListType + ':' + valueListName; + get([valueListType, valueListName] : ['string'|'entity', string|string[]]) : Promise { + const name = Array.isArray(valueListName) ? valueListName[0] : valueListName; + const key = valueListType + ':' + name; if (this._cache.has(key)) return this._cache.get(key)!; @@ -291,8 +293,12 @@ class ValueListLoader { return promise; } - private async _load(valueListType : 'string'|'entity', valueListName : string) : Promise { - let rows = await this._provider.get(valueListType, valueListName); + private async _load(valueListType : 'string'|'entity', valueListName : string|string[]) : Promise { + if (!Array.isArray(valueListName)) + valueListName = [valueListName]; + let rows : ParameterRecord[] = []; + for (const name of valueListName) + rows = rows.concat(await this._provider.get(valueListType, name)); // overwrite weights with random values if (this._samplingType === 'random') { @@ -317,20 +323,20 @@ class ValueListLoader { let minWeight = Infinity, maxWeight = -Infinity; let sumWeight = 0; for (const row of rows) { - minWeight = Math.min(row.weight, minWeight); - maxWeight = Math.max(row.weight, maxWeight); - sumWeight += row.weight; + minWeight = Math.min(row.weight||1, minWeight); + maxWeight = Math.max(row.weight||1, maxWeight); + sumWeight += row.weight||1; } // if all weights are approximately equal // (ie, the range is significantly smaller than the average) // we use a uniform sampler, which is faster if (this._samplingType === 'sequential') - return new SequentialValueList(rows.map((r) => r.preprocessed)); + return new SequentialValueList(rows); else if ((maxWeight - minWeight) / (sumWeight / rows.length) < 0.0001) - return new UniformValueList(rows.map((r) => r.preprocessed)); + return new UniformValueList(rows); else - return new WeightedValueList(rows.map((r) => r.preprocessed), rows.map((r) => r.weight)); + return new WeightedValueList(rows, rows.map((r) => r.weight||1)); } } @@ -379,6 +385,7 @@ interface ParameterReplacerOptions { maxSpanLength ?: number; cleanParameters ?: boolean; requotable ?: boolean; + includeEntityValue ?: boolean; numAttempts ?: number; syntheticExpandFactor ?: number; noQuoteExpandFactor ?: number; @@ -389,7 +396,7 @@ interface ParameterReplacerOptions { interface ReplacementRecord { sentenceValue : string; - programValue : string; + programValue : ParameterRecord; } // a bit of a HACK because we add the "token" property to Ast.Value @@ -409,12 +416,14 @@ export default class ParameterReplacer { private _maxSpanLength : number; private _cleanParameters : boolean; private _requotable : boolean; + private _includeEntityValue : boolean; private _numAttempts : number; private _debug : boolean; private _blowUpSynthetic : number; private _blowUpNoQuote : number; private _blowUpParaphrasing : number; private _blowUpAugmented : number; + private _entityDescendants ?: Record; private _warned : Set; @@ -431,6 +440,7 @@ export default class ParameterReplacer { this._maxSpanLength = _default(options.maxSpanLength, 10); this._cleanParameters = _default(options.cleanParameters, true); this._requotable = _default(options.requotable, true); + this._includeEntityValue = _default(options.includeEntityValue, false); this._numAttempts = _default(options.numAttempts, 10000); this._debug = _default(options.debug, true); @@ -485,7 +495,7 @@ export default class ParameterReplacer { return arg; } - private _getParamListKey(slot : Ast.AbstractSlot, arg : Ast.ArgumentDef|null) : ['string'|'entity', string] { + private async _getParamListKey(slot : Ast.AbstractSlot, arg : Ast.ArgumentDef|null) : Promise<['string'|'entity', string|string[]]> { const prim = slot.primitive; if (prim === null && ( slot.tag === 'filter.==.$source' || @@ -515,7 +525,27 @@ export default class ParameterReplacer { return ['string', this._getFallbackParamListKey(slot)]; } - private _getEntityListKey(entityType : string) : ['string'|'entity', string] { + private async _loadEntityDescendants() { + this._entityDescendants = {}; + const entities = await this._tpClient.getAllEntityTypes(); + for (const entity of entities) { + if (!entity.subtype_of) + continue; + for (const parent of entity.subtype_of) { + if (!(parent in this._entityDescendants)) + this._entityDescendants[parent] = [parent]; + this._entityDescendants[parent].push(entity.type); + } + } + } + + private async _getDescendants(entityType : string) : Promise { + if (!this._entityDescendants) + await this._loadEntityDescendants(); + return this._entityDescendants![entityType] ?? [entityType]; + } + + private async _getEntityListKey(entityType : string) : Promise<['string'|'entity', string|string[]]> { switch (entityType) { case 'tt:username': case 'tt:contact': @@ -528,7 +558,7 @@ export default class ParameterReplacer { case 'tt:path_name': return ['string', 'tt:path_name']; default: - return ['entity', entityType]; + return ['entity', await this._getDescendants(entityType)]; } } @@ -560,7 +590,7 @@ export default class ParameterReplacer { } } - private _transformValue(sentenceValue : string, programValue : string, arg : Ast.ArgumentDef|null) : ReplacementRecord { + private _transformValue(sentenceValue : string, programValue : ParameterRecord, arg : Ast.ArgumentDef|null) : ReplacementRecord { if (this._requotable) return { sentenceValue, programValue }; @@ -573,18 +603,18 @@ export default class ParameterReplacer { let hasDefiniteArticle = false; if (this._paramLangPack.DEFINITE_ARTICLE_REGEXP) { // remove a definite article ("the") from the program value if we have it - const match = this._paramLangPack.DEFINITE_ARTICLE_REGEXP.exec(programValue); + const match = this._paramLangPack.DEFINITE_ARTICLE_REGEXP.exec(programValue.preprocessed); if (match !== null) { hasDefiniteArticle = true; - programValue = programValue.substring(match[0].length); + programValue.preprocessed = programValue.preprocessed.substring(match[0].length); if (coin(0.5, this._rng)) sentenceValue = sentenceValue.substring(match[0].length); } } // hack for hotel & linkedin/books domain: remove "hotel" in the end of names; remove "award" at the end of awards - if (arg && arg.name === 'id' && arg.type instanceof Type.Entity && arg.type.type.endsWith(':Hotel') && programValue.endsWith(' hotel')) { - programValue = programValue.substring(0, programValue.length - ' hotel'.length); + if (arg && arg.name === 'id' && arg.type instanceof Type.Entity && arg.type.type.endsWith(':Hotel') && programValue.preprocessed.endsWith(' hotel')) { + programValue.preprocessed = programValue.preprocessed.substring(0, programValue.preprocessed.length - ' hotel'.length); if (coin(0.5, this._rng)) sentenceValue = sentenceValue.substring(0, sentenceValue.length - ' hotel'.length); } @@ -592,8 +622,8 @@ export default class ParameterReplacer { const suffixToRemove : { [key : string] : string[] } = { award: [' award', ' awards'] }; for (const argname in suffixToRemove) { for (const suffix of suffixToRemove[argname]) { - if (arg && arg.name === argname && programValue.endsWith(suffix)) { - programValue = programValue.substring(0, programValue.length - suffix.length); + if (arg && arg.name === argname && programValue.preprocessed.endsWith(suffix)) { + programValue.preprocessed = programValue.preprocessed.substring(0, programValue.preprocessed.length - suffix.length); if (coin(0.5, this._rng)) sentenceValue = sentenceValue.substring(0, sentenceValue.length - suffix.length); } @@ -652,7 +682,7 @@ export default class ParameterReplacer { return [new NumberValueList(min, max, !!unit), arg, slot.type, operator]; } - let valueListKey = this._getParamListKey(slot, arg); + let valueListKey = await this._getParamListKey(slot, arg); const fallbackKey = this._getFallbackParamListKey(slot); if (valueListKey[0] === 'string' && valueListKey[1] !== fallbackKey && coin(this._untypedStringProbability, this._rng)) @@ -730,18 +760,18 @@ export default class ParameterReplacer { valueList : ValueList, type : Type, operator : string, - replacedValuesSet : Set) : ReplacementRecord|null { + replacedValuesSet : Set) : ReplacementRecord|null { let typeValue = undefined; if (type instanceof Type.Entity) typeValue = type.type; let attempts = this._numAttempts; while (attempts > 0) { - const sampled = valueList.sample(this._rng).toLowerCase(); - let words = sampled.split(' '); + const sampled = valueList.sample(this._rng); + let words = sampled.preprocessed.split(' '); words = Array.from(resampleIgnorableAndAbbreviations(this._paramLangPack, type, words, this._rng)); if (this._cleanParameters && - (/[,?!.'\-_]/.test(sampled) || ['1', '2', '3'].includes(sampled)) && + (/[,?!.'\-_]/.test(sampled.preprocessed) || ['1', '2', '3'].includes(sampled.preprocessed)) && attempts > this._numAttempts * 0.9) { attempts -= 1; continue; @@ -754,24 +784,24 @@ export default class ParameterReplacer { continue; } - return this._transformValue(candidate, candidate, arg); + return this._transformValue(candidate, { preprocessed: candidate }, arg); } if (!type.isNumeric()) { - if ((this._paramLangPack.isGoodPersonName(sampled)) || - (this._paramLangPack.isGoodUserName(sampled) && typeValue && typeValue === "tt:username")) - return { sentenceValue: sampled, programValue: sampled }; + if ((this._paramLangPack.isGoodPersonName(sampled.preprocessed)) || + (this._paramLangPack.isGoodUserName(sampled.preprocessed) && typeValue && typeValue === "tt:username")) + return { sentenceValue: sampled.preprocessed, programValue: sampled }; if (words.some((w) => !this._paramLangPack.isGoodWord(w)) || words.length > this._maxSpanLength) { attempts -= 1; continue; } - if (!this._paramLangPack.isGoodSentence(sampled)) { + if (!this._paramLangPack.isGoodSentence(sampled.preprocessed)) { attempts -= 1; continue; } } - return this._transformValue(sampled, sampled, arg); + return this._transformValue(sampled.preprocessed, sampled, arg); } this._warn(`failreplace:${key}`, `Could not replace ${key} even after ${this._numAttempts}`); return null; @@ -782,7 +812,7 @@ export default class ParameterReplacer { parameters : Map, replacements : Map) { const output : string[] = []; - const replacedValueSet = new Set(); + const replacedValueSet = new Set(); for (const record of replacements.values()) replacedValueSet.add(record.programValue); @@ -826,16 +856,24 @@ export default class ParameterReplacer { const output : string[] = []; for (const token of program) { if (replacements.has(token)) { - const string = replacements.get(token)!.programValue; + const programValue = replacements.get(token)!.programValue; + const string = programValue.preprocessed; + const value = programValue.value; - if (token.startsWith('LOCATION_')) + if (token.startsWith('LOCATION_')) { output.push('new', 'Location', '(', '"', string, '"', ')'); - else if (token.startsWith('GENERIC_ENTITY_')) - output.push('null', '^^' + token.substring('GENERIC_ENTITY_'.length, token.length-2), '(', '"', string, '"', ')'); - else if (token.startsWith('NUMBER_')) + } else if (token.startsWith('GENERIC_ENTITY_')) { + if (this._includeEntityValue && value) + output.push('"', value, '"'); + else + output.push('null'); + output.push('^^' + token.substring('GENERIC_ENTITY_'.length, token.length-2), '(', '"', string, '"', ')'); + } else if (token.startsWith('NUMBER_')) { output.push(string); - else - output.push('"', replacements.get(token)!.programValue, '"'); + } else { + output.push('"', string, '"'); + } + if (token.startsWith('HASHTAG_')) output.push('^^tt:hashtag'); else if (token.startsWith('USERNAME_')) diff --git a/lib/dataset-tools/evaluation/sentence_evaluator.ts b/lib/dataset-tools/evaluation/sentence_evaluator.ts index 289c87062..e28dbc705 100644 --- a/lib/dataset-tools/evaluation/sentence_evaluator.ts +++ b/lib/dataset-tools/evaluation/sentence_evaluator.ts @@ -80,6 +80,8 @@ type SentenceEvaluatorOptions = { tokenized ?: boolean; oracle ?: boolean; complexityMetric ?: keyof typeof COMPLEXITY_METRICS; + includeEntityValue ?: boolean + ignoreEntityType ?: boolean } & ThingTalkUtils.ParseOptions; export interface ExampleEvaluationResult { @@ -135,6 +137,8 @@ class SentenceEvaluator { private _tokenized : boolean; private _debug : boolean; private _oracle : boolean; + private _includeEntityValue : boolean; + private _ignoreEntityType : boolean; private _tokenizer : I18n.BaseTokenizer; private _computeComplexity : ((id : string, code : string) => number)|undefined; @@ -155,6 +159,8 @@ class SentenceEvaluator { this._tokenized = !!options.tokenized; this._debug = options.debug; this._oracle = !!options.oracle; + this._includeEntityValue = !!options.includeEntityValue; + this._ignoreEntityType = !!options.ignoreEntityType; this._tokenizer = tokenizer; if (options.complexityMetric) @@ -183,6 +189,14 @@ class SentenceEvaluator { return false; } + private _equals(thingtalk1 : string, thingtalk2 : string) : boolean { + if (this._ignoreEntityType) { + thingtalk1 = thingtalk1.replace(/\^\^\S+/g, '^^entity'); + thingtalk2 = thingtalk2.replace(/\^\^\S+/g, '^^entity'); + } + return thingtalk1 === thingtalk2; + } + async evaluate() : Promise { const result : ExampleEvaluationResult = { id: this._id, @@ -229,6 +243,7 @@ class SentenceEvaluator { normalizedTargetCode.push(ThingTalkUtils.serializePrediction(parsed!, tokens, entities, { locale: this._locale, timezone: this._options.timezone, + includeEntityValue: this._includeEntityValue }).join(' ')); } catch(e) { // if the target_code did not parse due to missing functions in thingpedia, ignore it @@ -251,6 +266,7 @@ class SentenceEvaluator { normalizedTargetCode.push(ThingTalkUtils.serializePrediction(parsed!, tokens, entities, { locale: this._locale, timezone: this._options.timezone, + includeEntityValue: this._includeEntityValue }).join(' ')); } catch(e) { console.error(this._id, this._preprocessed, this._targetPrograms); @@ -327,13 +343,14 @@ class SentenceEvaluator { const normalized = ThingTalkUtils.serializePrediction(parsed, tokens, entities, { locale: this._locale, timezone: this._options.timezone, - ignoreSentence: true + ignoreSentence: true, + includeEntityValue: this._includeEntityValue }); const normalizedCode = normalized.join(' '); // check that by normalizing we did not accidentally mark wrong a program that // was correct before - if (beamString === normalizedTargetCode[0] && normalizedCode !== normalizedTargetCode[0]) { + if (this._equals(beamString, normalizedTargetCode[0]) && !this._equals(normalizedCode, normalizedTargetCode[0])) { console.error(); console.error('NORMALIZATION ERROR'); console.error(normalizedTargetCode[0]); @@ -347,7 +364,7 @@ class SentenceEvaluator { let result_string = 'ok_syntax'; for (let referenceId = 0; referenceId < this._targetPrograms.length; referenceId++) { - if (normalizedCode === normalizedTargetCode[referenceId]) { + if (this._equals(normalizedCode, normalizedTargetCode[referenceId])) { // we have a match! beam_ok = true; diff --git a/lib/i18n/english.ts b/lib/i18n/english.ts index e123bb51e..01457fd7a 100644 --- a/lib/i18n/english.ts +++ b/lib/i18n/english.ts @@ -22,6 +22,7 @@ import { Inflectors } from 'en-inflectors'; import { Tag } from 'en-pos'; +import * as lexicon from 'en-lexicon'; import { coin } from '../utils/random'; import { Phrase } from '../utils/template-string'; @@ -135,6 +136,13 @@ function indefiniteArticle(word : string) { export default class EnglishLanguagePack extends DefaultLanguagePack { protected _tokenizer : EnglishTokenizer|undefined; + constructor(locale : string) { + super(locale); + + // the pos tagger will crash without this lexicon extension + lexicon.extend({ constructor: 'NN' }); + } + getTokenizer() : EnglishTokenizer { if (this._tokenizer) return this._tokenizer; diff --git a/lib/pos-parser/index.ts b/lib/pos-parser/index.ts index caeb908b1..7cc57b5ac 100644 --- a/lib/pos-parser/index.ts +++ b/lib/pos-parser/index.ts @@ -112,6 +112,16 @@ export default class PosParser { for (const template of this.queryTemplates[pos]) { const match = template.match(utterance, domainCanonicals, value); if (match && !match.includes('$domain') && match.split(' ').length - 1 < MAX_LENGTH) { + // FIXME: capture these in templates + // skip matches containing punctuations that always introduce a break in the utterance + if (/[,.!?:]/.test(match)) + continue; + // skip reverse property that contains a pronoun + if (pos === 'reverse_property') { + const tokens = match.split(' '); + if (tokens.includes('it') || tokens.includes('that') || tokens.includes('this')) + continue; + } if (pos === 'verb' && match.startsWith('$value ')) { return [ { pos, canonical: match }, diff --git a/lib/pos-parser/nfa.ts b/lib/pos-parser/nfa.ts index 7756d3500..d7be2b836 100644 --- a/lib/pos-parser/nfa.ts +++ b/lib/pos-parser/nfa.ts @@ -42,7 +42,7 @@ class State { constructor(isEnd = false) { this.id = stateCounter++; this.isEnd = isEnd; - this.transitions = {}; + this.transitions = Object.create(null); } addTransition(token : string, to : State, capturing = false) { diff --git a/lib/templates/ast_manip.ts b/lib/templates/ast_manip.ts index 1387fa075..4853dda01 100644 --- a/lib/templates/ast_manip.ts +++ b/lib/templates/ast_manip.ts @@ -392,7 +392,7 @@ function makeEdgeFilterStream(loader : ThingpediaLoader, ptype: proj.schema!.getArgType(args[0])!, ast: new Ast.BooleanExpression.Atom(null, args[0], op, value) }; - if (!checkFilter(proj.expression, f)) + if (!checkFilter(loader, proj.expression, f)) return null; if (!proj.schema!.is_monitorable || proj.schema!.is_list) return null; @@ -710,7 +710,7 @@ export function toChainExpression(expr : Ast.Expression) { function makeProgram(loader : ThingpediaLoader, rule : Ast.Expression) : Ast.Program|null { - if (!checkValidQuery(rule)) + if (!loader.flags.no_soft_match_id && !checkValidQuery(rule)) return null; const chain = toChainExpression(rule); if (chain.first.schema!.functionType === 'stream' && loader.flags.nostream) @@ -792,7 +792,7 @@ function checkComputeFilter(table : Ast.Expression, filter : Ast.ComputeBooleanE return filter.rhs.getType().equals(vtype); } -function checkAtomFilter(table : Ast.Expression, filter : Ast.AtomBooleanExpression) : boolean { +function checkAtomFilter(loader : ThingpediaLoader, table : Ast.Expression, filter : Ast.AtomBooleanExpression) : boolean { const arg = table.schema!.getArgument(filter.name); if (!arg || arg.is_input) return false; @@ -829,14 +829,20 @@ function checkAtomFilter(table : Ast.Expression, filter : Ast.AtomBooleanExpress } let typeMatch = false; + const valueType = filter.value.getType(); + const parentTypes = valueType instanceof Type.Entity ? loader.entitySubTypeMap[valueType.type] || [] : []; for (const type of vtypes) { - if (filter.value.getType().equals(type)) + if (valueType.equals(type)) { typeMatch = true; + break; + } else if (type instanceof Type.Entity && parentTypes.includes(type.type)) { + typeMatch = true; + break; + } } if (!typeMatch) return false; - if (vtype.isNumber || vtype.isMeasure) { let min = -Infinity; const minArg = arg.getImplementationAnnotation('min_number'); @@ -858,7 +864,7 @@ function checkAtomFilter(table : Ast.Expression, filter : Ast.AtomBooleanExpress return true; } -function internalCheckFilter(table : Ast.Expression, filter : Ast.BooleanExpression) : boolean { +function internalCheckFilter(loader : ThingpediaLoader, table : Ast.Expression, filter : Ast.BooleanExpression) : boolean { while (table instanceof Ast.ProjectionExpression) table = table.expression; @@ -869,7 +875,7 @@ function internalCheckFilter(table : Ast.Expression, filter : Ast.BooleanExpress if (filter instanceof Ast.AndBooleanExpression || filter instanceof Ast.OrBooleanExpression) { for (const operands of filter.operands) { - if (!internalCheckFilter(table, operands)) + if (!internalCheckFilter(loader, table, operands)) return false; } return true; @@ -879,7 +885,7 @@ function internalCheckFilter(table : Ast.Expression, filter : Ast.BooleanExpress return checkComputeFilter(table, filter); if (filter instanceof Ast.AtomBooleanExpression) - return checkAtomFilter(table, filter); + return checkAtomFilter(loader, table, filter); if (filter instanceof Ast.DontCareBooleanExpression) { const arg = table.schema!.getArgument(filter.name); @@ -893,10 +899,10 @@ function internalCheckFilter(table : Ast.Expression, filter : Ast.BooleanExpress throw new Error(`Unexpected filter type ${filter}`); } -function checkFilter(table : Ast.Expression, filter : FilterSlot|DomainIndependentFilterSlot) : boolean { +function checkFilter(loader : ThingpediaLoader, table : Ast.Expression, filter : FilterSlot|DomainIndependentFilterSlot) : boolean { if (filter.schema !== null && !isSameFunction(table.schema!, filter.schema)) return false; - return internalCheckFilter(table, filter.ast); + return internalCheckFilter(loader, table, filter.ast); } function* iterateFilters(table : Ast.Expression) : Generator<[Ast.FunctionDef, Ast.BooleanExpression], void> { @@ -1063,10 +1069,11 @@ function addFilterInternal(table : Ast.Expression, return new Ast.FilterExpression(null, table, filter, schema); } -function addFilter(table : Ast.Expression, +function addFilter(loader : ThingpediaLoader, + table : Ast.Expression, filter : FilterSlot|DomainIndependentFilterSlot, options : AddFilterOptions = {}) : Ast.Expression|null { - if (!checkFilter(table, filter)) + if (!checkFilter(loader, table, filter)) return null; return addFilterInternal(table, filter.ast, options); @@ -1531,7 +1538,8 @@ function makeComputeExpression(table : Ast.Expression, return new Ast.ProjectionExpression(null, table, [], [expression], [null], resolveProjection(table.schema!, [], [expression])); } -function makeComputeFilterExpression(table : Ast.Expression, +function makeComputeFilterExpression(loader : ThingpediaLoader, + table : Ast.Expression, operation : 'distance', operands : Ast.Value[], resultType : Type, @@ -1551,10 +1559,10 @@ function makeComputeFilterExpression(table : Ast.Expression, ptype: expression.type, ast: new Ast.BooleanExpression.Compute(null, expression, filterOp, filterValue) }; - return addFilter(table, filter); + return addFilter(loader, table, filter); } -function makeWithinGeoDistanceExpression(table : Ast.Expression, location : Ast.Value, filterValue : Ast.Value) : Ast.Expression|null { +function makeWithinGeoDistanceExpression(loader : ThingpediaLoader, table : Ast.Expression, location : Ast.Value, filterValue : Ast.Value) : Ast.Expression|null { const arg = table.schema!.getArgument('geo'); if (!arg || !arg.type.isLocation) return null; @@ -1570,7 +1578,7 @@ function makeWithinGeoDistanceExpression(table : Ast.Expression, location : Ast. // the distance should be at least 100 meters (if the value is small number) if (filterValue instanceof Ast.MeasureValue && Units.transformToBaseUnit(filterValue.value, unit) < 100) return null; - return makeComputeFilterExpression(table, 'distance', [new Ast.Value.VarRef('geo'), location], new Type.Measure('m'), '<=', filterValue); + return makeComputeFilterExpression(loader, table, 'distance', [new Ast.Value.VarRef('geo'), location], new Type.Measure('m'), '<=', filterValue); } function makeComputeArgMinMaxExpression(table : Ast.Expression, diff --git a/lib/templates/commands.genie b/lib/templates/commands.genie index 9b79ce84a..76d3039f5 100644 --- a/lib/templates/commands.genie +++ b/lib/templates/commands.genie @@ -62,7 +62,7 @@ forward_when_do_rule : Ast.ChainExpression = { // no pp stream:stream action:complete_action => C.makeChainExpression(stream, action); stream:stream action:complete_action 'if' filter:if_filter with { functionName = stream.functionName } => { - const newStream = C.addFilter(stream, filter); + const newStream = C.addFilter($loader, stream, filter); if (!newStream) return null; return C.makeChainExpression(newStream, action); @@ -384,7 +384,7 @@ explicit_when_condition : Ast.Expression = { return null; if ($loader.flags.turking && table.schema!.is_list) return null; - const withFilter = C.addFilter(table, filter, { ifFilter: true }); + const withFilter = C.addFilter($loader, table, filter, { ifFilter: true }); if (!withFilter) return null; return C.tableToStream(withFilter); @@ -395,7 +395,7 @@ explicit_when_condition : Ast.Expression = { return null; if (!table.schema!.is_monitorable || table.schema!.is_list) return null; - const withFilter = C.addFilter(table, filter, { ifFilter: true }); + const withFilter = C.addFilter($loader, table, filter, { ifFilter: true }); if (!withFilter) return null; return C.tableToStream(withFilter); @@ -450,7 +450,7 @@ monitor_command : Ast.Expression = { return null; if (table.schema!.is_list || !table.schema!.is_monitorable) return null; - const withFilter = C.addFilter(table, filter); + const withFilter = C.addFilter($loader, table, filter); if (!withFilter) return null; return C.tableToStream(withFilter); diff --git a/lib/templates/dialogue_acts/empty-search.ts b/lib/templates/dialogue_acts/empty-search.ts index ae2d2c4f1..54e4101ed 100644 --- a/lib/templates/dialogue_acts/empty-search.ts +++ b/lib/templates/dialogue_acts/empty-search.ts @@ -142,7 +142,7 @@ export function impreciseEmptySearchChangeRequest(ctx : ContextInfo, return null; if (answerFilter.name !== param.name) return null; - if (!C.checkFilter(base, answerFilter)) + if (!C.checkFilter(ctx.loader, base, answerFilter)) return null; return emptySearchChangePhraseCommon(ctx, answerFilter, refineFilterForEmptySearch); diff --git a/lib/templates/dialogue_acts/search-questions.ts b/lib/templates/dialogue_acts/search-questions.ts index be705f78d..c1432cc8d 100644 --- a/lib/templates/dialogue_acts/search-questions.ts +++ b/lib/templates/dialogue_acts/search-questions.ts @@ -274,7 +274,7 @@ function impreciseSearchQuestionAnswer(ctx : ContextInfo, answer : C.FilterSlot| const currentStmt = ctx.current!.stmt; const currentTable = currentStmt.expression; - if (!C.checkFilter(currentTable, answerFilter)) + if (!C.checkFilter(ctx.loader, currentTable, answerFilter)) return null; const newTable = queryRefinement(currentTable, answerFilter.ast, refineFilterToAnswerQuestion, null); diff --git a/lib/templates/load-thingpedia.ts b/lib/templates/load-thingpedia.ts index e935de5d1..89603e9fb 100644 --- a/lib/templates/load-thingpedia.ts +++ b/lib/templates/load-thingpedia.ts @@ -573,7 +573,7 @@ export default class ThingpediaLoader { } else if (ptype.isRecurrentTimeSpecification) { vtypes = [Type.Date, Type.Time]; op = 'contains'; - } else if (pname === 'id') { + } else if (pname === 'id' && !this._options.flags.no_soft_match_id) { vtypes = [Type.String]; } } @@ -1113,28 +1113,31 @@ export default class ThingpediaLoader { span = canonical.map((c) => `${c} \${p_name:no-undefined}`); } - const idfilter = new Ast.BooleanExpression.Atom(null, 'id', '==', new Ast.Value.VarRef('p_name')); - await this._loadTemplate(new Ast.Example( - null, - -1, - 'query', - { p_name: id.type }, - new Ast.FilterExpression(null, table, idfilter, schemaClone), - span, - span, - {} - )); - const namefilter = new Ast.BooleanExpression.Atom(null, 'id', '=~', new Ast.Value.VarRef('p_name')); - await this._loadTemplate(new Ast.Example( - null, - -1, - 'query', - { p_name: Type.String }, - new Ast.FilterExpression(null, table, namefilter, table.schema), - span, - span, - {} - )); + if (this._options.flags.no_soft_match_id) { + const idfilter = new Ast.BooleanExpression.Atom(null, 'id', '==', new Ast.Value.VarRef('p_name')); + await this._loadTemplate(new Ast.Example( + null, + -1, + 'query', + { p_name: id.type }, + new Ast.FilterExpression(null, table, idfilter, schemaClone), + span, + span, + {} + )); + } else { + const namefilter = new Ast.BooleanExpression.Atom(null, 'id', '=~', new Ast.Value.VarRef('p_name')); + await this._loadTemplate(new Ast.Example( + null, + -1, + 'query', + { p_name: Type.String }, + new Ast.FilterExpression(null, table, namefilter, table.schema), + span, + span, + {} + )); + } // we only apply reverse_property/implicit_identity to the function's // _own_ arguments diff --git a/lib/templates/projections.genie b/lib/templates/projections.genie index 558855449..56c5cfbc9 100644 --- a/lib/templates/projections.genie +++ b/lib/templates/projections.genie @@ -82,7 +82,7 @@ boolean_projection : Ast.Expression = { } for (const proj of $loader.projections) { - if (proj.category === 'pvp' || proj.category === 'preposition') { + if (proj.category === 'pvp' || proj.category === 'passive_verb' || proj.category === 'preposition') { question_projection_table : Ast.Expression = #(proj.pronoun) #(proj.base) ('is'|'was'|'are'|'were') ('the' | '') table:with_filtered_table with { functionName = (proj.pslot.schema.qualifiedName) } #(proj.canonical) => C.makeSingleFieldProjection($loader, 'table', null, table, proj.pslot); question_projection_table : Ast.Expression = #(proj.pronoun) #(proj.base) ('is'|'was'|'are'|'were') ('the' | '') table:with_arg_min_max_table with { functionName = (proj.pslot.schema.qualifiedName) } #(proj.canonical) => @@ -95,7 +95,7 @@ for (const proj of $loader.projections) { C.makeSingleFieldProjection($loader, 'table', null, table, proj.pslot); } } - if (proj.category === 'avp') { + if (proj.category === 'avp' || proj.category === 'verb') { question_projection_table : Ast.Expression = #(proj.pronoun) #(proj.base) ('do'|'does'|'did') ('the' | '') table:with_filtered_table with { functionName = (proj.pslot.schema.qualifiedName) } #(proj.canonical) => C.makeSingleFieldProjection($loader, 'table', null, table, proj.pslot); question_projection_table : Ast.Expression = #(proj.pronoun) #(proj.base) ('do'|'does'|'did') ('the' | '') table:with_arg_min_max_table with { functionName = (proj.pslot.schema.qualifiedName) } #(proj.canonical) => @@ -121,6 +121,69 @@ for (const proj of $loader.projections) { C.makeSingleFieldProjection($loader, 'table', null, table, proj.pslot); } } + if (proj.category === 'reverse_passive_verb') { + question_projection_table : Ast.Expression = #(proj.pronoun) #(proj.base) ('is'|'was'|'are'|'were') #(proj.canonical) ('the' | '') table:with_filtered_table with { functionName = (proj.pslot.schema.qualifiedName) } => + C.makeSingleFieldProjection($loader, 'table', null, table, proj.pslot); + question_projection_table : Ast.Expression = #(proj.pronoun) #(proj.base) ('is'|'was'|'are'|'were') #(proj.canonical) ('the' | '') table:with_arg_min_max_table with { functionName = (proj.pslot.schema.qualifiedName) } => + C.makeSingleFieldProjection($loader, 'table', null, table, proj.pslot); + + if (proj.base) { + command_projection_table : Ast.Expression = #(proj.base) #(proj.canonical) ('the' | '') table:with_filtered_table with { functionName = (proj.pslot.schema.qualifiedName) } => + C.makeSingleFieldProjection($loader, 'table', null, table, proj.pslot); + command_projection_table : Ast.Expression = #(proj.base) #(proj.canonical) ('the' | '') table:with_arg_min_max_table with { functionName = (proj.pslot.schema.qualifiedName) } => + C.makeSingleFieldProjection($loader, 'table', null, table, proj.pslot); + } + } + // e.g., which city is the sister city of beijing? + if (proj.category === 'property') { + question_projection_table : Ast.Expression = #(proj.pronoun) #(proj.base) ('is'|'was'|'are'|'were') ('the' | '') #(proj.canonical) 'of' table:with_filtered_table with { functionName = (proj.pslot.schema.qualifiedName) } => + C.makeSingleFieldProjection($loader, 'table', null, table, proj.pslot); + question_projection_table : Ast.Expression = #(proj.pronoun) #(proj.base) ('is'|'was'|'are'|'were') ('the' | '') #(proj.canonical) 'of' table:with_arg_min_max_table with { functionName = (proj.pslot.schema.qualifiedName) } => + C.makeSingleFieldProjection($loader, 'table', null, table, proj.pslot); + question_projection_table : Ast.Expression = #(proj.pronoun) #(proj.base) ('is'|'was'|'are'|'were') table:with_filtered_table with { functionName = (proj.pslot.schema.qualifiedName) } '\'s' #(proj.canonical) => + C.makeSingleFieldProjection($loader, 'table', null, table, proj.pslot); + question_projection_table : Ast.Expression = #(proj.pronoun) #(proj.base) ('is'|'was'|'are'|'were') table:with_arg_min_max_table with { functionName = (proj.pslot.schema.qualifiedName) } '\'s' #(proj.canonical) => + C.makeSingleFieldProjection($loader, 'table', null, table, proj.pslot); + + if (proj.base) { + command_projection_table : Ast.Expression = #(proj.base) ('that'|'which') ('is'|'was'|'are'|'were') ('the' | '') #(proj.canonical) 'of' table:with_filtered_table with { functionName = (proj.pslot.schema.qualifiedName) } => + C.makeSingleFieldProjection($loader, 'table', null, table, proj.pslot); + command_projection_table : Ast.Expression = #(proj.base) ('that'|'which') ('is'|'was'|'are'|'were') ('the' | '') #(proj.canonical) 'of' table:with_arg_min_max_table with { functionName = (proj.pslot.schema.qualifiedName) } => + C.makeSingleFieldProjection($loader, 'table', null, table, proj.pslot); + command_projection_table : Ast.Expression = #(proj.base) ('that'|'which') ('is'|'was'|'are'|'were') table:with_filtered_table with { functionName = (proj.pslot.schema.qualifiedName) } '\'s' #(proj.canonical) => + C.makeSingleFieldProjection($loader, 'table', null, table, proj.pslot); + command_projection_table : Ast.Expression = #(proj.base) ('that'|'which') ('is'|'was'|'are'|'were') table:with_arg_min_max_table with { functionName = (proj.pslot.schema.qualifiedName) } '\'s' #(proj.canonical) => + C.makeSingleFieldProjection($loader, 'table', null, table, proj.pslot); + } + } + // e.g., which county is beijing a capital of? + if (proj.category === 'reverse_property') { + question_projection_table : Ast.Expression = #(proj.pronoun) #(proj.base) ('is'|'was'|'are'|'were') table:with_filtered_table with { functionName = (proj.pslot.schema.qualifiedName) } ('a'|'an'|'the'|'') #(proj.canonical) => + C.makeSingleFieldProjection($loader, 'table', null, table, proj.pslot); + question_projection_table : Ast.Expression = #(proj.pronoun) #(proj.base) ('is'|'was'|'are'|'were') table:with_arg_min_max_table with { functionName = (proj.pslot.schema.qualifiedName) } ('a'|'an'|'the'|'') #(proj.canonical) => + C.makeSingleFieldProjection($loader, 'table', null, table, proj.pslot); + + if (proj.base) { + command_projection_table : Ast.Expression = #(proj.base) ('that'|'which'|'') table:with_filtered_table with { functionName = (proj.pslot.schema.qualifiedName) } ('is'|'was'|'are'|'were') #(proj.canonical) => + C.makeSingleFieldProjection($loader, 'table', null, table, proj.pslot); + command_projection_table : Ast.Expression = #(proj.base) ('that'|'which'|'') table:with_arg_min_max_table with { functionName = (proj.pslot.schema.qualifiedName) } ('is'|'was'|'are'|'were') #(proj.canonical) => + C.makeSingleFieldProjection($loader, 'table', null, table, proj.pslot); + } + } + // e.g., which country have beijing as its capital? + if (proj.category === 'reverse_base') { + question_projection_table : Ast.Expression = #(proj.pronoun) #(proj.base) ('has'|'have') table:with_filtered_table with { functionName = (proj.pslot.schema.qualifiedName) } 'as' ('its'|'their'|'the') #(proj.canonical) => + C.makeSingleFieldProjection($loader, 'table', null, table, proj.pslot); + question_projection_table : Ast.Expression = #(proj.pronoun) #(proj.base) ('has'|'have') table:with_arg_min_max_table with { functionName = (proj.pslot.schema.qualifiedName) } 'as' ('its'|'their'|'the') #(proj.canonical) => + C.makeSingleFieldProjection($loader, 'table', null, table, proj.pslot); + + if (proj.base) { + command_projection_table : Ast.Expression = #(proj.base) ('that'|'which'|'') ('has'|'have') table:with_filtered_table with { functionName = (proj.pslot.schema.qualifiedName) } 'as' ('its'|'their'|'the') #(proj.canonical) => + C.makeSingleFieldProjection($loader, 'table', null, table, proj.pslot); + command_projection_table : Ast.Expression = #(proj.base) ('that'|'which'|'') ('has'|'have') table:with_arg_min_max_table with { functionName = (proj.pslot.schema.qualifiedName) } 'as' ('its'|'their'|'the') #(proj.canonical) => + C.makeSingleFieldProjection($loader, 'table', null, table, proj.pslot); + } + } } projection_Any : Ast.Expression = { diff --git a/lib/templates/stream_tables.genie b/lib/templates/stream_tables.genie index d704c8db4..709b482f2 100644 --- a/lib/templates/stream_tables.genie +++ b/lib/templates/stream_tables.genie @@ -32,7 +32,7 @@ complete_table : Ast.Expression = { }; !notablejoin table_join_replace_placeholder; - //filter:apv_filter q:thingpedia_complete_query => C.addFilter(q, filter); + //filter:apv_filter q:thingpedia_complete_query => C.addFilter($loader, q, filter); ( table:complete_table param:preposition_input_param with { functionName = table.functionName } | table:complete_table ('with' | 'having') param:npp_input_param with { functionName = table.functionName } @@ -60,7 +60,7 @@ one_if_filter_table : Ast.Expression = { !nofilter { ( table:complete_table 'if' filter:if_filter with { functionName = table.functionName } | table:complete_table 'if' filter:if_filter with { functionName = null } - ) => C.addFilter(table, filter, { ifFilter: true }); + ) => C.addFilter($loader, table, filter, { ifFilter: true }); } } @@ -68,7 +68,7 @@ two_if_filter_table : Ast.Expression = { !nofilter { ( table:one_if_filter_table 'and' filter:if_filter with { functionName = table.functionName } | table:one_if_filter_table 'and' filter:if_filter with { functionName = null } - ) => C.addFilter(table, filter, { ifFilter: true }); + ) => C.addFilter($loader, table, filter, { ifFilter: true }); } } @@ -111,13 +111,13 @@ one_with_filter_table : Ast.Expression = { !nofilter { ( table:complete_table ('with' | 'having') filter:with_filter with { functionName = table.functionName } | table:complete_table ('with' | 'having') filter:npp_filter with { functionName = table.functionName } - ) => C.addFilter(table, filter); + ) => C.addFilter($loader, table, filter); } // within distance filtered table !turking { !nofilter table:complete_table with { has_geo = true } filter:within_filter - => C.makeWithinGeoDistanceExpression(table, filter.place, filter.distance); + => C.makeWithinGeoDistanceExpression($loader, table, filter.place, filter.distance); } } @@ -130,7 +130,7 @@ one_which_filter_table : Ast.Expression = { | table:complete_table ('which' | 'that') 'have' filter:npp_filter with { functionName = table.functionName } | table:complete_table ('which' | 'that') 'have' filter:with_filter with { functionName = table.functionName } | table:complete_table ('which' | 'that') filter:reverse_verb_filter with { functionName = table.functionName } - ) => C.addFilter(table, filter); + ) => C.addFilter($loader, table, filter); } } @@ -139,10 +139,10 @@ one_clean_filter_table : Ast.Expression = { ( filter:apv_filter table:complete_table with { functionName = filter.functionName } | table:complete_table filter:pvp_filter with { functionName = table.functionName } | table:complete_table filter:preposition_filter with { functionName = table.functionName } - ) => C.addFilter(table, filter); + ) => C.addFilter($loader, table, filter); - filter:quality_filter table:complete_table => C.addFilter(table, filter); - table:complete_table with { has_geo = true } filter:nearby_filter => C.addFilter(table, filter); + filter:quality_filter table:complete_table => C.addFilter($loader, table, filter); + table:complete_table with { has_geo = true } filter:nearby_filter => C.addFilter($loader, table, filter); } } @@ -154,10 +154,10 @@ two_with_filter_table : Ast.Expression = { | table:one_with_filter_table 'and' filter:npp_filter with { functionName = table.functionName } | table:one_which_filter_table ('' | ',') ('and having' | 'and with' | ', with' | 'and have') filter:npp_filter with { functionName = table.functionName } | table:one_clean_filter_table ('' | ',') ('with' | 'having' | 'that have') filter:npp_filter with { functionName = table.functionName } - ) => C.addFilter(table, filter); + ) => C.addFilter($loader, table, filter); } - !nofilter filter:apv_filter table:one_with_filter_table with { functionName = filter.functionName } => C.addFilter(table, filter); + !nofilter filter:apv_filter table:one_with_filter_table with { functionName = filter.functionName } => C.addFilter($loader, table, filter); // within distance filtered table !turking { @@ -165,7 +165,7 @@ two_with_filter_table : Ast.Expression = { table:one_with_filter_table with { has_geo = true } filter:within_filter | table:one_which_filter_table with { has_geo = true } filter:within_filter | table:one_clean_filter_table with { has_geo = true } filter:within_filter - ) => C.makeWithinGeoDistanceExpression(table, filter.place, filter.distance); + ) => C.makeWithinGeoDistanceExpression($loader, table, filter.place, filter.distance); } } @@ -178,7 +178,7 @@ two_which_filter_table : Ast.Expression = { | table:one_with_filter_table ('' | ',') ('which' | 'that') 'have' filter:npp_filter with { functionName = table.functionName } | table:one_with_filter_table ('' | ',') ('which' | 'that') 'have' filter:with_filter with { functionName = table.functionName } | table:one_with_filter_table ('' | ',') ('which' | 'that') filter:reverse_verb_filter with { functionName = table.functionName } - ) => C.addFilter(table, filter); + ) => C.addFilter($loader, table, filter); ( table:one_which_filter_table ('' | ',') 'and' ('is' | 'are') filter:npi_filter with { functionName = table.functionName } | table:one_which_filter_table 'and' filter:avp_filter with { functionName = table.functionName } @@ -187,7 +187,7 @@ two_which_filter_table : Ast.Expression = { | table:one_which_filter_table ('' | ',') 'and' 'have' filter:npp_filter with { functionName = table.functionName } | table:one_which_filter_table ('' | ',') 'and' 'have' filter:with_filter with { functionName = table.functionName } | table:one_which_filter_table ('' | ',') 'and' filter:reverse_verb_filter with { functionName = table.functionName } - ) => C.addFilter(table, filter); + ) => C.addFilter($loader, table, filter); ( table:one_clean_filter_table ('' | ',') ('which' | 'that') ('is' | 'are') filter:npi_filter with { functionName = table.functionName } | table:one_clean_filter_table ('' | ',') ('which' | 'that') filter:avp_filter with { functionName = table.functionName } @@ -196,9 +196,9 @@ two_which_filter_table : Ast.Expression = { | table:one_clean_filter_table ('' | ',') ('which' | 'that') 'have' filter:npp_filter with { functionName = table.functionName } | table:one_clean_filter_table ('' | ',') ('which' | 'that') 'have' filter:with_filter with { functionName = table.functionName } | table:one_clean_filter_table ('' | ',') ('which' | 'that') filter:reverse_verb_filter with { functionName = table.functionName } - ) => C.addFilter(table, filter); + ) => C.addFilter($loader, table, filter); - !nofilter filter:apv_filter table:one_which_filter_table with { functionName = filter.functionName } => C.addFilter(table, filter); + !nofilter filter:apv_filter table:one_which_filter_table with { functionName = filter.functionName } => C.addFilter($loader, table, filter); } } @@ -207,10 +207,10 @@ two_clean_filter_table : Ast.Expression = { ( filter:apv_filter table:one_clean_filter_table with { functionName = filter.functionName } | table:one_clean_filter_table filter:pvp_filter with { functionName = table.functionName } | table:one_clean_filter_table filter:preposition_filter with { functionName = table.functionName } - ) => C.addFilter(table, filter); + ) => C.addFilter($loader, table, filter); - filter:quality_filter table:one_clean_filter_table => C.addFilter(table, filter); - table:one_clean_filter_table with { has_geo = true } filter:nearby_filter => C.addFilter(table, filter); + filter:quality_filter table:one_clean_filter_table => C.addFilter($loader, table, filter); + table:one_clean_filter_table with { has_geo = true } filter:nearby_filter => C.addFilter($loader, table, filter); } } @@ -222,10 +222,10 @@ three_with_filter_table : Ast.Expression = { | table:two_with_filter_table 'and' filter:npp_filter with { functionName = table.functionName } | table:two_which_filter_table ('' | ',') ('and having' | 'and with' | ', with' | 'and have') filter:npp_filter with { functionName = table.functionName } | table:two_clean_filter_table ('' | ',') ('with' | 'having' | 'that have') filter:npp_filter with { functionName = table.functionName } - ) => C.addFilter(table, filter); + ) => C.addFilter($loader, table, filter); } - !nofilter filter:apv_filter table:two_with_filter_table with { functionName = filter.functionName } => C.addFilter(table, filter); + !nofilter filter:apv_filter table:two_with_filter_table with { functionName = filter.functionName } => C.addFilter($loader, table, filter); // within distance filtered table !turking { @@ -233,7 +233,7 @@ three_with_filter_table : Ast.Expression = { table:two_with_filter_table with { has_geo = true } filter:within_filter | table:two_which_filter_table with { has_geo = true } filter:within_filter | table:two_clean_filter_table with { has_geo = true } filter:within_filter - ) => C.makeWithinGeoDistanceExpression(table, filter.place, filter.distance); + ) => C.makeWithinGeoDistanceExpression($loader, table, filter.place, filter.distance); } } @@ -246,7 +246,7 @@ three_which_filter_table : Ast.Expression = { | table:two_with_filter_table ('' | ',') ('which' | 'that') 'have' filter:npp_filter with { functionName = table.functionName } | table:two_with_filter_table ('' | ',') ('which' | 'that') 'have' filter:with_filter with { functionName = table.functionName } | table:two_with_filter_table ('' | ',') ('which' | 'that') filter:reverse_verb_filter with { functionName = table.functionName } - ) => C.addFilter(table, filter); + ) => C.addFilter($loader, table, filter); ( table:two_which_filter_table ('' | ',') 'and' ('is' | 'are') filter:npi_filter with { functionName = table.functionName } | table:two_which_filter_table 'and' filter:avp_filter with { functionName = table.functionName } @@ -255,7 +255,7 @@ three_which_filter_table : Ast.Expression = { | table:two_which_filter_table ('' | ',') 'and' 'have' filter:npp_filter with { functionName = table.functionName } | table:two_which_filter_table ('' | ',') 'and' 'have' filter:with_filter with { functionName = table.functionName } | table:two_which_filter_table ('' | ',') 'and' filter:reverse_verb_filter with { functionName = table.functionName } - ) => C.addFilter(table, filter); + ) => C.addFilter($loader, table, filter); ( table:two_clean_filter_table ('' | ',') ('which' | 'that') ('is' | 'are') filter:npi_filter with { functionName = table.functionName } | table:two_clean_filter_table ('' | ',') ('which' | 'that') filter:avp_filter with { functionName = table.functionName } @@ -264,10 +264,10 @@ three_which_filter_table : Ast.Expression = { | table:two_clean_filter_table ('' | ',') ('which' | 'that') 'have' filter:npp_filter with { functionName = table.functionName } | table:two_clean_filter_table ('' | ',') ('which' | 'that') 'have' filter:with_filter with { functionName = table.functionName } | table:two_clean_filter_table ('' | ',') ('which' | 'that') filter:reverse_verb_filter with { functionName = table.functionName } - ) => C.addFilter(table, filter); + ) => C.addFilter($loader, table, filter); } - !nofilter filter:apv_filter table:two_which_filter_table with { functionName = filter.functionName } => C.addFilter(table, filter); + !nofilter filter:apv_filter table:two_which_filter_table with { functionName = filter.functionName } => C.addFilter($loader, table, filter); } three_clean_filter_table : Ast.Expression = { @@ -275,10 +275,10 @@ three_clean_filter_table : Ast.Expression = { ( filter:apv_filter table:two_clean_filter_table with { functionName = filter.functionName } | table:two_clean_filter_table filter:pvp_filter with { functionName = table.functionName } | table:two_clean_filter_table filter:preposition_filter with { functionName = table.functionName } - ) => C.addFilter(table, filter); + ) => C.addFilter($loader, table, filter); - filter:quality_filter table:two_clean_filter_table => C.addFilter(table, filter); - table:two_clean_filter_table with { has_geo = true } filter:nearby_filter => C.addFilter(table, filter); + filter:quality_filter table:two_clean_filter_table => C.addFilter($loader, table, filter); + table:two_clean_filter_table with { has_geo = true } filter:nearby_filter => C.addFilter($loader, table, filter); } } @@ -291,7 +291,7 @@ anything_phrase : Ast.Expression = { anything_with_filter_phrase : Ast.Expression = { ( ('any' | 'some') phrase:generic_base_noun_phrase ('with' | 'having') filter:npp_filter with { functionName = phrase.functionName } | phrase:generic_anything_noun_phrase ('with' | 'having') filter:npp_filter with { functionName = phrase.functionName } - ) => C.addFilter(phrase, filter); + ) => C.addFilter($loader, phrase, filter); } anything_which_filter_phrase : Ast.Expression = { @@ -303,7 +303,7 @@ anything_which_filter_phrase : Ast.Expression = { | phrase:generic_anything_noun_phrase ('which' | 'that') ('is' | 'are') filter:npi_filter with { functionName = phrase.functionName } | phrase:generic_anything_noun_phrase ('which' | 'that') filter:avp_filter with { functionName = phrase.functionName } | phrase:generic_anything_noun_phrase ('which' | 'that') ('is' | 'are') filter:apv_filter with { functionName = phrase.functionName } - ) => C.addFilter(phrase, filter); + ) => C.addFilter($loader, phrase, filter); } anything_clean_filter_phrase : Ast.Expression = { @@ -315,7 +315,7 @@ anything_clean_filter_phrase : Ast.Expression = { | phrase:generic_anything_noun_phrase filter:preposition_filter with { functionName = phrase.functionName } | phrase:generic_anything_noun_phrase with { has_geo = true } filter:nearby_filter | filter:quality_filter phrase:generic_anything_noun_phrase - ) => C.addFilter(phrase, filter); + ) => C.addFilter($loader, phrase, filter); } // verb filter: @@ -340,17 +340,17 @@ one_be_filter_table : Ast.Expression = { | table:complete_table ('is' | 'are') filter:pvp_filter with { functionName = table.functionName } | table:complete_table ('is' | 'are') filter:apv_filter with { functionName = table.functionName } | table:complete_table ('is' | 'are') filter:npv_filter with { functionName = table.functionName } - ) => C.addFilter(table, filter); + ) => C.addFilter($loader, table, filter); } } one_have_filter_table : Ast.Expression = { - !nofilter table:complete_table ('get' | 'have') filter:with_filter with { functionName = table.functionName } => C.addFilter(table, filter); - !nofilter table:complete_table ('get' | 'have') filter:npp_filter with { functionName = table.functionName } => C.addFilter(table, filter); + !nofilter table:complete_table ('get' | 'have') filter:with_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + !nofilter table:complete_table ('get' | 'have') filter:npp_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); } one_verb_filter_table : Ast.Expression = { - !nofilter table:complete_table filter:avp_filter with { functionName = table.functionName } => C.addFilter(table, filter); + !nofilter table:complete_table filter:avp_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); } two_be_filter_table : Ast.Expression = { @@ -359,19 +359,19 @@ two_be_filter_table : Ast.Expression = { | table:one_be_filter_table 'and' filter:pvp_filter with { functionName = table.functionName } | table:one_be_filter_table 'and' filter:apv_filter with { functionName = table.functionName } | table:one_be_filter_table 'and' filter:npv_filter with { functionName = table.functionName } - ) => C.addFilter(table, filter); + ) => C.addFilter($loader, table, filter); ( table:one_have_filter_table ('' | ',') 'and' ('is' | 'are') filter:npi_filter with { functionName = table.functionName } | table:one_have_filter_table ('' | ',') 'and' ('is' | 'are') filter:pvp_filter with { functionName = table.functionName } | table:one_have_filter_table ('' | ',') 'and' ('is' | 'are') filter:apv_filter with { functionName = table.functionName } | table:one_have_filter_table ('' | ',') 'and' ('is' | 'are') filter:npv_filter with { functionName = table.functionName } - ) => C.addFilter(table, filter); + ) => C.addFilter($loader, table, filter); ( table:one_verb_filter_table ('' | ',') 'and' ('is' | 'are') filter:npi_filter with { functionName = table.functionName } | table:one_verb_filter_table ('' | ',') 'and' ('is' | 'are') filter:pvp_filter with { functionName = table.functionName } | table:one_verb_filter_table ('' | ',') 'and' ('is' | 'are') filter:apv_filter with { functionName = table.functionName } | table:one_verb_filter_table ('' | ',') 'and' ('is' | 'are') filter:npv_filter with { functionName = table.functionName } - ) => C.addFilter(table, filter); + ) => C.addFilter($loader, table, filter); } } @@ -383,7 +383,7 @@ two_have_filter_table : Ast.Expression = { | table:one_be_filter_table ('' | ',') 'and' ('get' | 'have') filter:npp_filter with { functionName = table.functionName } | table:one_have_filter_table 'and' filter:npp_filter with { functionName = table.functionName } | table:one_verb_filter_table ('' | ',') 'and' ('get' | 'have') filter:npp_filter with { functionName = table.functionName } - ) => C.addFilter(table, filter); + ) => C.addFilter($loader, table, filter); } } @@ -392,7 +392,7 @@ two_verb_filter_table : Ast.Expression = { ( table:one_be_filter_table 'and' filter:avp_filter with { functionName = table.functionName } | table:one_have_filter_table 'and' filter:avp_filter with { functionName = table.functionName } | table:one_verb_filter_table 'and' filter:avp_filter with { functionName = table.functionName } - ) => C.addFilter(table, filter); + ) => C.addFilter($loader, table, filter); } } @@ -586,19 +586,19 @@ stream : Ast.Expression = { => C.tableToStream(proj); } !nofilter ('when' | 'if' | 'in case' | 'whenever' | 'any time' | 'should' | 'anytime') table:complete_table with { is_monitorable = true } 'change and' filter:edge_filter with { functionName = table.functionName } => { - if (!table.schema!.is_monitorable || !C.checkFilter(table, filter) || table.schema!.is_list) + if (!table.schema!.is_monitorable || !C.checkFilter($loader, table, filter) || table.schema!.is_list) return null; - const withFilter = C.addFilter(table, filter, { ifFilter: true }); + const withFilter = C.addFilter($loader, table, filter, { ifFilter: true }); if (!withFilter) return null; return C.tableToStream(withFilter); }; !nofilter ('when' | 'if' | 'in case' | 'whenever' | 'any time' | 'should' | 'anytime') table:complete_table with { is_monitorable = true } 'change and' filter:if_filter with { functionName = table.functionName } => { - if (!table.schema!.is_monitorable || !C.checkFilter(table, filter)) + if (!table.schema!.is_monitorable || !C.checkFilter($loader, table, filter)) return null; if ($loader.flags.turking && table.schema!.is_list) return null; - const withFilter = C.addFilter(table, filter, { ifFilter: true }); + const withFilter = C.addFilter($loader, table, filter, { ifFilter: true }); if (!withFilter) return null; return C.tableToStream(withFilter); diff --git a/lib/templates/utils.ts b/lib/templates/utils.ts index 730f03e09..d478770e8 100644 --- a/lib/templates/utils.ts +++ b/lib/templates/utils.ts @@ -308,6 +308,8 @@ function isHumanEntity(type : Type|string) : boolean { return false; if (['tt:contact', 'tt:username', 'org.wikidata:human'].includes(type)) return true; + if (type === 'org.wikidata:common_name') // hack for CSQA dataset + return true; if (type.startsWith('org.schema') && type.endsWith(':Person')) return true; return false; diff --git a/lib/templates/who_questions.genie b/lib/templates/who_questions.genie index 1b2227813..efc74aaff 100644 --- a/lib/templates/who_questions.genie +++ b/lib/templates/who_questions.genie @@ -53,60 +53,60 @@ who_two_clean_filter_table : Ast.Expression = {} if (!$loader.flags.nofilter) { who_one_with_filter_table : Ast.Expression = { - table:thingpedia_who_question ('with' | 'having') filter:with_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:thingpedia_who_question ('with' | 'having') filter:npp_filter with { functionName = table.functionName } => C.addFilter(table, filter); + table:thingpedia_who_question ('with' | 'having') filter:with_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:thingpedia_who_question ('with' | 'having') filter:npp_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); } who_one_which_filter_table : Ast.Expression = { - table:thingpedia_who_question ('which' | 'that') ('is' | 'are') filter:npi_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:thingpedia_who_question ('which' | 'that') filter:avp_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:thingpedia_who_question ('which' | 'that') ('is' | 'are') filter:apv_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:thingpedia_who_question ('which' | 'that') ('is' | 'are') filter:npv_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:thingpedia_who_question ('which' | 'that') ('is' | 'are') filter:pvp_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:thingpedia_who_question ('which' | 'that') ('is' | 'are') filter:preposition_filter with { functionName = table.functionName } => C.addFilter(table, filter); + table:thingpedia_who_question ('which' | 'that') ('is' | 'are') filter:npi_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:thingpedia_who_question ('which' | 'that') filter:avp_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:thingpedia_who_question ('which' | 'that') ('is' | 'are') filter:apv_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:thingpedia_who_question ('which' | 'that') ('is' | 'are') filter:npv_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:thingpedia_who_question ('which' | 'that') ('is' | 'are') filter:pvp_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:thingpedia_who_question ('which' | 'that') ('is' | 'are') filter:preposition_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); } who_one_clean_filter_table : Ast.Expression = { - table:thingpedia_who_question filter:pvp_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:thingpedia_who_question filter:preposition_filter with { functionName = table.functionName } => C.addFilter(table, filter); + table:thingpedia_who_question filter:pvp_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:thingpedia_who_question filter:preposition_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); } who_two_with_filter_table : Ast.Expression = { - table:who_one_with_filter_table 'and' filter:with_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_which_filter_table ('and having' | 'and with' | ', with') filter:with_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_clean_filter_table ('with' | 'having') filter:with_filter with { functionName = table.functionName } => C.addFilter(table, filter); + table:who_one_with_filter_table 'and' filter:with_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_which_filter_table ('and having' | 'and with' | ', with') filter:with_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_clean_filter_table ('with' | 'having') filter:with_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); - table:who_one_with_filter_table 'and' filter:npp_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_which_filter_table ('and having' | 'and with' | ', with') filter:npp_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_clean_filter_table ('with' | 'having') filter:npp_filter with { functionName = table.functionName } => C.addFilter(table, filter); + table:who_one_with_filter_table 'and' filter:npp_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_which_filter_table ('and having' | 'and with' | ', with') filter:npp_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_clean_filter_table ('with' | 'having') filter:npp_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); } who_two_which_filter_table : Ast.Expression = { - table:who_one_with_filter_table ('which' | 'that') ('is' | 'are') filter:npi_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_with_filter_table ('which' | 'that') filter:avp_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_with_filter_table ('which' | 'that') ('is' | 'are') filter:apv_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_with_filter_table ('which' | 'that') ('is' | 'are') filter:npv_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_with_filter_table ('which' | 'that') ('is' | 'are') filter:pvp_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_with_filter_table ('which' | 'that') ('is' | 'are') filter:preposition_filter with { functionName = table.functionName } => C.addFilter(table, filter); - - table:who_one_which_filter_table 'and' ('is' | 'are') filter:npi_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_which_filter_table 'and' filter:avp_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_which_filter_table 'and' ('is' | 'are') filter:apv_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_which_filter_table 'and' ('is' | 'are') filter:npv_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_which_filter_table 'and' ('is' | 'are') filter:pvp_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_which_filter_table 'and' ('is' | 'are') filter:preposition_filter with { functionName = table.functionName } => C.addFilter(table, filter); - - table:who_one_clean_filter_table ('which' | 'that') ('is' | 'are') filter:npi_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_clean_filter_table ('which' | 'that') filter:avp_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_clean_filter_table ('which' | 'that') ('is' | 'are') filter:apv_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_clean_filter_table ('which' | 'that') ('is' | 'are') filter:npv_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_clean_filter_table ('which' | 'that') ('is' | 'are') filter:pvp_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_clean_filter_table ('which' | 'that') ('is' | 'are') filter:preposition_filter with { functionName = table.functionName } => C.addFilter(table, filter); + table:who_one_with_filter_table ('which' | 'that') ('is' | 'are') filter:npi_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_with_filter_table ('which' | 'that') filter:avp_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_with_filter_table ('which' | 'that') ('is' | 'are') filter:apv_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_with_filter_table ('which' | 'that') ('is' | 'are') filter:npv_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_with_filter_table ('which' | 'that') ('is' | 'are') filter:pvp_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_with_filter_table ('which' | 'that') ('is' | 'are') filter:preposition_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + + table:who_one_which_filter_table 'and' ('is' | 'are') filter:npi_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_which_filter_table 'and' filter:avp_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_which_filter_table 'and' ('is' | 'are') filter:apv_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_which_filter_table 'and' ('is' | 'are') filter:npv_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_which_filter_table 'and' ('is' | 'are') filter:pvp_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_which_filter_table 'and' ('is' | 'are') filter:preposition_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + + table:who_one_clean_filter_table ('which' | 'that') ('is' | 'are') filter:npi_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_clean_filter_table ('which' | 'that') filter:avp_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_clean_filter_table ('which' | 'that') ('is' | 'are') filter:apv_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_clean_filter_table ('which' | 'that') ('is' | 'are') filter:npv_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_clean_filter_table ('which' | 'that') ('is' | 'are') filter:pvp_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_clean_filter_table ('which' | 'that') ('is' | 'are') filter:preposition_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); } who_two_clean_filter_table : Ast.Expression = { - table:who_one_clean_filter_table ('and'|'') filter:pvp_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_clean_filter_table ('and'|'') filter:preposition_filter with { functionName = table.functionName } => C.addFilter(table, filter); + table:who_one_clean_filter_table ('and'|'') filter:pvp_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_clean_filter_table ('and'|'') filter:preposition_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); } } @@ -133,63 +133,63 @@ whose_filtered_table : Ast.Expression = {} if (!$loader.flags.nofilter) { who_one_be_filter_table : Ast.Expression = { - ?turking table:who_complete_table ('is' | 'are') filter:npi_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_complete_table ('is' | 'are') filter:pvp_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_complete_table ('is' | 'are') filter:preposition_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_complete_table ('is' | 'are') filter:apv_filter with { functionName = table.functionName } => C.addFilter(table, filter); - ?turking table:who_complete_table ('is' | 'are') filter:npv_filter with { functionName = table.functionName } => C.addFilter(table, filter); - - !turking table:who_complete_table ('is' | 'are') ('' | 'a' | 'the' | 'an') filter:npi_filter with { functionName = table.functionName } => C.addFilter(table, filter); - !turking table:who_complete_table ('is' | 'are') ('' | 'a' | 'the' | 'an') filter:npv_filter with { functionName = table.functionName } => C.addFilter(table, filter); + ?turking table:who_complete_table ('is' | 'are') filter:npi_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_complete_table ('is' | 'are') filter:pvp_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_complete_table ('is' | 'are') filter:preposition_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_complete_table ('is' | 'are') filter:apv_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + ?turking table:who_complete_table ('is' | 'are') filter:npv_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + + !turking table:who_complete_table ('is' | 'are') ('' | 'a' | 'the' | 'an') filter:npi_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + !turking table:who_complete_table ('is' | 'are') ('' | 'a' | 'the' | 'an') filter:npv_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); } who_one_have_filter_table : Ast.Expression = { - table:who_complete_table ('get' | 'have' | 'gets' | 'has') filter:with_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_complete_table ('get' | 'have' | 'gets' | 'has') filter:npp_filter with { functionName = table.functionName } => C.addFilter(table, filter); + table:who_complete_table ('get' | 'have' | 'gets' | 'has') filter:with_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_complete_table ('get' | 'have' | 'gets' | 'has') filter:npp_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); } who_one_verb_filter_table : Ast.Expression = { - table:who_complete_table filter:avp_filter with { functionName = table.functionName } => C.addFilter(table, filter); + table:who_complete_table filter:avp_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); } who_two_be_filter_table : Ast.Expression = { - table:who_one_be_filter_table 'and' filter:npi_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_be_filter_table 'and' filter:pvp_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_be_filter_table 'and' filter:preposition_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_be_filter_table 'and' filter:apv_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_be_filter_table 'and' filter:npv_filter with { functionName = table.functionName } => C.addFilter(table, filter); - - table:who_one_have_filter_table 'and' ('is' | 'are') filter:npi_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_have_filter_table 'and' ('is' | 'are') filter:pvp_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_have_filter_table 'and' ('is' | 'are') filter:preposition_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_have_filter_table 'and' ('is' | 'are') filter:apv_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_have_filter_table 'and' ('is' | 'are') filter:npv_filter with { functionName = table.functionName } => C.addFilter(table, filter); - - table:who_one_verb_filter_table 'and' ('is' | 'are') filter:npi_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_verb_filter_table 'and' ('is' | 'are') filter:pvp_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_verb_filter_table 'and' ('is' | 'are') filter:preposition_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_verb_filter_table 'and' ('is' | 'are') filter:apv_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_verb_filter_table 'and' ('is' | 'are') filter:npv_filter with { functionName = table.functionName } => C.addFilter(table, filter); + table:who_one_be_filter_table 'and' filter:npi_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_be_filter_table 'and' filter:pvp_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_be_filter_table 'and' filter:preposition_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_be_filter_table 'and' filter:apv_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_be_filter_table 'and' filter:npv_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + + table:who_one_have_filter_table 'and' ('is' | 'are') filter:npi_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_have_filter_table 'and' ('is' | 'are') filter:pvp_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_have_filter_table 'and' ('is' | 'are') filter:preposition_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_have_filter_table 'and' ('is' | 'are') filter:apv_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_have_filter_table 'and' ('is' | 'are') filter:npv_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + + table:who_one_verb_filter_table 'and' ('is' | 'are') filter:npi_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_verb_filter_table 'and' ('is' | 'are') filter:pvp_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_verb_filter_table 'and' ('is' | 'are') filter:preposition_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_verb_filter_table 'and' ('is' | 'are') filter:apv_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_verb_filter_table 'and' ('is' | 'are') filter:npv_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); } who_two_have_filter_table : Ast.Expression = { - table:who_one_be_filter_table 'and' ('get' | 'have' | 'gets' | 'has') filter:with_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_have_filter_table 'and' filter:with_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_verb_filter_table 'and' ('get' | 'have' | 'gets' | 'has') filter:with_filter with { functionName = table.functionName } => C.addFilter(table, filter); + table:who_one_be_filter_table 'and' ('get' | 'have' | 'gets' | 'has') filter:with_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_have_filter_table 'and' filter:with_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_verb_filter_table 'and' ('get' | 'have' | 'gets' | 'has') filter:with_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); - table:who_one_be_filter_table 'and' ('get' | 'have' | 'gets' | 'has') filter:npp_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_have_filter_table 'and' filter:npp_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_verb_filter_table 'and' ('get' | 'have' | 'gets' | 'has') filter:npp_filter with { functionName = table.functionName } => C.addFilter(table, filter); + table:who_one_be_filter_table 'and' ('get' | 'have' | 'gets' | 'has') filter:npp_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_have_filter_table 'and' filter:npp_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_verb_filter_table 'and' ('get' | 'have' | 'gets' | 'has') filter:npp_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); } who_two_verb_filter_table : Ast.Expression = { - table:who_one_be_filter_table 'and' filter:avp_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_have_filter_table 'and' filter:avp_filter with { functionName = table.functionName } => C.addFilter(table, filter); - table:who_one_verb_filter_table 'and' filter:avp_filter with { functionName = table.functionName } => C.addFilter(table, filter); + table:who_one_be_filter_table 'and' filter:avp_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_have_filter_table 'and' filter:avp_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); + table:who_one_verb_filter_table 'and' filter:avp_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); } whose_filtered_table : Ast.Expression = { - table:who_complete_table filter:whose_npp_filter with { functionName = table.functionName } => C.addFilter(table, filter); + table:who_complete_table filter:whose_npp_filter with { functionName = table.functionName } => C.addFilter($loader, table, filter); } } diff --git a/lib/utils/stream-utils.ts b/lib/utils/stream-utils.ts index 781793f20..7bf70c07c 100644 --- a/lib/utils/stream-utils.ts +++ b/lib/utils/stream-utils.ts @@ -258,9 +258,16 @@ export { CountStream, }; -export function waitFinish(stream : Stream.Writable) : Promise { +export function waitFinish(stream : NodeJS.WritableStream) : Promise { return new Promise((resolve, reject) => { stream.once('finish', resolve); stream.on('error', reject); }); } + +export function waitEnd(stream : NodeJS.ReadableStream) : Promise { + return new Promise((resolve, reject) => { + stream.once('end', resolve); + stream.on('error', reject); + }); +} \ No newline at end of file diff --git a/lib/utils/thingtalk/syntax.ts b/lib/utils/thingtalk/syntax.ts index f0e8e694d..2e7291399 100644 --- a/lib/utils/thingtalk/syntax.ts +++ b/lib/utils/thingtalk/syntax.ts @@ -140,6 +140,7 @@ interface SerializeOptions { timezone : string|undefined; ignoreSentence ?: boolean; compatibility ?: string; + includeEntityValue ?: boolean; } /** @@ -158,6 +159,7 @@ export function serializePrediction(program : Ast.Input, ignoreSentence: options.ignoreSentence || false, }); return Syntax.serialize(program, Syntax.SyntaxType.Tokenized, entityRetriever, { - compatibility: options.compatibility + compatibility: options.compatibility, + includeEntityValue: options.includeEntityValue }); } diff --git a/package-lock.json b/package-lock.json index 92f3063e0..e36907c84 100644 --- a/package-lock.json +++ b/package-lock.json @@ -575,6 +575,15 @@ "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", "dev": true }, + "@types/JSONStream": { + "version": "npm:@types/jsonstream@0.8.30", + "resolved": "https://registry.npmjs.org/@types/jsonstream/-/jsonstream-0.8.30.tgz", + "integrity": "sha512-KqHs2eAapKL7ZKUiKI/giUYPVgkoDXkVGFehk3goo+3Q8qwxVVRC3iwg+hK/THORbcri4RRxTtlm3JoSY1KZLQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, "@types/argparse": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/@types/argparse/-/argparse-2.0.10.tgz", @@ -2350,11 +2359,10 @@ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true + "fastest-levenshtein": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", + "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==" }, "fastq": { "version": "1.13.0", @@ -4014,6 +4022,14 @@ "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.3" + }, + "dependencies": { + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + } } }, "os-homedir": { diff --git a/package.json b/package.json index bce990cf3..7c5c2dee4 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "en-pos": "^1.0.16", "errorhandler": "^1.5.1", "express": "^4.17.1", + "fastest-levenshtein": "^1.0.12", "flex-js": "^1.0.5", "form-data": "^4.0.0", "gettext-parser": "^4.0.4", @@ -63,6 +64,7 @@ "@types/gettext-parser": "^4.0.1", "@types/js-yaml": "^4.0.3", "@types/jsonstream": "^0.8.30", + "@types/JSONStream": "npm:@types/jsonstream@^0.8.30", "@types/mime": "^2.0.3", "@types/morgan": "^1.9.3", "@types/node": "^14.17.21", diff --git a/starter/schemaorg/Makefile b/starter/schemaorg/Makefile index d1815c6e3..748a729a7 100644 --- a/starter/schemaorg/Makefile +++ b/starter/schemaorg/Makefile @@ -56,14 +56,12 @@ paraphraser_options ?= --paraphraser-model ./models/paraphraser-bart-large-speed baseline_process_schemaorg_flags = wikidata_process_schemaorg_flags = --wikidata-path ./wikidata-property-labels.json -bert_process_schemaorg_flags = bart_process_schemaorg_flags = manual_process_schemaorg_flags = --manual manual+bart_process_schemaorg_flags = --manual baseline_annotate_flags = wikidata_annotate_flags = -bert_annotate_flags = --algorithms bert-property-synonyms bert-domain-synonyms bert-adjectives bart_annotate_flags = --algorithms bart-paraphrase $(paraphraser_options) manual_annotate_flags = manual+bart_annotate_flags = --algorithms bart-paraphrase $(paraphraser_options) @@ -113,7 +111,7 @@ emptydataset.tt: cat $(geniedir)/data/en-US/constants.tsv >> $@ %/manifest.tt: %/constants.tsv %/schema.trimmed.tt %/parameter-datasets.tsv $(if $(findstring bart,$(annotation)),models/paraphraser-bart-large-speedup-megabatch-5m,) common-words.txt - $(genie) auto-annotate -o $@.tmp --constants $*/constants.tsv --thingpedia $*/schema.trimmed.tt --functions $($(*)_white_list) $(annotate_flags) --parameter-datasets $*/parameter-datasets.tsv --dataset schemaorg + $(genie) auto-annotate -o $@.tmp --constants $*/constants.tsv --thingpedia $*/schema.trimmed.tt --functions $($(*)_white_list) $(annotate_flags) --dataset schemaorg mv $@.tmp $@ multidomain/manifest.tt: $(addsuffix /manifest.tt,$(all_experiments)) @@ -191,7 +189,7 @@ evaluate: $(experiment)/$(eval_set)/annotated.tsv $(experiment)/manifest.tt mv $(experiment)/$(eval_set)/$(model).results.tmp $(experiment)/$(eval_set)/$(model).results clean: - rm -rf datadir bert-canonical-annotator-in.json bert-canonical-annotator-out.json gpt2-paraphraser-in.tsv gpt2-paraphraser-out.json synthetic-test.tsv + rm -rf datadir paraphraser-in.json paraphraser-out.json rm -rf multidomain/manifest.tt multidomain/augmented.tsv for exp in $(all_experiments) ; do \ rm -rf $$exp/synthetic* $$exp/data.json $$exp/entities.json $$exp/parameter-datasets* $$exp/schema.tt $$exp/manifest.tt $$exp/schema.trimmed.tt $$exp/augmented.tsv $$exp/constants.tsv ; \ diff --git a/starter/wikidata/.gitignore b/starter/wikidata/.gitignore index 7330a36b9..68dc939de 100644 --- a/starter/wikidata/.gitignore +++ b/starter/wikidata/.gitignore @@ -1,16 +1,26 @@ .embeddings/ + +raw +datadir +models +domains.tsv emptydataset.tt -config.mk -wikidata.tt -manifest.tt -constants.tsv -data.json -entities.json -parameter-datasets -parameter-datasets.tsv +# domain folders +city +country +tv +disease +human +art +song +game +organization +music_band -shared-parameter-datasets/ -datadir/ -models/ +# intermediate files +bootleg-*.json +paraphraser-in.* +paraphraser-out.* +*.tar.xz diff --git a/starter/wikidata/Makefile b/starter/wikidata/Makefile index 8df56ed46..ded34ef58 100644 --- a/starter/wikidata/Makefile +++ b/starter/wikidata/Makefile @@ -1,84 +1,48 @@ -geniedir = ../.. -developer_key = -experiment ?= city -thingpedia_url = https://thingpedia.stanford.edu/thingpedia +geniedir ?= ../.. +wikidata_dir ?= raw/wikidata +csqa_dir ?= raw/csqa -include ./config.mk -memsize := 15000 -genie = node --experimental_worker --max_old_space_size=$(memsize) $(geniedir)/dist/tool/genie.js - -all_experiments = city country star university company people artist athlete sports-team tv-series - -city_class = Q515 -city_canonical = city -city_properties ?= P571,P138,P30,P17,P1376,P131,P206,P625,P6,P1082,P2927,P2044,P421,P190,P47,P2046,P281,P856,P41,P1538,P18,P610,P2936 -city_required_properties ?= none - -country_class = Q6256 -country_canonical = country -country_properties ?= P571,P1813,P138,P37,P85,P1451,P30,P36,P206,P610,P1589,P122,P6,P530,P1304,P463,P3001,P1082,P150,P421,P38,P2131,P2132,P1081,P47,P2046,P41,P1125 -country_required_properties ?= none - -star_class = Q523 -star_canonical = star -star_properties ?= P18,P361,P2067,P398,P397,P2583,P1102,P215,P1215,P1457,P2227,P2076,P2120,P2547,P2046,P2234,P7584,P59,P1096,P4296,P2216 -star_required_properties ?= none - -university_class = Q3918 -university_canonical = university -university_properties ?= P6375,P1449,P571,P17,P856,P131,P576,P154,P18,P571,P138,P112,P488,P2828,P1451,P2124,P463,P2196,P2936,P2769,P281,P355,P1830 -university_required_properties ?= none - -company_class = Q783794 -company_canonical = company -company_properties ?= P154,P452,P571,P138,P112,P169,P1037,P1451,P17,P463,P2403,P2137,P2139,P2295,P3362,P740,P127,P749,P159,P1128,P166,P1056,P856,P1581,P414 -company_required_properties ?= none - -people_class = Q5 -people_canonical = people -people_properties ?= P18,P21,P27,P39,P735,P734,P569,P19,P22,P25,P3373,P26,P40,P1412,P106,P1449,P1830,P69,P551,P2031,P2032,P172,P2067,P1344,P166,P1411,P2048,P140,P570,P20,P1196,P509,P4602,P119,P102,P410 -people_required_properties ?= none - -artist_class = Q5 -artist_canonical = artist -artist_properties ?= P18,P21,P27,P735,P734,P569,P19,P22,P25,P3373,P26,P40,P1412,P106,P1449,P1830,P69,P551,P172,P2067,P1344,P166,P1411,P2048,P140,P412,P1303,P800,P136,P2218,P264 -artist_required_properties ?= P800 - -athlete_class = Q5 -athlete_canonical = athlete -athlete_properties ?= P18,P21,P27,P735,P734,P569,P19,P22,P25,P3373,P26,P40,P1412,P106,P1449,P1830,P69,P551,P172,P2067,P1344,P166,P1411,P2048,P140,P641,P413,P286,P118,P54,P552,P647,P1618,P1352,P1532 -athlete_required_properties ?= P641 - -sports-team_class = Q12973014 -sports-team_canonical = sports_team -sports-team_properties ?= P571,P17,P286,P118,P115,P127,P159,P859,P641,P822,P856,P112,P488,P2124,P355,P166,P1411,P94,P154,P1813,P138,P505 -sports-team_required_properties ?= none - -tv-series_class = Q5398426 -tv-series_canonical = tv_series -tv-series_properties ?= P136,P170,P449,P495,P364,P58,P161,P162,P272,P750,P942,P840,P2047,P4312,P166,P1411,P674,P1113,P2437,P580,P582 -tv-series_required_properties ?= none - -eval_set ?= eval-synthetic - -mode ?= default -default_process_schema_flags = --schemaorg-manifest ./schemaorg-manifest.tt --wikidata-labels -base_process_schema_flags = --schemaorg-manifest ./schemaorg-manifest.tt -manual_process_schema_flags = --schemaorg-manifest ./schemaorg-manifest.tt --wikidata-labels --manual -auto_process_schema_flags = --schemaorg-manifest ./schemaorg-manifest.tt --wikidata-labels -custom_process_schema_flags ?= - -default_annotate_flags = -base_annotate_flags = -manual_annotate_flags = --skip -auto_annotate_flags = --algorithm bert,adj,bart --paraphraser-model ./models/paraphraser-bart -custom_annotate_flags ?= -auto_auto_annotate_dependencies = models/paraphraser-bart -manual_process_schema_dependencies = $(geniedir)/tool/autoqa/wikidata/manual-annotations.js - -load_predownloaded_parameter_sets = true +memsize := 12000 +NODE ?= node +genie ?= $(NODE) --experimental_worker --max_old_space_size=$(memsize) $(geniedir)/dist/tool/genie.js +# experiment: city, country, tv, disease, human, art, song, game, organization, music_band +experiment ?= + +# options for manfiest generation +annotation ?= auto +type_system ?= entity-hierarchical +paraphraser_options ?= --paraphraser-model ./models/paraphraser-bart-large-speedup-megabatch-5m --batch-size 16 --debug + +baseline_preprocess_flags = +manual_preprocess_flags = +wikidata_preprocess_flags = +auto_preprocess_flags = + +baseline_process_schema_flags = +manual_process_schema_flags = --manual +wikidata_process_schema_flags = --wikidata-labels +auto_process_schema_flags = + +baseline_annotate_flags = +manual_preprocess_flags = +wikidata_annotate_flags = +auto_annotate_flags = --algorithms bart-paraphrase --type-based-projection $(paraphraser_options) + +preprocess_flags ?= --type-system $(type_system) $($(annotation)_preprocess_flags) +process_schema_flags ?= --type-system $(type_system) $($(annotation)_process_schema_flags) +annotate_flags ?= $($(annotation)_annotate_flags) + +# options for synthesis +datadir = datadir + +csqa_filter = "ques_type_id=1,2" +valid_size ?= 500 + +valid_set ?= valid +eval_set ?= eval dataset_file ?= emptydataset.tt synthetic_flags ?= \ projection_with_filter \ @@ -87,149 +51,263 @@ synthetic_flags ?= \ schema_org \ filter_join \ no_stream -generate_flags = $(foreach v,$(synthetic_flags),--set-flag $(v)) +annotate_with_entity_id = +soft_match_id = +generate_flags = $(foreach v,$(synthetic_flags),--set-flag $(v)) $(if $(soft_match_id),,--set-flag no-soft_match_id) custom_generate_flags ?= - -target_pruning_size ?= 500 +pruning_size ?= 25 +mindepth ?= 6 maxdepth ?= 8 +fewshot = +fewshot_size = 100 +train_batch_tokens = 2000 +val_batch_size = 4000 + +# options for training model ?= 1 -train_iterations ?= 20000 -train_save_every ?= 2000 +train_iterations ?= 10000 +train_save_every ?= 1000 train_log_every ?= 100 -train_batch_tokens ?= 400 -val_batch_size ?= 3000 train_nlu_flags ?= \ - --model TransformerLSTM \ - --pretrained_model bert-base-cased \ - --trainable_decoder_embeddings 50 \ - --override_question . \ - --train_batch_tokens=$(train_batch_tokens) \ - --val_batch_size=$(val_batch_size) + --model TransformerSeq2Seq \ + --pretrained_model facebook/bart-large \ + --lr_multiply 0.01 \ + --warmup 20 \ + --gradient_accumulation_steps 20 \ + --eval_set_name valid \ + --train_batch_tokens $(train_batch_tokens) \ + --val_batch_size $(val_batch_size) \ + --preprocess_special_tokens \ + --override_question= custom_train_nlu_flags ?= -annotate_offset ?= 1 - -.PHONY: train evaluate annotate demo clean +.PHONY: datadir train clean clean-synthesis .SECONDARY: -models/paraphraser-bart: - mkdir models - wget --no-verbose https://almond-static.stanford.edu/test-data/paraphraser-bart.tar.xz - tar -C models -xvf paraphraser-bart.tar.xz +models/paraphraser-bart-large-speedup-megabatch-5m: + mkdir -p models + wget --no-verbose https://almond-static.stanford.edu/research/schema2qa2.0/paraphraser-bart-large-speedup-megabatch-5m.tar.xz + tar -C models -xvf paraphraser-bart-large-speedup-megabatch-5m.tar.xz + +emptydataset.tt: + echo 'dataset @empty {}' > $@ + +raw/bootleg: + mkdir -p raw/bootleg + wget --no-verbose https://almond-static.stanford.edu/research/csqa/bootleg/qid2typeids.json -P $@ + wget --no-verbose https://almond-static.stanford.edu/research/csqa/bootleg/type_vocab.json -P $@ + wget --no-verbose https://almond-static.stanford.edu/research/csqa/bootleg/type_vocab_to_wikidataqid.json -P $@ -%/wikidata.tt: $(geniedir)/tool/autoqa/wikidata/process-schema.js $($(mode)_process_schema_dependencies) +bootleg-types.json: raw/bootleg mkdir -p $(dir $@) - $(genie) wikidata-process-schema -o $@.tmp --entities $*/entities.json $($(mode)_process_schema_flags)\ - --domains $($(*)_class) \ - --domain-canonicals $($(*)_canonical) \ - --properties $($(*)_properties) \ - --required-properties $($(*)_required_properties) + $(genie) wikidata-preprocess-bootleg \ + --types raw/bootleg/qid2typeids.json \ + --type-vocab raw/bootleg/type_vocab.json \ + --type-vocab-to-qid raw/bootleg/type_vocab_to_wikidataqid.json \ + --bootleg-types $@.tmp \ + --bootleg-type-canonicals bootleg-type-canonicals.json.tmp mv $@.tmp $@ + mv bootleg-type-canonicals.json.tmp bootleg-type-canonicals.json -emptydataset.tt: - echo 'dataset @empty {}' > $@ +raw/wikidata: + mkdir -p $@ + wget --no-verbose https://almond-static.stanford.edu/research/csqa/kb/filtered_property_wikidata4.json -P $@ + wget --no-verbose https://almond-static.stanford.edu/research/csqa/kb/wikidata_short_1.json -P $@ + wget --no-verbose https://almond-static.stanford.edu/research/csqa/kb/wikidata_short_2.json -P $@ + wget --no-verbose https://almond-static.stanford.edu/research/csqa/kb/items_wikidata_n.json -P $@ + +raw/csqa/train: + mkdir -p raw/csqa + wget --no-verbose https://almond-static.stanford.edu/research/csqa/train.tar.xz + tar -C raw/csqa -xf train.tar.xz + +raw/csqa/valid: + mkdir -p raw/csqa + wget --no-verbose https://almond-static.stanford.edu/research/csqa/valid.tar.xz + tar -C raw/csqa -xf valid.tar.xz + +domains.tsv: raw/csqa/valid $(wikidata_dir) + $(genie) wikidata-csqa-type-map \ + -i raw/csqa/valid \ + --wikidata $(wikidata_dir)/wikidata_short_*.json \ + --wikidata-labels $(wikidata_dir)/items_wikidata_n.json \ + $(if $(findstring all,$(experiment)),,--domains $(experiment)) \ + $(type_map_options) \ + -o $@ + +$(experiment)/parameter-datasets.tsv: $(wikidata_dir) domains.tsv bootleg-types.json + mkdir -p $(experiment)/parameter-datasets + $(genie) wikidata-preprocess-knowledge-base \ + --domains domains.tsv \ + --wikidata $(wikidata_dir)/wikidata_short_1.json $(wikidata_dir)/wikidata_short_2.json \ + --wikidata-entity-list $(wikidata_dir)/items_wikidata_n.json \ + --wikidata-property-list $(wikidata_dir)/filtered_property_wikidata4.json \ + --bootleg-types bootleg-types.json \ + --bootleg-type-canonicals bootleg-type-canonicals.json \ + --subtypes $(experiment)/subtypes.json \ + --filtered-properties $(experiment)/properties.json \ + --symmetric-properties $(experiment)/symmetric-properties.txt \ + --manifest $(experiment)/parameter-datasets.tsv.tmp \ + --output-dir $(experiment)/parameter-datasets \ + $(preprocess_flags) + mv $(experiment)/parameter-datasets.tsv.tmp $(experiment)/parameter-datasets.tsv + +$(experiment)/wikidata.tt: $(experiment)/parameter-datasets.tsv domains.tsv + mkdir -p $(dir $@) + $(genie) wikidata-process-schema \ + -o $@.tmp --entities $(experiment)/entities.json \ + --domains domains.tsv \ + --property-labels $(wikidata_dir)/filtered_property_wikidata4.json \ + --subtypes $(experiment)/subtypes.json \ + --properties $(experiment)/properties.json \ + $(process_schema_flags) + mv $@.tmp $@ -shared-parameter-datasets.tsv: - $(genie) download-entity-values --thingpedia-url $(thingpedia_url) --developer-key $(developer_key) \ - --manifest $@ --append-manifest -d shared-parameter-datasets - $(genie) download-string-values --thingpedia-url $(thingpedia_url) --developer-key $(developer_key) \ - --manifest $@ --append-manifest -d shared-parameter-datasets - -%/parameter-datasets.tsv : %/wikidata.tt shared-parameter-datasets.tsv - if [ "$(load_predownloaded_parameter_sets)" = "true" ] ; then \ - wget --no-verbose https://almond-static.stanford.edu/test-data/wikidata-parameter-datasets/$*.tar.xz ; \ - tar -C . -xvf $*.tar.xz ; \ - else \ - sed -e "s|$(echo -e '\t')shared-parameter-datasets|$(echo -e '\t')../shared-parameter-datasets|g" shared-parameter-datasets.tsv > $@ ; \ - $(genie) wikidata-make-string-datasets --manifest $@.local -d $*/parameter-datasets --thingpedia $*/wikidata.tt; \ - cat $@.local >> $@; \ - rm $@.local; \ - fi - -%/constants.tsv: %/parameter-datasets.tsv %/wikidata.tt - $(genie) sample-constants -o $@.tmp --parameter-datasets $*/parameter-datasets.tsv --thingpedia $*/wikidata.tt --devices org.wikidata +$(experiment)/constants.tsv: $(experiment)/parameter-datasets.tsv $(experiment)/wikidata.tt + $(genie) sample-constants -o $@.tmp --parameter-datasets $(experiment)/parameter-datasets.tsv --thingpedia $(experiment)/wikidata.tt --devices org.wikidata cat $(geniedir)/data/en-US/constants.tsv >> $@.tmp mv $@.tmp $@ -%/manifest.tt: %/constants.tsv %/wikidata.tt %/parameter-datasets.tsv $($(mode)_auto_annotate_dependencies) - $(genie) auto-annotate -o $@.tmp --constants $*/constants.tsv --thingpedia $*/wikidata.tt --functions $($(*)_canonical) $($(mode)_annotate_flags) --parameter-datasets $*/parameter-datasets.tsv --dataset wikidata +$(experiment)/manifest.tt: $(experiment)/constants.tsv $(experiment)/wikidata.tt $(experiment)/parameter-datasets.tsv $(if $(findstring auto,$(annotation)),models/paraphraser-bart-large-speedup-megabatch-5m,) + $(genie) auto-annotate -o $@.tmp \ + --dataset wikidata \ + --constants $(experiment)/constants.tsv \ + --thingpedia $(experiment)/wikidata.tt \ + --entities ${experiment}/entities.json \ + $(annotate_flags) mv $@.tmp $@ -%/synthetic.tsv: %/manifest.tt $(dataset_file) - $(genie) generate \ - --thingpedia $*/manifest.tt --entities $*/entities.json --dataset $(dataset_file) \ - --target-pruning-size $(target_pruning_size) \ - -o $@.tmp --no-debug $(generate_flags) $(custom_generate_flags) --maxdepth $(maxdepth) \ - --random-seed $@ --id-prefix $*: +$(experiment)/synthetic-d%.tsv: $(experiment)/manifest.tt $(dataset_file) + $(genie) generate -o $@.tmp \ + --thingpedia $(experiment)/manifest.tt \ + --entities $(experiment)/entities.json \ + --dataset $(dataset_file) \ + --target-pruning-size $(pruning_size) \ + $(generate_flags) \ + --maxdepth $$(echo $* | cut -f1 -d'-') \ + --random-seed $@ \ + --debug 3 mv $@.tmp $@ -%/augmented.tsv : %/synthetic.tsv %/parameter-datasets.tsv - $(genie) augment -o $@.tmp -l en-US --thingpedia $*/manifest.tt --parameter-datasets $*/parameter-datasets.tsv \ +$(experiment)/synthetic.tsv : $(foreach v,1 2 3,$(experiment)/synthetic-d$(mindepth)-$(v).tsv) $(experiment)/synthetic-d$(maxdepth).tsv + cat $^ > $@ + +# csqa training set converted as few shot +$(experiment)/csqa-train.tsv: $(experiment)/wikidata.tt $(csqa_dir)/train $(wikidata_dir) domains.tsv + $(genie) wikidata-convert-csqa \ + --domains domains.tsv \ + --thingpedia $(experiment)/wikidata.tt \ + --input $(csqa_dir)/train \ + --output $@\ + --wikidata-property-list $(wikidata_dir)/filtered_property_wikidata4.json \ + --items $(experiment)/items.json \ + --values $(experiment)/values.json \ + --types $(experiment)/types.json \ + --filtered-examples $(experiment)/train.json \ + $(if $(annotate_with_entity_id),--include-entity-value,) \ + $(if $(soft_match_id),--soft-match-id,) \ + +$(experiment)/csqa-train-typechecked.tsv: $(experiment)/wikidata.tt $(experiment)/csqa-train.tsv + $(genie) typecheck \ + -o $@ \ + --dropped $(experiment)/csqa-train-dropped.tsv \ + --thingpedia $(experiment)/wikidata.tt \ + $(if $(annotate_with_entity_id),--include-entity-value,) \ + $(experiment)/csqa-train.tsv + +$(experiment)/fewshot.tsv: $(experiment)/csqa-train-typechecked.tsv + head -$(fewshot_size) $(experiment)/csqa-train-typechecked.tsv > $(experiment)/fewshot.tsv + +$(experiment)/augmented.tsv : $(experiment)/manifest.tt $(experiment)/synthetic.tsv $(experiment)/parameter-datasets.tsv $(if $(fewshot),$(experiment)/fewshot.tsv,) + $(genie) augment -o $@.tmp -l en-US \ + --thingpedia $(experiment)/manifest.tt \ + --entities $(experiment)/entities.json \ + --parameter-datasets $(experiment)/parameter-datasets.tsv \ --synthetic-expand-factor 1 --quoted-paraphrasing-expand-factor 60 --no-quote-paraphrasing-expand-factor 20 --quoted-fraction 0.0 \ - --debug $($(*)_paraphrase) $*/synthetic.tsv + --debug --no-requotable \ + $(if $(annotate_with_entity_id),--include-entity-value,) \ + $(experiment)/synthetic.tsv $(if $(fewshot),$(experiment)/fewshot.tsv,) mv $@.tmp $@ -datadir: $(experiment)/augmented.tsv +$(experiment)/csqa-valid.tsv: $(experiment)/wikidata.tt $(csqa_dir)/valid $(wikidata_dir) domains.tsv + $(genie) wikidata-convert-csqa \ + --domains domains.tsv \ + --thingpedia $(experiment)/wikidata.tt \ + --input $(csqa_dir)/valid \ + --output $@\ + --wikidata-property-list $(wikidata_dir)/filtered_property_wikidata4.json \ + --items $(experiment)/items.json \ + --values $(experiment)/values.json \ + --types $(experiment)/types.json \ + --filtered-examples $(experiment)/valid.json \ + $(if $(csqa_filter),--filter $(csqa_filter),) \ + $(if $(annotate_with_entity_id),--include-entity-value,) \ + $(if $(soft_match_id),--soft-match-id,) \ + +$(experiment)/csqa-valid-typechecked.tsv: $(experiment)/wikidata.tt $(experiment)/csqa-valid.tsv + $(genie) typecheck \ + -o $@ \ + --dropped $(experiment)/csqa-valid-dropped.tsv \ + --thingpedia $(experiment)/wikidata.tt \ + $(if $(annotate_with_entity_id),--include-entity-value,) \ + $(experiment)/csqa-valid.tsv + +$(experiment)/eval/annotated.tsv: $(experiment)/csqa-valid-typechecked.tsv + mkdir -p $(experiment)/eval + cp $(experiment)/csqa-valid-typechecked.tsv $@ + +$(experiment)/valid/annotated.tsv: $(experiment)/csqa-valid-typechecked.tsv + mkdir -p $(experiment)/valid + head -n $(valid_size) $(experiment)/csqa-valid-typechecked.tsv > $@ + +datadir: domains.tsv $(experiment)/augmented.tsv $(experiment)/$(valid_set)/annotated.tsv $(experiment)/$(eval_set)/annotated.tsv mkdir -p $@ - if [ "$(eval_set)" = "eval-synthetic" ] ; then \ - $(genie) split-train-eval --train $@/train.tsv --eval $@/eval.tsv \ - --eval-probability 0.1 --split-strategy sentence \ - --eval-on-synthetic $(experiment)/augmented.tsv ; \ - mkdir -p $(experiment)/eval-synthetic ; \ - cp $@/eval.tsv $(experiment)/eval-synthetic/annotated.tsv; \ - else \ - cp $(experiment)/augmented.tsv $@/train.tsv ; \ - cut -f1-3 $(experiment)/${eval_set}/annotated.tsv > $@/eval.tsv ; \ - fi + cp $(experiment)/augmented.tsv $@/train.tsv + cp $(experiment)/$(valid_set)/annotated.tsv $@/$(valid_set).tsv + cp $(experiment)/$(eval_set)/annotated.tsv $@/$(eval_set).tsv touch $@ -train: +train: $(datadir) mkdir -p $(experiment)/models/$(model) -rm datadir/almond ln -sf . datadir/almond genienlp train \ --no_commit \ - --data datadir \ - --embeddings .embeddings \ + --data $(datadir) \ --save $(experiment)/models/$(model) \ + --cache $(datadir)/.cache \ --tensorboard_dir $(experiment)/models/$(model) \ - --cache datadir/.cache \ --train_tasks almond \ - --preserve_case \ --train_iterations $(train_iterations) \ --save_every $(train_save_every) \ --log_every $(train_log_every) \ --val_every $(train_save_every) \ --exist_ok \ --skip_cache \ + --preserve_case \ $(train_nlu_flags) \ $(custom_train_nlu_flags) -%/eval-synthetic/annotated.tsv: - mkdir -p $*/eval-synthetic - wget https://almond-static.stanford.edu/test-data/wikidata/$*/eval-synthetic.tsv -O $@ - -evaluate: $(experiment)/$(eval_set)/annotated.tsv $(experiment)/manifest.tt - $(genie) evaluate-server --url "file://$(abspath $(experiment)/models/$(model))" --thingpedia $(experiment)/manifest.tt $(experiment)/$(eval_set)/annotated.tsv --debug --csv-prefix $(eval_set) --csv --min-complexity 1 --max-complexity 3 -o $(experiment)/$(eval_set)/$(model).results.tmp | tee $(experiment)/$(eval_set)/$(model).debug +evaluate: $(experiment)/models/${model}/best.pth $(experiment)/$(eval_set)/annotated.tsv $(experiment)/manifest.tt + $(genie) evaluate-server $(experiment)/$(eval_set)/annotated.tsv \ + --url "file://$(abspath $(experiment)/models/$(model))" \ + --thingpedia $(experiment)/manifest.tt \ + --debug \ + --csv-prefix $(eval_set) \ + --csv \ + --min-complexity 1 \ + --max-complexity 3 \ + --ignore-entity-type \ + $(if $(annotate_with_entity_id),--include-entity-value,) \ + -o $(experiment)/$(eval_set)/$(model).results.tmp | tee $(experiment)/$(eval_set)/$(model).debug mv $(experiment)/$(eval_set)/$(model).results.tmp $(experiment)/$(eval_set)/$(model).results -annotate: $(experiment)/manifest.tt - $(genie) manual-annotate \ - --server "file://$(abspath $(experiment)/models/$(model))" \ - --thingpedia $(experiment)/manifest.tt \ - --annotated $(experiment)/${eval_set}/annotated.tsv \ - --dropped $(experiment)/${eval_set}/dropped.tsv \ - --offset $(annotate_offset) \ - $(experiment)/$(eval_set)/input.txt - -demo: $(experiment)/manifest.tt - $(genie) wikidata-demo \ - --manifest $(experiment)/manifest.tt \ - --model "file://$(abspath $(experiment)/models/$(model))" - -clean: - rm -rf datadir bert-canonical-annotator-in.json bert-canonical-annotator-out.json gpt2-paraphraser-in.tsv gpt2-paraphraser-out.json - for exp in $(all_experiments) ; do \ - rm -rf $$exp/synthetic* $$exp/entities.json $$exp/parameter-datasets* $$exp/wikidata.tt $$exp/manifest.tt $$exp/augmented.tsv $$exp/constants.tsv $$exp/*.tmp; \ - done +clean: + rm -rf datadir + rm -rf $(experiment) + rm -rf domains.tsv bert-canonical-annotator-*.json paraphraser-in.json paraphraser-out.json + +clean-synthesis: + rm -rf datadir + rm -rf $(experiment)/synthetic*.tsv $(experiment)/augmented.tsv \ No newline at end of file diff --git a/starter/wikidata/README.md b/starter/wikidata/README.md index 101d10638..113e37d88 100644 --- a/starter/wikidata/README.md +++ b/starter/wikidata/README.md @@ -1,224 +1,64 @@ -# Starter Code for Wikidata Single Domain +# Starter Code for Wikidata Q&A -This directory contains the basic starter code to train a single-turn Q\&A semantic parsing model for a [Wikidata](https://wikidata.org) domain. +This directory contains the basic starter code to synthesis data and train a single-turn Q\&A semantic parsing model for a [Wikidata](https://wikidata.org) domain. -By following the instructions in this starter code, you will create a [Thingpedia](https://wiki.almond.stanford.edu/thingpedia) skills that can answer questions over Wikidata. You will also create a natural language model to go along with that skill. +## Installation -## Configuration - -### Set developer key -Create a file called `config.mk` and add the following line: -```bash -developer_key = -``` -Append your Thingpedia developer key after the `=` sign. A Thingpedia developer account is required to obtain the developer key. -[Register an Almond account](https://almond.stanford.edu/user/register) at and [sign up as a developer](https://almond.stanford.edu/user/request-developer), then you can retrieve the developer key from your [user profile](https://almond.stanford.edu/user/profile) page - -### Set experiment -Add the following line to the `config.mk` file: -```bash -experiment = -``` -`experiment` specifies a domain in Wikidata ontology. Append the domain you want to experiment on after the `=` sign. - -The starter code contains for 10 domains: `city`, `country`, `star`, `university`, `company`, -`people`, `artist`, `athlete`, `sports-team`, and `tv-series`. - -Alternatively to setting in `config.mk`, you can also specify the experiment -on the command-line with `make experiment=...` instead of a bare `make`. - -## Step 1. Generate Skill Manifest and Parameter Value Sets -A Thingpedia skill starts with a _manifest_ containing the signature of _queries_ (database schemas) and _actions_ (API calls that perform side-effects) in that skills. In this case, we're creating a Q&A skill, so we're only interested in queries. You can learn more about manifests for Thingpedia skills, and their syntax, in the [Thingpedia guide](https://wiki.almond.stanford.edu/thingpedia/guide/classes). - -Each query includes the _properties_ that can be asked for each query, their [ThingTalk type](https://wiki.almond.stanford.edu/thingtalk/reference), as well as natural language _annotations_ for each property. These annotations will be will be used to generate both the training data and the replies from the agent. - A detailed introduction of how to annotate properties is provided in the [natural language chapter of the Thingpedia Guide](https://wiki.almond.stanford.edu/thingpedia/guide/natural-language). - -The most important annotation is the _canonical form_, denoted with `#_[canonical]`, which indicates how the property is referred to in natural language, in the different part of speech. The full list of all the various parts of speech is provided in the [annotation reference](https://wiki.almond.stanford.edu/genie/annotations#canonical-forms). - -For Wikidata, Genie can automatically generate a `manifest.tt` file given a domain and available properties. Use -```bash -make $(exp)/manifest.tt -``` -where `$(exp)` should be replaced with the domain you have chosen. - -By default, Genie uses the Wikidata labels and [aliases](https://www.wikidata.org/wiki/Help:Aliases/en) to construct the canonical forms. The labels are categorized into different parts of speech using using a heuristic algorithm. - -**Task**: Look at the manifest now (in your favorite text editor). Each property is annotated with various ways to refer to it in natural language. Is that comprehensive? Can you think of other synonyms or other syntactic forms for each property? The more forms that are added to the manifest, the more robust will be the model to the different ways to phrase the same question. - -## Step 2. Download a Pretrained Model - -A pretrained model of each wikidata skill, trained on synthesized data created from the base annotations, is available for download from (e.g. for the "city" domain). - -You can download the model with the following command: -``` -wget https://almond-static.stanford.edu/test-data/wikidata/$(exp)/pretrained.tar.gz -tar xvf pretrained.tar.gz -``` - -The model will be stored in `$(exp)/models/pretrained`. - -## Step 3. Evaluate on Synthetic Data -The starter code will split the synthesized data into training set and a synthetic dev set. You can evaluate on the synthetic dev set by running the following command: -```bash -make model=${model_id} eval_set=eval-synthetic evaluate -``` -The model id corresponds to a folder in `$(exp)/models/`. The model ID is `pretrained` for the pretrained model downloaded from our server. - -The result will be stored under `$(exp)/eval-synthetic/${model}.results`. The first line shows the overall accuracy, and the rest of lines show the accuracy break down by the complexity, based on the number of properties used in the question (1, 2, and 3+). For each row, the first number is the total number of examples, and the second number is the accuracy. The other columns are are metrics of partial correctness that indicate if the model can identify parts of the ThingTalk code; they are not meaningful for Wikidata queries so you can ignore them. - -**Task**: What accuracy do you get at this step? Do you think this model will achieve this accuracy when you try it in real life? - -Under the same directory, you will find a file named `$(exp)/eval-synthetic/${model}.debug`. The file contains all the examples that the model failed to predict. Each row is tab-separated with the following columns: example ID, type of failure, utterance, expected ThingTalk, and predicted ThingTalk. - -## Step 4. Evaluate on Real Data -Evaluating on synthetic data is not very meaningful, because synthetic data is too easy, so the accuracy is artificially high. Instead, we will evaluate on real questions, written by a human and annotated manually with their ThingTalk code. - -To do so, you should have somebody (ideally, somebody else) write down some questions that can be answered using Wikidata property. One good way to do so is through crowdsourcing, by showing the list of properties to a worker and asking some questions. Save those questions in a file called `$(exp)/eval/input.txt`, one per line. The input.txt file must have the single word "utterance" on the first line (the header). - -After obtaining the questions, you can now annotate them with the corresponding ThingTalk code. Use: -``` -make model=${model_id} eval_set=eval annotate -``` -to open an interactive tool that will help you annotate. - -The tool shows you the top candidates predicted by the trained model will be provided (usually just one, sometimes none). You can type in the number of the candidate to choose the correct one. If none of the candidate is correct, but some candidate is close to what we want, you can type in `e ${number}` (short for "edit"), which will allow you to modify the code based on the existing prediction. If the model failed to predict anything useful, you will need to type in the correct ThingTalk program from scratch. If you find a question cannot be represented in ThingTalk, type in `d ${comment}` (short for "dropped") to drop the sentence. You can learn more on how to write ThingTalk code from the [ThingTalk guide](https://wiki.almond.stanford.edu/en/thingtalk/guide). - -The annotated sentences will be stored in `$(exp)/eval/annotated.tsv`. This file has the same format as the training set: ID, sentence, code. Dropped sentences will be saved in `$(exp)/eval/dropped.tsv`. - -If you make a mistake, you can exit the annotation tool and edit the annotated files by hand. Do not edit the files by hand if the tool is still running, or you might corrupt the files. After editing, you can resume annotating with `annotate_offset`. For example, to resume on the 15th sentence, use: -``` -make model=${model_id} eval_set=eval annotate_offset=15 annotate -``` -(Sentences are numbered starting from one. The tool shows the sentence number as "Sentence #..."). - -After you have annotated the data, run -```bash -make model=${model_id} eval_set=eval evaluate -``` -To obtain the new accuracy. - -**Task**: Is the new accuracy similar to the accuracy you had on synthetic data? What changed? - -**Task**: Now look at the error analysis file at `$(exp)/eval/${model}.debug`. Do you notice a pattern in the errors? Are there particular sentences that the model got consistently wrong? - -You can use the information in the error analysis to refine the annotations (Step 3), generate a new dataset (Step 2), and train a new model (Step 4). When you train the model, you can now pass `eval_set=eval` instead of `eval_set=eval-synthetic`. This way, during training the model will cross-validate on your real data, which will boost your accuracy by a few points for free. +See the [Genie installation instructions](/doc/install.md). -## Step 5. Iterate Natural Language Annotations in the Manifest -The pretrained model is good, but not great. To improve it, we will need to improve the quality of the training data. -We will start from substituting the automatically generated annotations with manually written ones. - -For Wikidata, you do so by updating `MANUAL_PROPERTY_CANONICAL_OVERRIDE` in -`tool/autoqa/wikidata/manual-annotations.js` in the Genie folder. For example, to annotate the property date of birth (P569), write: -```js -const MANUAL_PROPERTY_CANONICAL_OVERRIDE = { - P569: { - base: ["date of birth", "birth date"], - passive_verb: ["born on #"], - adjective_argmin: ["oldest"], - adjective_argmax: ["youngest"], - verb_projection: ["born on"], - } -}; -``` -Look at the existing automatically generated manifest for additional examples. The full list of properties and their ID is in [domains.md](domains.md). -The full list of all the various parts of speech is provided in the [annotation reference](https://wiki.almond.stanford.edu/genie/annotations#canonical-forms). +## Configuration -**Note**: adding a property to `MANUAL_PROPERTY_CANONICAL_OVERRIDE` will remove any automatically generated annotation. If you like some of existing annotations, make sure to copy them! +Edit `Makefile` and set `experiment` to be the domain you want to experiment on. +The following ten domains are supported: `city`, `country`, `tv`, `disease`, `human`, `art`, `song`, `game`, `organization`, `music_band`. +Alternatively, you can run all of the following commands with an `experiment=` option. -To enable the manual annotations, run +## Generate a schema +Use: ```bash -make mode=manual $(exp)/manifest.tt -``` -For properties that not specified in the `manual-annotations.js` file, Genie will keep the Wikidata labels and aliases as annotations. - -## Step 6. Generate Training Dataset - -Run +make $(experiment)/manifest.tt +``` +where `$(experiment)` is the domain you chose. + +The starter code loads data from [Bootleg](https://github.com/HazyResearch/bootleg) and [CSQA](https://amritasaha1812.github.io/CSQA/), based on which, it generates the manifest containing the signature of the QA skill. By default, it uses a BART paraphraser model to automatically generate [natural language annotations](https://wiki.almond.stanford.edu/genie/annotations#canonical-forms) for each property available in the domain. + +Options available: +- `annotation`: set the method of generating natural language annotation; supports: + - `baseline`: only use a canonical annotation derived from the property name. + - `auto` (default): extract annotation using a BART paraphraser + - `manual`: use manual annotations in `/tool/autoqa/wikidata/manual-annotations.ts` + - `wikidata`: use wikidata alternative labels for each property as annotation +- `type-system`: set the how the ThingTalk type is set for each property; supports: + - `entity-hierarchical` (default): each property has a unique entity type based on its name with a prefix `p_`, and it's a super type of the types of all its values + - `entity-plain`: each property has a unique entity type + - `string`: everything has a string type except for `id` +## Generate a dataset +Use: ```bash -make target_pruning_size=10 datadir +make datadir ``` -to generate a small training set. The training set is stored in the `datadir`. - -The starter code is tuned to generate a full dataset, which will consume a lot of memory and take a long time. Setting `target_pruning_size` to a small number like 10, allow us quickly generate a small set to examine the quality of the generated data. - -The dataset consists of two files, `train.tsv` for training and `eval.tsv` for dev set. Each file is tab-separated with three column: the ID of the sentence (consisting of [flags](https://wiki.almond.stanford.edu/nlp/dataset) and a sequential number), the sentence, and the corresponding ThingTalk code. - -**Task**: Open the generated training set (`datadir/train.tsv`) in your favorite text editor or spreadsheet application. Can you see the correspondence between ThingTalk syntax and the natural language sentence? Do you notice something about the sentences? Are all sentences grammatical? Are they all meaningful? Think of a paraprase that you would use for a simple question: can you find it in the dataset? - -**Hint**: Use `cat datadir/train.tsv | shuf | head -n10` on the command-line to get a small random sample of the dataset to look at. +This will synthesize a dataset based on the manifest. -If you are satisfied with the sentence you obtained, you can now generate the full dataset: -```bash -rm -rf datadir $(exp)/synthetic.tsv -make datadir -``` -Generating a dataset requires a few hours and about 16GB of RAM. -(That is, you should run on a machine that has at least 18-20GB of RAM, so you leave enough for the OS and any other application you are running at the same time). -The process shows a progress bar, but the time estimate is unreliable. +Options available: +- `max_depth`, `pruning_size`: the former decides the depth of synthesis, and the latter decides the sample size for each non-terminal. Together they decide the complexity and size of the synthetic dataset. By default they are set to be `8` and `25` respectively. +- `fewshot`, `fewshot_size`: set `fewshot` to `true` to include few shot examples converted from CSQA dataset in the training. By default, `fewshot_size` is set to `100`. + -For debugging, you can increase the verbosity with: +## Train +Use: ```bash -make custom_generate_flags="--debug $N" datadir +make model=... train ``` -where `$N` is a number between 1 and 5 (1 or 2 are usually good choices). - -**Note**: if you use `make clean` instead of removing the dataset with `rm`, you will also remove manifest.tt. The manifest will be regenerated the next time you run the dataset, and it might be regenerated with the wrong options. You can pass `mode` to `make datadir` to ensure the manifest is always generated in the right way. +Set `model` to a unique identifier of the model. By default, the model is called "1". +Training takes about 1 hour on a single V100 GPU. The model is saved in `$(experiment)/models/$(model)`. -If you are not satisfied with the dataset — for example, if the sentences are too ungrammatical, or if you cannot find a certain question — go to step 5 and write more annotations. -## Step 7. Train -Now you have generated a training dataset. You can do a test run for training with: +## Evaluate +The starter code converts a subset of CSQA dev set as the eval set. To evaluate on this eval set, use ```bash -make train_iterations=30 train_save_every=10 train_log_every=5 train +make model=... evaluate ``` -This will train a model with a tiny number of iterations to verify the generated dataset is valid. -You can set the unique identifier of the model by setting `model=${model_id}`. By default, the model is called "1". The model is saved in `$(exp)/models/$(model)`. - -To run the full training, run the following command: -```bash -make model=${model_id} eval_set=eval-synthetic train -``` -This takes about 5 hours on a single V100 GPU. - -If you want, you can also change the hyperparameters used for training with: -```bash -make model=${model_id} eval_set=eval-synthetic custom_train_nlu_flags="..." train -``` -Set `custom_train_nlu_flags` to the `genienlp` command-line arguments you want to set. Use `genienlp train --help` to find the full list of available options. For example, to use 3 LSTM layers in the decoder instead of 2, use `custom_train_nlu_flags="--rnn_layers 3"`. - -After training, you can evaluate again with: -``` -make model=${model_id} eval_set=eval evaluate -``` - -**Task**: The new model is trained on data that is more similar to the dev data, thanks to the annotations you wrote in Step 5. Is this reflected in the accuracy? - -## Step 8. Test Data - -In addition to the dev data, which you can use to improve the accuracy of the model, you should acquire a _test set_. The test set will give you a final accuracy number that you can for example report in a paper or benchmark. The test set should be as similar as possible to the dev set. **You should not look at the test set until you are done improving the model**. - -The test data is stored and annotated identically to the dev data, except the input file goes in - -You can change the evaluation set by setting `eval_set` to "eval" (dev) or "test" as: -```bash -make model=${model} eval_set=${eval_set} evaluate -``` - -## Step 9. Interactive Testing -You can test your model interactively. Run -```bash -make model=$(model) demo -``` -You can type in a question in natural language, and it will return the parsed ThingTalk and a SPARQL equivalent. Then it will try to query the Wikidata SPARQL endpoint to retrieve the results. - -It takes some time to load the model for the first time. Wait until you see the following information before you -start testing. -``` -XX/XX/XXXX XX:XX:XX - INFO - genienlp.server - Initializing Model -XX/XX/XXXX XX:XX:XX - INFO - genienlp.server - Vocabulary has 30600 tokens from training -XX/XX/XXXX XX:XX:XX - INFO - genienlp.server - Seq2Seq has 134,733,632 parameters -``` +After the evaluation finishes, you will have two files: +- `$(experiment)/eval/${model}.results`: short file in CSV form containing accuracy +- `$(experiment)/eval/${model}.debug`: the error analysis file which compares the output of the model with the gold annotation, and reports all the errors -Note that this feature is still experimental. Some ThingTalk program might failed to be translated to SPARQL, -and some complicated SPARQL programs might cause a TIMEOUT when querying Wikidata's server. diff --git a/starter/wikidata/domains.md b/starter/wikidata/domains.md deleted file mode 100644 index ee8367749..000000000 --- a/starter/wikidata/domains.md +++ /dev/null @@ -1,15 +0,0 @@ -# Domains - -| domain | properties | -| ------------------------ | ------------------------------------------------------------ | -| city (Q515) | inception (P571), named after (P138), continent (P30), country (P17), capital of (P1376), located in the administrative territorial entity (P131), located in or next to body of water (P206), coordinate location (P625), head of government (P6), population (P1082), water as percent of area (P2927), elevation above sea level (P2044), located in time zone (P421), twinned administrative body (P190), shares border with (P47), area (P2046), postal code (P281), official website (P856), flag image (P41), number of households (P1538), image (P18), highest point (P610), language used (P2936) | -| university (Q3918) | street address (P6375), nickname (P1449), inception (P571), country (P17), official website (P856), located in the administrative territorial entity (P131), dissolved, abolished or demolished (P576), logo image (P154), image (P18), inception (P571), named after (P138), founded by (P112), chairperson (P488), corporate officer (P2828), motto text (P1451), member count (P2124), member of (P463), students count (P2196), language used (P2936), budget (P2769), postal code (P281), subsidiary (P355), owner of (P1830) | -| company (Q783794) | logo image (P154), industry (P452), inception (P571), named after (P138), founded by (P112), chief executive officer (P169), director / manager (P1037), motto text (P1451), country (P17), member of (P463), total assets (P2403), total equity (P2137), total revenue (P2139), net profit (P2295), operating income (P3362), location of formation (P740), owned by (P127), parent organization (P749), headquarters location (P159), employees (P1128), award received (P166), product or material produced (P1056), official website (P856), official blog (P1581), stock exchange (P414) | -| people (Q5) | image (P18), sex or gender (P21), country of citizenship (P27), position held (P39), given name (P735), family name (P734), date of birth (P569), place of birth (P19), father (P22), mother (P25), sibling (P3373), spouse (P26), child (P40), languages spoken, written or signed (P1412), occupation (P106), nickname (P1449), owner of (P1830), educated at (P69), residence (P551), work period (start) (P2031), work period (end) (P2032), ethnic group (P172), mass (P2067), participant in (P1344), award received (P166), nominated for (P1411), height (P2048), religion (P140), date of death (P570), place of death (P20), manner of death (P1196), cause of death (P509), date of burial or cremation (P4602), place of burial (P119), political party (P102), military rank (P410) | -| artist (Q5) | image (P18), sex or gender (P21), country of citizenship (P27), given name (P735), family name (P734), date of birth (P569), place of birth (P19), father (P22), mother (P25), sibling (P3373), spouse (P26), child (P40), languages spoken, written or signed (P1412), occupation (P106), nickname (P1449), owner of (P1830), educated at (P69), residence (P551), ethnic group (P172), mass (P2067), participant in (P1344), award received (P166), nominated for (P1411), height (P2048), religion (P140), voice type (P412), instrument (P1303), notable work (P800), genre (P136), net worth (P2218), record label (P264) | -| athlete (Q5) | image (P18), sex or gender (P21), country of citizenship (P27), given name (P735), family name (P734), date of birth (P569), place of birth (P19), father (P22), mother (P25), sibling (P3373), spouse (P26), child (P40), languages spoken, written or signed (P1412), occupation (P106), nickname (P1449), owner of (P1830), educated at (P69), residence (P551), ethnic group (P172), mass (P2067), participant in (P1344), award received (P166), nominated for (P1411), height (P2048), religion (P140), sport (P641), position played on team / speciality (P413), head coach (P286), league (P118), member of sports team (P54), handedness (P552), drafted by (P647), sport number (P1618), ranking (P1352), country for sport (P1532) | -| country (Q6256) | inception (P571), short name (P1813), named after (P138), official language (P37), anthem (P85), motto text (P1451), continent (P30), capital (P36), located in or next to body of water (P206), highest point (P610), lowest point (P1589), basic form of government (P122), head of government (P6), diplomatic relation (P530), central bank (P1304), member of (P463), retirement age (P3001), population (P1082), contains administrative territorial entity (P150), located in time zone (P421), currency (P38), nominal GDP (P2131), nominal GDP per capita (P2132), Human Development Index (P1081), shares border with (P47), area (P2046), flag image (P41), Gini coefficient (P1125) | -| star (Q523) | image (P18), part of (P361), mass (P2067), child astronomical body (P398), parent astronomical body (P397), distance from Earth (P2583), flattening (P1102), spectral class (P215), apparent magnitude (P1215), absolute magnitude (P1457), metallicity (P2227), temperature (P2076), radius (P2120), perimeter (P2547), area (P2046), volume as quantity (P2234), age estimated by a dating method (P7584), constellation (P59), orbital eccentricity (P1096), stellar rotational velocity (P4296), radial velocity (P2216) | -| sports teams (Q12973014) | inception (P571), country (P17), head coach (P286), league (P118), home venue (P115), owned by (P127), headquarters location (P159), sponsor (P859), sport (P641), mascot (P822), official website (P856), founded by (P112), chairperson (P488), member count (P2124), subsidiary (P355), award received (P166), nominated for (P1411), coat of arms image (P94), logo image (P154), short name (P1813), named after (P138), general manager (P505) | -| tv series (Q5398426) | genre (P136), creator (P170), original broadcaster (P449), country of origin (P495), original language of film or TV show (P364), screenwriter (P58), cast member (P161), producer (P162), production company (P272), distributed by (P750), theme music (P942), narrative location (P840), duration (P2047), camera setup (P4312), award received (P166), nominated for (P1411), characters (P674), number of episodes (P1113), number of seasons (P2437), start time (P580), end time (P582) | -| | | diff --git a/starter/wikidata/schemaorg-manifest.tt b/starter/wikidata/schemaorg-manifest.tt deleted file mode 100644 index 158faeaad..000000000 --- a/starter/wikidata/schemaorg-manifest.tt +++ /dev/null @@ -1,6899 +0,0 @@ -class @org.schema.Restaurant -#_[name="Restaurant in Schema.org"] -#_[description="Scraped data from websites that support schema.org"] -#[whitelist=["Restaurant", "Review"]] { - import loader from @org.thingpedia.v2(); - import config from @org.thingpedia.config.none(); - - entity Action; - entity CreativeWork; - entity Person; - entity Event; - entity Offer; - entity Thing; - entity Organization; - entity Audience; - entity Schedule; - entity Review; - entity GeospatialGeometry; - entity Place; - entity LocationFeatureSpecification; - entity Demand; - entity Service; - entity EducationalOccupationalCredential; - entity NonprofitType; - entity SoftwareApplication; - entity MerchantReturnPolicy; - entity MedicalGuideline; - entity MedicalEnumeration; - entity MedicalCode; - entity MedicalStudy; - entity AdministrativeArea; - entity Occupation; - entity Country; - entity Product; - entity ProductModel; - entity PublicationEvent; - entity ItemList; - entity MediaObject; - entity AlignmentObject; - entity MusicRecording; - entity Comment; - entity BlogPosting; - entity ServiceChannel; - entity BroadcastService; - entity BroadcastChannel; - entity MedicalEntity; - entity Drug; - entity DoseSchedule; - entity MedicalTherapy; - entity Invoice; - entity PaymentMethod; - entity ParcelDelivery; - entity MenuItem; - entity MedicalCondition; - entity MedicalDevice; - entity MedicalSign; - entity Order; - entity DeliveryEvent; - entity MenuSection; - entity Legislation; - entity MusicGroup; - entity CreativeWorkSeason; - entity CreativeWorkSeries; - entity ProgramMembership; - entity Ticket; - entity EntryPoint; - entity NewsArticle; - entity Class; - entity Property; - entity MaximumDoseSchedule; - entity DrugStrength; - entity DrugClass; - entity HealthInsurancePlan; - entity Trip; - entity TrainStation; - entity Question; - entity Specialty; - entity WebPageElement; - entity FloorPlan; - entity AnatomicalStructure; - entity AnatomicalSystem; - entity Vessel; - entity Accommodation; - entity DataFeed; - entity WarrantyScope; - entity BusinessFunction; - entity BusinessEntityType; - entity DefinedTerm; - entity BusStop; - entity BusStation; - entity GameServer; - entity MedicalTest; - entity DigitalDocumentPermission; - entity CategoryCode; - entity ListItem; - entity MedicalRiskFactor; - entity DDxElement; - entity MedicalSignOrSymptom; - entity MedicalConditionStage; - entity Movie; - entity Episode; - entity MusicAlbum; - entity MusicPlaylist; - entity MusicComposition; - entity StatisticalPopulation; - entity Seat; - entity TouristAttraction; - entity RecommendedDoseSchedule; - entity LocalBusiness; - entity GovernmentService; - entity CssSelectorType; - entity XPathType; - entity HealthPlanFormulary; - entity HealthPlanNetwork; - entity Answer; - entity CourseInstance; - entity BoatTerminal; - entity ArchiveOrganization; - entity DataCatalog; - entity DataDownload; - entity CableOrSatelliteService; - entity BrainStructure; - entity Muscle; - entity MusicRelease; - entity Airport; - entity Hospital; - entity ArchiveComponent; - entity Nerve; - entity SportsTeam; - entity Reservation; - entity Dataset; - entity VideoGame; - - list query Thing(out id: Entity(org.schema.Restaurant:Thing) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out potentialAction: Entity(org.schema.Restaurant:Action) #_[canonical={default="property",base=["potential action"]}] #[org_schema_type="Action"], - out identifier: Entity(tt:url) #_[canonical={default="property",base=["identifier"]}] #[org_schema_type="URL"], - out url: Entity(tt:url) #_[canonical={base=["url", "link"]}] #[org_schema_type="URL"], - out image: Entity(tt:picture) #_[canonical={base=["picture", "image", "photo"]}] #[org_schema_type="ImageObject"], - out alternateName: Array(String) #_[canonical={default="property",base=["alternate names"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Thing_alternateName"], - out name: String #_[canonical={base=["name"],passive_verb=["called"]}] #[org_schema_type="Text"] #[filterable=false] #[string_values="org.schema.Restaurant:Thing_name"], - out description: String #_[canonical={base=["description", "summary"]}] #[org_schema_type="Text"] #[filterable=false] #[string_values="org.schema.Restaurant:Thing_description"], - out disambiguatingDescription: Array(String) #_[canonical={default="property",base=["disambiguating descriptions"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Thing_disambiguatingDescription"], - out subjectOf: Array(Entity(org.schema.Restaurant:CreativeWork)) #_[canonical={default="reverse_property",reverse_property=["subject of", "# subject", "# 's subject"],base=["subject of"]}] #[org_schema_type="CreativeWork"], - out additionalType: Array(Entity(tt:url)) #_[canonical={default="property",base=["additional types"]}] #[org_schema_type="URL"]) - #_[canonical="thing"] - #_[confirmation="thing"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Event extends Thing(out id: Entity(org.schema.Restaurant:Event) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Event_name"], - out maximumAttendeeCapacity: Number #_[canonical={default="property",base=["maximum attendee capacity"]}] #[org_schema_type="Integer"], - out typicalAgeRange: String #_[canonical={default="property",base=["typical age range"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Event_typicalAgeRange"], - out organizer: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={default="property",base=["organizers"],reverse_verb=["organuszersed"]}] #[org_schema_type="Person"], - out aggregateRating: { - ratingCount: Number #_[canonical={default="property",base=["rating count"]}] #_[counted_object=["ratings"]] #[org_schema_type="Integer"], - reviewCount: Number #_[canonical={default="property",base=["review count"]}] #_[counted_object=["reviews"]] #[org_schema_type="Integer"], - ratingValue: Number #_[canonical={passive_verb=["rated # star"],base=["rating", "overall rating", "average rating", "customer rating", "review rating"],adjective=["# star"],adjective_argmax=["top-rated", "best"],projection_pronoun=["how"],passive_verb_projection=["rated"]}] #[org_schema_type="Number"] #[min_number=1] #[max_number=5], - ratingExplanation: Array(String) #_[canonical={default="property",base=["rating explanations"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Event_aggregateRating_ratingExplanation"], - reviewAspect: String #_[canonical={default="property",base=["review aspect"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Event_aggregateRating_reviewAspect"], - author: Entity(org.schema.Restaurant:Person) #_[canonical={base=["author"],preposition=["by"],passive_verb=["written by", "authored by", "uploaded by", "submitted by"],verb=["# wrote", "# authored"],base_projection=["author", "creator"],reverse_verb_projection=["wrote", "authored"],passive_verb_projection=["written | by", "authored | by"]}] #[org_schema_type="Person"] - } #_[canonical={default="property",base=["aggregate rating"]}] #[org_schema_type="AggregateRating"], - out subEvent: Array(Entity(org.schema.Restaurant:Event)) #_[canonical={default="property",base=["sub events"]}] #[org_schema_type="Event"], - out offers: Entity(org.schema.Restaurant:Offer) #_[canonical={default="verb",verb=["offers"],base=["offers"]}] #[org_schema_type="Offer"], - out workFeatured: Array(Entity(org.schema.Restaurant:CreativeWork)) #_[canonical={default="property",base=["work featured"]}] #[org_schema_type="CreativeWork"], - out about: Entity(org.schema.Restaurant:Thing) #_[canonical={default="passive_verb",passive_verb=["about"],base=["about"]}] #[org_schema_type="Thing"], - out inLanguage: Entity(tt:iso_lang_code) #_[canonical={base=["language"],adjective=["#"],preposition=["in"],passive_verb=["written in #"],reverse_property=["# version of"],base_projection=["language"],preposition_projection=["in"],passive_verb_projection=["written | in"]}] #[org_schema_type="Text"], - out superEvent: Array(Entity(org.schema.Restaurant:Event)) #_[canonical={default="property",base=["super events"]}] #[org_schema_type="Event"], - out funder: Array(Entity(org.schema.Restaurant:Organization)) #_[canonical={default="passive_verb",passive_verb=["funder"],base=["funder"]}] #[org_schema_type="Organization"], - out remainingAttendeeCapacity: Number #_[canonical={default="passive_verb",passive_verb=["remaining attendee capacity"],base=["remaining attendee capacity"]}] #[org_schema_type="Integer"], - out maximumPhysicalAttendeeCapacity: Number #_[canonical={default="property",base=["maximum physical attendee capacity"]}] #[org_schema_type="Integer"], - out audience: Array(Entity(org.schema.Restaurant:Audience)) #_[canonical={default="property",base=["audiences"]}] #[org_schema_type="Audience"], - out actor: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={base=["actor", "actress"],property=["#", "# in the cast"],passive_verb=["played by", "acted by"],verb=["stars", "# acted", "# acted in", "# was in"],base_projection=["actor", "actress"],verb_projection=["have"],reverse_verb_projection=["acted in"],preposition_projection=["in"]}] #[org_schema_type="Person"], - out endDate: Date #_[canonical={default="property",base=["end date"]}] #[org_schema_type="Date"], - out eventSchedule: Entity(org.schema.Restaurant:Schedule) #_[canonical={default="property",base=["event schedule"]}] #[org_schema_type="Schedule"], - out doorTime: Date #_[canonical={default="property",base=["door time"]}] #[org_schema_type="DateTime"], - out contributor: Array(Entity(org.schema.Restaurant:Organization)) #_[canonical={default="property",base=["contributors"]}] #[org_schema_type="Organization"], - out review: Array(Entity(org.schema.Restaurant:Review)) #_[canonical={default="property",base=["reviews"]}] #[org_schema_type="Review"], - out sponsor: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={default="property",base=["sponsors"],reverse_verb=["sponsored"]}] #[org_schema_type="Person"], - out location: { - streetAddress: String #_[canonical={base=["street"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Event_location_streetAddress"], - postOfficeBoxNumber: String #_[canonical={default="property",base=["post office box number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Event_location_postOfficeBoxNumber"], - postalCode: String #_[canonical={default="property",base=["postal code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Event_location_postalCode"], - addressLocality: String #_[canonical={base=["city"],preposition=["in #", "from #"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Event_location_addressLocality"], - addressCountry: Entity(tt:country) #_[canonical={preposition=["in #", "from #"],base=["country"]}] #[org_schema_type="Text"], - addressRegion: Entity(tt:us_state) #_[canonical={preposition=["in #", "from #"],base=["state"]}] #[org_schema_type="Text"], - hoursAvailable: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["hours available"]}] #[org_schema_type="OpeningHoursSpecification"], - contactOption: Enum(TollFree,HearingImpairedSupported) #_[canonical={default="property",base=["contact option"]}] #[org_schema_type="ContactPointOption"], - productSupported: String #_[canonical={default="property",base=["product supported"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Event_location_productSupported"], - faxNumber: Entity(tt:phone_number) #_[canonical={default="property",base=["fax number"]}] #[org_schema_type="Text"] #[filterable=false], - availableLanguage: Array(String) #_[canonical={default="property",base=["available languages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Event_location_availableLanguage"], - telephone: Entity(tt:phone_number) #_[canonical={base=["telephone", "phone number"]}] #[org_schema_type="Text"] #[filterable=false], - email: Entity(tt:email_address) #_[canonical={default="property",base=["email"]}] #[org_schema_type="Text"] #[filterable=false], - contactType: Array(String) #_[canonical={default="property",base=["contact types"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Event_location_contactType"] - } #_[canonical={default="property",base=["location"]}] #[org_schema_type="PostalAddress"], - out recordedIn: Entity(org.schema.Restaurant:CreativeWork) #_[canonical={default="passive_verb",passive_verb=["recorded in"],base=["recorded in"]}] #[org_schema_type="CreativeWork"], - out composer: Entity(org.schema.Restaurant:Person) #_[canonical={default="property",base=["composer"],reverse_verb=["composered"]}] #[org_schema_type="Person"], - out isAccessibleForFree: Boolean #_[canonical={default="adjective",adjective_true=["accessible for free"],base=["is accessible for free"]}] #[org_schema_type="Boolean"], - out performer: Array(Entity(org.schema.Restaurant:Organization)) #_[canonical={default="property",base=["performers"]}] #[org_schema_type="Organization"], - out attendee: Array(Entity(org.schema.Restaurant:Organization)) #_[canonical={default="property",base=["attendees"]}] #[org_schema_type="Organization"], - out workPerformed: Array(Entity(org.schema.Restaurant:CreativeWork)) #_[canonical={default="property",base=["work performed"]}] #[org_schema_type="CreativeWork"], - out eventStatus: Enum(EventRescheduled,EventPostponed,EventMovedOnline,EventScheduled,EventCancelled) #_[canonical={default="property",base=["event status"]}] #[org_schema_type="EventStatusType"], - out director: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={base=["director"],passive_verb=["directed by"],verb=["# directs", "# directed"],reverse_verb_projection=["directed"]}] #[org_schema_type="Person"], - out duration: Measure(ms) #_[canonical={base=["duration", "length"],adjective=["# long"],adjective_argmax=["longest"],adjective_argmin=["shortest"]}] #[org_schema_type="Duration"], - out maximumVirtualAttendeeCapacity: Number #_[canonical={default="property",base=["maximum virtual attendee capacity"]}] #[org_schema_type="Integer"], - out translator: Entity(org.schema.Restaurant:Organization) #_[canonical={default="property",base=["translator"]}] #[org_schema_type="Organization"], - out eventAttendanceMode: Enum(OnlineEventAttendanceMode,MixedEventAttendanceMode,OfflineEventAttendanceMode) #_[canonical={default="property",base=["event attendance mode"]}] #[org_schema_type="EventAttendanceModeEnumeration"], - out startDate: Date #_[canonical={default="property",base=["start date"]}] #[org_schema_type="Date"], - out previousStartDate: Date #_[canonical={default="property",base=["previous start date"]}] #[org_schema_type="Date"]) - #_[canonical="event"] - #_[confirmation="event"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Place extends Thing(out id: Entity(org.schema.Restaurant:Place) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Place_name"], - out maximumAttendeeCapacity: Number #_[canonical={default="property",base=["maximum attendee capacity"]}] #[org_schema_type="Integer"], - out geoCrosses: Entity(org.schema.Restaurant:GeospatialGeometry) #_[canonical={default="property",base=["geo crosses"]}] #[org_schema_type="GeospatialGeometry"], - out aggregateRating: { - ratingCount: Number #_[canonical={default="property",base=["rating count"]}] #_[counted_object=["ratings"]] #[org_schema_type="Integer"], - reviewCount: Number #_[canonical={default="property",base=["review count"]}] #_[counted_object=["reviews"]] #[org_schema_type="Integer"], - ratingValue: Number #_[canonical={passive_verb=["rated # star"],base=["rating", "overall rating", "average rating", "customer rating", "review rating"],adjective=["# star"],adjective_argmax=["top-rated", "best"],projection_pronoun=["how"],passive_verb_projection=["rated"]}] #[org_schema_type="Number"] #[min_number=1] #[max_number=5], - ratingExplanation: Array(String) #_[canonical={default="property",base=["rating explanations"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Place_aggregateRating_ratingExplanation"], - reviewAspect: String #_[canonical={default="property",base=["review aspect"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Place_aggregateRating_reviewAspect"], - author: Entity(org.schema.Restaurant:Person) #_[canonical={base=["author"],preposition=["by"],passive_verb=["written by", "authored by", "uploaded by", "submitted by"],verb=["# wrote", "# authored"],base_projection=["author", "creator"],reverse_verb_projection=["wrote", "authored"],passive_verb_projection=["written | by", "authored | by"]}] #[org_schema_type="Person"] - } #_[canonical={default="property",base=["aggregate rating"]}] #[org_schema_type="AggregateRating"], - out geoCoveredBy: Entity(org.schema.Restaurant:GeospatialGeometry) #_[canonical={default="property",base=["geo covered by"]}] #[org_schema_type="GeospatialGeometry"], - out branchCode: Array(String) #_[canonical={default="property",base=["branch codes"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Place_branchCode"], - out hasMap: Array(Entity(tt:url)) #_[canonical={default="property",base=["map"]}] #[org_schema_type="URL"] #[filterable=false], - out longitude: Number #_[canonical={default="property",base=["longitude"]}] #[org_schema_type="Number"], - out geoWithin: Entity(org.schema.Restaurant:Place) #_[canonical={default="property",base=["geo within"]}] #[org_schema_type="Place"], - out hasDriveThroughService: Boolean #_[canonical={default="property",property_true=["drive through service"],property_false=["no drive through service"],base=["has drive through service"]}] #[org_schema_type="Boolean"], - out photo: Array(Entity(tt:picture)) #_[canonical={default="property",base=["photos"]}] #[org_schema_type="ImageObject"], - out geoContains: Entity(org.schema.Restaurant:GeospatialGeometry) #_[canonical={default="property",base=["geo contains"]}] #[org_schema_type="GeospatialGeometry"], - out latitude: Number #_[canonical={default="property",base=["latitude"]}] #[org_schema_type="Number"], - out openingHoursSpecification: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["opening hours specification"]}] #[org_schema_type="OpeningHoursSpecification"], - out faxNumber: Entity(tt:phone_number) #_[canonical={default="property",base=["fax number"]}] #[org_schema_type="Text"] #[filterable=false], - out geoOverlaps: Entity(org.schema.Restaurant:Place) #_[canonical={default="property",base=["geo overlaps"]}] #[org_schema_type="Place"], - out smokingAllowed: Boolean #_[canonical={property_true=["smoking allowed"],property_false=["no smoking"],verb_true=["allows smoking"]}] #[org_schema_type="Boolean"], - out globalLocationNumber: String #_[canonical={default="property",base=["global location number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Place_globalLocationNumber"], - out address: { - streetAddress: String #_[canonical={base=["street"]}] #[org_schema_type="Text"] #[filterable=false] #[drop=true] #[string_values="org.schema.Restaurant:Place_address_streetAddress"], - postOfficeBoxNumber: String #_[canonical={default="property",base=["post office box number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Place_address_postOfficeBoxNumber"], - postalCode: String #_[canonical={default="property",base=["postal code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Place_address_postalCode"], - addressLocality: String #_[canonical={base=["city"],preposition=["in #", "from #"]}] #[org_schema_type="Text"] #[filterable=false] #[drop=true] #[string_values="org.schema.Restaurant:Place_address_addressLocality"], - addressCountry: Entity(tt:country) #_[canonical={preposition=["in #", "from #"],base=["country"]}] #[org_schema_type="Text"], - addressRegion: Entity(tt:us_state) #_[canonical={preposition=["in #", "from #"],base=["state"]}] #[org_schema_type="Text"], - hoursAvailable: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["hours available"]}] #[org_schema_type="OpeningHoursSpecification"], - contactOption: Enum(TollFree,HearingImpairedSupported) #_[canonical={default="property",base=["contact option"]}] #[org_schema_type="ContactPointOption"], - productSupported: String #_[canonical={default="property",base=["product supported"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Place_address_productSupported"], - faxNumber: Entity(tt:phone_number) #_[canonical={default="property",base=["fax number"]}] #[org_schema_type="Text"] #[filterable=false], - availableLanguage: Array(String) #_[canonical={default="property",base=["available languages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Place_address_availableLanguage"], - telephone: Entity(tt:phone_number) #_[canonical={base=["telephone", "phone number"]}] #[org_schema_type="Text"] #[filterable=false], - email: Entity(tt:email_address) #_[canonical={default="property",base=["email"]}] #[org_schema_type="Text"] #[filterable=false], - contactType: Array(String) #_[canonical={default="property",base=["contact types"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Place_address_contactType"] - } #_[canonical={default="property",base=["address"]}] #[org_schema_type="PostalAddress"], - out review: Array(Entity(org.schema.Restaurant:Review)) #_[canonical={default="property",base=["reviews"]}] #[org_schema_type="Review"], - out event: Entity(org.schema.Restaurant:Event) #_[canonical={default="property",base=["event"]}] #[org_schema_type="Event"], - out containsPlace: Entity(org.schema.Restaurant:Place) #_[canonical={default="verb",verb=["contains # place"],base=["place"]}] #[org_schema_type="Place"], - out geoTouches: Entity(org.schema.Restaurant:GeospatialGeometry) #_[canonical={default="property",base=["geo touches"]}] #[org_schema_type="GeospatialGeometry"], - out geoIntersects: Entity(org.schema.Restaurant:Place) #_[canonical={default="property",base=["geo intersects"]}] #[org_schema_type="Place"], - out geoDisjoint: Entity(org.schema.Restaurant:GeospatialGeometry) #_[canonical={default="property",base=["geo disjoint"]}] #[org_schema_type="GeospatialGeometry"], - out isicV4: String #_[canonical={base=["isic v4"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Place_isicV4"], - out slogan: Array(String) #_[canonical={default="property",base=["slogans"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Place_slogan"], - out isAccessibleForFree: Boolean #_[canonical={default="adjective",adjective_true=["accessible for free"],base=["is accessible for free"]}] #[org_schema_type="Boolean"], - out publicAccess: Boolean #_[canonical={default="property",property_true=["public access"],base=["public access"]}] #[org_schema_type="Boolean"], - out tourBookingPage: Array(Entity(tt:url)) #_[canonical={default="property",base=["tour booking pages"]}] #[org_schema_type="URL"], - out specialOpeningHoursSpecification: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["special opening hours specification"]}] #[org_schema_type="OpeningHoursSpecification"], - out containedInPlace: Entity(org.schema.Restaurant:Place) #_[canonical={default="verb",verb=["contained in place"],base=["contained in place"]}] #[org_schema_type="Place"], - out logo: Entity(tt:picture) #_[canonical={default="property",base=["logo"]}] #[org_schema_type="URL"], - out amenityFeature: Array(Entity(org.schema.Restaurant:LocationFeatureSpecification)) #_[canonical={base=["amenity", "amenity feature"],verb=["offers #", "offer #", "has #", "have #"],base_projection=["amenity"],verb_projection=[""]}] #[org_schema_type="LocationFeatureSpecification"], - out telephone: Entity(tt:phone_number) #_[canonical={base=["telephone", "phone number"]}] #[org_schema_type="Text"] #[filterable=false], - out geo: Location #_[canonical={base=["location", "address"],preposition=["in #", "from #", "around #", "at #", "on #"]}] #[org_schema_type="GeoCoordinates"], - out geoCovers: Entity(org.schema.Restaurant:GeospatialGeometry) #_[canonical={default="property",base=["geo covers"]}] #[org_schema_type="GeospatialGeometry"], - out geoEquals: Entity(org.schema.Restaurant:GeospatialGeometry) #_[canonical={default="property",base=["geo equals"]}] #[org_schema_type="GeospatialGeometry"]) - #_[canonical="place"] - #_[confirmation="place"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Organization extends Thing(out id: Entity(org.schema.Restaurant:Organization) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Organization_name"], - out correctionsPolicy: Entity(tt:url) #_[canonical={default="property",base=["corrections policy"]}] #[org_schema_type="URL"], - out aggregateRating: { - ratingCount: Number #_[canonical={default="property",base=["rating count"]}] #_[counted_object=["ratings"]] #[org_schema_type="Integer"], - reviewCount: Number #_[canonical={default="property",base=["review count"]}] #_[counted_object=["reviews"]] #[org_schema_type="Integer"], - ratingValue: Number #_[canonical={passive_verb=["rated # star"],base=["rating", "overall rating", "average rating", "customer rating", "review rating"],adjective=["# star"],adjective_argmax=["top-rated", "best"],projection_pronoun=["how"],passive_verb_projection=["rated"]}] #[org_schema_type="Number"] #[min_number=1] #[max_number=5], - ratingExplanation: Array(String) #_[canonical={default="property",base=["rating explanations"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Organization_aggregateRating_ratingExplanation"], - reviewAspect: String #_[canonical={default="property",base=["review aspect"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Organization_aggregateRating_reviewAspect"], - author: Entity(org.schema.Restaurant:Person) #_[canonical={base=["author"],preposition=["by"],passive_verb=["written by", "authored by", "uploaded by", "submitted by"],verb=["# wrote", "# authored"],base_projection=["author", "creator"],reverse_verb_projection=["wrote", "authored"],passive_verb_projection=["written | by", "authored | by"]}] #[org_schema_type="Person"] - } #_[canonical={default="property",base=["aggregate rating"]}] #[org_schema_type="AggregateRating"], - out diversityPolicy: Entity(tt:url) #_[canonical={default="property",base=["diversity policy"]}] #[org_schema_type="URL"], - out duns: String #_[canonical={default="verb",verb=["duns"],base=["duns"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Organization_duns"], - out taxID: String #_[canonical={default="property",base=["tax id"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Organization_taxID"], - out award: Array(String) #_[canonical={base=["awards", "prize"],reverse_property=["winner of #", "recipient of #", "# winner", "# awardee", "# recipient", "# holder"],verb=["has the award #", "has received the # award", "won the award for #", "won the # award", "received the # award", "received the #", "won the #", "won #", "holds the award for #", "holds the # award"],base_projection=["award", "prize"],verb_projection=["win", "hold"],passive_verb=["received"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Organization_award"], - out makesOffer: Array(Entity(org.schema.Restaurant:Offer)) #_[canonical={default="verb",verb=["makes # offer"],base=["offer"]}] #[org_schema_type="Offer"], - out ownershipFundingInfo: Entity(tt:url) #_[canonical={default="property",base=["ownership funding info"]}] #[org_schema_type="URL"], - out seeks: Array(Entity(org.schema.Restaurant:Demand)) #_[canonical={default="verb",verb=["seeks"],base=["seeks"]}] #[org_schema_type="Demand"], - out member: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={default="property",base=["members"],reverse_verb=["membered"]}] #[org_schema_type="Person"], - out funder: Array(Entity(org.schema.Restaurant:Organization)) #_[canonical={default="passive_verb",passive_verb=["funder"],base=["funder"]}] #[org_schema_type="Organization"], - out knowsAbout: Entity(tt:url) #_[canonical={default="verb",verb=["knows about"],base=["knows about"]}] #[org_schema_type="URL"], - out actionableFeedbackPolicy: Entity(tt:url) #_[canonical={default="property",base=["actionable feedback policy"]}] #[org_schema_type="URL"], - out unnamedSourcesPolicy: Entity(tt:url) #_[canonical={default="property",base=["unnamed sources policy"]}] #[org_schema_type="URL"], - out faxNumber: Entity(tt:phone_number) #_[canonical={default="property",base=["fax number"]}] #[org_schema_type="Text"] #[filterable=false], - out subOrganization: Array(Entity(org.schema.Restaurant:Organization)) #_[canonical={default="property",base=["sub organizations"]}] #[org_schema_type="Organization"], - out hasOfferCatalog: Array(Entity(org.schema.Restaurant:Offer)) #_[canonical={default="property",base=["offer catalog"]}] #[org_schema_type="OfferCatalog"], - out globalLocationNumber: String #_[canonical={default="property",base=["global location number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Organization_globalLocationNumber"], - out address: { - streetAddress: String #_[canonical={base=["street"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Organization_address_streetAddress"], - postOfficeBoxNumber: String #_[canonical={default="property",base=["post office box number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Organization_address_postOfficeBoxNumber"], - postalCode: String #_[canonical={default="property",base=["postal code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Organization_address_postalCode"], - addressLocality: String #_[canonical={base=["city"],preposition=["in #", "from #"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Organization_address_addressLocality"], - addressCountry: Entity(tt:country) #_[canonical={preposition=["in #", "from #"],base=["country"]}] #[org_schema_type="Text"], - addressRegion: Entity(tt:us_state) #_[canonical={preposition=["in #", "from #"],base=["state"]}] #[org_schema_type="Text"], - hoursAvailable: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["hours available"]}] #[org_schema_type="OpeningHoursSpecification"], - contactOption: Enum(TollFree,HearingImpairedSupported) #_[canonical={default="property",base=["contact option"]}] #[org_schema_type="ContactPointOption"], - productSupported: String #_[canonical={default="property",base=["product supported"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Organization_address_productSupported"], - faxNumber: Entity(tt:phone_number) #_[canonical={default="property",base=["fax number"]}] #[org_schema_type="Text"] #[filterable=false], - availableLanguage: Array(String) #_[canonical={default="property",base=["available languages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Organization_address_availableLanguage"], - telephone: Entity(tt:phone_number) #_[canonical={base=["telephone", "phone number"]}] #[org_schema_type="Text"] #[filterable=false], - email: Entity(tt:email_address) #_[canonical={default="property",base=["email"]}] #[org_schema_type="Text"] #[filterable=false], - contactType: Array(String) #_[canonical={default="property",base=["contact types"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Organization_address_contactType"] - } #_[canonical={default="property",base=["address"]}] #[org_schema_type="PostalAddress"], - out foundingDate: Date #_[canonical={default="property",base=["founding date"]}] #[org_schema_type="Date"], - out foundingLocation: Entity(org.schema.Restaurant:Place) #_[canonical={default="property",base=["founding location"]}] #[org_schema_type="Place"], - out review: Array(Entity(org.schema.Restaurant:Review)) #_[canonical={default="property",base=["reviews"]}] #[org_schema_type="Review"], - out owns: { - typeOfGood: Entity(org.schema.Restaurant:Service) #_[canonical={default="property",base=["type of good"]}] #[org_schema_type="Service"], - acquiredFrom: Entity(org.schema.Restaurant:Person) #_[canonical={default="passive_verb",passive_verb=["acquired from"],base=["acquired from"],reverse_verb=["acquired fromed"]}] #[org_schema_type="Person"], - ownedThrough: Date #_[canonical={default="passive_verb",passive_verb=["owned through"],base=["owned through"]}] #[org_schema_type="DateTime"], - ownedFrom: Date #_[canonical={default="passive_verb",passive_verb=["owned from"],base=["owned from"]}] #[org_schema_type="DateTime"] - } #_[canonical={default="verb",verb=["owns"],base=["owns"]}] #[org_schema_type="OwnershipInfo"], - out sponsor: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={default="property",base=["sponsors"],reverse_verb=["sponsored"]}] #[org_schema_type="Person"], - out event: Entity(org.schema.Restaurant:Event) #_[canonical={default="property",base=["event"]}] #[org_schema_type="Event"], - out founder: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={default="property",base=["founders"],reverse_verb=["foundered"]}] #[org_schema_type="Person"], - out publishingPrinciples: Entity(tt:url) #_[canonical={default="property",base=["publishing principles"]}] #[org_schema_type="URL"], - out isicV4: String #_[canonical={base=["isic v4"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Organization_isicV4"], - out slogan: Array(String) #_[canonical={default="property",base=["slogans"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Organization_slogan"], - out location: { - streetAddress: String #_[canonical={base=["street"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Organization_location_streetAddress"], - postOfficeBoxNumber: String #_[canonical={default="property",base=["post office box number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Organization_location_postOfficeBoxNumber"], - postalCode: String #_[canonical={default="property",base=["postal code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Organization_location_postalCode"], - addressLocality: String #_[canonical={base=["city"],preposition=["in #", "from #"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Organization_location_addressLocality"], - addressCountry: Entity(tt:country) #_[canonical={preposition=["in #", "from #"],base=["country"]}] #[org_schema_type="Text"], - addressRegion: Entity(tt:us_state) #_[canonical={preposition=["in #", "from #"],base=["state"]}] #[org_schema_type="Text"], - hoursAvailable: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["hours available"]}] #[org_schema_type="OpeningHoursSpecification"], - contactOption: Enum(TollFree,HearingImpairedSupported) #_[canonical={default="property",base=["contact option"]}] #[org_schema_type="ContactPointOption"], - productSupported: String #_[canonical={default="property",base=["product supported"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Organization_location_productSupported"], - faxNumber: Entity(tt:phone_number) #_[canonical={default="property",base=["fax number"]}] #[org_schema_type="Text"] #[filterable=false], - availableLanguage: Array(String) #_[canonical={default="property",base=["available languages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Organization_location_availableLanguage"], - telephone: Entity(tt:phone_number) #_[canonical={base=["telephone", "phone number"]}] #[org_schema_type="Text"] #[filterable=false], - email: Entity(tt:email_address) #_[canonical={default="property",base=["email"]}] #[org_schema_type="Text"] #[filterable=false], - contactType: Array(String) #_[canonical={default="property",base=["contact types"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Organization_location_contactType"] - } #_[canonical={default="property",base=["location"]}] #[org_schema_type="PostalAddress"], - out memberOf: Array(Entity(org.schema.Restaurant:Organization)) #_[canonical={default="reverse_property",reverse_property=["member of", "# member", "# 's member"],base=["member of"]}] #[org_schema_type="Organization"], - out vatID: String #_[canonical={default="passive_verb",passive_verb=["vat id"],base=["vat id"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Organization_vatID"], - out hasCredential: Array(Entity(org.schema.Restaurant:EducationalOccupationalCredential)) #_[canonical={default="property",base=["credential"]}] #[org_schema_type="EducationalOccupationalCredential"], - out knowsLanguage: Array(Entity(tt:iso_lang_code)) #_[canonical={base=["languages mastered"],verb=["knows", "masters", "understands"],base_projection=["language"],verb_projection=["know", "understand", "master"],adjective=["# speaking"]}] #[org_schema_type="Text"], - out diversityStaffingReport: Entity(tt:url) #_[canonical={default="property",base=["diversity staffing report"]}] #[org_schema_type="URL"], - out nonprofitStatus: Entity(org.schema.Restaurant:NonprofitType) #_[canonical={default="property",base=["nonprofit status"]}] #[org_schema_type="NonprofitType"], - out alumni: Entity(org.schema.Restaurant:Person) #_[canonical={default="property",base=["alumni"],reverse_verb=["alumnused"]}] #[org_schema_type="Person"], - out dissolutionDate: Date #_[canonical={default="property",base=["dissolution date"]}] #[org_schema_type="Date"], - out interactionStatistic: { - interactionService: Entity(org.schema.Restaurant:SoftwareApplication) #_[canonical={default="property",base=["interaction service"]}] #[org_schema_type="SoftwareApplication"], - userInteractionCount: Number #_[canonical={default="property",base=["user interaction count"]}] #_[counted_object=["user interactions"]] #[org_schema_type="Integer"], - interactionType: Entity(org.schema.Restaurant:Action) #_[canonical={default="property",base=["interaction type"]}] #[org_schema_type="Action"] - } #_[canonical={default="property",base=["interaction statistic"]}] #[org_schema_type="InteractionCounter"], - out logo: Entity(tt:picture) #_[canonical={default="property",base=["logo"]}] #[org_schema_type="URL"], - out telephone: Entity(tt:phone_number) #_[canonical={base=["telephone", "phone number"]}] #[org_schema_type="Text"] #[filterable=false], - out hasMerchantReturnPolicy: Entity(org.schema.Restaurant:MerchantReturnPolicy) #_[canonical={default="property",base=["merchant return policy"]}] #[org_schema_type="MerchantReturnPolicy"], - out email: Entity(tt:email_address) #_[canonical={default="property",base=["email"]}] #[org_schema_type="Text"] #[filterable=false], - out contactPoint: Array({ - hoursAvailable: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["hours available"]}] #[org_schema_type="OpeningHoursSpecification"], - contactOption: Enum(TollFree,HearingImpairedSupported) #_[canonical={default="property",base=["contact option"]}] #[org_schema_type="ContactPointOption"], - productSupported: String #_[canonical={default="property",base=["product supported"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Organization_contactPoint_productSupported"], - faxNumber: Entity(tt:phone_number) #_[canonical={default="property",base=["fax number"]}] #[org_schema_type="Text"] #[filterable=false], - availableLanguage: Array(String) #_[canonical={default="property",base=["available languages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Organization_contactPoint_availableLanguage"], - telephone: Entity(tt:phone_number) #_[canonical={base=["telephone", "phone number"]}] #[org_schema_type="Text"] #[filterable=false], - email: Entity(tt:email_address) #_[canonical={default="property",base=["email"]}] #[org_schema_type="Text"] #[filterable=false], - contactType: Array(String) #_[canonical={default="property",base=["contact types"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Organization_contactPoint_contactType"] - }) #_[canonical={default="property",base=["contact points"]}] #[org_schema_type="ContactPoint"], - out parentOrganization: Entity(org.schema.Restaurant:Organization) #_[canonical={default="property",base=["parent organization"]}] #[org_schema_type="Organization"], - out ethicsPolicy: Entity(tt:url) #_[canonical={default="property",base=["ethics policy"]}] #[org_schema_type="URL"], - out legalName: String #_[canonical={default="property",base=["legal name"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Organization_legalName"], - out department: Array(Entity(org.schema.Restaurant:Organization)) #_[canonical={default="property",base=["departments"]}] #[org_schema_type="Organization"], - out leiCode: Array(String) #_[canonical={default="property",base=["lei codes"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Organization_leiCode"], - out employee: Entity(org.schema.Restaurant:Person) #_[canonical={default="property",base=["employee"],reverse_verb=["employeed"]}] #[org_schema_type="Person"], - out numberOfEmployees: Number #_[canonical={default="property",base=["number of employees"]}] #_[counted_object=["employees"]] #[org_schema_type="QuantitativeValue"], - out naics: String #_[canonical={default="passive_verb",passive_verb=["naics"],base=["naics"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Organization_naics"], - out hasPOS: Entity(org.schema.Restaurant:Place) #_[canonical={default="property",base=["pos"]}] #[org_schema_type="Place"]) - #_[canonical="organization"] - #_[confirmation="organization"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Airline extends Organization(out id: Entity(org.schema.Restaurant:Airline) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Airline_name"], - out iataCode: String #_[canonical={default="property",base=["iata code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Airline_iataCode"], - out boardingPolicy: Enum(GroupBoardingPolicy,ZoneBoardingPolicy) #_[canonical={default="passive_verb",passive_verb=["boarding policy"],base=["boarding policy"]}] #[org_schema_type="BoardingPolicyType"]) - #_[canonical="airline"] - #_[confirmation="airline"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MedicalEntity extends Thing(out id: Entity(org.schema.Restaurant:MedicalEntity) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MedicalEntity_name"], - out medicineSystem: Enum(TraditionalChinese,Homeopathic,Osteopathic,WesternConventional,Ayurvedic,Chiropractic) #_[canonical={default="property",base=["medicine system"]}] #[org_schema_type="MedicineSystem"], - out guideline: Array(Entity(org.schema.Restaurant:MedicalGuideline)) #_[canonical={default="property",base=["guidelines"]}] #[org_schema_type="MedicalGuideline"], - out legalStatus: Entity(org.schema.Restaurant:MedicalEnumeration) #_[canonical={default="property",base=["legal status"]}] #[org_schema_type="MedicalEnumeration"], - out relevantSpecialty: Enum(PrimaryCare,SpeechPathology,Genetic,Obstetric,Rheumatologic,Anesthesia,Emergency,Gynecologic,Surgical,Dentistry,Nursing,Hematologic,Pulmonary,Neurologic,PharmacySpecialty,PublicHealth,Geriatric,Urologic,Musculoskeletal,Dermatology,DietNutrition,Physiotherapy,RespiratoryTherapy,Psychiatric,CommunityHealth,Cardiovascular,Toxicologic,Gastroenterologic,Midwifery,Podiatric,Renal,Dermatologic,PlasticSurgery,LaboratoryScience,Pediatric,Otolaryngologic,Endocrine,Pathology,Infectious,Oncologic,Optometric,Radiography) #_[canonical={default="property",base=["relevant specialty"]}] #[org_schema_type="MedicalSpecialty"], - out recognizingAuthority: Entity(org.schema.Restaurant:Organization) #_[canonical={default="passive_verb",passive_verb=["recognizing authority"],base=["recognizing authority"]}] #[org_schema_type="Organization"], - out code: Array(Entity(org.schema.Restaurant:MedicalCode)) #_[canonical={default="property",base=["codes"]}] #[org_schema_type="MedicalCode"], - out study: Array(Entity(org.schema.Restaurant:MedicalStudy)) #_[canonical={default="property",base=["studies"]}] #[org_schema_type="MedicalStudy"]) - #_[canonical="medical entity"] - #_[confirmation="medical entity"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query DrugCost extends MedicalEntity(out id: Entity(org.schema.Restaurant:DrugCost) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:DrugCost_name"], - out costCurrency: String #_[canonical={default="property",base=["cost currency"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:DrugCost_costCurrency"], - out drugUnit: String #_[canonical={default="property",base=["drug unit"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:DrugCost_drugUnit"], - out costCategory: Enum(ReimbursementCap,Wholesale,Retail) #_[canonical={default="property",base=["cost category"]}] #[org_schema_type="DrugCostCategory"], - out costPerUnit: Number #_[canonical={default="property",base=["cost per unit"]}] #[org_schema_type="Number"], - out costOrigin: String #_[canonical={default="property",base=["cost origin"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:DrugCost_costOrigin"], - out applicableLocation: Entity(org.schema.Restaurant:AdministrativeArea) #_[canonical={default="property",base=["applicable location"]}] #[org_schema_type="AdministrativeArea"]) - #_[canonical="drug cost"] - #_[confirmation="drug cost"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Person extends Thing(out id: Entity(org.schema.Restaurant:Person) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Person_name"], - out birthPlace: Entity(org.schema.Restaurant:Place) #_[canonical={default="property",base=["birth place"]}] #[org_schema_type="Place"], - out gender: Enum(Male,Female) #_[canonical={default="property",base=["gender"]}] #[org_schema_type="GenderType"], - out alumniOf: Array(Entity(org.schema.Restaurant:Organization)) #_[canonical={base=["college degrees", "universities", "alma maters"],reverse_property=["alumni of #", "alumnus of #", "alumna of #", "# alumnus", "# alumni", "# grad", "# graduate"],verb=["went to #", "graduated from #", "attended #", "studied at #"],passive_verb=["educated at #"],base_projection=["college"],verb_projection=["graduate | from", "go to", "attend", "study at"],passive_verb_projection=["educated | at"]}] #[org_schema_type="Organization"], - out homeLocation: Array({ - hoursAvailable: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["hours available"]}] #[org_schema_type="OpeningHoursSpecification"], - contactOption: Enum(TollFree,HearingImpairedSupported) #_[canonical={default="property",base=["contact option"]}] #[org_schema_type="ContactPointOption"], - productSupported: String #_[canonical={default="property",base=["product supported"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Person_homeLocation_productSupported"], - faxNumber: Entity(tt:phone_number) #_[canonical={default="property",base=["fax number"]}] #[org_schema_type="Text"] #[filterable=false], - availableLanguage: Array(String) #_[canonical={default="property",base=["available languages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Person_homeLocation_availableLanguage"], - telephone: Entity(tt:phone_number) #_[canonical={base=["telephone", "phone number"]}] #[org_schema_type="Text"] #[filterable=false], - email: Entity(tt:email_address) #_[canonical={default="property",base=["email"]}] #[org_schema_type="Text"] #[filterable=false], - contactType: Array(String) #_[canonical={default="property",base=["contact types"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Person_homeLocation_contactType"] - }) #_[canonical={default="property",base=["home locations"]}] #[org_schema_type="ContactPoint"], - out duns: String #_[canonical={default="verb",verb=["duns"],base=["duns"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Person_duns"], - out taxID: String #_[canonical={default="property",base=["tax id"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Person_taxID"], - out award: Array(String) #_[canonical={base=["awards", "prize"],reverse_property=["winner of #", "recipient of #", "# winner", "# awardee", "# recipient", "# holder"],verb=["has the award #", "has received the # award", "won the award for #", "won the # award", "received the # award", "received the #", "won the #", "won #", "holds the award for #", "holds the # award"],base_projection=["award", "prize"],verb_projection=["win", "hold"],passive_verb=["received"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Person_award"], - out birthDate: Date #_[canonical={default="property",base=["birth date"]}] #[org_schema_type="Date"], - out makesOffer: Array(Entity(org.schema.Restaurant:Offer)) #_[canonical={default="verb",verb=["makes # offer"],base=["offer"]}] #[org_schema_type="Offer"], - out familyName: String #_[canonical={default="property",base=["family name"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Person_familyName"], - out sibling: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={default="property",base=["siblings"],reverse_verb=["siblusngsed"]}] #[org_schema_type="Person"], - out seeks: Array(Entity(org.schema.Restaurant:Demand)) #_[canonical={default="verb",verb=["seeks"],base=["seeks"]}] #[org_schema_type="Demand"], - out spouse: Entity(org.schema.Restaurant:Person) #_[canonical={default="property",base=["spouse"],reverse_verb=["spoused"]}] #[org_schema_type="Person"], - out funder: Array(Entity(org.schema.Restaurant:Organization)) #_[canonical={default="passive_verb",passive_verb=["funder"],base=["funder"]}] #[org_schema_type="Organization"], - out knowsAbout: Entity(tt:url) #_[canonical={default="verb",verb=["knows about"],base=["knows about"]}] #[org_schema_type="URL"], - out height: Measure(m) #_[canonical={default="property",base=["height"]}] #[org_schema_type="Distance"], - out workLocation: Location #_[canonical={default="property",base=["work location"]}] #[org_schema_type="ContactPoint"], - out faxNumber: Entity(tt:phone_number) #_[canonical={default="property",base=["fax number"]}] #[org_schema_type="Text"] #[filterable=false], - out netWorth: Currency #_[canonical={default="passive_verb",passive_verb=["net worth"],base=["net worth"]}] #[org_schema_type="MonetaryAmount"], - out children: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={default="property",base=["children"],reverse_verb=["childed"]}] #[org_schema_type="Person"], - out hasOccupation: Entity(org.schema.Restaurant:Occupation) #_[canonical={default="property",base=["occupation"]}] #[org_schema_type="Occupation"], - out jobTitle: String #_[canonical={base=["job title", "position", "title"],reverse_property=["#"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Person_jobTitle"], - out hasOfferCatalog: Array(Entity(org.schema.Restaurant:Offer)) #_[canonical={default="property",base=["offer catalog"]}] #[org_schema_type="OfferCatalog"], - out globalLocationNumber: String #_[canonical={default="property",base=["global location number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Person_globalLocationNumber"], - out deathPlace: Entity(org.schema.Restaurant:Place) #_[canonical={default="property",base=["death place"]}] #[org_schema_type="Place"], - out address: { - streetAddress: String #_[canonical={base=["street"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Person_address_streetAddress"], - postOfficeBoxNumber: String #_[canonical={default="property",base=["post office box number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Person_address_postOfficeBoxNumber"], - postalCode: String #_[canonical={default="property",base=["postal code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Person_address_postalCode"], - addressLocality: String #_[canonical={base=["city"],preposition=["in #", "from #"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Person_address_addressLocality"], - addressCountry: Entity(tt:country) #_[canonical={preposition=["in #", "from #"],base=["country"]}] #[org_schema_type="Text"], - addressRegion: Entity(tt:us_state) #_[canonical={preposition=["in #", "from #"],base=["state"]}] #[org_schema_type="Text"], - hoursAvailable: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["hours available"]}] #[org_schema_type="OpeningHoursSpecification"], - contactOption: Enum(TollFree,HearingImpairedSupported) #_[canonical={default="property",base=["contact option"]}] #[org_schema_type="ContactPointOption"], - productSupported: String #_[canonical={default="property",base=["product supported"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Person_address_productSupported"], - faxNumber: Entity(tt:phone_number) #_[canonical={default="property",base=["fax number"]}] #[org_schema_type="Text"] #[filterable=false], - availableLanguage: Array(String) #_[canonical={default="property",base=["available languages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Person_address_availableLanguage"], - telephone: Entity(tt:phone_number) #_[canonical={base=["telephone", "phone number"]}] #[org_schema_type="Text"] #[filterable=false], - email: Entity(tt:email_address) #_[canonical={default="property",base=["email"]}] #[org_schema_type="Text"] #[filterable=false], - contactType: Array(String) #_[canonical={default="property",base=["contact types"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Person_address_contactType"] - } #_[canonical={default="property",base=["address"]}] #[org_schema_type="PostalAddress"], - out owns: { - typeOfGood: Entity(org.schema.Restaurant:Service) #_[canonical={default="property",base=["type of good"]}] #[org_schema_type="Service"], - acquiredFrom: Entity(org.schema.Restaurant:Person) #_[canonical={default="passive_verb",passive_verb=["acquired from"],base=["acquired from"],reverse_verb=["acquired fromed"]}] #[org_schema_type="Person"], - ownedThrough: Date #_[canonical={default="passive_verb",passive_verb=["owned through"],base=["owned through"]}] #[org_schema_type="DateTime"], - ownedFrom: Date #_[canonical={default="passive_verb",passive_verb=["owned from"],base=["owned from"]}] #[org_schema_type="DateTime"] - } #_[canonical={default="verb",verb=["owns"],base=["owns"]}] #[org_schema_type="OwnershipInfo"], - out sponsor: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={default="property",base=["sponsors"],reverse_verb=["sponsored"]}] #[org_schema_type="Person"], - out publishingPrinciples: Entity(tt:url) #_[canonical={default="property",base=["publishing principles"]}] #[org_schema_type="URL"], - out isicV4: String #_[canonical={base=["isic v4"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Person_isicV4"], - out memberOf: Array(Entity(org.schema.Restaurant:Organization)) #_[canonical={default="reverse_property",reverse_property=["member of", "# member", "# 's member"],base=["member of"]}] #[org_schema_type="Organization"], - out honorificSuffix: Array(String) #_[canonical={default="property",base=["honorific suffixes"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Person_honorificSuffix"], - out nationality: Entity(org.schema.Restaurant:Country) #_[canonical={default="property",base=["nationality"]}] #[org_schema_type="Country"], - out vatID: String #_[canonical={default="passive_verb",passive_verb=["vat id"],base=["vat id"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Person_vatID"], - out hasCredential: Array(Entity(org.schema.Restaurant:EducationalOccupationalCredential)) #_[canonical={default="property",base=["credential"]}] #[org_schema_type="EducationalOccupationalCredential"], - out knowsLanguage: Array(Entity(tt:iso_lang_code)) #_[canonical={base=["languages mastered"],verb=["knows", "masters", "understands"],base_projection=["language"],verb_projection=["know", "understand", "master"],adjective=["# speaking"]}] #[org_schema_type="Text"], - out relatedTo: Entity(org.schema.Restaurant:Person) #_[canonical={default="passive_verb",passive_verb=["related to"],base=["related to"],reverse_verb=["related toed"]}] #[org_schema_type="Person"], - out follows: Entity(org.schema.Restaurant:Person) #_[canonical={default="verb",verb=["follows"],base=["follows"],reverse_verb=["followed"]}] #[org_schema_type="Person"], - out knows: Entity(org.schema.Restaurant:Person) #_[canonical={default="verb",verb=["knows"],base=["knows"],reverse_verb=["knew"]}] #[org_schema_type="Person"], - out worksFor: Array(Entity(org.schema.Restaurant:Organization)) #_[canonical={base=["employers"],reverse_property=["employee of #", "# employee"],verb=["works for #", "works at #", "worked at #", "worked for #"],passive_verb=["employed at #", "employed by #"],base_projection=["company", "employer"],verb_projection=["work for", "work | at"]}] #[org_schema_type="Organization"], - out performerIn: Entity(org.schema.Restaurant:Event) #_[canonical={default="property",base=["performer in"]}] #[org_schema_type="Event"], - out honorificPrefix: Array(String) #_[canonical={default="property",base=["honorific prefix"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Person_honorificPrefix"], - out additionalName: Array(String) #_[canonical={default="property",base=["additional names"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Person_additionalName"], - out interactionStatistic: { - interactionService: Entity(org.schema.Restaurant:SoftwareApplication) #_[canonical={default="property",base=["interaction service"]}] #[org_schema_type="SoftwareApplication"], - userInteractionCount: Number #_[canonical={default="property",base=["user interaction count"]}] #_[counted_object=["user interactions"]] #[org_schema_type="Integer"], - interactionType: Entity(org.schema.Restaurant:Action) #_[canonical={default="property",base=["interaction type"]}] #[org_schema_type="Action"] - } #_[canonical={default="property",base=["interaction statistic"]}] #[org_schema_type="InteractionCounter"], - out telephone: Entity(tt:phone_number) #_[canonical={base=["telephone", "phone number"]}] #[org_schema_type="Text"] #[filterable=false], - out weight: Measure(ms) #_[canonical={default="property",base=["weight"]}] #[org_schema_type="QuantitativeValue"], - out email: Entity(tt:email_address) #_[canonical={default="property",base=["email"]}] #[org_schema_type="Text"] #[filterable=false], - out contactPoint: Array({ - hoursAvailable: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["hours available"]}] #[org_schema_type="OpeningHoursSpecification"], - contactOption: Enum(TollFree,HearingImpairedSupported) #_[canonical={default="property",base=["contact option"]}] #[org_schema_type="ContactPointOption"], - productSupported: String #_[canonical={default="property",base=["product supported"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Person_contactPoint_productSupported"], - faxNumber: Entity(tt:phone_number) #_[canonical={default="property",base=["fax number"]}] #[org_schema_type="Text"] #[filterable=false], - availableLanguage: Array(String) #_[canonical={default="property",base=["available languages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Person_contactPoint_availableLanguage"], - telephone: Entity(tt:phone_number) #_[canonical={base=["telephone", "phone number"]}] #[org_schema_type="Text"] #[filterable=false], - email: Entity(tt:email_address) #_[canonical={default="property",base=["email"]}] #[org_schema_type="Text"] #[filterable=false], - contactType: Array(String) #_[canonical={default="property",base=["contact types"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Person_contactPoint_contactType"] - }) #_[canonical={default="property",base=["contact points"]}] #[org_schema_type="ContactPoint"], - out colleague: Array(Entity(tt:url)) #_[canonical={default="property",base=["colleagues"]}] #[org_schema_type="URL"], - out deathDate: Date #_[canonical={default="property",base=["death date"]}] #[org_schema_type="Date"], - out parent: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={default="property",base=["parents"],reverse_verb=["parented"]}] #[org_schema_type="Person"], - out givenName: String #_[canonical={default="passive_verb",passive_verb=["given name"],base=["given name"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Person_givenName"], - out naics: String #_[canonical={default="passive_verb",passive_verb=["naics"],base=["naics"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Person_naics"], - out hasPOS: Entity(org.schema.Restaurant:Place) #_[canonical={default="property",base=["pos"]}] #[org_schema_type="Place"], - out callSign: Array(String) #_[canonical={default="property",base=["call sign"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Person_callSign"]) - #_[canonical="person"] - #_[confirmation="person"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Product extends Thing(out id: Entity(org.schema.Restaurant:Product) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Product_name"], - out inProductGroupWithID: String #_[canonical={default="passive_verb",passive_verb=["in product group with id"],base=["in product group with id"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Product_inProductGroupWithID"], - out model: String #_[canonical={base=["model"],implicit_identity=true}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Product_model"], - out aggregateRating: { - ratingCount: Number #_[canonical={default="property",base=["rating count"]}] #_[counted_object=["ratings"]] #[org_schema_type="Integer"], - reviewCount: Number #_[canonical={default="property",base=["review count"]}] #_[counted_object=["reviews"]] #[org_schema_type="Integer"], - ratingValue: Number #_[canonical={passive_verb=["rated # star"],base=["rating", "overall rating", "average rating", "customer rating", "review rating"],adjective=["# star"],adjective_argmax=["top-rated", "best"],projection_pronoun=["how"],passive_verb_projection=["rated"]}] #[org_schema_type="Number"] #[min_number=1] #[max_number=5], - ratingExplanation: Array(String) #_[canonical={default="property",base=["rating explanations"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Product_aggregateRating_ratingExplanation"], - reviewAspect: String #_[canonical={default="property",base=["review aspect"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Product_aggregateRating_reviewAspect"], - author: Entity(org.schema.Restaurant:Person) #_[canonical={base=["author"],preposition=["by"],passive_verb=["written by", "authored by", "uploaded by", "submitted by"],verb=["# wrote", "# authored"],base_projection=["author", "creator"],reverse_verb_projection=["wrote", "authored"],passive_verb_projection=["written | by", "authored | by"]}] #[org_schema_type="Person"] - } #_[canonical={default="property",base=["aggregate rating"]}] #[org_schema_type="AggregateRating"], - out isConsumableFor: Array(Entity(org.schema.Restaurant:Product)) #_[canonical={default="passive_verb",passive_verb=["consumable for"],base=["is consumable for"]}] #[org_schema_type="Product"], - out depth: Measure(m) #_[canonical={default="property",base=["depth"]}] #[org_schema_type="Distance"], - out offers: Entity(org.schema.Restaurant:Offer) #_[canonical={default="verb",verb=["offers"],base=["offers"]}] #[org_schema_type="Offer"], - out award: Array(String) #_[canonical={base=["awards", "prize"],reverse_property=["winner of #", "recipient of #", "# winner", "# awardee", "# recipient", "# holder"],verb=["has the award #", "has received the # award", "won the award for #", "won the # award", "received the # award", "received the #", "won the #", "won #", "holds the award for #", "holds the # award"],base_projection=["award", "prize"],verb_projection=["win", "hold"],passive_verb=["received"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Product_award"], - out category: Enum(AnaerobicActivity,LeisureTimeActivity,Flexibility,Balance,OccupationalActivity,StrengthTraining,AerobicActivity) #_[canonical={default="property",base=["category"]}] #[org_schema_type="PhysicalActivityCategory"], - out width: Number #_[canonical={default="property",base=["width"]}] #[org_schema_type="QuantitativeValue"], - out nsn: String #_[canonical={default="passive_verb",passive_verb=["nsn"],base=["nsn"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Product_nsn"], - out manufacturer: Entity(org.schema.Restaurant:Organization) #_[canonical={default="property",base=["manufacturer"]}] #[org_schema_type="Organization"], - out sku: String #_[canonical={default="passive_verb",passive_verb=["sku"],base=["sku"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Product_sku"], - out mpn: String #_[canonical={base=["manufacturer part number"]}] #[org_schema_type="Text"] #[filterable=false] #[string_values="org.schema.Restaurant:Product_mpn"], - out audience: Array(Entity(org.schema.Restaurant:Audience)) #_[canonical={default="property",base=["audiences"]}] #[org_schema_type="Audience"], - out height: Measure(m) #_[canonical={default="property",base=["height"]}] #[org_schema_type="Distance"], - out gtin8: String #_[canonical={base=["gtin8"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Product_gtin8"], - out review: Array(Entity(org.schema.Restaurant:Review)) #_[canonical={default="property",base=["reviews"]}] #[org_schema_type="Review"], - out purchaseDate: Date #_[canonical={default="property",base=["purchase date"]}] #[org_schema_type="Date"], - out itemCondition: Enum(DamagedCondition,RefurbishedCondition,UsedCondition,NewCondition) #_[canonical={default="property",base=["item condition"]}] #[org_schema_type="OfferItemCondition"], - out slogan: Array(String) #_[canonical={default="property",base=["slogans"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Product_slogan"], - out releaseDate: Date #_[canonical={default="property",base=["release date"]}] #[org_schema_type="Date"], - out isSimilarTo: Array(Entity(org.schema.Restaurant:Service)) #_[canonical={default="passive_verb",passive_verb=["similar to"],base=["is similar to"]}] #[org_schema_type="Service"], - out productionDate: Date #_[canonical={default="property",base=["production date"]}] #[org_schema_type="Date"], - out isAccessoryOrSparePartFor: Array(Entity(org.schema.Restaurant:Product)) #_[canonical={default="passive_verb",passive_verb=["accessory or spare part for"],base=["is accessory or spare part for"]}] #[org_schema_type="Product"], - out logo: Entity(tt:picture) #_[canonical={default="property",base=["logo"]}] #[org_schema_type="URL"], - out isVariantOf: Entity(org.schema.Restaurant:ProductModel) #_[canonical={default="reverse_property",reverse_property=["variant of"],base=["is variant of"]}] #[org_schema_type="ProductModel"], - out gtin13: String #_[canonical={base=["gtin13"]}] #[org_schema_type="Text"] #[filterable=false] #[string_values="org.schema.Restaurant:Product_gtin13"], - out gtin12: String #_[canonical={base=["gtin12"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Product_gtin12"], - out gtin14: String #_[canonical={base=["gtin14"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Product_gtin14"], - out material: Array(Entity(tt:url)) #_[canonical={default="property",base=["materials"]}] #[org_schema_type="URL"], - out hasMerchantReturnPolicy: Entity(org.schema.Restaurant:MerchantReturnPolicy) #_[canonical={default="property",base=["merchant return policy"]}] #[org_schema_type="MerchantReturnPolicy"], - out weight: Measure(ms) #_[canonical={default="property",base=["weight"]}] #[org_schema_type="QuantitativeValue"], - out pattern: Array(String) #_[canonical={default="property",base=["patterns"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Product_pattern"], - out size: Number #_[canonical={default="property",base=["size"]}] #[org_schema_type="QuantitativeValue"], - out gtin: Array(String) #_[canonical={default="passive_verb",passive_verb=["gtin"],base=["gtin"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Product_gtin"], - out color: String #_[canonical={base=["color"],adjective=["#"],preposition=["in #"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Product_color"], - out isRelatedTo: Array(Entity(org.schema.Restaurant:Product)) #_[canonical={default="passive_verb",passive_verb=["related to"],base=["is related to"]}] #[org_schema_type="Product"], - out productID: String #_[canonical={default="property",base=["product id"]}] #[org_schema_type="Text"] #[filterable=false] #[string_values="org.schema.Restaurant:Product_productID"]) - #_[canonical="product"] - #_[confirmation="product"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query CreativeWork extends Thing(out id: Entity(org.schema.Restaurant:CreativeWork) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:CreativeWork_name"], - out typicalAgeRange: String #_[canonical={default="property",base=["typical age range"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:CreativeWork_typicalAgeRange"], - out sdDatePublished: Date #_[canonical={default="passive_verb",passive_verb=["sd date published"],base=["sd date published"]}] #[org_schema_type="Date"], - out educationalLevel: Entity(tt:url) #_[canonical={default="property",base=["educational level"]}] #[org_schema_type="URL"], - out releasedEvent: Entity(org.schema.Restaurant:PublicationEvent) #_[canonical={default="passive_verb",passive_verb=["released event"],base=["released event"]}] #[org_schema_type="PublicationEvent"], - out schemaVersion: Entity(tt:url) #_[canonical={default="property",base=["schema version"]}] #[org_schema_type="URL"], - out contentLocation: Entity(org.schema.Restaurant:Place) #_[canonical={default="property",base=["content location"]}] #[org_schema_type="Place"], - out locationCreated: Entity(org.schema.Restaurant:Place) #_[canonical={default="property",base=["location created"]}] #[org_schema_type="Place"], - out aggregateRating: { - ratingCount: Number #_[canonical={default="property",base=["rating count"]}] #_[counted_object=["ratings"]] #[org_schema_type="Integer"], - reviewCount: Number #_[canonical={default="property",base=["review count"]}] #_[counted_object=["reviews"]] #[org_schema_type="Integer"], - ratingValue: Number #_[canonical={passive_verb=["rated # star"],base=["rating", "overall rating", "average rating", "customer rating", "review rating"],adjective=["# star"],adjective_argmax=["top-rated", "best"],projection_pronoun=["how"],passive_verb_projection=["rated"]}] #[org_schema_type="Number"] #[min_number=1] #[max_number=5], - ratingExplanation: Array(String) #_[canonical={default="property",base=["rating explanations"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:CreativeWork_aggregateRating_ratingExplanation"], - reviewAspect: String #_[canonical={default="property",base=["review aspect"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:CreativeWork_aggregateRating_reviewAspect"], - author: Entity(org.schema.Restaurant:Person) #_[canonical={base=["author"],preposition=["by"],passive_verb=["written by", "authored by", "uploaded by", "submitted by"],verb=["# wrote", "# authored"],base_projection=["author", "creator"],reverse_verb_projection=["wrote", "authored"],passive_verb_projection=["written | by", "authored | by"]}] #[org_schema_type="Person"] - } #_[canonical={default="property",base=["aggregate rating"]}] #[org_schema_type="AggregateRating"], - out temporalCoverage: Date #_[canonical={default="property",base=["temporal coverage"]}] #[org_schema_type="DateTime"], - out accessModeSufficient: Array(Entity(org.schema.Restaurant:ItemList)) #_[canonical={default="property",base=["access mode sufficient"]}] #[org_schema_type="ItemList"], - out accountablePerson: Entity(org.schema.Restaurant:Person) #_[canonical={default="property",base=["accountable person"],reverse_verb=["accountable personned"]}] #[org_schema_type="Person"], - out keywords: String #_[canonical={default="passive_verb",passive_verb=["keywords"],base=["keywords"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:CreativeWork_keywords"], - out sdPublisher: Entity(org.schema.Restaurant:Person) #_[canonical={default="property",base=["sd publisher"],reverse_verb=["sd publishered"]}] #[org_schema_type="Person"], - out spatialCoverage: Entity(org.schema.Restaurant:Place) #_[canonical={default="property",base=["spatial coverage"]}] #[org_schema_type="Place"], - out exampleOfWork: Array(Entity(org.schema.Restaurant:CreativeWork)) #_[canonical={default="property",base=["example of work"]}] #[org_schema_type="CreativeWork"], - out maintainer: Array(Entity(org.schema.Restaurant:Organization)) #_[canonical={default="passive_verb",passive_verb=["maintainer"],base=["maintainer"]}] #[org_schema_type="Organization"], - out editor: Entity(org.schema.Restaurant:Person) #_[canonical={default="property",base=["editor"],reverse_verb=["editored"]}] #[org_schema_type="Person"], - out offers: Entity(org.schema.Restaurant:Offer) #_[canonical={default="verb",verb=["offers"],base=["offers"]}] #[org_schema_type="Offer"], - out discussionUrl: Array(Entity(tt:url)) #_[canonical={default="property",base=["discussion url"]}] #[org_schema_type="URL"], - out award: Array(String) #_[canonical={base=["awards", "prize"],reverse_property=["winner of #", "recipient of #", "# winner", "# awardee", "# recipient", "# holder"],verb=["has the award #", "has received the # award", "won the award for #", "won the # award", "received the # award", "received the #", "won the #", "won #", "holds the award for #", "holds the # award"],base_projection=["award", "prize"],verb_projection=["win", "hold"],passive_verb=["received"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:CreativeWork_award"], - out sdLicense: Array(Entity(tt:url)) #_[canonical={default="property",base=["sd licenses"]}] #[org_schema_type="URL"], - out copyrightHolder: Entity(org.schema.Restaurant:Person) #_[canonical={default="property",base=["copyright holder"],reverse_verb=["copyright holdered"]}] #[org_schema_type="Person"], - out accessibilityHazard: Array(String) #_[canonical={default="property",base=["accessibility hazards"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:CreativeWork_accessibilityHazard"], - out copyrightYear: Number #_[canonical={default="property",base=["copyright year"]}] #[org_schema_type="Number"], - out publisherImprint: Entity(org.schema.Restaurant:Organization) #_[canonical={default="property",base=["publisher imprint"]}] #[org_schema_type="Organization"], - out hasPart: Entity(org.schema.Restaurant:CreativeWork) #_[canonical={default="property",base=["part"]}] #[org_schema_type="CreativeWork"], - out commentCount: Number #_[canonical={default="property",base=["comment count"]}] #_[counted_object=["comment"]] #[org_schema_type="Integer"], - out spatial: Entity(org.schema.Restaurant:Place) #_[canonical={default="passive_verb",passive_verb=["spatial"],base=["spatial"]}] #[org_schema_type="Place"], - out recordedAt: Entity(org.schema.Restaurant:Event) #_[canonical={default="passive_verb",passive_verb=["recorded at"],base=["recorded at"]}] #[org_schema_type="Event"], - out isPartOf: Entity(tt:url) #_[canonical={default="reverse_property",reverse_property=["part of"],base=["is part of"]}] #[org_schema_type="URL"], - out temporal: Date #_[canonical={default="passive_verb",passive_verb=["temporal"],base=["temporal"]}] #[org_schema_type="DateTime"], - out about: Entity(org.schema.Restaurant:Thing) #_[canonical={default="passive_verb",passive_verb=["about"],base=["about"]}] #[org_schema_type="Thing"], - out accessibilitySummary: Array(String) #_[canonical={default="property",base=["accessibility summaries"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:CreativeWork_accessibilitySummary"], - out editEIDR: Array(Entity(tt:url)) #_[canonical={default="property",base=["edit eidr"]}] #[org_schema_type="URL"], - out inLanguage: Entity(tt:iso_lang_code) #_[canonical={base=["language"],adjective=["#"],preposition=["in"],passive_verb=["written in #"],reverse_property=["# version of"],base_projection=["language"],preposition_projection=["in"],passive_verb_projection=["written | in"]}] #[org_schema_type="Text"], - out associatedMedia: Array(Entity(org.schema.Restaurant:MediaObject)) #_[canonical={default="passive_verb",passive_verb=["associated media"],base=["associated media"]}] #[org_schema_type="MediaObject"], - out funder: Array(Entity(org.schema.Restaurant:Organization)) #_[canonical={default="passive_verb",passive_verb=["funder"],base=["funder"]}] #[org_schema_type="Organization"], - out position: Number #_[canonical={default="property",base=["position"]}] #[org_schema_type="Integer"], - out workExample: Entity(org.schema.Restaurant:CreativeWork) #_[canonical={default="property",base=["work example"]}] #[org_schema_type="CreativeWork"], - out encoding: Array(Entity(org.schema.Restaurant:MediaObject)) #_[canonical={default="passive_verb",passive_verb=["encoding"],base=["encoding"]}] #[org_schema_type="MediaObject"], - out interactivityType: String #_[canonical={default="property",base=["interactivity type"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:CreativeWork_interactivityType"], - out provider: Entity(org.schema.Restaurant:Person) #_[canonical={default="property",base=["provider"],reverse_verb=["providered"]}] #[org_schema_type="Person"], - out character: Entity(org.schema.Restaurant:Person) #_[canonical={default="property",base=["character"],reverse_verb=["charactered"]}] #[org_schema_type="Person"], - out sourceOrganization: Entity(org.schema.Restaurant:Organization) #_[canonical={default="property",base=["source organization"]}] #[org_schema_type="Organization"], - out audience: Array(Entity(org.schema.Restaurant:Audience)) #_[canonical={default="property",base=["audiences"]}] #[org_schema_type="Audience"], - out abstract_: Array(String) #_[canonical={default="passive_verb",passive_verb=["abstract"],base=["abstract"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:CreativeWork_abstract"], - out materialExtent: Number #_[canonical={default="property",base=["material extent"]}] #[org_schema_type="QuantitativeValue"], - out conditionsOfAccess: String #_[canonical={default="property",base=["conditions of access"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:CreativeWork_conditionsOfAccess"], - out video: Entity(org.schema:VideoObject) #_[canonical={default="property",base=["video"]}] #[org_schema_type="VideoObject"], - out accessibilityFeature: String #_[canonical={default="property",base=["accessibility feature"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:CreativeWork_accessibilityFeature"], - out publisher: Entity(org.schema:Organization) #_[canonical={base=["publisher"],preposition=["by"],passive_verb=["made by", "published by"]}] #[org_schema_type="Organization"], - out text: String #_[canonical={default="property",base=["text"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:CreativeWork_text"], - out publication: Array(Entity(org.schema.Restaurant:PublicationEvent)) #_[canonical={default="property",base=["publications"]}] #[org_schema_type="PublicationEvent"], - out contributor: Array(Entity(org.schema.Restaurant:Organization)) #_[canonical={default="property",base=["contributors"]}] #[org_schema_type="Organization"], - out encodingFormat: Entity(tt:url) #_[canonical={default="property",base=["encoding format"]}] #[org_schema_type="URL"], - out review: Array(Entity(org.schema.Restaurant:Review)) #_[canonical={default="property",base=["reviews"]}] #[org_schema_type="Review"], - out accessibilityControl: String #_[canonical={default="property",base=["accessibility control"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:CreativeWork_accessibilityControl"], - out license: Array(Entity(tt:url)) #_[canonical={default="property",base=["licenses"]}] #[org_schema_type="URL"], - out sponsor: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={default="property",base=["sponsors"],reverse_verb=["sponsored"]}] #[org_schema_type="Person"], - out isBasedOn: Array(Entity(tt:url)) #_[canonical={default="passive_verb",passive_verb=["based on"],base=["is based on"]}] #[org_schema_type="URL"], - out creator: Array(Entity(org.schema.Movie:Person)) #_[canonical={base=["creator", "producer"],passive_verb=["created by", "produced by", "made by"],verb=["# created", "# creates", "# produced", "# made"],base_projection=["creator", "producer"],reverse_verb_projection=["created", "produced", "made"],passive_verb_projection=["created | by", "produced | by", "made | by"]}] #[org_schema_type="Person"], - out publishingPrinciples: Entity(tt:url) #_[canonical={default="property",base=["publishing principles"]}] #[org_schema_type="URL"], - out producer: Entity(org.schema.Restaurant:Person) #_[canonical={default="property",base=["producer"],reverse_verb=["producered"]}] #[org_schema_type="Person"], - out correction: Entity(tt:url) #_[canonical={default="property",base=["correction"]}] #[org_schema_type="URL"], - out workTranslation: Array(Entity(org.schema.Restaurant:CreativeWork)) #_[canonical={default="property",base=["work translations"]}] #[org_schema_type="CreativeWork"], - out mentions: Entity(org.schema.Restaurant:Thing) #_[canonical={default="verb",verb=["mentions"],base=["mentions"]}] #[org_schema_type="Thing"], - out contentReferenceTime: Date #_[canonical={default="property",base=["content reference time"]}] #[org_schema_type="DateTime"], - out teaches: String #_[canonical={default="verb",verb=["teaches"],base=["teaches"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:CreativeWork_teaches"], - out alternativeHeadline: Array(String) #_[canonical={default="property",base=["alternative headlines"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:CreativeWork_alternativeHeadline"], - out datePublished: Date #_[canonical={passive_verb=["published on #", "written on #"],base=["date published"],adjective_argmax=["most recent", "latest", "last", "newest"],adjective_argmin=["earliest", "first", "oldest"],base_projection=["date", "year"],passive_verb_projection=["published | on", "written | on"]}] #[org_schema_type="Date"], - out isAccessibleForFree: Boolean #_[canonical={default="adjective",adjective_true=["accessible for free"],base=["is accessible for free"]}] #[org_schema_type="Boolean"], - out creativeWorkStatus: String #_[canonical={default="property",base=["creative work status"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:CreativeWork_creativeWorkStatus"], - out headline: String #_[canonical={default="property",base=["headline"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:CreativeWork_headline"], - out translationOfWork: Entity(org.schema.Restaurant:CreativeWork) #_[canonical={default="property",base=["translation of work"]}] #[org_schema_type="CreativeWork"], - out acquireLicensePage: Entity(tt:url) #_[canonical={default="property",base=["acquire license page"]}] #[org_schema_type="URL"], - out citation: Array(String) #_[canonical={default="property",base=["citations"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:CreativeWork_citation"], - out accessibilityAPI: String #_[canonical={default="property",base=["accessibility api"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:CreativeWork_accessibilityAPI"], - out interactionStatistic: { - interactionService: Entity(org.schema.Restaurant:SoftwareApplication) #_[canonical={default="property",base=["interaction service"]}] #[org_schema_type="SoftwareApplication"], - userInteractionCount: Number #_[canonical={default="property",base=["user interaction count"]}] #_[counted_object=["user interactions"]] #[org_schema_type="Integer"], - interactionType: Entity(org.schema.Restaurant:Action) #_[canonical={default="property",base=["interaction type"]}] #[org_schema_type="Action"] - } #_[canonical={default="property",base=["interaction statistic"]}] #[org_schema_type="InteractionCounter"], - out contentRating: String #_[canonical={base=["content rating"],adjective=["# rated", "#-rated"],passive_verb=["rated #"]}] #[org_schema_type="Rating"] #[string_values="org.schema.Restaurant:CreativeWork_contentRating"], - out educationalUse: String #_[canonical={default="property",base=["educational use"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:CreativeWork_educationalUse"], - out material: Array(Entity(tt:url)) #_[canonical={default="property",base=["materials"]}] #[org_schema_type="URL"], - out isFamilyFriendly: Boolean #_[canonical={default="verb",verb_true=["family friendly"],base=["is family friendly"]}] #[org_schema_type="Boolean"], - out assesses: String #_[canonical={default="verb",verb=["assesses"],base=["assesses"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:CreativeWork_assesses"], - out mainEntity: Entity(org.schema.Restaurant:Thing) #_[canonical={default="property",base=["main entity"]}] #[org_schema_type="Thing"], - out version: Number #_[canonical={default="property",base=["version"]}] #[org_schema_type="Number"], - out dateModified: Date #_[canonical={default="property",base=["date modified"]}] #[org_schema_type="DateTime"], - out learningResourceType: String #_[canonical={default="passive_verb",passive_verb=["learning resource type"],base=["learning resource type"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:CreativeWork_learningResourceType"], - out genre: Array(String) #_[canonical={base=["genre"],adjective=["#"]}] #[org_schema_type="URL"] #[string_values="org.schema.Restaurant:CreativeWork_genre"], - out pattern: Array(String) #_[canonical={default="property",base=["patterns"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:CreativeWork_pattern"], - out author: Entity(org.schema.Restaurant:Person) #_[canonical={base=["author"],preposition=["by"],passive_verb=["written by", "authored by", "uploaded by", "submitted by"],verb=["# wrote", "# authored"],base_projection=["author", "creator"],reverse_verb_projection=["wrote", "authored"],passive_verb_projection=["written | by", "authored | by"]}] #[org_schema_type="Person"], - out size: Number #_[canonical={default="property",base=["size"]}] #[org_schema_type="QuantitativeValue"], - out translator: Entity(org.schema.Restaurant:Organization) #_[canonical={default="property",base=["translator"]}] #[org_schema_type="Organization"], - out timeRequired: Measure(ms) #_[canonical={default="property",base=["time required"]}] #[org_schema_type="Duration"], - out usageInfo: Entity(tt:url) #_[canonical={default="property",base=["usage info"]}] #[org_schema_type="URL"], - out educationalAlignment: Array(Entity(org.schema.Restaurant:AlignmentObject)) #_[canonical={default="property",base=["educational alignments"]}] #[org_schema_type="AlignmentObject"], - out expires: Date #_[canonical={default="verb",verb=["expires"],base=["expires"]}] #[org_schema_type="Date"], - out accessMode: String #_[canonical={default="property",base=["access mode"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:CreativeWork_accessMode"], - out audio: Array(Entity(org.schema.Restaurant:MusicRecording)) #_[canonical={default="passive_verb",passive_verb=["audio"],base=["audio"]}] #[org_schema_type="MusicRecording"], - out comment: Entity(org.schema.Restaurant:Comment) #_[canonical={default="property",base=["comment"]}] #[org_schema_type="Comment"]) - #_[canonical="creative work"] - #_[confirmation="creative work"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Article extends CreativeWork(out id: Entity(org.schema.Restaurant:Article) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Article_name"], - out speakable: Entity(tt:url) #_[canonical={default="passive_verb",passive_verb=["speakable"],base=["speakable"]}] #[org_schema_type="URL"], - out pageEnd: Number #_[canonical={default="property",base=["page end"]}] #[org_schema_type="Integer"], - out pageStart: Number #_[canonical={default="property",base=["page start"]}] #[org_schema_type="Integer"], - out articleSection: String #_[canonical={default="property",base=["article section"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Article_articleSection"], - out pagination: String #_[canonical={default="passive_verb",passive_verb=["pagination"],base=["pagination"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Article_pagination"], - out backstory: String #_[canonical={default="passive_verb",passive_verb=["backstory"],base=["backstory"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Article_backstory"], - out wordCount: Number #_[canonical={default="property",base=["word count"]}] #_[counted_object=["words"]] #[org_schema_type="Integer"], - out articleBody: String #_[canonical={default="property",base=["article body"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Article_articleBody"]) - #_[canonical="article"] - #_[confirmation="article"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query SocialMediaPosting extends Article(out id: Entity(org.schema.Restaurant:SocialMediaPosting) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:SocialMediaPosting_name"], - out sharedContent: Array(Entity(org.schema.Restaurant:CreativeWork)) #_[canonical={default="passive_verb",passive_verb=["shared content"],base=["shared content"]}] #[org_schema_type="CreativeWork"]) - #_[canonical="social media posting"] - #_[confirmation="social media posting"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query BlogPosting extends SocialMediaPosting(out id: Entity(org.schema.Restaurant:BlogPosting) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:BlogPosting_name"]) - #_[canonical="blog posting"] - #_[confirmation="blog posting"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query LiveBlogPosting extends BlogPosting(out id: Entity(org.schema.Restaurant:LiveBlogPosting) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:LiveBlogPosting_name"], - out liveBlogUpdate: Array(Entity(org.schema.Restaurant:BlogPosting)) #_[canonical={default="property",base=["live blog update"]}] #[org_schema_type="BlogPosting"], - out coverageStartTime: Date #_[canonical={default="property",base=["coverage start time"]}] #[org_schema_type="DateTime"], - out coverageEndTime: Date #_[canonical={default="property",base=["coverage end time"]}] #[org_schema_type="DateTime"]) - #_[canonical="live blog posting"] - #_[confirmation="live blog posting"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Intangible extends Thing(out id: Entity(org.schema.Restaurant:Intangible) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Intangible_name"]) - #_[canonical="intangible"] - #_[confirmation="intangible"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Service extends Intangible(out id: Entity(org.schema.Restaurant:Service) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Service_name"], - out hoursAvailable: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["hours available"]}] #[org_schema_type="OpeningHoursSpecification"], - out availableChannel: Array(Entity(org.schema.Restaurant:ServiceChannel)) #_[canonical={default="property",base=["available channels"]}] #[org_schema_type="ServiceChannel"], - out providerMobility: String #_[canonical={default="property",base=["provider mobility"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Service_providerMobility"], - out aggregateRating: { - ratingCount: Number #_[canonical={default="property",base=["rating count"]}] #_[counted_object=["ratings"]] #[org_schema_type="Integer"], - reviewCount: Number #_[canonical={default="property",base=["review count"]}] #_[counted_object=["reviews"]] #[org_schema_type="Integer"], - ratingValue: Number #_[canonical={passive_verb=["rated # star"],base=["rating", "overall rating", "average rating", "customer rating", "review rating"],adjective=["# star"],adjective_argmax=["top-rated", "best"],projection_pronoun=["how"],passive_verb_projection=["rated"]}] #[org_schema_type="Number"] #[min_number=1] #[max_number=5], - ratingExplanation: Array(String) #_[canonical={default="property",base=["rating explanations"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Service_aggregateRating_ratingExplanation"], - reviewAspect: String #_[canonical={default="property",base=["review aspect"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Service_aggregateRating_reviewAspect"], - author: Entity(org.schema.Restaurant:Person) #_[canonical={base=["author"],preposition=["by"],passive_verb=["written by", "authored by", "uploaded by", "submitted by"],verb=["# wrote", "# authored"],base_projection=["author", "creator"],reverse_verb_projection=["wrote", "authored"],passive_verb_projection=["written | by", "authored | by"]}] #[org_schema_type="Person"] - } #_[canonical={default="property",base=["aggregate rating"]}] #[org_schema_type="AggregateRating"], - out offers: Entity(org.schema.Restaurant:Offer) #_[canonical={default="verb",verb=["offers"],base=["offers"]}] #[org_schema_type="Offer"], - out award: Array(String) #_[canonical={base=["awards", "prize"],reverse_property=["winner of #", "recipient of #", "# winner", "# awardee", "# recipient", "# holder"],verb=["has the award #", "has received the # award", "won the award for #", "won the # award", "received the # award", "received the #", "won the #", "won #", "holds the award for #", "holds the # award"],base_projection=["award", "prize"],verb_projection=["win", "hold"],passive_verb=["received"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Service_award"], - out category: Enum(AnaerobicActivity,LeisureTimeActivity,Flexibility,Balance,OccupationalActivity,StrengthTraining,AerobicActivity) #_[canonical={default="property",base=["category"]}] #[org_schema_type="PhysicalActivityCategory"], - out broker: Array(Entity(org.schema.Restaurant:Organization)) #_[canonical={default="property",base=["brokers"]}] #[org_schema_type="Organization"], - out serviceOutput: Entity(org.schema.Restaurant:Thing) #_[canonical={default="property",base=["service output"]}] #[org_schema_type="Thing"], - out provider: Entity(org.schema.Restaurant:Person) #_[canonical={default="property",base=["provider"],reverse_verb=["providered"]}] #[org_schema_type="Person"], - out audience: Array(Entity(org.schema.Restaurant:Audience)) #_[canonical={default="property",base=["audiences"]}] #[org_schema_type="Audience"], - out hasOfferCatalog: Array(Entity(org.schema.Restaurant:Offer)) #_[canonical={default="property",base=["offer catalog"]}] #[org_schema_type="OfferCatalog"], - out review: Array(Entity(org.schema.Restaurant:Review)) #_[canonical={default="property",base=["reviews"]}] #[org_schema_type="Review"], - out termsOfService: Entity(tt:url) #_[canonical={default="property",base=["terms of service"]}] #[org_schema_type="URL"], - out serviceType: Enum(OneTimePayments,PaidLeave,BasicIncome,HealthCare,ParentalSupport,UnemploymentSupport,DisabilitySupport,BusinessSupport) #_[canonical={default="property",base=["service type"]}] #[org_schema_type="GovernmentBenefitsType"], - out slogan: Array(String) #_[canonical={default="property",base=["slogans"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Service_slogan"], - out isSimilarTo: Array(Entity(org.schema.Restaurant:Service)) #_[canonical={default="passive_verb",passive_verb=["similar to"],base=["is similar to"]}] #[org_schema_type="Service"], - out logo: Entity(tt:picture) #_[canonical={default="property",base=["logo"]}] #[org_schema_type="URL"], - out isRelatedTo: Array(Entity(org.schema.Restaurant:Product)) #_[canonical={default="passive_verb",passive_verb=["related to"],base=["is related to"]}] #[org_schema_type="Product"]) - #_[canonical="service"] - #_[confirmation="service"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query BroadcastService extends Service(out id: Entity(org.schema.Restaurant:BroadcastService) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:BroadcastService_name"], - out parentService: Array(Entity(org.schema.Restaurant:BroadcastService)) #_[canonical={default="property",base=["parent services"]}] #[org_schema_type="BroadcastService"], - out broadcastDisplayName: String #_[canonical={default="property",base=["broadcast display name"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:BroadcastService_broadcastDisplayName"], - out hasBroadcastChannel: Array(Entity(org.schema.Restaurant:BroadcastChannel)) #_[canonical={default="property",base=["broadcast channel"]}] #[org_schema_type="BroadcastChannel"], - out broadcastFrequency: String #_[canonical={default="property",base=["broadcast frequency"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:BroadcastService_broadcastFrequency"], - out inLanguage: Entity(tt:iso_lang_code) #_[canonical={base=["language"],adjective=["#"],preposition=["in"],passive_verb=["written in #"],reverse_property=["# version of"],base_projection=["language"],preposition_projection=["in"],passive_verb_projection=["written | in"]}] #[org_schema_type="Text"], - out broadcaster: Entity(org.schema.Restaurant:Organization) #_[canonical={default="property",base=["broadcaster"]}] #[org_schema_type="Organization"], - out broadcastTimezone: String #_[canonical={default="property",base=["broadcast timezone"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:BroadcastService_broadcastTimezone"], - out videoFormat: String #_[canonical={default="property",base=["video format"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:BroadcastService_videoFormat"], - out broadcastAffiliateOf: Entity(org.schema.Restaurant:Organization) #_[canonical={default="reverse_property",reverse_property=["broadcast affiliate of", "# broadcast affiliate", "# 's broadcast affiliate"],base=["broadcast affiliate of"]}] #[org_schema_type="Organization"], - out callSign: Array(String) #_[canonical={default="property",base=["call sign"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:BroadcastService_callSign"]) - #_[canonical="broadcast service"] - #_[confirmation="broadcast service"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query EducationalOccupationalProgram extends Intangible(out id: Entity(org.schema.Restaurant:EducationalOccupationalProgram) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:EducationalOccupationalProgram_name"], - out timeToComplete: Measure(ms) #_[canonical={default="property",base=["time to complete"]}] #[org_schema_type="Duration"], - out trainingSalary: { - currency: String #_[canonical={default="property",base=["currency"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:EducationalOccupationalProgram_trainingSalary_currency"], - percentile25: Number #_[canonical={base=["percentile25"]}] #[org_schema_type="Number"], - median: Number #_[canonical={default="passive_verb",passive_verb=["median"],base=["median"]}] #[org_schema_type="Number"], - percentile75: Number #_[canonical={base=["percentile75"]}] #[org_schema_type="Number"], - percentile90: Number #_[canonical={base=["percentile90"]}] #[org_schema_type="Number"], - percentile10: Number #_[canonical={base=["percentile10"]}] #[org_schema_type="Number"], - duration: Measure(ms) #_[canonical={base=["duration", "length"],adjective=["# long"],adjective_argmax=["longest"],adjective_argmin=["shortest"]}] #[org_schema_type="Duration"] - } #_[canonical={default="property",base=["training salary"]}] #[org_schema_type="MonetaryAmountDistribution"], - out offers: Entity(org.schema.Restaurant:Offer) #_[canonical={default="verb",verb=["offers"],base=["offers"]}] #[org_schema_type="Offer"], - out educationalCredentialAwarded: Array(Entity(tt:url)) #_[canonical={default="passive_verb",passive_verb=["educational credential awarded"],base=["educational credential awarded"]}] #[org_schema_type="URL"], - out educationalProgramMode: Entity(tt:url) #_[canonical={default="property",base=["educational program mode"]}] #[org_schema_type="URL"], - out programType: String #_[canonical={default="property",base=["program type"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:EducationalOccupationalProgram_programType"], - out applicationStartDate: Date #_[canonical={default="property",base=["application start date"]}] #[org_schema_type="Date"], - out provider: Entity(org.schema.Restaurant:Person) #_[canonical={default="property",base=["provider"],reverse_verb=["providered"]}] #[org_schema_type="Person"], - out typicalCreditsPerTerm: Number #_[canonical={default="property",base=["typical credits per term"]}] #[org_schema_type="Integer"], - out endDate: Date #_[canonical={default="property",base=["end date"]}] #[org_schema_type="Date"], - out applicationDeadline: Date #_[canonical={default="property",base=["application deadline"]}] #[org_schema_type="Date"], - out timeOfDay: String #_[canonical={default="property",base=["time of day"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:EducationalOccupationalProgram_timeOfDay"], - out financialAidEligible: Array(String) #_[canonical={default="passive_verb",passive_verb=["financial aid eligible"],base=["financial aid eligible"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:EducationalOccupationalProgram_financialAidEligible"], - out numberOfCredits: Number #_[canonical={default="property",base=["number of credits"]}] #_[counted_object=["credits"]] #[org_schema_type="Integer"], - out salaryUponCompletion: { - currency: String #_[canonical={default="property",base=["currency"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:EducationalOccupationalProgram_salaryUponCompletion_currency"], - percentile25: Number #_[canonical={base=["percentile25"]}] #[org_schema_type="Number"], - median: Number #_[canonical={default="passive_verb",passive_verb=["median"],base=["median"]}] #[org_schema_type="Number"], - percentile75: Number #_[canonical={base=["percentile75"]}] #[org_schema_type="Number"], - percentile90: Number #_[canonical={base=["percentile90"]}] #[org_schema_type="Number"], - percentile10: Number #_[canonical={base=["percentile10"]}] #[org_schema_type="Number"], - duration: Measure(ms) #_[canonical={base=["duration", "length"],adjective=["# long"],adjective_argmax=["longest"],adjective_argmin=["shortest"]}] #[org_schema_type="Duration"] - } #_[canonical={default="property",base=["salary upon completion"]}] #[org_schema_type="MonetaryAmountDistribution"], - out programPrerequisites: String #_[canonical={default="property",base=["program prerequisites"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:EducationalOccupationalProgram_programPrerequisites"], - out dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - out termDuration: Measure(ms) #_[canonical={default="property",base=["term duration"]}] #[org_schema_type="Duration"], - out maximumEnrollment: Number #_[canonical={default="property",base=["maximum enrollment"]}] #[org_schema_type="Integer"], - out occupationalCategory: Array(String) #_[canonical={default="property",base=["occupational categories"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:EducationalOccupationalProgram_occupationalCategory"], - out startDate: Date #_[canonical={default="property",base=["start date"]}] #[org_schema_type="Date"], - out termsPerYear: Number #_[canonical={default="property",base=["terms per year"]}] #[org_schema_type="Number"], - out occupationalCredentialAwarded: Array(Entity(tt:url)) #_[canonical={default="passive_verb",passive_verb=["occupational credential awarded"],base=["occupational credential awarded"]}] #[org_schema_type="URL"]) - #_[canonical="educational occupational program"] - #_[confirmation="educational occupational program"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query UserInteraction extends Event(out id: Entity(org.schema.Restaurant:UserInteraction) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:UserInteraction_name"]) - #_[canonical="user interaction"] - #_[confirmation="user interaction"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query HealthPlanNetwork extends Intangible(out id: Entity(org.schema.Restaurant:HealthPlanNetwork) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:HealthPlanNetwork_name"], - out healthPlanCostSharing: Boolean #_[canonical={default="property",property_true=["health plan cost sharing"],base=["health plan cost sharing"]}] #[org_schema_type="Boolean"], - out healthPlanNetworkTier: String #_[canonical={default="property",base=["health plan network tier"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:HealthPlanNetwork_healthPlanNetworkTier"], - out healthPlanNetworkId: String #_[canonical={default="property",base=["health plan network id"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:HealthPlanNetwork_healthPlanNetworkId"]) - #_[canonical="health plan network"] - #_[confirmation="health plan network"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query HealthPlanFormulary extends Intangible(out id: Entity(org.schema.Restaurant:HealthPlanFormulary) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:HealthPlanFormulary_name"], - out healthPlanCostSharing: Boolean #_[canonical={default="property",property_true=["health plan cost sharing"],base=["health plan cost sharing"]}] #[org_schema_type="Boolean"], - out offersPrescriptionByMail: Boolean #_[canonical={default="verb",verb_true=["offers prescription by mail"],base=["offers prescription by mail"]}] #[org_schema_type="Boolean"], - out healthPlanDrugTier: String #_[canonical={default="property",base=["health plan drug tier"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:HealthPlanFormulary_healthPlanDrugTier"]) - #_[canonical="health plan formulary"] - #_[confirmation="health plan formulary"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MedicalProcedure extends MedicalEntity(out id: Entity(org.schema.Restaurant:MedicalProcedure) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MedicalProcedure_name"], - out howPerformed: String #_[canonical={default="property",base=["how performed"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:MedicalProcedure_howPerformed"], - out preparation: String #_[canonical={default="property",base=["preparation"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:MedicalProcedure_preparation"], - out status: Enum(Terminated,ActiveNotRecruiting,Withdrawn,EnrollingByInvitation,NotYetRecruiting,Recruiting,ResultsNotAvailable,Completed,ResultsAvailable,Suspended) #_[canonical={default="property",base=["status"]}] #[org_schema_type="MedicalStudyStatus"], - out bodyLocation: String #_[canonical={default="property",base=["body location"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:MedicalProcedure_bodyLocation"], - out followup: String #_[canonical={default="passive_verb",passive_verb=["followup"],base=["followup"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:MedicalProcedure_followup"], - out procedureType: Enum(NoninvasiveProcedure,PercutaneousProcedure) #_[canonical={default="property",base=["procedure type"]}] #[org_schema_type="MedicalProcedureType"]) - #_[canonical="medical procedure"] - #_[confirmation="medical procedure"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query TherapeuticProcedure extends MedicalProcedure(out id: Entity(org.schema.Restaurant:TherapeuticProcedure) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:TherapeuticProcedure_name"], - out adverseOutcome: Array(Entity(org.schema.Restaurant:MedicalEntity)) #_[canonical={default="property",base=["adverse outcomes"]}] #[org_schema_type="MedicalEntity"], - out drug: Entity(org.schema.Restaurant:Drug) #_[canonical={default="property",base=["drug"]}] #[org_schema_type="Drug"], - out doseSchedule: Array(Entity(org.schema.Restaurant:DoseSchedule)) #_[canonical={default="property",base=["dose schedules"]}] #[org_schema_type="DoseSchedule"]) - #_[canonical="therapeutic procedure"] - #_[confirmation="therapeutic procedure"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MedicalTherapy extends TherapeuticProcedure(out id: Entity(org.schema.Restaurant:MedicalTherapy) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MedicalTherapy_name"], - out duplicateTherapy: Array(Entity(org.schema.Restaurant:MedicalTherapy)) #_[canonical={default="property",base=["duplicate therapy"]}] #[org_schema_type="MedicalTherapy"], - out seriousAdverseOutcome: Array(Entity(org.schema.Restaurant:MedicalEntity)) #_[canonical={default="property",base=["serious adverse outcomes"]}] #[org_schema_type="MedicalEntity"], - out contraindication: Array(String) #_[canonical={default="passive_verb",passive_verb=["contraindication"],base=["contraindication"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:MedicalTherapy_contraindication"]) - #_[canonical="medical therapy"] - #_[confirmation="medical therapy"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Order extends Intangible(out id: Entity(org.schema.Restaurant:Order) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Order_name"], - out billingAddress: { - streetAddress: String #_[canonical={base=["street"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Order_billingAddress_streetAddress"], - postOfficeBoxNumber: String #_[canonical={default="property",base=["post office box number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Order_billingAddress_postOfficeBoxNumber"], - postalCode: String #_[canonical={default="property",base=["postal code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Order_billingAddress_postalCode"], - addressLocality: String #_[canonical={base=["city"],preposition=["in #", "from #"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Order_billingAddress_addressLocality"], - addressCountry: Entity(tt:country) #_[canonical={preposition=["in #", "from #"],base=["country"]}] #[org_schema_type="Text"], - addressRegion: Entity(tt:us_state) #_[canonical={preposition=["in #", "from #"],base=["state"]}] #[org_schema_type="Text"], - hoursAvailable: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["hours available"]}] #[org_schema_type="OpeningHoursSpecification"], - contactOption: Enum(TollFree,HearingImpairedSupported) #_[canonical={default="property",base=["contact option"]}] #[org_schema_type="ContactPointOption"], - productSupported: String #_[canonical={default="property",base=["product supported"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Order_billingAddress_productSupported"], - faxNumber: Entity(tt:phone_number) #_[canonical={default="property",base=["fax number"]}] #[org_schema_type="Text"] #[filterable=false], - availableLanguage: Array(String) #_[canonical={default="property",base=["available languages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Order_billingAddress_availableLanguage"], - telephone: Entity(tt:phone_number) #_[canonical={base=["telephone", "phone number"]}] #[org_schema_type="Text"] #[filterable=false], - email: Entity(tt:email_address) #_[canonical={default="property",base=["email"]}] #[org_schema_type="Text"] #[filterable=false], - contactType: Array(String) #_[canonical={default="property",base=["contact types"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Order_billingAddress_contactType"] - } #_[canonical={default="property",base=["billing address"]}] #[org_schema_type="PostalAddress"], - out partOfInvoice: Entity(org.schema.Restaurant:Invoice) #_[canonical={default="property",base=["part of invoice"]}] #[org_schema_type="Invoice"], - out confirmationNumber: Array(String) #_[canonical={default="property",base=["confirmation numbers"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Order_confirmationNumber"], - out customer: Entity(org.schema.Restaurant:Organization) #_[canonical={default="property",base=["customer"]}] #[org_schema_type="Organization"], - out broker: Array(Entity(org.schema.Restaurant:Organization)) #_[canonical={default="property",base=["brokers"]}] #[org_schema_type="Organization"], - out orderDate: Date #_[canonical={default="property",base=["order date"]}] #[org_schema_type="Date"], - out orderNumber: String #_[canonical={default="property",base=["order number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Order_orderNumber"], - out paymentUrl: Entity(tt:url) #_[canonical={default="property",base=["payment url"]}] #[org_schema_type="URL"], - out orderStatus: Enum(OrderProblem,OrderDelivered,OrderReturned,OrderProcessing,OrderPickupAvailable,OrderCancelled,OrderPaymentDue,OrderInTransit) #_[canonical={default="property",base=["order status"]}] #[org_schema_type="OrderStatus"], - out seller: Array(Entity(org.schema.Restaurant:Organization)) #_[canonical={default="property",base=["sellers"]}] #[org_schema_type="Organization"], - out acceptedOffer: Entity(org.schema.Restaurant:Offer) #_[canonical={default="verb",verb=["accepted # offer"],base=["offer"]}] #[org_schema_type="Offer"], - out isGift: Boolean #_[canonical={default="reverse_property",reverse_property_true=["gift"],base=["is gift"]}] #[org_schema_type="Boolean"], - out discountCurrency: String #_[canonical={default="property",base=["discount currency"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Order_discountCurrency"], - out paymentDueDate: Date #_[canonical={default="property",base=["payment due date"]}] #[org_schema_type="DateTime"], - out discountCode: String #_[canonical={default="property",base=["discount code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Order_discountCode"], - out paymentMethod: Entity(org.schema.Restaurant:PaymentMethod) #_[canonical={default="property",base=["payment method"]}] #[org_schema_type="PaymentMethod"], - out paymentMethodId: Array(String) #_[canonical={default="property",base=["payment method id"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Order_paymentMethodId"], - out discount: Number #_[canonical={default="property",base=["discount"]}] #[org_schema_type="Number"], - out orderDelivery: Entity(org.schema.Restaurant:ParcelDelivery) #_[canonical={default="property",base=["order delivery"]}] #[org_schema_type="ParcelDelivery"], - out orderedItem: Entity(org.schema.Restaurant:Product) #_[canonical={default="passive_verb",passive_verb=["ordered item"],base=["ordered item"]}] #[org_schema_type="Product"]) - #_[canonical="order"] - #_[confirmation="order"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Vehicle extends Product(out id: Entity(org.schema.Restaurant:Vehicle) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Vehicle_name"], - out vehicleConfiguration: Array(String) #_[canonical={default="property",base=["vehicle configurations"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Vehicle_vehicleConfiguration"], - out payload: Number #_[canonical={default="passive_verb",passive_verb=["payload"],base=["payload"]}] #[org_schema_type="QuantitativeValue"], - out vehicleIdentificationNumber: String #_[canonical={default="property",base=["vehicle identification number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Vehicle_vehicleIdentificationNumber"], - out tongueWeight: Number #_[canonical={default="property",base=["tongue weight"]}] #[org_schema_type="QuantitativeValue"], - out fuelConsumption: Number #_[canonical={default="property",base=["fuel consumption"]}] #[org_schema_type="QuantitativeValue"], - out modelDate: Date #_[canonical={default="property",base=["model date"]}] #[org_schema_type="Date"], - out trailerWeight: Number #_[canonical={default="property",base=["trailer weight"]}] #[org_schema_type="QuantitativeValue"], - out numberOfPreviousOwners: Number #_[canonical={default="property",base=["number of previous owners"]}] #_[counted_object=["previous owners"]] #[org_schema_type="Number"], - out fuelEfficiency: Number #_[canonical={default="property",base=["fuel efficiency"]}] #[org_schema_type="QuantitativeValue"], - out fuelType: Entity(tt:url) #_[canonical={default="property",base=["fuel type"]}] #[org_schema_type="URL"], - out mileageFromOdometer: Number #_[canonical={default="property",base=["mileage from odometer"]}] #[org_schema_type="QuantitativeValue"], - out numberOfForwardGears: Number #_[canonical={default="property",base=["number of forward gears"]}] #_[counted_object=["forward gears"]] #[org_schema_type="Number"], - out cargoVolume: Number #_[canonical={default="property",base=["cargo volume"]}] #[org_schema_type="QuantitativeValue"], - out vehicleInteriorColor: String #_[canonical={default="property",base=["vehicle interior color"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Vehicle_vehicleInteriorColor"], - out vehicleSpecialUsage: Enum(RentalVehicleUsage,TaxiVehicleUsage,DrivingSchoolVehicleUsage) #_[canonical={default="property",base=["vehicle special usage"]}] #[org_schema_type="CarUsageType"], - out vehicleEngine: { - engineDisplacement: Number #_[canonical={default="property",base=["engine displacement"]}] #[org_schema_type="QuantitativeValue"], - engineType: Entity(tt:url) #_[canonical={default="property",base=["engine type"]}] #[org_schema_type="URL"], - fuelType: Entity(tt:url) #_[canonical={default="property",base=["fuel type"]}] #[org_schema_type="URL"], - torque: Number #_[canonical={default="property",base=["torque"]}] #[org_schema_type="QuantitativeValue"], - enginePower: Number #_[canonical={default="property",base=["engine power"]}] #[org_schema_type="QuantitativeValue"] - } #_[canonical={default="property",base=["vehicle engine"]}] #[org_schema_type="EngineSpecification"], - out vehicleModelDate: Date #_[canonical={default="property",base=["vehicle model date"]}] #[org_schema_type="Date"], - out accelerationTime: Number #_[canonical={default="property",base=["acceleration time"]}] #[org_schema_type="QuantitativeValue"], - out numberOfDoors: Number #_[canonical={default="property",base=["number of doors"]}] #_[counted_object=["doors"]] #[org_schema_type="QuantitativeValue"], - out knownVehicleDamages: Array(String) #_[canonical={default="passive_verb",passive_verb=["known vehicle damages"],base=["known vehicle damages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Vehicle_knownVehicleDamages"], - out dateVehicleFirstRegistered: Date #_[canonical={default="property",base=["date vehicle first registered"]}] #[org_schema_type="Date"], - out vehicleTransmission: Entity(tt:url) #_[canonical={default="property",base=["vehicle transmission"]}] #[org_schema_type="URL"], - out purchaseDate: Date #_[canonical={default="property",base=["purchase date"]}] #[org_schema_type="Date"], - out speed: Number #_[canonical={default="property",base=["speed"]}] #[org_schema_type="QuantitativeValue"], - out steeringPosition: Enum(RightHandDriving,LeftHandDriving) #_[canonical={default="property",base=["steering position"]}] #[org_schema_type="SteeringPositionValue"], - out vehicleSeatingCapacity: Number #_[canonical={default="property",base=["vehicle seating capacity"]}] #[org_schema_type="QuantitativeValue"], - out driveWheelConfiguration: Enum(FrontWheelDriveConfiguration,FourWheelDriveConfiguration,AllWheelDriveConfiguration,RearWheelDriveConfiguration) #_[canonical={default="property",base=["drive wheel configuration"]}] #[org_schema_type="DriveWheelConfigurationValue"], - out seatingCapacity: Number #_[canonical={default="property",base=["seating capacity"]}] #[org_schema_type="Number"], - out productionDate: Date #_[canonical={default="property",base=["production date"]}] #[org_schema_type="Date"], - out meetsEmissionStandard: Entity(tt:url) #_[canonical={default="verb",verb=["meets emission standard"],base=["meets emission standard"]}] #[org_schema_type="URL"], - out numberOfAxles: Number #_[canonical={default="property",base=["number of axles"]}] #_[counted_object=["axles"]] #[org_schema_type="QuantitativeValue"], - out vehicleInteriorType: String #_[canonical={default="property",base=["vehicle interior type"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Vehicle_vehicleInteriorType"], - out numberOfAirbags: Number #_[canonical={default="property",base=["number of airbags"]}] #_[counted_object=["airbags"]] #[org_schema_type="Number"], - out wheelbase: Number #_[canonical={default="property",base=["wheelbase"]}] #[org_schema_type="QuantitativeValue"], - out emissionsCO2: Number #_[canonical={base=["emissions co2"]}] #[org_schema_type="Number"], - out weightTotal: Number #_[canonical={default="property",base=["weight total"]}] #[org_schema_type="QuantitativeValue"], - out bodyType: Entity(tt:url) #_[canonical={default="property",base=["body type"]}] #[org_schema_type="URL"], - out fuelCapacity: Number #_[canonical={default="property",base=["fuel capacity"]}] #[org_schema_type="QuantitativeValue"], - out callSign: Array(String) #_[canonical={default="property",base=["call sign"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Vehicle_callSign"]) - #_[canonical="vehicle"] - #_[confirmation="vehicle"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query LocalBusiness extends Organization, Place(out id: Entity(org.schema.Restaurant:LocalBusiness) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:LocalBusiness_name"], - out priceRange: Enum(cheap,moderate,expensive,luxury) #_[canonical={base=["price range"],adjective=["#"]}] #[org_schema_type="Text"], - out openingHours: RecurrentTimeSpecification #_[canonical={verb=["opens at", "opens on"],verb_projection=["open", "close"]}] #[org_schema_type="Text"], - out currenciesAccepted: String #_[canonical={default="property",base=["currencies accepted"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:LocalBusiness_currenciesAccepted"], - out paymentAccepted: String #_[canonical={default="property",base=["payment accepted"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:LocalBusiness_paymentAccepted"]) - #_[canonical="local business"] - #_[confirmation="local business"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Store extends LocalBusiness(out id: Entity(org.schema.Restaurant:Store) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Store_name"]) - #_[canonical="store"] - #_[confirmation="store"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query BikeStore extends Store(out id: Entity(org.schema.Restaurant:BikeStore) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:BikeStore_name"]) - #_[canonical="bike store"] - #_[confirmation="bike store"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query NewsMediaOrganization extends Organization(out id: Entity(org.schema.Restaurant:NewsMediaOrganization) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:NewsMediaOrganization_name"], - out masthead: Entity(tt:url) #_[canonical={default="passive_verb",passive_verb=["masthead"],base=["masthead"]}] #[org_schema_type="URL"], - out correctionsPolicy: Entity(tt:url) #_[canonical={default="property",base=["corrections policy"]}] #[org_schema_type="URL"], - out diversityPolicy: Entity(tt:url) #_[canonical={default="property",base=["diversity policy"]}] #[org_schema_type="URL"], - out ownershipFundingInfo: Entity(tt:url) #_[canonical={default="property",base=["ownership funding info"]}] #[org_schema_type="URL"], - out missionCoveragePrioritiesPolicy: Entity(tt:url) #_[canonical={default="property",base=["mission coverage priorities policy"]}] #[org_schema_type="URL"], - out actionableFeedbackPolicy: Entity(tt:url) #_[canonical={default="property",base=["actionable feedback policy"]}] #[org_schema_type="URL"], - out unnamedSourcesPolicy: Entity(tt:url) #_[canonical={default="property",base=["unnamed sources policy"]}] #[org_schema_type="URL"], - out verificationFactCheckingPolicy: Entity(tt:url) #_[canonical={default="property",base=["verification fact checking policy"]}] #[org_schema_type="URL"], - out diversityStaffingReport: Entity(tt:url) #_[canonical={default="property",base=["diversity staffing report"]}] #[org_schema_type="URL"], - out noBylinesPolicy: Entity(tt:url) #_[canonical={default="property",base=["no bylines policy"]}] #[org_schema_type="URL"], - out ethicsPolicy: Entity(tt:url) #_[canonical={default="property",base=["ethics policy"]}] #[org_schema_type="URL"]) - #_[canonical="news media organization"] - #_[confirmation="news media organization"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query SoftwareSourceCode extends CreativeWork(out id: Entity(org.schema.Restaurant:SoftwareSourceCode) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:SoftwareSourceCode_name"], - out codeRepository: Entity(tt:url) #_[canonical={default="property",base=["code repository"]}] #[org_schema_type="URL"], - out programmingLanguage: String #_[canonical={default="property",base=["programming language"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:SoftwareSourceCode_programmingLanguage"], - out codeSampleType: String #_[canonical={default="property",base=["code sample type"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:SoftwareSourceCode_codeSampleType"], - out runtimePlatform: String #_[canonical={default="property",base=["runtime platform"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:SoftwareSourceCode_runtimePlatform"], - out targetProduct: Entity(org.schema.Restaurant:SoftwareApplication) #_[canonical={default="property",base=["target product"]}] #[org_schema_type="SoftwareApplication"]) - #_[canonical="software source code"] - #_[confirmation="software source code"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query CivicStructure extends Place(out id: Entity(org.schema.Restaurant:CivicStructure) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:CivicStructure_name"], - out openingHours: RecurrentTimeSpecification #_[canonical={verb=["opens at", "opens on"],verb_projection=["open", "close"]}] #[org_schema_type="Text"]) - #_[canonical="civic structure"] - #_[confirmation="civic structure"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query PlaceOfWorship extends CivicStructure(out id: Entity(org.schema.Restaurant:PlaceOfWorship) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:PlaceOfWorship_name"]) - #_[canonical="place of worship"] - #_[confirmation="place of worship"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query BuddhistTemple extends PlaceOfWorship(out id: Entity(org.schema.Restaurant:BuddhistTemple) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:BuddhistTemple_name"]) - #_[canonical="buddhist temple"] - #_[confirmation="buddhist temple"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query WorkBasedProgram extends EducationalOccupationalProgram(out id: Entity(org.schema.Restaurant:WorkBasedProgram) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:WorkBasedProgram_name"], - out trainingSalary: { - currency: String #_[canonical={default="property",base=["currency"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:WorkBasedProgram_trainingSalary_currency"], - percentile25: Number #_[canonical={base=["percentile25"]}] #[org_schema_type="Number"], - median: Number #_[canonical={default="passive_verb",passive_verb=["median"],base=["median"]}] #[org_schema_type="Number"], - percentile75: Number #_[canonical={base=["percentile75"]}] #[org_schema_type="Number"], - percentile90: Number #_[canonical={base=["percentile90"]}] #[org_schema_type="Number"], - percentile10: Number #_[canonical={base=["percentile10"]}] #[org_schema_type="Number"], - duration: Measure(ms) #_[canonical={base=["duration", "length"],adjective=["# long"],adjective_argmax=["longest"],adjective_argmin=["shortest"]}] #[org_schema_type="Duration"] - } #_[canonical={default="property",base=["training salary"]}] #[org_schema_type="MonetaryAmountDistribution"], - out occupationalCategory: Array(String) #_[canonical={default="property",base=["occupational categories"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:WorkBasedProgram_occupationalCategory"]) - #_[canonical="work based program"] - #_[confirmation="work based program"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MenuItem extends Intangible(out id: Entity(org.schema.Restaurant:MenuItem) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MenuItem_name"], - out menuAddOn: Entity(org.schema.Restaurant:MenuItem) #_[canonical={default="property",base=["menu add on"]}] #[org_schema_type="MenuItem"], - out offers: Entity(org.schema.Restaurant:Offer) #_[canonical={default="verb",verb=["offers"],base=["offers"]}] #[org_schema_type="Offer"], - out suitableForDiet: Enum(HinduDiet,GlutenFreeDiet,HalalDiet,VeganDiet,VegetarianDiet,KosherDiet,DiabeticDiet,LowSaltDiet,LowFatDiet,LowLactoseDiet,LowCalorieDiet) #_[canonical={default="property",base=["suitable for diet"]}] #[org_schema_type="RestrictedDiet"], - out nutrition: { - unsaturatedFatContent: Measure(kg) #_[canonical={default="verb",verb=["contains #unsaturated_fat"],base=["unsaturated fat content", "unsaturated fat", "unsaturated fat amount"]}] #[org_schema_type="Mass"], - sugarContent: Measure(kg) #_[canonical={default="verb",verb=["contains #sugar"],base=["sugar content", "sugar", "sugar amount"]}] #[org_schema_type="Mass"], - fatContent: Measure(kg) #_[canonical={default="verb",verb=["contains #fat"],base=["fat content", "fat", "fat amount"]}] #[org_schema_type="Mass"], - fiberContent: Measure(kg) #_[canonical={default="verb",verb=["contains #fiber"],base=["fiber content", "fiber", "fiber amount"]}] #[org_schema_type="Mass"], - calories: Measure(kcal) #_[canonical={default="property",base=["calories"]}] #[org_schema_type="Energy"], - servingSize: String #_[canonical={default="passive_verb",passive_verb=["serving size"],base=["serving size"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:MenuItem_nutrition_servingSize"], - carbohydrateContent: Measure(kg) #_[canonical={default="verb",verb=["contains #carbohydrate"],base=["carbohydrate content", "carbohydrate", "carbohydrate amount"]}] #[org_schema_type="Mass"], - proteinContent: Measure(kg) #_[canonical={default="verb",verb=["contains #protein"],base=["protein content", "protein", "protein amount"]}] #[org_schema_type="Mass"], - sodiumContent: Measure(kg) #_[canonical={default="verb",verb=["contains #sodium"],base=["sodium content", "sodium", "sodium amount"]}] #[org_schema_type="Mass"], - saturatedFatContent: Measure(kg) #_[canonical={base=["saturated fat content", "saturated fat amount", "saturated fat", "trans fat"]}] #[org_schema_type="Mass"], - transFatContent: Measure(kg) #_[canonical={default="verb",verb=["contains #trans_fat"],base=["trans fat content", "trans fat", "trans fat amount"]}] #[org_schema_type="Mass"], - cholesterolContent: Measure(kg) #_[canonical={default="verb",verb=["contains #cholesterol"],base=["cholesterol content", "cholesterol", "cholesterol amount"]}] #[org_schema_type="Mass"] - } #_[canonical={default="property",base=["nutrition"]}] #[org_schema_type="NutritionInformation"]) - #_[canonical="menu item"] - #_[confirmation="menu item"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query PronounceableText extends Text(out id: Entity(org.schema.Restaurant:PronounceableText) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:PronounceableText_name"], - out phoneticText: String #_[canonical={default="property",base=["phonetic text"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:PronounceableText_phoneticText"], - out textValue: String #_[canonical={default="property",base=["text"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:PronounceableText_textValue"], - out inLanguage: Entity(tt:iso_lang_code) #_[canonical={base=["language"],adjective=["#"],preposition=["in"],passive_verb=["written in #"],reverse_property=["# version of"],base_projection=["language"],preposition_projection=["in"],passive_verb_projection=["written | in"]}] #[org_schema_type="Text"], - out speechToTextMarkup: String #_[canonical={default="property",base=["speech to text markup"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:PronounceableText_speechToTextMarkup"]) - #_[canonical="pronounceable text"] - #_[confirmation="pronounceable text"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MedicalIndication extends MedicalEntity(out id: Entity(org.schema.Restaurant:MedicalIndication) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MedicalIndication_name"]) - #_[canonical="medical indication"] - #_[confirmation="medical indication"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query PublicToilet extends CivicStructure(out id: Entity(org.schema.Restaurant:PublicToilet) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:PublicToilet_name"]) - #_[canonical="public toilet"] - #_[confirmation="public toilet"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Aquarium extends CivicStructure(out id: Entity(org.schema.Restaurant:Aquarium) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Aquarium_name"]) - #_[canonical="aquarium"] - #_[confirmation="aquarium"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query GeospatialGeometry extends Intangible(out id: Entity(org.schema.Restaurant:GeospatialGeometry) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:GeospatialGeometry_name"], - out geoCrosses: Entity(org.schema.Restaurant:GeospatialGeometry) #_[canonical={default="property",base=["geo crosses"]}] #[org_schema_type="GeospatialGeometry"], - out geoCoveredBy: Entity(org.schema.Restaurant:GeospatialGeometry) #_[canonical={default="property",base=["geo covered by"]}] #[org_schema_type="GeospatialGeometry"], - out geoWithin: Entity(org.schema.Restaurant:Place) #_[canonical={default="property",base=["geo within"]}] #[org_schema_type="Place"], - out geoContains: Entity(org.schema.Restaurant:GeospatialGeometry) #_[canonical={default="property",base=["geo contains"]}] #[org_schema_type="GeospatialGeometry"], - out geoOverlaps: Entity(org.schema.Restaurant:Place) #_[canonical={default="property",base=["geo overlaps"]}] #[org_schema_type="Place"], - out geoTouches: Entity(org.schema.Restaurant:GeospatialGeometry) #_[canonical={default="property",base=["geo touches"]}] #[org_schema_type="GeospatialGeometry"], - out geoIntersects: Entity(org.schema.Restaurant:Place) #_[canonical={default="property",base=["geo intersects"]}] #[org_schema_type="Place"], - out geoDisjoint: Entity(org.schema.Restaurant:GeospatialGeometry) #_[canonical={default="property",base=["geo disjoint"]}] #[org_schema_type="GeospatialGeometry"], - out geoCovers: Entity(org.schema.Restaurant:GeospatialGeometry) #_[canonical={default="property",base=["geo covers"]}] #[org_schema_type="GeospatialGeometry"], - out geoEquals: Entity(org.schema.Restaurant:GeospatialGeometry) #_[canonical={default="property",base=["geo equals"]}] #[org_schema_type="GeospatialGeometry"]) - #_[canonical="geospatial geometry"] - #_[confirmation="geospatial geometry"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MedicalStudy extends MedicalEntity(out id: Entity(org.schema.Restaurant:MedicalStudy) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MedicalStudy_name"], - out studyLocation: Entity(org.schema.Restaurant:AdministrativeArea) #_[canonical={default="property",base=["study location"]}] #[org_schema_type="AdministrativeArea"], - out studySubject: Array(Entity(org.schema.Restaurant:MedicalEntity)) #_[canonical={default="property",base=["study subject"]}] #[org_schema_type="MedicalEntity"], - out status: Enum(Terminated,ActiveNotRecruiting,Withdrawn,EnrollingByInvitation,NotYetRecruiting,Recruiting,ResultsNotAvailable,Completed,ResultsAvailable,Suspended) #_[canonical={default="property",base=["status"]}] #[org_schema_type="MedicalStudyStatus"], - out sponsor: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={default="property",base=["sponsors"],reverse_verb=["sponsored"]}] #[org_schema_type="Person"], - out healthCondition: Entity(org.schema.Restaurant:MedicalCondition) #_[canonical={default="property",base=["health condition"]}] #[org_schema_type="MedicalCondition"]) - #_[canonical="medical study"] - #_[confirmation="medical study"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MedicalTest extends MedicalEntity(out id: Entity(org.schema.Restaurant:MedicalTest) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MedicalTest_name"], - out normalRange: Entity(org.schema.Restaurant:MedicalEnumeration) #_[canonical={default="property",base=["normal range"]}] #[org_schema_type="MedicalEnumeration"], - out usesDevice: Entity(org.schema.Restaurant:MedicalDevice) #_[canonical={default="verb",verb=["uses # device"],base=["device"]}] #[org_schema_type="MedicalDevice"], - out usedToDiagnose: Array(Entity(org.schema.Restaurant:MedicalCondition)) #_[canonical={default="passive_verb",passive_verb=["used to diagnose"],base=["used to diagnose"]}] #[org_schema_type="MedicalCondition"], - out affectedBy: Entity(org.schema.Restaurant:Drug) #_[canonical={default="passive_verb",passive_verb=["affected by"],base=["affected by"]}] #[org_schema_type="Drug"], - out signDetected: Array(Entity(org.schema.Restaurant:MedicalSign)) #_[canonical={default="property",base=["sign detected"]}] #[org_schema_type="MedicalSign"]) - #_[canonical="medical test"] - #_[confirmation="medical test"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ParcelDelivery extends Intangible(out id: Entity(org.schema.Restaurant:ParcelDelivery) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ParcelDelivery_name"], - out originAddress: { - streetAddress: String #_[canonical={base=["street"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ParcelDelivery_originAddress_streetAddress"], - postOfficeBoxNumber: String #_[canonical={default="property",base=["post office box number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ParcelDelivery_originAddress_postOfficeBoxNumber"], - postalCode: String #_[canonical={default="property",base=["postal code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ParcelDelivery_originAddress_postalCode"], - addressLocality: String #_[canonical={base=["city"],preposition=["in #", "from #"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ParcelDelivery_originAddress_addressLocality"], - addressCountry: Entity(tt:country) #_[canonical={preposition=["in #", "from #"],base=["country"]}] #[org_schema_type="Text"], - addressRegion: Entity(tt:us_state) #_[canonical={preposition=["in #", "from #"],base=["state"]}] #[org_schema_type="Text"], - hoursAvailable: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["hours available"]}] #[org_schema_type="OpeningHoursSpecification"], - contactOption: Enum(TollFree,HearingImpairedSupported) #_[canonical={default="property",base=["contact option"]}] #[org_schema_type="ContactPointOption"], - productSupported: String #_[canonical={default="property",base=["product supported"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ParcelDelivery_originAddress_productSupported"], - faxNumber: Entity(tt:phone_number) #_[canonical={default="property",base=["fax number"]}] #[org_schema_type="Text"] #[filterable=false], - availableLanguage: Array(String) #_[canonical={default="property",base=["available languages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ParcelDelivery_originAddress_availableLanguage"], - telephone: Entity(tt:phone_number) #_[canonical={base=["telephone", "phone number"]}] #[org_schema_type="Text"] #[filterable=false], - email: Entity(tt:email_address) #_[canonical={default="property",base=["email"]}] #[org_schema_type="Text"] #[filterable=false], - contactType: Array(String) #_[canonical={default="property",base=["contact types"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ParcelDelivery_originAddress_contactType"] - } #_[canonical={default="property",base=["origin address"]}] #[org_schema_type="PostalAddress"], - out itemShipped: Entity(org.schema.Restaurant:Product) #_[canonical={default="property",base=["item shipped"]}] #[org_schema_type="Product"], - out partOfOrder: Entity(org.schema.Restaurant:Order) #_[canonical={default="property",base=["part of order"]}] #[org_schema_type="Order"], - out expectedArrivalFrom: Date #_[canonical={default="passive_verb",passive_verb=["expected arrival from"],base=["expected arrival from"]}] #[org_schema_type="DateTime"], - out deliveryAddress: { - streetAddress: String #_[canonical={base=["street"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ParcelDelivery_deliveryAddress_streetAddress"], - postOfficeBoxNumber: String #_[canonical={default="property",base=["post office box number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ParcelDelivery_deliveryAddress_postOfficeBoxNumber"], - postalCode: String #_[canonical={default="property",base=["postal code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ParcelDelivery_deliveryAddress_postalCode"], - addressLocality: String #_[canonical={base=["city"],preposition=["in #", "from #"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ParcelDelivery_deliveryAddress_addressLocality"], - addressCountry: Entity(tt:country) #_[canonical={preposition=["in #", "from #"],base=["country"]}] #[org_schema_type="Text"], - addressRegion: Entity(tt:us_state) #_[canonical={preposition=["in #", "from #"],base=["state"]}] #[org_schema_type="Text"], - hoursAvailable: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["hours available"]}] #[org_schema_type="OpeningHoursSpecification"], - contactOption: Enum(TollFree,HearingImpairedSupported) #_[canonical={default="property",base=["contact option"]}] #[org_schema_type="ContactPointOption"], - productSupported: String #_[canonical={default="property",base=["product supported"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ParcelDelivery_deliveryAddress_productSupported"], - faxNumber: Entity(tt:phone_number) #_[canonical={default="property",base=["fax number"]}] #[org_schema_type="Text"] #[filterable=false], - availableLanguage: Array(String) #_[canonical={default="property",base=["available languages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ParcelDelivery_deliveryAddress_availableLanguage"], - telephone: Entity(tt:phone_number) #_[canonical={base=["telephone", "phone number"]}] #[org_schema_type="Text"] #[filterable=false], - email: Entity(tt:email_address) #_[canonical={default="property",base=["email"]}] #[org_schema_type="Text"] #[filterable=false], - contactType: Array(String) #_[canonical={default="property",base=["contact types"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ParcelDelivery_deliveryAddress_contactType"] - } #_[canonical={default="property",base=["delivery address"]}] #[org_schema_type="PostalAddress"], - out provider: Entity(org.schema.Restaurant:Person) #_[canonical={default="property",base=["provider"],reverse_verb=["providered"]}] #[org_schema_type="Person"], - out trackingUrl: Entity(tt:url) #_[canonical={default="passive_verb",passive_verb=["tracking url"],base=["tracking url"]}] #[org_schema_type="URL"], - out hasDeliveryMethod: Enum(ParcelService,OnSitePickup,LockerDelivery) #_[canonical={default="property",base=["delivery method"]}] #[org_schema_type="DeliveryMethod"], - out deliveryStatus: Entity(org.schema.Restaurant:DeliveryEvent) #_[canonical={default="property",base=["delivery status"]}] #[org_schema_type="DeliveryEvent"], - out expectedArrivalUntil: Date #_[canonical={default="passive_verb",passive_verb=["expected arrival until"],base=["expected arrival until"]}] #[org_schema_type="DateTime"], - out trackingNumber: String #_[canonical={default="passive_verb",passive_verb=["tracking number"],base=["tracking number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ParcelDelivery_trackingNumber"]) - #_[canonical="parcel delivery"] - #_[confirmation="parcel delivery"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query BoatTerminal extends CivicStructure(out id: Entity(org.schema.Restaurant:BoatTerminal) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:BoatTerminal_name"]) - #_[canonical="boat terminal"] - #_[confirmation="boat terminal"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ProgramMembership extends Intangible(out id: Entity(org.schema.Restaurant:ProgramMembership) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ProgramMembership_name"], - out membershipNumber: Array(String) #_[canonical={default="property",base=["membership numbers"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ProgramMembership_membershipNumber"], - out membershipPointsEarned: Number #_[canonical={default="property",base=["membership points earned"]}] #[org_schema_type="QuantitativeValue"], - out member: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={default="property",base=["members"],reverse_verb=["membered"]}] #[org_schema_type="Person"], - out programName: String #_[canonical={default="property",base=["program name"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ProgramMembership_programName"], - out hostingOrganization: Entity(org.schema.Restaurant:Organization) #_[canonical={default="passive_verb",passive_verb=["hosting organization"],base=["hosting organization"]}] #[org_schema_type="Organization"]) - #_[canonical="program membership"] - #_[confirmation="program membership"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MenuSection extends CreativeWork(out id: Entity(org.schema.Restaurant:MenuSection) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MenuSection_name"], - out hasMenuSection: Array(Entity(org.schema.Restaurant:MenuSection)) #_[canonical={default="property",base=["menu section"]}] #[org_schema_type="MenuSection"], - out hasMenuItem: Array(Entity(org.schema.Restaurant:MenuItem)) #_[canonical={default="property",base=["menu item"]}] #[org_schema_type="MenuItem"]) - #_[canonical="menu section"] - #_[confirmation="menu section"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Legislation extends CreativeWork(out id: Entity(org.schema.Restaurant:Legislation) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Legislation_name"], - out legislationTransposes: Entity(org.schema.Restaurant:Legislation) #_[canonical={default="property",base=["legislation transposes"]}] #[org_schema_type="Legislation"], - out legislationDateVersion: Date #_[canonical={default="property",base=["legislation date version"]}] #[org_schema_type="Date"], - out legislationApplies: Entity(org.schema.Restaurant:Legislation) #_[canonical={default="property",base=["legislation applies"]}] #[org_schema_type="Legislation"], - out legislationLegalForce: Enum(NotInForce,InForce,PartiallyInForce) #_[canonical={default="property",base=["legislation legal force"]}] #[org_schema_type="LegalForceStatus"], - out legislationConsolidates: Entity(org.schema.Restaurant:Legislation) #_[canonical={default="property",base=["legislation consolidates"]}] #[org_schema_type="Legislation"], - out legislationDate: Date #_[canonical={default="property",base=["legislation date"]}] #[org_schema_type="Date"], - out legislationResponsible: Array(Entity(org.schema.Restaurant:Organization)) #_[canonical={default="property",base=["legislation responsible"]}] #[org_schema_type="Organization"], - out legislationIdentifier: Array(Entity(tt:url)) #_[canonical={default="property",base=["legislation identifiers"]}] #[org_schema_type="URL"], - out jurisdiction: String #_[canonical={default="property",base=["jurisdiction"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Legislation_jurisdiction"], - out legislationType: String #_[canonical={default="property",base=["legislation type"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Legislation_legislationType"], - out legislationChanges: Entity(org.schema.Restaurant:Legislation) #_[canonical={default="property",base=["legislation changes"]}] #[org_schema_type="Legislation"], - out legislationPassedBy: Entity(org.schema.Restaurant:Person) #_[canonical={default="property",base=["legislation passed by"],reverse_verb=["legislation passed bied"]}] #[org_schema_type="Person"], - out legislationJurisdiction: String #_[canonical={default="property",base=["legislation jurisdiction"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Legislation_legislationJurisdiction"]) - #_[canonical="legislation"] - #_[confirmation="legislation"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Episode extends CreativeWork(out id: Entity(org.schema.Restaurant:Episode) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Episode_name"], - out musicBy: Entity(org.schema.Restaurant:MusicGroup) #_[canonical={default="property",base=["music by"]}] #[org_schema_type="MusicGroup"], - out episodeNumber: Number #_[canonical={default="property",base=["episode number"]}] #[org_schema_type="Integer"], - out actor: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={base=["actor", "actress"],property=["#", "# in the cast"],passive_verb=["played by", "acted by"],verb=["stars", "# acted", "# acted in", "# was in"],base_projection=["actor", "actress"],verb_projection=["have"],reverse_verb_projection=["acted in"],preposition_projection=["in"]}] #[org_schema_type="Person"], - out partOfSeason: Entity(org.schema.Restaurant:CreativeWorkSeason) #_[canonical={default="property",base=["part of season"]}] #[org_schema_type="CreativeWorkSeason"], - out partOfSeries: Entity(org.schema.Restaurant:CreativeWorkSeries) #_[canonical={default="property",base=["part of series"]}] #[org_schema_type="CreativeWorkSeries"], - out director: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={base=["director"],passive_verb=["directed by"],verb=["# directs", "# directed"],reverse_verb_projection=["directed"]}] #[org_schema_type="Person"], - out productionCompany: Entity(org.schema.Restaurant:Organization) #_[canonical={default="property",base=["production company"]}] #[org_schema_type="Organization"]) - #_[canonical="episode"] - #_[confirmation="episode"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query PodcastEpisode extends Episode(out id: Entity(org.schema.Restaurant:PodcastEpisode) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:PodcastEpisode_name"]) - #_[canonical="podcast episode"] - #_[confirmation="podcast episode"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Airport extends CivicStructure(out id: Entity(org.schema.Restaurant:Airport) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Airport_name"], - out iataCode: String #_[canonical={default="property",base=["iata code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Airport_iataCode"], - out icaoCode: String #_[canonical={default="property",base=["icao code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Airport_icaoCode"]) - #_[canonical="airport"] - #_[confirmation="airport"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MedicalGuideline extends MedicalEntity(out id: Entity(org.schema.Restaurant:MedicalGuideline) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MedicalGuideline_name"], - out guidelineSubject: Entity(org.schema.Restaurant:MedicalEntity) #_[canonical={default="property",base=["guideline subject"]}] #[org_schema_type="MedicalEntity"], - out evidenceOrigin: String #_[canonical={default="property",base=["evidence origin"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:MedicalGuideline_evidenceOrigin"], - out guidelineDate: Date #_[canonical={default="property",base=["guideline date"]}] #[org_schema_type="Date"], - out evidenceLevel: Enum(EvidenceLevelA,EvidenceLevelC,EvidenceLevelB) #_[canonical={default="property",base=["evidence level"]}] #[org_schema_type="MedicalEvidenceLevel"]) - #_[canonical="medical guideline"] - #_[confirmation="medical guideline"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Invoice extends Intangible(out id: Entity(org.schema.Restaurant:Invoice) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Invoice_name"], - out billingPeriod: Measure(ms) #_[canonical={default="property",base=["billing period"]}] #[org_schema_type="Duration"], - out referencesOrder: Entity(org.schema.Restaurant:Order) #_[canonical={default="property",base=["references order"]}] #[org_schema_type="Order"], - out confirmationNumber: Array(String) #_[canonical={default="property",base=["confirmation numbers"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Invoice_confirmationNumber"], - out scheduledPaymentDate: Date #_[canonical={default="passive_verb",passive_verb=["scheduled payment date"],base=["scheduled payment date"]}] #[org_schema_type="Date"], - out customer: Entity(org.schema.Restaurant:Organization) #_[canonical={default="property",base=["customer"]}] #[org_schema_type="Organization"], - out category: Enum(AnaerobicActivity,LeisureTimeActivity,Flexibility,Balance,OccupationalActivity,StrengthTraining,AerobicActivity) #_[canonical={default="property",base=["category"]}] #[org_schema_type="PhysicalActivityCategory"], - out broker: Array(Entity(org.schema.Restaurant:Organization)) #_[canonical={default="property",base=["brokers"]}] #[org_schema_type="Organization"], - out paymentStatus: Enum(PaymentComplete,PaymentPastDue,PaymentDue,PaymentDeclined,PaymentAutomaticallyApplied) #_[canonical={default="property",base=["payment status"]}] #[org_schema_type="PaymentStatusType"], - out provider: Entity(org.schema.Restaurant:Person) #_[canonical={default="property",base=["provider"],reverse_verb=["providered"]}] #[org_schema_type="Person"], - out totalPaymentDue: Currency #_[canonical={default="passive_verb",passive_verb=["total payment due"],base=["total payment due"]}] #[org_schema_type="MonetaryAmount"], - out paymentDueDate: Date #_[canonical={default="property",base=["payment due date"]}] #[org_schema_type="DateTime"], - out paymentMethod: Entity(org.schema.Restaurant:PaymentMethod) #_[canonical={default="property",base=["payment method"]}] #[org_schema_type="PaymentMethod"], - out accountId: String #_[canonical={default="property",base=["account id"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Invoice_accountId"], - out paymentMethodId: Array(String) #_[canonical={default="property",base=["payment method id"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Invoice_paymentMethodId"], - out minimumPaymentDue: Currency #_[canonical={default="passive_verb",passive_verb=["minimum payment due"],base=["minimum payment due"]}] #[org_schema_type="MonetaryAmount"]) - #_[canonical="invoice"] - #_[confirmation="invoice"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Schedule extends Intangible(out id: Entity(org.schema.Restaurant:Schedule) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Schedule_name"], - out endTime: Date #_[canonical={default="property",base=["end time"]}] #[org_schema_type="DateTime"], - out repeatFrequency: Measure(ms) #_[canonical={default="property",base=["repeat frequency"]}] #[org_schema_type="Duration"], - out repeatCount: Number #_[canonical={default="property",base=["repeat count"]}] #_[counted_object=["repeats"]] #[org_schema_type="Integer"], - out exceptDate: Date #_[canonical={default="passive_verb",passive_verb=["except"],base=["except date"]}] #[org_schema_type="Date"], - out startTime: Date #_[canonical={default="property",base=["start time"]}] #[org_schema_type="DateTime"], - out endDate: Date #_[canonical={default="property",base=["end date"]}] #[org_schema_type="Date"], - out scheduleTimezone: String #_[canonical={default="property",base=["schedule timezone"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Schedule_scheduleTimezone"], - out byMonth: Number #_[canonical={default="passive_verb",passive_verb=["by"],base=["by month"]}] #[org_schema_type="Integer"], - out byMonthWeek: Number #_[canonical={default="passive_verb",passive_verb=["by month week"],base=["by month week"]}] #[org_schema_type="Integer"], - out byDay: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="passive_verb",passive_verb=["by"],base=["by day"]}] #[org_schema_type="DayOfWeek"], - out duration: Measure(ms) #_[canonical={base=["duration", "length"],adjective=["# long"],adjective_argmax=["longest"],adjective_argmin=["shortest"]}] #[org_schema_type="Duration"], - out startDate: Date #_[canonical={default="property",base=["start date"]}] #[org_schema_type="Date"], - out byMonthDay: Number #_[canonical={default="passive_verb",passive_verb=["by month day"],base=["by month day"]}] #[org_schema_type="Integer"]) - #_[canonical="schedule"] - #_[confirmation="schedule"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Reservation extends Intangible(out id: Entity(org.schema.Restaurant:Reservation) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Reservation_name"], - out totalPrice: Number #_[canonical={default="property",base=["total price"]}] #[org_schema_type="Number"], - out reservationFor: Entity(org.schema.Restaurant:Thing) #_[canonical={default="property",base=["reservation for"]}] #[org_schema_type="Thing"], - out broker: Array(Entity(org.schema.Restaurant:Organization)) #_[canonical={default="property",base=["brokers"]}] #[org_schema_type="Organization"], - out provider: Entity(org.schema.Restaurant:Person) #_[canonical={default="property",base=["provider"],reverse_verb=["providered"]}] #[org_schema_type="Person"], - out programMembershipUsed: Entity(org.schema.Restaurant:ProgramMembership) #_[canonical={default="property",base=["program membership used"]}] #[org_schema_type="ProgramMembership"], - out underName: Entity(org.schema.Restaurant:Organization) #_[canonical={default="passive_verb",passive_verb=["under"],base=["under name"]}] #[org_schema_type="Organization"], - out modifiedTime: Date #_[canonical={default="passive_verb",passive_verb=["modified time"],base=["modified time"]}] #[org_schema_type="DateTime"], - out bookingTime: Date #_[canonical={default="passive_verb",passive_verb=["booking time"],base=["booking time"]}] #[org_schema_type="DateTime"], - out reservationId: Array(String) #_[canonical={default="property",base=["reservation id"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Reservation_reservationId"], - out reservationStatus: Enum(ReservationConfirmed,ReservationPending,ReservationHold,ReservationCancelled) #_[canonical={default="property",base=["reservation status"]}] #[org_schema_type="ReservationStatusType"], - out reservedTicket: Array(Entity(org.schema.Restaurant:Ticket)) #_[canonical={default="passive_verb",passive_verb=["reserved tickets"],base=["reserved ticket"]}] #[org_schema_type="Ticket"]) - #_[canonical="reservation"] - #_[confirmation="reservation"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query FoodEstablishmentReservation extends Reservation(out id: Entity(org.schema.Restaurant:FoodEstablishmentReservation) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:FoodEstablishmentReservation_name"], - out endTime: Date #_[canonical={default="property",base=["end time"]}] #[org_schema_type="DateTime"], - out partySize: Number #_[canonical={default="property",base=["party size"]}] #[org_schema_type="Integer"], - out startTime: Date #_[canonical={default="property",base=["start time"]}] #[org_schema_type="DateTime"]) - #_[canonical="food establishment reservation"] - #_[confirmation="food establishment reservation"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Action extends Thing(out id: Entity(org.schema.Restaurant:Action) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Action_name"], - out endTime: Date #_[canonical={default="property",base=["end time"]}] #[org_schema_type="DateTime"], - out instrument: Entity(org.schema.Restaurant:Thing) #_[canonical={default="property",base=["instrument"]}] #[org_schema_type="Thing"], - out participant: Entity(org.schema.Restaurant:Organization) #_[canonical={default="property",base=["participant"]}] #[org_schema_type="Organization"], - out result: Entity(org.schema.Restaurant:Thing) #_[canonical={default="property",base=["result"]}] #[org_schema_type="Thing"], - out startTime: Date #_[canonical={default="property",base=["start time"]}] #[org_schema_type="DateTime"], - out actionStatus: Enum(FailedActionStatus,PotentialActionStatus,CompletedActionStatus,ActiveActionStatus) #_[canonical={default="property",base=["action status"]}] #[org_schema_type="ActionStatusType"], - out target: Entity(org.schema.Restaurant:EntryPoint) #_[canonical={default="property",base=["target"]}] #[org_schema_type="EntryPoint"], - out agent: Entity(org.schema.Restaurant:Organization) #_[canonical={default="property",base=["agent"]}] #[org_schema_type="Organization"], - out error: Entity(org.schema.Restaurant:Thing) #_[canonical={default="property",base=["error"]}] #[org_schema_type="Thing"], - out location: { - streetAddress: String #_[canonical={base=["street"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Action_location_streetAddress"], - postOfficeBoxNumber: String #_[canonical={default="property",base=["post office box number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Action_location_postOfficeBoxNumber"], - postalCode: String #_[canonical={default="property",base=["postal code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Action_location_postalCode"], - addressLocality: String #_[canonical={base=["city"],preposition=["in #", "from #"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Action_location_addressLocality"], - addressCountry: Entity(tt:country) #_[canonical={preposition=["in #", "from #"],base=["country"]}] #[org_schema_type="Text"], - addressRegion: Entity(tt:us_state) #_[canonical={preposition=["in #", "from #"],base=["state"]}] #[org_schema_type="Text"], - hoursAvailable: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["hours available"]}] #[org_schema_type="OpeningHoursSpecification"], - contactOption: Enum(TollFree,HearingImpairedSupported) #_[canonical={default="property",base=["contact option"]}] #[org_schema_type="ContactPointOption"], - productSupported: String #_[canonical={default="property",base=["product supported"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Action_location_productSupported"], - faxNumber: Entity(tt:phone_number) #_[canonical={default="property",base=["fax number"]}] #[org_schema_type="Text"] #[filterable=false], - availableLanguage: Array(String) #_[canonical={default="property",base=["available languages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Action_location_availableLanguage"], - telephone: Entity(tt:phone_number) #_[canonical={base=["telephone", "phone number"]}] #[org_schema_type="Text"] #[filterable=false], - email: Entity(tt:email_address) #_[canonical={default="property",base=["email"]}] #[org_schema_type="Text"] #[filterable=false], - contactType: Array(String) #_[canonical={default="property",base=["contact types"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Action_location_contactType"] - } #_[canonical={default="property",base=["location"]}] #[org_schema_type="PostalAddress"], - out object: Entity(org.schema.Restaurant:Thing) #_[canonical={default="verb",verb=["object"],base=["object"]}] #[org_schema_type="Thing"]) - #_[canonical="action"] - #_[confirmation="action"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MediaObject extends CreativeWork(out id: Entity(org.schema.Restaurant:MediaObject) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MediaObject_name"], - out endTime: Date #_[canonical={default="property",base=["end time"]}] #[org_schema_type="DateTime"], - out contentSize: String #_[canonical={default="property",base=["content size"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:MediaObject_contentSize"], - out width: Number #_[canonical={default="property",base=["width"]}] #[org_schema_type="QuantitativeValue"], - out uploadDate: Date #_[canonical={default="property",base=["upload date"]}] #[org_schema_type="Date"], - out startTime: Date #_[canonical={default="property",base=["start time"]}] #[org_schema_type="DateTime"], - out playerType: String #_[canonical={default="property",base=["player type"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:MediaObject_playerType"], - out height: Measure(m) #_[canonical={default="property",base=["height"]}] #[org_schema_type="Distance"], - out bitrate: String #_[canonical={default="passive_verb",passive_verb=["bitrate"],base=["bitrate"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:MediaObject_bitrate"], - out requiresSubscription: Boolean #_[canonical={default="verb",verb_true=["requires subscription"],base=["requires subscription"]}] #[org_schema_type="Boolean"], - out regionsAllowed: Entity(org.schema.Restaurant:Place) #_[canonical={default="property",base=["regions allowed"]}] #[org_schema_type="Place"], - out encodingFormat: Entity(tt:url) #_[canonical={default="property",base=["encoding format"]}] #[org_schema_type="URL"], - out contentUrl: Entity(tt:url) #_[canonical={default="property",base=["content url"]}] #[org_schema_type="URL"], - out associatedArticle: Array(Entity(org.schema.Restaurant:NewsArticle)) #_[canonical={default="passive_verb",passive_verb=["associated articles"],base=["associated article"]}] #[org_schema_type="NewsArticle"], - out productionCompany: Entity(org.schema.Restaurant:Organization) #_[canonical={default="property",base=["production company"]}] #[org_schema_type="Organization"], - out duration: Measure(ms) #_[canonical={base=["duration", "length"],adjective=["# long"],adjective_argmax=["longest"],adjective_argmin=["shortest"]}] #[org_schema_type="Duration"], - out encodesCreativeWork: Entity(org.schema.Restaurant:CreativeWork) #_[canonical={default="property",base=["encodes creative work"]}] #[org_schema_type="CreativeWork"]) - #_[canonical="media object"] - #_[confirmation="media object"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Series extends Intangible(out id: Entity(org.schema.Restaurant:Series) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Series_name"]) - #_[canonical="series"] - #_[confirmation="series"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query CreativeWorkSeries extends CreativeWork, Series(out id: Entity(org.schema.Restaurant:CreativeWorkSeries) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:CreativeWorkSeries_name"], - out issn: String #_[canonical={default="passive_verb",passive_verb=["issn"],base=["issn"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:CreativeWorkSeries_issn"], - out endDate: Date #_[canonical={default="property",base=["end date"]}] #[org_schema_type="Date"], - out startDate: Date #_[canonical={default="property",base=["start date"]}] #[org_schema_type="Date"]) - #_[canonical="creative work series"] - #_[confirmation="creative work series"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MovieSeries extends CreativeWorkSeries(out id: Entity(org.schema.Restaurant:MovieSeries) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MovieSeries_name"], - out musicBy: Entity(org.schema.Restaurant:MusicGroup) #_[canonical={default="property",base=["music by"]}] #[org_schema_type="MusicGroup"], - out actor: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={base=["actor", "actress"],property=["#", "# in the cast"],passive_verb=["played by", "acted by"],verb=["stars", "# acted", "# acted in", "# was in"],base_projection=["actor", "actress"],verb_projection=["have"],reverse_verb_projection=["acted in"],preposition_projection=["in"]}] #[org_schema_type="Person"], - out director: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={base=["director"],passive_verb=["directed by"],verb=["# directs", "# directed"],reverse_verb_projection=["directed"]}] #[org_schema_type="Person"], - out productionCompany: Entity(org.schema.Restaurant:Organization) #_[canonical={default="property",base=["production company"]}] #[org_schema_type="Organization"]) - #_[canonical="movie series"] - #_[confirmation="movie series"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query SportsOrganization extends Organization(out id: Entity(org.schema.Restaurant:SportsOrganization) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:SportsOrganization_name"], - out sport: Array(Entity(tt:url)) #_[canonical={default="property",base=["sports"]}] #[org_schema_type="URL"]) - #_[canonical="sports organization"] - #_[confirmation="sports organization"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query SportsTeam extends SportsOrganization(out id: Entity(org.schema.Restaurant:SportsTeam) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:SportsTeam_name"], - out gender: Enum(Male,Female) #_[canonical={default="property",base=["gender"]}] #[org_schema_type="GenderType"], - out coach: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={default="property",base=["coaches"],reverse_verb=["coached"]}] #[org_schema_type="Person"], - out athlete: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={default="property",base=["athletes"],reverse_verb=["athleted"]}] #[org_schema_type="Person"]) - #_[canonical="sports team"] - #_[confirmation="sports team"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query LodgingReservation extends Reservation(out id: Entity(org.schema.Restaurant:LodgingReservation) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:LodgingReservation_name"], - out numChildren: Number #_[canonical={default="property",base=["num children"]}] #[org_schema_type="QuantitativeValue"], - out lodgingUnitDescription: Array(String) #_[canonical={default="property",base=["lodging unit descriptions"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:LodgingReservation_lodgingUnitDescription"], - out checkinTime: Time #_[canonical={base=["checkin time", "check in time", "check-in time"]}] #[org_schema_type="DateTime"], - out checkoutTime: Time #_[canonical={base=["checkout time", "check out time", "check-out time"]}] #[org_schema_type="Time"], - out lodgingUnitType: String #_[canonical={default="property",base=["lodging unit type"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:LodgingReservation_lodgingUnitType"], - out numAdults: Number #_[canonical={default="property",base=["num adults"]}] #[org_schema_type="Integer"]) - #_[canonical="lodging reservation"] - #_[confirmation="lodging reservation"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ComicStory extends CreativeWork(out id: Entity(org.schema.Restaurant:ComicStory) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ComicStory_name"], - out artist: Entity(org.schema.Restaurant:Person) #_[canonical={default="property",base=["artist"],reverse_verb=["artisted"]}] #[org_schema_type="Person"], - out inker: Entity(org.schema.Restaurant:Person) #_[canonical={default="passive_verb",passive_verb=["inker"],base=["inker"],reverse_verb=["inkered"]}] #[org_schema_type="Person"], - out colorist: Entity(org.schema.Restaurant:Person) #_[canonical={default="passive_verb",passive_verb=["colorist"],base=["colorist"],reverse_verb=["coloristed"]}] #[org_schema_type="Person"], - out letterer: Entity(org.schema.Restaurant:Person) #_[canonical={default="passive_verb",passive_verb=["letterer"],base=["letterer"],reverse_verb=["letterered"]}] #[org_schema_type="Person"], - out penciler: Entity(org.schema.Restaurant:Person) #_[canonical={default="passive_verb",passive_verb=["penciler"],base=["penciler"],reverse_verb=["pencilered"]}] #[org_schema_type="Person"]) - #_[canonical="comic story"] - #_[confirmation="comic story"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query VisualArtwork extends CreativeWork(out id: Entity(org.schema.Restaurant:VisualArtwork) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:VisualArtwork_name"], - out artist: Entity(org.schema.Restaurant:Person) #_[canonical={default="property",base=["artist"],reverse_verb=["artisted"]}] #[org_schema_type="Person"], - out artform: Entity(tt:url) #_[canonical={default="passive_verb",passive_verb=["artform"],base=["artform"]}] #[org_schema_type="URL"], - out depth: Measure(m) #_[canonical={default="property",base=["depth"]}] #[org_schema_type="Distance"], - out artworkSurface: Entity(tt:url) #_[canonical={default="property",base=["artwork surface"]}] #[org_schema_type="URL"], - out artEdition: Number #_[canonical={default="property",base=["art edition"]}] #[org_schema_type="Integer"], - out width: Number #_[canonical={default="property",base=["width"]}] #[org_schema_type="QuantitativeValue"], - out inker: Entity(org.schema.Restaurant:Person) #_[canonical={default="passive_verb",passive_verb=["inker"],base=["inker"],reverse_verb=["inkered"]}] #[org_schema_type="Person"], - out height: Measure(m) #_[canonical={default="property",base=["height"]}] #[org_schema_type="Distance"], - out artMedium: Entity(tt:url) #_[canonical={default="property",base=["art medium"]}] #[org_schema_type="URL"], - out colorist: Entity(org.schema.Restaurant:Person) #_[canonical={default="passive_verb",passive_verb=["colorist"],base=["colorist"],reverse_verb=["coloristed"]}] #[org_schema_type="Person"], - out letterer: Entity(org.schema.Restaurant:Person) #_[canonical={default="passive_verb",passive_verb=["letterer"],base=["letterer"],reverse_verb=["letterered"]}] #[org_schema_type="Person"], - out penciler: Entity(org.schema.Restaurant:Person) #_[canonical={default="passive_verb",passive_verb=["penciler"],base=["penciler"],reverse_verb=["pencilered"]}] #[org_schema_type="Person"]) - #_[canonical="visual artwork"] - #_[confirmation="visual artwork"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query PublicationIssue extends CreativeWork(out id: Entity(org.schema.Restaurant:PublicationIssue) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:PublicationIssue_name"], - out issueNumber: Number #_[canonical={default="property",base=["issue number"]}] #[org_schema_type="Integer"], - out pageEnd: Number #_[canonical={default="property",base=["page end"]}] #[org_schema_type="Integer"], - out pageStart: Number #_[canonical={default="property",base=["page start"]}] #[org_schema_type="Integer"], - out pagination: String #_[canonical={default="passive_verb",passive_verb=["pagination"],base=["pagination"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:PublicationIssue_pagination"]) - #_[canonical="publication issue"] - #_[confirmation="publication issue"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ComicIssue extends PublicationIssue(out id: Entity(org.schema.Restaurant:ComicIssue) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ComicIssue_name"], - out artist: Entity(org.schema.Restaurant:Person) #_[canonical={default="property",base=["artist"],reverse_verb=["artisted"]}] #[org_schema_type="Person"], - out variantCover: Array(String) #_[canonical={default="property",base=["variant cover"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ComicIssue_variantCover"], - out inker: Entity(org.schema.Restaurant:Person) #_[canonical={default="passive_verb",passive_verb=["inker"],base=["inker"],reverse_verb=["inkered"]}] #[org_schema_type="Person"], - out colorist: Entity(org.schema.Restaurant:Person) #_[canonical={default="passive_verb",passive_verb=["colorist"],base=["colorist"],reverse_verb=["coloristed"]}] #[org_schema_type="Person"], - out letterer: Entity(org.schema.Restaurant:Person) #_[canonical={default="passive_verb",passive_verb=["letterer"],base=["letterer"],reverse_verb=["letterered"]}] #[org_schema_type="Person"], - out penciler: Entity(org.schema.Restaurant:Person) #_[canonical={default="passive_verb",passive_verb=["penciler"],base=["penciler"],reverse_verb=["pencilered"]}] #[org_schema_type="Person"]) - #_[canonical="comic issue"] - #_[confirmation="comic issue"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query LocationFeatureSpecification extends Thing(out id: Entity(org.schema.Restaurant:LocationFeatureSpecification) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:LocationFeatureSpecification_name"], - out hoursAvailable: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["hours available"]}] #[org_schema_type="OpeningHoursSpecification"], - out validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - out validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"]) - #_[canonical="location feature specification"] - #_[confirmation="location feature specification"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Property extends Intangible(out id: Entity(org.schema.Restaurant:Property) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Property_name"], - out rangeIncludes: Entity(org.schema.Restaurant:Class) #_[canonical={default="property",base=["range includes"]}] #[org_schema_type="Class"], - out domainIncludes: Entity(org.schema.Restaurant:Class) #_[canonical={default="property",base=["domain includes"]}] #[org_schema_type="Class"], - out inverseOf: Entity(org.schema.Restaurant:Property) #_[canonical={default="reverse_property",reverse_property=["inverse of", "# inverse", "# 's inverse"],base=["inverse of"]}] #[org_schema_type="Property"], - out supersededBy: Entity(org.schema.Restaurant:Class) #_[canonical={default="passive_verb",passive_verb=["superseded by"],base=["superseded by"]}] #[org_schema_type="Class"]) - #_[canonical="property"] - #_[confirmation="property"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Substance extends MedicalEntity(out id: Entity(org.schema.Restaurant:Substance) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Substance_name"], - out activeIngredient: Array(String) #_[canonical={default="property",base=["active ingredients"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Substance_activeIngredient"], - out maximumIntake: Entity(org.schema.Restaurant:MaximumDoseSchedule) #_[canonical={default="property",base=["maximum intake"]}] #[org_schema_type="MaximumDoseSchedule"]) - #_[canonical="substance"] - #_[confirmation="substance"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Drug extends Substance(out id: Entity(org.schema.Restaurant:Drug) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Drug_name"], - out pregnancyCategory: Enum(FDAcategoryX,FDAnotEvaluated,FDAcategoryC,FDAcategoryB,FDAcategoryA,FDAcategoryD) #_[canonical={default="property",base=["pregnancy category"]}] #[org_schema_type="DrugPregnancyCategory"], - out drugUnit: String #_[canonical={default="property",base=["drug unit"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Drug_drugUnit"], - out interactingDrug: Entity(org.schema.Restaurant:Drug) #_[canonical={default="passive_verb",passive_verb=["interacting drug"],base=["interacting drug"]}] #[org_schema_type="Drug"], - out activeIngredient: Array(String) #_[canonical={default="property",base=["active ingredients"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Drug_activeIngredient"], - out rxcui: String #_[canonical={default="passive_verb",passive_verb=["rxcui"],base=["rxcui"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Drug_rxcui"], - out proprietaryName: String #_[canonical={default="property",base=["proprietary name"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Drug_proprietaryName"], - out availableStrength: Array(Entity(org.schema.Restaurant:DrugStrength)) #_[canonical={default="property",base=["available strengths"]}] #[org_schema_type="DrugStrength"], - out isAvailableGenerically: Boolean #_[canonical={default="adjective",adjective_true=["available generically"],base=["is available generically"]}] #[org_schema_type="Boolean"], - out manufacturer: Entity(org.schema.Restaurant:Organization) #_[canonical={default="property",base=["manufacturer"]}] #[org_schema_type="Organization"], - out prescribingInfo: Entity(tt:url) #_[canonical={default="passive_verb",passive_verb=["prescribing info"],base=["prescribing info"]}] #[org_schema_type="URL"], - out drugClass: Entity(org.schema.Restaurant:DrugClass) #_[canonical={default="property",base=["drug class"]}] #[org_schema_type="DrugClass"], - out warning: Entity(tt:url) #_[canonical={default="property",base=["warning"]}] #[org_schema_type="URL"], - out mechanismOfAction: String #_[canonical={default="property",base=["mechanism of action"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Drug_mechanismOfAction"], - out breastfeedingWarning: String #_[canonical={default="passive_verb",passive_verb=["breastfeeding warning"],base=["breastfeeding warning"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Drug_breastfeedingWarning"], - out legalStatus: Entity(org.schema.Restaurant:MedicalEnumeration) #_[canonical={default="property",base=["legal status"]}] #[org_schema_type="MedicalEnumeration"], - out alcoholWarning: String #_[canonical={default="property",base=["alcohol warning"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Drug_alcoholWarning"], - out isProprietary: Boolean #_[canonical={default="adjective",adjective_true=["proprietary"],base=["is proprietary"]}] #[org_schema_type="Boolean"], - out overdosage: String #_[canonical={default="passive_verb",passive_verb=["overdosage"],base=["overdosage"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Drug_overdosage"], - out prescriptionStatus: Enum(OTC,PrescriptionOnly) #_[canonical={default="property",base=["prescription status"]}] #[org_schema_type="DrugPrescriptionStatus"], - out labelDetails: Entity(tt:url) #_[canonical={default="property",base=["label details"]}] #[org_schema_type="URL"], - out relatedDrug: Entity(org.schema.Restaurant:Drug) #_[canonical={default="passive_verb",passive_verb=["related drug"],base=["related drug"]}] #[org_schema_type="Drug"], - out nonProprietaryName: String #_[canonical={default="property",base=["non proprietary name"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Drug_nonProprietaryName"], - out clinicalPharmacology: String #_[canonical={default="property",base=["clinical pharmacology"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Drug_clinicalPharmacology"], - out maximumIntake: Entity(org.schema.Restaurant:MaximumDoseSchedule) #_[canonical={default="property",base=["maximum intake"]}] #[org_schema_type="MaximumDoseSchedule"], - out dosageForm: Array(String) #_[canonical={default="property",base=["dosage forms"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Drug_dosageForm"], - out doseSchedule: Array(Entity(org.schema.Restaurant:DoseSchedule)) #_[canonical={default="property",base=["dose schedules"]}] #[org_schema_type="DoseSchedule"], - out foodWarning: String #_[canonical={default="property",base=["food warning"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Drug_foodWarning"], - out administrationRoute: Array(String) #_[canonical={default="property",base=["administration routes"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Drug_administrationRoute"], - out pregnancyWarning: String #_[canonical={default="property",base=["pregnancy warning"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Drug_pregnancyWarning"], - out includedInHealthInsurancePlan: Entity(org.schema.Restaurant:HealthInsurancePlan) #_[canonical={default="verb",verb=["included in health insurance plan"],base=["included in health insurance plan"]}] #[org_schema_type="HealthInsurancePlan"]) - #_[canonical="drug"] - #_[confirmation="drug"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query FlightReservation extends Reservation(out id: Entity(org.schema.Restaurant:FlightReservation) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:FlightReservation_name"], - out boardingGroup: String #_[canonical={default="passive_verb",passive_verb=["boarding group"],base=["boarding group"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:FlightReservation_boardingGroup"], - out passengerSequenceNumber: String #_[canonical={default="property",base=["passenger sequence number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:FlightReservation_passengerSequenceNumber"], - out securityScreening: String #_[canonical={default="property",base=["security screening"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:FlightReservation_securityScreening"], - out passengerPriorityStatus: String #_[canonical={default="property",base=["passenger priority status"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:FlightReservation_passengerPriorityStatus"]) - #_[canonical="flight reservation"] - #_[confirmation="flight reservation"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Trip extends Intangible(out id: Entity(org.schema.Restaurant:Trip) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Trip_name"], - out offers: Entity(org.schema.Restaurant:Offer) #_[canonical={default="verb",verb=["offers"],base=["offers"]}] #[org_schema_type="Offer"], - out provider: Entity(org.schema.Restaurant:Person) #_[canonical={default="property",base=["provider"],reverse_verb=["providered"]}] #[org_schema_type="Person"], - out subTrip: Entity(org.schema.Restaurant:Trip) #_[canonical={default="property",base=["sub trip"]}] #[org_schema_type="Trip"], - out partOfTrip: Entity(org.schema.Restaurant:Trip) #_[canonical={default="property",base=["part of trip"]}] #[org_schema_type="Trip"], - out departureTime: Time #_[canonical={default="property",base=["departure time"]}] #[org_schema_type="Time"], - out itinerary: Entity(org.schema.Restaurant:Place) #_[canonical={default="property",base=["itinerary"]}] #[org_schema_type="Place"], - out arrivalTime: Time #_[canonical={default="property",base=["arrival time"]}] #[org_schema_type="Time"]) - #_[canonical="trip"] - #_[confirmation="trip"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query TrainTrip extends Trip(out id: Entity(org.schema.Restaurant:TrainTrip) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:TrainTrip_name"], - out departurePlatform: String #_[canonical={default="property",base=["departure platform"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:TrainTrip_departurePlatform"], - out trainName: String #_[canonical={default="property",base=["train name"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:TrainTrip_trainName"], - out trainNumber: String #_[canonical={default="property",base=["train number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:TrainTrip_trainNumber"], - out departureStation: Entity(org.schema.Restaurant:TrainStation) #_[canonical={default="property",base=["departure station"]}] #[org_schema_type="TrainStation"], - out arrivalPlatform: String #_[canonical={default="property",base=["arrival platform"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:TrainTrip_arrivalPlatform"], - out arrivalStation: Entity(org.schema.Restaurant:TrainStation) #_[canonical={default="property",base=["arrival station"]}] #[org_schema_type="TrainStation"]) - #_[canonical="train trip"] - #_[confirmation="train trip"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Comment extends CreativeWork(out id: Entity(org.schema.Restaurant:Comment) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Comment_name"], - out parentItem: Entity(org.schema.Restaurant:Question) #_[canonical={default="property",base=["parent item"]}] #[org_schema_type="Question"], - out upvoteCount: Number #_[canonical={default="property",base=["upvote count"]}] #_[counted_object=["upvote"]] #[org_schema_type="Integer"], - out downvoteCount: Number #_[canonical={default="property",base=["downvote count"]}] #_[counted_object=["downvote"]] #[org_schema_type="Integer"]) - #_[canonical="comment"] - #_[confirmation="comment"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query WebPage extends CreativeWork(out id: Entity(org.schema.Restaurant:WebPage) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:WebPage_name"], - out speakable: Entity(tt:url) #_[canonical={default="passive_verb",passive_verb=["speakable"],base=["speakable"]}] #[org_schema_type="URL"], - out breadcrumb: Array(String) #_[canonical={default="passive_verb",passive_verb=["breadcrumb"],base=["breadcrumb"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:WebPage_breadcrumb"], - out significantLink: Entity(tt:url) #_[canonical={default="property",base=["significant link"]}] #[org_schema_type="URL"], - out relatedLink: Array(Entity(tt:url)) #_[canonical={default="passive_verb",passive_verb=["related links"],base=["related link"]}] #[org_schema_type="URL"], - out reviewedBy: Entity(org.schema.Restaurant:Person) #_[canonical={default="passive_verb",passive_verb=["reviewed by"],base=["reviewed by"],reverse_verb=["reviewed bied"]}] #[org_schema_type="Person"], - out primaryImageOfPage: Entity(tt:picture) #_[canonical={default="property",base=["primary image of page"]}] #[org_schema_type="ImageObject"], - out specialty: Entity(org.schema.Restaurant:Specialty) #_[canonical={default="property",base=["specialty"]}] #[org_schema_type="Specialty"], - out lastReviewed: Date #_[canonical={default="property",base=["last reviewed"]}] #[org_schema_type="Date"], - out mainContentOfPage: Entity(org.schema.Restaurant:WebPageElement) #_[canonical={default="property",base=["main content of page"]}] #[org_schema_type="WebPageElement"]) - #_[canonical="web page"] - #_[confirmation="web page"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query RealEstateListing extends WebPage(out id: Entity(org.schema.Restaurant:RealEstateListing) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:RealEstateListing_name"], - out datePosted: Date #_[canonical={default="property",base=["date posted"]}] #[org_schema_type="Date"], - out leaseLength: Measure(ms) #_[canonical={default="property",base=["lease length"]}] #[org_schema_type="Duration"]) - #_[canonical="real estate listing"] - #_[confirmation="real estate listing"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Movie extends CreativeWork(out id: Entity(org.schema.Restaurant:Movie) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Movie_name"], - out subtitleLanguage: String #_[canonical={default="property",base=["subtitle language"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Movie_subtitleLanguage"], - out countryOfOrigin: Entity(org.schema.Restaurant:Country) #_[canonical={default="property",base=["country of origin"]}] #[org_schema_type="Country"], - out musicBy: Entity(org.schema.Restaurant:MusicGroup) #_[canonical={default="property",base=["music by"]}] #[org_schema_type="MusicGroup"], - out actor: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={base=["actor", "actress"],property=["#", "# in the cast"],passive_verb=["played by", "acted by"],verb=["stars", "# acted", "# acted in", "# was in"],base_projection=["actor", "actress"],verb_projection=["have"],reverse_verb_projection=["acted in"],preposition_projection=["in"]}] #[org_schema_type="Person"], - out director: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={base=["director"],passive_verb=["directed by"],verb=["# directs", "# directed"],reverse_verb_projection=["directed"]}] #[org_schema_type="Person"], - out productionCompany: Entity(org.schema.Restaurant:Organization) #_[canonical={default="property",base=["production company"]}] #[org_schema_type="Organization"], - out duration: Measure(ms) #_[canonical={base=["duration", "length"],adjective=["# long"],adjective_argmax=["longest"],adjective_argmin=["shortest"]}] #[org_schema_type="Duration"], - out titleEIDR: Array(Entity(tt:url)) #_[canonical={default="property",base=["title eidr"]}] #[org_schema_type="URL"]) - #_[canonical="movie"] - #_[confirmation="movie"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query WebSite extends CreativeWork(out id: Entity(org.schema.Restaurant:WebSite) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:WebSite_name"], - out issn: String #_[canonical={default="passive_verb",passive_verb=["issn"],base=["issn"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:WebSite_issn"]) - #_[canonical="web site"] - #_[confirmation="web site"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query AutomotiveBusiness extends LocalBusiness(out id: Entity(org.schema.Restaurant:AutomotiveBusiness) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:AutomotiveBusiness_name"]) - #_[canonical="automotive business"] - #_[confirmation="automotive business"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query AutoRental extends AutomotiveBusiness(out id: Entity(org.schema.Restaurant:AutoRental) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:AutoRental_name"]) - #_[canonical="auto rental"] - #_[confirmation="auto rental"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ProductModel extends Product(out id: Entity(org.schema.Restaurant:ProductModel) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ProductModel_name"], - out predecessorOf: Array(Entity(org.schema.Restaurant:ProductModel)) #_[canonical={default="reverse_property",reverse_property=["predecessor of", "# predecessor", "# 's predecessor"],base=["predecessor of"]}] #[org_schema_type="ProductModel"], - out successorOf: Array(Entity(org.schema.Restaurant:ProductModel)) #_[canonical={default="reverse_property",reverse_property=["successor of", "# successor", "# 's successor"],base=["successor of"]}] #[org_schema_type="ProductModel"], - out isVariantOf: Entity(org.schema.Restaurant:ProductModel) #_[canonical={default="reverse_property",reverse_property=["variant of"],base=["is variant of"]}] #[org_schema_type="ProductModel"]) - #_[canonical="product model"] - #_[confirmation="product model"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Accommodation extends Place(out id: Entity(org.schema.Restaurant:Accommodation) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Accommodation_name"], - out yearBuilt: Number #_[canonical={default="property",base=["year built"]}] #[org_schema_type="Number"], - out petsAllowed: Boolean #_[canonical={property_true=["pets allowed"],property_false=["no pets allowed"],verb_true=["allows pets", "accepts pets", "accepts dog"],adjective_true=["pets friendly", "dog friendly"]}] #[org_schema_type="Boolean"], - out numberOfBedrooms: Number #_[canonical={default="property",base=["number of bedrooms"]}] #_[counted_object=["bedrooms"]] #[org_schema_type="QuantitativeValue"], - out leaseLength: Measure(ms) #_[canonical={default="property",base=["lease length"]}] #[org_schema_type="Duration"], - out numberOfFullBathrooms: Number #_[canonical={default="property",base=["number of full bathrooms"]}] #_[counted_object=["full bathrooms"]] #[org_schema_type="Number"], - out floorLevel: String #_[canonical={default="property",base=["floor level"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Accommodation_floorLevel"], - out floorSize: Number #_[canonical={default="property",base=["floor size"]}] #[org_schema_type="QuantitativeValue"], - out accommodationCategory: String #_[canonical={default="property",base=["accommodation category"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Accommodation_accommodationCategory"], - out numberOfBathroomsTotal: Number #_[canonical={default="property",base=["number of bathrooms total"]}] #_[counted_object=["bathrooms total"]] #[org_schema_type="Integer"], - out accommodationFloorPlan: Array(Entity(org.schema.Restaurant:FloorPlan)) #_[canonical={default="property",base=["accommodation floor plans"]}] #[org_schema_type="FloorPlan"], - out numberOfRooms: Number #_[canonical={default="property",base=["number of rooms"]}] #_[counted_object=["rooms"]] #[org_schema_type="Number"], - out permittedUsage: String #_[canonical={default="passive_verb",passive_verb=["permitted usage"],base=["permitted usage"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Accommodation_permittedUsage"], - out tourBookingPage: Array(Entity(tt:url)) #_[canonical={default="property",base=["tour booking pages"]}] #[org_schema_type="URL"], - out amenityFeature: Array(Entity(org.schema.Restaurant:LocationFeatureSpecification)) #_[canonical={base=["amenity", "amenity feature"],verb=["offers #", "offer #", "has #", "have #"],base_projection=["amenity"],verb_projection=[""]}] #[org_schema_type="LocationFeatureSpecification"], - out numberOfPartialBathrooms: Number #_[canonical={default="property",base=["number of partial bathrooms"]}] #_[counted_object=["partial bathrooms"]] #[org_schema_type="Number"]) - #_[canonical="accommodation"] - #_[confirmation="accommodation"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Room extends Accommodation(out id: Entity(org.schema.Restaurant:Room) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Room_name"]) - #_[canonical="room"] - #_[confirmation="room"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query HotelRoom extends Room(out id: Entity(org.schema.Restaurant:HotelRoom) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:HotelRoom_name"], - out occupancy: Number #_[canonical={default="property",base=["occupancy"]}] #[org_schema_type="QuantitativeValue"], - out bed: String #_[canonical={default="property",base=["bed"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:HotelRoom_bed"]) - #_[canonical="hotel room"] - #_[confirmation="hotel room"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Audience extends Intangible(out id: Entity(org.schema.Restaurant:Audience) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Audience_name"], - out audienceType: String #_[canonical={default="property",base=["audience type"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Audience_audienceType"], - out geographicArea: Entity(org.schema.Restaurant:AdministrativeArea) #_[canonical={default="property",base=["geographic area"]}] #[org_schema_type="AdministrativeArea"]) - #_[canonical="audience"] - #_[confirmation="audience"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query AnatomicalStructure extends MedicalEntity(out id: Entity(org.schema.Restaurant:AnatomicalStructure) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:AnatomicalStructure_name"], - out diagram: Array(Entity(tt:picture)) #_[canonical={default="property",base=["diagrams"]}] #[org_schema_type="ImageObject"], - out relatedTherapy: Array(Entity(org.schema.Restaurant:MedicalTherapy)) #_[canonical={default="passive_verb",passive_verb=["related therapies"],base=["related therapy"]}] #[org_schema_type="MedicalTherapy"], - out connectedTo: Entity(org.schema.Restaurant:AnatomicalStructure) #_[canonical={default="passive_verb",passive_verb=["connected to"],base=["connected to"]}] #[org_schema_type="AnatomicalStructure"], - out associatedPathophysiology: String #_[canonical={default="passive_verb",passive_verb=["associated pathophysiology"],base=["associated pathophysiology"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:AnatomicalStructure_associatedPathophysiology"], - out relatedCondition: Array(Entity(org.schema.Restaurant:MedicalCondition)) #_[canonical={default="passive_verb",passive_verb=["related conditions"],base=["related condition"]}] #[org_schema_type="MedicalCondition"], - out partOfSystem: Entity(org.schema.Restaurant:AnatomicalSystem) #_[canonical={default="property",base=["part of system"]}] #[org_schema_type="AnatomicalSystem"], - out bodyLocation: String #_[canonical={default="property",base=["body location"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:AnatomicalStructure_bodyLocation"], - out subStructure: Entity(org.schema.Restaurant:AnatomicalStructure) #_[canonical={default="property",base=["sub structure"]}] #[org_schema_type="AnatomicalStructure"]) - #_[canonical="anatomical structure"] - #_[confirmation="anatomical structure"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Vessel extends AnatomicalStructure(out id: Entity(org.schema.Restaurant:Vessel) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Vessel_name"]) - #_[canonical="vessel"] - #_[confirmation="vessel"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query LymphaticVessel extends Vessel(out id: Entity(org.schema.Restaurant:LymphaticVessel) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:LymphaticVessel_name"], - out regionDrained: Entity(org.schema.Restaurant:AnatomicalStructure) #_[canonical={default="property",base=["region drained"]}] #[org_schema_type="AnatomicalStructure"], - out runsTo: Entity(org.schema.Restaurant:Vessel) #_[canonical={default="verb",verb=["runs to"],base=["runs to"]}] #[org_schema_type="Vessel"], - out originatesFrom: Entity(org.schema.Restaurant:Vessel) #_[canonical={default="verb",verb=["originates from"],base=["originates from"]}] #[org_schema_type="Vessel"]) - #_[canonical="lymphatic vessel"] - #_[confirmation="lymphatic vessel"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query TreatmentIndication extends MedicalIndication(out id: Entity(org.schema.Restaurant:TreatmentIndication) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:TreatmentIndication_name"]) - #_[canonical="treatment indication"] - #_[confirmation="treatment indication"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query NewsArticle extends Article(out id: Entity(org.schema.Restaurant:NewsArticle) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:NewsArticle_name"], - out printColumn: String #_[canonical={default="property",base=["print column"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:NewsArticle_printColumn"], - out printEdition: String #_[canonical={default="property",base=["print edition"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:NewsArticle_printEdition"], - out dateline: Array(String) #_[canonical={default="passive_verb",passive_verb=["dateline"],base=["dateline"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:NewsArticle_dateline"], - out printSection: String #_[canonical={default="property",base=["print section"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:NewsArticle_printSection"], - out printPage: String #_[canonical={default="property",base=["print page"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:NewsArticle_printPage"]) - #_[canonical="news article"] - #_[confirmation="news article"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query FoodEstablishment extends LocalBusiness(out id: Entity(org.schema.Restaurant:FoodEstablishment) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:FoodEstablishment_name"], - out hasMenu: Entity(tt:url) #_[canonical={default="property",base=["menu"]}] #[org_schema_type="URL"], - out servesCuisine: String #_[canonical={adjective=["#"],verb=["serves # cuisine", "serves # food", "offer # cuisine", "offer # food", "serves", "offers"],property=["# cuisine", "# food"],base=["cuisine", "food type"],base_projection=["food", "cuisine"],verb_projection=["serve", "offer", "have"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:FoodEstablishment_servesCuisine"], - out acceptsReservations: Boolean #_[canonical={default="verb",verb_true=["accepts reservations"],base=["accepts reservations"]}] #[org_schema_type="Boolean"], - out starRating: { - ratingValue: Number #_[canonical={base=["michelin star rating", "michelin rating", "michelin star"],adjective=["michelin # star", "michelin # star"],passive_verb=["rated # star by michelin guide"]}] #[org_schema_type="Number"] #[min_number=1] #[max_number=5], - ratingExplanation: Array(String) #_[canonical={default="property",base=["rating explanations"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:FoodEstablishment_starRating_ratingExplanation"], - reviewAspect: String #_[canonical={default="property",base=["review aspect"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:FoodEstablishment_starRating_reviewAspect"], - author: Entity(org.schema.Restaurant:Person) #_[canonical={base=["author"],preposition=["by"],passive_verb=["written by", "authored by", "uploaded by", "submitted by"],verb=["# wrote", "# authored"],base_projection=["author", "creator"],reverse_verb_projection=["wrote", "authored"],passive_verb_projection=["written | by", "authored | by"]}] #[org_schema_type="Person"] - } #_[canonical={default="property",base=["star rating"]}] #[org_schema_type="Rating"]) - #_[canonical="food establishment"] - #_[confirmation="food establishment"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Restaurant extends FoodEstablishment(out id: Entity(org.schema.Restaurant:Restaurant) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true] #[string_values="org.openstreetmap:restaurant"], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.openstreetmap:restaurant"]) - #_[canonical=["restaurant", "diner", "place", "joint", "eatery", "canteen", "cafeteria", "cafe"]] - #_[confirmation="restaurant"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query FloorPlan extends Intangible(out id: Entity(org.schema.Restaurant:FloorPlan) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:FloorPlan_name"], - out numberOfAvailableAccommodationUnits: Number #_[canonical={default="property",base=["number of available accommodation units"]}] #_[counted_object=["available accommodation units"]] #[org_schema_type="QuantitativeValue"], - out petsAllowed: Boolean #_[canonical={property_true=["pets allowed"],property_false=["no pets allowed"],verb_true=["allows pets", "accepts pets", "accepts dog"],adjective_true=["pets friendly", "dog friendly"]}] #[org_schema_type="Boolean"], - out numberOfBedrooms: Number #_[canonical={default="property",base=["number of bedrooms"]}] #_[counted_object=["bedrooms"]] #[org_schema_type="QuantitativeValue"], - out numberOfFullBathrooms: Number #_[canonical={default="property",base=["number of full bathrooms"]}] #_[counted_object=["full bathrooms"]] #[org_schema_type="Number"], - out numberOfAccommodationUnits: Number #_[canonical={default="property",base=["number of accommodation units"]}] #_[counted_object=["accommodation units"]] #[org_schema_type="QuantitativeValue"], - out floorSize: Number #_[canonical={default="property",base=["floor size"]}] #[org_schema_type="QuantitativeValue"], - out numberOfBathroomsTotal: Number #_[canonical={default="property",base=["number of bathrooms total"]}] #_[counted_object=["bathrooms total"]] #[org_schema_type="Integer"], - out numberOfRooms: Number #_[canonical={default="property",base=["number of rooms"]}] #_[counted_object=["rooms"]] #[org_schema_type="Number"], - out amenityFeature: Array(Entity(org.schema.Restaurant:LocationFeatureSpecification)) #_[canonical={base=["amenity", "amenity feature"],verb=["offers #", "offer #", "has #", "have #"],base_projection=["amenity"],verb_projection=[""]}] #[org_schema_type="LocationFeatureSpecification"], - out numberOfPartialBathrooms: Number #_[canonical={default="property",base=["number of partial bathrooms"]}] #_[counted_object=["partial bathrooms"]] #[org_schema_type="Number"], - out isPlanForApartment: Entity(org.schema.Restaurant:Accommodation) #_[canonical={default="reverse_property",reverse_property=["plan for apartment"],base=["is plan for apartment"]}] #[org_schema_type="Accommodation"]) - #_[canonical="floor plan"] - #_[confirmation="floor plan"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Residence extends Place(out id: Entity(org.schema.Restaurant:Residence) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Residence_name"], - out accommodationFloorPlan: Array(Entity(org.schema.Restaurant:FloorPlan)) #_[canonical={default="property",base=["accommodation floor plans"]}] #[org_schema_type="FloorPlan"]) - #_[canonical="residence"] - #_[confirmation="residence"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ApartmentComplex extends Residence(out id: Entity(org.schema.Restaurant:ApartmentComplex) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ApartmentComplex_name"], - out numberOfAvailableAccommodationUnits: Number #_[canonical={default="property",base=["number of available accommodation units"]}] #_[counted_object=["available accommodation units"]] #[org_schema_type="QuantitativeValue"], - out petsAllowed: Boolean #_[canonical={property_true=["pets allowed"],property_false=["no pets allowed"],verb_true=["allows pets", "accepts pets", "accepts dog"],adjective_true=["pets friendly", "dog friendly"]}] #[org_schema_type="Boolean"], - out numberOfBedrooms: Number #_[canonical={default="property",base=["number of bedrooms"]}] #_[counted_object=["bedrooms"]] #[org_schema_type="QuantitativeValue"], - out numberOfAccommodationUnits: Number #_[canonical={default="property",base=["number of accommodation units"]}] #_[counted_object=["accommodation units"]] #[org_schema_type="QuantitativeValue"], - out tourBookingPage: Array(Entity(tt:url)) #_[canonical={default="property",base=["tour booking pages"]}] #[org_schema_type="URL"]) - #_[canonical="apartment complex"] - #_[confirmation="apartment complex"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query SoftwareApplication extends CreativeWork(out id: Entity(org.schema.Restaurant:SoftwareApplication) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:SoftwareApplication_name"], - out availableOnDevice: String #_[canonical={default="property",base=["available on device"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:SoftwareApplication_availableOnDevice"], - out featureList: Entity(tt:url) #_[canonical={default="property",base=["feature list"]}] #[org_schema_type="URL"], - out applicationSubCategory: Entity(tt:url) #_[canonical={default="property",base=["application sub category"]}] #[org_schema_type="URL"], - out permissions: String #_[canonical={default="passive_verb",passive_verb=["permissions"],base=["permissions"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:SoftwareApplication_permissions"], - out processorRequirements: String #_[canonical={default="property",base=["processor requirements"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:SoftwareApplication_processorRequirements"], - out softwareAddOn: Entity(org.schema.Restaurant:SoftwareApplication) #_[canonical={default="property",base=["software add on"]}] #[org_schema_type="SoftwareApplication"], - out releaseNotes: Entity(tt:url) #_[canonical={default="property",base=["release notes"]}] #[org_schema_type="URL"], - out supportingData: Entity(org.schema.Restaurant:DataFeed) #_[canonical={default="passive_verb",passive_verb=["supporting data"],base=["supporting data"]}] #[org_schema_type="DataFeed"], - out downloadUrl: Entity(tt:url) #_[canonical={default="property",base=["download url"]}] #[org_schema_type="URL"], - out countriesNotSupported: String #_[canonical={default="property",base=["countries not supported"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:SoftwareApplication_countriesNotSupported"], - out operatingSystem: String #_[canonical={default="passive_verb",passive_verb=["operating system"],base=["operating system"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:SoftwareApplication_operatingSystem"], - out fileSize: String #_[canonical={default="property",base=["file size"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:SoftwareApplication_fileSize"], - out installUrl: Entity(tt:url) #_[canonical={default="property",base=["install url"]}] #[org_schema_type="URL"], - out applicationCategory: Entity(tt:url) #_[canonical={default="property",base=["application category"]}] #[org_schema_type="URL"], - out softwareVersion: String #_[canonical={default="property",base=["software version"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:SoftwareApplication_softwareVersion"], - out softwareRequirements: Entity(tt:url) #_[canonical={default="property",base=["software requirements"]}] #[org_schema_type="URL"], - out storageRequirements: Entity(tt:url) #_[canonical={default="property",base=["storage requirements"]}] #[org_schema_type="URL"], - out applicationSuite: String #_[canonical={default="property",base=["application suite"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:SoftwareApplication_applicationSuite"], - out memoryRequirements: Entity(tt:url) #_[canonical={default="property",base=["memory requirements"]}] #[org_schema_type="URL"], - out screenshot: Array(Entity(tt:url)) #_[canonical={default="passive_verb",passive_verb=["screenshot"],base=["screenshot"]}] #[org_schema_type="URL"], - out countriesSupported: String #_[canonical={default="property",base=["countries supported"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:SoftwareApplication_countriesSupported"], - out softwareHelp: Entity(org.schema.Restaurant:CreativeWork) #_[canonical={default="property",base=["software help"]}] #[org_schema_type="CreativeWork"]) - #_[canonical="software application"] - #_[confirmation="software application"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Message extends CreativeWork(out id: Entity(org.schema.Restaurant:Message) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Message_name"], - out bccRecipient: Array({ - hoursAvailable: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["hours available"]}] #[org_schema_type="OpeningHoursSpecification"], - contactOption: Enum(TollFree,HearingImpairedSupported) #_[canonical={default="property",base=["contact option"]}] #[org_schema_type="ContactPointOption"], - productSupported: String #_[canonical={default="property",base=["product supported"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Message_bccRecipient_productSupported"], - faxNumber: Entity(tt:phone_number) #_[canonical={default="property",base=["fax number"]}] #[org_schema_type="Text"] #[filterable=false], - availableLanguage: Array(String) #_[canonical={default="property",base=["available languages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Message_bccRecipient_availableLanguage"], - telephone: Entity(tt:phone_number) #_[canonical={base=["telephone", "phone number"]}] #[org_schema_type="Text"] #[filterable=false], - email: Entity(tt:email_address) #_[canonical={default="property",base=["email"]}] #[org_schema_type="Text"] #[filterable=false], - contactType: Array(String) #_[canonical={default="property",base=["contact types"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Message_bccRecipient_contactType"] - }) #_[canonical={default="passive_verb",passive_verb=["bcc recipient"],base=["bcc recipient"]}] #[org_schema_type="ContactPoint"], - out dateSent: Date #_[canonical={default="property",base=["date sent"]}] #[org_schema_type="DateTime"], - out ccRecipient: Array({ - hoursAvailable: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["hours available"]}] #[org_schema_type="OpeningHoursSpecification"], - contactOption: Enum(TollFree,HearingImpairedSupported) #_[canonical={default="property",base=["contact option"]}] #[org_schema_type="ContactPointOption"], - productSupported: String #_[canonical={default="property",base=["product supported"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Message_ccRecipient_productSupported"], - faxNumber: Entity(tt:phone_number) #_[canonical={default="property",base=["fax number"]}] #[org_schema_type="Text"] #[filterable=false], - availableLanguage: Array(String) #_[canonical={default="property",base=["available languages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Message_ccRecipient_availableLanguage"], - telephone: Entity(tt:phone_number) #_[canonical={base=["telephone", "phone number"]}] #[org_schema_type="Text"] #[filterable=false], - email: Entity(tt:email_address) #_[canonical={default="property",base=["email"]}] #[org_schema_type="Text"] #[filterable=false], - contactType: Array(String) #_[canonical={default="property",base=["contact types"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Message_ccRecipient_contactType"] - }) #_[canonical={default="property",base=["cc recipient"]}] #[org_schema_type="ContactPoint"], - out dateRead: Date #_[canonical={default="property",base=["date read"]}] #[org_schema_type="Date"], - out toRecipient: Array({ - hoursAvailable: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["hours available"]}] #[org_schema_type="OpeningHoursSpecification"], - contactOption: Enum(TollFree,HearingImpairedSupported) #_[canonical={default="property",base=["contact option"]}] #[org_schema_type="ContactPointOption"], - productSupported: String #_[canonical={default="property",base=["product supported"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Message_toRecipient_productSupported"], - faxNumber: Entity(tt:phone_number) #_[canonical={default="property",base=["fax number"]}] #[org_schema_type="Text"] #[filterable=false], - availableLanguage: Array(String) #_[canonical={default="property",base=["available languages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Message_toRecipient_availableLanguage"], - telephone: Entity(tt:phone_number) #_[canonical={base=["telephone", "phone number"]}] #[org_schema_type="Text"] #[filterable=false], - email: Entity(tt:email_address) #_[canonical={default="property",base=["email"]}] #[org_schema_type="Text"] #[filterable=false], - contactType: Array(String) #_[canonical={default="property",base=["contact types"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Message_toRecipient_contactType"] - }) #_[canonical={default="passive_verb",passive_verb=["to recipient"],base=["to recipient"]}] #[org_schema_type="ContactPoint"], - out recipient: Array({ - hoursAvailable: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["hours available"]}] #[org_schema_type="OpeningHoursSpecification"], - contactOption: Enum(TollFree,HearingImpairedSupported) #_[canonical={default="property",base=["contact option"]}] #[org_schema_type="ContactPointOption"], - productSupported: String #_[canonical={default="property",base=["product supported"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Message_recipient_productSupported"], - faxNumber: Entity(tt:phone_number) #_[canonical={default="property",base=["fax number"]}] #[org_schema_type="Text"] #[filterable=false], - availableLanguage: Array(String) #_[canonical={default="property",base=["available languages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Message_recipient_availableLanguage"], - telephone: Entity(tt:phone_number) #_[canonical={base=["telephone", "phone number"]}] #[org_schema_type="Text"] #[filterable=false], - email: Entity(tt:email_address) #_[canonical={default="property",base=["email"]}] #[org_schema_type="Text"] #[filterable=false], - contactType: Array(String) #_[canonical={default="property",base=["contact types"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Message_recipient_contactType"] - }) #_[canonical={default="passive_verb",passive_verb=["recipient"],base=["recipient"]}] #[org_schema_type="ContactPoint"], - out sender: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={default="property",base=["sender"],reverse_verb=["sendered"]}] #[org_schema_type="Person"], - out messageAttachment: Array(Entity(org.schema.Restaurant:CreativeWork)) #_[canonical={default="property",base=["message attachments"]}] #[org_schema_type="CreativeWork"], - out dateReceived: Date #_[canonical={default="property",base=["date received"]}] #[org_schema_type="DateTime"]) - #_[canonical="message"] - #_[confirmation="message"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query LifestyleModification extends MedicalEntity(out id: Entity(org.schema.Restaurant:LifestyleModification) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:LifestyleModification_name"]) - #_[canonical="lifestyle modification"] - #_[confirmation="lifestyle modification"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Offer extends Intangible(out id: Entity(org.schema.Restaurant:Offer) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Offer_name"], - out availability: Enum(SoldOut,PreOrder,PreSale,OnlineOnly,InStoreOnly,OutOfStock,InStock,LimitedAvailability,Discontinued) #_[canonical={default="property",base=["availability"]}] #[org_schema_type="ItemAvailability"], - out priceSpecification: { - maxPrice: Number #_[canonical={default="property",base=["max price"]}] #[org_schema_type="Number"], - eligibleQuantity: Number #_[canonical={default="property",base=["eligible quantity"]}] #[org_schema_type="QuantitativeValue"], - valueAddedTaxIncluded: Boolean #_[canonical={default="property",property_true=["value added tax included"],verb_true=["include value added tax", "includes value added tax"],base=["value added tax included"]}] #[org_schema_type="Boolean"], - minPrice: Number #_[canonical={default="property",base=["min price"]}] #[org_schema_type="Number"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - price: Currency #_[canonical={default="property",base=["price"]}] #[org_schema_type="Number"] - } #_[canonical={default="property",base=["price specification"]}] #[org_schema_type="PriceSpecification"], - out inventoryLevel: Number #_[canonical={default="property",base=["inventory level"]}] #[org_schema_type="QuantitativeValue"], - out aggregateRating: { - ratingCount: Number #_[canonical={default="property",base=["rating count"]}] #_[counted_object=["ratings"]] #[org_schema_type="Integer"], - reviewCount: Number #_[canonical={default="property",base=["review count"]}] #_[counted_object=["reviews"]] #[org_schema_type="Integer"], - ratingValue: Number #_[canonical={passive_verb=["rated # star"],base=["rating", "overall rating", "average rating", "customer rating", "review rating"],adjective=["# star"],adjective_argmax=["top-rated", "best"],projection_pronoun=["how"],passive_verb_projection=["rated"]}] #[org_schema_type="Number"] #[min_number=1] #[max_number=5], - ratingExplanation: Array(String) #_[canonical={default="property",base=["rating explanations"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_aggregateRating_ratingExplanation"], - reviewAspect: String #_[canonical={default="property",base=["review aspect"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_aggregateRating_reviewAspect"], - author: Entity(org.schema.Restaurant:Person) #_[canonical={base=["author"],preposition=["by"],passive_verb=["written by", "authored by", "uploaded by", "submitted by"],verb=["# wrote", "# authored"],base_projection=["author", "creator"],reverse_verb_projection=["wrote", "authored"],passive_verb_projection=["written | by", "authored | by"]}] #[org_schema_type="Person"] - } #_[canonical={default="property",base=["aggregate rating"]}] #[org_schema_type="AggregateRating"], - out availableAtOrFrom: Entity(org.schema.Restaurant:Place) #_[canonical={default="passive_verb",passive_verb=["available at or from"],base=["available at or from"]}] #[org_schema_type="Place"], - out category: Enum(AnaerobicActivity,LeisureTimeActivity,Flexibility,Balance,OccupationalActivity,StrengthTraining,AerobicActivity) #_[canonical={default="property",base=["category"]}] #[org_schema_type="PhysicalActivityCategory"], - out priceValidUntil: Date #_[canonical={default="property",base=["price valid until"]}] #[org_schema_type="Date"], - out warranty: { - durationOfWarranty: Measure(ms) #_[canonical={default="property",base=["duration of warranty"]}] #[org_schema_type="QuantitativeValue"], - warrantyScope: Entity(org.schema.Restaurant:WarrantyScope) #_[canonical={default="property",base=["warranty scope"]}] #[org_schema_type="WarrantyScope"] - } #_[canonical={default="property",base=["warranty"]}] #[org_schema_type="WarrantyPromise"], - out includesObject: { - typeOfGood: Entity(org.schema.Restaurant:Service) #_[canonical={default="property",base=["type of good"]}] #[org_schema_type="Service"], - unitCode: Entity(tt:url) #_[canonical={default="property",base=["unit code"]}] #[org_schema_type="URL"], - unitText: Array(String) #_[canonical={default="property",base=["unit texts"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_includesObject_unitText"], - businessFunction: Entity(org.schema.Restaurant:BusinessFunction) #_[canonical={default="property",base=["business function"]}] #[org_schema_type="BusinessFunction"], - amountOfThisGood: Number #_[canonical={default="property",base=["amount of this good"]}] #[org_schema_type="Number"] - } #_[canonical={default="verb",verb=["includes object"],base=["includes object"]}] #[org_schema_type="TypeAndQuantityNode"], - out eligibleQuantity: Number #_[canonical={default="property",base=["eligible quantity"]}] #[org_schema_type="QuantitativeValue"], - out advanceBookingRequirement: Number #_[canonical={default="property",base=["advance booking requirement"]}] #[org_schema_type="QuantitativeValue"], - out leaseLength: Measure(ms) #_[canonical={default="property",base=["lease length"]}] #[org_schema_type="Duration"], - out sku: String #_[canonical={default="passive_verb",passive_verb=["sku"],base=["sku"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_sku"], - out availabilityStarts: Date #_[canonical={default="property",base=["availability starts"]}] #[org_schema_type="Date"], - out availableDeliveryMethod: Enum(ParcelService,OnSitePickup,LockerDelivery) #_[canonical={default="property",base=["available delivery method"]}] #[org_schema_type="DeliveryMethod"], - out mpn: String #_[canonical={base=["manufacturer part number"]}] #[org_schema_type="Text"] #[filterable=false] #[string_values="org.schema.Restaurant:Offer_mpn"], - out serialNumber: String #_[canonical={default="property",base=["serial number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_serialNumber"], - out ineligibleRegion: { - line: Array(String) #_[canonical={default="property",base=["lines"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_ineligibleRegion_line"], - address: { - streetAddress: String #_[canonical={base=["street"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_ineligibleRegion_address_streetAddress"], - postOfficeBoxNumber: String #_[canonical={default="property",base=["post office box number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_ineligibleRegion_address_postOfficeBoxNumber"], - postalCode: String #_[canonical={default="property",base=["postal code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_ineligibleRegion_address_postalCode"], - addressLocality: String #_[canonical={base=["city"],preposition=["in #", "from #"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_ineligibleRegion_address_addressLocality"], - addressCountry: Entity(tt:country) #_[canonical={preposition=["in #", "from #"],base=["country"]}] #[org_schema_type="Text"], - addressRegion: Entity(tt:us_state) #_[canonical={preposition=["in #", "from #"],base=["state"]}] #[org_schema_type="Text"], - hoursAvailable: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["hours available"]}] #[org_schema_type="OpeningHoursSpecification"], - contactOption: Enum(TollFree,HearingImpairedSupported) #_[canonical={default="property",base=["contact option"]}] #[org_schema_type="ContactPointOption"], - productSupported: String #_[canonical={default="property",base=["product supported"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_ineligibleRegion_address_productSupported"], - faxNumber: Entity(tt:phone_number) #_[canonical={default="property",base=["fax number"]}] #[org_schema_type="Text"] #[filterable=false], - availableLanguage: Array(String) #_[canonical={default="property",base=["available languages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_ineligibleRegion_address_availableLanguage"], - telephone: Entity(tt:phone_number) #_[canonical={base=["telephone", "phone number"]}] #[org_schema_type="Text"] #[filterable=false], - email: Entity(tt:email_address) #_[canonical={default="property",base=["email"]}] #[org_schema_type="Text"] #[filterable=false], - contactType: Array(String) #_[canonical={default="property",base=["contact types"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_ineligibleRegion_address_contactType"] - } #_[canonical={default="property",base=["address"]}] #[org_schema_type="PostalAddress"], - postalCode: String #_[canonical={default="property",base=["postal code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_ineligibleRegion_postalCode"], - elevation: Number #_[canonical={default="property",base=["elevation"]}] #[org_schema_type="Number"], - polygon: Array(String) #_[canonical={default="passive_verb",passive_verb=["polygon"],base=["polygon"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_ineligibleRegion_polygon"], - circle: Array(String) #_[canonical={default="property",base=["circles"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_ineligibleRegion_circle"], - box: Array(String) #_[canonical={default="property",base=["boxes"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_ineligibleRegion_box"], - addressCountry: Entity(tt:country) #_[canonical={preposition=["in #", "from #"],base=["country"]}] #[org_schema_type="Text"] - } #_[canonical={default="property",base=["ineligible region"]}] #[org_schema_type="GeoShape"], - out gtin8: String #_[canonical={base=["gtin8"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_gtin8"], - out offeredBy: Array(Entity(org.schema.Restaurant:Organization)) #_[canonical={default="passive_verb",passive_verb=["offered by"],base=["offered by"]}] #[org_schema_type="Organization"], - out seller: Array(Entity(org.schema.Restaurant:Organization)) #_[canonical={default="property",base=["sellers"]}] #[org_schema_type="Organization"], - out review: Array(Entity(org.schema.Restaurant:Review)) #_[canonical={default="property",base=["reviews"]}] #[org_schema_type="Review"], - out eligibleCustomerType: Entity(org.schema.Restaurant:BusinessEntityType) #_[canonical={default="property",base=["eligible customer type"]}] #[org_schema_type="BusinessEntityType"], - out itemCondition: Enum(DamagedCondition,RefurbishedCondition,UsedCondition,NewCondition) #_[canonical={default="property",base=["item condition"]}] #[org_schema_type="OfferItemCondition"], - out itemOffered: Array(Entity(org.schema.Restaurant:Trip)) #_[canonical={default="property",base=["item offered"]}] #[org_schema_type="Trip"], - out eligibleDuration: Measure(ms) #_[canonical={default="property",base=["eligible duration"]}] #[org_schema_type="QuantitativeValue"], - out acceptedPaymentMethod: Entity(org.schema.Restaurant:PaymentMethod) #_[canonical={default="verb",verb=["accepted payment method"],base=["accepted payment method"]}] #[org_schema_type="PaymentMethod"], - out shippingDetails: { - deliveryTime: { - businessDays: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["business days"]}] #[org_schema_type="OpeningHoursSpecification"], - transitTime: Number #_[canonical={default="property",base=["transit time"]}] #[org_schema_type="QuantitativeValue"], - cutoffTime: Time #_[canonical={default="property",base=["cutoff time"]}] #[org_schema_type="Time"], - handlingTime: Number #_[canonical={default="passive_verb",passive_verb=["handling time"],base=["handling time"]}] #[org_schema_type="QuantitativeValue"] - } #_[canonical={default="property",base=["delivery time"]}] #[org_schema_type="ShippingDeliveryTime"], - doesNotShip: Boolean #_[canonical={default="verb",verb_true=["does not ship"],base=["does not ship"]}] #[org_schema_type="Boolean"], - shippingLabel: String #_[canonical={default="passive_verb",passive_verb=["shipping label"],base=["shipping label"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_shippingDetails_shippingLabel"], - transitTimeLabel: String #_[canonical={default="property",base=["transit time label"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_shippingDetails_transitTimeLabel"], - shippingRate: Currency #_[canonical={default="passive_verb",passive_verb=["shipping rate"],base=["shipping rate"]}] #[org_schema_type="MonetaryAmount"], - shippingSettingsLink: Entity(tt:url) #_[canonical={default="passive_verb",passive_verb=["shipping settings link"],base=["shipping settings link"]}] #[org_schema_type="URL"], - shippingDestination: { - postalCodeRange: Array({ - postalCodeEnd: String #_[canonical={default="property",base=["postal code end"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_shippingDetails_shippingDestination_postalCodeRange_postalCodeEnd"], - postalCodeBegin: String #_[canonical={default="passive_verb",passive_verb=["postal code begin"],base=["postal code begin"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_shippingDetails_shippingDestination_postalCodeRange_postalCodeBegin"] - }) #_[canonical={default="property",base=["postal code ranges"]}] #[org_schema_type="PostalCodeRangeSpecification"], - postalCode: String #_[canonical={default="property",base=["postal code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_shippingDetails_shippingDestination_postalCode"], - addressCountry: Entity(tt:country) #_[canonical={preposition=["in #", "from #"],base=["country"]}] #[org_schema_type="Text"], - addressRegion: Entity(tt:us_state) #_[canonical={preposition=["in #", "from #"],base=["state"]}] #[org_schema_type="Text"], - postalCodePrefix: Array(String) #_[canonical={default="passive_verb",passive_verb=["postal code prefix"],base=["postal code prefix"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_shippingDetails_shippingDestination_postalCodePrefix"] - } #_[canonical={default="passive_verb",passive_verb=["shipping destination"],base=["shipping destination"]}] #[org_schema_type="DefinedRegion"] - } #_[canonical={default="passive_verb",passive_verb=["shipping details"],base=["shipping details"]}] #[org_schema_type="OfferShippingDetails"], - out eligibleRegion: { - line: Array(String) #_[canonical={default="property",base=["lines"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_eligibleRegion_line"], - address: { - streetAddress: String #_[canonical={base=["street"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_eligibleRegion_address_streetAddress"], - postOfficeBoxNumber: String #_[canonical={default="property",base=["post office box number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_eligibleRegion_address_postOfficeBoxNumber"], - postalCode: String #_[canonical={default="property",base=["postal code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_eligibleRegion_address_postalCode"], - addressLocality: String #_[canonical={base=["city"],preposition=["in #", "from #"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_eligibleRegion_address_addressLocality"], - addressCountry: Entity(tt:country) #_[canonical={preposition=["in #", "from #"],base=["country"]}] #[org_schema_type="Text"], - addressRegion: Entity(tt:us_state) #_[canonical={preposition=["in #", "from #"],base=["state"]}] #[org_schema_type="Text"], - hoursAvailable: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["hours available"]}] #[org_schema_type="OpeningHoursSpecification"], - contactOption: Enum(TollFree,HearingImpairedSupported) #_[canonical={default="property",base=["contact option"]}] #[org_schema_type="ContactPointOption"], - productSupported: String #_[canonical={default="property",base=["product supported"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_eligibleRegion_address_productSupported"], - faxNumber: Entity(tt:phone_number) #_[canonical={default="property",base=["fax number"]}] #[org_schema_type="Text"] #[filterable=false], - availableLanguage: Array(String) #_[canonical={default="property",base=["available languages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_eligibleRegion_address_availableLanguage"], - telephone: Entity(tt:phone_number) #_[canonical={base=["telephone", "phone number"]}] #[org_schema_type="Text"] #[filterable=false], - email: Entity(tt:email_address) #_[canonical={default="property",base=["email"]}] #[org_schema_type="Text"] #[filterable=false], - contactType: Array(String) #_[canonical={default="property",base=["contact types"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_eligibleRegion_address_contactType"] - } #_[canonical={default="property",base=["address"]}] #[org_schema_type="PostalAddress"], - postalCode: String #_[canonical={default="property",base=["postal code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_eligibleRegion_postalCode"], - elevation: Number #_[canonical={default="property",base=["elevation"]}] #[org_schema_type="Number"], - polygon: Array(String) #_[canonical={default="passive_verb",passive_verb=["polygon"],base=["polygon"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_eligibleRegion_polygon"], - circle: Array(String) #_[canonical={default="property",base=["circles"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_eligibleRegion_circle"], - box: Array(String) #_[canonical={default="property",base=["boxes"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_eligibleRegion_box"], - addressCountry: Entity(tt:country) #_[canonical={preposition=["in #", "from #"],base=["country"]}] #[org_schema_type="Text"] - } #_[canonical={default="property",base=["eligible region"]}] #[org_schema_type="GeoShape"], - out validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - out businessFunction: Entity(org.schema.Restaurant:BusinessFunction) #_[canonical={default="property",base=["business function"]}] #[org_schema_type="BusinessFunction"], - out validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - out price: Currency #_[canonical={default="property",base=["price"]}] #[org_schema_type="Number"], - out gtin13: String #_[canonical={base=["gtin13"]}] #[org_schema_type="Text"] #[filterable=false] #[string_values="org.schema.Restaurant:Offer_gtin13"], - out gtin12: String #_[canonical={base=["gtin12"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_gtin12"], - out gtin14: String #_[canonical={base=["gtin14"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_gtin14"], - out gtin: Array(String) #_[canonical={default="passive_verb",passive_verb=["gtin"],base=["gtin"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Offer_gtin"], - out deliveryLeadTime: Number #_[canonical={default="property",base=["delivery lead time"]}] #[org_schema_type="QuantitativeValue"], - out availabilityEnds: Date #_[canonical={default="property",base=["availability ends"]}] #[org_schema_type="Date"]) - #_[canonical="offer"] - #_[confirmation="offer"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Demand extends Intangible(out id: Entity(org.schema.Restaurant:Demand) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Demand_name"], - out availability: Enum(SoldOut,PreOrder,PreSale,OnlineOnly,InStoreOnly,OutOfStock,InStock,LimitedAvailability,Discontinued) #_[canonical={default="property",base=["availability"]}] #[org_schema_type="ItemAvailability"], - out priceSpecification: { - maxPrice: Number #_[canonical={default="property",base=["max price"]}] #[org_schema_type="Number"], - eligibleQuantity: Number #_[canonical={default="property",base=["eligible quantity"]}] #[org_schema_type="QuantitativeValue"], - valueAddedTaxIncluded: Boolean #_[canonical={default="property",property_true=["value added tax included"],verb_true=["include value added tax", "includes value added tax"],base=["value added tax included"]}] #[org_schema_type="Boolean"], - minPrice: Number #_[canonical={default="property",base=["min price"]}] #[org_schema_type="Number"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - price: Currency #_[canonical={default="property",base=["price"]}] #[org_schema_type="Number"] - } #_[canonical={default="property",base=["price specification"]}] #[org_schema_type="PriceSpecification"], - out inventoryLevel: Number #_[canonical={default="property",base=["inventory level"]}] #[org_schema_type="QuantitativeValue"], - out availableAtOrFrom: Entity(org.schema.Restaurant:Place) #_[canonical={default="passive_verb",passive_verb=["available at or from"],base=["available at or from"]}] #[org_schema_type="Place"], - out warranty: { - durationOfWarranty: Measure(ms) #_[canonical={default="property",base=["duration of warranty"]}] #[org_schema_type="QuantitativeValue"], - warrantyScope: Entity(org.schema.Restaurant:WarrantyScope) #_[canonical={default="property",base=["warranty scope"]}] #[org_schema_type="WarrantyScope"] - } #_[canonical={default="property",base=["warranty"]}] #[org_schema_type="WarrantyPromise"], - out includesObject: { - typeOfGood: Entity(org.schema.Restaurant:Service) #_[canonical={default="property",base=["type of good"]}] #[org_schema_type="Service"], - unitCode: Entity(tt:url) #_[canonical={default="property",base=["unit code"]}] #[org_schema_type="URL"], - unitText: Array(String) #_[canonical={default="property",base=["unit texts"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Demand_includesObject_unitText"], - businessFunction: Entity(org.schema.Restaurant:BusinessFunction) #_[canonical={default="property",base=["business function"]}] #[org_schema_type="BusinessFunction"], - amountOfThisGood: Number #_[canonical={default="property",base=["amount of this good"]}] #[org_schema_type="Number"] - } #_[canonical={default="verb",verb=["includes object"],base=["includes object"]}] #[org_schema_type="TypeAndQuantityNode"], - out eligibleQuantity: Number #_[canonical={default="property",base=["eligible quantity"]}] #[org_schema_type="QuantitativeValue"], - out advanceBookingRequirement: Number #_[canonical={default="property",base=["advance booking requirement"]}] #[org_schema_type="QuantitativeValue"], - out sku: String #_[canonical={default="passive_verb",passive_verb=["sku"],base=["sku"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Demand_sku"], - out availabilityStarts: Date #_[canonical={default="property",base=["availability starts"]}] #[org_schema_type="Date"], - out availableDeliveryMethod: Enum(ParcelService,OnSitePickup,LockerDelivery) #_[canonical={default="property",base=["available delivery method"]}] #[org_schema_type="DeliveryMethod"], - out mpn: String #_[canonical={base=["manufacturer part number"]}] #[org_schema_type="Text"] #[filterable=false] #[string_values="org.schema.Restaurant:Demand_mpn"], - out serialNumber: String #_[canonical={default="property",base=["serial number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Demand_serialNumber"], - out ineligibleRegion: { - line: Array(String) #_[canonical={default="property",base=["lines"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Demand_ineligibleRegion_line"], - address: { - streetAddress: String #_[canonical={base=["street"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Demand_ineligibleRegion_address_streetAddress"], - postOfficeBoxNumber: String #_[canonical={default="property",base=["post office box number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Demand_ineligibleRegion_address_postOfficeBoxNumber"], - postalCode: String #_[canonical={default="property",base=["postal code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Demand_ineligibleRegion_address_postalCode"], - addressLocality: String #_[canonical={base=["city"],preposition=["in #", "from #"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Demand_ineligibleRegion_address_addressLocality"], - addressCountry: Entity(tt:country) #_[canonical={preposition=["in #", "from #"],base=["country"]}] #[org_schema_type="Text"], - addressRegion: Entity(tt:us_state) #_[canonical={preposition=["in #", "from #"],base=["state"]}] #[org_schema_type="Text"], - hoursAvailable: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["hours available"]}] #[org_schema_type="OpeningHoursSpecification"], - contactOption: Enum(TollFree,HearingImpairedSupported) #_[canonical={default="property",base=["contact option"]}] #[org_schema_type="ContactPointOption"], - productSupported: String #_[canonical={default="property",base=["product supported"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Demand_ineligibleRegion_address_productSupported"], - faxNumber: Entity(tt:phone_number) #_[canonical={default="property",base=["fax number"]}] #[org_schema_type="Text"] #[filterable=false], - availableLanguage: Array(String) #_[canonical={default="property",base=["available languages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Demand_ineligibleRegion_address_availableLanguage"], - telephone: Entity(tt:phone_number) #_[canonical={base=["telephone", "phone number"]}] #[org_schema_type="Text"] #[filterable=false], - email: Entity(tt:email_address) #_[canonical={default="property",base=["email"]}] #[org_schema_type="Text"] #[filterable=false], - contactType: Array(String) #_[canonical={default="property",base=["contact types"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Demand_ineligibleRegion_address_contactType"] - } #_[canonical={default="property",base=["address"]}] #[org_schema_type="PostalAddress"], - postalCode: String #_[canonical={default="property",base=["postal code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Demand_ineligibleRegion_postalCode"], - elevation: Number #_[canonical={default="property",base=["elevation"]}] #[org_schema_type="Number"], - polygon: Array(String) #_[canonical={default="passive_verb",passive_verb=["polygon"],base=["polygon"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Demand_ineligibleRegion_polygon"], - circle: Array(String) #_[canonical={default="property",base=["circles"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Demand_ineligibleRegion_circle"], - box: Array(String) #_[canonical={default="property",base=["boxes"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Demand_ineligibleRegion_box"], - addressCountry: Entity(tt:country) #_[canonical={preposition=["in #", "from #"],base=["country"]}] #[org_schema_type="Text"] - } #_[canonical={default="property",base=["ineligible region"]}] #[org_schema_type="GeoShape"], - out gtin8: String #_[canonical={base=["gtin8"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Demand_gtin8"], - out seller: Array(Entity(org.schema.Restaurant:Organization)) #_[canonical={default="property",base=["sellers"]}] #[org_schema_type="Organization"], - out eligibleCustomerType: Entity(org.schema.Restaurant:BusinessEntityType) #_[canonical={default="property",base=["eligible customer type"]}] #[org_schema_type="BusinessEntityType"], - out itemCondition: Enum(DamagedCondition,RefurbishedCondition,UsedCondition,NewCondition) #_[canonical={default="property",base=["item condition"]}] #[org_schema_type="OfferItemCondition"], - out itemOffered: Array(Entity(org.schema.Restaurant:Trip)) #_[canonical={default="property",base=["item offered"]}] #[org_schema_type="Trip"], - out eligibleDuration: Measure(ms) #_[canonical={default="property",base=["eligible duration"]}] #[org_schema_type="QuantitativeValue"], - out acceptedPaymentMethod: Entity(org.schema.Restaurant:PaymentMethod) #_[canonical={default="verb",verb=["accepted payment method"],base=["accepted payment method"]}] #[org_schema_type="PaymentMethod"], - out eligibleRegion: { - line: Array(String) #_[canonical={default="property",base=["lines"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Demand_eligibleRegion_line"], - address: { - streetAddress: String #_[canonical={base=["street"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Demand_eligibleRegion_address_streetAddress"], - postOfficeBoxNumber: String #_[canonical={default="property",base=["post office box number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Demand_eligibleRegion_address_postOfficeBoxNumber"], - postalCode: String #_[canonical={default="property",base=["postal code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Demand_eligibleRegion_address_postalCode"], - addressLocality: String #_[canonical={base=["city"],preposition=["in #", "from #"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Demand_eligibleRegion_address_addressLocality"], - addressCountry: Entity(tt:country) #_[canonical={preposition=["in #", "from #"],base=["country"]}] #[org_schema_type="Text"], - addressRegion: Entity(tt:us_state) #_[canonical={preposition=["in #", "from #"],base=["state"]}] #[org_schema_type="Text"], - hoursAvailable: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["hours available"]}] #[org_schema_type="OpeningHoursSpecification"], - contactOption: Enum(TollFree,HearingImpairedSupported) #_[canonical={default="property",base=["contact option"]}] #[org_schema_type="ContactPointOption"], - productSupported: String #_[canonical={default="property",base=["product supported"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Demand_eligibleRegion_address_productSupported"], - faxNumber: Entity(tt:phone_number) #_[canonical={default="property",base=["fax number"]}] #[org_schema_type="Text"] #[filterable=false], - availableLanguage: Array(String) #_[canonical={default="property",base=["available languages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Demand_eligibleRegion_address_availableLanguage"], - telephone: Entity(tt:phone_number) #_[canonical={base=["telephone", "phone number"]}] #[org_schema_type="Text"] #[filterable=false], - email: Entity(tt:email_address) #_[canonical={default="property",base=["email"]}] #[org_schema_type="Text"] #[filterable=false], - contactType: Array(String) #_[canonical={default="property",base=["contact types"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Demand_eligibleRegion_address_contactType"] - } #_[canonical={default="property",base=["address"]}] #[org_schema_type="PostalAddress"], - postalCode: String #_[canonical={default="property",base=["postal code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Demand_eligibleRegion_postalCode"], - elevation: Number #_[canonical={default="property",base=["elevation"]}] #[org_schema_type="Number"], - polygon: Array(String) #_[canonical={default="passive_verb",passive_verb=["polygon"],base=["polygon"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Demand_eligibleRegion_polygon"], - circle: Array(String) #_[canonical={default="property",base=["circles"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Demand_eligibleRegion_circle"], - box: Array(String) #_[canonical={default="property",base=["boxes"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Demand_eligibleRegion_box"], - addressCountry: Entity(tt:country) #_[canonical={preposition=["in #", "from #"],base=["country"]}] #[org_schema_type="Text"] - } #_[canonical={default="property",base=["eligible region"]}] #[org_schema_type="GeoShape"], - out validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - out businessFunction: Entity(org.schema.Restaurant:BusinessFunction) #_[canonical={default="property",base=["business function"]}] #[org_schema_type="BusinessFunction"], - out validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - out gtin13: String #_[canonical={base=["gtin13"]}] #[org_schema_type="Text"] #[filterable=false] #[string_values="org.schema.Restaurant:Demand_gtin13"], - out gtin12: String #_[canonical={base=["gtin12"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Demand_gtin12"], - out gtin14: String #_[canonical={base=["gtin14"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Demand_gtin14"], - out gtin: Array(String) #_[canonical={default="passive_verb",passive_verb=["gtin"],base=["gtin"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Demand_gtin"], - out deliveryLeadTime: Number #_[canonical={default="property",base=["delivery lead time"]}] #[org_schema_type="QuantitativeValue"], - out availabilityEnds: Date #_[canonical={default="property",base=["availability ends"]}] #[org_schema_type="Date"]) - #_[canonical="demand"] - #_[confirmation="demand"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query TechArticle extends Article(out id: Entity(org.schema.Restaurant:TechArticle) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:TechArticle_name"], - out dependencies: String #_[canonical={default="passive_verb",passive_verb=["dependencies"],base=["dependencies"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:TechArticle_dependencies"], - out proficiencyLevel: String #_[canonical={default="property",base=["proficiency level"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:TechArticle_proficiencyLevel"]) - #_[canonical="tech article"] - #_[confirmation="tech article"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query APIReference extends TechArticle(out id: Entity(org.schema.Restaurant:APIReference) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:APIReference_name"], - out executableLibraryName: String #_[canonical={default="property",base=["executable library name"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:APIReference_executableLibraryName"], - out assemblyVersion: String #_[canonical={default="property",base=["assembly version"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:APIReference_assemblyVersion"], - out targetPlatform: String #_[canonical={default="property",base=["target platform"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:APIReference_targetPlatform"], - out programmingModel: String #_[canonical={default="property",base=["programming model"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:APIReference_programmingModel"]) - #_[canonical="apireference"] - #_[confirmation="apireference"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query DefinedTermSet extends CreativeWork(out id: Entity(org.schema.Restaurant:DefinedTermSet) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:DefinedTermSet_name"], - out hasDefinedTerm: Array(Entity(org.schema.Restaurant:DefinedTerm)) #_[canonical={default="property",base=["defined term"]}] #[org_schema_type="DefinedTerm"]) - #_[canonical="defined term set"] - #_[confirmation="defined term set"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query BusTrip extends Trip(out id: Entity(org.schema.Restaurant:BusTrip) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:BusTrip_name"], - out arrivalBusStop: Entity(org.schema.Restaurant:BusStop) #_[canonical={default="property",base=["arrival bus stop"]}] #[org_schema_type="BusStop"], - out departureBusStop: Entity(org.schema.Restaurant:BusStation) #_[canonical={default="property",base=["departure bus stop"]}] #[org_schema_type="BusStation"], - out busName: String #_[canonical={default="property",base=["bus name"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:BusTrip_busName"], - out busNumber: String #_[canonical={default="property",base=["bus number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:BusTrip_busNumber"]) - #_[canonical="bus trip"] - #_[confirmation="bus trip"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ScholarlyArticle extends Article(out id: Entity(org.schema.Restaurant:ScholarlyArticle) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ScholarlyArticle_name"]) - #_[canonical="scholarly article"] - #_[confirmation="scholarly article"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MedicalScholarlyArticle extends ScholarlyArticle(out id: Entity(org.schema.Restaurant:MedicalScholarlyArticle) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MedicalScholarlyArticle_name"], - out publicationType: String #_[canonical={default="property",base=["publication type"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:MedicalScholarlyArticle_publicationType"]) - #_[canonical="medical scholarly article"] - #_[confirmation="medical scholarly article"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query HomeGoodsStore extends Store(out id: Entity(org.schema.Restaurant:HomeGoodsStore) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:HomeGoodsStore_name"]) - #_[canonical="home goods store"] - #_[confirmation="home goods store"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Joint extends AnatomicalStructure(out id: Entity(org.schema.Restaurant:Joint) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Joint_name"], - out functionalClass: String #_[canonical={default="property",base=["functional class"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Joint_functionalClass"], - out biomechnicalClass: String #_[canonical={default="property",base=["biomechnical class"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Joint_biomechnicalClass"], - out structuralClass: String #_[canonical={default="property",base=["structural class"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Joint_structuralClass"]) - #_[canonical="joint"] - #_[confirmation="joint"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query EducationalOccupationalCredential extends CreativeWork(out id: Entity(org.schema.Restaurant:EducationalOccupationalCredential) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:EducationalOccupationalCredential_name"], - out educationalLevel: Entity(tt:url) #_[canonical={default="property",base=["educational level"]}] #[org_schema_type="URL"], - out recognizedBy: Array(Entity(org.schema.Restaurant:Organization)) #_[canonical={default="passive_verb",passive_verb=["recognized by"],base=["recognized by"]}] #[org_schema_type="Organization"], - out validFor: Measure(ms) #_[canonical={default="passive_verb",passive_verb=["valid for"],base=["valid for"]}] #[org_schema_type="Duration"], - out competencyRequired: Entity(tt:url) #_[canonical={default="property",base=["competency required"]}] #[org_schema_type="URL"], - out credentialCategory: Entity(tt:url) #_[canonical={default="property",base=["credential category"]}] #[org_schema_type="URL"], - out validIn: Entity(org.schema.Restaurant:AdministrativeArea) #_[canonical={default="passive_verb",passive_verb=["valid in"],base=["valid in"]}] #[org_schema_type="AdministrativeArea"]) - #_[canonical="educational occupational credential"] - #_[confirmation="educational occupational credential"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query EducationEvent extends Event(out id: Entity(org.schema.Restaurant:EducationEvent) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:EducationEvent_name"], - out educationalLevel: Entity(tt:url) #_[canonical={default="property",base=["educational level"]}] #[org_schema_type="URL"], - out teaches: String #_[canonical={default="verb",verb=["teaches"],base=["teaches"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:EducationEvent_teaches"], - out assesses: String #_[canonical={default="verb",verb=["assesses"],base=["assesses"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:EducationEvent_assesses"]) - #_[canonical="education event"] - #_[confirmation="education event"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query LearningResource extends CreativeWork(out id: Entity(org.schema.Restaurant:LearningResource) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:LearningResource_name"], - out educationalLevel: Entity(tt:url) #_[canonical={default="property",base=["educational level"]}] #[org_schema_type="URL"], - out teaches: String #_[canonical={default="verb",verb=["teaches"],base=["teaches"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:LearningResource_teaches"], - out educationalUse: String #_[canonical={default="property",base=["educational use"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:LearningResource_educationalUse"], - out assesses: String #_[canonical={default="verb",verb=["assesses"],base=["assesses"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:LearningResource_assesses"], - out educationalAlignment: Array(Entity(org.schema.Restaurant:AlignmentObject)) #_[canonical={default="property",base=["educational alignments"]}] #[org_schema_type="AlignmentObject"]) - #_[canonical="learning resource"] - #_[confirmation="learning resource"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query TouristTrip extends Trip(out id: Entity(org.schema.Restaurant:TouristTrip) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:TouristTrip_name"], - out touristType: String #_[canonical={default="property",base=["tourist type"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:TouristTrip_touristType"]) - #_[canonical="tourist trip"] - #_[confirmation="tourist trip"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query SportingGoodsStore extends Store(out id: Entity(org.schema.Restaurant:SportingGoodsStore) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:SportingGoodsStore_name"]) - #_[canonical="sporting goods store"] - #_[confirmation="sporting goods store"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Game extends CreativeWork(out id: Entity(org.schema.Restaurant:Game) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Game_name"], - out gameLocation: Entity(tt:url) #_[canonical={default="property",base=["game location"]}] #[org_schema_type="URL"], - out quest: Entity(org.schema.Restaurant:Thing) #_[canonical={default="property",base=["quest"]}] #[org_schema_type="Thing"], - out gameItem: Array(Entity(org.schema.Restaurant:Thing)) #_[canonical={default="property",base=["game items"]}] #[org_schema_type="Thing"], - out numberOfPlayers: Number #_[canonical={default="property",base=["number of players"]}] #_[counted_object=["players"]] #[org_schema_type="QuantitativeValue"], - out characterAttribute: Array(Entity(org.schema.Restaurant:Thing)) #_[canonical={default="property",base=["character attribute"]}] #[org_schema_type="Thing"]) - #_[canonical="game"] - #_[confirmation="game"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query VideoGame extends Game, SoftwareApplication(out id: Entity(org.schema.Restaurant:VideoGame) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:VideoGame_name"], - out gameTip: Entity(org.schema.Restaurant:CreativeWork) #_[canonical={default="property",base=["game tip"]}] #[org_schema_type="CreativeWork"], - out musicBy: Entity(org.schema.Restaurant:MusicGroup) #_[canonical={default="property",base=["music by"]}] #[org_schema_type="MusicGroup"], - out gamePlatform: Entity(tt:url) #_[canonical={default="property",base=["game platform"]}] #[org_schema_type="URL"], - out gameServer: Entity(org.schema.Restaurant:GameServer) #_[canonical={default="property",base=["game server"]}] #[org_schema_type="GameServer"], - out actor: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={base=["actor", "actress"],property=["#", "# in the cast"],passive_verb=["played by", "acted by"],verb=["stars", "# acted", "# acted in", "# was in"],base_projection=["actor", "actress"],verb_projection=["have"],reverse_verb_projection=["acted in"],preposition_projection=["in"]}] #[org_schema_type="Person"], - out playMode: Enum(CoOp,MultiPlayer,SinglePlayer) #_[canonical={default="property",base=["play mode"]}] #[org_schema_type="GamePlayMode"], - out director: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={base=["director"],passive_verb=["directed by"],verb=["# directs", "# directed"],reverse_verb_projection=["directed"]}] #[org_schema_type="Person"], - out cheatCode: Entity(org.schema.Restaurant:CreativeWork) #_[canonical={default="property",base=["cheat code"]}] #[org_schema_type="CreativeWork"]) - #_[canonical="video game"] - #_[confirmation="video game"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MedicalTestPanel extends MedicalTest(out id: Entity(org.schema.Restaurant:MedicalTestPanel) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MedicalTestPanel_name"], - out subTest: Array(Entity(org.schema.Restaurant:MedicalTest)) #_[canonical={default="property",base=["sub tests"]}] #[org_schema_type="MedicalTest"]) - #_[canonical="medical test panel"] - #_[confirmation="medical test panel"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query PeopleAudience extends Audience(out id: Entity(org.schema.Restaurant:PeopleAudience) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:PeopleAudience_name"], - out suggestedMaxAge: Number #_[canonical={default="verb",verb=["suggested max age"],base=["suggested max age"]}] #[org_schema_type="Number"], - out suggestedMinAge: Number #_[canonical={default="verb",verb=["suggested min age"],base=["suggested min age"]}] #[org_schema_type="Number"], - out requiredMinAge: Number #_[canonical={default="passive_verb",passive_verb=["required min age"],base=["required min age"]}] #[org_schema_type="Integer"], - out healthCondition: Entity(org.schema.Restaurant:MedicalCondition) #_[canonical={default="property",base=["health condition"]}] #[org_schema_type="MedicalCondition"], - out requiredGender: String #_[canonical={default="passive_verb",passive_verb=["required gender"],base=["required gender"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:PeopleAudience_requiredGender"], - out requiredMaxAge: Number #_[canonical={default="passive_verb",passive_verb=["required max age"],base=["required max age"]}] #[org_schema_type="Integer"], - out suggestedGender: String #_[canonical={default="verb",verb=["suggested # gender"],base=["gender"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:PeopleAudience_suggestedGender"]) - #_[canonical="people audience"] - #_[confirmation="people audience"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MedicalAudience extends PeopleAudience, Audience(out id: Entity(org.schema.Restaurant:MedicalAudience) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MedicalAudience_name"]) - #_[canonical="medical audience"] - #_[confirmation="medical audience"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query DigitalDocument extends CreativeWork(out id: Entity(org.schema.Restaurant:DigitalDocument) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:DigitalDocument_name"], - out hasDigitalDocumentPermission: Array(Entity(org.schema.Restaurant:DigitalDocumentPermission)) #_[canonical={default="property",base=["digital document permission"]}] #[org_schema_type="DigitalDocumentPermission"]) - #_[canonical="digital document"] - #_[confirmation="digital document"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query TextDigitalDocument extends DigitalDocument(out id: Entity(org.schema.Restaurant:TextDigitalDocument) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:TextDigitalDocument_name"]) - #_[canonical="text digital document"] - #_[confirmation="text digital document"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query TaxiReservation extends Reservation(out id: Entity(org.schema.Restaurant:TaxiReservation) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:TaxiReservation_name"], - out partySize: Number #_[canonical={default="property",base=["party size"]}] #[org_schema_type="Integer"], - out pickupLocation: Entity(org.schema.Restaurant:Place) #_[canonical={default="property",base=["pickup location"]}] #[org_schema_type="Place"], - out pickupTime: Date #_[canonical={default="property",base=["pickup time"]}] #[org_schema_type="DateTime"]) - #_[canonical="taxi reservation"] - #_[confirmation="taxi reservation"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query FinancialProduct extends Service(out id: Entity(org.schema.Restaurant:FinancialProduct) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:FinancialProduct_name"], - out interestRate: Number #_[canonical={default="property",base=["interest rate"]}] #[org_schema_type="Number"], - out feesAndCommissionsSpecification: Entity(tt:url) #_[canonical={default="property",base=["fees and commissions specification"]}] #[org_schema_type="URL"], - out annualPercentageRate: Number #_[canonical={default="property",base=["annual percentage rate"]}] #[org_schema_type="Number"]) - #_[canonical="financial product"] - #_[confirmation="financial product"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query LoanOrCredit extends FinancialProduct(out id: Entity(org.schema.Restaurant:LoanOrCredit) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:LoanOrCredit_name"], - out currency: String #_[canonical={default="property",base=["currency"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:LoanOrCredit_currency"], - out renegotiableLoan: Boolean #_[canonical={default="property",property_true=["renegotiable loan"],base=["renegotiable loan"]}] #[org_schema_type="Boolean"], - out loanRepaymentForm: Array({ - loanPaymentFrequency: Number #_[canonical={default="property",base=["loan payment frequency"]}] #[org_schema_type="Number"], - earlyPrepaymentPenalty: Currency #_[canonical={default="property",base=["early prepayment penalty"]}] #[org_schema_type="MonetaryAmount"], - loanPaymentAmount: Currency #_[canonical={default="property",base=["loan payment amount"]}] #[org_schema_type="MonetaryAmount"], - downPayment: Array(Number) #_[canonical={default="property",base=["down payments"]}] #[org_schema_type="Number"], - numberOfLoanPayments: Number #_[canonical={default="property",base=["number of loan payments"]}] #_[counted_object=["loan payments"]] #[org_schema_type="Number"] - }) #_[canonical={default="property",base=["loan repayment forms"]}] #[org_schema_type="RepaymentSpecification"], - out gracePeriod: Measure(ms) #_[canonical={default="property",base=["grace period"]}] #[org_schema_type="Duration"], - out loanTerm: Number #_[canonical={default="property",base=["loan term"]}] #[org_schema_type="QuantitativeValue"], - out loanType: Entity(tt:url) #_[canonical={default="property",base=["loan type"]}] #[org_schema_type="URL"], - out amount: Currency #_[canonical={default="property",base=["amount"]}] #[org_schema_type="MonetaryAmount"], - out requiredCollateral: String #_[canonical={default="passive_verb",passive_verb=["required collateral"],base=["required collateral"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:LoanOrCredit_requiredCollateral"], - out recourseLoan: Boolean #_[canonical={default="property",property_true=["recourse loan"],base=["recourse loan"]}] #[org_schema_type="Boolean"]) - #_[canonical="loan or credit"] - #_[confirmation="loan or credit"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Role extends Intangible(out id: Entity(org.schema.Restaurant:Role) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Role_name"], - out endDate: Date #_[canonical={default="property",base=["end date"]}] #[org_schema_type="Date"], - out roleName: Array(Entity(tt:url)) #_[canonical={default="property",base=["role names"]}] #[org_schema_type="URL"], - out startDate: Date #_[canonical={default="property",base=["start date"]}] #[org_schema_type="Date"]) - #_[canonical="role"] - #_[confirmation="role"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query OrganizationRole extends Role(out id: Entity(org.schema.Restaurant:OrganizationRole) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:OrganizationRole_name"], - out numberedPosition: Array(Number) #_[canonical={default="verb",verb=["numbered # position"],base=["position"]}] #[org_schema_type="Number"]) - #_[canonical="organization role"] - #_[confirmation="organization role"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query EmployeeRole extends OrganizationRole(out id: Entity(org.schema.Restaurant:EmployeeRole) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:EmployeeRole_name"], - out salaryCurrency: String #_[canonical={default="property",base=["salary currency"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:EmployeeRole_salaryCurrency"], - out baseSalary: Number #_[canonical={default="property",base=["base salary"]}] #[org_schema_type="Number"]) - #_[canonical="employee role"] - #_[confirmation="employee role"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query JobPosting extends Intangible(out id: Entity(org.schema.Restaurant:JobPosting) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:JobPosting_name"], - out salaryCurrency: String #_[canonical={default="property",base=["salary currency"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:JobPosting_salaryCurrency"], - out jobBenefits: String #_[canonical={default="property",base=["job benefits"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:JobPosting_jobBenefits"], - out applicationContact: { - hoursAvailable: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["hours available"]}] #[org_schema_type="OpeningHoursSpecification"], - contactOption: Enum(TollFree,HearingImpairedSupported) #_[canonical={default="property",base=["contact option"]}] #[org_schema_type="ContactPointOption"], - productSupported: String #_[canonical={default="property",base=["product supported"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:JobPosting_applicationContact_productSupported"], - faxNumber: Entity(tt:phone_number) #_[canonical={default="property",base=["fax number"]}] #[org_schema_type="Text"] #[filterable=false], - availableLanguage: Array(String) #_[canonical={default="property",base=["available languages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:JobPosting_applicationContact_availableLanguage"], - telephone: Entity(tt:phone_number) #_[canonical={base=["telephone", "phone number"]}] #[org_schema_type="Text"] #[filterable=false], - email: Entity(tt:email_address) #_[canonical={default="property",base=["email"]}] #[org_schema_type="Text"] #[filterable=false], - contactType: Array(String) #_[canonical={default="property",base=["contact types"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:JobPosting_applicationContact_contactType"] - } #_[canonical={default="property",base=["application contact"]}] #[org_schema_type="ContactPoint"], - out eligibilityToWorkRequirement: String #_[canonical={default="property",base=["eligibility to work requirement"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:JobPosting_eligibilityToWorkRequirement"], - out datePosted: Date #_[canonical={default="property",base=["date posted"]}] #[org_schema_type="Date"], - out sensoryRequirement: Array(Entity(tt:url)) #_[canonical={default="property",base=["sensory requirements"]}] #[org_schema_type="URL"], - out skills: Array(String) #_[canonical={default="property",base=["skills"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:JobPosting_skills"], - out securityClearanceRequirement: Array(Entity(tt:url)) #_[canonical={default="property",base=["security clearance requirements"]}] #[org_schema_type="URL"], - out educationRequirements: String #_[canonical={default="property",base=["education requirements"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:JobPosting_educationRequirements"], - out applicantLocationRequirements: Entity(org.schema.Restaurant:AdministrativeArea) #_[canonical={default="property",base=["applicant location requirements"]}] #[org_schema_type="AdministrativeArea"], - out jobImmediateStart: Boolean #_[canonical={default="property",property_true=["job immediate start"],base=["job immediate start"]}] #[org_schema_type="Boolean"], - out jobStartDate: Date #_[canonical={default="property",base=["job start date"]}] #[org_schema_type="Date"], - out qualifications: String #_[canonical={default="property",base=["qualifications"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:JobPosting_qualifications"], - out employmentUnit: Entity(org.schema.Restaurant:Organization) #_[canonical={default="property",base=["employment unit"]}] #[org_schema_type="Organization"], - out incentiveCompensation: String #_[canonical={default="property",base=["incentive compensation"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:JobPosting_incentiveCompensation"], - out jobLocationType: Array(String) #_[canonical={default="property",base=["job location types"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:JobPosting_jobLocationType"], - out employmentType: String #_[canonical={default="property",base=["employment type"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:JobPosting_employmentType"], - out physicalRequirement: Array(Entity(tt:url)) #_[canonical={default="property",base=["physical requirements"]}] #[org_schema_type="URL"], - out estimatedSalary: Array(Currency) #_[canonical={default="passive_verb",passive_verb=["estimated salaries"],base=["estimated salary"]}] #[org_schema_type="MonetaryAmount"], - out jobLocation: Array(Entity(org.schema.Restaurant:Place)) #_[canonical={default="property",base=["job locations"]}] #[org_schema_type="Place"], - out title: String #_[canonical={default="property",base=["title"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:JobPosting_title"], - out industry: String #_[canonical={default="property",base=["industry"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:JobPosting_industry"], - out workHours: String #_[canonical={default="property",base=["work hours"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:JobPosting_workHours"], - out totalJobOpenings: Number #_[canonical={default="property",base=["total job openings"]}] #[org_schema_type="Integer"], - out responsibilities: String #_[canonical={default="property",base=["responsibilities"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:JobPosting_responsibilities"], - out baseSalary: Number #_[canonical={default="property",base=["base salary"]}] #[org_schema_type="Number"], - out validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - out hiringOrganization: Entity(org.schema.Restaurant:Organization) #_[canonical={default="passive_verb",passive_verb=["hiring organization"],base=["hiring organization"]}] #[org_schema_type="Organization"], - out employerOverview: Array(String) #_[canonical={default="property",base=["employer overviews"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:JobPosting_employerOverview"], - out relevantOccupation: Entity(org.schema.Restaurant:Occupation) #_[canonical={default="property",base=["relevant occupation"]}] #[org_schema_type="Occupation"], - out specialCommitments: String #_[canonical={default="property",base=["special commitments"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:JobPosting_specialCommitments"], - out occupationalCategory: Array(String) #_[canonical={default="property",base=["occupational categories"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:JobPosting_occupationalCategory"], - out experienceRequirements: String #_[canonical={default="property",base=["experience requirements"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:JobPosting_experienceRequirements"]) - #_[canonical="job posting"] - #_[confirmation="job posting"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query SomeProducts extends Product(out id: Entity(org.schema.Restaurant:SomeProducts) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:SomeProducts_name"], - out inventoryLevel: Number #_[canonical={default="property",base=["inventory level"]}] #[org_schema_type="QuantitativeValue"]) - #_[canonical="some products"] - #_[confirmation="some products"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query CategoryCodeSet extends DefinedTermSet(out id: Entity(org.schema.Restaurant:CategoryCodeSet) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:CategoryCodeSet_name"], - out hasCategoryCode: Array(Entity(org.schema.Restaurant:CategoryCode)) #_[canonical={default="property",base=["category code"]}] #[org_schema_type="CategoryCode"]) - #_[canonical="category code set"] - #_[confirmation="category code set"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query BusOrCoach extends Vehicle(out id: Entity(org.schema.Restaurant:BusOrCoach) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:BusOrCoach_name"], - out acrissCode: String #_[canonical={default="property",base=["acriss code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:BusOrCoach_acrissCode"], - out roofLoad: Number #_[canonical={default="property",base=["roof load"]}] #[org_schema_type="QuantitativeValue"]) - #_[canonical="bus or coach"] - #_[confirmation="bus or coach"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query AutoWash extends AutomotiveBusiness(out id: Entity(org.schema.Restaurant:AutoWash) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:AutoWash_name"]) - #_[canonical="auto wash"] - #_[confirmation="auto wash"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query OfficeEquipmentStore extends Store(out id: Entity(org.schema.Restaurant:OfficeEquipmentStore) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:OfficeEquipmentStore_name"]) - #_[canonical="office equipment store"] - #_[confirmation="office equipment store"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query LinkRole extends Role(out id: Entity(org.schema.Restaurant:LinkRole) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:LinkRole_name"], - out linkRelationship: String #_[canonical={default="property",base=["link relationship"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:LinkRole_linkRelationship"], - out inLanguage: Entity(tt:iso_lang_code) #_[canonical={base=["language"],adjective=["#"],preposition=["in"],passive_verb=["written in #"],reverse_property=["# version of"],base_projection=["language"],preposition_projection=["in"],passive_verb_projection=["written | in"]}] #[org_schema_type="Text"]) - #_[canonical="link role"] - #_[confirmation="link role"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query GatedResidenceCommunity extends Residence(out id: Entity(org.schema.Restaurant:GatedResidenceCommunity) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:GatedResidenceCommunity_name"]) - #_[canonical="gated residence community"] - #_[confirmation="gated residence community"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query AdministrativeArea extends Place(out id: Entity(org.schema.Restaurant:AdministrativeArea) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:AdministrativeArea_name"]) - #_[canonical="administrative area"] - #_[confirmation="administrative area"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Country extends AdministrativeArea(out id: Entity(org.schema.Restaurant:Country) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Country_name"]) - #_[canonical="country"] - #_[confirmation="country"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query EntertainmentBusiness extends LocalBusiness(out id: Entity(org.schema.Restaurant:EntertainmentBusiness) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:EntertainmentBusiness_name"]) - #_[canonical="entertainment business"] - #_[confirmation="entertainment business"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MovieTheater extends EntertainmentBusiness, CivicStructure(out id: Entity(org.schema.Restaurant:MovieTheater) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MovieTheater_name"], - out screenCount: Number #_[canonical={default="property",base=["screen count"]}] #_[counted_object=["screens"]] #[org_schema_type="Number"]) - #_[canonical="movie theater"] - #_[confirmation="movie theater"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query UserComments extends UserInteraction(out id: Entity(org.schema.Restaurant:UserComments) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:UserComments_name"], - out commentText: String #_[canonical={default="property",base=["comment text"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:UserComments_commentText"], - out commentTime: Date #_[canonical={default="property",base=["comment time"]}] #[org_schema_type="Date"], - out creator: Array(Entity(org.schema.Movie:Person)) #_[canonical={base=["creator", "producer"],passive_verb=["created by", "produced by", "made by"],verb=["# created", "# creates", "# produced", "# made"],base_projection=["creator", "producer"],reverse_verb_projection=["created", "produced", "made"],passive_verb_projection=["created | by", "produced | by", "made | by"]}] #[org_schema_type="Person"], - out replyToUrl: Entity(tt:url) #_[canonical={default="property",base=["reply to url"]}] #[org_schema_type="URL"], - out discusses: Entity(org.schema.Restaurant:CreativeWork) #_[canonical={default="verb",verb=["discusses"],base=["discusses"]}] #[org_schema_type="CreativeWork"]) - #_[canonical="user comments"] - #_[confirmation="user comments"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ParentAudience extends PeopleAudience(out id: Entity(org.schema.Restaurant:ParentAudience) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ParentAudience_name"], - out childMinAge: Number #_[canonical={default="property",base=["child min age"]}] #[org_schema_type="Number"], - out childMaxAge: Number #_[canonical={default="property",base=["child max age"]}] #[org_schema_type="Number"]) - #_[canonical="parent audience"] - #_[confirmation="parent audience"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MedicalDevice extends MedicalEntity(out id: Entity(org.schema.Restaurant:MedicalDevice) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MedicalDevice_name"], - out adverseOutcome: Array(Entity(org.schema.Restaurant:MedicalEntity)) #_[canonical={default="property",base=["adverse outcomes"]}] #[org_schema_type="MedicalEntity"], - out postOp: Array(String) #_[canonical={default="property",base=["post op"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:MedicalDevice_postOp"], - out procedure: Array(String) #_[canonical={default="property",base=["procedures"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:MedicalDevice_procedure"], - out seriousAdverseOutcome: Array(Entity(org.schema.Restaurant:MedicalEntity)) #_[canonical={default="property",base=["serious adverse outcomes"]}] #[org_schema_type="MedicalEntity"], - out preOp: Array(String) #_[canonical={default="property",base=["pre op"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:MedicalDevice_preOp"], - out contraindication: Array(String) #_[canonical={default="passive_verb",passive_verb=["contraindication"],base=["contraindication"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:MedicalDevice_contraindication"]) - #_[canonical="medical device"] - #_[confirmation="medical device"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Landform extends Place(out id: Entity(org.schema.Restaurant:Landform) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Landform_name"]) - #_[canonical="landform"] - #_[confirmation="landform"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Mountain extends Landform(out id: Entity(org.schema.Restaurant:Mountain) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Mountain_name"]) - #_[canonical="mountain"] - #_[confirmation="mountain"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query HowTo extends CreativeWork(out id: Entity(org.schema.Restaurant:HowTo) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:HowTo_name"], - out prepTime: Measure(ms) #_[canonical={verb=["takes # to prepare", "needs # to prepare"],base=["prep time", "preparation time", "time to prep", "time to prepare"]}] #[org_schema_type="Duration"], - out step: Array(String) #_[canonical={default="property",base=["steps"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:HowTo_step"], - out supply: Array(String) #_[canonical={default="property",base=["supplies"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:HowTo_supply"], - out tool: Array(String) #_[canonical={default="property",base=["tools"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:HowTo_tool"], - out yield_: Number #_[canonical={default="property",base=["yield"]}] #[org_schema_type="QuantitativeValue"], - out performTime: Measure(ms) #_[canonical={default="property",base=["perform time"]}] #[org_schema_type="Duration"], - out estimatedCost: Currency #_[canonical={default="passive_verb",passive_verb=["estimated cost"],base=["estimated cost"]}] #[org_schema_type="MonetaryAmount"], - out totalTime: Measure(ms) #_[canonical={verb=["takes #", "requires #", "needs #", "uses #", "consumes #"],base=["total time", "time in total", "time to make"]}] #[org_schema_type="Duration"]) - #_[canonical="how to"] - #_[confirmation="how to"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Recipe extends HowTo(out id: Entity(org.schema.Restaurant:Recipe) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Recipe_name"], - out recipeIngredient: Array(String) #_[canonical={adjective=["#"],verb=["contains", "uses", "has"],passive_verb=["containing", "using"],base=["ingredients"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Recipe_recipeIngredient"], - out recipeInstructions: Array(String) #_[canonical={base=["instructions"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Recipe_recipeInstructions"], - out recipeYield: String #_[canonical={verb=["yields #", "feeds #", "produces #", "results in #", "is good for #"],passive_verb=["yielding #"],base=["yield amount", "yield size"]}] #[org_schema_type="QuantitativeValue"] #[string_values="org.schema.Restaurant:Recipe_recipeYield"], - out recipeCategory: Array(String) #_[canonical={adjective=["#"],base=["categories"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Recipe_recipeCategory"], - out cookingMethod: String #_[canonical={default="passive_verb",passive_verb=["cooking method"],base=["cooking method"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Recipe_cookingMethod"], - out suitableForDiet: Enum(HinduDiet,GlutenFreeDiet,HalalDiet,VeganDiet,VegetarianDiet,KosherDiet,DiabeticDiet,LowSaltDiet,LowFatDiet,LowLactoseDiet,LowCalorieDiet) #_[canonical={default="property",base=["suitable for diet"]}] #[org_schema_type="RestrictedDiet"], - out nutrition: { - unsaturatedFatContent: Measure(kg) #_[canonical={default="verb",verb=["contains #unsaturated_fat"],base=["unsaturated fat content", "unsaturated fat", "unsaturated fat amount"]}] #[org_schema_type="Mass"], - sugarContent: Measure(kg) #_[canonical={default="verb",verb=["contains #sugar"],base=["sugar content", "sugar", "sugar amount"]}] #[org_schema_type="Mass"], - fatContent: Measure(kg) #_[canonical={default="verb",verb=["contains #fat"],base=["fat content", "fat", "fat amount"]}] #[org_schema_type="Mass"], - fiberContent: Measure(kg) #_[canonical={default="verb",verb=["contains #fiber"],base=["fiber content", "fiber", "fiber amount"]}] #[org_schema_type="Mass"], - calories: Measure(kcal) #_[canonical={default="property",base=["calories"]}] #[org_schema_type="Energy"], - servingSize: String #_[canonical={default="passive_verb",passive_verb=["serving size"],base=["serving size"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Recipe_nutrition_servingSize"], - carbohydrateContent: Measure(kg) #_[canonical={default="verb",verb=["contains #carbohydrate"],base=["carbohydrate content", "carbohydrate", "carbohydrate amount"]}] #[org_schema_type="Mass"], - proteinContent: Measure(kg) #_[canonical={default="verb",verb=["contains #protein"],base=["protein content", "protein", "protein amount"]}] #[org_schema_type="Mass"], - sodiumContent: Measure(kg) #_[canonical={default="verb",verb=["contains #sodium"],base=["sodium content", "sodium", "sodium amount"]}] #[org_schema_type="Mass"], - saturatedFatContent: Measure(kg) #_[canonical={base=["saturated fat content", "saturated fat amount", "saturated fat", "trans fat"]}] #[org_schema_type="Mass"], - transFatContent: Measure(kg) #_[canonical={default="verb",verb=["contains #trans_fat"],base=["trans fat content", "trans fat", "trans fat amount"]}] #[org_schema_type="Mass"], - cholesterolContent: Measure(kg) #_[canonical={default="verb",verb=["contains #cholesterol"],base=["cholesterol content", "cholesterol", "cholesterol amount"]}] #[org_schema_type="Mass"] - } #_[canonical={default="property",base=["nutrition"]}] #[org_schema_type="NutritionInformation"], - out recipeCuisine: Array(String) #_[canonical={default="property",base=["recipe cuisines"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Recipe_recipeCuisine"], - out cookTime: Measure(ms) #_[canonical={verb=["takes # to cook", "needs # to cook"],base=["cook time", "cooking time", "time to cook"]}] #[org_schema_type="Duration"]) - #_[canonical="recipe"] - #_[confirmation="recipe"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ListItem extends Intangible(out id: Entity(org.schema.Restaurant:ListItem) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ListItem_name"], - out nextItem: Array(Entity(org.schema.Restaurant:ListItem)) #_[canonical={default="property",base=["next items"]}] #[org_schema_type="ListItem"], - out position: Number #_[canonical={default="property",base=["position"]}] #[org_schema_type="Integer"], - out item: Array(Entity(org.schema.Restaurant:Thing)) #_[canonical={default="property",base=["items"]}] #[org_schema_type="Thing"], - out previousItem: Array(Entity(org.schema.Restaurant:ListItem)) #_[canonical={default="property",base=["previous items"]}] #[org_schema_type="ListItem"]) - #_[canonical="list item"] - #_[confirmation="list item"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query HowToTip extends CreativeWork, ListItem(out id: Entity(org.schema.Restaurant:HowToTip) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:HowToTip_name"]) - #_[canonical="how to tip"] - #_[confirmation="how to tip"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MedicalCondition extends MedicalEntity(out id: Entity(org.schema.Restaurant:MedicalCondition) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MedicalCondition_name"], - out riskFactor: Array(Entity(org.schema.Restaurant:MedicalRiskFactor)) #_[canonical={default="property",base=["risk factors"]}] #[org_schema_type="MedicalRiskFactor"], - out expectedPrognosis: String #_[canonical={default="passive_verb",passive_verb=["expected prognosis"],base=["expected prognosis"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:MedicalCondition_expectedPrognosis"], - out secondaryPrevention: Array(Entity(org.schema.Restaurant:MedicalTherapy)) #_[canonical={default="passive_verb",passive_verb=["secondary preventions"],base=["secondary prevention"]}] #[org_schema_type="MedicalTherapy"], - out epidemiology: String #_[canonical={default="passive_verb",passive_verb=["epidemiology"],base=["epidemiology"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:MedicalCondition_epidemiology"], - out differentialDiagnosis: Entity(org.schema.Restaurant:DDxElement) #_[canonical={default="property",base=["differential diagnosis"]}] #[org_schema_type="DDxElement"], - out typicalTest: Array(Entity(org.schema.Restaurant:MedicalTest)) #_[canonical={default="property",base=["typical tests"]}] #[org_schema_type="MedicalTest"], - out drug: Entity(org.schema.Restaurant:Drug) #_[canonical={default="property",base=["drug"]}] #[org_schema_type="Drug"], - out signOrSymptom: Array(Entity(org.schema.Restaurant:MedicalSignOrSymptom)) #_[canonical={default="property",base=["sign or symptoms"]}] #[org_schema_type="MedicalSignOrSymptom"], - out naturalProgression: String #_[canonical={default="property",base=["natural progression"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:MedicalCondition_naturalProgression"], - out primaryPrevention: Array(Entity(org.schema.Restaurant:MedicalTherapy)) #_[canonical={default="passive_verb",passive_verb=["primary preventions"],base=["primary prevention"]}] #[org_schema_type="MedicalTherapy"], - out status: Enum(Terminated,ActiveNotRecruiting,Withdrawn,EnrollingByInvitation,NotYetRecruiting,Recruiting,ResultsNotAvailable,Completed,ResultsAvailable,Suspended) #_[canonical={default="property",base=["status"]}] #[org_schema_type="MedicalStudyStatus"], - out pathophysiology: String #_[canonical={default="passive_verb",passive_verb=["pathophysiology"],base=["pathophysiology"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:MedicalCondition_pathophysiology"], - out possibleTreatment: Array(Entity(org.schema.Restaurant:MedicalTherapy)) #_[canonical={default="property",base=["possible treatments"]}] #[org_schema_type="MedicalTherapy"], - out stage: Entity(org.schema.Restaurant:MedicalConditionStage) #_[canonical={default="property",base=["stage"]}] #[org_schema_type="MedicalConditionStage"], - out possibleComplication: Array(String) #_[canonical={default="property",base=["possible complications"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:MedicalCondition_possibleComplication"], - out associatedAnatomy: Entity(org.schema.Restaurant:AnatomicalSystem) #_[canonical={default="passive_verb",passive_verb=["associated anatomy"],base=["associated anatomy"]}] #[org_schema_type="AnatomicalSystem"]) - #_[canonical="medical condition"] - #_[confirmation="medical condition"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query PerformanceRole extends Role(out id: Entity(org.schema.Restaurant:PerformanceRole) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:PerformanceRole_name"], - out characterName: String #_[canonical={default="property",base=["character name"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:PerformanceRole_characterName"]) - #_[canonical="performance role"] - #_[confirmation="performance role"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query EmergencyService extends LocalBusiness(out id: Entity(org.schema.Restaurant:EmergencyService) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:EmergencyService_name"]) - #_[canonical="emergency service"] - #_[confirmation="emergency service"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MedicalOrganization extends Organization(out id: Entity(org.schema.Restaurant:MedicalOrganization) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MedicalOrganization_name"], - out healthPlanNetworkId: String #_[canonical={default="property",base=["health plan network id"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:MedicalOrganization_healthPlanNetworkId"], - out medicalSpecialty: Enum(PrimaryCare,SpeechPathology,Genetic,Obstetric,Rheumatologic,Anesthesia,Emergency,Gynecologic,Surgical,Dentistry,Nursing,Hematologic,Pulmonary,Neurologic,PharmacySpecialty,PublicHealth,Geriatric,Urologic,Musculoskeletal,Dermatology,DietNutrition,Physiotherapy,RespiratoryTherapy,Psychiatric,CommunityHealth,Cardiovascular,Toxicologic,Gastroenterologic,Midwifery,Podiatric,Renal,Dermatologic,PlasticSurgery,LaboratoryScience,Pediatric,Otolaryngologic,Endocrine,Pathology,Infectious,Oncologic,Optometric,Radiography) #_[canonical={default="property",base=["medical specialty"]}] #[org_schema_type="MedicalSpecialty"], - out isAcceptingNewPatients: Boolean #_[canonical={default="reverse_property",reverse_property_true=["accepting new patients"],base=["is accepting new patients"]}] #[org_schema_type="Boolean"]) - #_[canonical="medical organization"] - #_[confirmation="medical organization"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Hospital extends CivicStructure, EmergencyService, MedicalOrganization(out id: Entity(org.schema.Restaurant:Hospital) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Hospital_name"], - out healthcareReportingData: { - cvdNumICUBedsOcc: Number #_[canonical={default="passive_verb",passive_verb=["cvd num icubeds occ"],base=["cvd num icubeds occ"]}] #[org_schema_type="Number"], - datePosted: Date #_[canonical={default="property",base=["date posted"]}] #[org_schema_type="Date"], - cvdNumC19HOPats: Number #_[canonical={base=["cvd num c19 hopats"]}] #[org_schema_type="Number"], - cvdNumC19HospPats: Number #_[canonical={base=["cvd num c19 hosp pats"]}] #[org_schema_type="Number"], - cvdFacilityId: String #_[canonical={default="passive_verb",passive_verb=["cvd facility id"],base=["cvd facility id"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Hospital_healthcareReportingData_cvdFacilityId"], - cvdNumC19OverflowPats: Number #_[canonical={base=["cvd num c19 overflow pats"]}] #[org_schema_type="Number"], - cvdNumBedsOcc: Number #_[canonical={default="passive_verb",passive_verb=["cvd num beds occ"],base=["cvd num beds occ"]}] #[org_schema_type="Number"], - cvdNumC19Died: Number #_[canonical={base=["cvd num c19 died"]}] #[org_schema_type="Number"], - cvdNumTotBeds: Number #_[canonical={default="property",base=["cvd num tot beds"]}] #[org_schema_type="Number"], - cvdNumBeds: Number #_[canonical={default="property",base=["cvd num beds"]}] #[org_schema_type="Number"], - cvdNumC19OFMechVentPats: Number #_[canonical={base=["cvd num c19 ofmech vent pats"]}] #[org_schema_type="Number"], - cvdNumVentUse: Number #_[canonical={default="property",base=["cvd num vent use"]}] #[org_schema_type="Number"], - cvdNumC19MechVentPats: Number #_[canonical={base=["cvd num c19 mech vent pats"]}] #[org_schema_type="Number"], - cvdNumVent: Number #_[canonical={default="property",base=["cvd num vent"]}] #[org_schema_type="Number"], - cvdNumICUBeds: Number #_[canonical={default="passive_verb",passive_verb=["cvd num icubeds"],base=["cvd num icubeds"]}] #[org_schema_type="Number"], - cvdFacilityCounty: String #_[canonical={default="property",base=["cvd facility county"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Hospital_healthcareReportingData_cvdFacilityCounty"], - cvdCollectionDate: Date #_[canonical={default="property",base=["cvd collection date"]}] #[org_schema_type="DateTime"] - } #_[canonical={default="property",base=["healthcare reporting data"]}] #[org_schema_type="CDCPMDRecord"], - out medicalSpecialty: Enum(PrimaryCare,SpeechPathology,Genetic,Obstetric,Rheumatologic,Anesthesia,Emergency,Gynecologic,Surgical,Dentistry,Nursing,Hematologic,Pulmonary,Neurologic,PharmacySpecialty,PublicHealth,Geriatric,Urologic,Musculoskeletal,Dermatology,DietNutrition,Physiotherapy,RespiratoryTherapy,Psychiatric,CommunityHealth,Cardiovascular,Toxicologic,Gastroenterologic,Midwifery,Podiatric,Renal,Dermatologic,PlasticSurgery,LaboratoryScience,Pediatric,Otolaryngologic,Endocrine,Pathology,Infectious,Oncologic,Optometric,Radiography) #_[canonical={default="property",base=["medical specialty"]}] #[org_schema_type="MedicalSpecialty"], - out availableService: Array(Entity(org.schema.Restaurant:MedicalTest)) #_[canonical={default="property",base=["available services"]}] #[org_schema_type="MedicalTest"]) - #_[canonical="hospital"] - #_[confirmation="hospital"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ComputerLanguage extends Intangible(out id: Entity(org.schema.Restaurant:ComputerLanguage) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ComputerLanguage_name"]) - #_[canonical="computer language"] - #_[confirmation="computer language"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ScreeningEvent extends Event(out id: Entity(org.schema.Restaurant:ScreeningEvent) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ScreeningEvent_name"], - out subtitleLanguage: String #_[canonical={default="property",base=["subtitle language"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ScreeningEvent_subtitleLanguage"], - out videoFormat: String #_[canonical={default="property",base=["video format"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ScreeningEvent_videoFormat"], - out workPresented: Entity(org.schema.Restaurant:Movie) #_[canonical={default="property",base=["work presented"]}] #[org_schema_type="Movie"]) - #_[canonical="screening event"] - #_[confirmation="screening event"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query PublicationEvent extends Event(out id: Entity(org.schema.Restaurant:PublicationEvent) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:PublicationEvent_name"], - out publishedOn: Array(Entity(org.schema.Restaurant:BroadcastService)) #_[canonical={default="passive_verb",passive_verb=["published on"],base=["published on"]}] #[org_schema_type="BroadcastService"], - out publishedBy: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={default="passive_verb",passive_verb=["published by"],base=["published by"],reverse_verb=["published bied"]}] #[org_schema_type="Person"]) - #_[canonical="publication event"] - #_[confirmation="publication event"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query BroadcastEvent extends PublicationEvent(out id: Entity(org.schema.Restaurant:BroadcastEvent) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:BroadcastEvent_name"], - out subtitleLanguage: String #_[canonical={default="property",base=["subtitle language"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:BroadcastEvent_subtitleLanguage"], - out isLiveBroadcast: Boolean #_[canonical={default="reverse_property",reverse_property_true=["live broadcast"],base=["is live broadcast"]}] #[org_schema_type="Boolean"], - out videoFormat: String #_[canonical={default="property",base=["video format"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:BroadcastEvent_videoFormat"], - out broadcastOfEvent: Entity(org.schema.Restaurant:Event) #_[canonical={default="property",base=["broadcast of event"]}] #[org_schema_type="Event"]) - #_[canonical="broadcast event"] - #_[confirmation="broadcast event"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query TVEpisode extends Episode(out id: Entity(org.schema.Restaurant:TVEpisode) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:TVEpisode_name"], - out subtitleLanguage: String #_[canonical={default="property",base=["subtitle language"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:TVEpisode_subtitleLanguage"], - out countryOfOrigin: Entity(org.schema.Restaurant:Country) #_[canonical={default="property",base=["country of origin"]}] #[org_schema_type="Country"], - out titleEIDR: Array(Entity(tt:url)) #_[canonical={default="property",base=["title eidr"]}] #[org_schema_type="URL"]) - #_[canonical="tvepisode"] - #_[confirmation="tvepisode"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Brand extends Intangible(out id: Entity(org.schema.Restaurant:Brand) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Brand_name"], - out aggregateRating: { - ratingCount: Number #_[canonical={default="property",base=["rating count"]}] #_[counted_object=["ratings"]] #[org_schema_type="Integer"], - reviewCount: Number #_[canonical={default="property",base=["review count"]}] #_[counted_object=["reviews"]] #[org_schema_type="Integer"], - ratingValue: Number #_[canonical={passive_verb=["rated # star"],base=["rating", "overall rating", "average rating", "customer rating", "review rating"],adjective=["# star"],adjective_argmax=["top-rated", "best"],projection_pronoun=["how"],passive_verb_projection=["rated"]}] #[org_schema_type="Number"] #[min_number=1] #[max_number=5], - ratingExplanation: Array(String) #_[canonical={default="property",base=["rating explanations"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Brand_aggregateRating_ratingExplanation"], - reviewAspect: String #_[canonical={default="property",base=["review aspect"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Brand_aggregateRating_reviewAspect"], - author: Entity(org.schema.Restaurant:Person) #_[canonical={base=["author"],preposition=["by"],passive_verb=["written by", "authored by", "uploaded by", "submitted by"],verb=["# wrote", "# authored"],base_projection=["author", "creator"],reverse_verb_projection=["wrote", "authored"],passive_verb_projection=["written | by", "authored | by"]}] #[org_schema_type="Person"] - } #_[canonical={default="property",base=["aggregate rating"]}] #[org_schema_type="AggregateRating"], - out review: Array(Entity(org.schema.Restaurant:Review)) #_[canonical={default="property",base=["reviews"]}] #[org_schema_type="Review"], - out slogan: Array(String) #_[canonical={default="property",base=["slogans"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Brand_slogan"], - out logo: Entity(tt:picture) #_[canonical={default="property",base=["logo"]}] #[org_schema_type="URL"]) - #_[canonical="brand"] - #_[confirmation="brand"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Clip extends CreativeWork(out id: Entity(org.schema.Restaurant:Clip) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Clip_name"], - out musicBy: Entity(org.schema.Restaurant:MusicGroup) #_[canonical={default="property",base=["music by"]}] #[org_schema_type="MusicGroup"], - out actor: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={base=["actor", "actress"],property=["#", "# in the cast"],passive_verb=["played by", "acted by"],verb=["stars", "# acted", "# acted in", "# was in"],base_projection=["actor", "actress"],verb_projection=["have"],reverse_verb_projection=["acted in"],preposition_projection=["in"]}] #[org_schema_type="Person"], - out partOfEpisode: Entity(org.schema.Restaurant:Episode) #_[canonical={default="property",base=["part of episode"]}] #[org_schema_type="Episode"], - out startOffset: Number #_[canonical={default="property",base=["start offset"]}] #[org_schema_type="Number"], - out partOfSeason: Entity(org.schema.Restaurant:CreativeWorkSeason) #_[canonical={default="property",base=["part of season"]}] #[org_schema_type="CreativeWorkSeason"], - out partOfSeries: Entity(org.schema.Restaurant:CreativeWorkSeries) #_[canonical={default="property",base=["part of series"]}] #[org_schema_type="CreativeWorkSeries"], - out clipNumber: Number #_[canonical={default="property",base=["clip number"]}] #[org_schema_type="Integer"], - out endOffset: Number #_[canonical={default="property",base=["end offset"]}] #[org_schema_type="Number"], - out director: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={base=["director"],passive_verb=["directed by"],verb=["# directs", "# directed"],reverse_verb_projection=["directed"]}] #[org_schema_type="Person"]) - #_[canonical="clip"] - #_[confirmation="clip"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query VideoGameClip extends Clip(out id: Entity(org.schema.Restaurant:VideoGameClip) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:VideoGameClip_name"]) - #_[canonical="video game clip"] - #_[confirmation="video game clip"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MusicRecording extends CreativeWork(out id: Entity(org.schema.Restaurant:MusicRecording) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MusicRecording_name"], - out inAlbum: Entity(org.schema.Restaurant:MusicAlbum) #_[canonical={base=["album"],preposition=["in", "in album", "on", "on album", "from", "from album"],passive_verb=["included in #"],verb=["appears in #", "appears on #", "# have", "# has", "# contains", "# includes"],base_projection=["album"],verb_projection=["appear | in", "appear | on"],reverse_verb_projection=["have", "has", "contain", "contains", "includes"],passive_verb_projection=["included | in", "included | on"],preposition_projection=["in", "on"]}] #[org_schema_type="MusicAlbum"], - out inPlaylist: Entity(org.schema.Restaurant:MusicPlaylist) #_[canonical={default="passive_verb",passive_verb=["in playlist"],base=["in playlist"]}] #[org_schema_type="MusicPlaylist"], - out recordingOf: Entity(org.schema.Restaurant:MusicComposition) #_[canonical={default="reverse_property",reverse_property=["recording of", "# recording", "# 's recording"],base=["recording of"]}] #[org_schema_type="MusicComposition"], - out isrcCode: String #_[canonical={default="property",base=["isrc code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:MusicRecording_isrcCode"], - out byArtist: Entity(org.schema.Music:Person) #_[canonical={base=["artist", "singer", "band"],adjective=["# 's", "#"],preposition=["by", "by artist"],passive_verb=["created by", "sang by", "performed by", "released by"],verb=["# sings", "# sang", "# release", "# publish"],base_projection=["artist", "singer", "band"],passive_verb_projection=["created | by", "sang | by", "performed | by"],reverse_verb_projection=["sing", "sang"]}] #[org_schema_type="MusicGroup"], - out duration: Measure(ms) #_[canonical={base=["duration", "length"],adjective=["# long"],adjective_argmax=["longest"],adjective_argmin=["shortest"]}] #[org_schema_type="Duration"]) - #_[canonical=["song", "music recording", "music"]] - #_[confirmation="music recording"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MedicalRiskEstimator extends MedicalEntity(out id: Entity(org.schema.Restaurant:MedicalRiskEstimator) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MedicalRiskEstimator_name"], - out includedRiskFactor: Array(Entity(org.schema.Restaurant:MedicalRiskFactor)) #_[canonical={default="verb",verb=["included risk factor"],base=["included risk factor"]}] #[org_schema_type="MedicalRiskFactor"], - out estimatesRiskOf: Entity(org.schema.Restaurant:MedicalEntity) #_[canonical={default="reverse_property",reverse_property=["estimates risk of", "# estimates risk", "# 's estimates risk"],base=["estimates risk of"]}] #[org_schema_type="MedicalEntity"]) - #_[canonical="medical risk estimator"] - #_[confirmation="medical risk estimator"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MedicalRiskScore extends MedicalRiskEstimator(out id: Entity(org.schema.Restaurant:MedicalRiskScore) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MedicalRiskScore_name"], - out algorithm: String #_[canonical={default="property",base=["algorithm"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:MedicalRiskScore_algorithm"]) - #_[canonical="medical risk score"] - #_[confirmation="medical risk score"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MusicStore extends Store(out id: Entity(org.schema.Restaurant:MusicStore) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MusicStore_name"]) - #_[canonical="music store"] - #_[confirmation="music store"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Crematorium extends CivicStructure(out id: Entity(org.schema.Restaurant:Crematorium) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Crematorium_name"]) - #_[canonical="crematorium"] - #_[confirmation="crematorium"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query PhysicalTherapy extends MedicalTherapy(out id: Entity(org.schema.Restaurant:PhysicalTherapy) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:PhysicalTherapy_name"]) - #_[canonical="physical therapy"] - #_[confirmation="physical therapy"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query WebAPI extends Service(out id: Entity(org.schema.Restaurant:WebAPI) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:WebAPI_name"], - out documentation: Entity(tt:url) #_[canonical={default="property",base=["documentation"]}] #[org_schema_type="URL"]) - #_[canonical="web api"] - #_[confirmation="web api"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query DefinedTerm extends Intangible(out id: Entity(org.schema.Restaurant:DefinedTerm) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:DefinedTerm_name"], - out termCode: Array(String) #_[canonical={default="property",base=["term codes"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:DefinedTerm_termCode"], - out inDefinedTermSet: Array(Entity(tt:url)) #_[canonical={default="passive_verb",passive_verb=["in defined term set"],base=["in defined term set"]}] #[org_schema_type="URL"]) - #_[canonical="defined term"] - #_[confirmation="defined term"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query WebContent extends CreativeWork(out id: Entity(org.schema.Restaurant:WebContent) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:WebContent_name"]) - #_[canonical="web content"] - #_[confirmation="web content"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MerchantReturnPolicy extends Intangible(out id: Entity(org.schema.Restaurant:MerchantReturnPolicy) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MerchantReturnPolicy_name"], - out returnPolicyCategory: Enum(MerchantReturnFiniteReturnWindow,MerchantReturnNotPermitted,MerchantReturnUnlimitedWindow,MerchantReturnUnspecified) #_[canonical={default="property",base=["return policy category"]}] #[org_schema_type="MerchantReturnEnumeration"], - out merchantReturnDays: Number #_[canonical={default="property",base=["merchant return days"]}] #[org_schema_type="Integer"], - out refundType: Enum(StoreCreditRefund,ExchangeRefund,FullRefund) #_[canonical={default="property",base=["refund type"]}] #[org_schema_type="RefundTypeEnumeration"], - out inStoreReturnsOffered: Boolean #_[canonical={default="property",property_true=["in store returns offered"],verb_true=["offer in store returns", "offers in store returns"],base=["in store returns offered"]}] #[org_schema_type="Boolean"], - out merchantReturnLink: Entity(tt:url) #_[canonical={default="property",base=["merchant return link"]}] #[org_schema_type="URL"], - out returnFees: Enum(RestockingFees,OriginalShippingFees,ReturnShippingFees) #_[canonical={default="property",base=["return fees"]}] #[org_schema_type="ReturnFeesEnumeration"]) - #_[canonical="merchant return policy"] - #_[confirmation="merchant return policy"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Observation extends Intangible(out id: Entity(org.schema.Restaurant:Observation) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Observation_name"], - out measuredValue: String #_[canonical={default="passive_verb",passive_verb=["measured"],base=["measured"]}] #[org_schema_type="DataType"], - out observedNode: Entity(org.schema.Restaurant:StatisticalPopulation) #_[canonical={default="verb",verb=["observed # node"],base=["node"]}] #[org_schema_type="StatisticalPopulation"], - out marginOfError: Array(Date) #_[canonical={default="property",base=["margin of errors"]}] #[org_schema_type="DateTime"], - out measuredProperty: Entity(org.schema.Restaurant:Property) #_[canonical={default="passive_verb",passive_verb=["measured property"],base=["measured property"]}] #[org_schema_type="Property"], - out observationDate: Date #_[canonical={default="property",base=["observation date"]}] #[org_schema_type="DateTime"]) - #_[canonical="observation"] - #_[confirmation="observation"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Blog extends CreativeWork(out id: Entity(org.schema.Restaurant:Blog) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Blog_name"], - out blogPost: Array(Entity(org.schema.Restaurant:BlogPosting)) #_[canonical={default="property",base=["blog posts"]}] #[org_schema_type="BlogPosting"], - out issn: String #_[canonical={default="passive_verb",passive_verb=["issn"],base=["issn"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Blog_issn"]) - #_[canonical="blog"] - #_[confirmation="blog"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MediaSubscription extends Intangible(out id: Entity(org.schema.Restaurant:MediaSubscription) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MediaSubscription_name"], - out authenticator: Entity(org.schema.Restaurant:Organization) #_[canonical={default="property",base=["authenticator"]}] #[org_schema_type="Organization"], - out expectsAcceptanceOf: Array(Entity(org.schema.Restaurant:Offer)) #_[canonical={default="verb",verb=["expects acceptance of"],base=["expects acceptance of"]}] #[org_schema_type="Offer"]) - #_[canonical="media subscription"] - #_[confirmation="media subscription"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query PresentationDigitalDocument extends DigitalDocument(out id: Entity(org.schema.Restaurant:PresentationDigitalDocument) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:PresentationDigitalDocument_name"]) - #_[canonical="presentation digital document"] - #_[confirmation="presentation digital document"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ContactPage extends WebPage(out id: Entity(org.schema.Restaurant:ContactPage) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ContactPage_name"]) - #_[canonical="contact page"] - #_[confirmation="contact page"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MedicalTrial extends MedicalStudy(out id: Entity(org.schema.Restaurant:MedicalTrial) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MedicalTrial_name"], - out trialDesign: Enum(MultiCenterTrial,OpenTrial,TripleBlindedTrial,InternationalTrial,DoubleBlindedTrial,SingleBlindedTrial,RandomizedTrial,PlaceboControlledTrial,SingleCenterTrial) #_[canonical={default="property",base=["trial design"]}] #[org_schema_type="MedicalTrialDesign"]) - #_[canonical="medical trial"] - #_[confirmation="medical trial"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query WebApplication extends SoftwareApplication(out id: Entity(org.schema.Restaurant:WebApplication) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:WebApplication_name"], - out browserRequirements: String #_[canonical={default="property",base=["browser requirements"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:WebApplication_browserRequirements"]) - #_[canonical="web application"] - #_[confirmation="web application"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query BroadcastFrequencySpecification extends Intangible(out id: Entity(org.schema.Restaurant:BroadcastFrequencySpecification) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:BroadcastFrequencySpecification_name"], - out broadcastFrequencyValue: Number #_[canonical={default="property",base=["broadcast frequency"]}] #[org_schema_type="QuantitativeValue"], - out broadcastSignalModulation: String #_[canonical={default="property",base=["broadcast signal modulation"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:BroadcastFrequencySpecification_broadcastSignalModulation"], - out broadcastSubChannel: String #_[canonical={default="property",base=["broadcast sub channel"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:BroadcastFrequencySpecification_broadcastSubChannel"]) - #_[canonical="broadcast frequency specification"] - #_[confirmation="broadcast frequency specification"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query PalliativeProcedure extends MedicalTherapy, MedicalProcedure(out id: Entity(org.schema.Restaurant:PalliativeProcedure) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:PalliativeProcedure_name"]) - #_[canonical="palliative procedure"] - #_[confirmation="palliative procedure"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query PhysicalActivity extends LifestyleModification(out id: Entity(org.schema.Restaurant:PhysicalActivity) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:PhysicalActivity_name"], - out epidemiology: String #_[canonical={default="passive_verb",passive_verb=["epidemiology"],base=["epidemiology"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:PhysicalActivity_epidemiology"], - out category: Enum(AnaerobicActivity,LeisureTimeActivity,Flexibility,Balance,OccupationalActivity,StrengthTraining,AerobicActivity) #_[canonical={default="property",base=["category"]}] #[org_schema_type="PhysicalActivityCategory"], - out pathophysiology: String #_[canonical={default="passive_verb",passive_verb=["pathophysiology"],base=["pathophysiology"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:PhysicalActivity_pathophysiology"], - out associatedAnatomy: Entity(org.schema.Restaurant:AnatomicalSystem) #_[canonical={default="passive_verb",passive_verb=["associated anatomy"],base=["associated anatomy"]}] #[org_schema_type="AnatomicalSystem"]) - #_[canonical="physical activity"] - #_[confirmation="physical activity"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ExercisePlan extends PhysicalActivity, CreativeWork(out id: Entity(org.schema.Restaurant:ExercisePlan) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ExercisePlan_name"], - out activityDuration: Measure(ms) #_[canonical={default="property",base=["activity duration"]}] #[org_schema_type="Duration"], - out repetitions: Number #_[canonical={default="property",base=["repetitions"]}] #[org_schema_type="Number"], - out additionalVariable: String #_[canonical={default="property",base=["additional variable"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ExercisePlan_additionalVariable"], - out exerciseType: String #_[canonical={default="property",base=["exercise type"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ExercisePlan_exerciseType"], - out workload: Measure(kcal) #_[canonical={default="property",base=["workload"]}] #[org_schema_type="Energy"], - out activityFrequency: Number #_[canonical={default="property",base=["activity frequency"]}] #[org_schema_type="QuantitativeValue"], - out restPeriods: Number #_[canonical={default="property",base=["rest periods"]}] #[org_schema_type="QuantitativeValue"], - out intensity: Number #_[canonical={default="property",base=["intensity"]}] #[org_schema_type="QuantitativeValue"]) - #_[canonical="exercise plan"] - #_[confirmation="exercise plan"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query GardenStore extends Store(out id: Entity(org.schema.Restaurant:GardenStore) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:GardenStore_name"]) - #_[canonical="garden store"] - #_[confirmation="garden store"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query OpinionNewsArticle extends NewsArticle(out id: Entity(org.schema.Restaurant:OpinionNewsArticle) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:OpinionNewsArticle_name"]) - #_[canonical="opinion news article"] - #_[confirmation="opinion news article"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Ticket extends Intangible(out id: Entity(org.schema.Restaurant:Ticket) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Ticket_name"], - out totalPrice: Number #_[canonical={default="property",base=["total price"]}] #[org_schema_type="Number"], - out ticketNumber: String #_[canonical={default="property",base=["ticket number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Ticket_ticketNumber"], - out dateIssued: Date #_[canonical={default="property",base=["date issued"]}] #[org_schema_type="Date"], - out underName: Entity(org.schema.Restaurant:Organization) #_[canonical={default="passive_verb",passive_verb=["under"],base=["under name"]}] #[org_schema_type="Organization"], - out ticketedSeat: Entity(org.schema.Restaurant:Seat) #_[canonical={default="passive_verb",passive_verb=["ticketed seat"],base=["ticketed seat"]}] #[org_schema_type="Seat"], - out issuedBy: Entity(org.schema.Restaurant:Organization) #_[canonical={default="passive_verb",passive_verb=["issued by"],base=["issued by"]}] #[org_schema_type="Organization"], - out ticketToken: Entity(tt:url) #_[canonical={default="property",base=["ticket token"]}] #[org_schema_type="URL"]) - #_[canonical="ticket"] - #_[confirmation="ticket"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MedicalClinic extends MedicalOrganization(out id: Entity(org.schema.Restaurant:MedicalClinic) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MedicalClinic_name"], - out medicalSpecialty: Enum(PrimaryCare,SpeechPathology,Genetic,Obstetric,Rheumatologic,Anesthesia,Emergency,Gynecologic,Surgical,Dentistry,Nursing,Hematologic,Pulmonary,Neurologic,PharmacySpecialty,PublicHealth,Geriatric,Urologic,Musculoskeletal,Dermatology,DietNutrition,Physiotherapy,RespiratoryTherapy,Psychiatric,CommunityHealth,Cardiovascular,Toxicologic,Gastroenterologic,Midwifery,Podiatric,Renal,Dermatologic,PlasticSurgery,LaboratoryScience,Pediatric,Otolaryngologic,Endocrine,Pathology,Infectious,Oncologic,Optometric,Radiography) #_[canonical={default="property",base=["medical specialty"]}] #[org_schema_type="MedicalSpecialty"], - out availableService: Array(Entity(org.schema.Restaurant:MedicalTest)) #_[canonical={default="property",base=["available services"]}] #[org_schema_type="MedicalTest"]) - #_[canonical="medical clinic"] - #_[confirmation="medical clinic"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query CovidTestingFacility extends MedicalClinic(out id: Entity(org.schema.Restaurant:CovidTestingFacility) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:CovidTestingFacility_name"]) - #_[canonical="covid testing facility"] - #_[confirmation="covid testing facility"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query InfectiousDisease extends MedicalCondition(out id: Entity(org.schema.Restaurant:InfectiousDisease) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:InfectiousDisease_name"], - out transmissionMethod: String #_[canonical={default="property",base=["transmission method"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:InfectiousDisease_transmissionMethod"], - out infectiousAgent: String #_[canonical={default="property",base=["infectious agent"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:InfectiousDisease_infectiousAgent"], - out infectiousAgentClass: Enum(MulticellularParasite,Fungus,Virus,Bacteria,Protozoa,Prion) #_[canonical={default="property",base=["infectious agent class"]}] #[org_schema_type="InfectiousAgentClass"]) - #_[canonical="infectious disease"] - #_[confirmation="infectious disease"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Report extends Article(out id: Entity(org.schema.Restaurant:Report) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Report_name"], - out reportNumber: String #_[canonical={default="property",base=["report number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Report_reportNumber"]) - #_[canonical="report"] - #_[confirmation="report"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query TouristDestination extends Place(out id: Entity(org.schema.Restaurant:TouristDestination) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:TouristDestination_name"], - out includesAttraction: Entity(org.schema.Restaurant:TouristAttraction) #_[canonical={default="verb",verb=["includes # attraction"],base=["attraction"]}] #[org_schema_type="TouristAttraction"], - out touristType: String #_[canonical={default="property",base=["tourist type"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:TouristDestination_touristType"]) - #_[canonical="tourist destination"] - #_[confirmation="tourist destination"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MortgageLoan extends LoanOrCredit(out id: Entity(org.schema.Restaurant:MortgageLoan) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MortgageLoan_name"], - out domiciledMortgage: Boolean #_[canonical={default="passive_verb",passive_verb_true=["domiciled mortgage"],base=["domiciled mortgage"]}] #[org_schema_type="Boolean"], - out loanMortgageMandateAmount: Currency #_[canonical={default="property",base=["loan mortgage mandate amount"]}] #[org_schema_type="MonetaryAmount"]) - #_[canonical="mortgage loan"] - #_[confirmation="mortgage loan"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query TVSeries extends CreativeWork, CreativeWorkSeries(out id: Entity(org.schema.Restaurant:TVSeries) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:TVSeries_name"], - out countryOfOrigin: Entity(org.schema.Restaurant:Country) #_[canonical={default="property",base=["country of origin"]}] #[org_schema_type="Country"], - out musicBy: Entity(org.schema.Restaurant:MusicGroup) #_[canonical={default="property",base=["music by"]}] #[org_schema_type="MusicGroup"], - out containsSeason: Array(Entity(org.schema.Restaurant:CreativeWorkSeason)) #_[canonical={default="verb",verb=["contains # season"],base=["season"]}] #[org_schema_type="CreativeWorkSeason"], - out actor: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={base=["actor", "actress"],property=["#", "# in the cast"],passive_verb=["played by", "acted by"],verb=["stars", "# acted", "# acted in", "# was in"],base_projection=["actor", "actress"],verb_projection=["have"],reverse_verb_projection=["acted in"],preposition_projection=["in"]}] #[org_schema_type="Person"], - out numberOfEpisodes: Number #_[canonical={default="property",base=["number of episodes"]}] #_[counted_object=["episodes"]] #[org_schema_type="Integer"], - out episode: Array(Entity(org.schema.Restaurant:Episode)) #_[canonical={default="property",base=["episodes"]}] #[org_schema_type="Episode"], - out numberOfSeasons: Number #_[canonical={default="property",base=["number of seasons"]}] #_[counted_object=["seasons"]] #[org_schema_type="Integer"], - out director: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={base=["director"],passive_verb=["directed by"],verb=["# directs", "# directed"],reverse_verb_projection=["directed"]}] #[org_schema_type="Person"], - out productionCompany: Entity(org.schema.Restaurant:Organization) #_[canonical={default="property",base=["production company"]}] #[org_schema_type="Organization"]) - #_[canonical="tvseries"] - #_[confirmation="tvseries"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query CreativeWorkSeason extends CreativeWork(out id: Entity(org.schema.Restaurant:CreativeWorkSeason) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:CreativeWorkSeason_name"], - out actor: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={base=["actor", "actress"],property=["#", "# in the cast"],passive_verb=["played by", "acted by"],verb=["stars", "# acted", "# acted in", "# was in"],base_projection=["actor", "actress"],verb_projection=["have"],reverse_verb_projection=["acted in"],preposition_projection=["in"]}] #[org_schema_type="Person"], - out numberOfEpisodes: Number #_[canonical={default="property",base=["number of episodes"]}] #_[counted_object=["episodes"]] #[org_schema_type="Integer"], - out endDate: Date #_[canonical={default="property",base=["end date"]}] #[org_schema_type="Date"], - out partOfSeries: Entity(org.schema.Restaurant:CreativeWorkSeries) #_[canonical={default="property",base=["part of series"]}] #[org_schema_type="CreativeWorkSeries"], - out episode: Array(Entity(org.schema.Restaurant:Episode)) #_[canonical={default="property",base=["episodes"]}] #[org_schema_type="Episode"], - out seasonNumber: Number #_[canonical={default="property",base=["season number"]}] #[org_schema_type="Integer"], - out director: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={base=["director"],passive_verb=["directed by"],verb=["# directs", "# directed"],reverse_verb_projection=["directed"]}] #[org_schema_type="Person"], - out productionCompany: Entity(org.schema.Restaurant:Organization) #_[canonical={default="property",base=["production company"]}] #[org_schema_type="Organization"], - out startDate: Date #_[canonical={default="property",base=["start date"]}] #[org_schema_type="Date"]) - #_[canonical="creative work season"] - #_[confirmation="creative work season"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query TVSeason extends CreativeWorkSeason, CreativeWork(out id: Entity(org.schema.Restaurant:TVSeason) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:TVSeason_name"], - out countryOfOrigin: Entity(org.schema.Restaurant:Country) #_[canonical={default="property",base=["country of origin"]}] #[org_schema_type="Country"]) - #_[canonical="tvseason"] - #_[confirmation="tvseason"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query HowToDirection extends ListItem, CreativeWork(out id: Entity(org.schema.Restaurant:HowToDirection) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:HowToDirection_name"], - out prepTime: Measure(ms) #_[canonical={verb=["takes # to prepare", "needs # to prepare"],base=["prep time", "preparation time", "time to prep", "time to prepare"]}] #[org_schema_type="Duration"], - out beforeMedia: Array(Entity(tt:url)) #_[canonical={default="passive_verb",passive_verb=["before"],base=["before media"]}] #[org_schema_type="URL"], - out supply: Array(String) #_[canonical={default="property",base=["supplies"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:HowToDirection_supply"], - out afterMedia: Array(Entity(tt:url)) #_[canonical={default="passive_verb",passive_verb=["after"],base=["after media"]}] #[org_schema_type="URL"], - out duringMedia: Array(Entity(tt:url)) #_[canonical={default="passive_verb",passive_verb=["during"],base=["during media"]}] #[org_schema_type="URL"], - out tool: Array(String) #_[canonical={default="property",base=["tools"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:HowToDirection_tool"], - out performTime: Measure(ms) #_[canonical={default="property",base=["perform time"]}] #[org_schema_type="Duration"], - out totalTime: Measure(ms) #_[canonical={verb=["takes #", "requires #", "needs #", "uses #", "consumes #"],base=["total time", "time in total", "time to make"]}] #[org_schema_type="Duration"]) - #_[canonical="how to direction"] - #_[confirmation="how to direction"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Sculpture extends CreativeWork(out id: Entity(org.schema.Restaurant:Sculpture) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Sculpture_name"]) - #_[canonical="sculpture"] - #_[confirmation="sculpture"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ComputerStore extends Store(out id: Entity(org.schema.Restaurant:ComputerStore) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ComputerStore_name"]) - #_[canonical="computer store"] - #_[confirmation="computer store"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query RadioStation extends LocalBusiness(out id: Entity(org.schema.Restaurant:RadioStation) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:RadioStation_name"]) - #_[canonical="radio station"] - #_[confirmation="radio station"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MusicPlaylist extends CreativeWork(out id: Entity(org.schema.Restaurant:MusicPlaylist) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MusicPlaylist_name"], - out track: Array(Entity(org.schema.Restaurant:ItemList)) #_[canonical={default="verb",verb=["tracks"],base=["track"]}] #[org_schema_type="ItemList"], - out numTracks: Number #_[canonical={base=["number of tracks", "number of songs"]}] #_[counted_object=["tracks", "songs"]] #[org_schema_type="Integer"]) - #_[canonical="music playlist"] - #_[confirmation="music playlist"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MusicRelease extends MusicPlaylist(out id: Entity(org.schema.Restaurant:MusicRelease) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MusicRelease_name"], - out catalogNumber: String #_[canonical={default="property",base=["catalog number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:MusicRelease_catalogNumber"], - out releaseOf: Entity(org.schema.Restaurant:MusicAlbum) #_[canonical={default="reverse_property",reverse_property=["release of", "# release", "# 's release"],base=["release of"]}] #[org_schema_type="MusicAlbum"], - out recordLabel: Entity(org.schema.Restaurant:Organization) #_[canonical={default="property",base=["record label"]}] #[org_schema_type="Organization"], - out musicReleaseFormat: Enum(VinylFormat,CassetteFormat,DigitalAudioTapeFormat,DVDFormat,LaserDiscFormat,CDFormat,DigitalFormat) #_[canonical={default="property",base=["music release format"]}] #[org_schema_type="MusicReleaseFormatType"], - out duration: Measure(ms) #_[canonical={base=["duration", "length"],adjective=["# long"],adjective_argmax=["longest"],adjective_argmin=["shortest"]}] #[org_schema_type="Duration"], - out creditedTo: Entity(org.schema.Restaurant:Person) #_[canonical={default="passive_verb",passive_verb=["credited to"],base=["credited to"],reverse_verb=["credited toed"]}] #[org_schema_type="Person"]) - #_[canonical="music release"] - #_[confirmation="music release"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MedicalIntangible extends MedicalEntity(out id: Entity(org.schema.Restaurant:MedicalIntangible) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MedicalIntangible_name"]) - #_[canonical="medical intangible"] - #_[confirmation="medical intangible"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query DrugStrength extends MedicalIntangible(out id: Entity(org.schema.Restaurant:DrugStrength) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:DrugStrength_name"], - out activeIngredient: Array(String) #_[canonical={default="property",base=["active ingredients"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:DrugStrength_activeIngredient"], - out strengthUnit: String #_[canonical={default="property",base=["strength unit"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:DrugStrength_strengthUnit"], - out strengthValue: Number #_[canonical={default="property",base=["strength"]}] #[org_schema_type="Number"], - out maximumIntake: Entity(org.schema.Restaurant:MaximumDoseSchedule) #_[canonical={default="property",base=["maximum intake"]}] #[org_schema_type="MaximumDoseSchedule"], - out availableIn: Entity(org.schema.Restaurant:AdministrativeArea) #_[canonical={default="passive_verb",passive_verb=["available in"],base=["available in"]}] #[org_schema_type="AdministrativeArea"]) - #_[canonical="drug strength"] - #_[confirmation="drug strength"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query DietarySupplement extends Substance(out id: Entity(org.schema.Restaurant:DietarySupplement) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:DietarySupplement_name"], - out activeIngredient: Array(String) #_[canonical={default="property",base=["active ingredients"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:DietarySupplement_activeIngredient"], - out proprietaryName: String #_[canonical={default="property",base=["proprietary name"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:DietarySupplement_proprietaryName"], - out targetPopulation: String #_[canonical={default="property",base=["target population"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:DietarySupplement_targetPopulation"], - out manufacturer: Entity(org.schema.Restaurant:Organization) #_[canonical={default="property",base=["manufacturer"]}] #[org_schema_type="Organization"], - out mechanismOfAction: String #_[canonical={default="property",base=["mechanism of action"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:DietarySupplement_mechanismOfAction"], - out legalStatus: Entity(org.schema.Restaurant:MedicalEnumeration) #_[canonical={default="property",base=["legal status"]}] #[org_schema_type="MedicalEnumeration"], - out isProprietary: Boolean #_[canonical={default="adjective",adjective_true=["proprietary"],base=["is proprietary"]}] #[org_schema_type="Boolean"], - out nonProprietaryName: String #_[canonical={default="property",base=["non proprietary name"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:DietarySupplement_nonProprietaryName"], - out maximumIntake: Entity(org.schema.Restaurant:MaximumDoseSchedule) #_[canonical={default="property",base=["maximum intake"]}] #[org_schema_type="MaximumDoseSchedule"], - out recommendedIntake: Entity(org.schema.Restaurant:RecommendedDoseSchedule) #_[canonical={default="verb",verb=["recommended # intake"],base=["intake"]}] #[org_schema_type="RecommendedDoseSchedule"], - out safetyConsideration: String #_[canonical={default="property",base=["safety consideration"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:DietarySupplement_safetyConsideration"]) - #_[canonical="dietary supplement"] - #_[confirmation="dietary supplement"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query SpecialAnnouncement extends CreativeWork(out id: Entity(org.schema.Restaurant:SpecialAnnouncement) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:SpecialAnnouncement_name"], - out travelBans: Entity(tt:url) #_[canonical={default="property",base=["travel bans"]}] #[org_schema_type="URL"], - out webFeed: Entity(tt:url) #_[canonical={default="property",base=["web feed"]}] #[org_schema_type="URL"], - out quarantineGuidelines: Entity(tt:url) #_[canonical={default="property",base=["quarantine guidelines"]}] #[org_schema_type="URL"], - out category: Enum(AnaerobicActivity,LeisureTimeActivity,Flexibility,Balance,OccupationalActivity,StrengthTraining,AerobicActivity) #_[canonical={default="property",base=["category"]}] #[org_schema_type="PhysicalActivityCategory"], - out datePosted: Date #_[canonical={default="property",base=["date posted"]}] #[org_schema_type="Date"], - out diseasePreventionInfo: Entity(tt:url) #_[canonical={default="property",base=["disease prevention info"]}] #[org_schema_type="URL"], - out newsUpdatesAndGuidelines: Entity(tt:url) #_[canonical={default="property",base=["news updates and guidelines"]}] #[org_schema_type="URL"], - out schoolClosuresInfo: Entity(tt:url) #_[canonical={default="property",base=["school closures info"]}] #[org_schema_type="URL"], - out gettingTestedInfo: Entity(tt:url) #_[canonical={default="passive_verb",passive_verb=["getting tested info"],base=["getting tested info"]}] #[org_schema_type="URL"], - out diseaseSpreadStatistics: Entity(tt:url) #_[canonical={default="property",base=["disease spread statistics"]}] #[org_schema_type="URL"], - out announcementLocation: Entity(org.schema.Restaurant:LocalBusiness) #_[canonical={default="property",base=["announcement location"]}] #[org_schema_type="LocalBusiness"], - out governmentBenefitsInfo: Entity(org.schema.Restaurant:GovernmentService) #_[canonical={default="property",base=["government benefits info"]}] #[org_schema_type="GovernmentService"], - out publicTransportClosuresInfo: Entity(tt:url) #_[canonical={default="passive_verb",passive_verb=["public transport closures info"],base=["public transport closures info"]}] #[org_schema_type="URL"]) - #_[canonical="special announcement"] - #_[confirmation="special announcement"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query SportsActivityLocation extends LocalBusiness(out id: Entity(org.schema.Restaurant:SportsActivityLocation) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:SportsActivityLocation_name"]) - #_[canonical="sports activity location"] - #_[confirmation="sports activity location"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query GolfCourse extends SportsActivityLocation(out id: Entity(org.schema.Restaurant:GolfCourse) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:GolfCourse_name"]) - #_[canonical="golf course"] - #_[confirmation="golf course"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query RadioSeries extends CreativeWorkSeries(out id: Entity(org.schema.Restaurant:RadioSeries) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:RadioSeries_name"], - out musicBy: Entity(org.schema.Restaurant:MusicGroup) #_[canonical={default="property",base=["music by"]}] #[org_schema_type="MusicGroup"], - out containsSeason: Array(Entity(org.schema.Restaurant:CreativeWorkSeason)) #_[canonical={default="verb",verb=["contains # season"],base=["season"]}] #[org_schema_type="CreativeWorkSeason"], - out actor: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={base=["actor", "actress"],property=["#", "# in the cast"],passive_verb=["played by", "acted by"],verb=["stars", "# acted", "# acted in", "# was in"],base_projection=["actor", "actress"],verb_projection=["have"],reverse_verb_projection=["acted in"],preposition_projection=["in"]}] #[org_schema_type="Person"], - out numberOfEpisodes: Number #_[canonical={default="property",base=["number of episodes"]}] #_[counted_object=["episodes"]] #[org_schema_type="Integer"], - out episode: Array(Entity(org.schema.Restaurant:Episode)) #_[canonical={default="property",base=["episodes"]}] #[org_schema_type="Episode"], - out numberOfSeasons: Number #_[canonical={default="property",base=["number of seasons"]}] #_[counted_object=["seasons"]] #[org_schema_type="Integer"], - out director: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={base=["director"],passive_verb=["directed by"],verb=["# directs", "# directed"],reverse_verb_projection=["directed"]}] #[org_schema_type="Person"], - out productionCompany: Entity(org.schema.Restaurant:Organization) #_[canonical={default="property",base=["production company"]}] #[org_schema_type="Organization"]) - #_[canonical="radio series"] - #_[confirmation="radio series"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query VideoObject extends MediaObject(out id: Entity(org.schema.Restaurant:VideoObject) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:VideoObject_name"], - out musicBy: Entity(org.schema.Restaurant:MusicGroup) #_[canonical={default="property",base=["music by"]}] #[org_schema_type="MusicGroup"], - out videoQuality: String #_[canonical={default="property",base=["video quality"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:VideoObject_videoQuality"], - out actor: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={base=["actor", "actress"],property=["#", "# in the cast"],passive_verb=["played by", "acted by"],verb=["stars", "# acted", "# acted in", "# was in"],base_projection=["actor", "actress"],verb_projection=["have"],reverse_verb_projection=["acted in"],preposition_projection=["in"]}] #[org_schema_type="Person"], - out videoFrameSize: String #_[canonical={default="property",base=["video frame size"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:VideoObject_videoFrameSize"], - out thumbnail: Entity(tt:picture) #_[canonical={default="property",base=["thumbnail"]}] #[org_schema_type="ImageObject"], - out caption: String #_[canonical={default="property",base=["caption"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:VideoObject_caption"], - out director: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={base=["director"],passive_verb=["directed by"],verb=["# directs", "# directed"],reverse_verb_projection=["directed"]}] #[org_schema_type="Person"], - out transcript: String #_[canonical={default="property",base=["transcript"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:VideoObject_transcript"]) - #_[canonical="video object"] - #_[confirmation="video object"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query VideoGameSeries extends CreativeWorkSeries(out id: Entity(org.schema.Restaurant:VideoGameSeries) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:VideoGameSeries_name"], - out musicBy: Entity(org.schema.Restaurant:MusicGroup) #_[canonical={default="property",base=["music by"]}] #[org_schema_type="MusicGroup"], - out gameLocation: Entity(tt:url) #_[canonical={default="property",base=["game location"]}] #[org_schema_type="URL"], - out containsSeason: Array(Entity(org.schema.Restaurant:CreativeWorkSeason)) #_[canonical={default="verb",verb=["contains # season"],base=["season"]}] #[org_schema_type="CreativeWorkSeason"], - out quest: Entity(org.schema.Restaurant:Thing) #_[canonical={default="property",base=["quest"]}] #[org_schema_type="Thing"], - out gameItem: Array(Entity(org.schema.Restaurant:Thing)) #_[canonical={default="property",base=["game items"]}] #[org_schema_type="Thing"], - out gamePlatform: Entity(tt:url) #_[canonical={default="property",base=["game platform"]}] #[org_schema_type="URL"], - out actor: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={base=["actor", "actress"],property=["#", "# in the cast"],passive_verb=["played by", "acted by"],verb=["stars", "# acted", "# acted in", "# was in"],base_projection=["actor", "actress"],verb_projection=["have"],reverse_verb_projection=["acted in"],preposition_projection=["in"]}] #[org_schema_type="Person"], - out numberOfEpisodes: Number #_[canonical={default="property",base=["number of episodes"]}] #_[counted_object=["episodes"]] #[org_schema_type="Integer"], - out numberOfPlayers: Number #_[canonical={default="property",base=["number of players"]}] #_[counted_object=["players"]] #[org_schema_type="QuantitativeValue"], - out episode: Array(Entity(org.schema.Restaurant:Episode)) #_[canonical={default="property",base=["episodes"]}] #[org_schema_type="Episode"], - out playMode: Enum(CoOp,MultiPlayer,SinglePlayer) #_[canonical={default="property",base=["play mode"]}] #[org_schema_type="GamePlayMode"], - out characterAttribute: Array(Entity(org.schema.Restaurant:Thing)) #_[canonical={default="property",base=["character attribute"]}] #[org_schema_type="Thing"], - out numberOfSeasons: Number #_[canonical={default="property",base=["number of seasons"]}] #_[counted_object=["seasons"]] #[org_schema_type="Integer"], - out director: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={base=["director"],passive_verb=["directed by"],verb=["# directs", "# directed"],reverse_verb_projection=["directed"]}] #[org_schema_type="Person"], - out productionCompany: Entity(org.schema.Restaurant:Organization) #_[canonical={default="property",base=["production company"]}] #[org_schema_type="Organization"], - out cheatCode: Entity(org.schema.Restaurant:CreativeWork) #_[canonical={default="property",base=["cheat code"]}] #[org_schema_type="CreativeWork"]) - #_[canonical="video game series"] - #_[confirmation="video game series"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query SuperficialAnatomy extends MedicalEntity(out id: Entity(org.schema.Restaurant:SuperficialAnatomy) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:SuperficialAnatomy_name"], - out relatedTherapy: Array(Entity(org.schema.Restaurant:MedicalTherapy)) #_[canonical={default="passive_verb",passive_verb=["related therapies"],base=["related therapy"]}] #[org_schema_type="MedicalTherapy"], - out associatedPathophysiology: String #_[canonical={default="passive_verb",passive_verb=["associated pathophysiology"],base=["associated pathophysiology"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:SuperficialAnatomy_associatedPathophysiology"], - out significance: String #_[canonical={default="property",base=["significance"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:SuperficialAnatomy_significance"], - out relatedCondition: Array(Entity(org.schema.Restaurant:MedicalCondition)) #_[canonical={default="passive_verb",passive_verb=["related conditions"],base=["related condition"]}] #[org_schema_type="MedicalCondition"], - out relatedAnatomy: Entity(org.schema.Restaurant:AnatomicalSystem) #_[canonical={default="passive_verb",passive_verb=["related anatomy"],base=["related anatomy"]}] #[org_schema_type="AnatomicalSystem"]) - #_[canonical="superficial anatomy"] - #_[confirmation="superficial anatomy"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query AnatomicalSystem extends MedicalEntity(out id: Entity(org.schema.Restaurant:AnatomicalSystem) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:AnatomicalSystem_name"], - out relatedTherapy: Array(Entity(org.schema.Restaurant:MedicalTherapy)) #_[canonical={default="passive_verb",passive_verb=["related therapies"],base=["related therapy"]}] #[org_schema_type="MedicalTherapy"], - out associatedPathophysiology: String #_[canonical={default="passive_verb",passive_verb=["associated pathophysiology"],base=["associated pathophysiology"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:AnatomicalSystem_associatedPathophysiology"], - out relatedCondition: Array(Entity(org.schema.Restaurant:MedicalCondition)) #_[canonical={default="passive_verb",passive_verb=["related conditions"],base=["related condition"]}] #[org_schema_type="MedicalCondition"], - out comprisedOf: Entity(org.schema.Restaurant:AnatomicalStructure) #_[canonical={default="reverse_property",reverse_property=["comprised of", "# comprised", "# 's comprised"],base=["comprised of"]}] #[org_schema_type="AnatomicalStructure"], - out relatedStructure: Entity(org.schema.Restaurant:AnatomicalStructure) #_[canonical={default="passive_verb",passive_verb=["related structure"],base=["related structure"]}] #[org_schema_type="AnatomicalStructure"]) - #_[canonical="anatomical system"] - #_[confirmation="anatomical system"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Map extends CreativeWork(out id: Entity(org.schema.Restaurant:Map) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Map_name"], - out mapType: Enum(ParkingMap,VenueMap,TransitMap,SeatingMap) #_[canonical={default="property",base=["map type"]}] #[org_schema_type="MapCategoryType"]) - #_[canonical="map"] - #_[confirmation="map"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query CourseInstance extends Event(out id: Entity(org.schema.Restaurant:CourseInstance) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:CourseInstance_name"], - out courseMode: Entity(tt:url) #_[canonical={default="property",base=["course mode"]}] #[org_schema_type="URL"], - out courseWorkload: String #_[canonical={default="property",base=["course workload"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:CourseInstance_courseWorkload"], - out instructor: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={default="property",base=["instructors"],reverse_verb=["instructored"]}] #[org_schema_type="Person"]) - #_[canonical="course instance"] - #_[confirmation="course instance"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ServiceChannel extends Intangible(out id: Entity(org.schema.Restaurant:ServiceChannel) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ServiceChannel_name"], - out serviceLocation: Entity(org.schema.Restaurant:Place) #_[canonical={default="property",base=["service location"]}] #[org_schema_type="Place"], - out servicePostalAddress: { - streetAddress: String #_[canonical={base=["street"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ServiceChannel_servicePostalAddress_streetAddress"], - postOfficeBoxNumber: String #_[canonical={default="property",base=["post office box number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ServiceChannel_servicePostalAddress_postOfficeBoxNumber"], - postalCode: String #_[canonical={default="property",base=["postal code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ServiceChannel_servicePostalAddress_postalCode"], - addressLocality: String #_[canonical={base=["city"],preposition=["in #", "from #"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ServiceChannel_servicePostalAddress_addressLocality"], - addressCountry: Entity(tt:country) #_[canonical={preposition=["in #", "from #"],base=["country"]}] #[org_schema_type="Text"], - addressRegion: Entity(tt:us_state) #_[canonical={preposition=["in #", "from #"],base=["state"]}] #[org_schema_type="Text"], - hoursAvailable: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["hours available"]}] #[org_schema_type="OpeningHoursSpecification"], - contactOption: Enum(TollFree,HearingImpairedSupported) #_[canonical={default="property",base=["contact option"]}] #[org_schema_type="ContactPointOption"], - productSupported: String #_[canonical={default="property",base=["product supported"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ServiceChannel_servicePostalAddress_productSupported"], - faxNumber: Entity(tt:phone_number) #_[canonical={default="property",base=["fax number"]}] #[org_schema_type="Text"] #[filterable=false], - availableLanguage: Array(String) #_[canonical={default="property",base=["available languages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ServiceChannel_servicePostalAddress_availableLanguage"], - telephone: Entity(tt:phone_number) #_[canonical={base=["telephone", "phone number"]}] #[org_schema_type="Text"] #[filterable=false], - email: Entity(tt:email_address) #_[canonical={default="property",base=["email"]}] #[org_schema_type="Text"] #[filterable=false], - contactType: Array(String) #_[canonical={default="property",base=["contact types"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ServiceChannel_servicePostalAddress_contactType"] - } #_[canonical={default="property",base=["service postal address"]}] #[org_schema_type="PostalAddress"], - out providesService: Entity(org.schema.Restaurant:Service) #_[canonical={default="verb",verb=["provides # service"],base=["service"]}] #[org_schema_type="Service"], - out processingTime: Measure(ms) #_[canonical={default="property",base=["processing time"]}] #[org_schema_type="Duration"], - out availableLanguage: Array(String) #_[canonical={default="property",base=["available languages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ServiceChannel_availableLanguage"], - out serviceUrl: Entity(tt:url) #_[canonical={default="property",base=["service url"]}] #[org_schema_type="URL"], - out servicePhone: { - hoursAvailable: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["hours available"]}] #[org_schema_type="OpeningHoursSpecification"], - contactOption: Enum(TollFree,HearingImpairedSupported) #_[canonical={default="property",base=["contact option"]}] #[org_schema_type="ContactPointOption"], - productSupported: String #_[canonical={default="property",base=["product supported"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ServiceChannel_servicePhone_productSupported"], - faxNumber: Entity(tt:phone_number) #_[canonical={default="property",base=["fax number"]}] #[org_schema_type="Text"] #[filterable=false], - availableLanguage: Array(String) #_[canonical={default="property",base=["available languages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ServiceChannel_servicePhone_availableLanguage"], - telephone: Entity(tt:phone_number) #_[canonical={base=["telephone", "phone number"]}] #[org_schema_type="Text"] #[filterable=false], - email: Entity(tt:email_address) #_[canonical={default="property",base=["email"]}] #[org_schema_type="Text"] #[filterable=false], - contactType: Array(String) #_[canonical={default="property",base=["contact types"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ServiceChannel_servicePhone_contactType"] - } #_[canonical={default="property",base=["service phone"]}] #[org_schema_type="ContactPoint"], - out serviceSmsNumber: { - hoursAvailable: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["hours available"]}] #[org_schema_type="OpeningHoursSpecification"], - contactOption: Enum(TollFree,HearingImpairedSupported) #_[canonical={default="property",base=["contact option"]}] #[org_schema_type="ContactPointOption"], - productSupported: String #_[canonical={default="property",base=["product supported"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ServiceChannel_serviceSmsNumber_productSupported"], - faxNumber: Entity(tt:phone_number) #_[canonical={default="property",base=["fax number"]}] #[org_schema_type="Text"] #[filterable=false], - availableLanguage: Array(String) #_[canonical={default="property",base=["available languages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ServiceChannel_serviceSmsNumber_availableLanguage"], - telephone: Entity(tt:phone_number) #_[canonical={base=["telephone", "phone number"]}] #[org_schema_type="Text"] #[filterable=false], - email: Entity(tt:email_address) #_[canonical={default="property",base=["email"]}] #[org_schema_type="Text"] #[filterable=false], - contactType: Array(String) #_[canonical={default="property",base=["contact types"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ServiceChannel_serviceSmsNumber_contactType"] - } #_[canonical={default="property",base=["service sms number"]}] #[org_schema_type="ContactPoint"]) - #_[canonical="service channel"] - #_[confirmation="service channel"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query WebPageElement extends CreativeWork(out id: Entity(org.schema.Restaurant:WebPageElement) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:WebPageElement_name"], - out cssSelector: Array(Entity(org.schema.Restaurant:CssSelectorType)) #_[canonical={default="passive_verb",passive_verb=["css selector"],base=["css selector"]}] #[org_schema_type="CssSelectorType"], - out xpath: Array(Entity(org.schema.Restaurant:XPathType)) #_[canonical={default="passive_verb",passive_verb=["xpath"],base=["xpath"]}] #[org_schema_type="XPathType"]) - #_[canonical="web page element"] - #_[confirmation="web page element"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query WPSideBar extends WebPageElement(out id: Entity(org.schema.Restaurant:WPSideBar) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:WPSideBar_name"]) - #_[canonical="wpside bar"] - #_[confirmation="wpside bar"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MedicalObservationalStudy extends MedicalStudy(out id: Entity(org.schema.Restaurant:MedicalObservationalStudy) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MedicalObservationalStudy_name"], - out studyDesign: Enum(Longitudinal,CaseSeries,CrossSectional,CohortStudy,Observational,Registry) #_[canonical={default="property",base=["study design"]}] #[org_schema_type="MedicalObservationalStudyDesign"]) - #_[canonical="medical observational study"] - #_[confirmation="medical observational study"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query HealthInsurancePlan extends Intangible(out id: Entity(org.schema.Restaurant:HealthInsurancePlan) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:HealthInsurancePlan_name"], - out includesHealthPlanFormulary: Entity(org.schema.Restaurant:HealthPlanFormulary) #_[canonical={default="verb",verb=["includes health plan formulary"],base=["includes health plan formulary"]}] #[org_schema_type="HealthPlanFormulary"], - out usesHealthPlanIdStandard: Entity(tt:url) #_[canonical={default="verb",verb=["uses health plan id standard"],base=["uses health plan id standard"]}] #[org_schema_type="URL"], - out includesHealthPlanNetwork: Entity(org.schema.Restaurant:HealthPlanNetwork) #_[canonical={default="verb",verb=["includes health plan network"],base=["includes health plan network"]}] #[org_schema_type="HealthPlanNetwork"], - out healthPlanMarketingUrl: Entity(tt:url) #_[canonical={default="property",base=["health plan marketing url"]}] #[org_schema_type="URL"], - out benefitsSummaryUrl: Entity(tt:url) #_[canonical={default="property",base=["benefits summary url"]}] #[org_schema_type="URL"], - out healthPlanId: String #_[canonical={default="property",base=["health plan id"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:HealthInsurancePlan_healthPlanId"], - out healthPlanDrugOption: String #_[canonical={default="property",base=["health plan drug option"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:HealthInsurancePlan_healthPlanDrugOption"], - out healthPlanDrugTier: String #_[canonical={default="property",base=["health plan drug tier"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:HealthInsurancePlan_healthPlanDrugTier"], - out contactPoint: Array({ - hoursAvailable: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["hours available"]}] #[org_schema_type="OpeningHoursSpecification"], - contactOption: Enum(TollFree,HearingImpairedSupported) #_[canonical={default="property",base=["contact option"]}] #[org_schema_type="ContactPointOption"], - productSupported: String #_[canonical={default="property",base=["product supported"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:HealthInsurancePlan_contactPoint_productSupported"], - faxNumber: Entity(tt:phone_number) #_[canonical={default="property",base=["fax number"]}] #[org_schema_type="Text"] #[filterable=false], - availableLanguage: Array(String) #_[canonical={default="property",base=["available languages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:HealthInsurancePlan_contactPoint_availableLanguage"], - telephone: Entity(tt:phone_number) #_[canonical={base=["telephone", "phone number"]}] #[org_schema_type="Text"] #[filterable=false], - email: Entity(tt:email_address) #_[canonical={default="property",base=["email"]}] #[org_schema_type="Text"] #[filterable=false], - contactType: Array(String) #_[canonical={default="property",base=["contact types"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:HealthInsurancePlan_contactPoint_contactType"] - }) #_[canonical={default="property",base=["contact points"]}] #[org_schema_type="ContactPoint"]) - #_[canonical="health insurance plan"] - #_[confirmation="health insurance plan"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ShoeStore extends Store(out id: Entity(org.schema.Restaurant:ShoeStore) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ShoeStore_name"]) - #_[canonical="shoe store"] - #_[confirmation="shoe store"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query PodcastSeries extends CreativeWorkSeries(out id: Entity(org.schema.Restaurant:PodcastSeries) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:PodcastSeries_name"], - out webFeed: Entity(tt:url) #_[canonical={default="property",base=["web feed"]}] #[org_schema_type="URL"]) - #_[canonical="podcast series"] - #_[confirmation="podcast series"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query PetStore extends Store(out id: Entity(org.schema.Restaurant:PetStore) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:PetStore_name"]) - #_[canonical="pet store"] - #_[confirmation="pet store"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query OnDemandEvent extends PublicationEvent(out id: Entity(org.schema.Restaurant:OnDemandEvent) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:OnDemandEvent_name"]) - #_[canonical="on demand event"] - #_[confirmation="on demand event"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Seat extends Intangible(out id: Entity(org.schema.Restaurant:Seat) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Seat_name"], - out seatingType: String #_[canonical={default="property",base=["seating type"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Seat_seatingType"], - out seatSection: String #_[canonical={default="property",base=["seat section"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Seat_seatSection"], - out seatRow: String #_[canonical={default="property",base=["seat row"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Seat_seatRow"], - out seatNumber: String #_[canonical={default="property",base=["seat number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Seat_seatNumber"]) - #_[canonical="seat"] - #_[confirmation="seat"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Question extends CreativeWork(out id: Entity(org.schema.Restaurant:Question) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Question_name"], - out answerCount: Number #_[canonical={default="property",base=["answer count"]}] #_[counted_object=["answers"]] #[org_schema_type="Integer"], - out upvoteCount: Number #_[canonical={default="property",base=["upvote count"]}] #_[counted_object=["upvote"]] #[org_schema_type="Integer"], - out suggestedAnswer: Array(Entity(org.schema.Restaurant:Answer)) #_[canonical={default="verb",verb=["suggested # answer"],base=["answer"]}] #[org_schema_type="Answer"], - out downvoteCount: Number #_[canonical={default="property",base=["downvote count"]}] #_[counted_object=["downvote"]] #[org_schema_type="Integer"], - out acceptedAnswer: Entity(org.schema.Restaurant:ItemList) #_[canonical={default="verb",verb=["accepted # answer"],base=["answer"]}] #[org_schema_type="ItemList"]) - #_[canonical="question"] - #_[confirmation="question"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query AggregateOffer extends Offer(out id: Entity(org.schema.Restaurant:AggregateOffer) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:AggregateOffer_name"], - out offers: Entity(org.schema.Restaurant:Offer) #_[canonical={default="verb",verb=["offers"],base=["offers"]}] #[org_schema_type="Offer"], - out offerCount: Number #_[canonical={default="property",base=["offer count"]}] #_[counted_object=["offers"]] #[org_schema_type="Integer"], - out lowPrice: Number #_[canonical={default="property",base=["low price"]}] #[org_schema_type="Number"], - out highPrice: Number #_[canonical={default="property",base=["high price"]}] #[org_schema_type="Number"]) - #_[canonical="aggregate offer"] - #_[confirmation="aggregate offer"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ClothingStore extends Store(out id: Entity(org.schema.Restaurant:ClothingStore) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ClothingStore_name"]) - #_[canonical="clothing store"] - #_[confirmation="clothing store"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Course extends CreativeWork, LearningResource(out id: Entity(org.schema.Restaurant:Course) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Course_name"], - out educationalCredentialAwarded: Array(Entity(tt:url)) #_[canonical={default="passive_verb",passive_verb=["educational credential awarded"],base=["educational credential awarded"]}] #[org_schema_type="URL"], - out courseCode: String #_[canonical={default="property",base=["course code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Course_courseCode"], - out coursePrerequisites: String #_[canonical={default="property",base=["course prerequisites"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Course_coursePrerequisites"], - out numberOfCredits: Number #_[canonical={default="property",base=["number of credits"]}] #_[counted_object=["credits"]] #[org_schema_type="Integer"], - out hasCourseInstance: Array(Entity(org.schema.Restaurant:CourseInstance)) #_[canonical={default="property",base=["course instance"]}] #[org_schema_type="CourseInstance"], - out occupationalCredentialAwarded: Array(Entity(tt:url)) #_[canonical={default="passive_verb",passive_verb=["occupational credential awarded"],base=["occupational credential awarded"]}] #[org_schema_type="URL"]) - #_[canonical="course"] - #_[confirmation="course"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query LodgingBusiness extends LocalBusiness(out id: Entity(org.schema.Restaurant:LodgingBusiness) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:LodgingBusiness_name"], - out petsAllowed: Boolean #_[canonical={property_true=["pets allowed"],property_false=["no pets allowed"],verb_true=["allows pets", "accepts pets", "accepts dog"],adjective_true=["pets friendly", "dog friendly"]}] #[org_schema_type="Boolean"], - out audience: Array(Entity(org.schema.Restaurant:Audience)) #_[canonical={default="property",base=["audiences"]}] #[org_schema_type="Audience"], - out checkinTime: Time #_[canonical={base=["checkin time", "check in time", "check-in time"]}] #[org_schema_type="DateTime"], - out checkoutTime: Time #_[canonical={base=["checkout time", "check out time", "check-out time"]}] #[org_schema_type="Time"], - out numberOfRooms: Number #_[canonical={default="property",base=["number of rooms"]}] #_[counted_object=["rooms"]] #[org_schema_type="Number"], - out availableLanguage: Array(String) #_[canonical={default="property",base=["available languages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:LodgingBusiness_availableLanguage"], - out amenityFeature: Array(Entity(org.schema.Restaurant:LocationFeatureSpecification)) #_[canonical={base=["amenity", "amenity feature"],verb=["offers #", "offer #", "has #", "have #"],base_projection=["amenity"],verb_projection=[""]}] #[org_schema_type="LocationFeatureSpecification"], - out starRating: { - ratingValue: Number #_[canonical={base=["michelin star rating", "michelin rating", "michelin star"],adjective=["michelin # star", "michelin # star"],passive_verb=["rated # star by michelin guide"]}] #[org_schema_type="Number"] #[min_number=1] #[max_number=5], - ratingExplanation: Array(String) #_[canonical={default="property",base=["rating explanations"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:LodgingBusiness_starRating_ratingExplanation"], - reviewAspect: String #_[canonical={default="property",base=["review aspect"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:LodgingBusiness_starRating_reviewAspect"], - author: Entity(org.schema.Restaurant:Person) #_[canonical={base=["author"],preposition=["by"],passive_verb=["written by", "authored by", "uploaded by", "submitted by"],verb=["# wrote", "# authored"],base_projection=["author", "creator"],reverse_verb_projection=["wrote", "authored"],passive_verb_projection=["written | by", "authored | by"]}] #[org_schema_type="Person"] - } #_[canonical={default="property",base=["star rating"]}] #[org_schema_type="Rating"]) - #_[canonical="lodging business"] - #_[confirmation="lodging business"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ProductGroup extends Product(out id: Entity(org.schema.Restaurant:ProductGroup) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ProductGroup_name"], - out productGroupID: String #_[canonical={default="property",base=["product group id"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ProductGroup_productGroupID"], - out hasVariant: Entity(org.schema.Restaurant:Product) #_[canonical={default="property",base=["variant"]}] #[org_schema_type="Product"], - out variesBy: String #_[canonical={default="verb",verb=["varies by"],base=["varies by"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ProductGroup_variesBy"]) - #_[canonical="product group"] - #_[confirmation="product group"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query EventSeries extends Series, Event(out id: Entity(org.schema.Restaurant:EventSeries) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:EventSeries_name"]) - #_[canonical="event series"] - #_[confirmation="event series"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query GovernmentOffice extends LocalBusiness(out id: Entity(org.schema.Restaurant:GovernmentOffice) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:GovernmentOffice_name"]) - #_[canonical="government office"] - #_[confirmation="government office"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query BoatTrip extends Trip(out id: Entity(org.schema.Restaurant:BoatTrip) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:BoatTrip_name"], - out departureBoatTerminal: Entity(org.schema.Restaurant:BoatTerminal) #_[canonical={default="property",base=["departure boat terminal"]}] #[org_schema_type="BoatTerminal"], - out arrivalBoatTerminal: Entity(org.schema.Restaurant:BoatTerminal) #_[canonical={default="property",base=["arrival boat terminal"]}] #[org_schema_type="BoatTerminal"]) - #_[canonical="boat trip"] - #_[confirmation="boat trip"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query PublicationVolume extends CreativeWork(out id: Entity(org.schema.Restaurant:PublicationVolume) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:PublicationVolume_name"], - out pageEnd: Number #_[canonical={default="property",base=["page end"]}] #[org_schema_type="Integer"], - out pageStart: Number #_[canonical={default="property",base=["page start"]}] #[org_schema_type="Integer"], - out pagination: String #_[canonical={default="passive_verb",passive_verb=["pagination"],base=["pagination"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:PublicationVolume_pagination"], - out volumeNumber: Number #_[canonical={default="property",base=["volume number"]}] #[org_schema_type="Integer"]) - #_[canonical="publication volume"] - #_[confirmation="publication volume"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Chapter extends CreativeWork(out id: Entity(org.schema.Restaurant:Chapter) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Chapter_name"], - out pageEnd: Number #_[canonical={default="property",base=["page end"]}] #[org_schema_type="Integer"], - out pageStart: Number #_[canonical={default="property",base=["page start"]}] #[org_schema_type="Integer"], - out pagination: String #_[canonical={default="passive_verb",passive_verb=["pagination"],base=["pagination"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Chapter_pagination"]) - #_[canonical="chapter"] - #_[confirmation="chapter"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Review extends CreativeWork(out id: Entity(org.schema.Restaurant:Review) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Review_name"], - out reviewRating: { - ratingValue: Number #_[canonical={passive_verb=["rated # star"],base=["rating", "overall rating", "average rating", "customer rating", "review rating"],adjective=["# star"],adjective_argmax=["top-rated", "best"],projection_pronoun=["how"],passive_verb_projection=["rated"]}] #[org_schema_type="Number"] #[min_number=1] #[max_number=5], - ratingExplanation: Array(String) #_[canonical={default="property",base=["rating explanations"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Review_reviewRating_ratingExplanation"], - reviewAspect: String #_[canonical={default="property",base=["review aspect"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Review_reviewRating_reviewAspect"], - author: Entity(org.schema.Restaurant:Person) #_[canonical={base=["author"],preposition=["by"],passive_verb=["written by", "authored by", "uploaded by", "submitted by"],verb=["# wrote", "# authored"],base_projection=["author", "creator"],reverse_verb_projection=["wrote", "authored"],passive_verb_projection=["written | by", "authored | by"]}] #[org_schema_type="Person"] - } #_[canonical={base=["rating"]}] #[org_schema_type="Rating"], - out reviewAspect: String #_[canonical={default="property",base=["review aspect"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Review_reviewAspect"]) - #_[canonical="review"] - #_[confirmation="review"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ClaimReview extends Review(out id: Entity(org.schema.Restaurant:ClaimReview) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ClaimReview_name"], - out claimReviewed: Array(String) #_[canonical={default="property",base=["claim reviewed"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ClaimReview_claimReviewed"]) - #_[canonical="claim review"] - #_[confirmation="claim review"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query GasStation extends AutomotiveBusiness(out id: Entity(org.schema.Restaurant:GasStation) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:GasStation_name"]) - #_[canonical="gas station"] - #_[confirmation="gas station"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ActionAccessSpecification extends Intangible(out id: Entity(org.schema.Restaurant:ActionAccessSpecification) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ActionAccessSpecification_name"], - out category: Enum(AnaerobicActivity,LeisureTimeActivity,Flexibility,Balance,OccupationalActivity,StrengthTraining,AerobicActivity) #_[canonical={default="property",base=["category"]}] #[org_schema_type="PhysicalActivityCategory"], - out availabilityStarts: Date #_[canonical={default="property",base=["availability starts"]}] #[org_schema_type="Date"], - out requiresSubscription: Boolean #_[canonical={default="verb",verb_true=["requires subscription"],base=["requires subscription"]}] #[org_schema_type="Boolean"], - out ineligibleRegion: { - line: Array(String) #_[canonical={default="property",base=["lines"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ActionAccessSpecification_ineligibleRegion_line"], - address: { - streetAddress: String #_[canonical={base=["street"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ActionAccessSpecification_ineligibleRegion_address_streetAddress"], - postOfficeBoxNumber: String #_[canonical={default="property",base=["post office box number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ActionAccessSpecification_ineligibleRegion_address_postOfficeBoxNumber"], - postalCode: String #_[canonical={default="property",base=["postal code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ActionAccessSpecification_ineligibleRegion_address_postalCode"], - addressLocality: String #_[canonical={base=["city"],preposition=["in #", "from #"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ActionAccessSpecification_ineligibleRegion_address_addressLocality"], - addressCountry: Entity(tt:country) #_[canonical={preposition=["in #", "from #"],base=["country"]}] #[org_schema_type="Text"], - addressRegion: Entity(tt:us_state) #_[canonical={preposition=["in #", "from #"],base=["state"]}] #[org_schema_type="Text"], - hoursAvailable: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["hours available"]}] #[org_schema_type="OpeningHoursSpecification"], - contactOption: Enum(TollFree,HearingImpairedSupported) #_[canonical={default="property",base=["contact option"]}] #[org_schema_type="ContactPointOption"], - productSupported: String #_[canonical={default="property",base=["product supported"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ActionAccessSpecification_ineligibleRegion_address_productSupported"], - faxNumber: Entity(tt:phone_number) #_[canonical={default="property",base=["fax number"]}] #[org_schema_type="Text"] #[filterable=false], - availableLanguage: Array(String) #_[canonical={default="property",base=["available languages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ActionAccessSpecification_ineligibleRegion_address_availableLanguage"], - telephone: Entity(tt:phone_number) #_[canonical={base=["telephone", "phone number"]}] #[org_schema_type="Text"] #[filterable=false], - email: Entity(tt:email_address) #_[canonical={default="property",base=["email"]}] #[org_schema_type="Text"] #[filterable=false], - contactType: Array(String) #_[canonical={default="property",base=["contact types"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ActionAccessSpecification_ineligibleRegion_address_contactType"] - } #_[canonical={default="property",base=["address"]}] #[org_schema_type="PostalAddress"], - postalCode: String #_[canonical={default="property",base=["postal code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ActionAccessSpecification_ineligibleRegion_postalCode"], - elevation: Number #_[canonical={default="property",base=["elevation"]}] #[org_schema_type="Number"], - polygon: Array(String) #_[canonical={default="passive_verb",passive_verb=["polygon"],base=["polygon"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ActionAccessSpecification_ineligibleRegion_polygon"], - circle: Array(String) #_[canonical={default="property",base=["circles"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ActionAccessSpecification_ineligibleRegion_circle"], - box: Array(String) #_[canonical={default="property",base=["boxes"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ActionAccessSpecification_ineligibleRegion_box"], - addressCountry: Entity(tt:country) #_[canonical={preposition=["in #", "from #"],base=["country"]}] #[org_schema_type="Text"] - } #_[canonical={default="property",base=["ineligible region"]}] #[org_schema_type="GeoShape"], - out expectsAcceptanceOf: Array(Entity(org.schema.Restaurant:Offer)) #_[canonical={default="verb",verb=["expects acceptance of"],base=["expects acceptance of"]}] #[org_schema_type="Offer"], - out eligibleRegion: { - line: Array(String) #_[canonical={default="property",base=["lines"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ActionAccessSpecification_eligibleRegion_line"], - address: { - streetAddress: String #_[canonical={base=["street"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ActionAccessSpecification_eligibleRegion_address_streetAddress"], - postOfficeBoxNumber: String #_[canonical={default="property",base=["post office box number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ActionAccessSpecification_eligibleRegion_address_postOfficeBoxNumber"], - postalCode: String #_[canonical={default="property",base=["postal code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ActionAccessSpecification_eligibleRegion_address_postalCode"], - addressLocality: String #_[canonical={base=["city"],preposition=["in #", "from #"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ActionAccessSpecification_eligibleRegion_address_addressLocality"], - addressCountry: Entity(tt:country) #_[canonical={preposition=["in #", "from #"],base=["country"]}] #[org_schema_type="Text"], - addressRegion: Entity(tt:us_state) #_[canonical={preposition=["in #", "from #"],base=["state"]}] #[org_schema_type="Text"], - hoursAvailable: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["hours available"]}] #[org_schema_type="OpeningHoursSpecification"], - contactOption: Enum(TollFree,HearingImpairedSupported) #_[canonical={default="property",base=["contact option"]}] #[org_schema_type="ContactPointOption"], - productSupported: String #_[canonical={default="property",base=["product supported"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ActionAccessSpecification_eligibleRegion_address_productSupported"], - faxNumber: Entity(tt:phone_number) #_[canonical={default="property",base=["fax number"]}] #[org_schema_type="Text"] #[filterable=false], - availableLanguage: Array(String) #_[canonical={default="property",base=["available languages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ActionAccessSpecification_eligibleRegion_address_availableLanguage"], - telephone: Entity(tt:phone_number) #_[canonical={base=["telephone", "phone number"]}] #[org_schema_type="Text"] #[filterable=false], - email: Entity(tt:email_address) #_[canonical={default="property",base=["email"]}] #[org_schema_type="Text"] #[filterable=false], - contactType: Array(String) #_[canonical={default="property",base=["contact types"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ActionAccessSpecification_eligibleRegion_address_contactType"] - } #_[canonical={default="property",base=["address"]}] #[org_schema_type="PostalAddress"], - postalCode: String #_[canonical={default="property",base=["postal code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ActionAccessSpecification_eligibleRegion_postalCode"], - elevation: Number #_[canonical={default="property",base=["elevation"]}] #[org_schema_type="Number"], - polygon: Array(String) #_[canonical={default="passive_verb",passive_verb=["polygon"],base=["polygon"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ActionAccessSpecification_eligibleRegion_polygon"], - circle: Array(String) #_[canonical={default="property",base=["circles"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ActionAccessSpecification_eligibleRegion_circle"], - box: Array(String) #_[canonical={default="property",base=["boxes"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ActionAccessSpecification_eligibleRegion_box"], - addressCountry: Entity(tt:country) #_[canonical={preposition=["in #", "from #"],base=["country"]}] #[org_schema_type="Text"] - } #_[canonical={default="property",base=["eligible region"]}] #[org_schema_type="GeoShape"], - out availabilityEnds: Date #_[canonical={default="property",base=["availability ends"]}] #[org_schema_type="Date"]) - #_[canonical="action access specification"] - #_[confirmation="action access specification"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Recommendation extends Review(out id: Entity(org.schema.Restaurant:Recommendation) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Recommendation_name"], - out category: Enum(AnaerobicActivity,LeisureTimeActivity,Flexibility,Balance,OccupationalActivity,StrengthTraining,AerobicActivity) #_[canonical={default="property",base=["category"]}] #[org_schema_type="PhysicalActivityCategory"]) - #_[canonical="recommendation"] - #_[confirmation="recommendation"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MusicComposition extends CreativeWork(out id: Entity(org.schema.Restaurant:MusicComposition) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MusicComposition_name"], - out recordedAs: Array(Entity(org.schema.Restaurant:MusicRecording)) #_[canonical={default="passive_verb",passive_verb=["recorded as"],base=["recorded as"]}] #[org_schema_type="MusicRecording"], - out musicCompositionForm: String #_[canonical={default="property",base=["music composition form"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:MusicComposition_musicCompositionForm"], - out includedComposition: Entity(org.schema.Restaurant:MusicComposition) #_[canonical={default="verb",verb=["included # composition"],base=["composition"]}] #[org_schema_type="MusicComposition"], - out musicArrangement: Array(Entity(org.schema.Restaurant:MusicComposition)) #_[canonical={default="property",base=["music arrangements"]}] #[org_schema_type="MusicComposition"], - out lyrics: Entity(org.schema.Restaurant:CreativeWork) #_[canonical={default="property",base=["lyrics"]}] #[org_schema_type="CreativeWork"], - out composer: Entity(org.schema.Restaurant:Person) #_[canonical={default="property",base=["composer"],reverse_verb=["composered"]}] #[org_schema_type="Person"], - out lyricist: Entity(org.schema.Restaurant:Person) #_[canonical={default="property",base=["lyricist"],reverse_verb=["lyricisted"]}] #[org_schema_type="Person"], - out musicalKey: String #_[canonical={default="passive_verb",passive_verb=["musical key"],base=["musical key"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:MusicComposition_musicalKey"], - out iswcCode: String #_[canonical={default="property",base=["iswc code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:MusicComposition_iswcCode"], - out firstPerformance: Entity(org.schema.Restaurant:Event) #_[canonical={default="property",base=["first performance"]}] #[org_schema_type="Event"]) - #_[canonical="music composition"] - #_[confirmation="music composition"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query EducationalOrganization extends CivicStructure, Organization(out id: Entity(org.schema.Restaurant:EducationalOrganization) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:EducationalOrganization_name"], - out alumni: Entity(org.schema.Restaurant:Person) #_[canonical={default="property",base=["alumni"],reverse_verb=["alumnused"]}] #[org_schema_type="Person"]) - #_[canonical="educational organization"] - #_[confirmation="educational organization"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query School extends EducationalOrganization(out id: Entity(org.schema.Restaurant:School) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:School_name"]) - #_[canonical="school"] - #_[confirmation="school"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Library extends LocalBusiness(out id: Entity(org.schema.Restaurant:Library) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Library_name"]) - #_[canonical="library"] - #_[confirmation="library"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query TouristInformationCenter extends LocalBusiness(out id: Entity(org.schema.Restaurant:TouristInformationCenter) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:TouristInformationCenter_name"]) - #_[canonical="tourist information center"] - #_[confirmation="tourist information center"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query PropertyValueSpecification extends Intangible(out id: Entity(org.schema.Restaurant:PropertyValueSpecification) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:PropertyValueSpecification_name"], - out valueMaxLength: Number #_[canonical={default="property",base=["value max length"]}] #[org_schema_type="Number"], - out stepValue: Number #_[canonical={default="property",base=["step"]}] #[org_schema_type="Number"], - out defaultValue: String #_[canonical={default="property",base=["default"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:PropertyValueSpecification_defaultValue"], - out valuePattern: String #_[canonical={default="property",base=["value pattern"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:PropertyValueSpecification_valuePattern"], - out multipleValues: Boolean #_[canonical={default="property",property_true=["multiple values"],base=["multiple values"]}] #[org_schema_type="Boolean"], - out minValue: Number #_[canonical={default="property",base=["min"]}] #[org_schema_type="Number"], - out valueRequired: Boolean #_[canonical={default="property",property_true=["value required"],verb_true=["require value", "requires value"],base=["value required"]}] #[org_schema_type="Boolean"], - out readonlyValue: Boolean #_[canonical={default="adjective",adjective_true=["readonly"],base=["readonly"]}] #[org_schema_type="Boolean"], - out valueMinLength: Number #_[canonical={default="property",base=["value min length"]}] #[org_schema_type="Number"], - out maxValue: Number #_[canonical={default="property",base=["max"]}] #[org_schema_type="Number"], - out valueName: String #_[canonical={default="property",base=["value name"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:PropertyValueSpecification_valueName"]) - #_[canonical="property value specification"] - #_[confirmation="property value specification"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query DoseSchedule extends MedicalIntangible(out id: Entity(org.schema.Restaurant:DoseSchedule) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:DoseSchedule_name"], - out targetPopulation: String #_[canonical={default="property",base=["target population"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:DoseSchedule_targetPopulation"], - out doseValue: Number #_[canonical={default="property",base=["dose"]}] #[org_schema_type="Number"], - out frequency: String #_[canonical={default="property",base=["frequency"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:DoseSchedule_frequency"], - out doseUnit: String #_[canonical={default="property",base=["dose unit"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:DoseSchedule_doseUnit"]) - #_[canonical="dose schedule"] - #_[confirmation="dose schedule"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MaximumDoseSchedule extends DoseSchedule(out id: Entity(org.schema.Restaurant:MaximumDoseSchedule) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MaximumDoseSchedule_name"]) - #_[canonical="maximum dose schedule"] - #_[confirmation="maximum dose schedule"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Grant extends Intangible(out id: Entity(org.schema.Restaurant:Grant) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Grant_name"], - out sponsor: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={default="property",base=["sponsors"],reverse_verb=["sponsored"]}] #[org_schema_type="Person"], - out fundedItem: Entity(org.schema.Restaurant:Thing) #_[canonical={default="passive_verb",passive_verb=["funded item"],base=["funded item"]}] #[org_schema_type="Thing"]) - #_[canonical="grant"] - #_[confirmation="grant"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MonetaryGrant extends Grant(out id: Entity(org.schema.Restaurant:MonetaryGrant) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MonetaryGrant_name"], - out funder: Array(Entity(org.schema.Restaurant:Organization)) #_[canonical={default="passive_verb",passive_verb=["funder"],base=["funder"]}] #[org_schema_type="Organization"], - out amount: Currency #_[canonical={default="property",base=["amount"]}] #[org_schema_type="MonetaryAmount"]) - #_[canonical="monetary grant"] - #_[confirmation="monetary grant"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query OrderItem extends Intangible(out id: Entity(org.schema.Restaurant:OrderItem) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:OrderItem_name"], - out orderQuantity: Number #_[canonical={default="property",base=["order quantity"]}] #[org_schema_type="Number"], - out orderItemStatus: Enum(OrderProblem,OrderDelivered,OrderReturned,OrderProcessing,OrderPickupAvailable,OrderCancelled,OrderPaymentDue,OrderInTransit) #_[canonical={default="property",base=["order item status"]}] #[org_schema_type="OrderStatus"], - out orderItemNumber: String #_[canonical={default="property",base=["order item number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:OrderItem_orderItemNumber"], - out orderDelivery: Entity(org.schema.Restaurant:ParcelDelivery) #_[canonical={default="property",base=["order delivery"]}] #[org_schema_type="ParcelDelivery"], - out orderedItem: Entity(org.schema.Restaurant:Product) #_[canonical={default="passive_verb",passive_verb=["ordered item"],base=["ordered item"]}] #[org_schema_type="Product"]) - #_[canonical="order item"] - #_[confirmation="order item"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query SelfStorage extends LocalBusiness(out id: Entity(org.schema.Restaurant:SelfStorage) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:SelfStorage_name"]) - #_[canonical="self storage"] - #_[confirmation="self storage"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query HealthPlanCostSharingSpecification extends Intangible(out id: Entity(org.schema.Restaurant:HealthPlanCostSharingSpecification) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:HealthPlanCostSharingSpecification_name"], - out healthPlanCoinsuranceOption: String #_[canonical={default="property",base=["health plan coinsurance option"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:HealthPlanCostSharingSpecification_healthPlanCoinsuranceOption"], - out healthPlanCoinsuranceRate: Number #_[canonical={default="property",base=["health plan coinsurance rate"]}] #[org_schema_type="Number"], - out healthPlanPharmacyCategory: String #_[canonical={default="property",base=["health plan pharmacy category"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:HealthPlanCostSharingSpecification_healthPlanPharmacyCategory"], - out healthPlanCopayOption: String #_[canonical={default="property",base=["health plan copay option"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:HealthPlanCostSharingSpecification_healthPlanCopayOption"], - out healthPlanCopay: { - maxPrice: Number #_[canonical={default="property",base=["max price"]}] #[org_schema_type="Number"], - eligibleQuantity: Number #_[canonical={default="property",base=["eligible quantity"]}] #[org_schema_type="QuantitativeValue"], - valueAddedTaxIncluded: Boolean #_[canonical={default="property",property_true=["value added tax included"],verb_true=["include value added tax", "includes value added tax"],base=["value added tax included"]}] #[org_schema_type="Boolean"], - minPrice: Number #_[canonical={default="property",base=["min price"]}] #[org_schema_type="Number"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - price: Currency #_[canonical={default="property",base=["price"]}] #[org_schema_type="Number"] - } #_[canonical={default="property",base=["health plan copay"]}] #[org_schema_type="PriceSpecification"]) - #_[canonical="health plan cost sharing specification"] - #_[confirmation="health plan cost sharing specification"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ArchiveComponent extends CreativeWork(out id: Entity(org.schema.Restaurant:ArchiveComponent) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ArchiveComponent_name"], - out itemLocation: { - streetAddress: String #_[canonical={base=["street"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ArchiveComponent_itemLocation_streetAddress"], - postOfficeBoxNumber: String #_[canonical={default="property",base=["post office box number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ArchiveComponent_itemLocation_postOfficeBoxNumber"], - postalCode: String #_[canonical={default="property",base=["postal code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ArchiveComponent_itemLocation_postalCode"], - addressLocality: String #_[canonical={base=["city"],preposition=["in #", "from #"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ArchiveComponent_itemLocation_addressLocality"], - addressCountry: Entity(tt:country) #_[canonical={preposition=["in #", "from #"],base=["country"]}] #[org_schema_type="Text"], - addressRegion: Entity(tt:us_state) #_[canonical={preposition=["in #", "from #"],base=["state"]}] #[org_schema_type="Text"], - hoursAvailable: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["hours available"]}] #[org_schema_type="OpeningHoursSpecification"], - contactOption: Enum(TollFree,HearingImpairedSupported) #_[canonical={default="property",base=["contact option"]}] #[org_schema_type="ContactPointOption"], - productSupported: String #_[canonical={default="property",base=["product supported"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ArchiveComponent_itemLocation_productSupported"], - faxNumber: Entity(tt:phone_number) #_[canonical={default="property",base=["fax number"]}] #[org_schema_type="Text"] #[filterable=false], - availableLanguage: Array(String) #_[canonical={default="property",base=["available languages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ArchiveComponent_itemLocation_availableLanguage"], - telephone: Entity(tt:phone_number) #_[canonical={base=["telephone", "phone number"]}] #[org_schema_type="Text"] #[filterable=false], - email: Entity(tt:email_address) #_[canonical={default="property",base=["email"]}] #[org_schema_type="Text"] #[filterable=false], - contactType: Array(String) #_[canonical={default="property",base=["contact types"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ArchiveComponent_itemLocation_contactType"] - } #_[canonical={default="property",base=["item location"]}] #[org_schema_type="PostalAddress"], - out holdingArchive: Entity(org.schema.Restaurant:ArchiveOrganization) #_[canonical={default="passive_verb",passive_verb=["holding archive"],base=["holding archive"]}] #[org_schema_type="ArchiveOrganization"]) - #_[canonical="archive component"] - #_[confirmation="archive component"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query UserPlusOnes extends UserInteraction(out id: Entity(org.schema.Restaurant:UserPlusOnes) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:UserPlusOnes_name"]) - #_[canonical="user plus ones"] - #_[confirmation="user plus ones"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Preschool extends EducationalOrganization(out id: Entity(org.schema.Restaurant:Preschool) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Preschool_name"]) - #_[canonical="preschool"] - #_[confirmation="preschool"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Dataset extends CreativeWork(out id: Entity(org.schema.Restaurant:Dataset) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Dataset_name"], - out variableMeasured: String #_[canonical={default="property",base=["variable measured"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Dataset_variableMeasured"], - out issn: String #_[canonical={default="passive_verb",passive_verb=["issn"],base=["issn"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Dataset_issn"], - out includedInDataCatalog: Array(Entity(org.schema.Restaurant:DataCatalog)) #_[canonical={default="verb",verb=["included in data catalog"],base=["included in data catalog"]}] #[org_schema_type="DataCatalog"], - out measurementTechnique: Array(Entity(tt:url)) #_[canonical={default="property",base=["measurement techniques"]}] #[org_schema_type="URL"], - out distribution: Array(Entity(org.schema.Restaurant:DataDownload)) #_[canonical={default="property",base=["distributions"]}] #[org_schema_type="DataDownload"]) - #_[canonical="dataset"] - #_[confirmation="dataset"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query DataFeed extends Dataset(out id: Entity(org.schema.Restaurant:DataFeed) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:DataFeed_name"], - out dataFeedElement: Array(String) #_[canonical={default="property",base=["data feed elements"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:DataFeed_dataFeedElement"]) - #_[canonical="data feed"] - #_[confirmation="data feed"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query CompleteDataFeed extends DataFeed(out id: Entity(org.schema.Restaurant:CompleteDataFeed) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:CompleteDataFeed_name"]) - #_[canonical="complete data feed"] - #_[confirmation="complete data feed"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query BroadcastChannel extends Intangible(out id: Entity(org.schema.Restaurant:BroadcastChannel) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:BroadcastChannel_name"], - out inBroadcastLineup: Entity(org.schema.Restaurant:CableOrSatelliteService) #_[canonical={default="passive_verb",passive_verb=["in broadcast lineup"],base=["in broadcast lineup"]}] #[org_schema_type="CableOrSatelliteService"], - out broadcastFrequency: String #_[canonical={default="property",base=["broadcast frequency"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:BroadcastChannel_broadcastFrequency"], - out broadcastChannelId: String #_[canonical={default="property",base=["broadcast channel id"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:BroadcastChannel_broadcastChannelId"], - out broadcastServiceTier: String #_[canonical={default="property",base=["broadcast service tier"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:BroadcastChannel_broadcastServiceTier"], - out providesBroadcastService: Entity(org.schema.Restaurant:BroadcastService) #_[canonical={default="verb",verb=["provides broadcast service"],base=["provides broadcast service"]}] #[org_schema_type="BroadcastService"], - out genre: Array(String) #_[canonical={base=["genre"],adjective=["#"]}] #[org_schema_type="URL"] #[string_values="org.schema.Restaurant:BroadcastChannel_genre"]) - #_[canonical="broadcast channel"] - #_[confirmation="broadcast channel"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Florist extends Store(out id: Entity(org.schema.Restaurant:Florist) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Florist_name"]) - #_[canonical="florist"] - #_[confirmation="florist"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Occupation extends Intangible(out id: Entity(org.schema.Restaurant:Occupation) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Occupation_name"], - out skills: Array(String) #_[canonical={default="property",base=["skills"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Occupation_skills"], - out educationRequirements: String #_[canonical={default="property",base=["education requirements"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Occupation_educationRequirements"], - out occupationLocation: Entity(org.schema.Restaurant:AdministrativeArea) #_[canonical={default="property",base=["occupation location"]}] #[org_schema_type="AdministrativeArea"], - out qualifications: String #_[canonical={default="property",base=["qualifications"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Occupation_qualifications"], - out estimatedSalary: Array(Currency) #_[canonical={default="passive_verb",passive_verb=["estimated salaries"],base=["estimated salary"]}] #[org_schema_type="MonetaryAmount"], - out responsibilities: String #_[canonical={default="property",base=["responsibilities"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Occupation_responsibilities"], - out occupationalCategory: Array(String) #_[canonical={default="property",base=["occupational categories"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Occupation_occupationalCategory"], - out experienceRequirements: String #_[canonical={default="property",base=["experience requirements"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Occupation_experienceRequirements"]) - #_[canonical="occupation"] - #_[confirmation="occupation"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Nerve extends AnatomicalStructure(out id: Entity(org.schema.Restaurant:Nerve) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Nerve_name"], - out sourcedFrom: Entity(org.schema.Restaurant:BrainStructure) #_[canonical={default="passive_verb",passive_verb=["sourced from"],base=["sourced from"]}] #[org_schema_type="BrainStructure"], - out sensoryUnit: Entity(org.schema.Restaurant:AnatomicalStructure) #_[canonical={default="property",base=["sensory unit"]}] #[org_schema_type="AnatomicalStructure"], - out nerveMotor: Entity(org.schema.Restaurant:Muscle) #_[canonical={default="property",base=["nerve motor"]}] #[org_schema_type="Muscle"]) - #_[canonical="nerve"] - #_[confirmation="nerve"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MusicAlbum extends MusicPlaylist(out id: Entity(org.schema.Restaurant:MusicAlbum) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MusicAlbum_name"], - out albumReleaseType: Enum(SingleRelease,AlbumRelease,EPRelease,BroadcastRelease) #_[canonical={default="property",base=["album release type"]}] #[org_schema_type="MusicAlbumReleaseType"], - out albumProductionType: Enum(DemoAlbum,SpokenWordAlbum,SoundtrackAlbum,RemixAlbum,LiveAlbum,DJMixAlbum,MixtapeAlbum,StudioAlbum,CompilationAlbum) #_[canonical={default="property",base=["album production type"]}] #[org_schema_type="MusicAlbumProductionType"], - out byArtist: Entity(org.schema.Music:Person) #_[canonical={base=["artist", "singer", "band"],adjective=["# 's", "#"],preposition=["by", "by artist"],passive_verb=["created by", "sang by", "performed by", "released by"],verb=["# sings", "# sang", "# release", "# publish"],base_projection=["artist", "singer", "band"],passive_verb_projection=["created | by", "sang | by", "performed | by"],reverse_verb_projection=["sing", "sang"]}] #[org_schema_type="MusicGroup"], - out albumRelease: Array(Entity(org.schema.Restaurant:MusicRelease)) #_[canonical={default="property",base=["album releases"]}] #[org_schema_type="MusicRelease"]) - #_[canonical=["album"]] - #_[confirmation="music album"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query PreventionIndication extends MedicalIndication(out id: Entity(org.schema.Restaurant:PreventionIndication) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:PreventionIndication_name"]) - #_[canonical="prevention indication"] - #_[confirmation="prevention indication"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query UserPageVisits extends UserInteraction(out id: Entity(org.schema.Restaurant:UserPageVisits) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:UserPageVisits_name"]) - #_[canonical="user page visits"] - #_[confirmation="user page visits"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query AlignmentObject extends Intangible(out id: Entity(org.schema.Restaurant:AlignmentObject) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:AlignmentObject_name"], - out alignmentType: Array(String) #_[canonical={default="property",base=["alignment types"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:AlignmentObject_alignmentType"], - out targetDescription: String #_[canonical={default="property",base=["target description"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:AlignmentObject_targetDescription"], - out educationalFramework: String #_[canonical={default="property",base=["educational framework"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:AlignmentObject_educationalFramework"], - out targetUrl: Entity(tt:url) #_[canonical={default="property",base=["target url"]}] #[org_schema_type="URL"], - out targetName: String #_[canonical={default="property",base=["target name"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:AlignmentObject_targetName"]) - #_[canonical="alignment object"] - #_[confirmation="alignment object"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query SchoolDistrict extends AdministrativeArea(out id: Entity(org.schema.Restaurant:SchoolDistrict) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:SchoolDistrict_name"]) - #_[canonical="school district"] - #_[confirmation="school district"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query EntryPoint extends Intangible(out id: Entity(org.schema.Restaurant:EntryPoint) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:EntryPoint_name"], - out actionPlatform: Entity(tt:url) #_[canonical={default="property",base=["action platform"]}] #[org_schema_type="URL"], - out urlTemplate: Array(String) #_[canonical={default="passive_verb",passive_verb=["url templates"],base=["url template"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:EntryPoint_urlTemplate"], - out actionApplication: Array(Entity(org.schema.Restaurant:SoftwareApplication)) #_[canonical={default="property",base=["action applications"]}] #[org_schema_type="SoftwareApplication"], - out encodingType: String #_[canonical={default="property",base=["encoding type"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:EntryPoint_encodingType"], - out contentType: String #_[canonical={default="property",base=["content type"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:EntryPoint_contentType"], - out httpMethod: Array(String) #_[canonical={default="property",base=["http methods"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:EntryPoint_httpMethod"]) - #_[canonical="entry point"] - #_[confirmation="entry point"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Continent extends Landform(out id: Entity(org.schema.Restaurant:Continent) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Continent_name"]) - #_[canonical="continent"] - #_[confirmation="continent"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query BodyOfWater extends Landform(out id: Entity(org.schema.Restaurant:BodyOfWater) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:BodyOfWater_name"]) - #_[canonical="body of water"] - #_[confirmation="body of water"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Reservoir extends BodyOfWater(out id: Entity(org.schema.Restaurant:Reservoir) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Reservoir_name"]) - #_[canonical="reservoir"] - #_[confirmation="reservoir"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Diet extends LifestyleModification, CreativeWork(out id: Entity(org.schema.Restaurant:Diet) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Diet_name"], - out physiologicalBenefits: String #_[canonical={default="property",base=["physiological benefits"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Diet_physiologicalBenefits"], - out risks: String #_[canonical={default="property",base=["risks"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Diet_risks"], - out dietFeatures: String #_[canonical={default="property",base=["diet features"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Diet_dietFeatures"], - out endorsers: Entity(org.schema.Restaurant:Organization) #_[canonical={default="property",base=["endorsers"]}] #[org_schema_type="Organization"], - out expertConsiderations: String #_[canonical={default="property",base=["expert considerations"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Diet_expertConsiderations"]) - #_[canonical="diet"] - #_[confirmation="diet"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Collection extends CreativeWork(out id: Entity(org.schema.Restaurant:Collection) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Collection_name"], - out collectionSize: Number #_[canonical={default="property",base=["collection size"]}] #[org_schema_type="Integer"]) - #_[canonical="collection"] - #_[confirmation="collection"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ProductCollection extends Product, Collection(out id: Entity(org.schema.Restaurant:ProductCollection) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ProductCollection_name"], - out includesObject: { - typeOfGood: Entity(org.schema.Restaurant:Service) #_[canonical={default="property",base=["type of good"]}] #[org_schema_type="Service"], - unitCode: Entity(tt:url) #_[canonical={default="property",base=["unit code"]}] #[org_schema_type="URL"], - unitText: Array(String) #_[canonical={default="property",base=["unit texts"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:ProductCollection_includesObject_unitText"], - businessFunction: Entity(org.schema.Restaurant:BusinessFunction) #_[canonical={default="property",base=["business function"]}] #[org_schema_type="BusinessFunction"], - amountOfThisGood: Number #_[canonical={default="property",base=["amount of this good"]}] #[org_schema_type="Number"] - } #_[canonical={default="verb",verb=["includes object"],base=["includes object"]}] #[org_schema_type="TypeAndQuantityNode"]) - #_[canonical="product collection"] - #_[confirmation="product collection"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Flight extends Trip(out id: Entity(org.schema.Restaurant:Flight) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Flight_name"], - out departureAirport: Entity(org.schema.Restaurant:Airport) #_[canonical={default="property",base=["departure airport"]}] #[org_schema_type="Airport"], - out arrivalAirport: Entity(org.schema.Restaurant:Airport) #_[canonical={default="property",base=["arrival airport"]}] #[org_schema_type="Airport"], - out arrivalGate: String #_[canonical={default="property",base=["arrival gate"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Flight_arrivalGate"], - out seller: Array(Entity(org.schema.Restaurant:Organization)) #_[canonical={default="property",base=["sellers"]}] #[org_schema_type="Organization"], - out departureTerminal: String #_[canonical={default="property",base=["departure terminal"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Flight_departureTerminal"], - out estimatedFlightDuration: Measure(ms) #_[canonical={default="passive_verb",passive_verb=["estimated flight duration"],base=["estimated flight duration"]}] #[org_schema_type="Duration"], - out flightDistance: Measure(m) #_[canonical={default="property",base=["flight distance"]}] #[org_schema_type="Distance"], - out arrivalTerminal: String #_[canonical={default="property",base=["arrival terminal"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Flight_arrivalTerminal"], - out flightNumber: String #_[canonical={default="property",base=["flight number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Flight_flightNumber"], - out boardingPolicy: Enum(GroupBoardingPolicy,ZoneBoardingPolicy) #_[canonical={default="passive_verb",passive_verb=["boarding policy"],base=["boarding policy"]}] #[org_schema_type="BoardingPolicyType"], - out aircraft: String #_[canonical={default="property",base=["aircraft"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Flight_aircraft"], - out webCheckinTime: Date #_[canonical={default="property",base=["web checkin time"]}] #[org_schema_type="DateTime"], - out mealService: String #_[canonical={default="property",base=["meal service"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Flight_mealService"], - out departureGate: String #_[canonical={default="property",base=["departure gate"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Flight_departureGate"]) - #_[canonical="flight"] - #_[confirmation="flight"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ShoppingCenter extends LocalBusiness(out id: Entity(org.schema.Restaurant:ShoppingCenter) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ShoppingCenter_name"]) - #_[canonical="shopping center"] - #_[confirmation="shopping center"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query HowToItem extends ListItem(out id: Entity(org.schema.Restaurant:HowToItem) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:HowToItem_name"], - out requiredQuantity: Number #_[canonical={default="passive_verb",passive_verb=["required quantity"],base=["required quantity"]}] #[org_schema_type="Number"]) - #_[canonical="how to item"] - #_[confirmation="how to item"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query HowToTool extends HowToItem(out id: Entity(org.schema.Restaurant:HowToTool) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:HowToTool_name"]) - #_[canonical="how to tool"] - #_[confirmation="how to tool"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query DDxElement extends MedicalIntangible(out id: Entity(org.schema.Restaurant:DDxElement) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:DDxElement_name"], - out distinguishingSign: Entity(org.schema.Restaurant:MedicalSignOrSymptom) #_[canonical={default="passive_verb",passive_verb=["distinguishing sign"],base=["distinguishing sign"]}] #[org_schema_type="MedicalSignOrSymptom"], - out diagnosis: Entity(org.schema.Restaurant:MedicalCondition) #_[canonical={default="property",base=["diagnosis"]}] #[org_schema_type="MedicalCondition"]) - #_[canonical="ddx element"] - #_[confirmation="ddx element"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query State extends AdministrativeArea(out id: Entity(org.schema.Restaurant:State) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:State_name"]) - #_[canonical="state"] - #_[confirmation="state"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Playground extends CivicStructure(out id: Entity(org.schema.Restaurant:Playground) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Playground_name"]) - #_[canonical="playground"] - #_[confirmation="playground"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query EventReservation extends Reservation(out id: Entity(org.schema.Restaurant:EventReservation) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:EventReservation_name"]) - #_[canonical="event reservation"] - #_[confirmation="event reservation"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Quotation extends CreativeWork(out id: Entity(org.schema.Restaurant:Quotation) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Quotation_name"], - out spokenByCharacter: Entity(org.schema.Restaurant:Person) #_[canonical={default="passive_verb",passive_verb=["spoken by character"],base=["spoken by character"],reverse_verb=["spoken by charactered"]}] #[org_schema_type="Person"]) - #_[canonical="quotation"] - #_[confirmation="quotation"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MedicalSignOrSymptom extends MedicalCondition(out id: Entity(org.schema.Restaurant:MedicalSignOrSymptom) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MedicalSignOrSymptom_name"], - out possibleTreatment: Array(Entity(org.schema.Restaurant:MedicalTherapy)) #_[canonical={default="property",base=["possible treatments"]}] #[org_schema_type="MedicalTherapy"]) - #_[canonical="medical sign or symptom"] - #_[confirmation="medical sign or symptom"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MedicalSign extends MedicalSignOrSymptom(out id: Entity(org.schema.Restaurant:MedicalSign) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MedicalSign_name"], - out identifyingTest: Array(Entity(org.schema.Restaurant:MedicalTest)) #_[canonical={default="passive_verb",passive_verb=["identifying tests"],base=["identifying test"]}] #[org_schema_type="MedicalTest"], - out identifyingExam: Enum(Neck,Nose,Throat,Lung,Ear,Skin,MusculoskeletalExam,Head,Genitourinary,Neuro,CardiovascularExam,Eye,Abdomen,Appearance) #_[canonical={default="passive_verb",passive_verb=["identifying exam"],base=["identifying exam"]}] #[org_schema_type="PhysicalExam"]) - #_[canonical="medical sign"] - #_[confirmation="medical sign"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query BookSeries extends CreativeWorkSeries(out id: Entity(org.schema.Restaurant:BookSeries) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:BookSeries_name"]) - #_[canonical="book series"] - #_[confirmation="book series"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ParkingFacility extends CivicStructure(out id: Entity(org.schema.Restaurant:ParkingFacility) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ParkingFacility_name"]) - #_[canonical="parking facility"] - #_[confirmation="parking facility"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query HighSchool extends EducationalOrganization(out id: Entity(org.schema.Restaurant:HighSchool) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:HighSchool_name"]) - #_[canonical="high school"] - #_[confirmation="high school"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query BankAccount extends FinancialProduct(out id: Entity(org.schema.Restaurant:BankAccount) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:BankAccount_name"], - out accountOverdraftLimit: Array(Currency) #_[canonical={default="property",base=["account overdraft limits"]}] #[org_schema_type="MonetaryAmount"], - out bankAccountType: Entity(tt:url) #_[canonical={default="property",base=["bank account type"]}] #[org_schema_type="URL"], - out accountMinimumInflow: Array(Currency) #_[canonical={default="property",base=["account minimum inflows"]}] #[org_schema_type="MonetaryAmount"]) - #_[canonical="bank account"] - #_[confirmation="bank account"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query UserDownloads extends UserInteraction(out id: Entity(org.schema.Restaurant:UserDownloads) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:UserDownloads_name"]) - #_[canonical="user downloads"] - #_[confirmation="user downloads"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query PawnShop extends Store(out id: Entity(org.schema.Restaurant:PawnShop) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:PawnShop_name"]) - #_[canonical="pawn shop"] - #_[confirmation="pawn shop"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Physician extends MedicalOrganization(out id: Entity(org.schema.Restaurant:Physician) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Physician_name"], - out hospitalAffiliation: Array(Entity(org.schema.Restaurant:Hospital)) #_[canonical={default="property",base=["hospital affiliations"]}] #[org_schema_type="Hospital"], - out medicalSpecialty: Enum(PrimaryCare,SpeechPathology,Genetic,Obstetric,Rheumatologic,Anesthesia,Emergency,Gynecologic,Surgical,Dentistry,Nursing,Hematologic,Pulmonary,Neurologic,PharmacySpecialty,PublicHealth,Geriatric,Urologic,Musculoskeletal,Dermatology,DietNutrition,Physiotherapy,RespiratoryTherapy,Psychiatric,CommunityHealth,Cardiovascular,Toxicologic,Gastroenterologic,Midwifery,Podiatric,Renal,Dermatologic,PlasticSurgery,LaboratoryScience,Pediatric,Otolaryngologic,Endocrine,Pathology,Infectious,Oncologic,Optometric,Radiography) #_[canonical={default="property",base=["medical specialty"]}] #[org_schema_type="MedicalSpecialty"], - out availableService: Array(Entity(org.schema.Restaurant:MedicalTest)) #_[canonical={default="property",base=["available services"]}] #[org_schema_type="MedicalTest"]) - #_[canonical="physician"] - #_[confirmation="physician"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Conversation extends CreativeWork(out id: Entity(org.schema.Restaurant:Conversation) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Conversation_name"]) - #_[canonical="conversation"] - #_[confirmation="conversation"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query TrainStation extends CivicStructure(out id: Entity(org.schema.Restaurant:TrainStation) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:TrainStation_name"]) - #_[canonical="train station"] - #_[confirmation="train station"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query PerformingGroup extends Organization(out id: Entity(org.schema.Restaurant:PerformingGroup) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:PerformingGroup_name"]) - #_[canonical="performing group"] - #_[confirmation="performing group"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MusicGroup extends PerformingGroup(out id: Entity(org.schema.Restaurant:MusicGroup) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MusicGroup_name"], - out track: Array(Entity(org.schema.Restaurant:ItemList)) #_[canonical={default="verb",verb=["tracks"],base=["track"]}] #[org_schema_type="ItemList"], - out album: Array(Entity(org.schema.Restaurant:MusicAlbum)) #_[canonical={default="property",base=["albums"]}] #[org_schema_type="MusicAlbum"], - out genre: Array(String) #_[canonical={base=["genre"],adjective=["#"]}] #[org_schema_type="URL"] #[string_values="org.schema.Restaurant:MusicGroup_genre"]) - #_[canonical="music group"] - #_[confirmation="music group"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Permit extends Intangible(out id: Entity(org.schema.Restaurant:Permit) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Permit_name"], - out validUntil: Date #_[canonical={default="passive_verb",passive_verb=["valid until"],base=["valid until"]}] #[org_schema_type="Date"], - out validFor: Measure(ms) #_[canonical={default="passive_verb",passive_verb=["valid for"],base=["valid for"]}] #[org_schema_type="Duration"], - out permitAudience: Entity(org.schema.Restaurant:Audience) #_[canonical={default="property",base=["permit audience"]}] #[org_schema_type="Audience"], - out validIn: Entity(org.schema.Restaurant:AdministrativeArea) #_[canonical={default="passive_verb",passive_verb=["valid in"],base=["valid in"]}] #[org_schema_type="AdministrativeArea"], - out validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - out issuedBy: Entity(org.schema.Restaurant:Organization) #_[canonical={default="passive_verb",passive_verb=["issued by"],base=["issued by"]}] #[org_schema_type="Organization"], - out issuedThrough: Entity(org.schema.Restaurant:Service) #_[canonical={default="passive_verb",passive_verb=["issued through"],base=["issued through"]}] #[org_schema_type="Service"]) - #_[canonical="permit"] - #_[confirmation="permit"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query SportsClub extends SportsActivityLocation(out id: Entity(org.schema.Restaurant:SportsClub) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:SportsClub_name"]) - #_[canonical="sports club"] - #_[confirmation="sports club"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Bridge extends CivicStructure(out id: Entity(org.schema.Restaurant:Bridge) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Bridge_name"]) - #_[canonical="bridge"] - #_[confirmation="bridge"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query TouristAttraction extends Place(out id: Entity(org.schema.Restaurant:TouristAttraction) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:TouristAttraction_name"], - out touristType: String #_[canonical={default="property",base=["tourist type"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:TouristAttraction_touristType"], - out availableLanguage: Array(String) #_[canonical={default="property",base=["available languages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:TouristAttraction_availableLanguage"]) - #_[canonical="tourist attraction"] - #_[confirmation="tourist attraction"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query BusinessAudience extends Audience(out id: Entity(org.schema.Restaurant:BusinessAudience) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:BusinessAudience_name"], - out yearlyRevenue: Number #_[canonical={default="property",base=["yearly revenue"]}] #[org_schema_type="QuantitativeValue"], - out yearsInOperation: Number #_[canonical={default="property",base=["years in operation"]}] #[org_schema_type="QuantitativeValue"], - out numberOfEmployees: Number #_[canonical={default="property",base=["number of employees"]}] #_[counted_object=["employees"]] #[org_schema_type="QuantitativeValue"]) - #_[canonical="business audience"] - #_[confirmation="business audience"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query UserReview extends Review(out id: Entity(org.schema.Restaurant:UserReview) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:UserReview_name"]) - #_[canonical="user review"] - #_[confirmation="user review"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Atlas extends CreativeWork(out id: Entity(org.schema.Restaurant:Atlas) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Atlas_name"]) - #_[canonical="atlas"] - #_[confirmation="atlas"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query UserPlays extends UserInteraction(out id: Entity(org.schema.Restaurant:UserPlays) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:UserPlays_name"]) - #_[canonical="user plays"] - #_[confirmation="user plays"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Book extends CreativeWork(out id: Entity(org.schema.Restaurant:Book) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Book_name"], - out isbn: String #_[canonical={default="passive_verb",passive_verb=["isbn"],base=["isbn"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Book_isbn"], - out abridged: Boolean #_[canonical={adjective_true=["abridged"]}] #[org_schema_type="Boolean"], - out bookEdition: String #_[canonical={base=["edition"],reverse_property=["# of"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Book_bookEdition"], - out bookFormat: Enum(AudiobookFormat,EBook,GraphicNovel,Hardcover,Paperback) #_[canonical={base=["format"],preposition=["in #", "in # format"]}] #[org_schema_type="BookFormatType"], - out illustrator: Entity(org.schema.Restaurant:Person) #_[canonical={default="property",base=["illustrator"],reverse_verb=["illustratored"]}] #[org_schema_type="Person"], - out numberOfPages: Number #_[canonical={base=["number of pages"],property=["# pages"],adjective_argmax=["longest"],adjective_argmin=["shortest"]}] #_[counted_object=["pages"]] #[org_schema_type="Integer"]) - #_[canonical="book"] - #_[confirmation="book"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query GroceryStore extends Store(out id: Entity(org.schema.Restaurant:GroceryStore) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:GroceryStore_name"]) - #_[canonical="grocery store"] - #_[confirmation="grocery store"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query AboutPage extends WebPage(out id: Entity(org.schema.Restaurant:AboutPage) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:AboutPage_name"]) - #_[canonical="about page"] - #_[confirmation="about page"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query FinancialService extends LocalBusiness(out id: Entity(org.schema.Restaurant:FinancialService) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:FinancialService_name"], - out feesAndCommissionsSpecification: Entity(tt:url) #_[canonical={default="property",base=["fees and commissions specification"]}] #[org_schema_type="URL"]) - #_[canonical="financial service"] - #_[confirmation="financial service"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query InsuranceAgency extends FinancialService(out id: Entity(org.schema.Restaurant:InsuranceAgency) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:InsuranceAgency_name"]) - #_[canonical="insurance agency"] - #_[confirmation="insurance agency"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ArchiveOrganization extends LocalBusiness(out id: Entity(org.schema.Restaurant:ArchiveOrganization) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ArchiveOrganization_name"], - out archiveHeld: Entity(org.schema.Restaurant:ArchiveComponent) #_[canonical={default="property",base=["archive held"]}] #[org_schema_type="ArchiveComponent"]) - #_[canonical="archive organization"] - #_[confirmation="archive organization"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query AudioObject extends MediaObject(out id: Entity(org.schema.Restaurant:AudioObject) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:AudioObject_name"], - out caption: String #_[canonical={default="property",base=["caption"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:AudioObject_caption"], - out transcript: String #_[canonical={default="property",base=["transcript"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:AudioObject_transcript"]) - #_[canonical="audio object"] - #_[confirmation="audio object"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query StadiumOrArena extends SportsActivityLocation, CivicStructure(out id: Entity(org.schema.Restaurant:StadiumOrArena) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:StadiumOrArena_name"]) - #_[canonical="stadium or arena"] - #_[confirmation="stadium or arena"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Vein extends Vessel(out id: Entity(org.schema.Restaurant:Vein) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Vein_name"], - out regionDrained: Entity(org.schema.Restaurant:AnatomicalStructure) #_[canonical={default="property",base=["region drained"]}] #[org_schema_type="AnatomicalStructure"], - out drainsTo: Entity(org.schema.Restaurant:Vessel) #_[canonical={default="verb",verb=["drains to"],base=["drains to"]}] #[org_schema_type="Vessel"], - out tributary: Entity(org.schema.Restaurant:AnatomicalStructure) #_[canonical={default="passive_verb",passive_verb=["tributary"],base=["tributary"]}] #[org_schema_type="AnatomicalStructure"]) - #_[canonical="vein"] - #_[confirmation="vein"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Muscle extends AnatomicalStructure(out id: Entity(org.schema.Restaurant:Muscle) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Muscle_name"], - out nerve: Entity(org.schema.Restaurant:Nerve) #_[canonical={default="property",base=["nerve"]}] #[org_schema_type="Nerve"], - out bloodSupply: Entity(org.schema.Restaurant:Vessel) #_[canonical={default="property",base=["blood supply"]}] #[org_schema_type="Vessel"], - out muscleAction: String #_[canonical={default="property",base=["muscle action"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Muscle_muscleAction"], - out antagonist: Entity(org.schema.Restaurant:Muscle) #_[canonical={default="property",base=["antagonist"]}] #[org_schema_type="Muscle"], - out insertion: Entity(org.schema.Restaurant:AnatomicalStructure) #_[canonical={default="property",base=["insertion"]}] #[org_schema_type="AnatomicalStructure"]) - #_[canonical="muscle"] - #_[confirmation="muscle"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query BackgroundNewsArticle extends NewsArticle(out id: Entity(org.schema.Restaurant:BackgroundNewsArticle) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:BackgroundNewsArticle_name"]) - #_[canonical="background news article"] - #_[confirmation="background news article"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Artery extends Vessel(out id: Entity(org.schema.Restaurant:Artery) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Artery_name"], - out arterialBranch: Entity(org.schema.Restaurant:AnatomicalStructure) #_[canonical={default="property",base=["arterial branch"]}] #[org_schema_type="AnatomicalStructure"], - out supplyTo: Entity(org.schema.Restaurant:AnatomicalStructure) #_[canonical={default="property",base=["supply to"]}] #[org_schema_type="AnatomicalStructure"]) - #_[canonical="artery"] - #_[confirmation="artery"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query AutoPartsStore extends AutomotiveBusiness, Store(out id: Entity(org.schema.Restaurant:AutoPartsStore) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:AutoPartsStore_name"]) - #_[canonical="auto parts store"] - #_[confirmation="auto parts store"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Painting extends CreativeWork(out id: Entity(org.schema.Restaurant:Painting) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Painting_name"]) - #_[canonical="painting"] - #_[confirmation="painting"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query RecommendedDoseSchedule extends DoseSchedule(out id: Entity(org.schema.Restaurant:RecommendedDoseSchedule) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:RecommendedDoseSchedule_name"]) - #_[canonical="recommended dose schedule"] - #_[confirmation="recommended dose schedule"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Ligament extends AnatomicalStructure(out id: Entity(org.schema.Restaurant:Ligament) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Ligament_name"]) - #_[canonical="ligament"] - #_[confirmation="ligament"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query QAPage extends WebPage(out id: Entity(org.schema.Restaurant:QAPage) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:QAPage_name"]) - #_[canonical="qapage"] - #_[confirmation="qapage"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query PathologyTest extends MedicalTest(out id: Entity(org.schema.Restaurant:PathologyTest) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:PathologyTest_name"], - out tissueSample: String #_[canonical={default="property",base=["tissue sample"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:PathologyTest_tissueSample"]) - #_[canonical="pathology test"] - #_[confirmation="pathology test"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query JewelryStore extends Store(out id: Entity(org.schema.Restaurant:JewelryStore) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:JewelryStore_name"]) - #_[canonical="jewelry store"] - #_[confirmation="jewelry store"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query WPFooter extends WebPageElement(out id: Entity(org.schema.Restaurant:WPFooter) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:WPFooter_name"]) - #_[canonical="wpfooter"] - #_[confirmation="wpfooter"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MedicalWebPage extends WebPage(out id: Entity(org.schema.Restaurant:MedicalWebPage) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MedicalWebPage_name"], - out medicalAudience: Enum(MedicalResearcher,Clinician) #_[canonical={default="property",base=["medical audience"]}] #[org_schema_type="MedicalAudienceType"]) - #_[canonical="medical web page"] - #_[confirmation="medical web page"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query HealthTopicContent extends WebContent(out id: Entity(org.schema.Restaurant:HealthTopicContent) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:HealthTopicContent_name"], - out hasHealthAspect: Enum(BenefitsHealthAspect,MayTreatHealthAspect,LivingWithHealthAspect,HowOrWhereHealthAspect,PrognosisHealthAspect,RisksOrComplicationsHealthAspect,OverviewHealthAspect,TypesHealthAspect,SelfCareHealthAspect,SymptomsHealthAspect,ScreeningHealthAspect,TreatmentsHealthAspect,PatientExperienceHealthAspect,SeeDoctorHealthAspect,PreventionHealthAspect,MisconceptionsHealthAspect,RelatedTopicsHealthAspect,CausesHealthAspect,SideEffectsHealthAspect,UsageOrScheduleHealthAspect,StagesHealthAspect,ContagiousnessHealthAspect) #_[canonical={default="property",base=["health aspect"]}] #[org_schema_type="HealthAspectEnumeration"]) - #_[canonical="health topic content"] - #_[confirmation="health topic content"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query OfferForPurchase extends Offer(out id: Entity(org.schema.Restaurant:OfferForPurchase) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:OfferForPurchase_name"]) - #_[canonical="offer for purchase"] - #_[confirmation="offer for purchase"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Synagogue extends PlaceOfWorship(out id: Entity(org.schema.Restaurant:Synagogue) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Synagogue_name"]) - #_[canonical="synagogue"] - #_[confirmation="synagogue"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query TireShop extends Store(out id: Entity(org.schema.Restaurant:TireShop) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:TireShop_name"]) - #_[canonical="tire shop"] - #_[confirmation="tire shop"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query PoliceStation extends CivicStructure, EmergencyService(out id: Entity(org.schema.Restaurant:PoliceStation) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:PoliceStation_name"]) - #_[canonical="police station"] - #_[confirmation="police station"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query HealthAndBeautyBusiness extends LocalBusiness(out id: Entity(org.schema.Restaurant:HealthAndBeautyBusiness) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:HealthAndBeautyBusiness_name"]) - #_[canonical="health and beauty business"] - #_[confirmation="health and beauty business"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query HealthClub extends HealthAndBeautyBusiness, SportsActivityLocation(out id: Entity(org.schema.Restaurant:HealthClub) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:HealthClub_name"]) - #_[canonical="health club"] - #_[confirmation="health club"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query GovernmentService extends Service(out id: Entity(org.schema.Restaurant:GovernmentService) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:GovernmentService_name"], - out jurisdiction: String #_[canonical={default="property",base=["jurisdiction"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:GovernmentService_jurisdiction"], - out serviceOperator: Entity(org.schema.Restaurant:Organization) #_[canonical={default="property",base=["service operator"]}] #[org_schema_type="Organization"]) - #_[canonical="government service"] - #_[confirmation="government service"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query AnimalShelter extends LocalBusiness(out id: Entity(org.schema.Restaurant:AnimalShelter) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:AnimalShelter_name"]) - #_[canonical="animal shelter"] - #_[confirmation="animal shelter"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Thesis extends CreativeWork(out id: Entity(org.schema.Restaurant:Thesis) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Thesis_name"], - out inSupportOf: String #_[canonical={default="reverse_property",reverse_property=["in support of", "# in support", "# 's in support"],base=["in support of"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Thesis_inSupportOf"]) - #_[canonical="thesis"] - #_[confirmation="thesis"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query WorkersUnion extends Organization(out id: Entity(org.schema.Restaurant:WorkersUnion) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:WorkersUnion_name"]) - #_[canonical="workers union"] - #_[confirmation="workers union"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Apartment extends Accommodation(out id: Entity(org.schema.Restaurant:Apartment) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Apartment_name"], - out occupancy: Number #_[canonical={default="property",base=["occupancy"]}] #[org_schema_type="QuantitativeValue"], - out numberOfRooms: Number #_[canonical={default="property",base=["number of rooms"]}] #_[counted_object=["rooms"]] #[org_schema_type="Number"]) - #_[canonical="apartment"] - #_[confirmation="apartment"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Suite extends Accommodation(out id: Entity(org.schema.Restaurant:Suite) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Suite_name"], - out occupancy: Number #_[canonical={default="property",base=["occupancy"]}] #[org_schema_type="QuantitativeValue"], - out bed: String #_[canonical={default="property",base=["bed"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Suite_bed"], - out numberOfRooms: Number #_[canonical={default="property",base=["number of rooms"]}] #_[counted_object=["rooms"]] #[org_schema_type="Number"]) - #_[canonical="suite"] - #_[confirmation="suite"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query House extends Accommodation(out id: Entity(org.schema.Restaurant:House) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:House_name"], - out numberOfRooms: Number #_[canonical={default="property",base=["number of rooms"]}] #_[counted_object=["rooms"]] #[org_schema_type="Number"]) - #_[canonical="house"] - #_[confirmation="house"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query SingleFamilyResidence extends House(out id: Entity(org.schema.Restaurant:SingleFamilyResidence) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:SingleFamilyResidence_name"], - out occupancy: Number #_[canonical={default="property",base=["occupancy"]}] #[org_schema_type="QuantitativeValue"], - out numberOfRooms: Number #_[canonical={default="property",base=["number of rooms"]}] #_[counted_object=["rooms"]] #[org_schema_type="Number"]) - #_[canonical="single family residence"] - #_[confirmation="single family residence"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Manuscript extends CreativeWork(out id: Entity(org.schema.Restaurant:Manuscript) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Manuscript_name"]) - #_[canonical="manuscript"] - #_[confirmation="manuscript"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query SiteNavigationElement extends WebPageElement(out id: Entity(org.schema.Restaurant:SiteNavigationElement) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:SiteNavigationElement_name"]) - #_[canonical="site navigation element"] - #_[confirmation="site navigation element"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query DrugClass extends MedicalEntity(out id: Entity(org.schema.Restaurant:DrugClass) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:DrugClass_name"], - out drug: Entity(org.schema.Restaurant:Drug) #_[canonical={default="property",base=["drug"]}] #[org_schema_type="Drug"]) - #_[canonical="drug class"] - #_[confirmation="drug class"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Patient extends Person, MedicalAudience(out id: Entity(org.schema.Restaurant:Patient) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Patient_name"], - out drug: Entity(org.schema.Restaurant:Drug) #_[canonical={default="property",base=["drug"]}] #[org_schema_type="Drug"], - out diagnosis: Entity(org.schema.Restaurant:MedicalCondition) #_[canonical={default="property",base=["diagnosis"]}] #[org_schema_type="MedicalCondition"], - out healthCondition: Entity(org.schema.Restaurant:MedicalCondition) #_[canonical={default="property",base=["health condition"]}] #[org_schema_type="MedicalCondition"]) - #_[canonical="patient"] - #_[confirmation="patient"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Claim extends CreativeWork(out id: Entity(org.schema.Restaurant:Claim) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Claim_name"], - out firstAppearance: Entity(org.schema.Restaurant:CreativeWork) #_[canonical={default="property",base=["first appearance"]}] #[org_schema_type="CreativeWork"], - out appearance: Entity(org.schema.Restaurant:CreativeWork) #_[canonical={default="property",base=["appearance"]}] #[org_schema_type="CreativeWork"]) - #_[canonical="claim"] - #_[confirmation="claim"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query LegalService extends LocalBusiness(out id: Entity(org.schema.Restaurant:LegalService) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:LegalService_name"]) - #_[canonical="legal service"] - #_[confirmation="legal service"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query DigitalDocumentPermission extends Intangible(out id: Entity(org.schema.Restaurant:DigitalDocumentPermission) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:DigitalDocumentPermission_name"], - out grantee: { - hoursAvailable: { - dayOfWeek: Enum(PublicHolidays,Monday,Friday,Wednesday,Sunday,Saturday,Thursday,Tuesday) #_[canonical={default="property",base=["day of week"]}] #[org_schema_type="DayOfWeek"], - validFrom: Date #_[canonical={default="passive_verb",passive_verb=["valid from"],base=["valid from"]}] #[org_schema_type="Date"], - validThrough: Date #_[canonical={default="passive_verb",passive_verb=["valid through"],base=["valid through"]}] #[org_schema_type="DateTime"], - opens: Time #_[canonical={default="verb",verb=["opens"],base=["opens"]}] #[org_schema_type="Time"], - closes: Time #_[canonical={default="verb",verb=["closes"],base=["closes"]}] #[org_schema_type="Time"] - } #_[canonical={default="property",base=["hours available"]}] #[org_schema_type="OpeningHoursSpecification"], - contactOption: Enum(TollFree,HearingImpairedSupported) #_[canonical={default="property",base=["contact option"]}] #[org_schema_type="ContactPointOption"], - productSupported: String #_[canonical={default="property",base=["product supported"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:DigitalDocumentPermission_grantee_productSupported"], - faxNumber: Entity(tt:phone_number) #_[canonical={default="property",base=["fax number"]}] #[org_schema_type="Text"] #[filterable=false], - availableLanguage: Array(String) #_[canonical={default="property",base=["available languages"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:DigitalDocumentPermission_grantee_availableLanguage"], - telephone: Entity(tt:phone_number) #_[canonical={base=["telephone", "phone number"]}] #[org_schema_type="Text"] #[filterable=false], - email: Entity(tt:email_address) #_[canonical={default="property",base=["email"]}] #[org_schema_type="Text"] #[filterable=false], - contactType: Array(String) #_[canonical={default="property",base=["contact types"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:DigitalDocumentPermission_grantee_contactType"] - } #_[canonical={default="property",base=["grantee"]}] #[org_schema_type="ContactPoint"], - out permissionType: Enum(ReadPermission,WritePermission,CommentPermission) #_[canonical={default="property",base=["permission type"]}] #[org_schema_type="DigitalDocumentPermissionType"]) - #_[canonical="digital document permission"] - #_[confirmation="digital document permission"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query HomeAndConstructionBusiness extends LocalBusiness(out id: Entity(org.schema.Restaurant:HomeAndConstructionBusiness) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:HomeAndConstructionBusiness_name"]) - #_[canonical="home and construction business"] - #_[confirmation="home and construction business"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query HousePainter extends HomeAndConstructionBusiness(out id: Entity(org.schema.Restaurant:HousePainter) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:HousePainter_name"]) - #_[canonical="house painter"] - #_[confirmation="house painter"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query DiagnosticLab extends MedicalOrganization(out id: Entity(org.schema.Restaurant:DiagnosticLab) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:DiagnosticLab_name"], - out availableTest: Array(Entity(org.schema.Restaurant:MedicalTest)) #_[canonical={default="property",base=["available tests"]}] #[org_schema_type="MedicalTest"]) - #_[canonical="diagnostic lab"] - #_[confirmation="diagnostic lab"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MedicalRiskFactor extends MedicalEntity(out id: Entity(org.schema.Restaurant:MedicalRiskFactor) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MedicalRiskFactor_name"], - out increasesRiskOf: Entity(org.schema.Restaurant:MedicalEntity) #_[canonical={default="reverse_property",reverse_property=["increases risk of", "# increases risk", "# 's increases risk"],base=["increases risk of"]}] #[org_schema_type="MedicalEntity"]) - #_[canonical="medical risk factor"] - #_[confirmation="medical risk factor"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Quiz extends LearningResource(out id: Entity(org.schema.Restaurant:Quiz) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Quiz_name"]) - #_[canonical="quiz"] - #_[confirmation="quiz"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Attorney extends LegalService(out id: Entity(org.schema.Restaurant:Attorney) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Attorney_name"]) - #_[canonical="attorney"] - #_[confirmation="attorney"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query StatisticalPopulation extends Intangible(out id: Entity(org.schema.Restaurant:StatisticalPopulation) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:StatisticalPopulation_name"], - out constrainingProperty: Number #_[canonical={default="passive_verb",passive_verb=["constraining property"],base=["constraining property"]}] #[org_schema_type="Integer"], - out numConstraints: Number #_[canonical={default="property",base=["num constraints"]}] #[org_schema_type="Integer"], - out populationType: Entity(org.schema.Restaurant:Class) #_[canonical={default="property",base=["population type"]}] #[org_schema_type="Class"]) - #_[canonical="statistical population"] - #_[confirmation="statistical population"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ToyStore extends Store(out id: Entity(org.schema.Restaurant:ToyStore) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ToyStore_name"]) - #_[canonical="toy store"] - #_[confirmation="toy store"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Waterfall extends BodyOfWater(out id: Entity(org.schema.Restaurant:Waterfall) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Waterfall_name"]) - #_[canonical="waterfall"] - #_[confirmation="waterfall"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MovieRentalStore extends Store(out id: Entity(org.schema.Restaurant:MovieRentalStore) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MovieRentalStore_name"]) - #_[canonical="movie rental store"] - #_[confirmation="movie rental store"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query PodcastSeason extends CreativeWorkSeason(out id: Entity(org.schema.Restaurant:PodcastSeason) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:PodcastSeason_name"]) - #_[canonical="podcast season"] - #_[confirmation="podcast season"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Guide extends CreativeWork(out id: Entity(org.schema.Restaurant:Guide) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Guide_name"], - out reviewAspect: String #_[canonical={default="property",base=["review aspect"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Guide_reviewAspect"]) - #_[canonical="guide"] - #_[confirmation="guide"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MedicalGuidelineContraindication extends MedicalGuideline(out id: Entity(org.schema.Restaurant:MedicalGuidelineContraindication) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MedicalGuidelineContraindication_name"]) - #_[canonical="medical guideline contraindication"] - #_[confirmation="medical guideline contraindication"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query SportsEvent extends Event(out id: Entity(org.schema.Restaurant:SportsEvent) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:SportsEvent_name"], - out awayTeam: Entity(org.schema.Restaurant:Person) #_[canonical={default="property",base=["away team"],reverse_verb=["away tewas"]}] #[org_schema_type="Person"], - out sport: Array(Entity(tt:url)) #_[canonical={default="property",base=["sports"]}] #[org_schema_type="URL"], - out competitor: Array(Entity(org.schema.Restaurant:SportsTeam)) #_[canonical={default="property",base=["competitors"]}] #[org_schema_type="SportsTeam"], - out homeTeam: Entity(org.schema.Restaurant:SportsTeam) #_[canonical={default="property",base=["home team"]}] #[org_schema_type="SportsTeam"]) - #_[canonical="sports event"] - #_[confirmation="sports event"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ImagingTest extends MedicalTest(out id: Entity(org.schema.Restaurant:ImagingTest) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ImagingTest_name"], - out imagingTechnique: Enum(Ultrasound,MRI,PET,CT,XRay,Radiography) #_[canonical={default="property",base=["imaging technique"]}] #[org_schema_type="MedicalImagingTechnique"]) - #_[canonical="imaging test"] - #_[confirmation="imaging test"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query InvestmentOrDeposit extends FinancialProduct(out id: Entity(org.schema.Restaurant:InvestmentOrDeposit) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:InvestmentOrDeposit_name"], - out amount: Currency #_[canonical={default="property",base=["amount"]}] #[org_schema_type="MonetaryAmount"]) - #_[canonical="investment or deposit"] - #_[confirmation="investment or deposit"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query InvestmentFund extends InvestmentOrDeposit(out id: Entity(org.schema.Restaurant:InvestmentFund) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:InvestmentFund_name"]) - #_[canonical="investment fund"] - #_[confirmation="investment fund"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Distillery extends FoodEstablishment(out id: Entity(org.schema.Restaurant:Distillery) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Distillery_name"]) - #_[canonical="distillery"] - #_[confirmation="distillery"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Museum extends CivicStructure(out id: Entity(org.schema.Restaurant:Museum) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Museum_name"]) - #_[canonical="museum"] - #_[confirmation="museum"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MedicalContraindication extends MedicalEntity(out id: Entity(org.schema.Restaurant:MedicalContraindication) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MedicalContraindication_name"]) - #_[canonical="medical contraindication"] - #_[confirmation="medical contraindication"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query HowToSupply extends HowToItem(out id: Entity(org.schema.Restaurant:HowToSupply) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:HowToSupply_name"], - out estimatedCost: Currency #_[canonical={default="passive_verb",passive_verb=["estimated cost"],base=["estimated cost"]}] #[org_schema_type="MonetaryAmount"]) - #_[canonical="how to supply"] - #_[confirmation="how to supply"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query PostOffice extends GovernmentOffice(out id: Entity(org.schema.Restaurant:PostOffice) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:PostOffice_name"]) - #_[canonical="post office"] - #_[confirmation="post office"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query CheckoutPage extends WebPage(out id: Entity(org.schema.Restaurant:CheckoutPage) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:CheckoutPage_name"]) - #_[canonical="checkout page"] - #_[confirmation="checkout page"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query VeterinaryCare extends MedicalOrganization(out id: Entity(org.schema.Restaurant:VeterinaryCare) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:VeterinaryCare_name"]) - #_[canonical="veterinary care"] - #_[confirmation="veterinary care"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query AutoRepair extends AutomotiveBusiness(out id: Entity(org.schema.Restaurant:AutoRepair) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:AutoRepair_name"]) - #_[canonical="auto repair"] - #_[confirmation="auto repair"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ExerciseGym extends SportsActivityLocation(out id: Entity(org.schema.Restaurant:ExerciseGym) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ExerciseGym_name"]) - #_[canonical="exercise gym"] - #_[confirmation="exercise gym"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ProfilePage extends WebPage(out id: Entity(org.schema.Restaurant:ProfilePage) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ProfilePage_name"]) - #_[canonical="profile page"] - #_[confirmation="profile page"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query IndividualProduct extends Product(out id: Entity(org.schema.Restaurant:IndividualProduct) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:IndividualProduct_name"], - out serialNumber: String #_[canonical={default="property",base=["serial number"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:IndividualProduct_serialNumber"]) - #_[canonical="individual product"] - #_[confirmation="individual product"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ApprovedIndication extends MedicalIndication(out id: Entity(org.schema.Restaurant:ApprovedIndication) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ApprovedIndication_name"]) - #_[canonical="approved indication"] - #_[confirmation="approved indication"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ReservationPackage extends Reservation(out id: Entity(org.schema.Restaurant:ReservationPackage) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ReservationPackage_name"], - out subReservation: Entity(org.schema.Restaurant:Reservation) #_[canonical={default="property",base=["sub reservation"]}] #[org_schema_type="Reservation"]) - #_[canonical="reservation package"] - #_[confirmation="reservation package"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Bakery extends FoodEstablishment(out id: Entity(org.schema.Restaurant:Bakery) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Bakery_name"]) - #_[canonical="bakery"] - #_[confirmation="bakery"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Poster extends CreativeWork(out id: Entity(org.schema.Restaurant:Poster) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Poster_name"]) - #_[canonical="poster"] - #_[confirmation="poster"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ItemPage extends WebPage(out id: Entity(org.schema.Restaurant:ItemPage) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ItemPage_name"]) - #_[canonical="item page"] - #_[confirmation="item page"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query DiscussionForumPosting extends SocialMediaPosting(out id: Entity(org.schema.Restaurant:DiscussionForumPosting) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:DiscussionForumPosting_name"]) - #_[canonical="discussion forum posting"] - #_[confirmation="discussion forum posting"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Car extends Vehicle(out id: Entity(org.schema.Restaurant:Car) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Car_name"], - out acrissCode: String #_[canonical={default="property",base=["acriss code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Car_acrissCode"], - out roofLoad: Number #_[canonical={default="property",base=["roof load"]}] #[org_schema_type="QuantitativeValue"]) - #_[canonical="car"] - #_[confirmation="car"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query DanceGroup extends PerformingGroup(out id: Entity(org.schema.Restaurant:DanceGroup) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:DanceGroup_name"]) - #_[canonical="dance group"] - #_[confirmation="dance group"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query DataCatalog extends CreativeWork(out id: Entity(org.schema.Restaurant:DataCatalog) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:DataCatalog_name"], - out _dataset: Array(Entity(org.schema.Restaurant:Dataset)) #_[canonical={default="passive_verb",passive_verb=["dataset"],base=["dataset"]}] #[org_schema_type="Dataset"], - out measurementTechnique: Array(Entity(tt:url)) #_[canonical={default="property",base=["measurement techniques"]}] #[org_schema_type="URL"]) - #_[canonical="data catalog"] - #_[confirmation="data catalog"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Season extends CreativeWork(out id: Entity(org.schema.Restaurant:Season) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Season_name"]) - #_[canonical="season"] - #_[confirmation="season"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query BedDetails extends Intangible(out id: Entity(org.schema.Restaurant:BedDetails) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:BedDetails_name"], - out typeOfBed: String #_[canonical={default="property",base=["type of bed"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:BedDetails_typeOfBed"], - out numberOfBeds: Number #_[canonical={default="property",base=["number of beds"]}] #_[counted_object=["beds"]] #[org_schema_type="Number"]) - #_[canonical="bed details"] - #_[confirmation="bed details"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MedicalGuidelineRecommendation extends MedicalGuideline(out id: Entity(org.schema.Restaurant:MedicalGuidelineRecommendation) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MedicalGuidelineRecommendation_name"], - out recommendationStrength: String #_[canonical={default="property",base=["recommendation strength"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:MedicalGuidelineRecommendation_recommendationStrength"]) - #_[canonical="medical guideline recommendation"] - #_[confirmation="medical guideline recommendation"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MotorcycleDealer extends AutomotiveBusiness(out id: Entity(org.schema.Restaurant:MotorcycleDealer) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MotorcycleDealer_name"]) - #_[canonical="motorcycle dealer"] - #_[confirmation="motorcycle dealer"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Optician extends Thing(out id: Entity(org.schema.Restaurant:Optician) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Optician_name"]) - #_[canonical="optician"] - #_[confirmation="optician"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query LegislationObject extends Legislation, MediaObject(out id: Entity(org.schema.Restaurant:LegislationObject) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:LegislationObject_name"], - out legislationLegalValue: Enum(DefinitiveLegalValue,OfficialLegalValue,UnofficialLegalValue,AuthoritativeLegalValue) #_[canonical={default="property",base=["legislation legal"]}] #[org_schema_type="LegalValueLevel"]) - #_[canonical="legislation object"] - #_[confirmation="legislation object"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query DrugLegalStatus extends MedicalIntangible(out id: Entity(org.schema.Restaurant:DrugLegalStatus) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:DrugLegalStatus_name"], - out applicableLocation: Entity(org.schema.Restaurant:AdministrativeArea) #_[canonical={default="property",base=["applicable location"]}] #[org_schema_type="AdministrativeArea"]) - #_[canonical="drug legal status"] - #_[confirmation="drug legal status"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query RealEstateAgent extends LocalBusiness(out id: Entity(org.schema.Restaurant:RealEstateAgent) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:RealEstateAgent_name"]) - #_[canonical="real estate agent"] - #_[confirmation="real estate agent"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query CableOrSatelliteService extends Service(out id: Entity(org.schema.Restaurant:CableOrSatelliteService) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:CableOrSatelliteService_name"]) - #_[canonical="cable or satellite service"] - #_[confirmation="cable or satellite service"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MedicalSymptom extends MedicalSignOrSymptom(out id: Entity(org.schema.Restaurant:MedicalSymptom) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MedicalSymptom_name"]) - #_[canonical="medical symptom"] - #_[confirmation="medical symptom"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query HinduTemple extends PlaceOfWorship(out id: Entity(org.schema.Restaurant:HinduTemple) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:HinduTemple_name"]) - #_[canonical="hindu temple"] - #_[confirmation="hindu temple"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query SearchResultsPage extends WebPage(out id: Entity(org.schema.Restaurant:SearchResultsPage) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:SearchResultsPage_name"]) - #_[canonical="search results page"] - #_[confirmation="search results page"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query UserBlocks extends UserInteraction(out id: Entity(org.schema.Restaurant:UserBlocks) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:UserBlocks_name"]) - #_[canonical="user blocks"] - #_[confirmation="user blocks"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query DeliveryEvent extends Event(out id: Entity(org.schema.Restaurant:DeliveryEvent) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:DeliveryEvent_name"], - out hasDeliveryMethod: Enum(ParcelService,OnSitePickup,LockerDelivery) #_[canonical={default="property",base=["delivery method"]}] #[org_schema_type="DeliveryMethod"], - out availableThrough: Date #_[canonical={default="passive_verb",passive_verb=["available through"],base=["available through"]}] #[org_schema_type="DateTime"], - out availableFrom: Date #_[canonical={default="passive_verb",passive_verb=["available from"],base=["available from"]}] #[org_schema_type="DateTime"], - out accessCode: String #_[canonical={default="property",base=["access code"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:DeliveryEvent_accessCode"]) - #_[canonical="delivery event"] - #_[confirmation="delivery event"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query EducationalAudience extends Audience(out id: Entity(org.schema.Restaurant:EducationalAudience) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:EducationalAudience_name"], - out educationalRole: Array(String) #_[canonical={default="property",base=["educational roles"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:EducationalAudience_educationalRole"]) - #_[canonical="educational audience"] - #_[confirmation="educational audience"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query DanceEvent extends Event(out id: Entity(org.schema.Restaurant:DanceEvent) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:DanceEvent_name"]) - #_[canonical="dance event"] - #_[confirmation="dance event"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query BookStore extends Store(out id: Entity(org.schema.Restaurant:BookStore) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:BookStore_name"]) - #_[canonical="book store"] - #_[confirmation="book store"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query OccupationalTherapy extends MedicalTherapy(out id: Entity(org.schema.Restaurant:OccupationalTherapy) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:OccupationalTherapy_name"]) - #_[canonical="occupational therapy"] - #_[confirmation="occupational therapy"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Pond extends BodyOfWater(out id: Entity(org.schema.Restaurant:Pond) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Pond_name"]) - #_[canonical="pond"] - #_[confirmation="pond"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query GovernmentBuilding extends CivicStructure(out id: Entity(org.schema.Restaurant:GovernmentBuilding) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:GovernmentBuilding_name"]) - #_[canonical="government building"] - #_[confirmation="government building"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Embassy extends GovernmentBuilding(out id: Entity(org.schema.Restaurant:Embassy) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Embassy_name"]) - #_[canonical="embassy"] - #_[confirmation="embassy"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query FoodEvent extends Event(out id: Entity(org.schema.Restaurant:FoodEvent) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:FoodEvent_name"]) - #_[canonical="food event"] - #_[confirmation="food event"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query OutletStore extends Store(out id: Entity(org.schema.Restaurant:OutletStore) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:OutletStore_name"]) - #_[canonical="outlet store"] - #_[confirmation="outlet store"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Casino extends EntertainmentBusiness(out id: Entity(org.schema.Restaurant:Casino) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Casino_name"]) - #_[canonical="casino"] - #_[confirmation="casino"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query VirtualLocation extends Intangible(out id: Entity(org.schema.Restaurant:VirtualLocation) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:VirtualLocation_name"]) - #_[canonical="virtual location"] - #_[confirmation="virtual location"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query AmusementPark extends EntertainmentBusiness(out id: Entity(org.schema.Restaurant:AmusementPark) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:AmusementPark_name"]) - #_[canonical="amusement park"] - #_[confirmation="amusement park"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query GameServer extends Intangible(out id: Entity(org.schema.Restaurant:GameServer) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:GameServer_name"], - out game: Entity(org.schema.Restaurant:VideoGame) #_[canonical={default="property",base=["game"]}] #[org_schema_type="VideoGame"], - out playersOnline: Number #_[canonical={default="property",base=["players online"]}] #[org_schema_type="Integer"], - out serverStatus: Enum(OfflinePermanently,OnlineFull,OfflineTemporarily,Online) #_[canonical={default="property",base=["server status"]}] #[org_schema_type="GameServerStatus"]) - #_[canonical="game server"] - #_[confirmation="game server"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query DepositAccount extends BankAccount, InvestmentOrDeposit(out id: Entity(org.schema.Restaurant:DepositAccount) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:DepositAccount_name"]) - #_[canonical="deposit account"] - #_[confirmation="deposit account"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Motel extends LodgingBusiness(out id: Entity(org.schema.Restaurant:Motel) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Motel_name"]) - #_[canonical="motel"] - #_[confirmation="motel"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query BusinessEvent extends Event(out id: Entity(org.schema.Restaurant:BusinessEvent) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:BusinessEvent_name"]) - #_[canonical="business event"] - #_[confirmation="business event"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MediaReview extends Review(out id: Entity(org.schema.Restaurant:MediaReview) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MediaReview_name"], - out mediaAuthenticityCategory: Enum(MissingContext,AuthenticContent) #_[canonical={default="property",base=["media authenticity category"]}] #[org_schema_type="MediaManipulationRatingEnumeration"]) - #_[canonical="media review"] - #_[confirmation="media review"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ChildCare extends LocalBusiness(out id: Entity(org.schema.Restaurant:ChildCare) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ChildCare_name"]) - #_[canonical="child care"] - #_[confirmation="child care"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query CategoryCode extends DefinedTerm(out id: Entity(org.schema.Restaurant:CategoryCode) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:CategoryCode_name"], - out codeValue: Array(String) #_[canonical={default="property",base=["codes"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:CategoryCode_codeValue"], - out inCodeSet: Array(Entity(tt:url)) #_[canonical={default="passive_verb",passive_verb=["in code set"],base=["in code set"]}] #[org_schema_type="URL"]) - #_[canonical="category code"] - #_[confirmation="category code"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MedicalCode extends MedicalIntangible, CategoryCode(out id: Entity(org.schema.Restaurant:MedicalCode) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MedicalCode_name"], - out codingSystem: String #_[canonical={default="property",base=["coding system"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:MedicalCode_codingSystem"], - out codeValue: Array(String) #_[canonical={default="property",base=["codes"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:MedicalCode_codeValue"]) - #_[canonical="medical code"] - #_[confirmation="medical code"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MedicalConditionStage extends MedicalIntangible(out id: Entity(org.schema.Restaurant:MedicalConditionStage) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MedicalConditionStage_name"], - out subStageSuffix: String #_[canonical={default="property",base=["sub stage suffix"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:MedicalConditionStage_subStageSuffix"], - out stageAsNumber: Number #_[canonical={default="property",base=["stage as number"]}] #[org_schema_type="Number"]) - #_[canonical="medical condition stage"] - #_[confirmation="medical condition stage"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Photograph extends CreativeWork(out id: Entity(org.schema.Restaurant:Photograph) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Photograph_name"]) - #_[canonical="photograph"] - #_[confirmation="photograph"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query InternetCafe extends LocalBusiness(out id: Entity(org.schema.Restaurant:InternetCafe) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:InternetCafe_name"]) - #_[canonical="internet cafe"] - #_[confirmation="internet cafe"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query DefenceEstablishment extends GovernmentBuilding(out id: Entity(org.schema.Restaurant:DefenceEstablishment) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:DefenceEstablishment_name"]) - #_[canonical="defence establishment"] - #_[confirmation="defence establishment"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Church extends PlaceOfWorship(out id: Entity(org.schema.Restaurant:Church) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Church_name"]) - #_[canonical="church"] - #_[confirmation="church"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query LiquorStore extends Store(out id: Entity(org.schema.Restaurant:LiquorStore) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:LiquorStore_name"]) - #_[canonical="liquor store"] - #_[confirmation="liquor store"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ReportedDoseSchedule extends DoseSchedule(out id: Entity(org.schema.Restaurant:ReportedDoseSchedule) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ReportedDoseSchedule_name"]) - #_[canonical="reported dose schedule"] - #_[confirmation="reported dose schedule"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query LibrarySystem extends Organization(out id: Entity(org.schema.Restaurant:LibrarySystem) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:LibrarySystem_name"]) - #_[canonical="library system"] - #_[confirmation="library system"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query UserTweets extends UserInteraction(out id: Entity(org.schema.Restaurant:UserTweets) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:UserTweets_name"]) - #_[canonical="user tweets"] - #_[confirmation="user tweets"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Volcano extends Landform(out id: Entity(org.schema.Restaurant:Volcano) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Volcano_name"]) - #_[canonical="volcano"] - #_[confirmation="volcano"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query TaxiService extends Service(out id: Entity(org.schema.Restaurant:TaxiService) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:TaxiService_name"]) - #_[canonical="taxi service"] - #_[confirmation="taxi service"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Plumber extends HomeAndConstructionBusiness(out id: Entity(org.schema.Restaurant:Plumber) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Plumber_name"]) - #_[canonical="plumber"] - #_[confirmation="plumber"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ArtGallery extends EntertainmentBusiness(out id: Entity(org.schema.Restaurant:ArtGallery) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ArtGallery_name"]) - #_[canonical="art gallery"] - #_[confirmation="art gallery"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query TattooParlor extends HealthAndBeautyBusiness(out id: Entity(org.schema.Restaurant:TattooParlor) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:TattooParlor_name"]) - #_[canonical="tattoo parlor"] - #_[confirmation="tattoo parlor"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Audiobook extends AudioObject, Book(out id: Entity(org.schema.Restaurant:Audiobook) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Audiobook_name"], - out readBy: Array(Entity(org.schema.Restaurant:Person)) #_[canonical={default="property",base=["read by"],reverse_verb=["read bied"]}] #[org_schema_type="Person"], - out duration: Measure(ms) #_[canonical={base=["duration", "length"],adjective=["# long"],adjective_argmax=["longest"],adjective_argmin=["shortest"]}] #[org_schema_type="Duration"]) - #_[canonical="audiobook"] - #_[confirmation="audiobook"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query SheetMusic extends CreativeWork(out id: Entity(org.schema.Restaurant:SheetMusic) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:SheetMusic_name"]) - #_[canonical="sheet music"] - #_[confirmation="sheet music"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Dentist extends LocalBusiness, MedicalOrganization(out id: Entity(org.schema.Restaurant:Dentist) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Dentist_name"]) - #_[canonical="dentist"] - #_[confirmation="dentist"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ReportageNewsArticle extends NewsArticle(out id: Entity(org.schema.Restaurant:ReportageNewsArticle) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ReportageNewsArticle_name"]) - #_[canonical="reportage news article"] - #_[confirmation="reportage news article"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query CriticReview extends Review(out id: Entity(org.schema.Restaurant:CriticReview) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:CriticReview_name"]) - #_[canonical="critic review"] - #_[confirmation="critic review"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MotorcycleRepair extends AutomotiveBusiness(out id: Entity(org.schema.Restaurant:MotorcycleRepair) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MotorcycleRepair_name"]) - #_[canonical="motorcycle repair"] - #_[confirmation="motorcycle repair"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query FoodService extends Service(out id: Entity(org.schema.Restaurant:FoodService) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:FoodService_name"]) - #_[canonical="food service"] - #_[confirmation="food service"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query FurnitureStore extends Store(out id: Entity(org.schema.Restaurant:FurnitureStore) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:FurnitureStore_name"]) - #_[canonical="furniture store"] - #_[confirmation="furniture store"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ProfessionalService extends LocalBusiness(out id: Entity(org.schema.Restaurant:ProfessionalService) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ProfessionalService_name"]) - #_[canonical="professional service"] - #_[confirmation="professional service"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Resort extends LodgingBusiness(out id: Entity(org.schema.Restaurant:Resort) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Resort_name"]) - #_[canonical="resort"] - #_[confirmation="resort"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query DataDownload extends MediaObject(out id: Entity(org.schema.Restaurant:DataDownload) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:DataDownload_name"], - out measurementTechnique: Array(Entity(tt:url)) #_[canonical={default="property",base=["measurement techniques"]}] #[org_schema_type="URL"]) - #_[canonical="data download"] - #_[confirmation="data download"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query GovernmentPermit extends Permit(out id: Entity(org.schema.Restaurant:GovernmentPermit) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:GovernmentPermit_name"]) - #_[canonical="government permit"] - #_[confirmation="government permit"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query _3DModel extends MediaObject(out id: Entity(org.schema.Restaurant:_3DModel) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:_3DModel_name"], - out isResizable: Boolean #_[canonical={default="adjective",adjective_true=["resizable"],base=["is resizable"]}] #[org_schema_type="Boolean"]) - #_[canonical="3 dmodel"] - #_[confirmation="3 dmodel"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Table extends WebPageElement(out id: Entity(org.schema.Restaurant:Table) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Table_name"]) - #_[canonical="table"] - #_[confirmation="table"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query GovernmentOrganization extends Organization(out id: Entity(org.schema.Restaurant:GovernmentOrganization) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:GovernmentOrganization_name"]) - #_[canonical="government organization"] - #_[confirmation="government organization"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Hackathon extends Event(out id: Entity(org.schema.Restaurant:Hackathon) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Hackathon_name"]) - #_[canonical="hackathon"] - #_[confirmation="hackathon"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query BusReservation extends Reservation(out id: Entity(org.schema.Restaurant:BusReservation) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:BusReservation_name"]) - #_[canonical="bus reservation"] - #_[confirmation="bus reservation"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Taxi extends Service(out id: Entity(org.schema.Restaurant:Taxi) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Taxi_name"]) - #_[canonical="taxi"] - #_[confirmation="taxi"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query RentalCarReservation extends Reservation(out id: Entity(org.schema.Restaurant:RentalCarReservation) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:RentalCarReservation_name"], - out pickupLocation: Entity(org.schema.Restaurant:Place) #_[canonical={default="property",base=["pickup location"]}] #[org_schema_type="Place"], - out pickupTime: Date #_[canonical={default="property",base=["pickup time"]}] #[org_schema_type="DateTime"], - out dropoffLocation: Entity(org.schema.Restaurant:Place) #_[canonical={default="property",base=["dropoff location"]}] #[org_schema_type="Place"], - out dropoffTime: Date #_[canonical={default="property",base=["dropoff time"]}] #[org_schema_type="DateTime"]) - #_[canonical="rental car reservation"] - #_[confirmation="rental car reservation"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query SpeakableSpecification extends Intangible(out id: Entity(org.schema.Restaurant:SpeakableSpecification) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:SpeakableSpecification_name"], - out cssSelector: Array(Entity(org.schema.Restaurant:CssSelectorType)) #_[canonical={default="passive_verb",passive_verb=["css selector"],base=["css selector"]}] #[org_schema_type="CssSelectorType"], - out xpath: Array(Entity(org.schema.Restaurant:XPathType)) #_[canonical={default="passive_verb",passive_verb=["xpath"],base=["xpath"]}] #[org_schema_type="XPathType"]) - #_[canonical="speakable specification"] - #_[confirmation="speakable specification"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query CafeOrCoffeeShop extends FoodEstablishment(out id: Entity(org.schema.Restaurant:CafeOrCoffeeShop) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:CafeOrCoffeeShop_name"]) - #_[canonical="cafe or coffee shop"] - #_[confirmation="cafe or coffee shop"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query NoteDigitalDocument extends DigitalDocument(out id: Entity(org.schema.Restaurant:NoteDigitalDocument) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:NoteDigitalDocument_name"]) - #_[canonical="note digital document"] - #_[confirmation="note digital document"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MobileApplication extends SoftwareApplication(out id: Entity(org.schema.Restaurant:MobileApplication) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MobileApplication_name"], - out carrierRequirements: String #_[canonical={default="property",base=["carrier requirements"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:MobileApplication_carrierRequirements"]) - #_[canonical="mobile application"] - #_[confirmation="mobile application"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query TennisComplex extends SportsActivityLocation(out id: Entity(org.schema.Restaurant:TennisComplex) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:TennisComplex_name"]) - #_[canonical="tennis complex"] - #_[confirmation="tennis complex"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query SubwayStation extends CivicStructure(out id: Entity(org.schema.Restaurant:SubwayStation) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:SubwayStation_name"]) - #_[canonical="subway station"] - #_[confirmation="subway station"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Campground extends CivicStructure, LodgingBusiness(out id: Entity(org.schema.Restaurant:Campground) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Campground_name"]) - #_[canonical="campground"] - #_[confirmation="campground"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Courthouse extends GovernmentBuilding(out id: Entity(org.schema.Restaurant:Courthouse) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Courthouse_name"]) - #_[canonical="courthouse"] - #_[confirmation="courthouse"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query OfferForLease extends Offer(out id: Entity(org.schema.Restaurant:OfferForLease) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:OfferForLease_name"]) - #_[canonical="offer for lease"] - #_[confirmation="offer for lease"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query EmployerReview extends Review(out id: Entity(org.schema.Restaurant:EmployerReview) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:EmployerReview_name"]) - #_[canonical="employer review"] - #_[confirmation="employer review"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query HardwareStore extends Store(out id: Entity(org.schema.Restaurant:HardwareStore) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:HardwareStore_name"]) - #_[canonical="hardware store"] - #_[confirmation="hardware store"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Project extends Organization(out id: Entity(org.schema.Restaurant:Project) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Project_name"]) - #_[canonical="project"] - #_[confirmation="project"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query VisualArtsEvent extends Event(out id: Entity(org.schema.Restaurant:VisualArtsEvent) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:VisualArtsEvent_name"]) - #_[canonical="visual arts event"] - #_[confirmation="visual arts event"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Periodical extends CreativeWorkSeries(out id: Entity(org.schema.Restaurant:Periodical) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Periodical_name"]) - #_[canonical="periodical"] - #_[confirmation="periodical"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ComicSeries extends Periodical(out id: Entity(org.schema.Restaurant:ComicSeries) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ComicSeries_name"]) - #_[canonical="comic series"] - #_[confirmation="comic series"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query DataFeedItem extends Intangible(out id: Entity(org.schema.Restaurant:DataFeedItem) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:DataFeedItem_name"], - out dateDeleted: Date #_[canonical={default="property",base=["date deleted"]}] #[org_schema_type="Date"], - out item: Array(Entity(org.schema.Restaurant:Thing)) #_[canonical={default="property",base=["items"]}] #[org_schema_type="Thing"], - out dateModified: Date #_[canonical={default="property",base=["date modified"]}] #[org_schema_type="DateTime"]) - #_[canonical="data feed item"] - #_[confirmation="data feed item"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query CurrencyConversionService extends FinancialProduct(out id: Entity(org.schema.Restaurant:CurrencyConversionService) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:CurrencyConversionService_name"]) - #_[canonical="currency conversion service"] - #_[confirmation="currency conversion service"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query RoofingContractor extends HomeAndConstructionBusiness(out id: Entity(org.schema.Restaurant:RoofingContractor) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:RoofingContractor_name"]) - #_[canonical="roofing contractor"] - #_[confirmation="roofing contractor"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query RVPark extends CivicStructure(out id: Entity(org.schema.Restaurant:RVPark) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:RVPark_name"]) - #_[canonical="rvpark"] - #_[confirmation="rvpark"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ChildrensEvent extends Event(out id: Entity(org.schema.Restaurant:ChildrensEvent) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ChildrensEvent_name"]) - #_[canonical="childrens event"] - #_[confirmation="childrens event"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Enumeration extends Intangible(out id: Entity(org.schema.Restaurant:Enumeration) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Enumeration_name"], - out supersededBy: Entity(org.schema.Restaurant:Class) #_[canonical={default="passive_verb",passive_verb=["superseded by"],base=["superseded by"]}] #[org_schema_type="Class"]) - #_[canonical="enumeration"] - #_[confirmation="enumeration"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query HobbyShop extends Store(out id: Entity(org.schema.Restaurant:HobbyShop) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:HobbyShop_name"]) - #_[canonical="hobby shop"] - #_[confirmation="hobby shop"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query SeaBodyOfWater extends BodyOfWater(out id: Entity(org.schema.Restaurant:SeaBodyOfWater) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:SeaBodyOfWater_name"]) - #_[canonical="sea body of water"] - #_[confirmation="sea body of water"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query UserLikes extends UserInteraction(out id: Entity(org.schema.Restaurant:UserLikes) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:UserLikes_name"]) - #_[canonical="user likes"] - #_[confirmation="user likes"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ConvenienceStore extends Store(out id: Entity(org.schema.Restaurant:ConvenienceStore) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ConvenienceStore_name"]) - #_[canonical="convenience store"] - #_[confirmation="convenience store"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query DepartmentStore extends Store(out id: Entity(org.schema.Restaurant:DepartmentStore) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:DepartmentStore_name"]) - #_[canonical="department store"] - #_[confirmation="department store"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query WholesaleStore extends Store(out id: Entity(org.schema.Restaurant:WholesaleStore) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:WholesaleStore_name"]) - #_[canonical="wholesale store"] - #_[confirmation="wholesale store"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Class extends Intangible(out id: Entity(org.schema.Restaurant:Class) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Class_name"], - out supersededBy: Entity(org.schema.Restaurant:Class) #_[canonical={default="passive_verb",passive_verb=["superseded by"],base=["superseded by"]}] #[org_schema_type="Class"]) - #_[canonical="class"] - #_[confirmation="class"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query SkiResort extends SportsActivityLocation(out id: Entity(org.schema.Restaurant:SkiResort) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:SkiResort_name"]) - #_[canonical="ski resort"] - #_[confirmation="ski resort"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query AutomatedTeller extends FinancialService(out id: Entity(org.schema.Restaurant:AutomatedTeller) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:AutomatedTeller_name"]) - #_[canonical="automated teller"] - #_[confirmation="automated teller"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query NGO extends Organization(out id: Entity(org.schema.Restaurant:NGO) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:NGO_name"]) - #_[canonical="ngo"] - #_[confirmation="ngo"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query SatiricalArticle extends Article(out id: Entity(org.schema.Restaurant:SatiricalArticle) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:SatiricalArticle_name"]) - #_[canonical="satirical article"] - #_[confirmation="satirical article"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query CorrectionComment extends Comment(out id: Entity(org.schema.Restaurant:CorrectionComment) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:CorrectionComment_name"]) - #_[canonical="correction comment"] - #_[confirmation="correction comment"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MotorizedBicycle extends Vehicle(out id: Entity(org.schema.Restaurant:MotorizedBicycle) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MotorizedBicycle_name"]) - #_[canonical="motorized bicycle"] - #_[confirmation="motorized bicycle"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query BarOrPub extends FoodEstablishment(out id: Entity(org.schema.Restaurant:BarOrPub) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:BarOrPub_name"]) - #_[canonical="bar or pub"] - #_[confirmation="bar or pub"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query XPathType extends Text(out id: Entity(org.schema.Restaurant:XPathType) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:XPathType_name"]) - #_[canonical="xpath type"] - #_[confirmation="xpath type"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MensClothingStore extends Store(out id: Entity(org.schema.Restaurant:MensClothingStore) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MensClothingStore_name"]) - #_[canonical="mens clothing store"] - #_[confirmation="mens clothing store"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Language extends Intangible(out id: Entity(org.schema.Restaurant:Language) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Language_name"]) - #_[canonical="language"] - #_[confirmation="language"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query CollectionPage extends WebPage(out id: Entity(org.schema.Restaurant:CollectionPage) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:CollectionPage_name"]) - #_[canonical="collection page"] - #_[confirmation="collection page"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MediaGallery extends CollectionPage(out id: Entity(org.schema.Restaurant:MediaGallery) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MediaGallery_name"]) - #_[canonical="media gallery"] - #_[confirmation="media gallery"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query SaleEvent extends Event(out id: Entity(org.schema.Restaurant:SaleEvent) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:SaleEvent_name"]) - #_[canonical="sale event"] - #_[confirmation="sale event"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query NightClub extends EntertainmentBusiness(out id: Entity(org.schema.Restaurant:NightClub) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:NightClub_name"]) - #_[canonical="night club"] - #_[confirmation="night club"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Brewery extends FoodEstablishment(out id: Entity(org.schema.Restaurant:Brewery) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Brewery_name"]) - #_[canonical="brewery"] - #_[confirmation="brewery"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Answer extends Comment(out id: Entity(org.schema.Restaurant:Answer) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Answer_name"]) - #_[canonical="answer"] - #_[confirmation="answer"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Corporation extends Organization(out id: Entity(org.schema.Restaurant:Corporation) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Corporation_name"], - out tickerSymbol: String #_[canonical={default="property",base=["ticker symbol"]}] #[org_schema_type="Text"] #[string_values="org.schema.Restaurant:Corporation_tickerSymbol"]) - #_[canonical="corporation"] - #_[confirmation="corporation"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query IceCreamShop extends FoodEstablishment(out id: Entity(org.schema.Restaurant:IceCreamShop) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:IceCreamShop_name"]) - #_[canonical="ice cream shop"] - #_[confirmation="ice cream shop"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ShortStory extends CreativeWork(out id: Entity(org.schema.Restaurant:ShortStory) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ShortStory_name"]) - #_[canonical="short story"] - #_[confirmation="short story"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ResearchProject extends Project(out id: Entity(org.schema.Restaurant:ResearchProject) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ResearchProject_name"]) - #_[canonical="research project"] - #_[confirmation="research project"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query TheaterGroup extends PerformingGroup(out id: Entity(org.schema.Restaurant:TheaterGroup) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:TheaterGroup_name"]) - #_[canonical="theater group"] - #_[confirmation="theater group"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query PublicSwimmingPool extends SportsActivityLocation(out id: Entity(org.schema.Restaurant:PublicSwimmingPool) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:PublicSwimmingPool_name"]) - #_[canonical="public swimming pool"] - #_[confirmation="public swimming pool"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query FundingAgency extends Project(out id: Entity(org.schema.Restaurant:FundingAgency) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:FundingAgency_name"]) - #_[canonical="funding agency"] - #_[confirmation="funding agency"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query RadioChannel extends BroadcastChannel(out id: Entity(org.schema.Restaurant:RadioChannel) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:RadioChannel_name"]) - #_[canonical="radio channel"] - #_[confirmation="radio channel"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query AccountingService extends FinancialService(out id: Entity(org.schema.Restaurant:AccountingService) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:AccountingService_name"]) - #_[canonical="accounting service"] - #_[confirmation="accounting service"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Cemetery extends CivicStructure(out id: Entity(org.schema.Restaurant:Cemetery) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Cemetery_name"]) - #_[canonical="cemetery"] - #_[confirmation="cemetery"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query BrainStructure extends AnatomicalStructure(out id: Entity(org.schema.Restaurant:BrainStructure) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:BrainStructure_name"]) - #_[canonical="brain structure"] - #_[confirmation="brain structure"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query BedAndBreakfast extends LodgingBusiness(out id: Entity(org.schema.Restaurant:BedAndBreakfast) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:BedAndBreakfast_name"]) - #_[canonical="bed and breakfast"] - #_[confirmation="bed and breakfast"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query RecyclingCenter extends LocalBusiness(out id: Entity(org.schema.Restaurant:RecyclingCenter) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:RecyclingCenter_name"]) - #_[canonical="recycling center"] - #_[confirmation="recycling center"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query WPAdBlock extends WebPageElement(out id: Entity(org.schema.Restaurant:WPAdBlock) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:WPAdBlock_name"]) - #_[canonical="wpad block"] - #_[confirmation="wpad block"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Festival extends Event(out id: Entity(org.schema.Restaurant:Festival) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Festival_name"]) - #_[canonical="festival"] - #_[confirmation="festival"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query RadioSeason extends CreativeWorkSeason(out id: Entity(org.schema.Restaurant:RadioSeason) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:RadioSeason_name"]) - #_[canonical="radio season"] - #_[confirmation="radio season"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query PsychologicalTreatment extends TherapeuticProcedure(out id: Entity(org.schema.Restaurant:PsychologicalTreatment) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:PsychologicalTreatment_name"]) - #_[canonical="psychological treatment"] - #_[confirmation="psychological treatment"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Menu extends CreativeWork(out id: Entity(org.schema.Restaurant:Menu) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Menu_name"], - out hasMenuSection: Array(Entity(org.schema.Restaurant:MenuSection)) #_[canonical={default="property",base=["menu section"]}] #[org_schema_type="MenuSection"], - out hasMenuItem: Array(Entity(org.schema.Restaurant:MenuItem)) #_[canonical={default="property",base=["menu item"]}] #[org_schema_type="MenuItem"]) - #_[canonical="menu"] - #_[confirmation="menu"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query EmailMessage extends Message(out id: Entity(org.schema.Restaurant:EmailMessage) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:EmailMessage_name"]) - #_[canonical="email message"] - #_[confirmation="email message"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query BusStation extends CivicStructure(out id: Entity(org.schema.Restaurant:BusStation) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:BusStation_name"]) - #_[canonical="bus station"] - #_[confirmation="bus station"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MobilePhoneStore extends Store(out id: Entity(org.schema.Restaurant:MobilePhoneStore) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MobilePhoneStore_name"]) - #_[canonical="mobile phone store"] - #_[confirmation="mobile phone store"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MiddleSchool extends EducationalOrganization(out id: Entity(org.schema.Restaurant:MiddleSchool) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MiddleSchool_name"]) - #_[canonical="middle school"] - #_[confirmation="middle school"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query BowlingAlley extends SportsActivityLocation(out id: Entity(org.schema.Restaurant:BowlingAlley) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:BowlingAlley_name"]) - #_[canonical="bowling alley"] - #_[confirmation="bowling alley"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ImageGallery extends MediaGallery(out id: Entity(org.schema.Restaurant:ImageGallery) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ImageGallery_name"]) - #_[canonical="image gallery"] - #_[confirmation="image gallery"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query SocialEvent extends Event(out id: Entity(org.schema.Restaurant:SocialEvent) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:SocialEvent_name"]) - #_[canonical="social event"] - #_[confirmation="social event"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query LiteraryEvent extends Event(out id: Entity(org.schema.Restaurant:LiteraryEvent) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:LiteraryEvent_name"]) - #_[canonical="literary event"] - #_[confirmation="literary event"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query TheaterEvent extends Event(out id: Entity(org.schema.Restaurant:TheaterEvent) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:TheaterEvent_name"]) - #_[canonical="theater event"] - #_[confirmation="theater event"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query AMRadioChannel extends RadioChannel(out id: Entity(org.schema.Restaurant:AMRadioChannel) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:AMRadioChannel_name"]) - #_[canonical="amradio channel"] - #_[confirmation="amradio channel"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query AutoBodyShop extends AutomotiveBusiness(out id: Entity(org.schema.Restaurant:AutoBodyShop) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:AutoBodyShop_name"]) - #_[canonical="auto body shop"] - #_[confirmation="auto body shop"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query LakeBodyOfWater extends BodyOfWater(out id: Entity(org.schema.Restaurant:LakeBodyOfWater) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:LakeBodyOfWater_name"]) - #_[canonical="lake body of water"] - #_[confirmation="lake body of water"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query TelevisionStation extends LocalBusiness(out id: Entity(org.schema.Restaurant:TelevisionStation) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:TelevisionStation_name"]) - #_[canonical="television station"] - #_[confirmation="television station"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query PaymentService extends FinancialProduct(out id: Entity(org.schema.Restaurant:PaymentService) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:PaymentService_name"]) - #_[canonical="payment service"] - #_[confirmation="payment service"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query RadiationTherapy extends MedicalTherapy(out id: Entity(org.schema.Restaurant:RadiationTherapy) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:RadiationTherapy_name"]) - #_[canonical="radiation therapy"] - #_[confirmation="radiation therapy"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MedicalCause extends MedicalEntity(out id: Entity(org.schema.Restaurant:MedicalCause) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MedicalCause_name"], - out causeOf: Entity(org.schema.Restaurant:MedicalEntity) #_[canonical={default="reverse_property",reverse_property=["cause of", "# cause", "# 's cause"],base=["cause of"]}] #[org_schema_type="MedicalEntity"]) - #_[canonical="medical cause"] - #_[confirmation="medical cause"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Beach extends CivicStructure(out id: Entity(org.schema.Restaurant:Beach) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Beach_name"]) - #_[canonical="beach"] - #_[confirmation="beach"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MusicVideoObject extends MediaObject(out id: Entity(org.schema.Restaurant:MusicVideoObject) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MusicVideoObject_name"]) - #_[canonical="music video object"] - #_[confirmation="music video object"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query LandmarksOrHistoricalBuildings extends Place(out id: Entity(org.schema.Restaurant:LandmarksOrHistoricalBuildings) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:LandmarksOrHistoricalBuildings_name"]) - #_[canonical="landmarks or historical buildings"] - #_[confirmation="landmarks or historical buildings"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query AnalysisNewsArticle extends NewsArticle(out id: Entity(org.schema.Restaurant:AnalysisNewsArticle) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:AnalysisNewsArticle_name"]) - #_[canonical="analysis news article"] - #_[confirmation="analysis news article"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query GeneralContractor extends HomeAndConstructionBusiness(out id: Entity(org.schema.Restaurant:GeneralContractor) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:GeneralContractor_name"]) - #_[canonical="general contractor"] - #_[confirmation="general contractor"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query AdvertiserContentArticle extends Article(out id: Entity(org.schema.Restaurant:AdvertiserContentArticle) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:AdvertiserContentArticle_name"]) - #_[canonical="advertiser content article"] - #_[confirmation="advertiser content article"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query WPHeader extends WebPageElement(out id: Entity(org.schema.Restaurant:WPHeader) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:WPHeader_name"]) - #_[canonical="wpheader"] - #_[confirmation="wpheader"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Notary extends LegalService(out id: Entity(org.schema.Restaurant:Notary) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Notary_name"]) - #_[canonical="notary"] - #_[confirmation="notary"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query FastFoodRestaurant extends FoodEstablishment(out id: Entity(org.schema.Restaurant:FastFoodRestaurant) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:FastFoodRestaurant_name"]) - #_[canonical="fast food restaurant"] - #_[confirmation="fast food restaurant"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query DryCleaningOrLaundry extends LocalBusiness(out id: Entity(org.schema.Restaurant:DryCleaningOrLaundry) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:DryCleaningOrLaundry_name"]) - #_[canonical="dry cleaning or laundry"] - #_[confirmation="dry cleaning or laundry"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Zoo extends CivicStructure(out id: Entity(org.schema.Restaurant:Zoo) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Zoo_name"]) - #_[canonical="zoo"] - #_[confirmation="zoo"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Consortium extends Organization(out id: Entity(org.schema.Restaurant:Consortium) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Consortium_name"]) - #_[canonical="consortium"] - #_[confirmation="consortium"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Park extends CivicStructure(out id: Entity(org.schema.Restaurant:Park) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Park_name"]) - #_[canonical="park"] - #_[confirmation="park"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ExhibitionEvent extends Event(out id: Entity(org.schema.Restaurant:ExhibitionEvent) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ExhibitionEvent_name"]) - #_[canonical="exhibition event"] - #_[confirmation="exhibition event"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ComedyClub extends EntertainmentBusiness(out id: Entity(org.schema.Restaurant:ComedyClub) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ComedyClub_name"]) - #_[canonical="comedy club"] - #_[confirmation="comedy club"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query SurgicalProcedure extends MedicalProcedure(out id: Entity(org.schema.Restaurant:SurgicalProcedure) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:SurgicalProcedure_name"]) - #_[canonical="surgical procedure"] - #_[confirmation="surgical procedure"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query RadioClip extends Clip(out id: Entity(org.schema.Restaurant:RadioClip) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:RadioClip_name"]) - #_[canonical="radio clip"] - #_[confirmation="radio clip"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query EmploymentAgency extends LocalBusiness(out id: Entity(org.schema.Restaurant:EmploymentAgency) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:EmploymentAgency_name"]) - #_[canonical="employment agency"] - #_[confirmation="employment agency"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Canal extends BodyOfWater(out id: Entity(org.schema.Restaurant:Canal) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Canal_name"]) - #_[canonical="canal"] - #_[confirmation="canal"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Play extends CreativeWork(out id: Entity(org.schema.Restaurant:Play) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Play_name"]) - #_[canonical="play"] - #_[confirmation="play"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query FireStation extends CivicStructure, EmergencyService(out id: Entity(org.schema.Restaurant:FireStation) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:FireStation_name"]) - #_[canonical="fire station"] - #_[confirmation="fire station"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Hotel extends LodgingBusiness(out id: Entity(org.schema.Restaurant:Hotel) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Hotel_name"]) - #_[canonical=["hotel", "resort", "lodging", "motel", "place"]] - #_[confirmation="hotel"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query CoverArt extends VisualArtwork(out id: Entity(org.schema.Restaurant:CoverArt) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:CoverArt_name"]) - #_[canonical="cover art"] - #_[confirmation="cover art"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ComicCoverArt extends ComicStory, CoverArt(out id: Entity(org.schema.Restaurant:ComicCoverArt) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ComicCoverArt_name"]) - #_[canonical="comic cover art"] - #_[confirmation="comic cover art"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query AskPublicNewsArticle extends NewsArticle(out id: Entity(org.schema.Restaurant:AskPublicNewsArticle) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:AskPublicNewsArticle_name"]) - #_[canonical="ask public news article"] - #_[confirmation="ask public news article"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ReviewNewsArticle extends NewsArticle, CriticReview(out id: Entity(org.schema.Restaurant:ReviewNewsArticle) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ReviewNewsArticle_name"]) - #_[canonical="review news article"] - #_[confirmation="review news article"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ElectronicsStore extends Store(out id: Entity(org.schema.Restaurant:ElectronicsStore) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ElectronicsStore_name"]) - #_[canonical="electronics store"] - #_[confirmation="electronics store"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Code extends CreativeWork(out id: Entity(org.schema.Restaurant:Code) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Code_name"]) - #_[canonical="code"] - #_[confirmation="code"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query TVClip extends Clip(out id: Entity(org.schema.Restaurant:TVClip) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:TVClip_name"]) - #_[canonical="tvclip"] - #_[confirmation="tvclip"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query NailSalon extends HealthAndBeautyBusiness(out id: Entity(org.schema.Restaurant:NailSalon) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:NailSalon_name"]) - #_[canonical="nail salon"] - #_[confirmation="nail salon"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query BloodTest extends MedicalTest(out id: Entity(org.schema.Restaurant:BloodTest) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:BloodTest_name"]) - #_[canonical="blood test"] - #_[confirmation="blood test"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query TelevisionChannel extends BroadcastChannel(out id: Entity(org.schema.Restaurant:TelevisionChannel) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:TelevisionChannel_name"]) - #_[canonical="television channel"] - #_[confirmation="television channel"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query CssSelectorType extends Text(out id: Entity(org.schema.Restaurant:CssSelectorType) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:CssSelectorType_name"]) - #_[canonical="css selector type"] - #_[confirmation="css selector type"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Electrician extends HomeAndConstructionBusiness(out id: Entity(org.schema.Restaurant:Electrician) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Electrician_name"]) - #_[canonical="electrician"] - #_[confirmation="electrician"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query TravelAgency extends LocalBusiness(out id: Entity(org.schema.Restaurant:TravelAgency) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:TravelAgency_name"]) - #_[canonical="travel agency"] - #_[confirmation="travel agency"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query UserCheckins extends UserInteraction(out id: Entity(org.schema.Restaurant:UserCheckins) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:UserCheckins_name"]) - #_[canonical="user checkins"] - #_[confirmation="user checkins"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query LegislativeBuilding extends GovernmentBuilding(out id: Entity(org.schema.Restaurant:LegislativeBuilding) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:LegislativeBuilding_name"]) - #_[canonical="legislative building"] - #_[confirmation="legislative building"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query BoatReservation extends Reservation(out id: Entity(org.schema.Restaurant:BoatReservation) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:BoatReservation_name"]) - #_[canonical="boat reservation"] - #_[confirmation="boat reservation"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query VideoGallery extends MediaGallery(out id: Entity(org.schema.Restaurant:VideoGallery) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:VideoGallery_name"]) - #_[canonical="video gallery"] - #_[confirmation="video gallery"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Bone extends AnatomicalStructure(out id: Entity(org.schema.Restaurant:Bone) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Bone_name"]) - #_[canonical="bone"] - #_[confirmation="bone"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Quantity extends Intangible(out id: Entity(org.schema.Restaurant:Quantity) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Quantity_name"]) - #_[canonical="quantity"] - #_[confirmation="quantity"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Hostel extends LodgingBusiness(out id: Entity(org.schema.Restaurant:Hostel) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Hostel_name"]) - #_[canonical="hostel"] - #_[confirmation="hostel"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query FundingScheme extends Organization(out id: Entity(org.schema.Restaurant:FundingScheme) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:FundingScheme_name"]) - #_[canonical="funding scheme"] - #_[confirmation="funding scheme"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MovingCompany extends HomeAndConstructionBusiness(out id: Entity(org.schema.Restaurant:MovingCompany) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MovingCompany_name"]) - #_[canonical="moving company"] - #_[confirmation="moving company"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query RadioBroadcastService extends BroadcastService(out id: Entity(org.schema.Restaurant:RadioBroadcastService) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:RadioBroadcastService_name"]) - #_[canonical="radio broadcast service"] - #_[confirmation="radio broadcast service"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query CityHall extends GovernmentBuilding(out id: Entity(org.schema.Restaurant:CityHall) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:CityHall_name"]) - #_[canonical="city hall"] - #_[confirmation="city hall"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query CampingPitch extends Accommodation(out id: Entity(org.schema.Restaurant:CampingPitch) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:CampingPitch_name"]) - #_[canonical="camping pitch"] - #_[confirmation="camping pitch"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ComedyEvent extends Event(out id: Entity(org.schema.Restaurant:ComedyEvent) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ComedyEvent_name"]) - #_[canonical="comedy event"] - #_[confirmation="comedy event"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query AutoDealer extends AutomotiveBusiness(out id: Entity(org.schema.Restaurant:AutoDealer) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:AutoDealer_name"]) - #_[canonical="auto dealer"] - #_[confirmation="auto dealer"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query BusStop extends CivicStructure(out id: Entity(org.schema.Restaurant:BusStop) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:BusStop_name"]) - #_[canonical="bus stop"] - #_[confirmation="bus stop"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query FMRadioChannel extends RadioChannel(out id: Entity(org.schema.Restaurant:FMRadioChannel) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:FMRadioChannel_name"]) - #_[canonical="fmradio channel"] - #_[confirmation="fmradio channel"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Pharmacy extends MedicalOrganization(out id: Entity(org.schema.Restaurant:Pharmacy) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Pharmacy_name"]) - #_[canonical="pharmacy"] - #_[confirmation="pharmacy"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query PerformingArtsTheater extends CivicStructure(out id: Entity(org.schema.Restaurant:PerformingArtsTheater) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:PerformingArtsTheater_name"]) - #_[canonical="performing arts theater"] - #_[confirmation="performing arts theater"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query City extends AdministrativeArea(out id: Entity(org.schema.Restaurant:City) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:City_name"]) - #_[canonical="city"] - #_[confirmation="city"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query BankOrCreditUnion extends FinancialService(out id: Entity(org.schema.Restaurant:BankOrCreditUnion) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:BankOrCreditUnion_name"]) - #_[canonical="bank or credit union"] - #_[confirmation="bank or credit union"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Mosque extends PlaceOfWorship(out id: Entity(org.schema.Restaurant:Mosque) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Mosque_name"]) - #_[canonical="mosque"] - #_[confirmation="mosque"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query AdultEntertainment extends EntertainmentBusiness(out id: Entity(org.schema.Restaurant:AdultEntertainment) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:AdultEntertainment_name"]) - #_[canonical="adult entertainment"] - #_[confirmation="adult entertainment"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query VitalSign extends MedicalSign(out id: Entity(org.schema.Restaurant:VitalSign) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:VitalSign_name"]) - #_[canonical="vital sign"] - #_[confirmation="vital sign"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MusicEvent extends Event(out id: Entity(org.schema.Restaurant:MusicEvent) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MusicEvent_name"]) - #_[canonical="music event"] - #_[confirmation="music event"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query HairSalon extends HealthAndBeautyBusiness(out id: Entity(org.schema.Restaurant:HairSalon) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:HairSalon_name"]) - #_[canonical="hair salon"] - #_[confirmation="hair salon"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query DaySpa extends HealthAndBeautyBusiness(out id: Entity(org.schema.Restaurant:DaySpa) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:DaySpa_name"]) - #_[canonical="day spa"] - #_[confirmation="day spa"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query ElementarySchool extends EducationalOrganization(out id: Entity(org.schema.Restaurant:ElementarySchool) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:ElementarySchool_name"]) - #_[canonical="elementary school"] - #_[confirmation="elementary school"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query RadioEpisode extends Episode(out id: Entity(org.schema.Restaurant:RadioEpisode) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:RadioEpisode_name"]) - #_[canonical="radio episode"] - #_[confirmation="radio episode"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query FAQPage extends WebPage(out id: Entity(org.schema.Restaurant:FAQPage) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:FAQPage_name"]) - #_[canonical="faqpage"] - #_[confirmation="faqpage"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Winery extends FoodEstablishment(out id: Entity(org.schema.Restaurant:Winery) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Winery_name"]) - #_[canonical="winery"] - #_[confirmation="winery"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query DiagnosticProcedure extends MedicalProcedure(out id: Entity(org.schema.Restaurant:DiagnosticProcedure) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:DiagnosticProcedure_name"]) - #_[canonical="diagnostic procedure"] - #_[confirmation="diagnostic procedure"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query RiverBodyOfWater extends BodyOfWater(out id: Entity(org.schema.Restaurant:RiverBodyOfWater) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:RiverBodyOfWater_name"]) - #_[canonical="river body of water"] - #_[confirmation="river body of water"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Newspaper extends Periodical(out id: Entity(org.schema.Restaurant:Newspaper) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Newspaper_name"]) - #_[canonical="newspaper"] - #_[confirmation="newspaper"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MeetingRoom extends Room(out id: Entity(org.schema.Restaurant:MeetingRoom) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MeetingRoom_name"]) - #_[canonical="meeting room"] - #_[confirmation="meeting room"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Drawing extends CreativeWork(out id: Entity(org.schema.Restaurant:Drawing) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Drawing_name"]) - #_[canonical="drawing"] - #_[confirmation="drawing"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query CatholicChurch extends Church(out id: Entity(org.schema.Restaurant:CatholicChurch) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:CatholicChurch_name"]) - #_[canonical="catholic church"] - #_[confirmation="catholic church"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query EventVenue extends CivicStructure(out id: Entity(org.schema.Restaurant:EventVenue) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:EventVenue_name"]) - #_[canonical="event venue"] - #_[confirmation="event venue"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MovieClip extends Clip(out id: Entity(org.schema.Restaurant:MovieClip) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MovieClip_name"]) - #_[canonical="movie clip"] - #_[confirmation="movie clip"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query HVACBusiness extends HomeAndConstructionBusiness(out id: Entity(org.schema.Restaurant:HVACBusiness) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:HVACBusiness_name"]) - #_[canonical="hvacbusiness"] - #_[confirmation="hvacbusiness"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query TaxiStand extends CivicStructure(out id: Entity(org.schema.Restaurant:TaxiStand) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:TaxiStand_name"]) - #_[canonical="taxi stand"] - #_[confirmation="taxi stand"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MedicalRiskCalculator extends MedicalRiskEstimator(out id: Entity(org.schema.Restaurant:MedicalRiskCalculator) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MedicalRiskCalculator_name"]) - #_[canonical="medical risk calculator"] - #_[confirmation="medical risk calculator"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query BrokerageAccount extends InvestmentOrDeposit(out id: Entity(org.schema.Restaurant:BrokerageAccount) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:BrokerageAccount_name"]) - #_[canonical="brokerage account"] - #_[confirmation="brokerage account"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Locksmith extends HomeAndConstructionBusiness(out id: Entity(org.schema.Restaurant:Locksmith) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Locksmith_name"]) - #_[canonical="locksmith"] - #_[confirmation="locksmith"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query BeautySalon extends HealthAndBeautyBusiness(out id: Entity(org.schema.Restaurant:BeautySalon) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:BeautySalon_name"]) - #_[canonical="beauty salon"] - #_[confirmation="beauty salon"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query TrainReservation extends Reservation(out id: Entity(org.schema.Restaurant:TrainReservation) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:TrainReservation_name"]) - #_[canonical="train reservation"] - #_[confirmation="train reservation"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query MusicVenue extends CivicStructure(out id: Entity(org.schema.Restaurant:MusicVenue) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:MusicVenue_name"]) - #_[canonical="music venue"] - #_[confirmation="music venue"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query OceanBodyOfWater extends BodyOfWater(out id: Entity(org.schema.Restaurant:OceanBodyOfWater) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:OceanBodyOfWater_name"]) - #_[canonical="ocean body of water"] - #_[confirmation="ocean body of water"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query SpreadsheetDigitalDocument extends DigitalDocument(out id: Entity(org.schema.Restaurant:SpreadsheetDigitalDocument) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:SpreadsheetDigitalDocument_name"]) - #_[canonical="spreadsheet digital document"] - #_[confirmation="spreadsheet digital document"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query Motorcycle extends Vehicle(out id: Entity(org.schema.Restaurant:Motorcycle) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:Motorcycle_name"]) - #_[canonical="motorcycle"] - #_[confirmation="motorcycle"] - #[confirm=false] - #[minimal_projection=["id"]]; - - list query CollegeOrUniversity extends EducationalOrganization(out id: Entity(org.schema.Restaurant:CollegeOrUniversity) #_[canonical={base=["name"],passive_verb=["called", "named"]}] #[unique=true] #[filterable=true], - out name: String #[org_schema_type="Text"] #[filterable=true] #[string_values="org.schema.Restaurant:CollegeOrUniversity_name"]) - #_[canonical="college or university"] - #_[confirmation="college or university"] - #[confirm=false] - #[minimal_projection=["id"]]; -} diff --git a/test/schemaorg-starter.sh b/test/schemaorg-starter.sh index 70e87c479..d52369831 100755 --- a/test/schemaorg-starter.sh +++ b/test/schemaorg-starter.sh @@ -14,7 +14,7 @@ mkdir -p source-data/restaurants/ wget https://almond-static.stanford.edu/test-data/schemaorg/restaurants/sample.json \ -O source-data/restaurants/sample.json -starter_gen_and_train schemaorg restaurants annotation=bert +starter_gen_and_train schemaorg restaurants annotation=bart # get some fake data to test with cat > restaurants/eval/annotated.tsv < +// Silei Xu + +import assert from 'assert'; +import * as ThingTalk from 'thingtalk'; + +import { CsqaConverter } from '../../tool/autoqa/wikidata/csqa-converter'; + +const manifest = `class @org.wikidata { + list query country(out id : Entity(org.wikidata:country), + out official_language : Array(Entity(org.wikidata:p_official_language)), + out named_after : Array(Entity(org.wikidata:p_named_after)), + out legislative_body : Array(Entity(org.wikidata:p_legislative_body)), + out located_in_or_next_to_body_of_water : Array(Entity(org.wikidata:p_located_in_or_next_to_body_of_water)), + out diplomatic_relation : Array(Entity(org.wikidata:p_diplomatic_relation)), + out shares_border_with : Array(Entity(org.wikidata:p_shares_border_with))); +}`; + +const PROPERTIES = { + P17: 'country', + P27: 'country of citizenship', + P35: 'head of state', + P37: 'official language', + P47: 'shares border with', + P138: 'named after', + P194: 'legislative body', + P206: 'located in or next to body of water', + P291: 'place of publication', + P463: 'member of', + P530: 'diplomatic relation', + P921: 'main subject', +}; +const ITEMS = { + Q16: 'Canada', + Q27: 'Ireland', + Q30: 'United States of America ', + Q38: 'Italy', + Q142: 'France', + Q145: 'United Kingdom', + Q159: 'Russia', + Q183: 'Germany', + Q230: 'Georgia', + Q403: 'Serbia', + Q414: 'Argentina', + Q869: 'Thailand', + Q916: 'Angola' +}; +const VALUES = { + Q16: 'Canada', + Q27: 'Ireland', + Q30: 'United States of America ', + Q38: 'Italy', + Q142: 'France', + Q145: 'United Kingdom', + Q159: 'Russia', + Q183: 'Germany', + Q230: 'Georgia', + Q403: 'Serbia', + Q414: 'Argentina', + Q869: 'Thailand', + Q916: 'Angola', + Q34770: 'language', + Q43482: 'Franks', + Q56004: 'Corvey', + Q111466: 'Pontoglio', + Q191067: 'article', + Q360469: 'Charles III, Duke of Parma', + Q484652: 'international organization', + Q502895: 'common name', + Q838948: 'work of art', + Q1048835: 'political territorial entity', + Q11103562: 'Higashine interchange', + Q12318599: 'Isabelle Brockenhuus-Løwenhielm', + Q15617994: 'designation for an administrative territorial entity', + Q214646: "Dambovita River", + Q1598984: "Jihlava", + Q1860: "English", + Q1321: "Spanish", + Q150: "French" + +}; + +const TEST_CASES = [ + // Some of the following examples are faked, i.e., they might not be in CSQA dataset + // 1. Simple Question (subject-based) + ['1', { + user: { + ques_type_id: 1, + utterance: 'Who is the head of state of Angola ?', + sec_ques_type: 1 }, + system: { + utterance: 'José Eduardo dos Santos', + active_set: [ '(Q916,P35,c(Q502895))' ], + } }, + '[head_of_state] of @org.wikidata.country() filter id == "Q916"^^org.wikidata:country("angola")'], + // 2.1. Secondary question, Subject based question + ['2.1', { + user: { + ques_type_id: 2, + sec_ques_sub_type: 1, + sec_ques_type: 1, + utterance: 'Which assembly governs France ?' }, + system: { + utterance: 'French Parliament', + active_set: [ '(Q142,P194,c(Q1752346))' ], + } }, + '[legislative_body] of @org.wikidata.country() filter id == "Q142"^^org.wikidata:country("france")'], + // 2.4. Secondary question, Subject based question, plural + ['2.4.1', { + user: { + ques_type_id: 2, + sec_ques_sub_type: 4, + sec_ques_type: 1, + utterance: 'Which assembly governs France, Canada, and Ireland?' }, + system: { + utterance: 'French Parliament', + active_set: [ '(Q142,P194,c(Q1752346))', '(Q16,P194,c(Q1752346))', '(Q27,P194,c(Q1752346))' ], + } }, + '[legislative_body] of @org.wikidata.country() filter id == "Q142"^^org.wikidata:country("france") || id == "Q16"^^org.wikidata:country("canada") || id == "Q27"^^org.wikidata:country("ireland")'], + // 2.4. Secondary question, Subject based question, plural + // this is often ambiguous from set-based question in CSQA + ['2.4.2', { + user: { + ques_type_id: 2, + sec_ques_sub_type: 4, + sec_ques_type: 2, + utterance: 'Which country have official language English, Spanish, and French, respectively ?' }, + system: { + utterance: '???', + active_set: [ 'c(Q6256),P37,Q1860)', '(c(Q6256),P37,Q1321)', '(c(Q6256),P37,Q150)' ], + } }, + '@org.wikidata.country() filter contains(official_language, "Q1860"^^org.wikidata:p_official_language("english")) || contains(official_language, "Q1321"^^org.wikidata:p_official_language("spanish")) || contains(official_language, "Q150"^^org.wikidata:p_official_language("french"))'], + // 2.2. Secondary question, Object based question + ['2.2', { + user: { + ques_type_id: 2, + sec_ques_sub_type: 1, + sec_ques_type: 2, + utterance: 'Which country is named after Franks ?' }, + system: { + utterance: 'France', + active_set: [ '(c(Q6256),P138,Q43482)' ], + } }, + '@org.wikidata.country() filter contains(named_after, "Q43482"^^org.wikidata:p_named_after("franks"))'], + // 4.1. Set-based question OR + ['4.1.1', { + user: { + set_op_choice: 1, + ques_type_id: 4, + is_inc: 0, + utterance: 'Which country are situated close to Dâmboviţa River or Jihlava ?' }, + system: { + utterance: 'Romania, Czechia', + active_set: [ 'OR((c(Q6256),P206,Q214646)), (c(Q6256),P206,Q1598984))' ], + } }, + '@org.wikidata.country() filter contains(located_in_or_next_to_body_of_water, "Q214646"^^org.wikidata:p_located_in_or_next_to_body_of_water("dambovita river")) || contains(located_in_or_next_to_body_of_water, "Q1598984"^^org.wikidata:p_located_in_or_next_to_body_of_water("jihlava"))'], + // 4.1. Set-based question OR + ['4.1.2', { + user: { + set_op_choice: 1, + ques_type_id: 4, + is_inc: 0, + utterance: 'Which political territories have a diplomatic relationship or share border with United States of America ?' }, + system: { + utterance: 'Australia, Canada', + active_set: [ 'OR((Q30,P530,c(Q1048835)), (Q30,P47,c(Q1048835)))' ] } }, + '[diplomatic_relation, shares_border_with] of @org.wikidata.country() filter id == "Q30"^^org.wikidata:country("united states of america")'], + // 4.1. Set-based question OR + // TODO: not supported yet, requires union operator in thingtalk, or a subquery + /* + ['4.1.3', { + user: { + set_op_choice: 1, + ques_type_id: 4, + is_inc: 0, + utterance: 'Which political territories have a diplomatic relationship with United States of America or Canada ?' }, + system: { + utterance: 'Australia', + active_set: [ 'OR((Q30,P530,c(Q1048835)), (Q16,P530,c(Q1048835)))' ]}}, + '([diplomatic_relation] of @org.wikidata.country(), filter id == "Q30"^^org.wikidata:country("united states of america") union (([diplomatic_relation] of @org.wikidata.country(), filter id == "Q16"^^org.wikidata:country("canada"))'], + */ + //4.2. Set-based question AND + ['4.2.1', { + user: { + set_op_choice: 2, + ques_type_id: 4, + is_inc: 0, + utterance: 'Which country has official language English and Spanish ?' }, + system: { + utterance: 'United States of America', + active_set: [ 'AND((c(Q6256),P37,Q1860), (c(Q6256),P37,Q1321))' ] } }, + '@org.wikidata.country() filter contains(official_language, "Q1860"^^org.wikidata:p_official_language("english")) && contains(official_language, "Q1321"^^org.wikidata:p_official_language("spanish"))'], + // 4.2. Set-based question AND + // TODO: not supported yet, multiple domains, and requires intersection operator in thingtalk or subquery + /* + ['4.2.2', { + user: { + set_op_choice: 2, + ques_type_id: 4, + is_inc: 0, + utterance: 'Which administrative territories share border with France and are Charles III, Duke of Parma a civilian of ?' }, + system: { + utterance: 'Kingdom of the Netherlands', + active_set: [ 'AND((Q142,P47,c(Q15617994)), (Q360469,P27,c(Q15617994)))' ], + }}, + '([shares_border_with] of @org.wikidata.country() filter id == "Q142"^^org.wikidata:country("france")) intersect ([country_of_citizenship] of @org.wikidata.person() filter id === "Q360469"^^org.wikidata:person("charles iii, duke of parma"))'], + */ + // 4.3. Set-based question Difference + ['4.3.1', { + user: { + set_op_choice: 3, + ques_type_id: 4, + is_inc: 0, + utterance: 'Which country has official language English but not Spanish ?' }, + system: { + utterance: 'France, Zambia', + active_set: [ 'AND((c(Q6256),P37,Q1860), NOT((c(Q6256),P37,Q1321)))' ], + } }, + '@org.wikidata.country() filter contains(official_language, "Q1860"^^org.wikidata:p_official_language("english")) && !contains(official_language, "Q1321"^^org.wikidata:p_official_language("spanish"))'], + // 4.3. Set-based question Difference + // TODO: not supported yet, requires diff operator in thingtalk or a subquery + /* + ['4.3.2', { + user: { + set_op_choice: 3, + ques_type_id: 4, + is_inc: 0, + utterance: 'Which administrative territories have diplomatic relationships with Ireland but not Canada ?' }, + system: { + utterance: 'France, Zambia', + active_set: [ 'AND((Q27,P530,c(Q15617994)), NOT((Q16,P530,c(Q15617994))))' ], + }}, + '([diplomatic_relation] of @org.wikidata.country() filter id == "Q27"^^org.wikidata:country("ireland")) - ([diplomatic_relation] of @org.wikidata.country() filter id == "Q16"^^org.wikidata:country("canada"))'], + */ + // 5.1 Verification, 1 subject, 2 object + ['5.1', { + user: { + bool_ques_type: 1, + ques_type_id: 5, + utterance: 'Does Canada have official language English ?' }, + system: { + utterance: 'Yes', + active_set: [ '(Q16, P37, Q1860)' ], + } }, + '[contains(official_language, "Q1860"^^org.wikidata:p_official_language("english"))] of @org.wikidata.country() filter id == "Q16"^^org.wikidata:country("canada")'], + // 5.4 Verification, 1 subject, 1 object + ['5.4', { + user: { + bool_ques_type: 4, + ques_type_id: 5, + utterance: 'Does Canada have official language English and Spanish?' }, + system: { + utterance: 'Yes and No respectively', + active_set: [ '(Q16, P37, Q1860)', '(Q16, P37, Q1321)' ], + } }, + '[contains(official_language, "Q1860"^^org.wikidata:p_official_language("english")) && contains(official_language, "Q1321"^^org.wikidata:p_official_language("spanish"))] of @org.wikidata.country() filter id == "Q16"^^org.wikidata:country("canada")'], + // 7.1. Comparative and Quantitative questions (involving single entity), Quantitative (count) single entity + ['7.1.1', { + user: { + ques_type_id: 7, + count_ques_sub_type: 1, + count_ques_type: 1, + utterance: 'How many administrative territories have diplomatic relationships with Argentina ?', + is_incomplete: 0 }, + system: { + utterance: '4', + active_set: [ '(Q414,P530,c(Q15617994))' ], + } }, + '[count(diplomatic_relation)] of @org.wikidata.country() filter id == "Q414"^^org.wikidata:country("argentina")'], + // 7.1. Comparative and Quantitative questions (involving single entity), Quantitative (count) single entity + ['7.1.2', { + user: { + ques_type_id: 7, + count_ques_sub_type: 1, + count_ques_type: 1, + utterance: 'How many countries has official language English ?', + is_incomplete: 0 }, + system: { + utterance: '??', + active_set: [ '(c(Q6256), P37, Q1860)' ], + } }, + 'count(@org.wikidata.country() filter contains(official_language, "Q1860"^^org.wikidata:p_official_language("english")))'], + // 7.2. Comparative and Quantitative questions (involving single entity), Quantitative (max/min) single entity + ['7.2', { + user: { + ques_type_id: 7, + count_ques_sub_type: 2, + count_ques_type: 2, + utterance: 'Which country has the max number of official languages ?', + is_incomplete: 0 }, + system: { + utterance: '???', + active_set: [ '(c(Q6256),P37,c(Q34770))' ], + } }, + 'sort(count desc of [count(official_language)] of @org.wikidata.country())[1]'], + // 7.3. Comparative and Quantitative questions (involving single entity), Quantitative (<=, >=, ==, ~~) single entity + ['7.3', { + user: { + ques_type_id: 7, + count_ques_sub_type: 3, + count_ques_type: 1, + utterance: 'Which country has the atmost 2 official languages ?', + is_incomplete: 0 }, + system: { + utterance: '???', + active_set: [ '(c(Q6256),P37,c(Q34770))' ], + } }, + '@org.wikidata.country() filter count(official_language) <= 2'], + // 7.4. Comparative and Quantitative questions (involving single entity), Comparative (more/less/~~) single entity + ['7.4', { + user: { + ques_type_id: 7, + count_ques_sub_type: 4, + count_ques_type: 1, + entities_in_utterance: ['Q16'], + utterance: 'Which country has the more official languages than Canada?', + is_incomplete: 0 }, + system: { + utterance: '???', + active_set: [ '(c(Q6256),P37,c(Q34770))' ], + } }, + '@org.wikidata.country() filter count(official_language) >= any([count(official_language)] of @org.wikidata.country() filter id == "Q16"^^org.wikidata:country("canada"))'], + // 7.5. Comparative and Quantitative questions (involving single entity), Quantitative (count over <=, >=, ==, ~~) single entity + ['7.5', { + user: { + ques_type_id: 7, + count_ques_sub_type: 5, + count_ques_type: 1, + utterance: 'How many country has the atmost 2 official languages ?', + is_incomplete: 0 }, + system: { + utterance: '???', + active_set: [ '(c(Q6256),P37,c(Q34770))' ], + } }, + 'count(@org.wikidata.country() filter count(official_language) <= 2)'], + // 7.6. Comparative and Quantitative questions (involving single entity), Comparative (count over more/less/~~) single entity + ['7.6', { + user: { + ques_type_id: 7, + count_ques_sub_type: 6, + count_ques_type: 1, + entities_in_utterance: ['Q16'], + utterance: 'How many country has the more official languages than Canada?', + is_incomplete: 0 }, + system: { + utterance: '???', + active_set: [ '(c(Q6256),P37,c(Q34770))' ], + } }, + 'count(@org.wikidata.country() filter count(official_language) >= any([count(official_language)] of @org.wikidata.country() filter id == "Q16"^^org.wikidata:country("canada")))'], + // 8.1. Comparative and Quantitative questions (involving multiple(2) entities), Quantitative with Logical Operators + ['8.1.1', { + user: { + set_op: 1, + ques_type_id: 8, + count_ques_sub_type: 1, + count_ques_type: 1, + utterance: 'How many countries have official language English and Spanish ?', + is_incomplete: 0 }, + system: { + utterance: '2', + active_set: [ '(c(Q6256), P37, Q1860)', '(c(Q6256), P37, Q1321)' ] + } }, + 'count(@org.wikidata.country() filter contains(official_language, "Q1860"^^org.wikidata:p_official_language("english")) && contains(official_language, "Q1321"^^org.wikidata:p_official_language("spanish")))'], + // 8.1. Comparative and Quantitative questions (involving multiple(2) entity), Quantitative with Logical Operators + // TODO: not supported, similar to the corresponding set-based questions + /* + ['8.1.2', { + user: { + set_op: 1, + ques_type_id: 8, + count_ques_sub_type: 1, + utterance: 'How many administrative territories have diplomatic relationships with Argentina and Canada?', + is_incomplete: 0 }, + system: { + utterance: '4', + active_set: [ '(Q414,P530,c(Q15617994))', '(Q16,P530,c(Q15617994))' ], + }}, + '[count(diplomatic_relation)] of (@org.wikidata.country() filter id == "Q414"^^org.wikidata:country("argentina")) union (@org.wikidata.country() filter id == "Q16"^^org.wikidata:country("canada"))'], + */ + // 8.2. Comparative and Quantitative questions (involving multiple(2) entities), Quantitative (count) multiple entity + // TODO: not supported yet, requires type constraint on the projection + /* + ['8.2', { + user: { + set_op: 2, + ques_type_id: 8, + count_ques_sub_type: 2, + count_ques_type: 1, + utterance: 'How many administrative territories or political territories have a diplomatic relationship with France ?', + is_incomplete: 0 }, + system: { + utterance: '18', + active_set: [ '(Q142,P530,c(Q15617994))', '(Q142,P530,c(Q1048835))' ], + }}, + '(count[diplomatic_relation^^org.wikidata.administrative_territories|org.wikidata.political_territories] of @org.wikidata.country() filter id == "Q142"^^org.wikidata:country("france")'], + */ + +]; + +export default async function main() { + const csqaConverter = new CsqaConverter({ + includeEntityValue: true + }); + csqaConverter._domains = { + getDomainByCSQAType: function(csqaType) { + return csqaType === 'Q6256' ? 'country' : null; + } + }; + csqaConverter._items = new Map([['country', ITEMS]]); + csqaConverter._values = new Map(Object.entries(VALUES)); + csqaConverter._wikidataProperties = new Map(Object.entries(PROPERTIES)); + csqaConverter._classDef = ThingTalk.Syntax.parse(manifest, ThingTalk.Syntax.SyntaxType.Normal, { locale : 'en-US', timezone: undefined }).classes[0]; + + for (let i = 0; i < TEST_CASES.length; i++) { + const [id, dialog, expected] = TEST_CASES[i]; + console.log(`TEST CASE #${id}`); + const generated = (await csqaConverter.csqaToThingTalk(dialog)).prettyprint(); + assert.strictEqual(generated, expected); + } +} +if (!module.parent) main(); \ No newline at end of file diff --git a/test/wikidata-starter.sh b/test/wikidata-starter.sh index 1528a800a..6f46a1dc1 100755 --- a/test/wikidata-starter.sh +++ b/test/wikidata-starter.sh @@ -8,17 +8,30 @@ trap on_error ERR INT TERM # copy over the starting code cp -r $srcdir/starter/wikidata/* . +cat > domains.tsv < bootleg-types.json < city/eval/annotated.tsv < @org.wikidata.city => notify +cat > bootleg-type-canonicals.json < -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -/// - -declare module 'JSONStream' { - export interface Options { - recurse : boolean; - } - - export function parse(pattern : any) : NodeJS.ReadWriteStream; - export function parse(patterns : any[]) : NodeJS.ReadWriteStream; - - - type NewlineOnlyIndicator = false - - /** - * Create a writable stream. - * you may pass in custom open, close, and seperator strings. But, by default, - * JSONStream.stringify() will create an array, - * (with default options open='[\n', sep='\n,\n', close='\n]\n') - * - * If you call JSONStream.stringify(false) the elements will only be seperated by a newline. - */ - export function stringify(open ?: string, sep ?: string, close ?: string, indent ?: number) : NodeJS.ReadWriteStream; - export function stringify(newlineOnly : NewlineOnlyIndicator) : NodeJS.ReadWriteStream; - - export function stringifyObject() : NodeJS.ReadWriteStream; - export function stringifyObject(open : string, sep : string, close : string) : NodeJS.ReadWriteStream; -} diff --git a/tool/augment.ts b/tool/augment.ts index 6fea3528e..23e68da83 100644 --- a/tool/augment.ts +++ b/tool/augment.ts @@ -132,6 +132,11 @@ export function initArgparse(subparsers : argparse.SubParser) { dest: 'requotable', help: 'Allow the replacement of a parameter in the sentence and in the program to differ (making requoting impossible).', }); + parser.add_argument('--include-entity-value', { + action: 'store_true', + help: 'Keep entity value in thingtalk annotation.', + default: false + }); parser.add_argument('--clean-parameters', { action: 'store_true', help: 'Take extra effort to use parameters that are simple and do not include punctuation marks', diff --git a/tool/autoqa/annotation-diff.ts b/tool/autoqa/annotation-diff.ts index 92a198e82..db6809f92 100644 --- a/tool/autoqa/annotation-diff.ts +++ b/tool/autoqa/annotation-diff.ts @@ -18,17 +18,9 @@ // // Author: Silei Xu -import assert from 'assert'; import * as argparse from 'argparse'; -import * as fs from 'fs'; -import * as util from 'util'; import * as ThingTalk from 'thingtalk'; - -async function loadClassDef(thingpedia : string, options : ThingTalk.Syntax.ParseOptions) : Promise { - const library = ThingTalk.Syntax.parse(await util.promisify(fs.readFile)(thingpedia, { encoding: 'utf8' }), ThingTalk.Syntax.SyntaxType.Normal, options); - assert(library instanceof ThingTalk.Ast.Library && library.classes.length === 1); - return library.classes[0]; -} +import { loadClassDef } from './lib/utils'; function includesAnnotation(canonicalList : string[], canonical : string) { if (canonical.endsWith(' #')) diff --git a/tool/autoqa/auto-annotate.ts b/tool/autoqa/auto-annotate.ts index 6fb7f6f38..248a1d58b 100644 --- a/tool/autoqa/auto-annotate.ts +++ b/tool/autoqa/auto-annotate.ts @@ -20,22 +20,13 @@ import * as argparse from 'argparse'; import * as fs from 'fs'; -import assert from 'assert'; -import util from 'util'; import * as ThingTalk from 'thingtalk'; +import * as Tp from 'thingpedia'; import * as StreamUtils from '../../lib/utils/stream-utils'; - import { parseConstantFile } from '../lib/constant-file'; - import AnnotationGenerator from './lib/annotation-generator'; -async function loadClassDefs(thingpedia : string, options : ThingTalk.Syntax.ParseOptions) : Promise { - const library = ThingTalk.Syntax.parse(await util.promisify(fs.readFile)(thingpedia, { encoding: 'utf8' }), ThingTalk.Syntax.SyntaxType.Normal, options); - assert(library instanceof ThingTalk.Ast.Library); - return library.classes; -} - export function initArgparse(subparsers : argparse.SubParser) { const parser = subparsers.add_parser('auto-annotate', { add_help: true, @@ -72,6 +63,10 @@ export function initArgparse(subparsers : argparse.SubParser) { default: null, help: `List of functions to include, split by comma (no space). Include all functions if not specified`, }); + parser.add_argument('--entities', { + required: false, + help: 'Path to JSON file containing entity type definitions.' + }); parser.add_argument('--remove-existing-canonicals', { action: 'store_true', help: 'Remove all existing canonical annotations in the schema', @@ -79,7 +74,7 @@ export function initArgparse(subparsers : argparse.SubParser) { }); parser.add_argument('--algorithms', { nargs: '*', - help: 'Different algorithms to generate canonicals including bert-property-synonyms, bart-paraphrase, bert-adjectives, bert-domain-synonyms' + help: 'Currently only `bart-paraphrase` is supported' }); parser.add_argument('--batch-size', { required: false, @@ -87,16 +82,6 @@ export function initArgparse(subparsers : argparse.SubParser) { default: 64, help: `The batch size for auto paraphrase` }); - parser.add_argument('--pruning', { - required: false, - type: Number, - default: 0.5, - help: `The minimum fraction required for a candidate to be added` - }); - parser.add_argument('--parameter-datasets', { - required: true, - help: `TSV file containing the paths to datasets for strings and entity types.` - }); parser.add_argument('--language-model', { required: false, default: 'bert-large-uncased', @@ -107,17 +92,23 @@ export function initArgparse(subparsers : argparse.SubParser) { required: false, help: `A path to the directory where the bart paraphraser model is saved` }); - parser.add_argument('--gpt2-ordering', { + parser.add_argument('--filtering', { required: false, default: false, action: 'store_true', - help: `Set to True to use gpt2 to decide where to put value` + help: `Enable filtering for phrase extraction.` }); - parser.add_argument('--filtering', { + parser.add_argument('--type-based-projection', { required: false, default: false, action: 'store_true', - help: `Enable filtering for phrase extraction.` + help: `Make use of the entity type names when generating projection annotations` + }); + parser.add_argument('--max-per-pos', { + required: false, + type: Number, + default: 10, + help: `The maximum number of canonicals per part of speech` }); parser.add_argument('--debug', { required: false, @@ -128,7 +119,10 @@ export function initArgparse(subparsers : argparse.SubParser) { } export async function execute(args : any) { - const classDefs = await loadClassDefs(args.thingpedia, { locale: args.locale, timezone: args.timezone }); + const tpClient = new Tp.FileClient({ thingpedia: args.thingpedia, entities: args.entities, locale: args.locale }); + const schemas = new ThingTalk.SchemaRetriever(tpClient, null, true); + const classDefs = await Promise.all((await tpClient.getDeviceList()).map(async (device) => schemas.getFullMeta(device.primary_kind))); + const entities = await tpClient.getAllEntityTypes(); if (!args.algorithms) { for (const classDef of classDefs) @@ -140,7 +134,7 @@ export async function execute(args : any) { const functions = args.functions ? args.functions.split(',') : null; for (const classDef of classDefs) { - const generator = new AnnotationGenerator(classDef, constants, functions, args.parameter_datasets, options); + const generator = new AnnotationGenerator(classDef, entities, constants, functions, options); const annotatedClassDef = await generator.generate(); args.output.write(annotatedClassDef.prettyprint()); } diff --git a/tool/autoqa/lib/annotation-generator.ts b/tool/autoqa/lib/annotation-generator.ts index fba965b45..af5434735 100644 --- a/tool/autoqa/lib/annotation-generator.ts +++ b/tool/autoqa/lib/annotation-generator.ts @@ -19,17 +19,18 @@ // Author: Silei Xu import * as ThingTalk from 'thingtalk'; +import * as Tp from 'thingpedia'; import CanonicalGenerator from './canonical-generator'; export default class AutoAnnotationGenerator { private canonicalGenerator; constructor(classDef : ThingTalk.Ast.ClassDef, + entities : Tp.BaseClient.EntityTypeRecord[], constants : Record, queries : string[], - parameterDatasets : string, options : any) { - this.canonicalGenerator = new CanonicalGenerator(classDef, constants, queries, parameterDatasets, options); + this.canonicalGenerator = new CanonicalGenerator(classDef, entities, constants, queries, options); } generate() { diff --git a/tool/autoqa/lib/canonical-example-constructor.ts b/tool/autoqa/lib/canonical-example-constructor.ts index 3e0452e83..57e0a1f36 100644 --- a/tool/autoqa/lib/canonical-example-constructor.ts +++ b/tool/autoqa/lib/canonical-example-constructor.ts @@ -61,7 +61,7 @@ function generateExamplesByPOS(query : Ast.FunctionDef, case 'base': return [ example(`What is the ${argumentCanonical} of the ${queryCanonical}?`), - example(`What is the ${queryCanonical} 's' ${argumentCanonical}?`), + example(`What is the ${queryCanonical} 's ${argumentCanonical}?`), example(`What ${argumentCanonical} does the ${queryCanonical} have?`) ]; case 'property': diff --git a/tool/autoqa/lib/canonical-example-paraphraser.ts b/tool/autoqa/lib/canonical-example-paraphraser.ts index 20c2c6ef5..21781ca39 100644 --- a/tool/autoqa/lib/canonical-example-paraphraser.ts +++ b/tool/autoqa/lib/canonical-example-paraphraser.ts @@ -45,6 +45,14 @@ export default class Paraphraser { if (process.env.CI || process.env.TRAVIS) return; + // output paraphrase input + if (this.options.debug) { + const output = util.promisify(fs.writeFile); + await output('./paraphraser-in.json', JSON.stringify(examples.map((e) => { + return { utterance: e.utterance, arg: e.argument, value: e.value ?? null }; + }), null, 2)); + } + // call genienlp to run paraphrase const args = [ `run-paraphrase`, @@ -77,7 +85,12 @@ export default class Paraphraser { // output paraphrase result if (this.options.debug) { const output = util.promisify(fs.writeFile); - await output(`./paraphraser-result.json`, JSON.stringify(examples, null, 2)); + try { + await output(`./paraphraser-out.json`, JSON.stringify(JSON.parse(stdout), null, 2)); + } catch(e) { + await output(`./paraphraser-out.txt`, stdout); + throw new Error(e); + } } } } \ No newline at end of file diff --git a/tool/autoqa/lib/canonical-generator.ts b/tool/autoqa/lib/canonical-generator.ts index f791a44ad..53148eb32 100644 --- a/tool/autoqa/lib/canonical-generator.ts +++ b/tool/autoqa/lib/canonical-generator.ts @@ -18,9 +18,11 @@ // // Author: Silei Xu +import assert from 'assert'; import * as fs from 'fs'; import path from 'path'; import { Ast, Type } from 'thingtalk'; +import * as Tp from 'thingpedia'; import * as utils from '../../../lib/utils/misc-utils'; import { makeLookupKeys } from '../../../lib/dataset-tools/mturk/sample-utils'; @@ -37,6 +39,8 @@ interface AutoCanonicalGeneratorOptions { dataset : 'schemaorg'|'sgd'|'multiwoz'|'wikidata'|'custom', paraphraser_model : string, remove_existing_canonicals : boolean, + type_based_projection : boolean, + max_per_pos ?: number, batch_size : number, filtering : boolean, debug : boolean @@ -73,25 +77,43 @@ function countArgTypes(schema : Ast.FunctionDef) : Record { export default class AutoCanonicalGenerator { private class : Ast.ClassDef; + private entities : Tp.BaseClient.EntityTypeRecord[]; private constants : Record; private functions : string[]; private paraphraserModel : string; private annotatedProperties : string[]; private langPack : EnglishLanguagePack; private options : AutoCanonicalGeneratorOptions; + private entityNames : Record; + private childEntities : Record; constructor(classDef : Ast.ClassDef, + entities : Tp.BaseClient.EntityTypeRecord[], constants : Record, functions : string[], - parameterDatasets : string, options : AutoCanonicalGeneratorOptions) { this.class = classDef; + this.entities = entities; this.constants = constants; this.functions = functions ? functions : Object.keys(classDef.queries).concat(Object.keys(classDef.actions)); this.paraphraserModel = options.paraphraser_model; this.annotatedProperties = []; this.langPack = new EnglishLanguagePack('en-US'); this.options = options; + + this.entityNames = {}; + this.childEntities = {}; + for (const entity of this.entities) { + this.entityNames[entity.type] = entity.name; + if (entity.subtype_of) { + for (const parent of entity.subtype_of) { + if (parent in this.childEntities) + this.childEntities[parent].push(entity.name); + else + this.childEntities[parent] = [entity.name]; + } + } + } } async generate() { @@ -126,6 +148,7 @@ export default class AutoCanonicalGenerator { await extractor.run(examples); this._addProjectionCanonicals(); + this._trimAnnotations(); return this.class; } @@ -215,9 +238,19 @@ export default class AutoCanonicalGenerator { continue; if (typeof canonicals === 'string' || Array.isArray(canonicals)) continue; + + const elemType = arg.type instanceof Type.Array ? arg.type.elem: arg.type; + assert(elemType instanceof Type); + if (elemType instanceof Type.Entity && this.options.type_based_projection && !('base_projection' in canonicals)) { + const entityType = elemType.type; + if (this.entityNames[entityType]) + canonicals['base_projection'] = [this.entityNames[entityType]]; + if (this.childEntities[entityType]) + canonicals['base_projection'].push(...this.childEntities[entityType]); + } for (const cat in canonicals) { - if (['default', 'adjective', 'implicit_identity', 'property', 'projection_pronoun'].includes(cat)) + if (['default', 'adjective', 'implicit_identity', 'projection_pronoun'].includes(cat)) continue; if (cat.endsWith('_projection')) continue; @@ -280,4 +313,23 @@ export default class AutoCanonicalGenerator { return v.display; }); } + + private _trimAnnotations() { + if (!this.options.max_per_pos) + return; + for (const fname of this.functions) { + const func = this.class.queries[fname] || this.class.actions[fname]; + for (const arg of func.iterateArguments()) { + if (this.annotatedProperties.includes(arg.name) || arg.name === 'id') + continue; + + const canonicalAnnotation = arg.metadata.canonical; + for (const pos in canonicalAnnotation) { + if (pos === 'default') + continue; + canonicalAnnotation[pos] = canonicalAnnotation[pos].slice(0, this.options.max_per_pos); + } + } + } + } } diff --git a/tool/autoqa/lib/utils.ts b/tool/autoqa/lib/utils.ts index 18d0b0b68..061225ff2 100644 --- a/tool/autoqa/lib/utils.ts +++ b/tool/autoqa/lib/utils.ts @@ -18,6 +18,29 @@ // // Author: Silei Xu +import assert from 'assert'; +import util from 'util'; +import * as fs from 'fs'; +import * as ThingTalk from 'thingtalk'; + +async function loadClassDef( + thingpedia : string, + options : ThingTalk.Syntax.ParseOptions = { locale : 'en-US', timezone: undefined } +) : Promise { + const classes = await loadClassDefs(thingpedia, options); + assert(classes.length === 1); + return classes[0]; +} + +async function loadClassDefs( + thingpedia : string, + options : ThingTalk.Syntax.ParseOptions = { locale : 'en-US', timezone: undefined } +) : Promise { + const library = ThingTalk.Syntax.parse(await util.promisify(fs.readFile)(thingpedia, { encoding: 'utf8' }), ThingTalk.Syntax.SyntaxType.Normal, options); + assert(library instanceof ThingTalk.Ast.Library); + return library.classes; +} + function cleanEnumValue(v : string) : string { // replace dash with space v = v.replace(/-/g, ' '); @@ -60,6 +83,8 @@ const DEFAULT_ENTITIES = [ ]; export { + loadClassDef, + loadClassDefs, cleanEnumValue, camelcase, snakecase, diff --git a/tool/autoqa/schemaorg/trim-class.js b/tool/autoqa/schemaorg/trim-class.js index c83d7cbd6..a88424ee2 100644 --- a/tool/autoqa/schemaorg/trim-class.js +++ b/tool/autoqa/schemaorg/trim-class.js @@ -19,12 +19,12 @@ // Author: Giovanni Campagna -import assert from 'assert'; import * as ThingTalk from 'thingtalk'; const Ast = ThingTalk.Ast; const Type = ThingTalk.Type; import * as fs from 'fs'; import util from 'util'; +import { loadClassDef } from '../lib/utils'; import * as StreamUtils from '../../../lib/utils/stream-utils'; import { @@ -36,12 +36,6 @@ import { import { titleCase, DEFAULT_ENTITIES } from '../lib/utils'; -async function loadClassDef(thingpedia) { - const library = ThingTalk.Syntax.parse(await util.promisify(fs.readFile)(thingpedia, { encoding: 'utf8' })); - assert(library instanceof ThingTalk.Ast.Library && library.classes.length === 1); - return library.classes[0]; -} - class SchemaTrimmer { constructor(classDef, data, entities, domain) { this._classDef = classDef; diff --git a/tool/autoqa/wikidata/csqa-converter.ts b/tool/autoqa/wikidata/csqa-converter.ts new file mode 100644 index 000000000..ac4ee735d --- /dev/null +++ b/tool/autoqa/wikidata/csqa-converter.ts @@ -0,0 +1,816 @@ +// -*- mode: typescript; indent-tabs-mode: nil; js-basic-offset: 4 -*- +// +// This file is part of Genie +// +// Copyright 2019-2021 The Board of Trustees of the Leland Stanford Junior University +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Author: Naoki Yamamura +// Silei Xu + +import * as argparse from 'argparse'; +import * as fs from 'fs'; +import assert from 'assert'; +import * as util from 'util'; +import * as path from 'path'; +import { Ast, Type } from 'thingtalk'; +import * as I18N from '../../../lib/i18n'; +import { serializePrediction } from '../../../lib/utils/thingtalk'; +import { getElementType, getItemLabel, argnameFromLabel, readJson, Domains } from './utils'; +import { makeDummyEntities } from "../../../lib/utils/entity-utils"; +import { loadClassDef } from '../lib/utils'; + +export interface CSQADialogueTurn { + speaker : 'USER'|'SYSTEM', + utterance : string, + ques_type_id : 1|2|3|4|5|6|7|8, + sec_ques_type ?: 1|2, + sec_ques_sub_type ?: 1|2|3|4, + is_inc ?: 0|1, + is_incomplete ?: 0|1, + bool_ques_type ?: 1|2|3|4|5|6, + inc_ques_type ?: 1|2|3, + set_op_choice ?: 1|2|3, + set_op ?: 1|2, + count_ques_sub_type ?: 1|2|3|4|5|6|7|8|9, + type_list ?: string[], + entities_in_utterance ?: string[], + active_set ?: string[] +} + +interface CSQADialogueTurnPair { + file : string, + system : CSQADialogueTurn, + user : CSQADialogueTurn, +} + +interface ParameterRecord { + value : string, + preprocessed : string +} + +interface CSQAConverterOptions { + locale : string; + timezone ?: string; + domains : Domains, + includeEntityValue : boolean, + filter : string, + softMatchId : boolean, + inputDir : string, + output : string, + thingpedia : string, + wikidataProperties : string, + items : string, + values : string, + types : string, + filteredExamples : string +} + +class CsqaConverter { + private _locale : string; + private _timezone ?: string; + private _domains : Domains; + private _includeEntityValue : boolean; + private _softMatchId : boolean; + private _filters : Record; + private _paths : Record; + private _classDef : Ast.ClassDef|null; + private _items : Map>; + private _values : Map; + private _types : Map; + private _wikidataProperties : Map; + private _examples : CSQADialogueTurnPair[]; + private _tokenizer : I18N.BaseTokenizer; + private _unsupportedCounter : Record; + + constructor(options : CSQAConverterOptions) { + this._locale = options.locale; + this._timezone = options.timezone; + this._domains = options.domains; + this._includeEntityValue = options.includeEntityValue; + this._softMatchId = options.softMatchId; + this._filters = {}; + for (const filter of options.filter || []) { + assert(filter.indexOf('=') > 0 && filter.indexOf('=') === filter.lastIndexOf('=')); + const [key, values] = filter.split('='); + this._filters[key] = values.split(',').map((v) => parseInt(v)); + } + + this._paths = { + inputDir: options.inputDir, + output: options.output, + thingpedia: options.thingpedia, + wikidataProperties: options.wikidataProperties, + items: options.items, + values: options.values, + types: options.types, + filteredExamples: options.filteredExamples + }; + + this._classDef = null; + this._items = new Map(); + this._values = new Map(); + this._types = new Map(); + + this._wikidataProperties = new Map(); + + this._examples = []; + this._tokenizer = I18N.get('en-US').getTokenizer(); + + this._unsupportedCounter = { + indirect: 0, + setOp: 0, + typeConstraint: 0, + wrongAnnotation: 0 + }; + } + + private async _getArgValue(qid : string) : Promise { + let value; + if (this._values.has(qid)) { + value = this._values.get(qid); + } else { + value = await getItemLabel(qid); + if (value) + this._values.set(qid, value); + } + if (value) + return { value: qid, preprocessed: this._tokenizer.tokenize(value).tokens.join(' ') }; + throw new Error(`Label not found for ${qid}`); + } + + private _invocationTable(domain : string) : Ast.Expression { + const selector = new Ast.DeviceSelector(null, 'org.wikidata', null, null); + return new Ast.InvocationExpression(null, new Ast.Invocation(null, selector, domain, [], null), null); + } + + private _generateFilter(domain : string, param : string, value : ParameterRecord) : Ast.BooleanExpression { + let ttValue, op; + if (param === 'id') { + if (this._softMatchId) { + ttValue = new Ast.Value.String(value.preprocessed); + op = '=~'; + } else { + ttValue = new Ast.Value.Entity(value.value, `org.wikidata:${domain}`, value.preprocessed); + op = '=='; + } + } else { + const propertyType = this._classDef!.getFunction('query', domain)!.getArgType(param)!; + const entityType = this._types.get(value.value); + const valueType = entityType ? new Type.Entity(`org.wikidata:${entityType}`) : getElementType(propertyType); + if (valueType instanceof Type.Entity) { + ttValue = new Ast.Value.Entity(value.value, valueType.type, value.preprocessed); + op = propertyType.isArray ? 'contains' : '=='; + } else { // Default to string + ttValue = new Ast.Value.String(value.preprocessed); + op = propertyType.isArray ? 'contains~' : '=~'; + } + } + return new Ast.BooleanExpression.Atom(null, param, op, ttValue); + } + + private _getDomainBySubject(x : string) : string|null { + if (x.startsWith('c')) + return this._domains.getDomainByCSQAType(x.slice(1)); + for (const [domain, items] of this._items) { + if (x in items) + return domain; + } + return null; + } + + // returns [domain, projection, filter] + private async _processOneActiveSet(activeSet : string[][]) : Promise<[string, string[]|Ast.BooleanExpression|null, Ast.BooleanExpression]> { + const triple = activeSet[0]; + const domain = this._getDomainBySubject(triple[0]); + assert(domain); + const subject = triple[0].startsWith('c') ? null : await this._getArgValue(triple[0]); + const relation = await argnameFromLabel(this._wikidataProperties.get(triple[1])!); + const object = triple[2].startsWith('c') ? null : await this._getArgValue(triple[2]); + + // when object is absent, return a projection on relation with filtering on id = subject + if (subject && !object) + return [domain, [relation], this._generateFilter(domain, 'id', subject)]; + // when subject is absent, return a filter on the relation with the object value + if (!subject && object) + return [domain, null, this._generateFilter(domain, relation, object)]; + // when both subject and object exists, then it's a verification question + // return a boolean expression as projection, and a filter on id = subject + if (subject && object) + return [domain, this._generateFilter(domain, relation, object), this._generateFilter(domain, 'id', subject)]; + + throw new Error('Both subject and object absent in the active set entry: ' + activeSet); + } + + // returns [domain, projection, filter] + private async _processOneActiveSetWithSetOp(activeSet : string[][], setOp : number) : Promise<[string, string[]|null, Ast.BooleanExpression|null]> { + assert(activeSet.length === 1 && activeSet[0].length > 3 && activeSet[0].length % 3 === 0); + const triples = []; + for (let i = 0; i < activeSet[0].length; i += 3) + triples.push(activeSet[0].slice(i, i + 3)); + // when the subjects of some triples are different, it requires set operation + // in ThingTalk to represent, which is not supported yet + const subjects = new Set(triples.map(((triple) => triple[0]))); + if (subjects.size > 1) + return ['unknown', null, null]; + + // process tripes in active set + const domains = []; + const projections = []; + const filters = []; + for (let i = 0; i < triples.length; i ++) { + const [domain, projection, filter] = await this._processOneActiveSet(triples.slice(i, i+1)); + domains.push(domain); + projections.push(projection as string[]); // it won't be boolean question for set ops + filters.push(filter); + } + + // FIXME: we current don't handle multiple domains + assert((new Set(domains)).size === 1); + const domain = domains[0]; + + // when projection is not null, it means we should have the same id filter on + // both triple, and different projection + if (projections[0] && projections[0].length > 0) { + const uniqueProjections = [...new Set(projections.flat())]; + return [domain, uniqueProjections, filters[0]]; + } + // when projection is null, then we merge two filters according to setOp + switch (setOp) { + case 1: return [domain, null, new Ast.BooleanExpression.Or(null, filters)]; // OR + case 2: return [domain, null, new Ast.BooleanExpression.And(null, filters)]; // AND + case 3: { // DIFF + assert(filters.length === 2); + const negateFilter = new Ast.BooleanExpression.Not(null, filters[1]); + return [domain, null, new Ast.BooleanExpression.And(null, [filters[0], negateFilter])]; + } + default: + throw new Error(`Unknown set_op_choice: ${setOp}`); + } + } + + // ques_type_id=1 + private async _simpleQuestion(activeSet : string[][]) : Promise { + assert(activeSet.length === 1); + const [domain, projection, filter] = await this._processOneActiveSet(activeSet); + const filterTable = new Ast.FilterExpression(null, this._invocationTable(domain), filter, null); + if (projection && Array.isArray(projection) && projection.length > 0) + return new Ast.ProjectionExpression(null, filterTable, projection, [], [], null); + return filterTable; + } + + // ques_type_id=2 + private async _secondaryQuestion(activeSet : string[][], secQuesType : number, secQuesSubType : number) : Promise { + if (secQuesSubType === 2 || secQuesSubType === 3) { + this._unsupportedCounter.indirect += 1; + return null; + } + if (secQuesSubType === 1) { + if (activeSet.length !== 1) { + this._unsupportedCounter.wrongAnnotation += 1; + return null; + } + return this._simpleQuestion(activeSet); + } + if (secQuesSubType === 4) { + // this it basically is asking multiple questions in one sentence. + // it is sometimes ambiguous with set-based questions + if (activeSet.length <= 1) + throw new Error('Only one active set found for secondary plural question'); + const domains = []; + const projections = []; + const filters = []; + for (let i = 0; i < activeSet.length; i ++) { + const [domain, projection, filter] = await this._processOneActiveSet(activeSet.slice(i, i+1)); + domains.push(domain); + projections.push(projection as string[]); + filters.push(filter); + } + + // FIXME: we current don't handle multiple domains + assert((new Set(domains)).size === 1); + const domain = domains[0]; + + const filter = new Ast.BooleanExpression.Or(null, filters); + const filterTable = new Ast.FilterExpression(null, this._invocationTable(domain), filter, null); + // when subjects of triples are entity, we are asking the same projection for multiple entities + if (secQuesType === 1) { + const uniqueProjection = [...new Set(projections.flat())]; + assert(uniqueProjection.length === 1); + return new Ast.ProjectionExpression(null, filterTable, uniqueProjection, [], [], null); + } + // when subjects of triples are type (domain), we are asking multiple questions, each of which + // satisfies a different filter + if (secQuesType === 2) + return filterTable; + throw new Error('Invalid sec_ques_type for secondary question'); + } + throw new Error('Invalid sec_sub_ques_type for secondary question'); + } + + // ques_type_id=4 + private async _setBasedQuestion(activeSet : string[][], setOpChoice : number) : Promise { + assert(activeSet.length === 1); + const [domain, projection, filter] = await this._processOneActiveSetWithSetOp(activeSet, setOpChoice); + if (!projection && !filter) { + this._unsupportedCounter.setOp += 1; + return null; + } + + const filterTable = new Ast.FilterExpression(null, this._invocationTable(domain!), filter!, null); + if (projection && projection.length > 0) + return new Ast.ProjectionExpression(null, filterTable, projection, [], [], null); + return filterTable; + } + + + // ques_type_id=5 + private async _booleanQuestion(activeSet : string[][], boolQuesType : number) : Promise { + if (boolQuesType === 1) { + assert(activeSet.length === 1); + const [domain, projection, filter] = await this._processOneActiveSet(activeSet); + const filterTable = new Ast.FilterExpression(null, this._invocationTable(domain), filter, null); + return new Ast.BooleanQuestionExpression(null, filterTable, projection as Ast.BooleanExpression, null); + } + if (boolQuesType === 4) { + assert(activeSet.length === 2); + const [domain1, projection1, filter] = await this._processOneActiveSet(activeSet); + const [domain2, projection2, ] = await this._processOneActiveSet(activeSet.slice(1)); + // FIXME: we current don't handle multiple domains + assert(domain1 === domain2); + const filterTable = new Ast.FilterExpression(null, this._invocationTable(domain1), filter, null); + const projection = new Ast.BooleanExpression.And(null, [projection1, projection2]); + return new Ast.BooleanQuestionExpression(null, filterTable, projection, null); + } + // indirect questions + this._unsupportedCounter.indirect += 1; + return null; + } + + // ques_type_id=7 + private async _quantitativeQuestionsSingleEntity(activeSet : string[][], entities : string[], countQuesSubType : number, utterance : string) : Promise { + switch (countQuesSubType) { + case 1: { // Quantitative (count) + assert(activeSet.length === 1); + const [domain, projection, filter] = await this._processOneActiveSet(activeSet); + return this._quantitativeQuestionCount(domain, projection as string[], filter); + } + case 2: // Quantitative (min/max) + return this._quantitativeQuestionMinMax(activeSet, utterance); + case 3: // Quantitative (atleast/atmost/~~/==) + return this._quantitativeQuestionCompareCount(activeSet, utterance); + case 4: // Comparative (more/less/~~) + return this._comparativeQuestion(activeSet, entities, utterance); + case 5: { // Quantitative (count over atleast/atmost/~~/==) + const filterTable = await this._quantitativeQuestionCompareCount(activeSet, utterance); + return new Ast.AggregationExpression(null, filterTable, '*', 'count', null); + } + case 6: { // Comparative (count over more/less/~~) + const filterTable = await this._comparativeQuestion(activeSet, entities, utterance); + return new Ast.AggregationExpression(null, filterTable, '*', 'count', null); + } + case 7: + case 8: + case 9: + // indirect questions + this._unsupportedCounter.indirect += 1; + return null; + default: + throw new Error(`Unknown count_ques_sub_type: ${countQuesSubType}`); + } + } + + // ques_type_id=8 + private async _quantitativeQuestionsMultiEntity(activeSet : string[][], entities : string[], countQuesSubType : number, setOpChoice : number, utterance : string) : Promise { + // Somehow set op is reverse of question type 4, there is no diff set op in this category + const setOp = setOpChoice === 2 ? 1:2; + switch (countQuesSubType) { + case 1: { // Quantitative with logical operators + assert(activeSet.length === 2); + activeSet = [activeSet[0].concat(activeSet[1])]; + const [domain, projection, filter] = await this._processOneActiveSetWithSetOp(activeSet, setOp); + if (!projection && !filter) { + this._unsupportedCounter.setOp += 1; + return null; + } + return this._quantitativeQuestionCount(domain, projection as string[], filter!); + } + case 2: // Quantitative (count) + case 3: // Quantitative (min/max) + case 4: // Quantitative (atleast/atmost/~~/==) + case 5: // Comparative (more/less/~~) + case 6: // Quantitative (count over atleast/atmost/~~/==) + case 7: // Comparative (count over more/less/~~) + this._unsupportedCounter.typeConstraint += 1; + return null; + case 8: + case 9: + case 10: + // indirect questions + this._unsupportedCounter.indirect += 1; + return null; + default: + throw new Error(`Unknown count_ques_sub_type: ${countQuesSubType}`); + } + } + + private _quantitativeOperator(utterance : string) : string { + // there is literally only one single way to talk about most aggregation + // operators in CSQA, so it's easy to decide + if (utterance.includes(' min ')) + return 'asc'; + if (utterance.includes(' max ')) + return 'desc'; + if (utterance.includes(' atleast' )) + return '>='; + if (utterance.includes(' atmost ')) + return '<='; + if (utterance.includes(' exactly ')) + return '=='; + if (utterance.includes(' approximately ') || utterance.includes(' around ')) + return '~~'; + throw new Error('Failed to identify quantitative operator based on the utterance'); + } + + private _comparativeOperator(utterance : string) : string { + if (utterance.includes(' more ') || utterance.includes(' greater number ')) + return '>='; + if (utterance.includes(' less ') || utterance.includes(' lesser number ')) + return '<='; + if (utterance.includes(' same number ')) + return '~~'; + + throw new Error('Failed to identify comparative operator based on the utterance'); + } + + private _numberInUtterance(utterance : string) : number { + // we expect exactly one number in the utterance + const matches = utterance.match(/\d+/); + if (!matches || matches.length === 0) + throw new Error('Failed to locate numbers from the utterance'); + if (matches.length > 1) + throw new Error('Multiple numbers found in the utterance'); + return parseInt(matches[0]); + } + + // Quantitative (count) + private async _quantitativeQuestionCount(domain : string, projection : string[], filter : Ast.BooleanExpression) : Promise { + const filterTable = new Ast.FilterExpression(null, this._invocationTable(domain), filter, null); + // when projection exists, it is counting parameter on a table with id filter + if (projection) { + const computation = new Ast.Value.Computation( + 'count', + projection.map((param) => new Ast.Value.VarRef(param)) + ); + return new Ast.ProjectionExpression(null, filterTable, [], [computation], [null], null); + } + // when projection is absent, it is counting a table with a regular filter + return new Ast.AggregationExpression(null, filterTable, '*', 'count', null); + } + + // Quantitative (min/max) + private async _quantitativeQuestionMinMax(activeSet : string[][], utterance : string) : Promise { + assert(activeSet.length === 1); + const triple = activeSet[0]; + if (!triple[0].startsWith('c') || !triple[2].startsWith('c')) { + this._unsupportedCounter.wrongAnnotation += 1; + return null; + } + const propertyLabel = this._wikidataProperties.get(triple[1]); + assert(propertyLabel); + const param = await argnameFromLabel(propertyLabel); + const computation = new Ast.Value.Computation( + 'count', + [new Ast.Value.VarRef(param)] + ); + const domain = this._getDomainBySubject(triple[0]); + assert(domain); + const countTable = new Ast.ProjectionExpression(null, this._invocationTable(domain), [], [computation], [null], null); + const direction = this._quantitativeOperator(utterance); + const sortTable = new Ast.SortExpression(null, countTable, new Ast.Value.VarRef('count'), direction as "asc"|"desc", null); + return new Ast.IndexExpression(null, sortTable, [new Ast.Value.Number(1)], null); + } + + // Quantitative (atleast/atmost/~~/==) + private async _quantitativeQuestionCompareCount(activeSet : string[][], utterance : string) : Promise { + assert(activeSet.length === 1); + const triple = activeSet[0]; + assert(triple[0].startsWith('c') && triple[2].startsWith('c')); + const propertyLabel = this._wikidataProperties.get(triple[1]); + assert(propertyLabel); + const param = await argnameFromLabel(propertyLabel); + const computation = new Ast.Value.Computation( + 'count', + [new Ast.Value.VarRef(param)] + ); + const filter = new Ast.BooleanExpression.Compute( + null, + computation, + this._quantitativeOperator(utterance), + new Ast.Value.Number(this._numberInUtterance(utterance)), + null + ); + const domain = this._getDomainBySubject(triple[0]); + assert(domain); + return new Ast.FilterExpression(null, this._invocationTable(domain), filter, null); + } + + // comparative (more/less/~~) + private async _comparativeQuestion(activeSet : string[][], entities : string[], utterance : string) : Promise { + assert(activeSet.length === 1 && entities.length === 1); + const triple = activeSet[0]; + assert(triple[0].startsWith('c') && triple[2].startsWith('c')); + const domain = this._getDomainBySubject(triple[0]); + const propertyLabel = this._wikidataProperties.get(triple[1]); + assert(domain && propertyLabel); + const param = await argnameFromLabel(propertyLabel); + const comparisonTarget = await this._getArgValue(entities[0]); + const filter = this._generateFilter(domain, 'id', comparisonTarget); + const subquery = new Ast.ProjectionExpression( + null, + new Ast.FilterExpression(null, this._invocationTable(domain), filter, null), + [], + [new Ast.Value.Computation('count', [new Ast.Value.VarRef(param)])], + [null], + null + ); + return new Ast.FilterExpression( + null, + this._invocationTable(domain), + new Ast.ComparisonSubqueryBooleanExpression( + null, + new Ast.Value.Computation('count', [new Ast.Value.VarRef(param)]), + this._comparativeOperator(utterance), + subquery, + null + ), + null + ); + } + + async csqaToThingTalk(dialog : CSQADialogueTurnPair) : Promise { + const user = dialog.user; + const system = dialog.system; + + if (user.is_incomplete || user.is_inc) { + this._unsupportedCounter.indirect += 1; + return null; + } + + const activeSet = []; + assert(system.active_set); + for (const active of system.active_set) + activeSet.push(active.replace(/[^0-9PQc,|]/g, '').split(',')); + + switch (user.ques_type_id) { + case 1: // Simple Question (subject-based) + return this._simpleQuestion(activeSet); + case 2: // Secondary question + return this._secondaryQuestion(activeSet, user.sec_ques_type!, user.sec_ques_sub_type!); + case 3: // Clarification (for secondary) question + this._unsupportedCounter.indirect += 1; + return null; + case 4: // Set-based question + return this._setBasedQuestion(activeSet, user.set_op_choice!); + case 5: // Boolean (Factual Verification) question + return this._booleanQuestion(activeSet, user.bool_ques_type!); + case 6: // Incomplete question (for secondary) + this._unsupportedCounter.indirect += 1; + return null; + case 7: // Comparative and Quantitative questions (involving single entity) + return this._quantitativeQuestionsSingleEntity(activeSet, user.entities_in_utterance!, user.count_ques_sub_type!, user.utterance); + case 8: // Comparative and Quantitative questions (involving multiple(2) entities) + return this._quantitativeQuestionsMultiEntity(activeSet, user.entities_in_utterance!, user.count_ques_sub_type!, user.set_op!, user.utterance); + default: + throw new Error(`Unknown ques_type_id: ${user.ques_type_id}`); + } + } + + private async _filterTurnsByDomain(dialog : CSQADialogueTurn[], file : string) { + let userTurn; + for (const turn of dialog) { + const speaker = turn.speaker; + if (speaker === 'USER') { + let skip = false; + for (const [key, values] of Object.entries(this._filters)) { + if (!values.includes(turn[key as keyof CSQADialogueTurn] as number)) + skip = true; + } + userTurn = skip ? null : turn; + } else { + if (!userTurn) + continue; + assert(turn.active_set); + + // only consider examples that contain _only_ the given domain + let inDomain = true; + for (const active of turn.active_set) { + const triples = active.replace(/[^0-9PQc,|]/g, '').split(','); + for (let i = 0; i < triples.length; i += 3) { + const subject = triples[i]; + const domain = this._getDomainBySubject(subject); + if (!domain && !this._items.has(subject)) + inDomain = false; + } + } + if (inDomain) { + this._examples.push({ + file: file, + user: userTurn, + system: turn, + }); + } + } + } + } + + async _filterExamples() { + for (const dir of fs.readdirSync(this._paths.inputDir)) { + for (const file of fs.readdirSync(path.join(this._paths.inputDir, dir))) { + const dialog = JSON.parse(fs.readFileSync(path.join(this._paths.inputDir, dir, file), { encoding: 'utf-8' })); + this._filterTurnsByDomain(dialog, file); + } + } + console.log(`${this._examples.length} QA pairs found`); + await util.promisify(fs.writeFile)(this._paths.filteredExamples, JSON.stringify(this._examples, undefined, 2)); + } + + async _loadFilteredExamples() { + this._examples = JSON.parse(await util.promisify(fs.readFile)(this._paths.filteredExamples, { encoding: 'utf-8' })); + } + + async _convert() { + const annotated = []; + const skipped = []; + const error = []; + for (const example of this._examples) { + let expression; + try { + expression = await this.csqaToThingTalk(example); + } catch(e) { + console.log('Error during conversion:'); + console.log('question:', example.user.utterance); + console.log('triples:', example.system.active_set); + console.error(e.message); + expression = null; + } + + if (!expression) { + skipped.push(example); + continue; + } + + try { + const program = new Ast.Program(null, [], [], [new Ast.ExpressionStatement(null, expression)]); + const user = example.user; + const preprocessed = this._tokenizer.tokenize(user.utterance).tokens.join(' '); + const entities = makeDummyEntities(preprocessed); + const thingtalk = serializePrediction(program, preprocessed, entities, { locale: this._locale, timezone: this._timezone, includeEntityValue : this._includeEntityValue }).join(' '); + annotated.push({ + id : annotated.length + 1, + raw: user.utterance, + preprocessed, + thingtalk + }); + } catch(e) { + console.log('Error during serializing:'); + console.log('question:', example.user.utterance); + console.log('triples:', example.system.active_set); + console.error(e.message); + error.push(example); + } + } + console.log(`${annotated.length} annotated, ${skipped.length} skipped, ${error.length} thrown error.`); + console.log(`Among skipped questions:`); + console.log(`(1) indirect questions: ${this._unsupportedCounter.indirect}`); + console.log(`(2) set operations: ${this._unsupportedCounter.setOp}`); + console.log(`(3) type constraint: ${this._unsupportedCounter.typeConstraint}`); + console.log(`(4) wrong annotation: ${this._unsupportedCounter.wrongAnnotation}`); + return annotated; + } + + async run() { + this._classDef = await loadClassDef(this._paths.thingpedia, { locale: this._locale, timezone: this._timezone }); + this._items = await readJson(this._paths.items); + this._values = await readJson(this._paths.values); + this._types = await readJson(this._paths.types); + this._wikidataProperties = await readJson(this._paths.wikidataProperties); + + // load in-domain examples + if (fs.existsSync(this._paths.filteredExamples)) + await this._loadFilteredExamples(); + else + await this._filterExamples(); + + // convert dataset annotation into thingtalk + const dataset = await this._convert(); + + // output thingtalk dataset + await util.promisify(fs.writeFile)(this._paths.output, dataset.map((example) => { + return `${example.id}\t${example.preprocessed}\t${example.thingtalk}`; + }).join('\n'), { encoding: 'utf8' }); + } +} + +module.exports = { + initArgparse(subparsers : argparse.SubParser) { + const parser = subparsers.add_parser('wikidata-convert-csqa', { + add_help: true, + description: "Generate parameter-datasets.tsv from processed wikidata dump. " + }); + parser.add_argument('-l', '--locale', { + default: 'en-US', + help: `BGP 47 locale tag of the natural language being processed (defaults to en-US).` + }); + parser.add_argument('--timezone', { + required: false, + default: undefined, + help: `Timezone to use to interpret dates and times (defaults to the current timezone).` + }); + parser.add_argument('-o', '--output', { + required: true, + }); + parser.add_argument('-i', '--input', { + required: true, + }); + parser.add_argument('--domains', { + required: true, + help: 'the path to the file containing type mapping for each domain' + }); + parser.add_argument('--thingpedia', { + required: true, + help: 'Path to ThingTalk file containing class definitions.' + }); + parser.add_argument('--wikidata-property-list', { + required: true, + help: "full list of properties in the wikidata dump, named filtered_property_wikidata4.json" + + "in CSQA, in the form of a dictionary with PID as keys and canonical as values." + }); + parser.add_argument('--items', { + required: true, + help: "A json file containing the labels for items of the domain" + }); + parser.add_argument('--values', { + required: true, + help: "A json file containing the labels for value entities for the domain" + }); + parser.add_argument('--types', { + required: true, + help: "A json file containing the entity types for value entities in the domain" + }); + parser.add_argument('--filtered-examples', { + required: true, + help: "A json file containing in-domain examples of the given CSQA dataset" + }); + parser.add_argument('--include-entity-value', { + action: 'store_true', + help: "Include entity value in thingtalk", + default: false + }); + parser.add_argument('--soft-match-id', { + action: 'store_true', + help: "Do string soft match on id property", + default: false + }); + parser.add_argument('--filter', { + required: false, + default: [], + nargs: '+', + help: 'filters to be applied to CSQA dataset, in the format of [key]=[value(int)]' + }); + }, + + async execute(args : any) { + const domains = new Domains({ path: args.domains }); + await domains.init(); + const csqaConverter = new CsqaConverter({ + locale: args.locale, + timezone : args.timezone, + domains, + inputDir: args.input, + output: args.output, + thingpedia: args.thingpedia, + wikidataProperties: args.wikidata_property_list, + items: args.items, + values: args.values, + types: args.types, + filteredExamples: args.filtered_examples, + includeEntityValue: args.include_entity_value, + softMatchId: args.soft_match_id, + filter: args.filter + }); + csqaConverter.run(); + }, + CsqaConverter +}; diff --git a/tool/autoqa/wikidata/csqa-type-mapper.ts b/tool/autoqa/wikidata/csqa-type-mapper.ts new file mode 100644 index 000000000..a95c847ef --- /dev/null +++ b/tool/autoqa/wikidata/csqa-type-mapper.ts @@ -0,0 +1,317 @@ +// -*- mode: typescript; indent-tabs-mode: nil; js-basic-offset: 4 -*- +// +// This file is part of Genie +// +// Copyright 2021 The Board of Trustees of the Leland Stanford Junior University +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Author: Silei Xu + + +import * as argparse from 'argparse'; +import * as fs from 'fs'; +import * as path from 'path'; +import assert from 'assert'; +import csvstringify from 'csv-stringify'; +import JSONStream from 'JSONStream'; +import * as StreamUtils from '../../../lib/utils/stream-utils'; +import { argnameFromLabel } from './utils'; +import { CSQADialogueTurn } from './csqa-converter'; + +const pfs = fs.promises; + +interface CSQATypeMapperOptions { + domains ?: string[], + input_dir : string, + output : string, + wikidata : string, + wikidata_labels : string, + minimum_appearance : number, + minimum_percentage : number, +} + +// map experiment name to CSQA type +const DOMAIN_MAP : Record = { + 'human': 'common_name', + 'city': 'administrative_territorial_entity', + 'country': 'designation_for_an_administrative_territorial_entity', + 'art': 'work_of_art', + 'song': 'release', + 'music_band': 'musical_ensemble', + 'game': 'application', + 'organization': 'organization', + 'disease': 'health_problem', + 'tv': 'television_program', + 'drug': 'drug' +}; + +class CSQATypeMapper { + private _inputDir : string; + private _output : string; + private _wikidata : string; + private _wikidataLabels : string; + private _minAppearance : number; + private _minPercentage : number; + private _domains ?: string[]; + private _labels : Map; + private _wikidataTypes : Map; + private _wikidataSuperTypes : Map; + private _typeMap : Map; + + + constructor(options : CSQATypeMapperOptions) { + this._inputDir = options.input_dir; + this._output = options.output; + this._wikidata = options.wikidata; + this._wikidataLabels = options.wikidata_labels; + this._minAppearance = options.minimum_appearance; + this._minPercentage = options.minimum_percentage; + this._domains = options.domains ? options.domains.map((domain : string) => DOMAIN_MAP[domain] || domain) : undefined; + + this._labels = new Map(); + this._wikidataTypes = new Map(); + this._wikidataSuperTypes = new Map(); + this._typeMap = new Map(); + } + + private async _loadKB(kbfile : string) { + const pipeline = fs.createReadStream(kbfile).pipe(JSONStream.parse('$*')); + pipeline.on('data', async (item) => { + const entity = item.key; + const predicates = item.value; + if ('P31' in predicates) { + const entityTypes = predicates['P31']; + this._wikidataTypes.set(entity, entityTypes); + for (const type of entityTypes) + this._labels.set(type, undefined); + } + if ('P279' in predicates) { + const superTypes = predicates['P279']; + this._wikidataSuperTypes.set(entity, superTypes); + for (const type of superTypes) + this._labels.set(type, undefined); + } + }); + + pipeline.on('error', (error) => console.error(error)); + await StreamUtils.waitEnd(pipeline); + } + + private async _loadLabels() { + const pipeline = fs.createReadStream(this._wikidataLabels).pipe(JSONStream.parse('$*')); + pipeline.on('data', async (entity) => { + const qid = String(entity.key); + const label = String(entity.value); + if (this._labels.has(qid)) + this._labels.set(qid, label); + }); + + pipeline.on('error', (error) => console.error(error)); + await StreamUtils.waitEnd(pipeline); + } + + async load() { + console.log('loading wikidata files ...'); + for (const kbfile of this._wikidata) + await this._loadKB(kbfile); + + console.log('loading wikidata labels ...'); + await this._loadLabels(); + } + + private _processDialog(dialog : CSQADialogueTurn[]) { + let userTurn, systemTurn; + for (const turn of dialog) { + if (turn.speaker === 'USER') { + userTurn = turn; + continue; + } + + assert(userTurn && turn.speaker === 'SYSTEM'); + systemTurn = turn; + + // extract examples from type 2.2.1, where an singular object-based question is asked. + // ie., given a relation and an object in the triple, asking for the subject + if (userTurn.ques_type_id === 2 && userTurn.sec_ques_type === 2 && userTurn.sec_ques_sub_type === 1) { + assert(userTurn.type_list && userTurn.type_list.length === 1); + const csqaType = userTurn.type_list[0]; + if (!this._typeMap.has(csqaType)) + this._typeMap.set(csqaType, { total: 0 }); + const answer = systemTurn.entities_in_utterance!; + for (const entity of answer) { + if (!this._wikidataTypes.has(entity)) + continue; + for (const type of this._wikidataTypes.get(entity) ?? []) { + const map = this._typeMap.get(csqaType); + map.total += 1; + if (!(type in map)) + map[type] = 1; + else + map[type] +=1; + } + } + } + } + } + + private async _processFile(file : string) { + const dialog = JSON.parse(await pfs.readFile(file, { encoding: 'utf8' })); + this._processDialog(dialog); + } + + private async _processDir(dir : string) { + const files = await pfs.readdir(dir); + for (const file of files) { + const fpath = path.join(dir, file); + const stats = await pfs.lstat(fpath); + if (stats.isDirectory() || stats.isSymbolicLink()) + await this._processDir(fpath); + else if (file.startsWith('QA') && file.endsWith('.json')) + await this._processFile(fpath); + } + } + + async process() { + console.log('start processing dialogs'); + await this._processDir(this._inputDir); + } + + + /** + * Output the type mapping in a tsv format, where each column shows + * 1. CSQA domain name (label of wikidata type) + * 2. CSQA domain wikidata type (QID) + * 3. the actual wikidata types for entities in the CSQA domain (filtered, used as the type map) + * 4. the actual wikidata types for entities in the CSQA domain (unfiltered, used as a reference only) + * + * each wikidata type in 3 and 4 is in the following format, and separated by space + * :